PDA

Просмотр полной версии : еще один вопрос по плагину browser


ASh
21.01.2013, 12:38
Дано:
* дерево страниц, в каждой из которой есть 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/en/xml-functions.html

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

ASh
21.01.2013, 16:38
спасибо за наводку. буду думать