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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Интересно почему алиасы приводили к лагам.
99% потому что не влезали в память. смотрите, сейчас остались алиасы категорий, но по скорости все норм. а ведь запросы по алиасам категорий и алиасам товаров идентичны. получается, что просто ушла половина алиасов. и теперь все в памяти.

но все же интересно, можно ли без таких жертв обойтись.
нужно :) просто для этого нужно не 2 Гига, 1 из которых съел апач, а остальные раздербанили между собой nginx, php и mysql. не считая того, о чем мы не знаем :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dineris

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Я бы тоже с радостью пошел другим путем, но я уже неделю ложусь спать не раньше 3ох ночи и пока это наиболее быстрый путь к решению. Пока будет так, а дальше сделаю копию и буду экспериментировать...
*

dmitry_stas

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

dineris

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Скоро я повышу параметры сервера вдвое, попрошу провести оптимизацию и отпишу результат.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Ну вот, я рассчитывал на многосерийную мистерию "Тайна длинного алиаса", а оказалось - банально мало памяти  ;D.
Но таки поучительно, я с такими граблями ни разу не сталкивался, даже мыслей не возникло в эту сторону. Век живи, два - учись.  ;D
*

dineris

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Ну вот, я рассчитывал на многосерийную мистерию "Тайна длинного алиаса", а оказалось - банально мало памяти  ;D.
Но таки поучительно, я с такими граблями ни разу не сталкивался, даже мыслей не возникло в эту сторону. Век живи, два - учись.  ;D

Тогда подождите недельку-другую когда я перенусу это на новый сервер, может и выйдет тогда новая серия)))
*

wishlight

  • Гуру
  • 5062
  • 315 / 1
  • От 300 руб быстрый хостинг. Сервера.
Возьмите железо свежее. Сделайте nginx+php-fpm+mariadb (ispmanager на Debian 9 без проблем позволяет это сделать). Только от htaccess придется отказаться.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Тогда подождите недельку-другую когда я перенусу это на новый сервер, может и выйдет тогда новая серия)))
для разработки можно это сделать и на этом. 99% что у вас, о чем говорил ранее @ChaosHead, просто используется 10% возможностей сервера. поэтому думаю просто для разработки вам пока хватит и этого. но для продакшн с таким количеством товаров (и категорий - непонятное для меня количество, еще раз обращаю внимание на неправильную организацию структуры) этого явно мало. может быть даже мало одного сервера, и придется например базу выносить на отдельный. надо понимать объем посетителей и их действия.

Сделайте nginx+php-fpm+mariadb (ispmanager на Debian 9 без проблем позволяет это сделать)
согласен. только я бы вообще руками это делал в данном случае. во-первых, сервисы испменеджера тоже память жрут. а во-вторых, отсутствие панели - отличный повод понять внутренности :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Проекту только две недели, сайт толком еще не проиндексирован поисковой системой, предположительно в базе будет 600тис. товаро и 100тис категорий.
епрст ! тогда тупиковый какой то путь у Вас...
2 недели проекту, а он сделан на устаревшем движке и устаревшей версии компонента компонента ?
с перекрученной стукртурой
на сервере который не тянет даже текущего состояния
НО ПЛАНИРУЕТСЯ 600к товаров и 100к категорий ?
про категории вообще особый подход у вас

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

dineris

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
епрст ! тогда тупиковый какой то путь у Вас...
2 недели проекту, а он сделан на устаревшем движке и устаревшей версии компонента компонента ?
с перекрученной стукртурой
на сервере который не тянет даже текущего состояния
НО ПЛАНИРУЕТСЯ 600к товаров и 100к категорий ?
про категории вообще особый подход у вас

кароче для такого проекта нужно сначала думать про структуру.
и вообще интеренсо почему жумла ? :)

Сейчас идет акцент на создание базы запчастей! Поменять движок, обновить компонент и купить другой сервер - все это можно решить за пол дня!
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
ну так я ж и сказал...
что надо начать со стурктуры.
а у вас сечас половина в дауне оказалась например http://www.dineris.com.ua/index.php/sklad/Makita
та не половина а почти все меню после ваших изменний алиасов упало.
+ структура странная, производители категориями потом, категории по типам запчастей и т.д.
это все перегружено как-то имхо...
начать надо со структуры изначально как все будет потом наполнять.
даже те 88к которые сейчас есть вкинуть в индекс чтобы потом обломать все ссылками если измените структкру, будет ооочень больно... и ооочень дорого...
используйте сразу новые версии и продумайте структуру.
и вообще подумайте... точно ли жумла + жш :) это я так, для сомнений...

вот у вас вверху слайдер брендов, кликая по ним и попадут во все товары бренда. если сделате это модулем производителй.
и не пользуйтесь вы старыми шаблонами тем более от смартаддонс.
у вас простой сайт сделайте его нормально на простом шаблоне бутсрапе или используйте uikit и будет вам счастье.

П.С. возможно смотреть с заделом на фильтр, хотя для 600к товаров... фильтру будет туговато. если не в категориях а сразу по всем товарам.
хотя.... у вас свойста товаров указаны в описании а не характеристиками, фильтрации не получится.
« Последнее редактирование: 04.12.2017, 00:52:19 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Сейчас идет акцент на создание базы запчастей! Поменять движок, обновить компонент и купить другой сервер - все это можно решить за пол дня!
не не не, тут вы не правы. вам правильно говорят, архитектура - это то, с чего надо начинать. вы сейчас соберете базу, а потом окажется, что формат данных в ней вообще не пригоден для выдачи нужной вам информации. и т.п. чтобы создать базу вы должны понимать всю схему работы.

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

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

Автор sergeytolkachyov

Ответов: 25
Просмотров: 35706
Последний ответ 23.09.2025, 11:22:23
от Alex_gs
Атрибуты полей при оформлении заказа в JoomShopping

Автор goga_pgasovav

Ответов: 1
Просмотров: 625
Последний ответ 12.08.2025, 11:21:29
от kit2m2
Конфликт js шаблонов JoomShaper helix3 J5 с JoomShopping 5

Автор heartlink

Ответов: 6
Просмотров: 1400
Последний ответ 22.07.2025, 12:40:12
от heartlink
Модуль карусели товаров JoomShopping на Swiper.js для Joomla

Автор sergeytolkachyov

Ответов: 2
Просмотров: 2045
Последний ответ 04.07.2025, 10:30:36
от sergeytolkachyov
[Решено] Сбросить счётчик ID товаров JoomShopping

Автор goga_pgasovav

Ответов: 3
Просмотров: 1355
Последний ответ 13.02.2025, 00:11:20
от goga_pgasovav