Форумы / National / Russian / Сборка «Фриланс-биржа» / То ли поиск работает не корректно, то ли я что-то не то опять.

Давайте уже разберемся.

smit
#1 23.11.2016 17:32

Здравствуйте, уважаемые разработчики! Я думаю, тут уже многие обратили внимание, что я уже несколько дней мучаю фильтр поиска заданий.

Сегодня я специально создал новый нулёвый сайт, ничего на нем не менял. Только создал экстра поле во flance_projects - Модуль Projects. Назвал "QWE".

В таблице появилось, увидел, вот оно:

Далее: Управление сайтом / Расширения / Search / Конфигурация - копирую в "Дополнительные поля для поиска": item_QWE. 

По моему представлению, это поле должно само появиться где-то рядом с поиском. Этого не происходит. Хорошо, добавил {SEARCH_QWE} - поле появилось, но по прежнему не работает, не фильтрует задания.

На сколько мне известно, кусок кода отвечающий за дополнительные поля, вот он:

http://github.com/cmsworksru/cot-freelance/blob/master/modules/projects/projects.search.list.php#L55-L60

// String query for addition projects fields.
	foreach (explode(',', trim($cfg['plugin']['search']['addfields'])) as $addfields_el)
	{
		$addfields_el = trim($addfields_el);
		$where_or[$addfields_el] .= ( (!empty($addfields_el))) ? $addfields_el." LIKE '".$sqlsearch."'" : "";
	}

Товарищи, давайте уже решим этот вопрос.

 

Dayver
#2 23.11.2016 20:29

Если я не ошибаюсь дело в том что указание дополнительных полей для стандартного поиска работает только для таблицы _pages потому нет смысла указывать поиск по доп. полям в таблице  _projects ... хотя сборку биржы не смотрел, не возмусь утверждать что это действительно так ... чисто моё допущение

Добавлено 9 минут спустя:

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

Pavlo Tkachenko aka Dayver
Отредактировано: Dayver (23.11.2016 20:46, 7 лет назад)
smit
#3 24.11.2016 02:37
#42422 Dayver:

Если я не ошибаюсь дело в том что указание дополнительных полей для стандартного поиска работает только для таблицы _pages потому нет смысла указывать поиск по доп. полям в таблице  _projects ... хотя сборку биржы не смотрел, не возмусь утверждать что это действительно так ... чисто моё допущение

Добавлено 9 минут спустя:

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

 

Хз, что-то связанных с проектом и поиском, ошибок не увидел. Только вот что-то на run.js ругается.

Вот копия сайта на хостинге: http://k38v38.myjino.ru . То что красное - это всё карта, я так понимаю. А вот желтое - то же самое и на нулевом сайте показывает. 

 

 

Отредактировано: smit (24.11.2016 10:56, 7 лет назад)
Macik
#4 25.11.2016 00:44

Приведенные скрины совсем не в тему. Подразумевается встроенный в движок режим отладки:

  1. Включаем режим отладки
  2. Вставляем в footer.tpl теги:
    {FOOTER_SQLSTATISTICS}
    {FOOTER_DEVMODE}
    

     

  3. После обновления страницы наблюдаем полнфый список запросов к MySQL.

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
smit
#5 28.11.2016 16:49
#42428 Macik:

Приведенные скрины совсем не в тему. Подразумевается встроенный в движок режим отладки:

  1. Включаем режим отладки
  2. Вставляем в footer.tpl теги:
    {FOOTER_SQLSTATISTICS}
    {FOOTER_DEVMODE}
    

     

  3. После обновления страницы наблюдаем полнфый список запросов к MySQL.

 

Наблюдаем в консоли или где-то на странице? Не вижу ни там, ни там..

/datas/config.php:

$cfg['debug_mode'] = true;

 

/themes/bootlance/footer.tpl:

<!-- BEGIN: FOOTER -->

	</div>
</div>
<div id="footer" class="container">
	<div class="floatright">
		Generated by <a href="http://cotonti.com" target="blank">CMF Cotonti</a><br/>
		Powered by <a href="http://cmsworks.ru" target="blank">CMSWorks.ru</a>
	</div>
	&copy; 2013 {PHP.cfg.maintitle}
</div>

<script type="text/javascript" src="themes/{PHP.theme}/bootstrap/js/bootstrap.min.js"></script>
{FOOTER_RC}
{FOOTER_SQLSTATISTICS}
{FOOTER_DEVMODE}
</body>
</html>
<!-- END: FOOTER -->

 

Macik
#6 29.11.2016 22:09

Конечно же, надо еще включить в админке:
Управление сайтом → Конфигурация → Безопасность → Режим отладки: Да

Далее смотреть лог внизу страницы...

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
smit
#7 01.12.2016 22:24
#42438 Macik:

Конечно же, надо еще включить в админке:
Управление сайтом → Конфигурация → Безопасность → Режим отладки: Да

Далее смотреть лог внизу страницы...

А, сорян, понял.

В логах я поискал экстраполе SDF и столбец item_SDF. Нашел вот что: 

#24   6.198 ms 221.295 ms index.php [176]: require_once();
→ projects.php [33]: require_once();
→ projects.list.php [16]: cot_import();
→ functions.php [566]: cot_log_import();
→ functions.php [3232]: cot_log();
→ functions.php [3217]: CotDB->insert();
INSERT INTO `flance_logger` (`log_date`,`log_ip`,`log_name`,`log_group`,`log_text`) VALUES (1480630424,'79.164.146.116','admin','sec','A variable type check failed, expecting G/INT for \'type\' : - /projects?e=projects&type=&l=ru&sq=&country=ru&region=0&c=&sort=&SDF%5Bnullval%5D=nullval&SDF%5B3%5D=F&search=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA')

Я так понял, что это фильтры в строку записаны, но что бы эти знаки значили?..  Логер еще тут же какой-то..

Ссыль: http://k39v39.myjino.ru/projects

 

__________________________________________________________________________

 

Кое где встречается таблица "flance_projects". 

#15   4.868 ms 142.897 ms index.php [87]: require_once();
→ common.php [656]: include();
→ projects.global.php [27]: CotDB->query();
SELECT * FROM flance_projects_types

 

#24   6.827 ms 251.149 ms index.php [176]: require_once();
→ projects.php [33]: require_once();
→ projects.list.php [125]: CotDB->query();

SELECT COUNT(*) FROM flance_projects AS p LEFT JOIN flance_users AS u ON u.user_id=p.item_userid WHERE item_state=0

 

 

#25   16.392 ms 258.036 ms index.php [176]: require_once();
→ projects.php [33]: require_once();
→ projects.list.php [132]: CotDB->query();
SELECT p.*, u.* FROM flance_projects AS p LEFT JOIN flance_users AS u ON u.user_id=p.item_userid WHERE item_state=0 ORDER BY item_top DESC, item_date DESC LIMIT 0, 30
#83   5.938 ms 704.250 ms index.php [176]: require_once();
→ projects.php [33]: require_once();
→ projects.list.php [241]: include();
→ tagslance.projects.list.tags.php [60]: CotDB->query();
SELECT r.tag AS tag, COUNT(r.tag_item) AS cnt FROM flance_tag_references AS r LEFT JOIN flance_projects AS p ON r.tag_item = p.item_id WHERE r.tag_area = 'projects' AND p.item_cat IN ('manager','supervisor','merchandiser','promoter','interviewer','mascot','animator','distributor','auditor','girls','photographer','model','promomodel','sales','bartender','waiter','courier','driver','mystery','helper','more') AND p.item_state = 0 GROUP BY r.tag ORDER BY tag
#84   6.440 ms 714.865 ms index.php [176]: require_once();
→ projects.php [33]: require_once();
→ projects.list.php [244]: XTemplate->parse();
→ cotemplate.php [472]: Cotpl_block->parse();
→ cotemplate.php [836]: Cotpl_logical->text();
→ cotemplate.php [1413]: Cotpl_logical->text();
→ cotemplate.php [1407]: Cotpl_expr->evaluate();
→ cotemplate.php [1295]: Cotpl_var->evaluate();
→ cotemplate.php [1752]: cot_getcountprjofuser();
→ paypro.functions.php [61]: CotDB->query();
SELECT COUNT(*) FROM flance_projects WHERE item_userid=1 AND item_date<1480629448 AND item_date>1480550400
#89   4.498 ms 749.911 ms index.php [176]: require_once();
→ projects.php [35]: require_once();
→ header.php [86]: include();
→ projects.header.main.php [10]: CotDB->query();
SELECT COUNT(*) FROM flance_projects WHERE item_state=2