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

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Все привет.

Вопрос в теме. Необходимо на главной вывести название и соответственно товары сразу двух или трех категорий магазина. Использую стандартный пункт Меню от JoomShoping, но тот выводит только одну категорию. Пробовал вписывать туда несколько ID категорий (через "," или ";") - не помогает.

Может быть кто то знает пути решения?

Может быть есть модуль, который может выводить нужные категории и все товары на странице?

Заранее, спасибо.
« Последнее редактирование: 05.08.2015, 00:11:21 от Antosha »
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

dmitry_stas

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

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Может быть можно как-то самому к базе обратится и вывести в шаблон категории? Причем 2 раза...
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

error648398

  • Захожу иногда
  • 168
  • 21 / 0
Да, можно.
1. Сделать выборку из БД, получить массив, разбить, и вывести его на странице.
Могу попробовать помочь - но надо что бы кто то потом проверил мой код на уязвимости, так как я только учусь :(
2. Можно взять плагин вывода товара, и переделав его заставить выводить то что Вам нужно.

Проблема которую я вижу в этих решениях - это трудность создания пагинации если товаров на странице очень много.
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Пагинации не будет точно... одна страница.... главная...

Просто выборку из 2 категорий по ID, далее вывод в шаблон...
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

error648398

  • Захожу иногда
  • 168
  • 21 / 0
Пагинации не будет точно... одна страница.... главная...

Просто выборку из 2 категорий по ID, далее вывод в шаблон...

Покажи сайт
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
www.tanko-russia.ru

Есть категория "Электросамокаты" и "Электромотоциклы"... Надо вывести обе на главной. Сейчас это сделано путем добавления второй категории для товара "электромотоцикл МТ1", то есть он показывается и там и там...
<a href="http://joomlablog.ru/">JoomlaBlog</a>
*

error648398

  • Захожу иногда
  • 168
  • 21 / 0
Попробуй, думаю разберешься что куда, но если что то пиши помогу.


Цитировать
<?php
$db = JFactory::getDbo();
$q = "SELECT product_id, product_price, `name_ru-RU`, category_id, image FROM #__jshopping_products INNER JOIN #__jshopping_products_to_categories using(product_id) WHERE category_id ='1'";
$db->setQuery($q);
$result = $db->loadAssocList();

if(empty($result)) {
$msg = 'Нету товаров для отображения';
$msg = "<div class='data' style='text-align:center;font-size:16px;font-weight:bold'>" . $msg . "</div>";
echo($msg);}
    else {
$msg = "<div class='container'>";
foreach($result as $row) {
    $number = number_format($row['product_price'], 2, ',', ' ');
$msg .= "<div class='col-md-4 col-sm-4 col-xs-6 block_product'>";
$msg .= "
<div class='name'>
    <a href='index.php?option=com_jshopping&controller=product&task=view&category_id=". htmlentities ($row['category_id'])."&product_id=".htmlentities ($row['product_id'])."'>". htmlentities($row['name_ru-RU']). "</a>
</div>

<div class='image'>
   <div class='image_block'>
      <a href='index.php?option=com_jshopping&controller=product&task=view&category_id=". htmlentities ($row['category_id'])."&product_id=". htmlentities ($row['product_id'])."'>
             <img class='jshop_img' src='/components/com_jshopping/files/img_products/thumb_". htmlentities ($row['image'])."' alt='". htmlentities ($row['name_ru-RU'])."' title='". htmlentities ($row['name_ru-RU'])."'>
       </a>
   </div>
</div>
<div class='product'>
    <div class='jshop_price'>
        <span>
           ". htmlentities ($number)." НАЗВАНИЕ ВАЛЮТЫ
        </span>
    </div>
    <div class='buttons'>
       <a class='btn btn-success button_buy' href='/index.php?option=com_jshopping&controller=cart&task=add&category_id=". htmlentities ($row['category_id'])."&product_id=". htmlentities ($row['product_id'])."'>
            Купить               
       </a>
       <a class='btn button_detail' href='index.php?option=com_jshopping&controller=product&task=view&category_id=". htmlentities ($row['category_id'])."&product_id=". htmlentities ($row['product_id'])."'>
                Подробнее           
       </a>
     </div>
</div>
</div>";
}

$msg = "<div>" . $msg . "</div>";
   echo($msg);

   ;}

   
?>   

Дорогие старожилы, прошу проверить код - и подсказать или он безопастный и может что то стоит оптимизировать ?
« Последнее редактирование: 05.08.2015, 20:14:43 от error648398 »
*

Antosha

  • Захожу иногда
  • 420
  • 52 / 0
  • Плохо спорить плохо
Спасибо. Попробую...
<a href="http://joomlablog.ru/">JoomlaBlog</a>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести заголовок прописанный в пункте меню вместо названия категории

Автор anatolij

Ответов: 13
Просмотров: 2270
Последний ответ 04.12.2024, 15:20:00
от kit2m2
В описании категории не работает плагин Jshortcodes

Автор SLV

Ответов: 1
Просмотров: 1190
Последний ответ 09.09.2024, 17:35:29
от kit2m2
Сортировка товаров внутри категории

Автор oslyabya

Ответов: 1
Просмотров: 1307
Последний ответ 02.08.2024, 22:06:39
от nevigen
Сравнить общее количество товаров категории с количеством на странице

Автор goga_pgasovav

Ответов: 6
Просмотров: 1382
Последний ответ 25.01.2023, 20:12:58
от goga_pgasovav
Получить код верхней категории?

Автор mag_num83

Ответов: 5
Просмотров: 1007
Последний ответ 16.12.2022, 16:27:58
от kit2m2