Новости Joomla

Вышли релизы безопасности Joomla 6.1.3 и Joomla 5.4.8

Релиз безопасности Joomla 6.1.3 и Joomla 5.4.8

Проект Joomla! рад сообщить о выходе Joomla 6.1.3 и Joomla 5.4.8. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

Joomla 5+ пакет для интеграции с API Почты России: нормализация данных, расчёт доставки, создание отправлений, партии, документы, возвраты, поиск отделений, справочники и SOAP-отслеживание.

v.3.0.0. Что нового?
Это дальнейшее развитие ранее закрытой Joomla-библиотеки для работы с API сервиса Отправка (для бизнеса) Почты России. Поэтому версия не 1.0.0, а 3.0.0.

Сейчас эта библиотека ушла от собственных реализаций и стала Joomla-обёрткой известного PHP SDK от Lapay Group.

Возможности библиотеки.
- получение настроек аккаунта, точек сдачи и текущего остатка запросов к API;
- нормализация адресов, ФИО и телефонов перед созданием отправления;
- расчёт тарифа и срока доставки;
- создание, поиск, изменение, удаление и возврат заказов в состояние «Новые»;
- проверка надёжности получателя;
- создание партий, просмотр партий и заказов внутри партии;
- генерация пакета печатных документов и формы Ф103;
- создание, изменение и удаление возвратных отправлений;
- поиск отделений по индексу, адресу и координатам, получение сервисов отделения;
- локальный список стран;
- SOAP-отслеживание операций по РПО и работа с билетами пакетного трекинга.

👩‍💻 Joomla-возможности.
В пакете библиотеки WT Otpravkapochtaru есть поля Joomla Form для расширений. Они позволяют работать в интерфейсе Joomla с некоторыми типами данных, получаемых по API из вашего личного кабинета в ЛК Почты России для бизнеса.
На данный момент в библиотеке доступны 3 поля списков, которые отображают доступные в аккаунте ОПС, типы и категории отправлений.
Поддерживаются зависимые списки: значение одного поля обновляется при изменении другого.

Системные требования.
Системные требования в основном связаны с системными требованиями апстрима библиотеки - LapayGroup PHP SDK.
- Joomla 5+
- PHP 8.3+
- Расширения PHP:
-- ext-mbstring
-- ext-simplexml
-- ext-soap (опционально, для трекинга)
-- ext-zip

Ссылки:
- Страница расширения
- GitHub библиотеки и документация

@joomlafeed

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

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
Просмотров: 1859
Последний ответ 11.12.2019, 12:43:40
от beliyadm
Стандартный поиск если 0 результатов

Автор vladsklyar

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

Автор hels

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

Автор Igoritaly

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

Автор Stasweb

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