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

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
В продолжение темы: http://joomlaforum.ru/index.php/topic,243024.0.html

Есть у меня задача с нестандартным выводом товаров в категории.

В категории товар выводится в 4 колонки.
Размер изображения товара в категории 220х160
Размер изображения в карточке товара 980х400

Разные пропорции получаются.

Тоесть нужно или обрабатывать изображения программно или должна быть возможность задать в JoomShopping руками какое изображение будет для категории и какие для товара, а обрабатывать изображения уже в стороннем ПО.

Кто поможет оплачу за работу.
*

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
В многих CMS данная функция по умолчанию присутствует. Изображение для листинга товаров (категории) и детальное изображение (для карточки товара).

Это к разработчикам. Если можно добавьте в стандартную поставку данную функцию.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
В 3.13.0 будет выбор картинки с папку

можна загрузить 3 рисунка(thumb_image.jpg, image.jpg, full_image.jpg) а в аминке выбрать
*

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
В 3.13.0 будет выбор картинки с папку

можна загрузить 3 рисунка(thumb_image.jpg, image.jpg, full_image.jpg) а в аминке выбрать


Огромнейшее спасибо, Виктор. Жду новой версии.
*

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
Как, это организовано на примере CS-Cart


« Последнее редактирование: 03.02.2013, 00:58:55 от SWoz »
*

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
Тестирую бету, пока не понятно как работает функция выбора изображения.
*

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
Я имел ввиду что-то подобное (Image CMS):


Виктор, можете объяснить как работает функция выбора изображения для thumb и основного изображения?
« Последнее редактирование: 07.02.2013, 12:45:15 от SWoz »
*

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
Виктор, функция работает только в Firefox.



При нажатии чекбокса есть возможность выбрать изображение из папки.

Но как выбрать например thumb для продукта (и чтобы он оставался thumb'ом, тоесть только отображался в листинге продуктов, но не в карточке продукта)?

Долго ждал данный функционал, решение подобное, тому как в ВМ, думаю всех бы устроило:


Возможность заменять thumb при надобности.
« Последнее редактирование: 07.02.2013, 13:18:09 от SWoz »
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Ошибка будет исправлена в 3.13.1

administrator\components\com_jshopping\js\functions.js

замените функцию SqueezeBox_init

function SqueezeBox_init() {
    product_images_width = 640; product_images_height = 480;
   SqueezeBox.initialize();
   SqueezeBox.setOptions({size: {x: product_images_width, y: product_images_height}}).setContent('string', '');
   SqueezeBox.applyContent('<div id="product_images" style="display: none; height: ' + product_images_height + 'px; overflow: scroll;"></div>');
   jQuery('.sbox-content-string').append('<div id="product_images-overlay"></div>');
}
« Последнее редактирование: 07.02.2013, 14:24:38 от victorantoniak »
*

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
Ошибка будет исправлена в 3.13.1

administrator\components\com_jshopping\js\functions.js

замените функцию SqueezeBox_init

function SqueezeBox_init() {
    product_images_width = 640; product_images_height = 480;
   SqueezeBox.initialize();
   SqueezeBox.setOptions({size: {x: product_images_width, y: product_images_height}}).setContent('string', '');
   SqueezeBox.applyContent('<div id="product_images" style="display: none; height: ' + product_images_height + 'px; overflow: scroll;"></div>');
   jQuery('.sbox-content-string').append('<div id="product_images-overlay"></div>');
}


Надеюсь, последний вопрос по данной теме.

Задача:
Задать вручную изображение для листинга и для карточки товара.

Решение:
1. Я скопировал в папку с картинками (components\com_jshopping\files\img_products) 5 изображений (4 для карты товара и 1 для листинга). Увеличенных изображений (full_xxxx) у меня не будет.


2. Захожу в выбор изображений (использую новую функцию "ручного выбора").
Надеюсь увидеть здесь только что скопированные изображение, но в модальном окне пусто.



Ладно, пробуем загрузить все картинки, а потом уже выбрать



Результат:
Не, тот что нужен.



Что я сделал не так? И как эта функция работает?
*

danvin

  • Новичок
  • 1
  • 0 / 0
SWoz - вы сумели найти решение?  Так же с этой  проблемой столкнулся лоб в лоб уже серьёзно. Люди просят сделать, а я развожу руками.
*

SWoz

  • Захожу иногда
  • 62
  • 0 / 1
SWoz - вы сумели найти решение?  Так же с этой  проблемой столкнулся лоб в лоб уже серьёзно. Люди просят сделать, а я развожу руками.

Нет, воз все там же.. Ожидаем комментариев Виктора.
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
Нет такой возможности
1 фото всегда фото для категории(корзины)
*

strange76

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Всем привет! Так как из коробки данная функция по-прежнему недоступна (не смотря на то, что прошло 3 года), хочу поделиться своим костылём для решения этой проблемы.

1. открываем файл components\com_jshopping\templates\default\product\product_default.php
2. ищем строку
Код
<?php foreach($this->images as $k=>$image){?>
(у меня 56-я строка)
3. меняем её на
Код
<?php $sliced = array_slice($this->images, 1); ?>
<?php foreach($sliced as $k=>$image){?>
4. ищем дальше такую же строку, как п.2 (примерно 85-я строка)
5. меняем её на
Код
<?php foreach($sliced as $k=>$image){?>

Теперь изображение, установленное по умолчанию просто не будет выводиться в карточке товара
Проверено на Joomla! 3.6, JoomShopping 4.14.2
Надеюсь пригодится.
« Последнее редактирование: 19.07.2016, 16:57:32 от strange76 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Favorite - кнопки избранного в категории товаров и карточке тов

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35716
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
WT On fly image handler изображения товара JoomShopping в webp на лету

Автор sergeytolkachyov

Ответов: 13
Просмотров: 4378
Последний ответ 29.01.2025, 20:38:38
от sergeytolkachyov
JoomShopping, вывод всех категории к которым принадлежит товар

Автор Valent777

Ответов: 12
Просмотров: 2472
Последний ответ 01.11.2024, 14:57:28
от kit2m2
Видео с Youtube вместо картинки на карточке товара

Автор ksena

Ответов: 35
Просмотров: 10217
Последний ответ 08.10.2024, 04:26:36
от kit2m2
Дополнительные поля для категории JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1805
Последний ответ 07.07.2024, 08:43:15
от nevigen