Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Инструменты разработчика (http://forum.typo3.ru/forumdisplay.php?f=34)
-   -   Что делает данный код? (http://forum.typo3.ru/showthread.php?t=12293)

Ивано++ 11.01.2018 23:56

Что делает данный код?
 
В одно время наткнулся на интересный образец генерации USER-плагинов в USER_INT вариант прямо по ходу PHP-кода, который оказался мне полезным в решении нескольких задач. Образец нашел в записках Дмитрия Дулепова.

https://forge.typo3.org/issues/19113
http://danosipov.com/?p=191

В 8 версиях работает так.
PHP код:

        if ($cObj->getUserObjectType() === \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::OBJECTTYPE_USER) {
            
$cObj->convertToUserIntObject();
            return 
'';
        } 

Нашел еще интересный пример, тоже связанный с динамикой на странице, но не могу доконца разобраться что именно он делает и как работает:

http://typo3blogger.de/hook-contentpostproc-vs-cache/

Николай Сипко 12.01.2018 14:13

Цитата:

Сообщение от Ивано++ (Сообщение 41043)
Нашел еще интересный пример, тоже связанный с динамикой на странице, но не могу доконца разобраться что именно он делает и как работает: http://typo3blogger.de/hook-contentpostproc-vs-cache/

"Перехват (англ. hooking) — технология, позволяющая изменить стандартное поведение тех или иных компонентов информационной системы" https://ru.wikipedia.org/wiki/%D0%9F...BD%D0%B8%D0%B5)

http://typo3blogger.de/hook-contentpostproc-vs-cache/
"Перехват contentPostProc против кэш

В некоторых расширениях выход FE TYPO3 изменяется с помощью hook-контента contentPostProc (например, добавление всплывающих подсказок, улучшение исходного кода HTML, предотвращение спама посредством манипуляций с формами и т. Д.). Используя этот перехват... Вы быстро обнаружите, что есть проблемы, как только страница выходит из кеша. Рональд Штайнер нашел элегантное решение этой проблемы ...

Я также долго изучал проблему и узнал после интенсивного поиска, что Typoscript поверх $ GLOBALS [, TSFE] -> tmpl-> setup больше не доступен, как только страница выходит из кеша. Затем я попробовал все перехватчики, а также попытался инициализировать GLOBALS вручную, что я частично преуспел (но с большим количеством лишнего кода).

В то же время Рональд придумал блестяще простое решение, которое он использует в своем спам-боксе. Почему бы не использовать два перехвата Один перехват для объектов USER_INT и COA_INT и еще один для кэшированных страниц. Это вызывает два разных метода, которые используют наш основной метод. В функции main () всегда доступна функция $ GLOBALS [, TSFE] -> tmpl->(см. Пример кода)"

Ивано++ 12.01.2018 15:28

Пример бы посмотреть.
Там в низу статьи две ссылки - но они не рабочие.

Николай Сипко 12.01.2018 16:33

Цитата:

Сообщение от Ивано++ (Сообщение 41045)
Пример бы посмотреть.
Там в низу статьи две ссылки - но они не рабочие.

Про нерабочие ссылки не понял. Но, может, такие примеры подойдут:
=======
"Конфигурация перехвата

В ядре нет полного индекса перехватов. Но их легко искать и найти. И, как правило, это происходит совершенно естественно, так как вы найдете перехваты в коде, который хотите расширить, если они существуют.

В этом индексе будут перечислены основные переменные пространства для конфигурации перехватов. По их именам вы можете легко сканировать исходный код, чтобы узнать, какие перехваты доступны или могут быть вам интересны.

Указанный ниже индекс также включает в себя некоторые переменные пространства, которые не только несут конфигурацию перехвата, но могут использоваться и для других целей"

https://docs.typo3.org/typo3cms/Core...ion/Index.html

Ивано++ 12.01.2018 23:57

Про те ссылки что внизу статьи:

http://typo3blogger.de/hook-contentpostproc-vs-cache/
Links zum Thema:
Problem auf typo3.net
Ähnliches Problem netfielders.de


Часовой пояс GMT +4, время: 22:19.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot