Новости 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 Гость просматривают эту тему.
  • 23 Ответов
  • 1338 Просмотров
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Использую Virtuemart3.
Имеется подобное дерево категорий: Категория1->Категория2->Продукт
Требуется взять фото товара как изображение для Категория1 из Продукт1.
Используя код ниже всё получается, но только если мы ставим этот код для Категория2..
Прошу помощи, пытался всячески адаптировать код, но не получается.

Код
          <?php
$productModel = VmModel::getModel('product');
$prod_in_category = $productModel->getProductListing(false, 1, false, true, true, true, $category->virtuemart_category_id);
$productModel->addImages($prod_in_category[0],1);
if(!empty($prod_in_category[0]->images[0])){
echo $prod_in_category[0]->images[0]->displayMediaThumb("",false);
} else {
echo $category->images[0]->displayMediaThumb("",false);
}
 ?>
« Последнее редактирование: 20.09.2020, 10:51:20 от Damarkuzz »
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
А где Вы хотите выводить такое фото категории: на странице категории или в списке категорий?

Если в списке - такой подход не очень хорош с точки зрения быстродействия и нагрузки.

Но могут быть и другие варианты достижения цели.
Возможно, будет интересно: Интеграция с Ozon
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Думаю, более оптимальным решением было бы сделать скрипт, который пробегается по категориям и, если у них нет изображения, то проставляет, взяв из товара, генерируя нужный размер. Можно даже нужный формат, например, webp.
Такой скрипт запускать по расписанию, скажем, 1-2 раза в день.
Возможно, будет интересно: Интеграция с Ozon
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
В макете категории Вирт
Код
$productModel = VmModel::getModel('Product');
$productModel->addImages($this->products[0]);
if(!empty($this->products[0]->images[0]))
echo $this->products[0]->images[0]->displayMediaThumb ('class="sample-product__img"', FALSE);
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
В макете категории Вирт

Почему-то мне кажется, что картинка нужна не для вывода в макете категории )
Но дождёмся ответа ТС.
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
В макете категории Вирт
Код
$productModel = VmModel::getModel('Product');
$productModel->addImages($this->products[0]);
if(!empty($this->products[0]->images[0]))
echo $this->products[0]->images[0]->displayMediaThumb ('class="sample-product__img"', FALSE);
Благодарю за ответы. Проблема в том, что требуется вызвать не фото продуктов категории первичной вложенности, а продукты категории вторичной вложенности.
То есть:
   Категория 1
   -Категория 2
   --Товар 1
Нужно, чтобы для категории 1 вызывалось изображение Товар 1.

Надеюсь, объяснил понятно, не запутал.
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
А где Вы хотите выводить такое фото категории: на странице категории или в списке категорий?
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
На странице категории
Для самой этой категории или Для её подкатегорий?
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Для самой этой категории или Для её подкатегорий?
Для самой категории, которая Категория 1
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Думаю, Вы можете получить id первой дочерней категории, например, так:

Код
if (!empty($this->category->children[0]->virtuemart_category_id)) {
    $sub_id = $this->category->children[0]->virtuemart_category_id;
    // код, используя $sub_id
}

а потом подставить $sub_id в $prod_in_category вместо $category->virtuemart_category_id
Возможно, будет интересно: Интеграция с Ozon
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Возможно, в Вашем случае $this не надо.
Вы правите переопределение шаблона? Или какой файл?
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Возможно, в Вашем случае $this не надо.
Вы правите переопределение шаблона? Или какой файл?

Путь: /components/com_virtuemart/views/category/tmpl/default.php
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Возможно, в Вашем случае $this не надо.
Вы правите переопределение шаблона? Или какой файл?
Вставляю код:
Код
     <?php
$productModel = VmModel::getModel('product');
$prod_in_category = $productModel->getProductListing(false, 1, false, true, true, true, $sub_id);
$productModel->addImages($prod_in_category[0],1);
if (!empty($category->children[0]->virtuemart_category_id)) {
$sub_id = $category->children[0]->virtuemart_category_id;
}
else {
echo $category->images[0]->displayMediaThumb("",false);
}
?>
Ничего не отображается, но и страница не крашится.
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Хотя нет, крашится с ошибкой
Код
Call to a member function displayMediaThumb() on null
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Вставляю код:
Код
     <?php
$productModel = VmModel::getModel('product');
$prod_in_category = $productModel->getProductListing(false, 1, false, true, true, true, $sub_id);
$productModel->addImages($prod_in_category[0],1);
if (!empty($category->children[0]->virtuemart_category_id)) {
$sub_id = $category->children[0]->virtuemart_category_id;
}
else {
echo $category->images[0]->displayMediaThumb("",false);
}
?>
Только это вставили или ещё условие, которое я писал?
Покажите целиком.
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Благодарю всем за помощь, в итоге работает для моей задачи данный код:
Код

<?php
    $productModel = VmModel::getModel('product');
    $sub_id = $this->category->children[0]->virtuemart_category_id;
    $prod_in_category = $productModel->getProductListing(false, 1, true, true, true, true, $sub_id);
    $productModel->addImages($prod_in_category[0],1);
    echo '<img class="def1-cat-img" src="'.$prod_in_category[0]->file_url.'">';
?>
Отдельная благодарность @rsn
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Код
<?php
    $productModel = VmModel::getModel('product');
    $sub_id = $this->category->children[0]->virtuemart_category_id;
    $prod_in_category = $productModel->getProductListing(false, 1, true, true, true, true, $sub_id);
    $productModel->addImages($prod_in_category[0],1);
    echo '<img class="def1-cat-img" src="'.$prod_in_category[0]->file_url.'">';
?>

Я бы всё-таки предложил вставить условие
Код
if (!empty($this->category->children[0]->virtuemart_category_id)) {
    // код
}
Иначе - если, в категории не будет подкатегорий, то результат может быть для Вас неожиданным.
Возможна ошибка. Или предупреждение. Или вывод фото товара из Корневой категории.

Кроме того, лучше делать такие правки не в этом файле:
Путь: /components/com_virtuemart/views/category/tmpl/default.php
(его лучше не трогать)
- а сделать переопределение этого файла в своём шаблоне. Так корректнее. VirtueMart поддерживает переопределения.
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Я бы всё-таки предложил вставить условие


Вот так получается, в общем. В категории 2 на всех страницах подобного шаблона не грузит фотографию первой категории. Код, который Вы помогли составить отображается в "Категория 1"
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
Код, который Вы помогли составить отображается в "Категория 1"
Вы же и спрашивали для Категория 1  ^-^
Кто же знал, что Вам надо, что этот же был расчитан одновременно на 2 случая )

Попробуйте так:
Код
if (!empty($this->category->children[0]->virtuemart_category_id)) {
    // код для Категории 1
}
else {
    // код для Категории 2, когда берет фото просто дочернего товара
}
(если я правильно понял, как выводите Категории 2)
Возможно, будет интересно: Интеграция с Ozon
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
не грузит фотографию первой категории
Если это подкатегории - для подкатегории с названием "3" установлено фото?
(как для 3Т, например)
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
Если это подкатегории - для подкатегории с названием "3" установлено фото?
(как для 3Т, например)
Нет, у всех категорий вообще нет изображений, оно есть только у фото. Моя задача сделать так, чтобы не требовалось добавлять фото для категорий.
Спойлер
[свернуть]
*

rsn

  • Давно я тут
  • 520
  • 34 / 3
А какой файл и фрагмент кода у Вас отвечает за вывод изображений для категорий 3Т, 5, 5Т на этой странице, которую Вы показали выше?
Возможно, будет интересно: Интеграция с Ozon
*

Damarkuzz

  • Захожу иногда
  • 116
  • 1 / 0
А какой файл и фрагмент кода у Вас отвечает за вывод изображений для категорий 3Т, 5, 5Т на этой странице, которую Вы показали выше?
Решил создать новую тему, мне показалось, что то, что я не упомянул двойной вывод фото уже другой топик Как устранить конфликт вызова фото в Virtuemart3?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 939
Последний ответ 18.07.2024, 08:02:46
от Vastriet
Сортировка по доп. полям на странице списка категории

Автор revil

Ответов: 4
Просмотров: 1443
Последний ответ 02.06.2024, 13:42:45
от tigra-uki
Как сделать картинку ссылкой на материал без Вводного изображения?

Автор OZlaim

Ответов: 0
Просмотров: 807
Последний ответ 30.05.2024, 01:28:37
от OZlaim
Пропало описание товара

Автор AnnaFadeeva

Ответов: 2
Просмотров: 773
Последний ответ 02.11.2023, 13:32:54
от AnnaFadeeva
Как сделать отображение времени создания материала?

Автор Pzhigalov

Ответов: 0
Просмотров: 856
Последний ответ 27.09.2023, 22:45:29
от Pzhigalov