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

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
Добрый день.
При смене статуса заказа покупателю отправляется уведомление со ссылкой на детали заказа. При переходе на эту страницу - ошибка 500.
Как можно это исправить?
Или сделать так, чтобы при изменении статуса просто отправлялось письмо с деталями заказа.
*

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
Если никто не знает, как с этим справится. Может подскажите, где лежит шаблон письма, отсылаемого покупателю при смене статуса заказа.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
/components/com_jshopping/templates/default/order/statusorder.php
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
Содержание этого файла:
<?php print _JSHOP_HI?> <?php print $this->order->f_name;?> <?php print $this->order->l_name;?>,
<?php printf(_JSHOP_YOUR_ORDER_STATUS_CHANGE, $this->order->order_number);?>

<?php print _JSHOP_NEW_STATUS_IS?>: <?php print $this->order_status?>
<?php print _JSHOP_ORDER_DETAILS?>: <?php print $this->order_detail?>
 
<?php print $this->vendorinfo->company_name?>
<?php print $this->vendorinfo->adress?>
<?php print $this->vendorinfo->zip?> <?php print $this->vendorinfo->city?>
<?php print $this->vendorinfo->country?>
<?php print _JSHOP_CONTACT_PHONE?>: <?php print $this->vendorinfo->phone?>
<?php print _JSHOP_CONTACT_FAX?>: <?php print $this->vendorinfo->fax?>

В уведомлении, которое приходит покупателю не содержится этих данных. Там содержится ссылка на детали заказа, которая открывается с ошибкой.
*

nevigen

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

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
Шаблон стандартный, ничего не правила. При оформлении заказа все присылается нормально, детали заказа и пр. - все правильно.
Но при смене статуса в админке (+ уведомить покупателя) - детали заказа уже не приходят, а приходит ссылка на заказ.
Надеюсь, понятно объяснила.
*

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
Приходит письмо:
Статус Вашего заказа №. 00000031 изменен.
Новый статус: В ожидании
Детали заказа: .../index.php/katalog/user/order?order_id=xxx

Как сделать, чтобы вместо этой ссылки покупателю приходила вся информация о заказе (детали заказа)?
*

Alienoff

  • Захожу иногда
  • 186
  • 0 / 0
Кстати, тоже сегодня хотел немного отредактировать шаблон письма о смене статуса - удалить l_name и ещё там чего-то...
Редактировал /components/com_jshopping/templates/мой_шаб/order/statusorder.php
редактировал /components/com_jshopping/templates/default/order/statusorder.php
Ничего в письме не поменялось.
Ради эксперимента удалял половину строк из statusorder.php - всё равно письмо в неизменном виде приходит.
Может где-то ещё формируется вывод строк?
PS в этом направлении раньше ничего не менял
*

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
меняется тут: /administrator/components/com_jshopping/views/orders/tmpl/statusorder.php
Текст:
<?php print _JSHOP_HI?> <?php print $this->order->f_name;?> <?php print $this->order->l_name;?>,
<?php printf(_JSHOP_YOUR_ORDER_STATUS_CHANGE, $this->order->order_number);?>

<?php print _JSHOP_NEW_STATUS_IS?>: <?php print $this->order_status?>
<?php print _JSHOP_ORDER_DETAILS?>: <?php print $this->order_detail?> // Эта строчка отвечает за ссылку на заказ.
 
<?php if ($this->comment!=""){?>
<?php print _JSHOP_COMMENT_YOUR_ORDER?>: <?php print $this->comment;?>

<?php }?>
<?php print $this->vendorinfo->company_name?>
<?php print $this->vendorinfo->adress?>
<?php print $this->vendorinfo->zip?> <?php print $this->vendorinfo->city?>
<?php print $this->vendorinfo->country?>
<?php print _JSHOP_CONTACT_PHONE?>: <?php print $this->vendorinfo->phone?>
<?php print _JSHOP_CONTACT_FAX?>: <?php print $this->vendorinfo->fax?>

На что нужно заменить, чтобы просто были присланы детали заказа?
*

Alienoff

  • Захожу иногда
  • 186
  • 0 / 0
Да я знаю переменные, которые хочу удалить-заменить.
Только удаление-замена не приносят результат - я писал выше
*

nevigen

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

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
Исправила на такой текст:
<?php print _JSHOP_HI?>, <?php print $this->order->f_name;?> <?php print $this->order->l_name;?>,
<?php printf(_JSHOP_YOUR_ORDER_STATUS_CHANGE, $this->order->order_number);?>

<?php print _JSHOP_NEW_STATUS_IS?>: <?php print $this->order_status?>

<?php if ($this->comment!=""){?>
<?php print _JSHOP_COMMENT_YOUR_ORDER?>: <?php print $this->comment;?>

<?php }?>

    <?php print _JSHOP_WEIGHT_PRODUCTS?>: <?php print formatweight($this->order->weight);?>
    <?php print _JSHOP_SUBTOTAL?>: <?php print formatprice($this->order->order_subtotal, $this->currency_code);?>
    <?php print _JSHOP_COUPON_DISCOUNT?>: <?php print formatprice(-$this->order->order_discount, $this->currency_code);?>
    <?php print _JSHOP_SHIPPING_PRICE?>: <?php print formatprice($this->order->order_shipping, $order->currency_code);?>
    <?php print _JSHOP_TOTAL?>: <?php print formatprice($this->order->order_total, $order->currency_code);?>


Только вес = 0. Не берется из заказа.
« Последнее редактирование: 18.03.2013, 14:57:28 от BelMary »
*

Alienoff

  • Захожу иногда
  • 186
  • 0 / 0
вы меняли на фронте.
а БелМари Вам дала ссылки на админ папку.
Сорри, спешил, не увидел.
Спасибо, БелМари..
Была мысль в админе посмотреть - не додумал
*

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
<?php print _JSHOP_WEIGHT_PRODUCTS?>: <?php print formatweight($this->order->weight);?>

Почему в этой строке вес товара не берется из заказа? Всегда равен 0.
*

nevigen

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

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
А как?
Просто эти строки я брала из деталей заказа. Все остальные берутся из заказа (сумма, скидка, и т.д.), а вес нет.
*

nevigen

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

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
Вес в заказе показывается.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Почему в этой строке вес товара не берется из заказа? Всегда равен 0.

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

BelMary

  • Захожу иногда
  • 87
  • 6 / 0
Ясно, тогда уберу его совсем. Спасибо.
*

Single92

  • Захожу иногда
  • 134
  • 2 / 0
Здравствуйте.

Возможно ли и как оформить письмо о смене статуса заказа, графически?
Письмо  о заказе получилось изменить, а о смене статуса не как.
Заранее благодарен.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
\components\com_jshopping\models\checkout.php function changeStatusOrder
Код: php
$mailer->isHTML(true);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Single92

  • Захожу иногда
  • 134
  • 2 / 0
спасибо. Включил для всех, адм, проддавцом и т.д


меняю тут: /administrator/components/com_jshopping/views/orders/tmpl/statusorder.php

для примера вот так:

<div style="background-color:#eeeded;">
<?php print _JSHOP_HI?> <?php print $this->order->f_name;?> <?php print $this->order->l_name;?>,
<?php printf(_JSHOP_YOUR_ORDER_STATUS_CHANGE, $this->order->order_number);?>

<?php print _JSHOP_NEW_STATUS_IS?>: <?php print $this->order_status?>
<?php print _JSHOP_ORDER_DETAILS?>: <?php print $this->order_detail?> // Эта строчка отвечает за ссылку на заказ.
 
<?php if ($this->comment!=""){?>
<?php print _JSHOP_COMMENT_YOUR_ORDER?>: <?php print $this->comment;?>

<?php }?>
<?php print $this->vendorinfo->company_name?>
<?php print $this->vendorinfo->adress?>
<?php print $this->vendorinfo->zip?> <?php print $this->vendorinfo->city?>
<?php print $this->vendorinfo->country?>
<?php print _JSHOP_CONTACT_PHONE?>: <?php print $this->vendorinfo->phone?>
<?php print _JSHOP_CONTACT_FAX?>: <?php print $this->vendorinfo->fax?>

</div>

приходит письмо с кодом

<div style="background-color:#eeeded;">
Текст пиьсма
</div>

что я не так делаю?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
из админки меняете статус :)

\administrator\components\com_jshopping\controllers\orders.php function _updateStatus
Цитировать
JUtility::sendMail($mailfrom, $fromname, $order->email, $subject, $message, 1);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Single92

  • Захожу иногда
  • 134
  • 2 / 0
*

Single92

  • Захожу иногда
  • 134
  • 2 / 0
Здравствуйте, еще раз.
Проблема такая что заполняю в информацию о магазина, строку- Регион.
в письме не отображается.

в тех же файлах посмотрел в которых включал HTML, сам ничего не нашел)

кто знает или примерно знает почему не отображается, прошу подсказать, заранее спасибо.
*

irc-h

  • Захожу иногда
  • 158
  • 8 / 0
из админки меняете статус :)

\administrator\components\com_jshopping\controllers\orders.php function _updateStatus
Хм, может я недопонял, но нужно поменять в указанном каталоге у указанной функции
Код
$ishtml = true;
*

dmitry_stas

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

Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 622
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Про статусы заказа: как перевести и когда они меняются?

Автор Maxum

Ответов: 18
Просмотров: 10150
Последний ответ 18.10.2024, 10:45:13
от nevigen
Как сделать файлы для продажи доступными для скачивания при любом статусе заказа?

Автор UNh0ly

Ответов: 4
Просмотров: 2176
Последний ответ 18.09.2023, 09:10:17
от ИммоБокс
Глюк со сменой статуса заказа

Автор Preview

Ответов: 4
Просмотров: 975
Последний ответ 07.02.2023, 16:06:38
от kit2m2
Ошибка при правке данных клиента и попытке отправить письмо из заказа

Автор ecolora

Ответов: 40
Просмотров: 2688
Последний ответ 17.09.2022, 20:06:26
от marksetter