Вы не зашли.
Страницы 1
Ещё пока нет.
Но уже близко, тестовая версия xfields'а уже научилась хранить доп. поля в отдельных полях SQL таблицы.
А вот это уже интересно.
Слушай, а можно пока хоть хак какой нить поставить?
Не в сети
кстати ситуация изменилась с поиском по доп.полям? ато некое подобие каталога леплю и надо что б искало...
Не в сети
Как ты себе это представляешь? Есть поле "Производитель". На форме поиска мы добавляем дополнительное поле ввода для поиска по производителям? Нужны точные совпадения или примерные?
Не в сети
думаю на начальном этапе (всё таки надежда на каталог, который когда-то появится есть), дабы не морочится с временными допилами, достаточно что-бы поиск искал и в короткой/полной новости и в данных, которые забиты в дополнительных полях... например:
Производитель: Мерседес. При слове в поиске "Мерседес" выводил новость/новости в которой в одном из доп.полей было это слово... всё вроди как...
Есть поле "Производитель". На форме поиска мы добавляем дополнительное поле ввода для поиска по производителям?
ну если так, типа на странице поиска выводить список полей и искать по каждому отдельно, то конечно супер было-бы... но полей может быть много тех, которые используются не только для описания товара а и для других служебных целей тогда как быть?
Не в сети
тут озвучено решение но виталий критиковал его...
insider пишет:/engine/includes/search.php
Найтиarray_push($search, "((title Like '%".mysql_real_escape_string($s)."%') or (content Like '%".mysql_real_escape_string($s)."%'))");
Заменить на
array_push($search, "((title Like '%".mysql_real_escape_string($s)."%') or (content Like '%".mysql_real_escape_string($s)."%') or (xfields regexp '\".*".mysql_real_escape_string($s).".*\"'))");
И тогда доп. поля будут участвовать в поиске. Правда, не только их значения, но и сами названия полей. Как исправить -- не знаю, регэкспы в MySQL'е какие-то ограниченные.
Спасибо, работает норм))
Не в сети
coreldraw, если используешь xfields из SVN, то можно сделать так и будет все ок:
if ($_REQUEST['search']) {
$search_words = preg_split('#[ \,\.]+#', trim(str_replace(array('<', '>', '%', '$', '#'), '', substr($_REQUEST['search'], 0, 64))), -1, PREG_SPLIT_NO_EMPTY);
foreach ($search_words as $s) {
array_push($search,
array( 'OR',
array('DATA', 'title', 'like', '%'.mysql_real_escape_string($s).'%'),
array('DATA', 'content', 'like', '%'.mysql_real_escape_string($s).'%'),
array('DATA', 'tags', 'like', '%'.mysql_real_escape_string($s).'%'),
array('DATA', 'xfields_vehicleyear', 'like', '%'.mysql_real_escape_string($s).'%'),
array('DATA', 'xfields_transmission', 'like', '%'.mysql_real_escape_string($s).'%')
)
);
}
if (count($search) > 1) { array_unshift($search, 'AND'); }
if (count($search) == 1) { $search = $search[0]; }
array_push($filter, $search);
}
если хотите использовать поиск по доп. полям vehicleyear, transmission (если в настройках Вы указали, что эти поля записываются в БД), причем можно использовать поиск по тегам добавив, как описано tags
Изменено KhadeR (2011-02-04 14:44:01)
Не в сети
Страницы 1