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

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
Всем привет.
Кнопка назад в категорию в товаре возвращает на предыдущую страницу, а не в категорию.
Как реализовать возврат в категорию? Сейчас код кнопки такой

Код
<div class="link_back">
<input type="button" class="btn_back" value="<?php print _JSHOP_BACK.' в: '.$category->name;?>" onclick="<?php print $this->product->button_back_js_click;?>" />
<?php }?>
</div>

В php дуб дубом, но подозреваю, что нужно что то изменить здесь
Код
<?php print $this->product->button_back_js_click;?>" />
Спасибо за помощь
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
кнопка назад в товаре = кнопка назад в браузере.
т.е. возвращает на пердыдущую страницу.
почему вы решили что это именно назад в категорию
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не, я так понял ТС хочет, чтобы кнопка вела в категорию
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
Видимо в шаблоне так сделано, что на кнопке написано название категории.
Вообще мне бы самому так хотелось.
Думаю это возможно допилить
По-моему удобнее и логичнее
вот карточка
http://www.magazin-futbolok.su/futbolki-mugskie/rok-futbolki-grupp/ac-dc/futbolka-ac-dc-black-ice-logo-005.html
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
ок, а если товар принадлежит 2 категориям ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а какая разница? хоть 10-ти.

ТС, вам нужно найти как формируется ссылка на категорию (посмотрите например в модуле категорий), и вывести эту ссылку. вам понадобится id текущей категории, в карточке товара это $this->category_id
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
ну да разницы так нет.
а если в товар попали из материала через модуль ластпродактс например ?

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

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
У меня как раз каждый товар принадлежит одной категории, так что это не проблема.
Спасибо, попробую. Хотя уже что-то подобное пытался прописывать. Но видимо где-то накосячил
*

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
а какая разница? хоть 10-ти.

ТС, вам нужно найти как формируется ссылка на категорию (посмотрите например в модуле категорий), и вывести эту ссылку. вам понадобится id текущей категории, в карточке товара это $this->category_id

Как приблизительно может выглядеть код для возврата в категорию, если сейчас код такой
Код
<input type="button" class="btn_back" value="<?php print _JSHOP_BACK.' в: '.$category->name;?>" onclick="<?php print $this->product->button_back_js_click;?>" />						
<?php }?>
Заранее прошу прощения, т.к. в PHP не рубинштейн
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
хотя конечно в любом случае ид категории есть и переход в нее осуществится.
угу. тут исключительно вопрос в логике, в так сказать ожиданиях клиента. если бы кнопка называлась Назад - то это должно быть назад однозначно. но поскольку имеем не Назад, а название категории, то логичнее в категорию независимо от того, перешли с модуля или с материала.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
угу. тут исключительно вопрос в логике, в так сказать ожиданиях клиента. если бы кнопка называлась Назад - то это должно быть назад однозначно. но поскольку имеем не Назад, а название категории, то логичнее в категорию независимо от того, перешли с модуля или с материала.
Да согласен, поэтому и озаботился вопросом. Да и логичнее так.
Вот с кодом точно помощь нужна не сделаю сам.
*

kit2m2

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

kit2m2

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

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
Спасибо.
А что будет с существующей кнопой "НАЗАД"?
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
автор заберет ее себе по программе "трейд-ин"

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

kit2m2

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

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
Хорошо))) оставлю. Лишняя кнопка не помешает))
Спасибо попробую
А с кодом не поможите? там реально нужно одну строчку переписать, но я не программист - у самого не получается
« Последнее редактирование: 13.12.2015, 12:17:27 от hello-andrew »
*

kit2m2

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

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
С каким кодом?
Код
<div class="link_back">
<input type="button" class="btn_back" value="<?php print _JSHOP_BACK.' в: '.$category->name;?>" onclick="<?php print $this->product->button_back_js_click;?>" />
<?php }?>
</div>
Вот это строчка
Код
onclick="<?php print $this->product->button_back_js_click;?>"
, как я понимаю делает возврат "назад"
Надо изменить код так, что бы переход шел на категорию товара
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Код
<div class="link_back">
<input type="button" class="btn_back" value="<?php print _JSHOP_BACK.' в: '.$category->name;?>" onclick="<?php print $this->product->button_back_js_click;?>" />
<?php }?>
</div>

Вот это строчка
Код
onclick="<?php print $this->product->button_back_js_click;?>"
, как я понимаю делает возврат "назад"
Надо изменить код так, что бы переход шел на категорию товара

измените его УДАЛЕНИЕМ ВСЕГО БЛОКА.
сможете ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
измените его УДАЛЕНИЕМ ВСЕГО БЛОКА.
сможете ?
Да, это конечно смогу. )))
Просто я не очень хотел ставить плагин, хотел поменять код - так всё таки правильнее, чем делать всякие надстройки.
Часто нарывался на всякие конфликты и т.д.
Плагин нормальный? Кто нибудь ставил?
p.s. не в обиду автору плагина
*

kit2m2

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

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Если не хотите ставить плагин, просто возьмите ....
гы.. откуда у вас только терпения ?
сделай, расскажи, покажи, УГОВОРИ(!) и все это нашару...
:)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

kit2m2

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

kit2m2

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

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
гы.. откуда у вас только терпения ?
сделай, расскажи, покажи, УГОВОРИ(!) и все это нашару...
:)

можно не нашару. Цена вопроса?
*

hello-andrew

  • Захожу иногда
  • 54
  • 1 / 0
гы.. откуда у вас только терпения ?
сделай, расскажи, покажи, УГОВОРИ(!) и все это нашару...
:)

Понял, спасибо. попробую разобраться.
Шаблон вряд ли будет обновляться. Поэтому и предпочел такой способ.
*

Mister Shadow

  • Захожу иногда
  • 94
  • 1 / 0
Привет! Похожей проблемой озадачился...
При входе в инфо по производителю отсутствует кнопка "Назад"
Попытался содрать её с модуля избранного, но там понятно дело, что кидает в каталог, а как вернуть в карточку товара?
*

Mister Shadow

  • Захожу иногда
  • 94
  • 1 / 0
Сделал так:
Код
<input type="button" onclick="history.back();" value="<?php print JText::_('JSHOP_BACK')?>"/>

Однако поймал цикличность. :( Из карты вхожу в описание производителя, возвращаюсь по кнопке назад через history.back(), жму штатную кнопку назад и вместо выхода из карты в категорию, попадаю обратно в описание производителя...  *ОХ-Х-Х*
« Последнее редактирование: 19.12.2021, 21:40:43 от Mister Shadow »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает pop-up окно в товаре

Автор Alex_gs

Ответов: 2
Просмотров: 1348
Последний ответ 06.06.2023, 07:12:10
от kit2m2
Как вывести категорию по id в материале?

Автор Aigen95

Ответов: 8
Просмотров: 874
Последний ответ 06.12.2021, 13:02:49
от sergeytolkachyov
Вывести все товары в категорию верхнего уровня

Автор ShopES

Ответов: 1
Просмотров: 512
Последний ответ 06.08.2021, 15:44:50
от ShopES
Конфликт при создании двух пунктов меню, указывающих на одну категорию

Автор Paladinrus

Ответов: 5
Просмотров: 971
Последний ответ 08.11.2020, 15:13:45
от kit2m2
Порядок атрибутов в товаре в админке

Автор dmitry_stas

Ответов: 17
Просмотров: 1563
Последний ответ 27.10.2020, 01:17:08
от lamdv