Новости Joomla

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

art22

  • Захожу иногда
  • 332
  • 2 / 0
Здравствуйте друзья. Есть 3 категории с товарами, товары одинаковые, при открытии категории выходят одинаковые товары. Нужно их как то смешать и фиксировать. чтобы пользователь зашел и не увидел в начале категории те же товары. Как это реализовать?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Как смешать товары в категориях?
« Ответ #1 : 21.08.2023, 08:59:52 »
Здравствуйте друзья. Есть 3 категории с товарами, товары одинаковые, при открытии категории выходят одинаковые товары. Нужно их как то смешать и фиксировать. чтобы пользователь зашел и не увидел в начале категории те же товары. Как это реализовать?
попробовать использовать значение переменной
$this->orderby разное.
это сортировка товаров. http://prntscr.com/Rrle86ETHTnZ
например проверять категорию и выставлять сортировку  сортировка $this->orderby=категори_ид (или случайное число от 1 до 5)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #2 : 21.08.2023, 22:50:52 »
$this->orderby=категори_ид

а куда это вписать? в файл который отвечает за вывод товаров? Если укажу ID категории то в нужном категории  сортировка будет смешанная?

Скажем оставляем категорию 1 таким какой есть а вот 2 и 3 категорию смешиваем
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Как смешать товары в категориях?
« Ответ #3 : 22.08.2023, 08:35:46 »
куда вписать - перечень файлов шаблона есть в ФАКе. [FaQ] JoomShopping - готовые решения
вам нужен form_filters там сортировка вроде віводится/задается.

и я дал логику, причем примерную.
вам надо прописать условия if для проверки категории и внутри условия задавать задавания значение для типа сортировки.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #4 : 22.08.2023, 19:22:49 »
вам надо прописать условия if для проверки категории и внутри условия задавать задавания значение для типа сортировки.

а можете немного подробнее написать а то не очень шарю в программировании чтобы всю цепочку создать
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Как смешать товары в категориях?
« Ответ #5 : 23.08.2023, 07:31:54 »
хотя нет, я вас ввел в заблуждение.
там этот параметр отвечает за направление сортировки, а не саму сортировку.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #6 : 23.08.2023, 12:05:36 »
Так как можно это сделать?)
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #7 : 23.08.2023, 16:44:28 »
Есть 3 категории с товарами, товары одинаковые, при открытии категории выходят одинаковые товары. Нужно их как то смешать и фиксировать. чтобы пользователь зашел и не увидел в начале категории те же товары. Как это реализовать?
Если внятно объясните что хотите получить, то может быть и можно будет сделать...
Если во всех 3-х категориях одинаковые товары, то как не мешай их списке, они все равно останутся одинаковыми.
Лучше показать что хотите с примерами, а так гадать, нет на это времени.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

sivers

  • Живу я здесь
  • 2593
  • 360 / 0
Re: Как смешать товары в категориях?
« Ответ #8 : 23.08.2023, 19:17:44 »
Если товары умещаются на одну страницу, то можно перемешивать их функцией shuffle.

Если товары выводятся с пагинацией, то такое перемешивание будет давать эффект только в пределах страницы. В этом случае лучше под каждую категорию допавить поле с индексом, все их заполнить рандомными числами и для каждой категории сортировать по своему полю. Как менять поле сортировки - вам уже предложили выше.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #9 : 25.08.2023, 10:28:04 »
Если внятно объясните что хотите получить, то может быть и можно будет сделать...
Если во всех 3-х категориях одинаковые товары, то как не мешай их списке, они все равно останутся одинаковыми.

да, товары будут одинаковыми, но в началах страницы они не будут одинаковые. скажем. 1 категория выводит товары по ID. 2 категория выводит товары по ID но задом на перед (в итоге в начальных страницах товары не будут повторять первую категорию), 3 категория выводит товары рандомно, но при переключении страниц чтобы он не показывал те товары которые пользователь увидел. лишь в конце пользователь увидит что товары одинаковые
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #10 : 25.08.2023, 10:40:01 »
Пока Вы не объясните всю картину, почему нужно размещать одинаковые товары в трех категория и не объясните что Вы хотите этим добиться, даже вникать не буду.
Во-первых, я в этом не вижу смысла (в таком размещении).
Во-вторых, если Вы их даже перемешаете, что это изменит? Они все равно будут одинаковые!

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

Akeksandr

  • Захожу иногда
  • 396
  • 12 / 0
Re: Как смешать товары в категориях?
« Ответ #11 : 25.08.2023, 10:47:27 »
Есть 3 категории с товарами, товары одинаковые,
да, товары будут одинаковыми, но в началах страницы они не будут одинаковые...
 
 лишь в конце пользователь увидит что товары одинаковые
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #12 : 25.08.2023, 21:43:28 »
Во-вторых, если Вы их даже перемешаете, что это изменит? Они все равно будут одинаковые!
Есть такое понятие как поведенческой фактор, это очень сильно влияет на раскрутку сайта, если  клиент заходит на сайт он должен больше времени провести на сайте, а если зайдет на сайт где в 3х категориях одинаковые товары он даже не станет просматривать другие категории... та как все 3 страницы раскручиваются по разным ключевым словам, то при открывании всех 3х категориях должны отображаться разные товары. так как может зайти в 1ую категорию пролистать 4 страницы а дальше не листать, зайдет в 2ую категорию увидит что там немного другие товары, а не одно и тоже то что она посмотела в 3х страницах.
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #13 : 26.08.2023, 10:56:09 »
та как все 3 страницы раскручиваются по разным ключевым словам
Судя по всему Вы не разбираетесь в продвижении...
Если Вы как выразились "раскручиваете страницы по разным ключевым словам" и они никак не связаны с этими страницами, то результата будет = 0.
Если это не Яндекс.Директ, а именно СЕО-продвижение.

Если эти страницы в принципе одинаковые, тем более с одинаковым контентом (с одинаковыми товарами) то робот посчитает их дублями и "склеит" их.
В индекс попадет только первая проиндексированная страница, а остальные в дубли. Для робота не важен порядок расположения товаров на странице. Люди кстати тоже не дураки...

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

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #14 : 26.08.2023, 23:53:03 »
дублей там нет так как canonical стоит! товары в размешку с другими категориями по этому там количество страниц разные, долго все описывать как все работает. это сделаны для того чтобы Пф был лучше. на другом движке я это делал и все отлично работает, а на этом движке не знаю как
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #15 : 27.08.2023, 08:24:24 »
Ну если решили что "сами с усами", то объясню как сделать (перемешать список товаров)... Правда не знаю как будет работать пагинация (навигация по страницам) при этом

Если не писать отдельное расширение Вам нужен файл list_products.php

В файле нужно добавить следующий код сразу после этой строчки кода - defined('_JEXEC') or die('Restricted access');

Код
$arr = (array)$this->rows;
$arr_shuffle = shuffle($arr);
$this->rows = (object)$arr_shuffle;
Не гарантирую что будет работать. И кстати если Вы это делаете в шаблоне, то будут перемешены все списке, не только списки товаров категорий, но и производителей и списки по меткам (то есть все списки).

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

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #16 : 27.08.2023, 21:26:05 »
Не гарантирую что будет работать.
к сожалению не сработал, вылезли ошибки

Warning: include(C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products): failed to open stream: Permission denied in C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products\list_products.php on line 16

Warning: include(): Failed opening 'C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products/' for inclusion (include_path='.') in C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products\list_products.php on line 16


16 линия <?php include(dirname(__FILE__)."/".$product->template_block_product);?>
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #17 : 28.08.2023, 07:00:01 »
Если не писать отдельное расширение Вам нужен файл list_products.php

В файле нужно добавить следующий код сразу после этой строчки кода - defined('_JEXEC') or die('Restricted access');

Код
$arr = (array)$this->rows;
$arr_shuffle = shuffle($arr);
$this->rows = (object)$arr_shuffle;
Проверил свой код, да не работает. Наверное в шаблоне не получиться это сделать.

к сожалению не сработал, вылезли ошибки

Warning: include(C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products): failed to open stream: Permission denied in C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products\list_products.php on line 16

Warning: include(): Failed opening 'C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products/' for inclusion (include_path='.') in C:\OSPanel\domains\1.ru\templates\vina_shoeshop\html\com_jshopping\list_products\list_products.php on line 16

16 линия <?php include(dirname(__FILE__)."/".$product->template_block_product);?>

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

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #18 : 30.08.2023, 12:03:06 »
нашел модуль https://www.webdesigner-profi.de/joomla-webdesign/shop/modules/module-random-product.html не знаю работает ли, найду бесплатную версию отпишусь
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #19 : 30.08.2023, 12:08:44 »
Во-первых, это модуль, а не список товаров. А Вам нужно выводить список товаров, там нет пагинации (навигации по страницам).
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Как смешать товары в категориях?
« Ответ #20 : 30.08.2023, 12:09:24 »
нашел модуль https://www.webdesigner-profi.de/joomla-webdesign/shop/modules/module-random-product.html не знаю работает ли, найду бесплатную версию отпишусь
https://nevigen.com/ru/modules/modul-sluchajnykh-tovarov-joomshopping.html
только для Ж3
но это не решение вообще :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #21 : 31.08.2023, 00:15:47 »
Во-первых, это модуль, а не список товаров. А Вам нужно выводить список товаров, там нет пагинации (навигации по страницам).

разработчик говорил что может помочь. По этому решил сначала протестить так и не нашел)

https://nevigen.com/ru/modules/modul-sluchajnykh-tovarov-joomshopping.html

этот модуль чисто для вывода рандомных товаров в определенном месте, совершенно другое)
*

art22

  • Захожу иногда
  • 332
  • 2 / 0
Re: Как смешать товары в категориях?
« Ответ #22 : 31.08.2023, 00:18:15 »
$arr = (array)$this->rows;
$arr_shuffle = shuffle($arr);
$this->rows = (object)$arr_shuffle;

думал использовать этот код с сочетанием....
указав нужную категорию чтобы размешал в нужных категории, жаль не сработал

Код
<?php
$categories_ids = '1,3,10,21';
$categories_ids_array = explode(',', $categories_ids);
if (!in_array($this->category_id, $categories_ids_array)):
?>
....
<?php endif; ?>
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Как смешать товары в категориях?
« Ответ #23 : 31.08.2023, 08:10:38 »
думал использовать этот код с сочетанием....
указав нужную категорию чтобы размешал в нужных категории, жаль не сработал
Я Вам выше написал, что проверил свой код и он в шаблоне не работает.
Проверил свой код, да не работает. Наверное в шаблоне не получиться это сделать.
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Не удаляются товары из корзины (Multi basket ajax)

Автор goga_pgasovav

Ответов: 0
Просмотров: 1203
Последний ответ 14.08.2024, 23:19:57
от goga_pgasovav
Цифровые товары (для скачивания)

Автор nengyryt

Ответов: 6
Просмотров: 1597
Последний ответ 20.05.2024, 11:26:16
от Vastriet
Как исключить отображение текста в определенных категориях?

Автор art22

Ответов: 4
Просмотров: 1437
Последний ответ 25.07.2023, 19:53:58
от art22
Модуль JShopping Search plus не ищет товары

Автор Mick_20

Ответов: 5
Просмотров: 906
Последний ответ 12.12.2021, 10:12:13
от Mick_20
Вывести все товары в категорию верхнего уровня

Автор ShopES

Ответов: 1
Просмотров: 512
Последний ответ 06.08.2021, 15:44:50
от ShopES