Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   еще один вопрос по плагину browser (http://forum.typo3.ru/showthread.php?t=10566)

ASh 21.01.2013 12:38

еще один вопрос по плагину browser
 
Дано:
* дерево страниц, в каждой из которой есть FCE-елемент, который имеет набор полей;
* есть отдельная страница, на которой отображается перечень страниц этого дерева и форма поиска (сделана при помощи browser extension)

Задача: нужно, чтобы при поиске через строку поиска (плагина browser), поиск производился в полях FCE-елементов и выводил список страниц, в чьих полях найдено искомое.

Сложность: я не знаю, как указать в строке search где именно искать.

plugin.tx_browser_pi1 {
views {
list {
1 {
select = pages.title, pages.uid
search = ... ???
}
}
}

Могу добавить: я нашел функцию php для парсинга данных из xml и она даже работает для отдельных элементов.

================================================== ====
PHP-часть:
==========
class user_myclass {
function getContentFlexValue($content, $conf) {
list($table, $uid) = t3lib_div::trimExplode(':', $GLOBALS['TSFE']->currentRecord, 1);
$rec = $GLOBALS['TSFE']->sys_page->getRawRecord($table, $uid);
$flexXML = $rec['tx_templavoila_flex'];
$XML = t3lib_div::xml2array($flexXML);
return $XML['data']['sDEF']['lDEF'][$conf['field']]['vDEF'];
}
}
================
TS-часть:
==========
lib.field_name >
lib.field_name = TEXT
lib.field_name.postUserFunc = user_myclass->getContentFlexValue
lib.field_name.postUserFunc.field = field_passport
================================================== ====

НО: как все это совместить в один SQL запрос, чтобы записать в "search="?

dmartynenko 21.01.2013 16:14

Решения именно вашей проблемы не подскажу, но в принципе MySQL умеет искать внутри XML сам:
http://adw0rd.com/2009/4/13/xpath-mysql/
http://dev.mysql.com/doc/refman/5.1/...functions.html

Значит вполне реально составить SQL запрос на поиск внутри поля XML/FCE.

ASh 21.01.2013 16:38

спасибо за наводку. буду думать


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

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