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

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Используете ли вы SVG?
« : 26.12.2014, 05:48:35 »
Тут некоторые верстальщики советуют  делать векторную графику на странице в формате svg...
Особенность заключается в том, что она не встраивается отдельным файлом, а пишется прямо в HTML код.
Браузер 8 IE уже немного в прошлом и поддержка достаточно хорошая, если что можно проверить через modernizer.js поддержку SVG.

Естественно если вам дают макет, там никакого SVG нету. Нарезать нужно в jpg/png/gif

Кроме того наконец то есть полностью заменить GIF и Flash анимацию. И даже HTML5 Canvas(если я не ошибаюсь это другая технология).
Всё что не анархия, то фашизм...
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Используете ли вы SVG?
« Ответ #2 : 26.12.2014, 11:50:29 »
Была у меня верстка с svg, но там были отдельные файлы, нужны они были для качественного отображения на яблоках.
*

Alldar

  • Завсегдатай
  • 1504
  • 195 / 1
Re: Используете ли вы SVG?
« Ответ #3 : 26.12.2014, 16:23:39 »
Цитировать
там никакого SVG нету
Можно из смарт объектов сохранить в SVG в последней версии Photoshop правда это не очень просто, но вполне реально.

Цитировать
Особенность заключается в том, что она не встраивается отдельным файлом, а пишется прямо в HTML код.
Крайне фиговая практика как по мне, утяжеляет страницу такое я бы использовал только если нужно анимировать SVG а так лучше подключать его как обычный файл предварительно пройдясь по нему svgo. Так же этот способ не все браузеры корректно воспроизводят, IE9 и Opera 12 по моему не очень поддерживают хорошо встраивание http://caniuse.com/#search=svg

Но вообще я бы не рискнул использовать больше 5 SVG на странице они очень требовательные к ресурсам если в них много линий (path) они способный просто повесить браузер на каком-нибудь iphone 4s или вообще с ошибкой его уронить 
« Последнее редактирование: 26.12.2014, 16:31:49 от Alldar »
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Используете ли вы SVG?
« Ответ #4 : 26.12.2014, 19:09:20 »
Да как бы он сжимается, сервера в большинстве случаев отдают в формате gzip.

Иконки хорошо делать на нём.

Кстати для айфонов и прочих смартфонов и планшетов есть преимущество в виде "резиновости" изображения. Что если использовать svg скажем в этом случае для какой-то  заливки?
Всё что не анархия, то фашизм...
*

Alldar

  • Завсегдатай
  • 1504
  • 195 / 1
Re: Используете ли вы SVG?
« Ответ #5 : 26.12.2014, 20:06:02 »
Шрифты?


Цитировать
Иконки хорошо делать на нём.
Еще раз говорю вы поимеете кучу проблем с производительностью на мобильных устройствах
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Используете ли вы SVG?
« Ответ #6 : 26.12.2014, 20:30:23 »
Имхо, если svg маленькие (иконки на кнопки, например), то просто пожать их в base64 и прямиком в CSS указывать, в остальных случаях я против svg: жрут много. Уж лучше png-спрайты или тот же png в base64 (если меньше килобайта).
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Используете ли вы SVG?
« Ответ #7 : 26.12.2014, 20:33:52 »
Шрифты?

Еще раз говорю вы поимеете кучу проблем с производительностью на мобильных устройствах
1.Не думаю, что жрёт он ресурсов больше Flash.
2.Не думаю, что смартфоны щас слабые.
3.Всё же считаю, что для смартфонов нужно делать отдельный сайт
4.В крайних случая можно проверять браузеры, платформу и многое другое и отдавать в этом случае например png/gif.
Всё что не анархия, то фашизм...
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Используете ли вы SVG?
« Ответ #8 : 26.12.2014, 21:03:26 »
1.Не думаю, что жрёт он ресурсов больше Flash.
2.Не думаю, что смартфоны щас слабые.
3.Всё же считаю, что для смартфонов нужно делать отдельный сайт
4.В крайних случая можно проверять браузеры, платформу и многое другое и отдавать в этом случае например png/gif.
1. Много меньше, Flash жрет вообще о^Yенно.
2. Смартфоны бывают разные, более 50% используемых - до сих пор на втором андроиде.
3. Для смартфонов сейчас уже не сайты создают, а полноценные веб-приложения: переходишь по ссылке, а он тебе как отдельная программа открывается.
4. А гиф сейчас разве не платный? имхо, пнг рулил, рулит и рулить будет еще долго.
*

Alldar

  • Завсегдатай
  • 1504
  • 195 / 1
Re: Используете ли вы SVG?
« Ответ #9 : 26.12.2014, 21:06:46 »
Цитировать
1.Не думаю, что жрёт он ресурсов больше Flash.
Ну так угадайте с 3х раз почему не используется Flash на мобильниках. Вы возьмите и протестируйте страницу из SVG состоящую только не на эмуляторе а на реальном устройстве будете удивлены сколько она грузится по времени и как греется телефон

Цитировать
3.Всё же считаю, что для смартфонов нужно делать отдельный сайт
ну бред же
Цитировать
4.В крайних случая можно проверять браузеры, платформу и многое другое и отдавать в этом случае например png/gif.
Ну и что вы будите отдавать тогда все через скрипт? даже если вы проверите платформу все равно в фоне svg будет грузиться


Цитировать
Смартфоны бывают разные, более 50% используемых - до сих пор на втором андроиде.
Да даже iphone 4, 4s, Ipad 2 падает со сложными иконками
*

dremora

  • Захожу иногда
  • 461
  • 48 / 12
Re: Используете ли вы SVG?
« Ответ #10 : 26.12.2014, 21:53:43 »
ну бред же
Мобильная версия хабра например. Это по сути другой сайт. База данных возможно одна используется...

Ну и что вы будите отдавать тогда все через скрипт? даже если вы проверите платформу все равно в фоне svg будет грузиться
Это как это? Пока к DOM не подключено это всё тот же код JS например. Который исполняется только по запросу.
Всё что не анархия, то фашизм...
*

Alldar

  • Завсегдатай
  • 1504
  • 195 / 1
Re: Используете ли вы SVG?
« Ответ #11 : 06.01.2015, 11:15:07 »
Цитировать
Мобильная версия хабра например. Это по сути другой сайт. База данных возможно одна используется...
Это бред так делать т.к. определить размер экрана/устройство сложно если оно нестандартное. Например в windows из приложения twitter открывает ссылку на 4/6 экрана с браузером, как определить какой сайт нужно отдать ему? Юзерагент ведь не отличается от десктопа а на 8'' хабр убого смотрится, его читать там не удобно в таком раскладе. Сделать правильное перенаправление нереально, т.к. число пользователей разных устройств огромно от windows 8 на планшетах до smart tv, как узнать какой им сайт подсовывать? На 4к smartv выдавать сайт для мобильного устройства? + вы для каждого сайта будите делать API во сколько раз это удорожит процесс разработки?

Да далеко ходить не надо за примерами, этот форум браузеру UC выдает pda версию вместо полноценного переключить не известно как если это вообще возможно, шанс что пользователь вернется на форум после посещения форума первый раз ровна 0.

Цитировать
Пока к DOM не подключено это всё тот же код JS например.
Посмотрите как Chrome работает с изображениями вы очень удивитесь, он все равно их загрузит но в последнюю очередь
« Последнее редактирование: 06.01.2015, 11:18:35 от Alldar »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Используете ли вы js шаблонизатор?

Автор dremora

Ответов: 8
Просмотров: 1681
Последний ответ 22.07.2014, 22:35:16
от AlekVolsk