Ругается на поиск: Invalid argument supplied for foreach() fulltext_search.php on line 18

InstantCMS 2.X
#1 6 октября 2019 в 17:31
Подскажите в чем может быть дело: при попытке поиска чего-либо на сайте выдает?

Warning: Invalid argument supplied for foreach() in /system/controllers/groups/hooks/fulltext_search.php on line 18
#2 6 октября 2019 в 18:53
В 2.12.2
  1. // по каким полям поиск
  2. $match_fields['groups'] = array();
  3. // какие поля получать
  4. $select_fields['groups'] = array('id', 'slug', 'date_pub');
  5. // из каких таблиц выборка
  6. $table_names['groups'] = 'groups';
  7.  
  8. $fields = $this->loadGroupsFields()->getGroupsFields();
  9.  
  10. foreach($fields as $field){[/b] // 18
  11.  
  12. // в настройках полей должно быть включено их участие в индексе
  13. $is_text = $field['handler']->getOption('in_fulltext_search');
  14.  
#3 6 октября 2019 в 22:43


В 2.12.2

  1. // по каким полям поиск
  2. $match_fields['groups'] = array();
  3. // какие поля получать
  4. $select_fields['groups'] = array('id', 'slug', 'date_pub');
  5. // из каких таблиц выборка
  6. $table_names['groups'] = 'groups';
  7.  
  8. $fields = $this->loadGroupsFields()->getGroupsFields();
  9.  
  10. foreach($fields as $field){[/b] // 18
  11.  
  12. // в настройках полей должно быть включено их участие в индексе
  13. $is_text = $field['handler']->getOption('in_fulltext_search');
  14.  

@noname

что теперь с этим делать?)
#4 6 октября 2019 в 22:55

что теперь с этим делать?)

Def
Так лишь бы ответить) Что не делают для набивки кол-ва сообщений.

Аналогичный код, что кэп выше привёл, замените на этот.
  1. if($fields){
  2. foreach($fields as $field){
  3.  
  4. // в настройках полей должно быть включено их участие в индексе
  5. $is_text = $field['handler']->getOption('in_fulltext_search');
  6.  
  7. if ($is_text && (!$field['groups_read'] || $this->cms_user->isInGroups($field['groups_read']))){
  8.  
  9. $match_fields['groups'][] = $field['name'];
  10. $select_fields['groups'][] = $field['name'];
  11.  
  12. }
  13.  
  14. if ($field['name'] == 'logo' &&
  15. (!$field['groups_read'] || $this->cms_user->isInGroups($field['groups_read']))){
  16. $select_fields['groups']['image'] = $field['name'];
  17. }
  18.  
  19. }
  20. }
#5 7 октября 2019 в 00:59


что теперь с этим делать?)

Def
Так лишь бы ответить) Что не делают для набивки кол-ва сообщений.

Аналогичный код, что кэп выше привёл, замените на этот.
  1. if($fields){
  2. foreach($fields as $field){
  3.  
  4. // в настройках полей должно быть включено их участие в индексе
  5. $is_text = $field['handler']->getOption('in_fulltext_search');
  6.  
  7. if ($is_text && (!$field['groups_read'] || $this->cms_user->isInGroups($field['groups_read']))){
  8.  
  9. $match_fields['groups'][] = $field['name'];
  10. $select_fields['groups'][] = $field['name'];
  11.  
  12. }
  13.  
  14. if ($field['name'] == 'logo' &&
  15. (!$field['groups_read'] || $this->cms_user->isInGroups($field['groups_read']))){
  16. $select_fields['groups']['image'] = $field['name'];
  17. }
  18.  
  19. }
  20. }

Fuze

Спасибо большое, сработало:)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.