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

vetal.kampik

  • Захожу иногда
  • 85
  • 0 / 1
Добрый день! Помогите разобраться!
Делал дополнительное описание для групп и товаров по следующим инструкциям:
1) для товаров - Добавление контроллера для формы в админке:
administrator\components\com_jshopping\controllers\products.php
$post['description1_'.$lang->language] = JRequest::getVar('description1'.$lang->id,'','post',"string", 2);
2) для групп - administrator\components\com_jshopping\controllers\categories.php
приблизительно в 145 строку добавляем:
$post = JRequest::getVar('description1'.$lang->id,'','post',"string", 2);
но после обновления JoomShopping до версии 4.14.1 перестало сохранять вносимые изменения, то есть всё работает, все отображается, но когда в поле пишу данные, они не сохраняются.
как правильно прописать в файле administrator\components\com_jshopping\controllers\products.php ? там больше нет тех строк, которые раньше были и соответственно я не знаю что и куда прописать. (в инструкциях это второй шаг)

p.s. отредактировал, дабы не ругали за ссылки на сайт.
« Последнее редактирование: 26.07.2016, 18:29:23 от vetal.kampik »
*

ViktorMah

  • Захожу иногда
  • 252
  • 30 / 0
Re: Дополнительные поля для описаний!
« Ответ #1 : 26.07.2016, 18:08:32 »
А отчего-же не использовать стандартный аддон Second Description For Product

и Second short Description for a Category

А приведённый Вами сайт тут рассматривается как "Красная ткань для быка"
« Последнее редактирование: 26.07.2016, 18:13:19 от ViktorMah »
*

vetal.kampik

  • Захожу иногда
  • 85
  • 0 / 1
Re: Дополнительные поля для описаний!
« Ответ #2 : 26.07.2016, 18:33:25 »
да дело в том, что там у меня уже всё настроено, и выведено в нужное место это второе описание.
а за данные плагины я и не знал, что они есть (и не знаю куда они выводятся)
*

ViktorMah

  • Захожу иногда
  • 252
  • 30 / 0
Re: Дополнительные поля для описаний!
« Ответ #3 : 26.07.2016, 18:50:17 »
В /product/product_default.php есть тригер

Код: php
<?php print $this->_tmp_product_html_after_buttons;?>


в него выводится инфа с первого аддона для ТОВАРА. Обычно сразу после кнопок, но перенести его(тригер) можно куда угодно.

« Последнее редактирование: 11.09.2016, 11:24:53 от ViktorMah »
*

mavr

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Дополнительные поля для описаний!
« Ответ #4 : 11.09.2016, 10:43:51 »
Приветствую, Вас, форумчане!
С созданием дополнительного поля в карточке товара без хака магазина замечательно справляется аддон разработчика Second Description For Product (https://www.webdesigner-profi.de/joomla-webdesign/shop/addons/second-description-for-product.html?lang=en).
Но вот встала необходимость создания еще и третьего поля Описания.
К сожалению, простой замены в данном аддоне слова second_  на third_  не приносит желаемого результата, а именно, не сохраняются данные из поля third_description.
Подскажите, пожалуйста, что еще нужно подправить в аддоне Second Description For Product, чтобы получился аддон Third Description For Product?
*

ViktorMah

  • Захожу иногда
  • 252
  • 30 / 0
Re: Дополнительные поля для описаний!
« Ответ #5 : 11.09.2016, 12:00:39 »
Ну тут "всё просто":
распаковываете архив адона
во всех файлах заменяете слова second / Second  на third / Third
в файле addon_second_description_for_product_1.0.1\plugins\jshoppingproducts\second_description_for_product\second_description_for_product.php
изменяете тригер с _tmp_product_html_after_buttons на другой(который есть в шаблоне товара), например на _tmp_product_html_after_ef

запаковываете все фалы обратно в .zip и проверяете установкой на локальную копию сайта, работоспособность не гарантирована.
« Последнее редактирование: 11.09.2016, 17:23:04 от ViktorMah »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Дополнительные поля для описаний!
« Ответ #6 : 11.09.2016, 12:16:16 »
я честно говоря не особо вникал в код, но почему то думается мне, что после этих действий ничего путевого не получится :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

mavr

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Дополнительные поля для описаний!
« Ответ #7 : 11.09.2016, 18:09:34 »
ViktorMah Ваш метод, к сожалению, не работает. Данные не сохраняются в поле third_description.
*

kit2m2

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

mavr

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Дополнительные поля для описаний!
« Ответ #9 : 11.09.2016, 18:18:34 »
Попробуйте это http://joomlaforum.ru/index.php/topic,314109.msg1664461.html#msg1664461
Спасибо за подсказку, но принципиально важно чтобы это было полноценное третье поле описания в админке!
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Дополнительные поля для описаний!
« Ответ #10 : 11.09.2016, 18:26:59 »
Second Description For Product - Ни как не переделать, чтобы было 3-е описание. Он некорректно работает даже с аддоном разработчика Second short Description for a Product.

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

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Дополнительные поля для описаний!
« Ответ #11 : 11.09.2016, 20:11:17 »
Second Description For Product - Ни как не переделать...

Оказалось нет ничего невозможного!
Переделал аддон Second Description For Product.

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

Grogn

  • Новичок
  • 3
  • 0 / 0
Re: Дополнительные поля для описаний!
« Ответ #12 : 20.01.2017, 10:25:06 »
Подскажите! Не понимаю где вставлять строку в доке administrator\components\com_jshopping\controllers\products.php


вот такую строку $post['tab1'.$lang->language] = JRequest::getVar('tab1'.$lang->id,'','post',"string", 2);
« Последнее редактирование: 20.01.2017, 10:39:19 от Grogn »
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Re: Дополнительные поля для описаний!
« Ответ #13 : 20.01.2017, 15:27:58 »
Подскажите! Не понимаю где вставлять строку в доке administrator\components\com_jshopping\controllers\products.php


вот такую строку $post['tab1'.$lang->language] = JRequest::getVar('tab1'.$lang->id,'','post',"string", 2);

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

Grogn

  • Новичок
  • 3
  • 0 / 0
Re: Дополнительные поля для описаний!
« Ответ #14 : 20.01.2017, 15:52:40 »
ну как в инструкции написано


2) Добавление контроллера для формы в админке:
administrator\components\com_jshopping\controllers\products.php
$post['description1_'.$lang->language] = JRequest::getVar('description1'.$lang->id,'','post',"string", 2);


У меня такая проблема. Добавил поля. Сделал новые поля в бд для них. В админке отображается значение из бд и они же выводятся куда надо. Но при попытке изменить значение в админке, оно не сохраняется, а  остается прежнее.
« Последнее редактирование: 20.01.2017, 15:57:18 от Grogn »
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Дополнительные поля для описаний!
« Ответ #15 : 20.01.2017, 16:06:21 »
:) вроде уже есть плагин давно....

kit2m2 писал выше
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительные поля для категории JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1806
Последний ответ 07.07.2024, 08:43:15
от nevigen
Сортировка товаров в каталоге JoomShopping (поля для сортировки)

Автор VovkaS

Ответов: 5
Просмотров: 3438
Последний ответ 14.04.2022, 15:19:01
от Mister Shadow
Два поля при оформлении заказа JoomShopping

Автор kluchnikov85

Ответов: 11
Просмотров: 1157
Последний ответ 14.02.2022, 21:44:08
от nevigen
Условие вывода для поля URL

Автор kik84

Ответов: 3
Просмотров: 656
Последний ответ 09.12.2021, 12:18:34
от draff
Добавление нового поля в админке

Автор Qverty2012

Ответов: 15
Просмотров: 1512
Последний ответ 21.02.2021, 23:26:05
от Dolphin4ik_1