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

kadet3000

  • Захожу иногда
  • 53
  • 2 / 1
Суть такова, что много людей заказывают по телефону.
При этом они не регистрировались на сайте и не планируют это делать. Вводить их данные при одном заказе еще можно, но при повторных заказах это уже тяжело и нелогично.
Как можно самостоятельно это сделать? Чтобы система автоматом запоминала клиента и его данные, которые я уже вводил.
« Последнее редактирование: 16.09.2013, 12:07:07 от kadet3000 »
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Как сделать чтобы Бюро кредитных историй сами получали мои персональные данные, если я буду общаться не с ними, а с банками по телефону?
Думаю на такой вопрос ответ будет таким же как и на Ваш - Никак...
Поэтому предлагаю Вам описать нормально что Вы делаете и что Вы хотите не делать
Заказы по телефону Вы самостоятельно забиваете на сайте? Зачем?
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

dmitry_stas

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

kadet3000

  • Захожу иногда
  • 53
  • 2 / 1
Заказы по телефону Вы самостоятельно забиваете на сайте? Зачем?

чтобы вести учет, чтобы покупателю приходила SMS, чтобы генерировался чек.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Та нет, тут фишка в том, что в ЖШ юзер Joomla появляется ТОЛЬКО после первого заказа с фронта :)
если он реган в Ж, его нет в ЖШ до первого заказа. вот так воть...

А вот почему он не создается при создании заказа из админки.. тут видать ошибочка...
Виктору надо писать в хотелки или ошибки.


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

kadet3000

  • Захожу иногда
  • 53
  • 2 / 1
а в чем проблема создать пользователя? Менеджер пользователей -> создать пользователя.

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

kadet3000

  • Захожу иногда
  • 53
  • 2 / 1
А вот почему он не создается при создании заказа из админки.. тут видать ошибочка...

в этом и суть... Что не создается, и в стороннем месте записывать нужно или находить старые заказы клиента и копировать...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Та нет, тут фишка в том, что в ЖШ юзер Joomla появляется ТОЛЬКО после первого заказа с фронта :)

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

Цитировать
А вот почему он не создается при создании заказа из админки.. тут видать ошибочка...

а почему он должен создаваться? он и не должен создаваться. заказ можно привязать к существующему пользователю, но нового то создать нельзя. по причине того, что

Цитировать
я так же не всех покупателей буду создавать. С паролями, мылами, логинами и т.п.
В день по 5-10штук

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

nevigen

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

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
А почему обязательно заводить клиента через админку? Можно же сделать это через фронт. Можно прописать условие для  админа, и заполнить некоторые поля автоматом, чтоб меньше заполнять. Или я не прав?
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

dmitry_stas

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

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
правы. только чем это отличаться будет по сути? проще наверное пойти по пути добавления функционала копирования заказа...
Я имел ввиду создавать пользователя ДжШ через форму регистрации, тогда он автоматом будет и как пользователь Joomla. Ну, а уже потом "привязывать" к нему заказы...
И я не совсем понял про функционал копирования заказа.... Эт как? :)
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

nevigen

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

kadet3000

  • Захожу иногда
  • 53
  • 2 / 1
И я не совсем понял про функционал копирования заказа.... Эт как? :)

имеется ввиду, что есть такие клиенты, какие заказывают МНОГО раз! Но, по ТЕЛЕФОНУ, а я как админ добавляю их заказы в систему (чтобы вести учет, наличие на складе, оборот, чеки, смски...).

Но вводить постоянно данные клиента, переспрашивать у него, это не нормально.
А если, например, записать его инфу в экселе, то потом его находить и тупо копировать, тоже не логично каждый раз так делать!

СУТЬ: попытка, добавить функцию "добавление КЛИЕНТА в админке", не напрягая при этом самого клиента регистрироваться.
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
имеется ввиду, что есть такие клиенты, какие заказывают МНОГО раз! Но, по ТЕЛЕФОНУ, а я как админ добавляю их заказы в систему (чтобы вести учет, наличие на складе, оборот, чеки, смски...).

Но вводить постоянно данные клиента, переспрашивать у него, это не нормально.
А если, например, записать его инфу в экселе, то потом его находить и тупо копировать, тоже не логично каждый раз так делать!

СУТЬ: попытка, добавить функцию "добавление КЛИЕНТА в админке", не напрягая при этом самого клиента регистрироваться.
Так я и написал выше, как это можно сделать. Через фронт завести клиента, что мешает? Регистрируетесь вместо клиента через фрон, потом идете в админку и создаете под него заказ.
Почему именно в админке?
Вы меня простите, я может быть туплю? :)
« Последнее редактирование: 16.09.2013, 16:54:12 от Brooksus »
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

kadet3000

  • Захожу иногда
  • 53
  • 2 / 1
Так я и написал выше, как это можно сделать. Через фронт завести клиента, что мешает? Регистрируетесь вместо клиента через фрон, потом идете в админку и создаете под него заказ.
Почему именно в админке?
Вы меня простите, я может быть туплю? :)

я это понял)
я тоже про это писал, суть в том что даже вручную регистрируя, нужно вводить логин, мыло, пароли. Как с этим?

1-2 раза нормально, но в день 5-10 раз! С ума сойти.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
если покупают часто  - пусть регистрируются.
стимулируйте клиентов чтобы облегчить себе труд.
А Вы стимулируете решение вопроса не с той стороны. Как бы озадачить разработчиков.
Интернет магазин не система учета, если клиент не имеет на сайте преференций то и его нет как клиента ИМ.
Считайте он купил у Вас по объявлению в газете. Причем тут сайт и заказы ?
Тут тогда 1С надо пользоваться.
ИМХО.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
Так сделайте две разные формы при регистрации. Одну для админа с уже установленными значениями некоторых полей. Ну, а завести десять раз емэйл и телефон уже не так сложно :). Такое решение требует минимум правки кода. Но это лично мое мнение. Все. Все, что знал сказал :)
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Полностью поддерживаю Nevigen. Вы изначально получается неправильно ведете учет продаж.
Такие вещи должны вестись локально, в предназначенной для этого системе (Например 1С, Бухсофт и т.д.)
Просто интересно как Вы выставляете документы (Счет-фактуру, Торг-12). Или Вы не выставляете документы и Вам надо просто оповещать пользователя по SMS и генерировать чек?
В таком случае Вам уже дали ответ. Нужно регистрировать пользователя с фронта и в админке назначать ему заказ. Не знаете какой писать логин, пароль и email? Напишите любой, ведь email Вами нигде не будет больше использоваться (например Телефон@МойДомен.Ру). Логином можно сделать номер телефона, а пароль по сути всем можно делать одинаковый. Вот и получится что данный пользователь ЖШ будет привязан к настоящему клиенту только по номеру телефона (он то у вас есть, учитывая что Вы пользуетесь СМС-сервисом)
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

kadet3000

  • Захожу иногда
  • 53
  • 2 / 1
Полностью поддерживаю Nevigen. Вы изначально получается неправильно ведете учет продаж.
Такие вещи должны вестись локально, в предназначенной для этого системе (Например 1С, Бухсофт и т.д.)
Просто интересно как Вы выставляете документы (Счет-фактуру, Торг-12). Или Вы не выставляете документы и Вам надо просто оповещать пользователя по SMS и генерировать чек?
В таком случае Вам уже дали ответ. Нужно регистрировать пользователя с фронта и в админке назначать ему заказ. Не знаете какой писать логин, пароль и email? Напишите любой, ведь email Вами нигде не будет больше использоваться (например Телефон@МойДомен.Ру). Логином можно сделать номер телефона, а пароль по сути всем можно делать одинаковый. Вот и получится что данный пользователь ЖШ будет привязан к настоящему клиенту только по номеру телефона (он то у вас есть, учитывая что Вы пользуетесь СМС-сервисом)

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

Вести учет в 1С, надо иметь 1С и уметь ним пользоваться. Кроме того, двойной ввод данных все равно.
Да и просто функции 1С не нужны! Хватает ЖШ.

Разногласие в номерах заказа. И еще ПЛЮС, что сайт могу открыть стоя в пробке по дороге на роботу и все глянуть.
И удобней ввести учет в ОДНОМ месте и все.
*

dmitry_stas

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