Новости Joomla

Astroid обновился до версии 3.3.7!

Astroid обновился до версии 3.3.7!

Astroid — это мощный фреймворк для дизайнеров и разработчиков, позволяющий создавать адаптивные, быстрые и надежные веб-сайты и шаблоны на базе Joomla.

Главное в новой версии:

-   Исправлена загрузка файлов макетов

В предыдущем крупном релизе Astroid 3.3.6 были сделаны важные улучшения:

Основные моменты:

  • Улучшенный UI/UX в ключевых областях конфигурации
  • Повышенная стабильность и согласованность в Layout Builder и Form Builder
  • Исправления ошибок на основе отзывов сообщества
  • Улучшенная обработка визуальных эффектов, границ и шрифтов

Улучшения:

  • Обновленный UX Layout Builder
  • Улучшенный эффект предзагрузчика
  • Улучшенный стиль границ
  • Улучшенный UI/UX вкладки «Layout» в Template Options

Исправления ошибок:

  • Решены проблемы с некорректными динамическими значениями
  • Исправлен Color Transform при прокрутке
  • Устранены проблемы с работой Form Builder в Article Layout и Module Layout Builder
  • Исправлена проблема с созданием ненужных временных файлов при обработке шрифтов

Скачать: https://github.com/templaza/astroid-framework/releases/tag/v3.3.7

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

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

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
Поиск по фразе целиком
« : 02.02.2013, 10:57:41 »
Подскажите как можно следующий код привести к тому, чтобы поиск осуществлялся по фразе целиком.
Например, есть запрос "Петров Иван". Нужно чтобы искал именно "Петров Иван", а не выдавал результаты "Петров", "Иван". Просто со словом "Иван", выводятся такие люди, как "Сидоров Иван".
Цитировать
$sql .= " AGAINST ({$text} IN BOOLEAN MODE)";
Вообще то вопрос относится к компоненту k2, но в данном разделе ответа не дождешься.
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

SmiP

  • Захожу иногда
  • 265
  • 35 / 0
Re: Поиск по фразе целиком
« Ответ #1 : 02.02.2013, 15:07:54 »
Чтобы не ждать тык
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
Re: Поиск по фразе целиком
« Ответ #2 : 02.02.2013, 18:16:11 »
Я уже перелазил куча сайтов, где описывается подобная тема. Однако не получается.
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
Re: Поиск по фразе целиком
« Ответ #3 : 03.02.2013, 10:07:01 »
Разве никто в этом не разбирается?
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
Re: Поиск по фразе целиком
« Ответ #4 : 05.02.2013, 14:14:21 »
Может за денежку кто сделает?
Вот часть кода из файла ...\components\com_k2\models\itemlist.php, который, как я думаю, отвечает за этот поиск
Цитировать
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)
                {

                    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);
            }
            $sql .= " AGAINST ({$text} IN BOOLEAN MODE)";

        }

        return $sql;
    }
« Последнее редактирование: 05.02.2013, 14:17:34 от kisBoss »
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
Re: Поиск по фразе целиком
« Ответ #5 : 06.02.2013, 11:39:47 »
Вопрос решен при помощи уважаемого Dron79 в разделе коммерчиских вопросов.
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поиск по выборке

Автор Axelkz

Ответов: 3
Просмотров: 1528
Последний ответ 11.12.2019, 12:43:40
от beliyadm
Стандартный поиск если 0 результатов

Автор vladsklyar

Ответов: 1
Просмотров: 1152
Последний ответ 23.11.2016, 21:35:05
от vladsklyar
поиск как его включить?

Автор hels

Ответов: 2
Просмотров: 1104
Последний ответ 28.12.2015, 12:02:38
от hels
Поиск по отдельно-взятой категории

Автор Igoritaly

Ответов: 0
Просмотров: 942
Последний ответ 02.11.2015, 08:28:09
от Igoritaly
Опять про поиск на сайте

Автор Stasweb

Ответов: 2
Просмотров: 1353
Последний ответ 03.10.2015, 17:46:08
от voland