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

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Вот засада  >:(
beagler, жду очередного твоего мудрого поста  ^-^ Факт что уже че-то работает, но не до конца)
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Схожая проблема.
На странице "Подтверждение заказа" напротив слова Адрес - пусто.
В месте с тем пункты "Компания" и "Факс" выводятся хотя и сняты с публикации и пользователем не заполняются.
.
Joomla 1.5.10 + Virtuemat 1.3
« Последнее редактирование: 24.08.2009, 00:14:52 от Freeman82 »
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Что интересно
На другом сайте (тоже Joomla 1.5.10 + Virtuemat 1.3) адрес доставки отображается нормально так вот я полностью скопировал папку administrator\components\com_virtuemart\ на не рабочий сайт и нечего не изменилось. Так что дело не в этих файлах.
« Последнее редактирование: 24.08.2009, 11:45:26 от Freeman82 »
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
А что за сайт где все работает? надо его на кирпичи разобрать
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Ура!
Проблема РЕШЕНА!
12 часов упорных поисков, создание еще одного сайта близнеца - неработающего сайта, с пошаговым отслеживанием на каком же этапе адрес пропадает. И вот когда уже казалось все бесполезно

 :D :D :D Аплодиспенты!
 *DRINK*
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Ну и где же поправить надо?
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Ни хрена править не надо!
По крайней мере, в моем случае (надеюсь что и в твоем тоже ;) )
Каким то загадочным образом форма подтверждения заказа оказывается завязана на данных введенных в разделе "Информация о магазине" настроек Virtuemata.
В частности к графе "Формат адреса магазина"
По умолчанию там
{storename}
{address_1}
{address_2}
{city}, {zip}
я в свое время удалил, как мне показалось лишние {address_1} {address_2} именно в этом и было дело crazy!
вернул все на место и вуаля!
Надеюсь тебе поможет.
Если получиться отпишись пожалуйста не пропадай сразу ;D
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Спасибо +1, завтра буду пробывать сие чудо ))) Позже отпишу
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Да спасибо, все работает... Кто же знал, что так все просто)))  :laugh: С меня еще +1
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Ну теперь нужно, чтобы вместо RUS 77 115583 ул. Елецкая выводило Россия, Москва, 115583 ул. Елецкая ({country} {state} {zip} {address_1} {address_2})
Т.е. выводит код страны и код региона, нужно чтоб выводило сами названия, а не их коды...
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Цитировать
Ну теперь нужно, чтобы вместо RUS 77 115583 ул. Елецкая выводило Россия, Москва, 115583 ул. Елецкая ({country} {state} {zip} {address_1} {address_2})
Т.е. выводит код страны и код региона, нужно чтоб выводило сами названия, а не их коды..
Это было бы не плохо, но тут без знания HTML точно не обойтись - я же в этом пока что ноль.
Меня сейчас больше волнует другая проблема как убрать не нужные мне поля "Компания:" и "Факс:".
Я нащел файл который отвечает за их вывод на русском языке (файл russian.php в папке administrator\components\com_virtuemart\languages\common), сами слова удалил но  : остается.
Ты вроде разбираешся в коде не знаеш где задаються эти : (я думаю в том же файле).
И как их убрать только в нужных местах?
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
А более подробно? Я так понимаю речь идет про формы, заполняемые пользователем? Настройки - Управление полями, заполняемыми пользователем
Или надо убрать - ":" ?
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Это все конечно хорошо, но как с этими кодами регионов и стран быть? !
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Читай внимательно форум - [Решено] Название региона в письме покупателю V1.1.3
Спасибо за ссылку, Я вот не понимаю - зачем делать свалку из "решенных" вопросов ведь там еще вопросов куча :))
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
А почему нельзя сделать подфорумы с названием проблемы, например, что касается этого топика - поместить его в форум "Проблемы с адресом доставки" или что вроде этого... это и будет факю ))
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Ну при таком количестве сообщений, на мой взгляд, это нереально и бессмысленно, просто сделать нормальную навигацию по разделам данного форума, в FAQ мона лишь указать ссылки на эти форумы.
 Если это не сделать то этот форум будет похож на генератор сообщений, который захватит всю планету ))
« Последнее редактирование: 26.08.2009, 15:01:14 от Wester »
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Название форумов можно составить и более общим.. я думую это и есть выход,

Для начала  как на счет создание форума по улучшению данного раздела?
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Цитировать
Правильно. В "Управление полями" сними эти поля с публикации.
Ха!
Если бы все было так просто я бы не спрашивал.
Вы сами с этими полями работали?
потому что не знаю как у вас, а у меня даже если отключит поля "Компания:" и "Факс:" везде где только можно они продолжают выводиться (не в форме которую заполняет пользователь, а в окне сразу после регистрации
 
И на этом проблемы не заканчиваются, так на странице подтверждения заказа отражается только адрес введенный в поле Адрес_1,(что такое адрес_1 лично мне абсолютно не понятно да и большинству пользователей тоже) если же в место  этого поля публикуешь поле Адрес плательщика то на странице подтверждения заказа пусто.
Но с этой проблемой я разобрался - переименовал в файле перевода Адрес_1 на Адрес заказчика.
А вот  с "Компанией:" и "Факсом:" посложнее т.е. их  надо просто удалить, что я и сделал но вот : видимо задаются отдельным правилом сразу для всех пунктов поэтому получается следующее

Вопрос в том как теперь от них- этих : избавиться?
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
тут все просто - ищешь где формируется текст <?php echo Ссылка на текст  ?> (или другой код, не уверен) и после этого кода как раз стоят эти ":" Удаляешь и получаешь что нужно  ;)
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Ксати где-то я писал решение, что если поля пустые то ничего не выводит с учетом текста "компания", а где это не помню, ищи на форуме )))
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Фу!
Избавился от Компания: и Факс: поправил  в customer_info.tpl.php.
Честно говоря регион меня не особо напрягает, но для порядку не мешало бы и его поправить.
Wester если, что получится напиши пожалуйста. 
*

Wester

  • Захожу иногда
  • 180
  • 4 / 1
Да он не только здесь всплывает но в письме )) пока заморачиваюсь с .csv... сразу все поправить как-то времени нету... имхо лучше подождать немного может проблема решится, если нет то конечно ковырять буду..

Исходя из всего вышеизложенного, пошел своим путем, так как Выше описанные действия в моем случае не помогали

1. В информации о магазине в формате адреса пишу:
{address_1}
{storename}, тел. {address_2}

2. в get_final_confirmation.tpl прописываю
Код
echo vmFormatAddress( array('name' => $db->f("first_name")." ".$db->f("last_name"),
        'address_1' => $db->f("address_type_name"),
        'address_2' => $db->f("phone_1"),

На выходе при подтверждении заказа получаю:
Адрес доставки:   ул. Советская, д.5, кв 100
Петька , тел. +7926-123-45-67

Так и осталься вопрос по выбору адреса. Хотелось бы списком выводить, а не
"Пожалуйста, выберите адрес доставки!
   - По-умолчанию (тот же, что и контактный)

Добавить новый Адрес доставки."

Если кто решил, прошу откликнуться в асю: 560-528-345
*

Freeman82

  • Захожу иногда
  • 61
  • 7 / 0
Хочу вас обрадовать ребята.
Но, на этом проблемы с оформлением заказа не заканчиваются
Вот здесь подробнее http://joomlaforum.ru/index.php/topic,76924.msg469449.html#msg469449
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Для одного товара несколько активных цен!

Автор RodrigeZ

Ответов: 7
Просмотров: 6730
Последний ответ 24.04.2017, 01:22:33
от VIPersone
Как настроить уведомление о новом заказе?

Автор mrfruze

Ответов: 5
Просмотров: 5329
Последний ответ 02.03.2015, 14:58:59
от redsowet
Не работает авторизация на сайте

Автор ranaza

Ответов: 4
Просмотров: 1478
Последний ответ 10.12.2012, 15:38:18
от dstavropolskij
При регистрации не сообщает что email или логиl

Автор SMVVK

Ответов: 0
Просмотров: 1418
Последний ответ 01.10.2012, 20:14:55
от SMVVK
[РЕШЕНО]Не выводятся доступные варианты о

Автор SMVVK

Ответов: 1
Просмотров: 1422
Последний ответ 07.01.2012, 13:05:12
от SMVVK