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

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
День добрый  ^-^
Такая проблема: необходимо, в зависимости от количества товаров в корзине, просклонять слово Товар.
Подскажите, пожалуйста, наименее громоздкое решение данного вопроса. *DRINK*
*

Dimension

  • Осваиваюсь на форуме
  • 31
  • 2 / 0
Я вот просклонял до 20 товаров (когда 21 уже не склоняется).  И когда в ней нет товаров - пишется просто пусто. Использовал стандартный модуль 3.0.1.
Вот код
Код
<div id = "jshop_module_cart">
<table width = "100%">
<?php if ($cart->count_product<=0){?><tr><td>
<a href = "<?php print SEFLink('index.php?option=com_jshopping&controller=cart&task=view', 1)?>">Корзина</a>
:&nbspПуста
</td>
</tr>
<?php } else { ?>
<tr>
    <td>
      <span id = "jshop_quantity_products"><?php print $cart->count_product?></span>
<?php // print JText::_('PRODUCTS')
if ($cart->count_product==1) {?>Товар&nbsp <?php } ?>
<?php
if ($cart->count_product<=4 and $cart->count_product!=1) {?>Товара&nbsp<?php }?>
<?php
if ($cart->count_product>4 or $cart->count_product<=!4 and $cart->count_product!=1) {?>Товаров&nbsp<?php }?>
    </td>
    <td>-</td>
    <td>
      <span id = "jshop_summ_product">&nbsp<?php print formatprice($cart->getSum(0,1))?></span>
  <tr>
    <td colspan="3" align="right">
     <a href = "<?php print SEFLink('index.php?option=com_jshopping&controller=cart&task=view', 1)?>"><?php print JText::_('GO TO CART')?></a>
    </td>
</tr>
</td>
</tr>
  <?php } ?>
</table>
</div>
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Код
function sklonenie($n, $forms) {
  return $n%10==1&&$n%100!=11?$forms[0]:($n%10>=2&&$n%10<=4&&($n%100<10||$n%100>=20)?$forms[1]:$forms[2]);
}
где $n - наше число, а
$forms=array('товар', 'товара', 'товаров');
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
Спасибо :)
*

Dimension

  • Осваиваюсь на форуме
  • 31
  • 2 / 0
Опаньки, панда к нам перебралась! С виртуемартом покончено? ;D ;D
« Последнее редактирование: 26.04.2011, 10:59:46 от Dimension »
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Честно говоря, даже не посмотрел в какой теме отвечаю :)
а попробовать JoomShopping всё как-то никак не выходит - по вирту заказов хватает.
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
а попробовать JoomShopping всё как-то никак не выходит - по вирту заказов хватает.
А я решился попробовать, хотя вирт роднее :)
*

Space Monkey

  • Захожу иногда
  • 108
  • 16 / 0
  • in vino veritas
я сделал так.
Товаров: *какое-то число*
*

DaVinchy

  • Захожу иногда
  • 326
  • 42 / 3
Ну да... тоже вариант  ^-^
*

gershevich

  • Новичок
  • 2
  • 0 / 0
подскажите пожалуйста, а что делать если вписываемый текст на русском Знаками вопроса�������
язык Joomla русский
« Последнее редактирование: 21.07.2011, 03:59:32 от gershevich »
*

gershevich

  • Новичок
  • 2
  • 0 / 0
сохранить файл в кодировке UTF без ВОМ
Спасибо!
*

sergoguga

  • Давно я тут
  • 896
  • 70 / 8
  • www.mpbox.ru
подскажите пожалуйста, а что делать если вписываемый текст на русском Знаками вопроса�������
язык Joomla русский
вот так однозначно, <?php print _JSHOP_GO_TO_CART?> (к примеру) и нужный текст в файле ru-RU.php, какой там BOM !
>>> Верстка 100 евро - ждешь новый курс? Пиши!
>>> Создание моб. приложений по ГОСТу)))! Личка работает!
>>> Микроразметка по стандартам - цены адекват! Пиши, не боись!
>>> Личный кабинет на ZOO - уже сделан! Пиши в личку, не стесняйся!
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
я сделал
%products% "Товар(а/ов)"
как то так
*

jss

  • Осваиваюсь на форуме
  • 36
  • 9 / 0
Спасибо Dimension +1
Может кому пригодится, как я сделал на шаблоне IT_TheShop

в /language/en-GB/en-GB.mod_ice_jshopping_cart.ini прописываем
Код
     KORZINA_PUSTA="Корзина пуста"

в файлах /modules/mod_ice_jshopping_cart/tmpl/default.php
и /modules/mod_ice_jshopping_cart/ajax.php находим
Код
     <div class="lof_top_1">
        <span class="jshop_products"><?php print $cart->count_product?>&nbsp;<?php print JText::_('PRODUCTS')?></span>
        <span class="jshop_sum"><?php print formatprice($cart->getSum(0,1))?></span>
     </div>
и меняем на
Код
     <div class="lof_top_1">
<?php if ($cart->count_product<=0){?>
<span class="jshop_products"><?php print JText::_('KORZINA_PUSTA')?></span>
<?php } else { ?>
<span class="jshop_products"><?php print $cart->count_product?>
<?php // print JText::_('PRODUCTS')
if ($cart->count_product==1) {?>Товар&nbsp <?php } ?>
<?php
if ($cart->count_product<=4 and $cart->count_product!=1) {?>Товара&nbsp<?php }?>
<?php
if ($cart->count_product>4 or $cart->count_product<=!4 and $cart->count_product!=1) {?>Товаров&nbsp<?php }?></span>
        <span class="jshop_sum">&nbsp<?php print formatprice($cart->getSum(0,1))?></span>
<?php } ?>
     </div>
Сохранить файлы в UTF-8
*

kurandin

  • Захожу иногда
  • 159
  • 5 / 0
Спасибо за рецепт

Скрестил стандартный шаблон и от jss
Цитировать
<a id="jshop_module_cart_DiNastia" href="<?php print SEFLink('index.php?option=com_jshopping&controller=cart&task=view', 1)?>" title="Перейти в корзину">
   <?php if ($cart->count_product<=0){?>
    <span class="jshop_products">Корзина пуста</span>
   <?php } else { ?>
   <span class="jshop_products"><?php print $cart->count_product?>
   <?php // print JText::_('PRODUCTS')
   if ($cart->count_product==1) {?>товар<?php } ?>
   <?php
   if ($cart->count_product<=4 and $cart->count_product!=1) {?>товара&nbsp<?php }?>
   <?php
   if ($cart->count_product>4 or $cart->count_product<=!4 and $cart->count_product!=1) {?>товаров&nbsp<?php }?></span>
    <span id = "jshop_summ_product"><?php print formatprice($cart->getSum(0,1))?></span>
   <?php } ?>
</a>

получилась лаконичная информация о корзине

но когда вставляю модуль, тогда на странице (в обработанном PHP) в самом начале появляется пробел
Пожалуйста, подскажите как от него избавиться
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
Ребят, я так понимаю у вас 31 товаров... 32 товаров.... или нет? или вы на такие цЫфры не рассчитываете?*trollface*
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
Может кому пригодится, как я сделал на шаблоне IT_TheShop
/modules/mod_ice_jshopping_cart/ajax.php находим
я так понял вы с атжаксом разобрались? прошу поделиться, а то у меня куча проблем если его включить
*

st.al

  • Захожу иногда
  • 233
  • 10 / 0
но когда вставляю модуль, тогда на странице (в обработанном PHP) в самом начале появляется пробел
Пожалуйста, подскажите как от него избавиться
там случайно не padding или margin? именно пробел?
*

IrochkaStep

  • Захожу иногда
  • 183
  • 5 / 0
  • Настроение супер! Чего и всем желаю!
я сделал так.
Товаров: *какое-то число*
Подскажите, плз, как? Мне тоже так удобнее было бы
*

nevigen

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

IrochkaStep

  • Захожу иногда
  • 183
  • 5 / 0
  • Настроение супер! Чего и всем желаю!
Спасибо помогли
*

drx11

  • Новичок
  • 3
  • 0 / 0
А как насчет такого кода
<?php
$a = substr($cart->count_product, strlen($cart->count_product)-1, 1); # Это последний символ
$b = substr($cart->count_product, strlen($cart->count_product)-2, 2); # Это два последних символа
 ?>

      <span id = "jshop_quantity_products">
<?php
if ($a==1 and $b!=11) echo 'Заказан  ';
if ($a!=1 or $b==11) echo 'Заказано  ';
?>
<?php print $cart->count_product?>
</span>
&nbsp;
<?php
if ($a==0 or ($a>=5 and $a<=9) or ($b>=11 and $b<=14)) echo ' товаров на сумму ';
if ($a==1 and $b!=11) echo ' товар на сумму ';
if ($a>=2 and $a<=4 and $b!=12 and $b!=13 and $b!=14) echo ' товара на сумму ';
?>

      <span id = "jshop_summ_product"><?php print formatprice($cart->getSum(0,1))?></span>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Стоимость доставки для нескольких товаров. Должна ли рассчитываться?

Автор goga_pgasovav

Ответов: 2
Просмотров: 748
Последний ответ 14.06.2025, 13:08:57
от victorantoniak
Уведомление о превышении доступного количества товара

Автор goga_pgasovav

Ответов: 1
Просмотров: 840
Последний ответ 03.02.2025, 18:48:10
от kit2m2
Артикул или код товара?

Автор goga_pgasovav

Ответов: 3
Просмотров: 1086
Последний ответ 28.11.2024, 19:03:59
от goga_pgasovav
Не сохраняется порядок товаров в админке

Автор heartlink

Ответов: 7
Просмотров: 1892
Последний ответ 08.10.2024, 10:24:02
от kit2m2
[Решено] Не удаляются товары из корзины (Multi basket ajax)

Автор goga_pgasovav

Ответов: 0
Просмотров: 1195
Последний ответ 14.08.2024, 23:19:57
от goga_pgasovav