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

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
Доброго дня .
Решил в описание товара добавить дополнительные описания что бы потом их выводить в отдельных вкладках на сайте в карте товара. Создал в базе новую ячейку . В файле /components/com_jshopping/views/product_edit/tmpl/description если подставляю текстовую область
<textarea name = "<?php print $new_description;?>" cols = "55" rows="5"><?php echo $row->$new_description ?></textarea>
все работает сохраняет и выводит в админке из базы. А вот при попытке добавить область с редактором
<tr>
         <td  class="key">
           <?php echo _JSHOP_DESCRIPTION;?>
         </td>
         <td>
           <?php
              $editor = JFactory::getEditor();
              print $editor->display('description'.$lang->id,  $row->$description , '100%', '350', '75', '20' ) ;
           ?>
         </td>
       </tr>
<tr>
         <td  class="key">
           <?php echo _NEW_DESCRIPTION;?>
         </td>
         <td>
           <?php
              $editor = JFactory::getEditor();
              print $editor->display('new_description'.$lang->id,  $row->$new_description , '100%', '350', '75', '20' ) ;
           ?>
         </td>
</tr>
при сохранении в Chrome выдает окно остаться или покинуть страницу и не сохраняет изменения, хотя пишет что товар сохранен. В примере специально вывел так как выводиться два редактора.
Может кто подскажет где грабли?
*

dmitry_stas

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

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
Ошибка в ckeditor.js "r is null Line 131" . Но эту ошибку выдает и при текстовом поле, хотя сохраняет все .
*

dmitry_stas

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

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
Да пробовал разными. И JCE пробовал и другие все тоже самое.
Забыл сказать это все на денвере в данный момент. И еще возникли трудности с выводом на сайте форма <?php echo $new_description;?> не работает. Может есть еще файлы где нужно было прописать ?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
Да пробовал разными. И JCE пробовал и другие все тоже самое.
ну не знаю, несколько JCE одновременно абсолютно нормально уживаются. вопрос 99% в редакторе.

И еще возникли трудности с выводом на сайте форма <?php echo $new_description;?> не работает. Может есть еще файлы где нужно было прописать ?
в товаре трудностей нет. трудности только в списке товаров. потому что в выборку попадают только те поля, которые указаны в \components\com_jshopping\lib\jtableauto.php function getBuildQueryListProductDefaultResult
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
Редактор в админке вывел таким способом
Код
<?php
 $editor =& JFactory::getEditor();
 echo $editor->display($haracter, $row->$haracter, '100%', '350', '75', '20' );
 ?>
Текст сохраняет, но не сохраняет ни ссылки ни фото. Кто знает подскажите что за ерунда может быть.
*

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
Проблему с редактором и добавлением в базу решил. Кому интересно пишу. Вывод редактора тот же
Код
<tr>
         <td  class="key">
           <?php echo _NEW_DESCRIPTION;?>
         </td>
         <td>
           <?php
              $editor = JFactory::getEditor();
              print $editor->display('new_description'.$lang->id,  $row->$new_description , '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[''new_description_'.$lang->language] = JRequest::getVar(''new_description'.$lang->id,'','post',"string", 2);
Теперь интересует все же как вывести это на сайте в карте товара? Описание находиться в базе в _jshopping_products new_description_ru-RU
*

dmitry_stas

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

misteri27

  • Захожу иногда
  • 490
  • 0 / 0
Спасибо все работает.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35700
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 622
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Товар - файл. Как ограничить добавление в корзину только 1 шт?

Автор SLV

Ответов: 15
Просмотров: 2356
Последний ответ 24.07.2025, 11:34:21
от SLV
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 1398
Последний ответ 22.07.2025, 12:40:12
от heartlink
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

Ответов: 2
Просмотров: 2041
Последний ответ 04.07.2025, 10:30:36
от sergeytolkachyov