Новости Joomla

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

👩‍💻 Вместе мы развиваем Joomla: станьте Joomfluencer!

Вы уверенно чувствуете себя перед камерой, динамичны, обаятельны и всегда улыбаетесь? Чувствуете себя искателем приключений, готовым поделиться своими исследованиями CMS Joomla!, взять интервью у видных деятелей сообщества, пообщаться лично или по видеосвязи с волонтерами Joomla или отправиться на поиски новых идей?

Joomla ищет одного или нескольких волонтеров, готовых вдохнуть новую жизнь в обсуждение Joomla, ее CMS, пользователей, сообщества и многого другого.

Возможны самые разные форматы и темы: шортсы, интервью, аналитика и разборы в режиме реального времени, быстрые советы и рекомендации, знакомство с миром Joomla, изучение открытого исходного кода... Нет никаких ограничений!

Joomla! уже активно представлена ​​во многих социальных сетях:
- 155K подписчиков на Facebook,
- 55K подписчиков на X (ранее Twitter),
- 16K подписчиков на YouTube,
- 14K подписчиков на LinkedIn,
- 5,7K подписчиков в Instagram
а так же другие площадки ждут вас. Аккаунты Threads и Bluesky относительно новые, но их популярность только растёт!

А если хватит энергии, можно рассмотреть и TikTok!

❓ Итак, вы готовы?
👉 Свяжитесь с отделом маркетинга по адресу: marketing@community.joomla.org

Подробности в статье в Joomla Community Magazine.

@joomlafeed

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

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Ну точнее проблема не в них, а непосредственно в поиска по полям типа multicheckbox и multiselect.

Короче есть у меня такие поля в объявлениях. При наполнении объявления они имеют тип checkbox, а для поиска выводятся в виде выпадающего списка.

Так вот проблема в том что они в той части компонента, которая отвечает за поиск объявлений, обрабатываются как-то неправильно.

Подробнее:
поле имеет значение rus, en, ua
пытаюсь искать по значению rus
включил отладку в Joomla и в запросе вижу вот такую вот картину:

Код
SELECT adext.*, a.*, p.name as parent, p.id as parentid, c.name as cat, c.id as catid,u.username as user,u.name as fullname  
  FROM acatf_adsmanager_ads as a
  LEFT JOIN acatf_paidsystem_ads as adext
  ON a.id = adext.id  
  INNER JOIN acatf_adsmanager_adcat as adcat
  ON adcat.adid = a.id  
  LEFT JOIN acatf_users as u
  ON a.userid = u.id  
  INNER JOIN acatf_adsmanager_categories as c
  ON adcat.catid = c.id  
  LEFT JOIN acatf_adsmanager_categories as p
  ON c.parent = p.id  
  WHERE  1  
  [b]AND (a.ad_poliglot LIKE '%,r,%' )[/b]
  AND  a.published = 1
  AND c.published = TRUE  
  AND c.id IN (10,1,2,3,4,5,6,7,8,9)  
  GROUP BY a.id
  ORDER BY a.date_created DESC ,a.id  DESC
  LIMIT 0, 20

 AND (a.ad_poliglot LIKE '%,r,%' )
почему то в запросе нет запрошенyого значения rus, а только буковка r

полез разбираться, нашел место где формируется этот запрос
находиться это счастье в файле /administrator/components/com_adsmanager/models/field.php
и выглядит этот участок кода вот так:

Код
foreach($fields as $fsearch){
switch($fsearch->type)
{
case 'multicheckbox':
case 'multiselect':
$value = JRequest::getVar( $fsearch->name, array() );
for($i = 0,$nb=count($value);$i < $nb;$i++)
{
if ($i == 0)
$search .= " AND (";
if (version_compare(JVERSION,'1.7.0','<')) {
                            $search .= "a.$fsearch->name LIKE '%,".$this->_db->getEscaped($value[$i],true).",%'";
                        }else{
                            $search .= "a.$fsearch->name LIKE '%,".$this->_db->escape($value[$i],true).",%'";
                        }
if ($i < $nb - 1)
$search .= " OR ";
else
$search .= " )";
}
break;
            ...

Может кто пояснит мне, почему в запрос не попадает значение, выбранное в выпадающем списке, а на его месте оказывается буковка r?

Забивал приведенный выше запрос непосредственно в phpMyAdmin, и если буковку r заменить на rus то все норм ищется.

В чем проблема? Помогите! !
« Последнее редактирование: 13.05.2016, 16:28:08 от orsy »
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
ПОБЕДИЛ!

Проблема была в том, что оператор switch в качестве аргумента case принимал тип поля, который был указан при создании поля в как основной, а нужно было ему передать тип, который был указан как тип поля для поиска.

Теперь все заработало!

Для тех кому интересно вот исправленный код

Код

foreach($fields as $fsearch){
$searchTypeVal = json_decode(JRequest::getVar( $fsearch->name, array() ));
//switch($fsearch->type)
switch($searchTypeVal->searchtype_render)
{
case 'multicheckbox':
case 'multiselect':
$value = JRequest::getVar( $fsearch->name, array() );
for($i = 0,$nb=count($value);$i < $nb;$i++)
{
if ($i == 0)
$search .= " AND (";
if (version_compare(JVERSION,'1.7.0','<')) {
                            $search .= "a.$fsearch->name LIKE '%,".$this->_db->getEscaped($value[$i],true).",%'";
                        }else{
                            $search .= "a.$fsearch->name LIKE '%,".$this->_db->escape($value[$i],true).",%'";
                        }
if ($i < $nb - 1)
$search .= " OR ";
else
$search .= " )";
}
break;
...

*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Фигню я какую-то намутил (( не работает пока поиск, копаю дальше, ибо получить тип поля не получилось пока что...
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Короче вот будет самое правильное как показано ниже. Пришлось добавить еще один кейс обработки поля на тот случай когда изначально тип полу мультивыборный, а тип для поиска одиночная выпадашка + добавил под это логику

Код

function getSearchFieldsSql($fields)
    {
    if (isset($this->searchSQL)&&($this->searchSQL != ""))
    return $this->searchSQL;
   
    $search = "";
$plugins = $this->getPlugins();
foreach($fields as $fsearch){
$searchTypeRender = $fsearch->options->searchtype_render;
if($fsearch->type == 'multicheckbox' || $fsearch->type == 'multiselect'){
if($searchTypeRender == 'select'){
$searchTypeRender = 'selecttosheck';
}
}
if(!$searchTypeRender){
$searchTypeRender = $fsearch->type;
}
//switch($fsearch->type)
switch($searchTypeRender)
{
case 'multicheckbox':
case 'multiselect':
$value = JRequest::getVar( $fsearch->name, array() );
for($i = 0,$nb=count($value);$i < $nb;$i++)
{
if ($i == 0)
$search .= " AND (";
if (version_compare(JVERSION,'1.7.0','<')) {
                            $search .= "a.$fsearch->name LIKE '%,".$this->_db->getEscaped($value[$i],true).",%'";
                        }else{
                            $search .= "a.$fsearch->name LIKE '%,".$this->_db->escape($value[$i],true).",%'";
                        }
if ($i < $nb - 1)
$search .= " OR ";
else
$search .= " )";
}
break;

case 'selecttosheck':
$value = JRequest::getVar( $fsearch->name, "");
if ($value != ""){
if (version_compare(JVERSION,'1.7.0','<')) {
$search .= " AND ( a.$fsearch->name LIKE '%,".$this->_db->getEscaped($value,true).",%' )";
}else{
$search .= " AND ( a.$fsearch->name LIKE '%,".$this->_db->escape($value,true).",%' )";
}
}
break;
...

« Последнее редактирование: 17.05.2016, 23:29:00 от orsy »
*

Ramil8009

  • Захожу иногда
  • 147
  • 1 / 1
У меня тоже не работает поиск, указанный код проблему не решил. У вас работает?
*

moonaway

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Указывайте версию, пожалуйста...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с RSS

Автор uf1976

Ответов: 17
Просмотров: 8095
Последний ответ 14.07.2020, 12:31:40
от khan-alex
Проблема с изображениями

Автор ExpertZews

Ответов: 0
Просмотров: 1327
Последний ответ 26.07.2016, 21:08:12
от ExpertZews
Проблема с объявлениями на русском - AdsManager

Автор svkpro

Ответов: 24
Просмотров: 5608
Последний ответ 13.10.2015, 12:26:18
от IzrA
Проблема в фильтре AdsManager - mod_adsmanager_search

Автор Pavel_H

Ответов: 0
Просмотров: 1357
Последний ответ 04.09.2015, 19:51:07
от Pavel_H
Проблема AdsManager + gmap

Автор damirkazan

Ответов: 0
Просмотров: 1481
Последний ответ 29.08.2015, 19:06:06
от damirkazan