Как я могу программно определить позицию плагина на странице? Предполагая, что у меня есть два экземпляра одного и того же плагина на странице, мне нужно определить их положение, чтобы отобразить немного другой макет. Возможно ли это?
Спасибо!
Как я могу программно определить позицию плагина на странице? Предполагая, что у меня есть два экземпляра одного и того же плагина на странице, мне нужно определить их положение, чтобы отобразить немного другой макет. Возможно ли это?
Спасибо!
Пусть ваше расширение хранит переменную-счетчик в $TSFE.
Такие переменные будут сохраняться от экземпляра плагина к экземпляру плагина и могут использоваться для подсчета экземпляров, находящихся на одной и той же странице.
В зависимости от этого счетчика вы можете изменить свой вывод расширения.
Пример
В вашей функции main сделайте что-то вроде этого:
// init counter var in the very first plugin instance
if(!isset($GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter'])){
$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter'] = 0;
}
// increment counter var in each plugin instance
// and execute code depending on the count
switch(++$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_'.$this->extKey.'_pi1.']['myCounter']){
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
}
Используйте рамки разделов:
Во внешнем интерфейсе вы увидите, что модифицированный контейнер плагина теперь имеет дополнительный класс css, который можно использовать для другого макета:
<div class="csc-frame csc-frame-frame1" id="c123">
Подробнее об этом читайте здесь: Пользовательские фреймы для Элементы контента в Typo3