Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
21.08.2012, 12:12 | #1 |
Senior Member
Регистрация: 25.12.2009
Сообщений: 106
|
клонирование расширения на подстраницы
создал галерею
дерево галереи - обычные старницы сайта элементы галереи - объекты моего расширения - вставляются как обычный контент на страницы в админке элемент галереи содержит название, описание и фотки для клонирования механизма использовал подключение расширения в корневой папке галереи через тупоскрипт (там же механизм отрабатывания листинг или сама галерея и превьюшки) но вот возникла проблема потому как использую кеширование страниц - галерея кеширует последнюю генерацию несмотря на то что урл меняется (в пределах одной страницы на которой и список и просмотр галереи, это необходимо мне для правильного построения breadcrumb и построения мень в несколько уровней с сохранением раскрытым текущего уровня которые генерятся через тупоскрипт) если вставлять расширение на страницу как объект в контентную область - все отрабатывается как нужно даже в режиме кеширования страницы, но это неудоство - страниц может быть более сотни и на все вставлять расширение - глупо, думается тут должен быт ьдругой механизм использую typo3 4.6 и TV в пределах старницы урл меняется по следующим правилам если присутствует сегмент "gallery" - считается что мы отображаем не список галерей а просматриваем галерею если присутствует сегмент "page" - отрабатываем пагинацию независимо от режима - список или просмотр |
21.08.2012, 19:10 | #2 |
Senior Member
|
URL вы как формируете?
Экстеншен у вас наверное свой и вставлен как USER? Если код экстеншена на базе tslib_pibase, то может стоит $this->pi_USER_INT_obj = 1;? |
21.08.2012, 22:44 | #3 |
Senior Member
Регистрация: 25.12.2009
Сообщений: 106
|
URL формирую и отрабатываю вручную
расширение вставлено как Код:
lib.ts_content = COA plugin.tx_3tgallery_pi1.mode = LISTING [globalString = GP:3t_gallery|gallery=/[0-9a-zA-Z_]/] plugin.tx_3tgallery_pi1.mode = GALERY [end] lib.ts_content.10 = CONTENT lib.ts_content.10 < plugin.tx_3tgallery_pi1 кстати может есть какой-то более корректный способ проверки наличия переменной gallery потому как регулярка всетаки на мой взгляд тут лишняя, а другого рабочего варианта не обнаружил на всякий случай - временно вышел из ситуации отработкой режима на стороне расширения в РНР потому часть кода можно убрать Код:
lib.ts_content = COA lib.ts_content.10 = CONTENT lib.ts_content.10 < plugin.tx_3tgallery_pi1 |
22.08.2012, 12:23 | #4 |
Senior Member
|
Ну так как все таки формируете URL? Приведите код.
Просто если ваш плагин кэшируемый и вы формируете URL корректно через typolink, то к URL добавляется параметр cHash. Он позволяет кэшировать содержание страницы по URL, с учетом разных параметров. Подробнее http://typo3.org/documentation/artic...ies-of-chash-1 Кстати при использовании RealURL cHash в ссылке не виден, но он есть. Если вы формируете URL как-то сами минуя typolink (то есть там нет cHash), то ваш плагин будет работать нормально только если будет не кэшируемым (USER_INT). Иначе механизм кэширования TYPO3 будет вам "мешать". Что касается условия, такой вариант пробовали? Код:
plugin.tx_3tgallery_pi1.mode = GALERY # если 3t_gallery[gallery] не задан, то показываем список [globalVar = GP:3t_gallery|gallery = ] plugin.tx_3tgallery_pi1.mode = LISTING [GLOBAL] Еще дополню касательно условия в TS. Каждое TS условие создает в кэше страниц отдельную, так сказать, ветку кэша. Если сайт большой и страниц много, то кэш может сильно разрастаться. Поэтому я лично предпочитаю делать переключение режима плагина по условия вида "есть 3t_gallery[gallery]" в коде самого экста. |
22.08.2012, 12:55 | #5 | |||||
Senior Member
Регистрация: 25.12.2009
Сообщений: 106
|
Цитата:
на данный момент линк формируется вручную так Код:
$urlA = $this->pi_getPageLink($pageId).'\gallery\'.$gallery['alias']; $urlP = $this->pi_getPageLink($pageId).'\page\'.$page; Цитата:
Цитата:
Doc Core TS Цитата:
Цитата:
|
|||||
22.08.2012, 13:05 | #6 |
Senior Member
|
Ссылки вам нужно формировать так:
Код:
$urlA = $this->pi_getPageLink($pageId, '', array($this->prefixId => array('gallery' => $gallery_id))); $urlP = $this->pi_getPageLink($pageId, '', array($this->prefixId => array('page' => $page_id))) Ну а что-бы такие URL стали "красивыми", то нужен конфиг для RealURL. Хотя полагаю у вас он уже есть, ведь вы как-то получаете из красивого URL обратно 3t_gallery[gallery]. |
22.08.2012, 13:18 | #7 | ||
Senior Member
Регистрация: 25.12.2009
Сообщений: 106
|
Цитата:
Цитата:
Код:
'postVarSets' => array( '_DEFAULT' => array( 'page' => array( array( 'GETvar' => 'page' ) ), 'gallery' => array( array( 'GETvar' => '3t_gallery[gallery]' ) ), ) ), |
||
22.08.2012, 13:38 | #8 |
Senior Member
|
Решит, только если у вас в эксте прописано $this->pi_USER_INT_obj = 0. Я вас спрашивал что у вас с этим параметром, вы не ответили.
Что касается page, то в предложеном мной варианте нужно в конфиге RealURL сделать так: Код:
'page' => array( array( 'GETvar' => '3t_gallery[page]' ) ), Код:
$urlP = $this->pi_getPageLink($pageId, '', array('page' => $page_id)); |
22.08.2012, 14:21 | #9 | ||
Senior Member
Регистрация: 25.12.2009
Сообщений: 106
|
Цитата:
это имеется ввиду??? Код:
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_3tgallery_pi1.php', '_pi1', 'list_type', 0); Цитата:
|
||
22.08.2012, 14:30 | #10 |
Senior Member
|
В PHP коде вашего экста, в основном классе плагина, в функции main()
В том же коде у у вас $this->pi_getPageLink, "$this" на это намекает Ну как сказать. Чаще наоборот пагинация не должна влиять на другие плагины. Например у вас есть основной список "новостей" и в правой колонке какие-то "топ 10" по популярности. Если вы перейдете в основном списке на 2-ю, то "топ 10" обычно не должен стать "топ с 10 по 20". |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кэширование расширения (4 варианта: кэшировать, не кэшировать, управлять, по времени. | Ивано | Разработка расширений / TYPO3 extension development | 15 | 24.02.2013 00:30 |
не устанавливаются расширения | YurLu | Разработка расширений / TYPO3 extension development | 10 | 06.05.2012 11:03 |
Не загружаются расширения | SergeyS | Общие вопросы | 2 | 05.05.2011 13:42 |
Установка расширения Seminar Manager | ddt | Общие вопросы | 11 | 14.10.2009 16:42 |
Как правильно выставить документацию для расширения? | KortS | Организационные вопросы и встречи TUG | 0 | 30.03.2005 17:31 |