пятница, 6 сентября 2013 г.

Поиск в админке TYPO3


У TYPO3 есть свой поиск в админке, который помогает быстро находить местоположение того или иного контента в структуре сайта.


Однако, не всегда тут можно найти искомые данные, например записи какого-нибудь плагина. Дело в том, что TYPO3 производит внутренний поиск лишь в тех полях которые описаны в TCA и находятся в списке 'searchFields'.

Чтобы было понятнее о чем идет речь, загляните в файл ext_tables.php любого плагина (см. typo3conf/ext/). В этом файле описаны дополнительные таблицы расширения и их поля. Вот, например, фрагмент данного файла для плагина - NEWS (news system) у которого есть таблица под названием - tx_news_domain_model_news:

$TCA['tx_news_domain_model_news'] = array(
'ctrl' => array(
'title'     => 'LLL:EXT:news/Resources/Private/Language/locallang_db.xml:tx_news_domain_model_news',
'label'     => 'title',
'prependAtCopy' => $configuration->getPrependAtCopy() ? 'LLL:EXT:lang/locallang_general.xml:LGL.prependAtCopy' : '',
'hideAtCopy' => TRUE,
'tstamp'    => 'tstamp',
'crdate'    => 'crdate',
'cruser_id' => 'cruser_id',
'versioningWS' => TRUE,
'origUid' => 't3_origuid',
'editlock' => 'editlock',
'type' => 'type',
'typeicon_column' => 'type',
'typeicons' => array (
'1' => t3lib_extMgm::extRelPath($_EXTKEY) . 'Resources/Public/Icons/news_domain_model_news_internal.gif',
'2' => t3lib_extMgm::extRelPath($_EXTKEY) . 'Resources/Public/Icons/news_domain_model_news_external.gif',
),
'dividers2tabs' => TRUE,
'useColumnsForDefaultValues' => 'type',
'languageField'            => 'sys_language_uid',
'transOrigPointerField'    => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'default_sortby' => 'ORDER BY datetime DESC',
'sortby' => ($configuration->getManualSorting() ? 'sorting' : ''),
'delete' => 'deleted',
'enablecolumns' => array(
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
'fe_group' => 'fe_group',
),
'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY) . 'Configuration/Tca/news.php',
'iconfile'          => t3lib_extMgm::extRelPath($_EXTKEY) . 'Resources/Public/Icons/news_domain_model_news.gif',
'searchFields' => 'uid,title',...
Как видим, автор побеспокоился о том, чтобы записи новостей можно было находить в админке по двум полям - uid и title.

Но что же делать если автор плагина оказался не таким "заботливым" или существуют другие поля по которым поиск не предусмотрен, а для нас это очень важно.

Решение есть. Для этого не нужно курочить плагин и добавлять новые поля в список searchFields. Можно поступить гораздо проще. В каждой директории typo3conf лежит файл - extTables.php, который подключается из localconf.php или LocalConfiguration.php. Вот в этот файл и нужно внести все необходимые предпочтения для поиска.

Добавим туда такую строку:

$TCA['tx_news_domain_model_news']['ctrl']['searchFields'] = 'uid,title,teaser,bodytext';


В результате наших изменений поиск в админке будет искать записи новостей не только по полям uid и title, но и по полям - teaser и bodytext.



0 коммент.:

Отправить комментарий

О себе

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

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

TOP - 3