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

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
« Последнее редактирование: 11.04.2013, 16:41:41 от nevigen »
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #1 : 02.02.2013, 21:57:08 »
данный темплейт или не доработан или я что-то не так делаю..
схема как должна выглядеть категория магазина наглядно предоставлена выше
есть категории, а в них товары группируются по производителям
я делаю следующее..
с учетом установленных аддонов и плагина..
создаю пункт меню.. выбираю для него Show -> Category or Manufacturer
Category ID ставлю 1
Далее иду в JS -> Создание меню в этот новый созданный пункт и ставлю для него тип меню group manufacturer
результат..
страница категории выдает ошибку 500
500 - Представление не найдено [name, type, prefix]: jshopping, HTML, jshoppingView
если же для пункта меню не ставить настроек
Show -> Category or Manufacturer
Category ID ставлю 1
то в категории отражаются все товары из всех категорий магазина по производителям
*

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Сортировка по производителю
« Ответ #2 : 03.02.2013, 00:02:44 »
Не понял вас.

Создайте пункт меню Через "Addon menu builder"

или
Пришлите мне доступ к Админке
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #3 : 03.02.2013, 02:00:37 »
сайт на локалке..
но, как говорят, от перемены мест слагаемых сумма не меняется.

Объясню.
возьму в пример, то же что описывал SWoz.. про технику
в админке JS созданы следующие категории
- ноуты
- мониторы
- телефоны
в каждую категорию добавлены товары. в ноуты -> ноуты и т.д. и у каждого товара свой производитель
что понятно

админка на русском. а значит "Addon menu builder" он же "Создание меню" в JS
итак мне нужен первый пункт меню ноуты (в котором должны выводится все ноуты по производителю)
иду в "Создание меню" нажимаю "Создать". вношу заголовок, алиас, выбираю ранее созданное меню под данные пункты
и справа задаю тип пункта group manufacturer

если открыть сайт и сразу зайти в этот пункт меню "ноуты", то в нем отражаются все товары из категорий ноуты, мониторы, телефоны по производителям

поэтому я иду в Меню -> Каталог  в котором был создан пункт меню этим "Создание меню" и задаю параметр

и в итоге когда нажимаешь теперь на пункт меню "ноуты" на сайте.. выдается ошибка
500 - Представление не найдено [name, type, prefix]: jshopping, HTML, jshoppingView
*

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Сортировка по производителю
« Ответ #4 : 03.02.2013, 17:14:47 »
Неправильно - Вы выбрали уже другой контролер (отображения категории)
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #5 : 03.02.2013, 19:09:27 »
так и в чем логика данного аддона за 36 евро?
чтобы в одном пункте меню отразить все товары из всех категорий, но по производителям?
Цитировать
если открыть сайт и сразу зайти в этот пункт меню "ноуты", то в нем отражаются все товары из категорий ноуты, мониторы, телефоны по производителям
ведь магазин не состоит из одного пункта меню.
задача состоит в том, чтобы в каждом пункте меню (ноуты, мониторы, телефоны) отображались свои товары по производителям.
а сделать с этим аддоном этого нельзя, потому что нет возможности выбрать категорию для пункта меню!
как тогда решить эту ситуацию? потому что получается, что зря потрачены деньги.
*

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Сортировка по производителю
« Ответ #6 : 03.02.2013, 21:32:09 »
Задать категорию можна
Сейчас нет возможности создать пункт меню с заданой категорией (позже поправим plugin menu builder group products)

1. Вручную через линк
index.php?option=com_jshopping&controller=group_products&task=man&category_id=1

2. поправить Базу

table
jos_jshopping_menu_config

name=Group Manufacturer

задайте для поля params
a:1:{i:0;O:8:"stdClass":5:{s:3:"key";s:11:"category_id";s:4:"name";s:11:"Category ID";s:7:"require";i:0;s:4:"type";s:4:"text";s:7:"options";a:0:{}}}
« Последнее редактирование: 03.02.2013, 21:44:18 от victorantoniak »
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #7 : 03.02.2013, 21:53:23 »
ок. спасибо. я попробую.
по результатам отпишусь
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #8 : 04.02.2013, 09:27:33 »
пункт 2 отлично работает
спасибо!
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #9 : 05.02.2013, 14:28:34 »
есть несколько проблем.
1. ранее был настроен дизайн категорий в соответствии с дизайном
файл product.php
templates\default\list_products\product.php
после установки тип пункта group manufacturer
дизайн снова отражается стандартный
какой шаблон, отображения товаров в категории, подгружает данная строка?
Код: php
<?php include(dirname(__FILE__)."/".$product->template_block_product);?>
2. в карточке товара не работают табы!
если тип пункта поставить на category табы в товаре снова отражаются
что может мешать в новом шаблоне отражению табов в карточке товара?
*

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Сортировка по производителю
« Ответ #10 : 05.02.2013, 16:29:44 »
1. com_jshopping\templates\addons\group_products

Линк на сайт?
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #11 : 05.02.2013, 16:55:25 »
это вопрос про правильность пути? или просьба скинуть ссылку на сайт? а то не очень понятно..

мне просто интересно какой шаблон используется чтобы исправить его в соответствии с дизайном
до этого за вид категории отвечал файл product.php из
templates\default\list_products\product.php
после установки типа пункта меню group manufacturer
шаблон применяется man.php из
com_jshopping\templates\addons\group_products
но в этом файле за вывод самого товара отвечает строка
Код: php
<?php include(dirname(__FILE__)."/".$product->template_block_product);?>
и не понятно какой шаблон она грузит

а что с пунктом 2?
*

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Сортировка по производителю
« Ответ #12 : 05.02.2013, 17:19:01 »
1. components\com_jshopping\templates\addons\group_products\product.php
2. Нет ничего общего (Возможно неправельный линк...)
Линк на сайт?
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #13 : 05.02.2013, 18:25:37 »
1. а понятно теперь. спасибо
2. отпал вопрос. все ок. просто в вверху в начале отразились товары в которых табы еще не поставлены были.

но возник другой вопрос
а есть какая-то возможность отобразить производителей в категории в определенном порядке?
в каждой категории свой порядок
*

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Сортировка по производителю
« Ответ #14 : 05.02.2013, 19:29:10 »
Нет такой возможности.
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #15 : 06.02.2013, 00:26:08 »
нашлись другие проблемы...
1. заданный заголовок для пункта меню не отражается в title. там написано Товары
2. Заданный заголовок не отражается на странице пункта меню в виде заголовка над товарами
3. параметры для ссылки вообще не применяются

4. по умолчанию для каждого созданного пункта в этом аддоне выводятся title и мета теги со словом "Товары"

5. при переходе в товар, категория перестает подсвечиваться активным пунктом
*

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Сортировка по производителю
« Ответ #16 : 06.02.2013, 00:38:31 »
будем исправлять
5 - Проблема в Пункте меню магазин.
*

fiksius

  • Захожу иногда
  • 65
  • 1 / 0
Re: Сортировка по производителю
« Ответ #17 : 06.02.2013, 00:59:03 »
1-4
а когда будут исправлены?
5. не совсем понимаю причем главный пункт?
для пункта меню тип выбран группировка по производителю и выбрана категория. товар создан в этой категории.
но при переходе в него категория не подсвечивается..подсвечивается только главный пункт "каталог"
помоему это тоже проблема именно в аддоне через который создаются пункты меню

P.S.
в файле components\com_jshopping\templates\addons\group_products\product.php
тоже есть проблемы.. например не отображается включенный параметр отражать производителя товара..
может вообще было бы лучше сделать в файле man.php отсылку к файлу templates\default\list_products\product.php ?
ну это как предложение..
просто мне вот еще предостоит поставить пару аддонов к примеру аякс корзину.. и уведомление об отсутствующем товаре и как оно встанет в данный файл
components\com_jshopping\templates\addons\group_products\product.php?
« Последнее редактирование: 06.02.2013, 01:04:06 от fiksius »
*

victorantoniak

  • Завсегдатай
  • 1579
  • 185 / 2
  • JoomShopping Team
Re: Сортировка по производителю
« Ответ #18 : 09.02.2013, 19:09:34 »
Новая версия
Group products 1.1.3
plugin menu builder group products 1.0.2

5- addon не создает URL (Магазин создает URL )
Киньте линк на сайт.


Разница между templates\default\list_products\product.php и templates\addons\group_products\product.php только в отображении производителя
Если групировка по производителю его не нужно отображать.

Можно просто заменить содержимое файла templates\addons\group_products\product.php на templates\default\list_products\product.php

Аддоны будут работать.
*

zaur111

  • Захожу иногда
  • 233
  • 6 / 0
  • Заур Магомедов
Re: Сортировка по производителю
« Ответ #19 : 10.04.2013, 15:32:07 »
Купил данный аддон. Несмотря на то. что версия была обновлена там все же есть ошибки. Например, когда захожу в пункт меню каталога Уличные светильники адрес имеет вид - http://ledspectr:1010/ulichnye-magistralnye-svetilniki.html, пункт меню подсвечивается. Открывается список товаров, отсортированные по производителю. Если щелкну по любому товару, попадаю в карточку товара, адрес имеет вид - http://ledspectr:1010/component/jshopping/product/view/1/1.html?Itemid=0. Пункт меню "Уличные светильники" перестает подсвечиваться и в хлебных крошках появляется промежуточный путь "Уличные светильники", который ведет не на страницу списка товаров, отсортированных по производителю, а на стандартный список товаров в категории. Как это исправить? Мне кажется данный аддон еще не совсем доделан. Отдал за него 36 евро.  

И еще, как вывести на странице списка товара, отсортированные по производителям заголовок категории?
« Последнее редактирование: 10.04.2013, 16:07:36 от zaur111 »
*

zaur111

  • Захожу иногда
  • 233
  • 6 / 0
  • Заур Магомедов
Re: Сортировка по производителю
« Ответ #20 : 11.04.2013, 10:59:19 »
Что нет никаких соображений?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться