I should have mentioned in my prior post about one compatibility issue I had with Ultimate SEO working with the Dynamic Filter plugin. Ultimate SEO didn't handle PHP array GET parameters using '[]' syntax. Dynamic filter uses them to pass variables in the format of "fltOptionName[]". Here's an example:
Code:
?main_page=index&
cPath=1234&
fltPrice[]=$0 - $25&
fltPrice[]=$25 - $50&
fltPrice[]=$50 - $75&
fltSize[]=Medium&
fltPrice[]=&
fltSize[]=&
fltColor[]=White&
fltLength[]=&
fltStyle[]=
The flt* parameters are loaded into arrays which don't work with the snippets below:
seo_url.php function parse_parameters()
PHP Code:
342 default:
343 $container[$p2[0]] = $p2[1];
344 break;
and:
PHP Code:
348 if(sizeof($container) > 0) {
349 if($imploded_params = $this->implode_assoc($container)) {
350 $url .= $separator . zen_output_string($imploded_params);
351 $separator = '&';
352 }
353 }
Any chance your future release will have compatibility with array GET parameters?
FYI: This is the change I made to make them work together on my site.
PHP Code:
default:
if (strpos($p2[0], '[]') === strlen($p2[0]) - 2) {
if (isset($container[$p2[0]])) {
array_push($container[$p2[0]], $p2[1]);
} else {
$container[$p2[0]] = array($p2[1]);
}
} else {
$container[$p2[0]] = $p2[1];
}
break;
PHP Code:
if(sizeof($container) > 0) {
$imploded_params = '';
foreach ($container as $key => $val) {
if (trim($key) == '') {
continue;
} else if (is_array($val) && count($val) > 0) {
foreach ($val as $arr) {
if ($imploded_params != '')
$imploded_params .= '&';
$imploded_params .= $key . '=' . $arr;
}
} else {
if ($imploded_params != '')
$imploded_params .= '&';
$imploded_params .= $key . '=' . $val;
}
}
if ($imploded_params != '') {
$url .= $separator . zen_output_string($imploded_params);
$separator = '&';
}
}
Bookmarks