пятница, 28 сентября 2012 г.

Совет по отладке плагинов (extension) для Typo3


Думаю, что многие ковырялись в тайповских плагинах и задумывались над тем, как хорошо бы пройтись по нему отладчиком, чтобы лучше понять, что к чему.

Одним из способов отладки, как известно со времен египетских пирамид, является отладочная печать.

Для тех, кто не очень хорошо знаком с PHP, приведу несколько строк кода, которые помогают при "разборе полетов", а точнее - выводят в текстовый файл все переменные PHP и их значения.

Вот эти строки:

ob_start();
var_dump(get_defined_vars());
$all_vars = ob_get_clean();
// Тут дан абсолютный путь к файлу vars.txt
$f = fopen("/var/www/client1/web/fileadmin/debug/vars.txt", "w");
fwrite($f, $all_vars);
fclose($f); 
Смело вставляйте эти строки  в любое место php-файлов Typo3-плагина и вы увидите полную картину всего происходящего в данной точке.

среда, 25 июля 2012 г.

Управление списком записей в режиме New record

Что-то давненько я ничего не писал...

Задался на днях целью забрать у пользователя возможность вводить некоторые типы записей контента. Т.е. речь идет о сокращении записей в списке:



Так вот, все очень просто. За каждой такой записью стоит какая-то таблица из БД. Строке News соответствует таблица tt_news, News category - tt_news_cat и т.д. Узнав имя такой таблицы направляемся в свойства нужной нам страницы (на которой нужно заблокировать ввод) и открываем закладку Ресурсы (Resources). В разделе Page TSConfig вводим примерно такие строки:
mod.web_list {
  deniedNewTables = tx_fitness_workout_equipment,tx_fitness_workout_bodypart,tx_fitness_fav_activity,tx_fitness_activitylog 
}



После чего из списка пропадают строки, которые позволяли вводить контент в наши таблицы с помощью админки.

Теперь несколько другая техника.

Допустим, в системную папку можно вводить только Typo3 шаблоны и Backend layouts, а все остальное нужно запретить. Тогда в Page TSConfig папки нужно вписать следующее:
mod {
web_list {
allowedNewTables := addToList(sys_template,backend_layout)
         }
}

sys_template и backend_layout это таблицы в которых хранятся соответствующие записи.

Теперь список доступных записей такой:




суббота, 18 февраля 2012 г.

Включаем и выключаем deprecation log


Надеюсь многие знают или по крайней мере видели, что в директории typo3conf, в которой находятся главные настройки Typo3 (localconf.php), лежат файлы типа deprecation_8935860f39.log

Для тех кто еще не в курсе, скажу, что в данном файле содержится информация об устаревших конструкциях typoscript и методах расширений (плагинов). Таким образом deprecation.log предупреждает нас о том, что и когда перестанет работать в последующих версиях Typo3 и дает возможность заранее подстелить соломки, чтобы потом нам было не так больно. Кроме того, здесь мы можем получить полезную информацию и о том, чем можно заменить устаревшие методы.

Загляните в такой файл и вы увидите, что-то вроде:

11-03-11 09:11: Using gpvar in TypoScript getText is deprecated since TYPO3 4.3 - Use gp instead of gpvar.
03-01-12 12:56: Usage of $ICON_TYPES is deprecated since 4.4. The extTables.php entry $ICON_TYPES['quick_shop'] = '../typo3conf/ext/quick_shop/ext_icon.gif'; should be replaced with t3lib_SpriteManager::addTcaTypeIcon('pages', 'contains-quick_shop', '../typo3conf/ext/quick_shop/ext_icon.gif'); instead.
20-01-12 23:03: TCA contains a deprecated definition using "newRecordLinkPosition"



Как видно, это обычный текстовый файл. Удаление этого файла к фатальным последствиям не приводит. Поэтому, как только deprecation.log стал довольно объемным его можно смело удалять. Но как сделать так, чтобы отключить логирование устаревших методов в Typo3?

Все очень просто! Идем в файл typo3conf\localconf.php и добавляем такую строку:

$TYPO3_CONF_VARS['SYS']['enableDeprecationLog'] = '0';

Если логирование нужно будет включить вновь - просто замените '0' на '1'.

P.S. Не забывайте почистить кеш системы, путем удаления файлов temp_CACHED_*.php в директории typo3conf.

О себе

Моя фотография
Вадим Гиркало
Фрилансер, веб-разработчик сайтов на базе бесплатной, мощнейшей и очень гибкой CMS системы - TYPO3.
Просмотреть профиль

Позвонить мне в Skype

TOP - 3