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

M.Imperator

  • Захожу иногда
  • 128
  • 0 / 1
  • Чем смогу...
Подскажите пожалуйста, как сделать чтобы после заказа товара приходило уведомление на 2 почтовых ящика (получается как будто два админа магазина).
*

M.Imperator

  • Захожу иногда
  • 128
  • 0 / 1
  • Чем смогу...
в настройках магазина в контактной информации напиши 2 имэйла через запятую.
Не получается, пишет:
Цитировать
Ошибка: Please provide a valide email address for the vendor contact.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
нужно отключить проверку - в файле ps_vendor.php заремить или удалить строки
Код
if (!vmValidateEmail($d["contact_email"])) {
$vmLogger->err( 'Please provide a valide email address for the vendor contact.' );
return False;
}
проверить не могу- сайт на локальном компе.
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
заведите для этого специальный ящик на mail.ru, который будет пересылать письма на два ваших адреса
*

M.Imperator

  • Захожу иногда
  • 128
  • 0 / 1
  • Чем смогу...
нужно отключить проверку - в файле ps_vendor.php заремить или удалить строки
Код
if (!vmValidateEmail($d["contact_email"])) {
$vmLogger->err( 'Please provide a valide email address for the vendor contact.' );
return False;
}
проверить не могу- сайт на локальном компе.

Убрал 2 строки. Теперь ошибки не выдает и уведомление вообще не приходит.
*

beagler

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

ftomivec

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Здравствуйте!

Возможно ли сделать уведомление на e-mail о заказах товаров на сайте?

В стандартных опциях этого не увидел, если боян, ткните пожалуйста.

*

kiforov

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
уведомления администратору о новых заказах приходят на почтовый ящик, указанный в настройках магазина (VM -> Магазин -> Информация о магазине -> E-mail)
*

ftomivec

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
все равно не работает (
помогите плз
*

ftomivec

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
нашел в чем проблема, оказывается на некоторых хостингах нужно указывать е-маил соответствующий вашему домену
*

Laita

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
А как сделать так, что бы уведомление о поступлении нового заказа приходило на несколько е-мейлов?
*

Laita

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Энибади?

Пробовала ввести в настройках магазина, две почты через запятаю. Выкидает ошибку(
*

loginbox

  • Захожу иногда
  • 72
  • 15 / 0
Это надо подправить файлик ps_checkout, находиться он в administrator/components/com_virtuemart/classes/
меняем строку $vendor_email = ..... на
$vendor_email = array($from_email,'здесь указываем доп адрес');
и тогда будет отправляться на адрес указанный в админ панели и на указаный здесь доп адрес
История пишется царями, переписывается мошенниками, а изучается неудачниками...
*

Laita

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
и от меня спс.
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
там дето, блин непомню файл есть что еще 1 мыло вписать можно
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
*

fl-rost

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Спасибо! все получилось! жаль плюсануть не могу пока что
*

yarafilm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
У нас сделано немного проще, есть почта магазина, например - menager@shop.com, куда приходят все заказы и письма, а с нее уже пере адресация на несколько е-маилов.
*

Dtravex

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
А что теперь менять в новой версии? Там нет такой строки! VirtueMart 1.1.6
*

saynez

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
В 1.6 нужно поменять строку $vendor_email = $from_email;
У меня вышло так:
$vendor_email = array($from_email,'ваше_имя@gmail.com','ваше_имя@yandex.ru','ваше_имя@mail.ru');
*

Minstrel

  • Новичок
  • 7
  • 3 / 0
  • Minstrel
В 1.6 нужно поменять строку $vendor_email = $from_email;
У меня вышло так:
$vendor_email = array($from_email,'ваше_имя@gmail.com','ваше_имя@yandex.ru','ваше_имя@mail.ru');
А можно сделать более менее хардкодный и более универсальный вариант
и позволить пользователям из админки добавлять несколько емэйлов через точку с запятой.

Надо в Administrator\components\com_virtuemart\classes\ps_main.php найти функцию
function vmValidateEmail( $email ) (в 1.1.8 строка 79)
и изменить рег. выражение на

Код: php
$valid = preg_match( '/^([\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}[\;])*/', $email );

Способ отправки сообщений в настройках Joomla (Сайт->Общие настройки->Сервер->Способ отправки почты)
должен быть PHP mail function
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
А как отправлять на два мыла вопросы по товару, пробовал тем же способом отредактировать файл ps_communication.php, мне письма приходят, но вместо сообщения об отправке письма появляется:
Warning: preg_match() expects parameter 2 to be string, array given in /administrator/components/com_virtuemart/classes/ps_main.php on line 77
И подтверждение на адрес отправителя не приходит.
« Последнее редактирование: 12.10.2011, 16:49:00 от beagler »
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Warning: preg_match() expects parameter 2 to be string, array given in /administrator/components/com_virtuemart/classes/ps_main.php on line 77
2 параметр должен быть строкой а не массивом.
Смотрите preg_match в  ps_main.php строка 77 - если это массив - то нужно прокручивать его в цикле вызывая preg_match

PS Сорри - случайно отредактировал Ваше сообщение
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
Строка 77:
Код
	$valid = preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email );
*

frog123

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Доброе время суток. У меня проблема не много другого характера. Есть ли такой модуль или возможность в самой VirtueMart отправлять поставщикам инфо о заказе. Тоесть, есть несколько поставщиков, допустим 10. Ко мне приходит на почту инфо о заказе. А как сделать чтобы поставщикам приходила запись об их товарах? Каждому поставщику заказы только на поставляемые им товары. Скорее всего это должно указываться при добавлении нового товара, где будет указан поставщик. Сколько искал, ничего не смог найти. Может кто то знает другой вариант решения проблемы. Спасибо заранее. ^-^
*

frog123

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Спасибо за ответ. Дело в том, что этот интернет магазин будет продавать продукты питания и бытовую химию. Ассортимент широкий и соответственно поставщиков тоже много. Но неужели это не распространено в интернет магазинах? Смотрел в тестовом магазине битрикс. Тоже ничего похожего не нашел. Заказчик хочет такую фичу. Быть может я не до конца понимаю. Но как же люди это организовывают? Не у всех же свои склады? Значит сидят и вручную отправляют заказы? Может кто нибудь подскажет как мне выкрутиться? И как сказать что это совсем не нужная фишка. Спасибо.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
это фича называется "мультивендорность" и в вирте её уже года 3 обещают написать - и все никак.
Насколько знаю, в открытых цмс она реализована только в престашоп и маженто.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

При заказе не отправляются письма на электронную почту

Автор vsokol

Ответов: 5
Просмотров: 4080
Последний ответ 29.05.2016, 07:17:31
от vsokol
Прикрепить файлы в письмо с уведомлением о заказе

Автор sashgera

Ответов: 0
Просмотров: 3642
Последний ответ 16.05.2016, 14:18:32
от sashgera
[Решено] Изображение и ссылка на товар в теле письма о заказе

Автор zmancer

Ответов: 18
Просмотров: 11342
Последний ответ 11.03.2016, 22:28:28
от Pustota
Добавить категорию товара в уведомлении о заказе. Решено

Автор niggatub

Ответов: 7
Просмотров: 4717
Последний ответ 14.07.2015, 11:30:29
от FlahsAxel
Пакетное управление товарными позициями в заказе

Автор sleshiy

Ответов: 0
Просмотров: 3691
Последний ответ 21.10.2014, 15:37:37
от sleshiy