Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 1558 Просмотров
*

CyberPsy

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Возможно ли переделать стандартный поиск в к2, чтобы он искал по точным фразам, либо хотя бы по двум словам сразу, а не как обычно он ищет - по одному слову? Суть вопроса в том, что если к примеру ввести название фильма, состоящее из двух слов, то он выводит все материалы в которых встречаетмя и первое и второе слово, а нужно, чтобы находил сразу оба. Например, если ввести фразу "Том Круз", то поиск находит все материалы в которых встречается слово Том или слово Круз. А необходимо, чтобы искал только фразу. Надеюсь понятно объяснил. Тему уже такую создавал, но никто так и не дал ответа.
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
Поиск переделать возможно. Я давно что-то типа такого делал, но не помню для вашей проблемы или нет. Помоему, это делалось для точного поиска по поисковым меткам. Может будет работать. Попробуйте.
В файле ..\components\com_k2\models\itemlist.php
Заменить function prepareSearch($search)
Цитировать
function prepareSearch($search)
    {
   jimport('joomla.filesystem.file');
   $db = JFactory::getDBO();
   $language = JFactory::getLanguage();
   $defaultLang = $language->getDefault();
   $currentLang = $language->getTag();
   $length = JString::strlen($search);
   $sql = '';
   if (JRequest::getVar('categories'))
   {
   $categories = @explode(',', JRequest::getVar('categories'));
   JArrayHelper::toInteger($categories);
   $sql .= " AND i.catid IN (".@implode(',', $categories).") ";
   }
   if (empty($search))
   {
   return $sql;
   }
   if (JString::substr($search, 0, 1) == '"' && JString::substr($search, $length - 1, 1) == '"')
   {
   $type = 'exact';
   }
   else
   {
   $type = 'any';
   }
   if (JFile::exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_joomfish'.DS.'joomfish.php') && $currentLang != $defaultLang)
   {
   $conditions = array();
   $search_ignore = array();
   $ignoreFile = $language->getLanguagePath().DS.$currentLang.DS.$currentLang.'.ignore.php';
   if (JFile::exists($ignoreFile))
   {
   include $ignoreFile;
   }
   if ($type == 'exact')
   {
   $word = JString::substr($search, 1, $length - 2);
   if (JString::strlen($word) > 3 && !in_array($word, $search_ignore))
   {
   $escaped = K2_JVERSION == '15' ? $db->getEscaped($word, true) : $db->escape($word, true);
   $word = $db->Quote('%'.$escaped.'%', false);
   $jfQuery = " SELECT reference_id FROM #__jf_content as jfc LEFT JOIN #__languages as jfl ON jfc.language_id = jfl.".K2_JF_ID;
   $jfQuery .= " WHERE jfc.reference_table = 'k2_items'";
   $jfQuery .= " AND jfl.code=".$db->Quote($currentLang);
   $jfQuery .= " AND jfc.published=1";
   $jfQuery .= " AND jfc.value LIKE ".$word;
   $jfQuery .= " AND (jfc.reference_field = 'extra_fields_search'
   )";
   $db->setQuery($jfQuery);
   $result = K2_JVERSION == '30' ? $db->loadColumn() : $db->loadResultArray();
   $result = @array_unique($result);
   JArrayHelper::toInteger($result);
   if (count($result))
   {
   $conditions[] = "i.id IN(".implode(',', $result).")";
   }
   }
   }
   else
   {
   //$search = explode(' ', JString::strtolower($search));
   //foreach ($search as $searchword)
   // {
   $searchword=$search;
   if (JString::strlen($searchword) > 3 && !in_array($searchword, $search_ignore))
   {
   $escaped = K2_JVERSION == '15' ? $db->getEscaped($searchword, true) : $db->escape($searchword, true);
   $word = $db->Quote('%'.$escaped.'%', false);
   $jfQuery = " SELECT reference_id FROM #__jf_content as jfc LEFT JOIN #__languages as jfl ON jfc.language_id = jfl.".K2_JF_ID;
   $jfQuery .= " WHERE jfc.reference_table = 'k2_items'";
   $jfQuery .= " AND jfl.code=".$db->Quote($currentLang);
   $jfQuery .= " AND jfc.published=1";
   $jfQuery .= " AND jfc.value LIKE ".$word;
   $jfQuery .= " AND (jfc.reference_field = 'extra_fields_search'
   )";
   $db->setQuery($jfQuery);
   $result = K2_JVERSION == '30' ? $db->loadColumn() : $db->loadResultArray();
   $result = @array_unique($result);
   foreach ($result as $id)
   {
   $allIDs[] = $id;
   }
   if (JFile::exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_joomfish'.DS.'joomfish.php') && $currentLang != $defaultLang)
   {
   if (isset($allIDs) && count($allIDs))
   {
   JArrayHelper::toInteger($allIDs);
   $conditions[] = "i.id IN(".implode(',', $allIDs).")";
   }
   }
   }   
   // }
   } 
   if (count($conditions))
   {
   $sql .= " AND (".implode(" OR ", $conditions).")";
   }
   }
   else 
   { 
   //$sql .= " AND MATCH(i.extra_fields_search) ";
   //if ($type == 'exact')
   //{
   //    $text = JString::trim($search, '"');
   //    $escaped = K2_JVERSION == '15' ? $db->getEscaped($text, true) : $db->escape($text, true);
   //    $text = $db->Quote('"'.$db->getEscaped($text, true).'"', false);
   //}
   //else
   //{
   //    $search = JString::str_ireplace('*', '', $search);
   //    $words = explode(' ', $search);
   //    for ($i = 0; $i < count($words); $i++)
   //    {
   //        $words[$i] .= '*';
   //    }
   //    $search = implode(' ', $words);
   //    $escaped = K2_JVERSION == '15' ? $db->getEscaped($search, true) : $db->escape($search, true);
   //    $text = $db->Quote($escaped, false);
   //}
   $search = JString::strtolower($search);
   $escaped = K2_JVERSION == '15' ? $db->getEscaped($search, true) : $db->escape($search, true);
   $word = $db->Quote('%'.$escaped.'%', false);
   $sql .= " AND i.extra_fields_search LIKE ".$word;
   }
   return $sql;
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
И еще советую оптимизировать код, чтобы в поиск не выводились результаты из описаний фильмов, а только из названия фильма, доп. полей, например.
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

CyberPsy

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
И еще советую оптимизировать код, чтобы в поиск не выводились результаты из описаний фильмов, а только из названия фильма, доп. полей, например.
Попробовал. Работает замечательно, только в поисковых метках, а сами названия материалов не находит. Теперь просто поиск отсеивает материалы, в которых только точная фраза поисковых меток, но на названия фильмов это не распространяется. То есть если я введу в поиске слова Том Круз, то мне найдет фильмы/материалы, в которых в поисковых метках эти слова указаны. Но, если введу название фильма, то не находит. Можно ли это как-то изменить, чтобы искал еще и в названиях? За решение готов отблагодарить материально! :)
*

CyberPsy

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Решил проблему, установив обычный умный поиск, а не из модуля к2 tools. Огромнейшее спасибо и плюс в карму kisBoss! очень помог решить давно мучащую проблему. :))))))
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Точный поиск JA K2 Filter and Search Module

Автор Abez

Ответов: 1
Просмотров: 1487
Последний ответ 25.02.2020, 19:58:47
от Abez
Поиск К2 + в результаты Категории

Автор jurassik

Ответов: 1
Просмотров: 1644
Последний ответ 28.11.2017, 20:06:03
от kisBoss
[Решено] Не работает поиск а админке по К2 на кирилице

Автор WinssLioN29

Ответов: 0
Просмотров: 1483
Последний ответ 09.07.2017, 23:15:07
от WinssLioN29
K2 v2.7.1 поломался поиск в админке

Автор d0ublezer0

Ответов: 7
Просмотров: 5312
Последний ответ 17.03.2017, 01:57:59
от RivalNoX
Поиск в категории

Автор imnotafake

Ответов: 0
Просмотров: 942
Последний ответ 12.03.2017, 20:57:48
от imnotafake