Баг репорт: Viewer_MakePaging

Описание проблемы:
Что бы освежить, вот это формирует постраничность:
MakePaging($iCount,$iCurrentPage,$iCountPerPage,$iCountPageLine,$sBaseUrl,$aGetParamsList=array())

aGetParamsList — в этом проблема.
Передаем
aGetParamsList = $_GET;

если в адресной строке написано
?category=tv,apple
то все работает отлично.
проблема появляется, если в адресной строке
?category[]=tv&category[]=apple

Вываливается ошибка
Warning: urlencode() expects parameter 1 to be string, array given in \www\site.com\engine\modules\viewer\Viewer.class.php on line 1195

Причина:

$sGetParams='';
		foreach ($aGetParamsList as $sName => $sValue) {
			$sGetParams.=$sName.'='.urlencode($sValue).'&';
		}
		if ($sGetParams!='') {
			$sGetParams='?'.trim($sGetParams,'&');
		}

Решение: Заменить весь этот кусок на 1 строчку:

$sGetParams='?'.http_build_query($aGetParamsList);

а еще лучше-

$sGetParams='';
if (isset($aGetParamsList)){
sGetParams=urldecode(is_array($aGetParamsList)? '?'.http_build_query($aGetParamsList):'?'.$aGetParamsList);
}

1 комментарий

avatar
  • ort
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.