Viewer_

Добрый день!
Я много раз встречал в плагинах примерно такие строки:



$this->Viewer_Assign('bEdit',true);



$this->Viewer_Assign('aPaging', $aPaging);



Что вообще такое этот Viewer, как именно он работает?
Пробовал искать и здесь и в гугле, но безрезультатно.
Спасибо.

Viewer_GetBlocks не работает

повесил функцию на хук module_viewer_getblocks_after, дабы изменить список блоков (в функции используется Viewer_GetBlocks()). При выполнении возникает ошибка:
Fatal error: Maximum function nesting level of '100' reached, aborting! in ***/engine/classes/Hook.class.php on line 100
Как её исправить, или на какой хук надо вешать эту функцию?

Баг репорт: 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);
}

Viewer: добавление дополнительных файлов css и js к основным массивам..

Нащёл информацию о Эволюция Viewer: управление блоками, слияние и минимизация JS/CSS но не могу разобраться как сделать чтобы в новом создаваемом плагине в config/config.php прописать правильно путь до js и css файлов которые имеют путь plugins/plagin_name/templates/skin/default/css/name_css_file.css и plugins/plagin_name/templates/skin/default/js/name_js_file.js

То есть мне нужно чтобы эти файлы были в основных файлах которые кэшируются соответственно css и js…

Эволюция Viewer: управление блоками, слияние и минимизация JS/CSS

На SVN работа над LS0.4 кипит, начну понемногу описывать нововведения. Итак, сегодня у нас на очереди модуль Viewer, который постепенно «обрастает» очень вкусными полезностями. В этот модуль добавлено:

1. Управление выводимыми на страницу js,css файлами.

2. Управление выводимыми на страницу блоками через конфигурацию.

Подробнее под катом.


Читать дальше →