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

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
 Все видели как во многих современных интернет магазинах фото товара появляются не сразу, а помере прокрутки страницы. Закономерный вопрос - зачем? Что это дает? А ответ прост - это позволяет уменьшить время загрузки страницы. Причем скорость загрузки сайта важна не только для пользователя, но и для поисковых систем - скорость загрузки страницы учитывается при ранжировании сайтов в поисковой выдаче.

Мой плагин использует хорошо известый jQuery плагин lazyload. Смысл его работы заключается в том, что при загрузке страницы грузятся только картинки, которые видны на первом экране. Вместо всех остальных картинок, лежащих ниже - ставиться маленькая "заглушка". Браузер считает страницу загруженной, а по мере скрола страницы подгружаются картинки вместо заглушек. Приведу результаты небольшого теста. На моем сайте я выставил 96 товаров на страницу и измерил скорость загрузки страницы. Без плагина - 4.5 сек. С плагином - 0.99 сек. Выводы делайте сами.  Пример работы плагина Вы можете увидеть на моем сайте - Кольца с голубым топазом

Плагин предназначен для Joomla 1.5 и 2.5. Обработывает только фото товара VirtueMart и JoomShopping (фото, в пути к которым есть слово "product"). Для того чтобы все заработало - необходимо только установить и опубликовать плагин.

Несколько ограничений - плагин использует jQuery. Причем загрузка самого jQuery в плагине не сделана - полагаю, что у Вас на сайте jQuery уже используется. Если jQuery у Вас нет - наверное, нет смысла грузить jQuery ради одного этого эфекта.

Второе - если у Вас VirtueMart линейки 1.1.* и при выводе фото товара используется скрипт show_image_in_imgtag.php - плагин тоже не будет работать. Проверить можете посмотрев на адрес фото товара в категории на своем сайте - этот скрипт будет в адресе. Например - src="/components/com_virtuemart/show_image_in_imgtag.php?filename=resized%2FBody_4f1e6a7cba9a3_90x90.jpg&newxsize=90&newysize=90&fileout=" . Бесплатный совет - избавляйтесь от этой гадости - скрипт дает огромную нагрузку на сервер.

Стоимость плагина - 400р. Постоянным покупателям скидка 25% :) - 300р. Оплата - WMR.

Пишите мне на beagler@beagler.ru

P.S. Плагин доработан. Теперь плагин работает и с  show_image_in_imgtag.php  и если у Вас на сайте нет jQuery
*

kaze.mir

  • Захожу иногда
  • 62
  • 7 / 0
я вот сейчас весь в оптимизации наткнулся на вашу разработку. есть пару вопросов:

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

Цитировать
Приведу результаты небольшого теста. На моем сайте я выставил 96 товаров на страницу и измерил скорость загрузки страницы. Без плагина - 4.5 сек. С плагином - 0.99 сек.
охотно верю. только вот этот тест, да и не только этот  (не знаю правда сколько будет хранится кешированная копия результатов, но если что, прроведите пожалуйста тест заново) упрямо показывает, что грузятся все картинки независимо от их видимости в пределах одной страницы. да и опять таки, видимая область страницы -понятие как бы очень размытое для таких тестов... не могли бы вы сказать, чем именно вы тестировали скорость загрузки страницы?

Цитировать
Пример работы плагина Вы можете увидеть на моем сайте
открыл, посмотрел, вопрос: я опять видимо чего то не понимаю, но указанный вами jQuery плагин lazyload грузится в body, причем в самом конце страницы. т.е. по идее все картинки уже загружены браузером. или ошибаюсь?

Цитировать
Вместо всех остальных картинок, лежащих ниже - ставиться маленькая "заглушка"
ну и последнее скорее не вам, а создателям lazyload, но поскольку вы его используете, спрошу у вас. если происходит так, как вы говорите, и вместо картинки реальной отдается заглушка, то что будет видеть поисковик, который не использует скрипты? или вы имеете в виду что подмена идет не серверным, а клиентским скриптом?
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
я вот сейчас весь в оптимизации наткнулся на вашу разработку. есть пару вопросов:
а как этот плагин поможет поисковику быстрее загрузить страницу, учитывая то, что поисковик грузит ее в текстовом виде? или я чего то не понимаю?
Вы правы - страница быстрее грузиться для пользователя
охотно верю. только вот этот тест, да и не только этот  (не знаю правда сколько будет хранится кешированная копия результатов, но если что, прроведите пожалуйста тест заново) упрямо показывает, что грузятся все картинки независимо от их видимости в пределах одной страницы. да и опять таки, видимая область страницы -понятие как бы очень размытое для таких тестов... не могли бы вы сказать, чем именно вы тестировали скорость загрузки страницы?
Именно этот тест. Ваше дело верить- не верить. Я же Вам не навязываю решение. Но раньше  у меня эта страница грузилась 4 сек - а теперь 1.3
открыл, посмотрел, вопрос: я опять видимо чего то не понимаю, но указанный вами jQuery плагин lazyload грузится в body, причем в самом конце страницы. т.е. по идее все картинки уже загружены браузером. или ошибаюсь?
Все верно, загружены,  - только не картинки а заглушка. Откройте исходный код и все увидите
ну и последнее скорее не вам, а создателям lazyload, но поскольку вы его используете, спрошу у вас. если происходит так, как вы говорите, и вместо картинки реальной отдается заглушка, то что будет видеть поисковик, который не использует скрипты? или вы имеете в виду что подмена идет не серверным, а клиентским скриптом?
Вопрос логичный. Но ведь у нас индексируются и карточки товара - и мне даже интереснее чтобы в индекс попали большие картинки - с карточки, а не мелкие.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT JoomShopping Bitrix24 PRO, плагин отправки заказов в CRM Битрикс24

Автор sergeytolkachyov

Ответов: 8
Просмотров: 5984
Последний ответ 03.09.2025, 20:33:18
от sergeytolkachyov
ARTIMEX - импорт экспорт товаров JoomShopping 5+

Автор nevigen

Ответов: 2
Просмотров: 2308
Последний ответ 15.12.2024, 20:14:35
от nevigen
[Импорт/экспорт] Excel2JS - Импорт и экспорт товаров из Excel, YML и VK

Автор katrey

Ответов: 69
Просмотров: 17186
Последний ответ 07.11.2024, 14:10:33
от Stek
Модуль фильтр товаров JoomShopping 5+

Автор nevigen

Ответов: 0
Просмотров: 1730
Последний ответ 29.03.2024, 17:08:45
от nevigen
Плагин интеграции сервиса МойСклад с JoomShopping 5+

Автор JP-Studio

Ответов: 0
Просмотров: 1603
Последний ответ 03.03.2024, 12:14:39
от JP-Studio