Русский English Deutsch Українська Қазақша

Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не вошли.

#1 2009-12-05 14:39:03

icedogas
Участник
Откуда: Москва
Здесь с 2009-02-08
Сообщений: 318
Рейтинг :   
Сайт

Поиск по Xfield

Ребят, а поиск по xfield работает?

Вне форума

#2 2009-12-05 15:49:47

vitaly
Администратор
Откуда: Россия
Здесь с 2008-10-08
Сообщений: 2,788
Рейтинг :   115 

Re: Поиск по Xfield

Ещё пока нет.
Но уже близко, тестовая версия xfields'а уже научилась хранить доп. поля в отдельных полях SQL таблицы.

Вне форума

#3 2009-12-09 19:46:30

icedogas
Участник
Откуда: Москва
Здесь с 2009-02-08
Сообщений: 318
Рейтинг :   
Сайт

Re: Поиск по Xfield

vitaly пишет:

Ещё пока нет.
Но уже близко, тестовая версия xfields'а уже научилась хранить доп. поля в отдельных полях SQL таблицы.

А вот это уже интересно.
Слушай, а можно пока хоть хак какой нить поставить?

Вне форума

#4 2009-12-11 01:45:04

vitaly
Администратор
Откуда: Россия
Здесь с 2008-10-08
Сообщений: 2,788
Рейтинг :   115 

Re: Поиск по Xfield

icedogas, хак? вполне.
ставишь плагин из SVN, а потом - правишь engine/includes/search.php добавляя туда новые поля

Вне форума

#5 2011-02-04 12:14:41

coreldraw
Участник
Откуда: Ukraine
Здесь с 2008-10-21
Сообщений: 209
Рейтинг :   

Re: Поиск по Xfield

кстати ситуация изменилась с поиском по доп.полям? ато некое подобие каталога леплю и надо что б искало...

Вне форума

#6 2011-02-04 12:23:31

Wolverine
Модератор
Откуда: Домодедово
Здесь с 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Поиск по Xfield

Как ты себе это представляешь? Есть поле "Производитель". На форме поиска мы добавляем дополнительное поле ввода для поиска по производителям? Нужны точные совпадения или примерные?

Вне форума

#7 2011-02-04 13:04:44

icedogas
Участник
Откуда: Москва
Здесь с 2009-02-08
Сообщений: 318
Рейтинг :   
Сайт

Re: Поиск по Xfield

есть кстати супер нестандартное решение - написать свою цмс на фремворке типо кодигнайт и там будет только что ты захочешь)

Вне форума

#8 2011-02-04 13:18:17

coreldraw
Участник
Откуда: Ukraine
Здесь с 2008-10-21
Сообщений: 209
Рейтинг :   

Re: Поиск по Xfield

думаю на начальном этапе (всё таки надежда на каталог, который когда-то появится есть), дабы не морочится с временными допилами, достаточно что-бы поиск искал и в короткой/полной новости и в данных, которые забиты в дополнительных полях... например:
Производитель: Мерседес. При слове в поиске "Мерседес" выводил новость/новости в которой в одном из доп.полей было это слово... всё вроди как...

Wolverine  пишет:

Есть поле "Производитель". На форме поиска мы добавляем дополнительное поле ввода для поиска по производителям?

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

Вне форума

#9 2011-02-04 13:27:00

coreldraw
Участник
Откуда: Ukraine
Здесь с 2008-10-21
Сообщений: 209
Рейтинг :   

Re: Поиск по Xfield

тут озвучено решение но виталий критиковал его...

icedogas пишет:
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'е какие-то ограниченные.

Спасибо, работает норм))

Вне форума

#10 2011-02-04 13:41:12

KhadeR
Участник
Здесь с 2009-09-16
Сообщений: 207
Рейтинг :   17 

Re: Поиск по Xfield

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 13:44:01)


Linkum
В ТОП без фильтров и банов - Оптимизм.

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.066 сек, 7 запросов выполнено - Использовано памяти: 547.4 Кбайт (Пик: 564.4 Кбайт) ]