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

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Всем доброго времени суток!
Была необходимость сделать дополнительное поле в карточке товара! Сделал все по аналогии с этого поста http://joomlaforum.ru/index.php/topic,282609.msg1435717.html
В админике редактор появился, но при сохранение не чего не сохраняется и в базе данных тоже не чего не появляется.
Сделал все тоже самое как было описано в теме http://joomlaforum.ru/index.php/topic,282609.msg1435717.html
В файле administrator\components\com_jshopping\views\product_edit\tmpl\description.php Прописал следующие строчки кода
Код
 
   $i++;
   $name="name_".$lang->language;
   $alias="alias_".$lang->language;
   $description="description_".$lang->language;
   $description1="description1_".$lang->language; // Новое поле
   $short_description="short_description_".$lang->language;
   $meta_title="meta_title_".$lang->language;
   $meta_keyword="meta_keyword_".$lang->language;
   $meta_description="meta_description_".$lang->language;

Дальше добавил саму форму редактора в админке
Код
	   <tr>
<td  class="key">Дополнительное поле:

</td>

<td>
<?php
  $editor1 = &JFactory::getEditor();
  print $editor->display('description1'.$lang->id,  $row->$description1 , '100%', '350', '75', '20' ) ;
?>
</td>
</tr>

После в админке появилась форма добавления дополнительного поля.

В контролере administrator\components\com_jshopping\controllers\products.php
Прописал
Код
$post['description_'.$lang->language] = JRequest::getVar('description'.$lang->id,'','post',"string", 2);
$post['description1_'.$lang->language] = JRequest::getVar('description1'.$lang->id,'','post',"string", 2); // Дополнительное поле
$post['short_description_'.$lang->language] = JRequest::getVar('short_description_'.$lang->language,'','post',"string", 2);
В Базе данных создал поле description1_ru-RU
Подскажите что не так?  
*

kit2m2

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
Была необходимость сделать дополнительное поле в карточке товара! Сделал все по аналогии с этого поста
есть же уже тема, зачем отдельную тему надо было создавать?

Цитировать
но при сохранение не чего не сохраняется и в базе данных тоже не чего не появляется
вы уверены в этом? именно в базе проверяли?

ну и собственно да, есть готовый аддон. если вы с целью "надо быстро сделать", а не с целью "хочу сам разобраться", то ставьте его, и будет всем проще :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Не проще этот аддон поставить?  ;D
Поставил этот аддон. Почему то так же не чего не сохраняется. в чем проблема?
*

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
есть же уже тема, зачем отдельную тему надо было создавать?
вы уверены в этом? именно в базе проверяли?

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

kit2m2

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

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Поставил этот аддон. Почему то так же не чего не сохраняется. в чем проблема?
Извиняюсь, все хорошо сохранилось в данном аддоне.
*

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
У меня все работает. Может не то делаете? У Вас какая то проблема.
Вот еще вопрос, а возможно ли еще создать дополнительное описание?
*

kit2m2

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

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
А это что не описание? Аддон так и называется - Второе описание.
Я имею виду создать кроме этого еще третие описание
*

kit2m2

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
В базе проверял там пусто.
так же, как и в случае с аддоном? :)

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

Нужно сделать тогда еще один подобный аддон.
зачем новый? меняйте существующий, добавляйте хоть двадцать третье.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Нужно сделать тогда еще один подобный аддон.
Извините, не могли бы еще разобраться, как поместить его в таб? у меня сейчас в карточке товара все находиться в табах, но с этим не могу разобраться, как его туда закинуть, на данный момент второе описание выводиться не там где нужно.
*

kit2m2

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

dmitry_stas

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

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
(и не нужно кстати тоже новую создавать для этого, их уже два десятка была по табам).
По табам я разобрался, но с данным аддоном не могу разобраться, вот код который попробовал прописать, что бы закинуть второе описание в таб
Код
<?php if (count($this->second_description)){?>
<li><a href="#second_description" data-toggle="tab"><h3>Дополнительное описание</h3></a></li>
<?php }?>

Вот код контента таба
Код
<div class="tab-pane" id="second_description">
<?php print $this->product->second_description; ?>
</div>
Когда оставляю вот так,
Код
<li><a href="#second_description" data-toggle="tab"><h3>Дополнительное описание</h3></a></li>
то второе описание в табе выводиться, но мне нужно именно этот таб поместить в условие, что если в этом описание есть содержимое то только тогда его выводить. Когда помещаю его в условие таб не выводиться
*

kit2m2

  • Живу я здесь
  • 3366
  • 276 / 0
  • Беру сайты на полное сопровождение
Цитировать
Код
<?php if (count($this->second_description)){?>
<li><a href="#second_description" data-toggle="tab"><h3>Дополнительное описание</h3></a></li>
<?php }?>

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

framaer

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Причем здесь "count"? попробуйте без него
Пробовал, так же
*

kit2m2

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

Уведомление о превышении доступного количества товара

Автор goga_pgasovav

Ответов: 1
Просмотров: 840
Последний ответ 03.02.2025, 18:48:10
от kit2m2
Артикул или код товара?

Автор goga_pgasovav

Ответов: 3
Просмотров: 1086
Последний ответ 28.11.2024, 19:03:59
от goga_pgasovav
Странная задача: получить псевдоним товара по его ID в шаблоне статьи

Автор goga_pgasovav

Ответов: 4
Просмотров: 1543
Последний ответ 04.07.2024, 13:06:45
от goga_pgasovav
Ошибка при изменении статуса товара

Автор itbc

Ответов: 4
Просмотров: 1346
Последний ответ 08.05.2024, 10:31:16
от itbc
Медленно загружается карточка товара

Автор svarg

Ответов: 7
Просмотров: 1502
Последний ответ 10.07.2023, 16:14:36
от svarg