TYPO3 6.0: PHP-СКРИПТ был удален. Как я могу это исправить?


Это было много лет назад, когда я в последний раз интенсивно использовал TYPO3. Так что я не помню много ОПЕЧАТОК. Когда я обновился до версии 6.0, я обнаружил, что этот код больше не работает:

marks.CONTENT.30 = PHP_SCRIPT
marks.CONTENT.30.file = fileadmin/db/db.php

Он просто вставил html-вывод db.php (который сделал несколько запросов к базе данных и сформировал из нее настраиваемую таблицу html/css).

Как я могу быстро это исправить? Я слышал, что PHP_SCRIPT устарел, и что есть еще одно ключевое слово (ПОЛЬЗОВАТЕЛЬ), но я не знаю, как его использовать. Помнить: Я действительно больше не эксперт по опечаткам, так что не стесняйтесь объяснять подробно. ;-)

Спасибо! Инго.

Author: Ingo Dellwig, 2013-03-10

1 answers

Похоже, вам нужно базовое расширение, которое, как вы упомянули, просто ПОЛЬЗОВАТЕЛЬ или USER_INT объекты содержимого.

Первый кэшируется в содержимом страницы, поэтому, если ваш скрипт выводит некоторую статическую или редко изменяемую информацию , вам следует подумать о выборе ПОЛЬЗОВАТЕЛЯ типа.

Если у вас есть динамические данные, которые часто меняются (каждая новая загрузка страницы приводит к новым выводам), то вы бы предпочли USER_INT, но имейте в виду: USER_INT скрипт вызывается каждый раз, когда загружается ваша страница, поэтому вы должны максимально оптимизировать его.

Я советую вам прочитать эту основную информацию об использовании этих двух типов.

Итак, в конце вам понадобится класс PHP, имя которого начинается с "user_" или "tx_" с помощью метода main(), который принимает два параметра $content и $conf. Эти параметры не будут использоваться вами, но, к вашему сведению, $content может содержать предварительно обработанный контент, а $conf содержит любые данные конфигурации, необходимые для вашего скрипта.

Внутри main() вы создаете свой HTML-вывод и просто возвращаете его (в виде строки).

Часть TS будет следующей в случае ПОЛЬЗОВАТЕЛЯ:

includeLibs.something = fileadmin/db/db.php
marks.CONTENT.30 = USER
marks.CONTENT.30 {
  userFunc = user_db->main
}

Для ПОЛЬЗОВАТЕЛЬ_INT:

marks.CONTENT.30 = USER_INT
marks.CONTENT.30 {
  includeLibs = fileadmin/db/db.php
  userFunc = user_db->main
}

ПРИМЕЧАНИЕ: Я описал грязный, но простой способ для вашего случая. Гораздо лучше будет рассмотреть возможность использования КОНТЕНТА CObject, потому что он делает именно то, что вам нужно: извлекает записи из БД и выводит их на страницу таким образом, это тебе нравится.

 6
Author: Viktor Livakivskyi, 2013-03-10 16:42:33