Новости 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

Голосование

Картинку логотипа вы выводите используя

background-image
7 (36.8%)
тег <img>
12 (63.2%)

Проголосовало пользователей: 19

0 Пользователей и 1 Гость просматривают эту тему.
  • 34 Ответов
  • 4521 Просмотров
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
В общем недавно столкнулся в споре. Как выводить логотип своего сайта. Есть два подхода. Один с использованием background-image в CSS и второй используя тег img. Я лично предпочитаю использовать background-image в CSS, тем самым избегаю лишнего и не нужного элемента  Dom.
А как выводите вы?
1. <a title="На главную страницу" href="http://habrahabr.ru/" class="logo"></a>
2. <a onclick="c(this,17,1081)" href="http://www.yandex.ru"><img width="100" height="44" border="0" alt="Яндекс" src="//yandex.st/www/1.411/yaru/i/logo.png"></a>
*

ELLE

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
голосую за тег <img>
Какие есть плюсы у этого метода?
Минусы. Нельзя вывести спрайтом или base64 в CSS + лишний запрос.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Добавь третий результат - когда как, и так и так могу вывести - зависит от погоды и положения звезд.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Потому что логотип это не то же самое, что элемент дизайна, как например оформление модулей и прочего.
Логотип еще и лицо сайта или компании, можно сравнить с фавиконом (его же вы не выводите спрайтом)
Просто сравните раз и два правая колонка
совсем плохой плюс, в сравнении с "лишним запросом" или невозможностью засунуть в спрайт?
« Последнее редактирование: 21.12.2012, 00:55:10 от ELLE »
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
1. <a title="На главную страницу" href="http://habrahabr.ru/" class="logo"></a>
2. <a onclick="c(this,17,1081)" href="http://www.yandex.ru"><img width="100" height="44" border="0" alt="Яндекс" src="//yandex.st/www/1.411/yaru/i/logo.png"></a>
1. так неверно, у тега <a> должно быть содержимое - анкор
2. alt = анкору
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
+1 к словам ELLE.   

Логотип - это часть контента, а не оформления, поэтому img.
Логотип может проиндексироваться в ПС.
Cоциалки в духе "отправить себе на стену" логотип в img - запостят, а в бэкграунде - нет.
При распечатке не распечатается background.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

art-apple

  • Захожу иногда
  • 386
  • 61 / 2
Код
<div id="logo">
<?php if (JURI::current()!== JURI::base()){ ?><a title="Название компании" href="<?php echo $this->baseurl; ?>"><?php } ?>
<img src="<?php echo $tplurl; ?>/images/logo.png" alt="Название компании" />
<?php if (JURI::current()!== JURI::base()){ ?></a><?php } ?>
</div>
На главной логотип не кликабельный(не ссылка)
img правильнее
« Последнее редактирование: 21.12.2012, 09:00:25 от art-apple »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
Логотип - это часть контента, а не оформления, поэтому img.
Тег <a> - это и есть контент
Цитировать
Логотип может проиндексироваться в ПС. Cоциалки в духе "отправить себе на стену" логотип в img - запостят, а в бэкграунде - нет.
Ну и что. Толку от него, что он попадет в картинки. Мало того для этого есть метатеги. И здесь они должны отрабатывать, задавать каждой странице свой рисунок и да можно ссылку на лого.
Цитировать
При распечатке не распечатается background.
Печать шапки сайта это специфическая задача
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Зачем печатать шапку? В крайнем случае есть @media print
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Тег <a> - это и есть контент Ну и что. Толку от него, что он попадет в картинки. Мало того для этого есть метатеги. И здесь они должны отрабатывать, задавать каждой странице свой рисунок и да можно ссылку на лого.Печать шапки сайта это специфическая задача
Я не буду расписывать разницу между контентом и оформлением. Логотип, как рисунок, должен быть контентом.
Толку? - Ну а вообще где-то толк есть? Толку нет нигде. Все бренно ...
Печать не шапки сайта, а с браузера печать страницы. Целой страницы с шапкой вместе.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Зачем печатать шапку? В крайнем случае есть @media print
Вы видели простых людей? Которые с компьютерами и вашими интернетами на "ВЫ"?
Для них много хитрого надо делать.

А медия-принт как поможет распечатать лого в бэкграунде?
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Вы видели простых людей? Которые с компьютерами и вашими интернетами на "ВЫ"?
Для них много хитрого надо делать.

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

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

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Цитировать
Печать не шапки сайта, а с браузера печать страницы. Целой страницы с шапкой вместе.
Попробуйте взять и распечатать целиком страницу сайта :) В порядке опыта.
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Цитировать
Логотип еще и лицо сайта или компании
+1
По названию компании (если alt соответствующий) в картинках будет. Уже доп. пиар.
Я за картинку.
Создание сайтов, шаблонов, помощь в решении проблем.
*

Yurets

  • Захожу иногда
  • 405
  • 92 / 0
  • Губернатор острова Борнео
Блин, у меня лого во флешке и интерактивное... (((
В комнате с белым потолком
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
По названию компании (если alt соответствующий) в картинках будет. Уже доп. пиар.
Я за картинку.
Для этих задач лучше использовать метатеги.
<link rel="image_src" href="/logo.jpg" /> (примеры) или
<meta property="og:image" content="/logo.png" /> (описание)
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Poznakomlus, какой вы упертый :) (извиняюсь)
Ну вот смысл еще и 2 дополнительных мета-тега прописывать, когда можно один раз прописать <img> :)
Короче, если вы сделали через бэкграунд-картинку, а заказчик попросил переделать на <img>, лучше прислушаться, даже если по вашему мнению это не оправданно.

Yurets, в этом случае можно подсунуть еще и <img>, хотя бы для тех у кого нет Flash, а то увидят пустое место, вместо вашего интерактивного лого ;)
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Для этих задач лучше использовать метатеги.
<link rel="image_src" href="/logo.jpg" /> (примеры) или
<meta property="og:image" content="/logo.png" /> (описание)
Из моего ТЗ? :-)
*

ELLE

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Тег <img> в лого
1. Лишний запрос
2. Лишний элемент Dom
3. Лишняя строка кода
4. Дополнительно писать в CSS для любимых браузеров a img{}
5. Возможно будет добавлен в картинки для индексации. (Если не нужно). То разбавит в очередной раз кучу проиндексированного хлама вашего сайта.
6. Будет навязчиво присутствовать при интеграции с социальными сетями и т. д.
Уже 2013 г. на пороге, а мы все по старинке.
Поисковики, давно читают классы стилей и микроразметку.
Теги изображений,  это если надо, и по выбору и не обязательно 2
*

katjuha6

  • Захожу иногда
  • 173
  • 0 / 0
я всегда через img прописываю. могу даже пояснить свою позицию. основная часть пользователей интернета уже привыкла к тому, что при клике по лого их перебрасывает на главную страницу сайта. мне кажется, что можно плюнуть на один лишний запрос для удобства посетителя.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
лучше по сабжу чего-нибудь скажи
Конечно же тэг img.
1) Чаще всего - лого это ссылка
2) А как будут рендирить лого всякие Opera мини\тестовые бразузеры итп
3) Ну и удобнее во многих случаях.
4) Опять же семантика.
*

aspidy

  • Завсегдатай
  • 1008
  • 55 / 1
  • Миграция joomla 1.0-1.5-2.5
А модулем?
<config>
        <fields name="params">
          <fieldset name="Logo">
            <field name="logo" type="media"
                  label="LOGO" description="Мой логотип" />
         </fieldset>
        </fields>
 </config>
Мелкий ремонт. skype poisk-plus
*

Yurets

  • Захожу иногда
  • 405
  • 92 / 0
  • Губернатор острова Борнео
Yurets, в этом случае можно подсунуть еще и <img>, хотя бы для тех у кого нет Flash, а то увидят пустое место, вместо вашего интерактивного лого ;)
Так то ж был 2007-й год. Страшно подумать.
В новой "модной" версии сайта все будет по-другому. ;)
В комнате с белым потолком
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
я всегда через img прописываю. могу даже пояснить свою позицию. основная часть пользователей интернета уже привыкла к тому, что при клике по лого их перебрасывает на главную страницу сайта. мне кажется, что можно плюнуть на один лишний запрос для удобства посетителя.
Клик и переход дает как раз таки ссылка, а не картинка img.
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Оно его и не должно помогать распечатывать. Он предоставляет возможноть исключить, оставить, добавить что либо на страницу печати.

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

Ну в этом и дело. Лого печатается для того, чтобы Евгений Палыч 47 года рождения хоть как-то завтра узнал, что он сегодня распечатал прайс именно этой фирмы. Ведь он, чтобы перейти на сайт www.totsayt.ru - открывает страницу ПС "Яндекс" и вбивает туда www.totsayt.ru - и там тыкает на первую ссылку.
Вы считаете что все с компом на ты ... но увы. Им новое - это зло. Они заучили (и распечатали на бумаге и повесили повыше за моником волшебное сочетание ctrl + p) и все. Больше никак. Для таких простых Евгениев Палычей, которые работают в отделе закупок в ЗАО "ЭлектроПросСвязьГосКикоз" и готовы купить сегодня партию в 10000 конденсаторов, а завтра 10 км провода ШПГУП 0,5мм - надо и давать такие вещи. Ваше последнее предложение именно это и подтверждает.

Попробуйте взять и распечатать целиком страницу сайта :) В порядке опыта.

Прошу обратить внимание на вышеуказанного Евгения Палыча. Если вы не учитываете таких, то теряете большой сегмент пользователей ПК. Есть опыт работы в крупных предприятиях от 1 до 5 тыщ сотрудников. Так вот там 80% работников - такие-же, как Евгений Палыч. Увы, печально, компьюетерная грамотность там на нуле.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Радикальная защита сайта

Автор effrit

Ответов: 12
Просмотров: 1716
Последний ответ 16.10.2018, 18:50:41
от Fedor Vlasenko
Поиск шаблона для сайта по домену или картинки. Как?

Автор tnk

Ответов: 1
Просмотров: 1039
Последний ответ 06.09.2018, 14:04:09
от AlekVolsk
Сколько стоит поддержка сайта

Автор voland

Ответов: 21
Просмотров: 1911
Последний ответ 28.05.2017, 09:16:21
от prosystema
А вы сделали мобильную версию своего сайта?

Автор Aiden

Ответов: 49
Просмотров: 5238
Последний ответ 22.11.2016, 18:36:07
от AlekVolsk
Зачем нужна мобильная версия сайта?

Автор ecolora

Ответов: 20
Просмотров: 2087
Последний ответ 09.06.2016, 16:50:00
от Shustry