Новости Joomla

Обновление пакета плагинов JL Like 5.0

Обновление пакета плагинов  JL Like 5.0

Обновление пакета плагинов JL Like 5.0.0Команда JoomLine рада представить долгожданное обновление плагина социальных кнопок JL Like — версию 5.0.0! В этом релизе мы сделали акцент на совместимости с последними версиями Joomla, улучшении производительности и расширении функционала.👩‍💻 Что нового в JL Like 5.0.0?- Полная совместимость с Joomla 5 — теперь плагин работает на всех актуальных версиях Joomla, включая Joomla 5.- Рефакторинг и оптимизация кода — проведена масштабная чистка и обновление внутренних классов для повышения стабильности и скорости работы.- Удаление устаревших зависимостей — полностью отказались от использования jQuery, что ускорило загрузку страниц и повысило безопасность.- Обновление CSS и удаление неиспользуемых стилей — интерфейс стал еще легче и современнее.- Удалена поддержка устаревших виджетов — например, функциональность твиттер-виджета вынесена из плагина.- Поддержка twitter:card — улучшена интеграция с социальными сетями для красивого отображения ссылок.- Гибкая настройка счетчиков лайков — теперь можно включать и отключать рандомизацию количества лайков.- Улучшено подключение скриптов — переход на WebAssetManager для более корректной работы с ресурсами.- Обновлены языковые переменныеРасширения всё ещё наследуют старую архитектуру плагинов Joomla 3, но были протестированы на Joomla 5.3.Новость на сайте JoomlineСтраница расширенияGitHub расширения@joomlafeed#расширения

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

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

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Как вытянуть переменные в плагин на скрине, которые меняются по AJAX. Переменную attr[7]. Понимаю что через POST  запрос, но как отслеживать изменения по AJAX? и что значить ajax=1?
https://prnt.sc/SEW9chvGQtT_
*

kit2m2

  • Живу я здесь
  • 3346
  • 273 / 0
  • Беру сайты на полное сопровождение
Как вытянуть переменные в плагин на скрине, которые меняются по AJAX. Переменную attr[7]. Понимаю что через POST  запрос, но как отслеживать изменения по AJAX? и что значить ajax=1?
https://prnt.sc/SEW9chvGQtT_

Сайт с вашим срином не отображается.

Для работы с атрибутами на странице товара Вам нужен файл - /components/com_jshopping/js/functions.js функция в нем - function reloadAttribSelectAndPrice(id_select)

Пример:
Код
$document = JFactory::getDocument();
$document->addCustomTag("<script type=\"text/javascript\">
reloadAttribEvents[reloadAttribEvents.length] = function(json){
jQuery('#dk-block-m').empty();
if (json.available=='0'){
jQuery('#dk-block-m').prepend('".$onorder."').removeClass().addClass('onorder');
} else {
jQuery('#dk-block-m').prepend('".$instock."').removeClass().addClass('instock');
}
}
</script>");

« Последнее редактирование: 23.11.2022, 16:12:10 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Подскажите я получил переменную. С помощью ее я делаю запрос к БД. И мне нужно это запрос вывести в карточки в зависмости от выбранного аттрибута. Куда дальше смотреть? Не могу понять как сделать вывод по  AJAX
*

kit2m2

  • Живу я здесь
  • 3346
  • 273 / 0
  • Беру сайты на полное сопровождение
Подскажите я получил переменную. С помощью ее я делаю запрос к БД. И мне нужно это запрос вывести в карточки в зависмости от выбранного аттрибута. Куда дальше смотреть? Не могу понять как сделать вывод по  AJAX
Свой код покажите, как Вы это делаете.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Делаю в плагине. plugins\jshoppingproducts\plq_qtyattribute\plq_qtyattribute.php


Получаю значение использую
Код
class plgJshoppingproductsPlq_qtyattribute extends JPlugin
{
    public function __construct(&$subject, $config = array())
    {
        parent::__construct($subject, $config);
    }

    public $column;


    public function onBeforeLoadDisplayAjaxAttrib(&$view)
    {
        $attr = JFactory::getApplication()->input->get('attr',[], 'array');
        if (!empty($attr) && !empty($attr[7]))
        {
            $attr_size = $attr[7];

        }

        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query
            ->select('count', 'attr_29', 'attr_7')
            ->.......
            ->order($db->quoteName('attr_29'). ' ASC');

        $db->setQuery($query);
        $column = $db->loadColumn();
return $this->column;
}
public function onAfterDisplayProduct(&$view){
        $view->_tmp_var_qtyattribute = "<div class='stock_in stockin_bold col-12 col-md-12 col-xs-12'>
        в наличии в <span id=''>'.$this->column.'</div>'";
    }

Но я понимаю что событие быстрее срабатывает чем я получаю запрос из базы.
Добавил
Код
class plgAjaxPlq_qtyattribute extends JPlugin
    {
    public function onAjaxPlq_qtyattribute()
    {
        echo '123';
    }
    }

?>
И добавил в js файле
Код
jQuery(document).ready(function() {
    jQuery.ajax({
        url: 'index.php?option=com_ajax&group=jshoppingproducts&plugin=Plg_qtyattribute&format=json',
        type: "post",
        success: function(data)
        {
            var response = jQuery.parseJSON(data);
            console.log(data);
        },
        error: function (data) {
            console.log(data);
        }
    });
});
пишет что URL не найден 404.
echo 123 это как пример чтобы вывести
« Последнее редактирование: 30.11.2022, 12:03:05 от Dolphin4ik_1 »
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Вывести результат запроса в БД, в зависимости на какой атрибут выбран (сделан клик).
*

kit2m2

  • Живу я здесь
  • 3346
  • 273 / 0
  • Беру сайты на полное сопровождение
Вы наобум пишите код? Вдруг сработает?

Причем здесь функция - onBeforeLoadDisplayAjaxAttrib с параметром &$view? У нее совсем другие параметры - (&$product_id, &$change_attr, &$qty, &$attribs, &$freeattr, &$request))

Вам нужно в функции public function onBeforeDisplayProductView(&$view) делать свой запрос в базу данных и потом через этот код
Код
$document = JFactory::getDocument();
$document->addCustomTag("<script type=\"text/javascript\">
reloadAttribEvents[reloadAttribEvents.length] = function(json){
... ... ... ...
}
</script>");

отслеживать выбранную опцию атрибута и по условию выводить то что Вам нужно выводить.

А если Вам нужно выводить просто текст, что данная опция в наличии, то можете использовать уже готовый мой плагин - Товар на складе или Товар под заказ для JoomShopping
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3346
  • 273 / 0
  • Беру сайты на полное сопровождение
Вам нужно в функции public function onBeforeDisplayProductView(&$view) делать свой запрос в базу данных и потом через этот код
Тут запрос на количество и не нужно делать, эти данные и так есть. Если включить показывать кол-во на складе.

Вот пример как это работает: http://kolsold.ru/neokhmelennye-solodovye-ekstrakty/kontsentrat-pshenichnogo-soloda-svetlyj-kpss

Выберите опцию атрибута "Магазин"...
« Последнее редактирование: 30.11.2022, 14:38:23 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
У меня три склада. И 39, 40, 50 размер. В админке склад1- 39 - 2 шт,  склад2 - 39 - 4 шт, склад3-39- 2 шт
Склад1-40 - 2 шт, склад2-40-3шт, склад3-40-0шт и т.д.

И допустим выбирает 39 размер выводятся остатки по всем складам на склад1-2 шт. , склад2-4 шт. , склад3 - 2 шт. Чтобы отоьражались остатки по складам, в жависимости от выбранного размера(аттрибута)
*

kit2m2

  • Живу я здесь
  • 3346
  • 273 / 0
  • Беру сайты на полное сопровождение
И что? Я должен вникнуть и написать Вам решение для ваших складов?

Вы задали вопрос, я дал Вам несколько подсказок, дал направление куда смотреть. Не можете сделать сами? Могу сделать за Вас, за деньги.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Просто немного запутался в этой теме вы говорили что запрос нужно делать к БД, по другому никак.

Вывод остатков каждого атрибута в карточке товара
*

kit2m2

  • Живу я здесь
  • 3346
  • 273 / 0
  • Беру сайты на полное сопровождение
Просто немного запутался в этой теме вы говорили что запрос нужно делать к БД, по другому никак.
Это если Вам нужно вывести одновременно количество рядом с каждым атрибутом.
А если только выбранного, то так как я раньше написал.
По умолчанию уже есть данные количества каждого выбранной опции атрибута при ее выборе. Поэтому запрос в базу данных не нужен!
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Да нужно вывести одноаременно количество рядом с каждым атрибутом. Вот и не могу увязать клик(выбор) аттрибута и вернуть результат запроса к БД на страницу товара.
*

kit2m2

  • Живу я здесь
  • 3346
  • 273 / 0
  • Беру сайты на полное сопровождение
Да нужно вывести одновременно количество рядом с каждым атрибутом. Вот и не могу увязать клик(выбор) аттрибута и вернуть результат запроса к БД на страницу товара.
Тогда я не понимаю, что Вы хотите... Зачем Вам отслеживать клик, если у Вас количество будет выводиться статично? У каждой опции свое...
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

Dolphin4ik_1

  • Захожу иногда
  • 433
  • 3 / 2
Получается если атрибут выбран по умолчанию то выведутся остатки каждого аттрибута. (Рзамер 49) - склад1 остатки, склад2 остатки, склад3 остатки. Выберу размер другой(45) то вывод остатков изменится  - склад1 остатки, склад2 остатки, склад3 остатки. ?
*

kit2m2

  • Живу я здесь
  • 3346
  • 273 / 0
  • Беру сайты на полное сопровождение
Вы нормально можете объяснить что Вы в итоге хотите добиться? Можете это сделать в скайпе
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться