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

goshh

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Нужно вставить в стандартный модуль последних комментариев mod_recent_comments город зарегистрированного пользователя.
В php не супер силен, пробую добавлять в modules/mod_recent_comments/mod_recent_comments.php код:
<?php if ($config_fields['city']['display']){?>
        <div class="city"><span><?php echo _JSHOP_CITY ?>:</span> <?php print $this->user->city?></div>
        <?php }?>
Вылетает ошибка. Помогите пожалуйста!
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
в tmpl папке дефолт.пхп, если уже вставлять
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

goshh

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
в tmpl папке дефолт.пхп, если уже вставлять
Нет, нужно именно в модуле
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Нет, нужно именно в модуле
а я вам про что? эта папка в модуле.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
что такое $config_fields ? что такое $this->user ? эти переменные определены? причем первое вообще вам не нужно. оставьте только
Код
<div class="city"><span><?php echo _JSHOP_CITY ?>:</span> <?php print $user->city?></div>
при этом посмотрите (например, там откуда вы этот код скопировали) что именно присваивается переменной user, и сделайте точно так же
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

goshh

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
В модуле 2 файла mod_recent_comments.php и mod_recent_comments.xml
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
В модуле 2 файла mod_recent_comments.php и mod_recent_comments.xml
сорри, обычно в тмпл папку пихают дефолт.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

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

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
а где шаблон?
я скачал по умолчанию-там реально без шаба модуль https://joomshopping.pro/download/module-recent-comments.html
****
<?php echo _JSHOP_CITY ?> у вас грамматическая ошибка
<?php echo $сюда вывод; ?>
« Последнее редактирование: 31.08.2015, 18:36:08 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

goshh

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
что такое $config_fields ? что такое $this->user ? эти переменные определены? причем первое вообще вам не нужно. оставьте только
Код
<div class="city"><span><?php echo _JSHOP_CITY ?>:</span> <?php print $user->city?></div>
при этом посмотрите (например, там откуда вы этот код скопировали) что именно присваивается переменной user, и сделайте точно так же
Код копировал из components/com_jshopping/templates/default/user/myaccount.php
Появилось = Город:
А названия нет.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
и после city у вас точка с запятой нету
и причём тут принт перед сити, если вы показываете текст выводом?
************
<div class="city">
<?php echo JText::_('ваш текст до двоеточего'); ?>:<?php echo $сюда вывод; ?>
</div>
« Последнее редактирование: 31.08.2015, 18:45:33 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

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

goshh

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Вообщем вставил код:
<div class="city">
<?php echo JText::_('Город'); ?>: <?php echo $city; ?>
</div>

Появился Город:

http://hopper-time.ru/ внизу справа
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Вообщем вставил код:
<div class="city">
<?php echo JText::_('Город'); ?>: <?php echo $city; ?>
</div>

Появился Город:

http://hopper-time.ru/ внизу справа
<div class="city">
<?php echo JText::_('Город'); ?>: <?php echo $this->user->city; ?>
</div>

вот насчёт city не уверен, т.к. не знаю, что у вас за переменная в "городе".Посмотрите в коде и замените, я просто на ваш код смотрел и city вставил.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

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

goshh

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Когда вставляю этот код вообще все слетает нафиг, остается один коммент и то без города, а так посмотрел вроде city
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
<div class="city">
<?php echo JText::_('Город'); ?>: <?php include "$файл.пхп"; ?>
</div>

а в файл вставьте аналог из вывода юзерс.мне кажется у вас эти колонки не прописаны.
но непонятно, ничего внутри не видя, что вам подсказать правильно.а ставить себе лень.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
В модуле в запросе к БД нет города. Вам нужно вытаскивать ID юзера и делать еще один запрос - уже в таблицу с юзерами и выпиливать оттуда город. И только потом его выводить.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

goshh

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
В модуле в запросе к БД нет города. Вам нужно вытаскивать ID юзера и делать еще один запрос - уже в таблицу с юзерами и выпиливать оттуда город. И только потом его выводить.
Ааааа! А как?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
посмотрите (где угодно, в любом контроллере, хоть в том же user) как определяется user. определите у себя переменную до ее вывода точно также
только обратите внимание, что там определяются 2 юзера - из Joomla и из ЖШ. вам нужно именно из ЖШ, потому что только в нем есть поле Город
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Использовать модуль поиска в разных местах сайта

Автор Mick_20

Ответов: 5
Просмотров: 1470
Последний ответ 05.02.2023, 18:51:18
от Mick_20
Модуль (компонент, плагин) вывода категорий Жш

Автор stitch808

Ответов: 4
Просмотров: 1099
Последний ответ 07.11.2022, 15:01:21
от stitch808
Модуль JShopping Search plus не ищет товары

Автор Mick_20

Ответов: 5
Просмотров: 906
Последний ответ 12.12.2021, 10:12:13
от Mick_20
Показывать модуль html только в одной категории товара

Автор prostoy

Ответов: 2
Просмотров: 1447
Последний ответ 11.04.2018, 19:35:57
от nevigen
Вставить в PDF-счет форматированный текст

Автор kit2m2

Ответов: 22
Просмотров: 1116
Последний ответ 02.03.2018, 14:41:24
от kit2m2