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

Lapidan13

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Логин и пароль на почту
« : 18.06.2014, 16:31:49 »
Не могу сделать так, чтобы после регистрации пользователю приходило письмо с логином и паролем.
В настройках Менеджер пользователей -> Настройки -> Активация нового пользователя -> выбрано Нет(активацию попросил убрать заказчик), . А пункте "отсылать пользователю пароль" - стоит ДА. Но письмо с логином и паролем все равно не приходит.
Как исправить положение? Может дополнение какое-нибудь есть?
*

Hishchnik

  • Захожу иногда
  • 253
  • 19 / 1
  • ©
Re: Логин и пароль на почту
« Ответ #1 : 18.06.2014, 16:43:13 »
если письмо не приходит, копайте в сторону mail отправки,
Система->Общие настройки->Сервер->Настройка почты (там PHP mail, sendmail, SMTP)
узнавайте у хостера параметры почты, либо подключайте через SMTP свою почту(с yandex, gmail и т.д.)
1. Помог? Благодарность выражается кнопочкой "+" ;)
2. Остановите землю я сойду!
3.
*

Lapidan13

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Логин и пароль на почту
« Ответ #2 : 18.06.2014, 16:52:59 »
Дело в том, что когда я выставляю в настройках Активация нового пользователя -> "ДА" - то мне приходит письмо с логином, паролем и активацией, но дело в том что активацию мне нужно отключить(
*

Lapidan13

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Логин и пароль на почту
« Ответ #3 : 18.06.2014, 17:29:22 »
Решил пролему таким методом

ищем файлик \components\com_jshopping\controllers\user.php

и в нем строку
Код:
$mailer->isHTML(false);

и меняем ее на (чтобы отправлять e-mail в HTML формате)
Код:
$mailer->isHTML(true);

дальше ищем вот это

ищем файлик \components\com_jshopping\controllers\user.php
в нем это:
Код:
$emailBody = JText::sprintf(
                'COM_USERS_EMAIL_REGISTERED_BODY',
                $data['name'],
                $data['sitename'],
                $data['siteurl']
            );
меняем на это:

Код:
$emailBody = JText::sprintf(
                'COM_USERS_EMAIL_REGISTERED_BODY2',
                $data['name'],
                $data['sitename'],
                $data['siteurl'],
                $data['username'],
                $data['password_clear']
            );

в файл \language\ru-RU\ru-RU.com_users.ini
вставляем в любом месте это:

Код:
COM_USERS_EMAIL_REGISTERED_BODY2="Здравствуйте %s,\n\nСпасибо за регистрацию на %s.\n\nТеперь вы можете войти на %s используя имя пользователя [%s] и пароль [%s]."

и получаем отправку логина и пароля на почту при регистрации

если кому то нужно
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Логин и пароль на почту
« Ответ #4 : 18.06.2014, 17:38:41 »
Решил пролему таким методом

ищем файлик \components\com_jshopping\controllers\user.php

и в нем строку
Код:
$mailer->isHTML(false);

и меняем ее на (чтобы отправлять e-mail в HTML формате)
Код:
$mailer->isHTML(true);

дальше ищем вот это

ищем файлик \components\com_jshopping\controllers\user.php
в нем это:
Код:
$emailBody = JText::sprintf(
                'COM_USERS_EMAIL_REGISTERED_BODY',
                $data['name'],
                $data['sitename'],
                $data['siteurl']
            );
меняем на это:

Код:
$emailBody = JText::sprintf(
                'COM_USERS_EMAIL_REGISTERED_BODY2',
                $data['name'],
                $data['sitename'],
                $data['siteurl'],
                $data['username'],
                $data['password_clear']
            );

в файл \language\ru-RU\ru-RU.com_users.ini
вставляем в любом месте это:

Код:
COM_USERS_EMAIL_REGISTERED_BODY2="Здравствуйте %s,\n\nСпасибо за регистрацию на %s.\n\nТеперь вы можете войти на %s используя имя пользователя [%s] и пароль [%s]."

и получаем отправку логина и пароля на почту при регистрации

если кому то нужно
А что будете делать после обновления? Опять править?
*

Lapidan13

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Логин и пароль на почту
« Ответ #5 : 18.06.2014, 17:56:13 »
я точно не помню, но вроде как в своем шаблоне создаешь такую структуру из папок html/components/com_jshopping/controllers, и забрасываешь в последнюю папку уже свой файл user.php..и после обновлений по идее должно все равно работать
*

anatolij

  • Захожу иногда
  • 121
  • 1 / 0
Re: Логин и пароль на почту
« Ответ #6 : 25.10.2014, 13:01:41 »
Ну а если установлен quickcheckout то и в нём нужно сделать тоже самое \components\com_jshopping\controllers\quickcheckout.php .
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться