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

Cerber

  • Захожу иногда
  • 266
  • 34 / 0
  • Богиня Иштар и ее пес Пи..ц
Проблема:
Часто приходится стилизовать часть категорий своим стилем
То есть присваивать свой "class" как в меню Joomla "CSS-класс ссылки"
Но пользоваться меню Joomla очень неудобно и долго особенно если каталог состоит из 150-200 категорий.

Предложение:
Добавить переменную class категориям
и ее редактирование в "Категории->Параметры"
« Последнее редактирование: 16.08.2014, 15:57:45 от Cerber »
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
Re: Что нужно доделать в ЖШ
« Ответ #1 : 10.08.2014, 12:54:18 »
Проблема:
Часто приходится стилизовать часть категорий своим стилем
То есть присваивать свой "class" как в меню Joomla "CSS-класс ссылки"
Но пользоваться меню Joomla очень неудобно и долго особенно если каталог состоит из 150-200 категорий.

Предложение:
Добавить переменную class категориям
и ее редактирование в "Категории->Параметры"
Создайте отдельный шаблон для категорий :)
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
Re: Что нужно доделать в ЖШ
« Ответ #2 : 10.08.2014, 12:57:30 »
У меня пожелание по мультиязычности, чтобы на каждый язык было выведено как можно больше настроек для определенного языка: опция публикации категории/товара, назначение определенной валюты на фронтэнде, опция использовать в качестве каталога/магазина.
Зачем это нужно? - если сайт работает на разные страны, в которых разные позиции могут быть не доступны, либо заказ товара вообще не предусмотрен.
*

Cerber

  • Захожу иногда
  • 266
  • 34 / 0
  • Богиня Иштар и ее пес Пи..ц
Re: Что нужно доделать в ЖШ
« Ответ #3 : 10.08.2014, 14:25:05 »
Создайте отдельный шаблон для категорий :)

Причем тут отдельный шаблон речь идет о пункте категории, даже пример приведен:
То есть присваивать свой "class" как в меню Joomla "CSS-класс ссылки"
...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #4 : 10.08.2014, 14:57:23 »
Причем тут отдельный шаблон речь идет о пункте категории, даже пример приведен:
шаблон будете выбирать, а в шаблоне жестко класс пропишите, и все. смысл такой же.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Cerber

  • Захожу иногда
  • 266
  • 34 / 0
  • Богиня Иштар и ее пес Пи..ц
Re: Что нужно доделать в ЖШ
« Ответ #5 : 10.08.2014, 17:23:34 »
Допустим в списке подкатегорий надо изменить стиль первых пунктов в ряду,
а последний пункт обвести красным как новый, и как мне поможет шаблон?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Что нужно доделать в ЖШ
« Ответ #6 : 10.08.2014, 18:47:11 »
ну если вы имеете в виду какой нибудь модуль категорий, то конечно ничем. а если именно список подкатегорий (т.е. шаблон конкретной категории) - то не вижу особой разницы. точно также, как делали бы с классом, только в данном случае класс прописан жестко (либо не совсем жестко, а исходя из ID например) в шаблоне для этой категории. по-моему вопрос выходит за рамки обсуждаемой темы - Что нужно доделать в ЖШ :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Cerber

  • Захожу иногда
  • 266
  • 34 / 0
  • Богиня Иштар и ее пес Пи..ц
Re: Стилизация категорий
« Ответ #7 : 11.08.2014, 00:02:43 »
Не обязательно модуль хотя заданный класс отдельным пунктам категории очень выручил бы и в модуле

Что в шаблоне что в модуле категории выводятся через цикл то есть через "шаблон категорий" Вы можете задать только то что:
из 1-й категории все подкатегории будут с черной рамкой, а из 2-й с серой рамкой
А чтобы одна единственная Подкатегория №12 в общем списке всех подкатегорий которые выводятся через
"foreach" была красного цвета - такого шаблоном категории нельзя сделать


теперь надеюсь ясно изложил ::)
« Последнее редактирование: 16.08.2014, 15:58:22 от Cerber »
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Стилизация категорий
« Ответ #8 : 11.08.2014, 00:59:18 »
Так речь про модуль категорий или про шаблон категорий? Если про модуль категорий, то это ж можно через пункты меню Joomla сделать, там по-умолчанию стиль в модуле можно задавать по идентификатору пункта меню или через свой класс. В чем проблема-то?

Цитировать
А чтобы одна единственная Подкатегория №12 в общем списке всех подкатегорий которые выводятся через
"foreach" была красного цвета - такого шаблоном категории нельзя сделать
Почему бы в этом цикле не добавить class="cat-<?php echo $cat_id?>" и задать своему .cat_XX{color:red } ?  Как это сделано в модуле пунктов меню  Joomla
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Стилизация категорий
« Ответ #9 : 11.08.2014, 08:32:36 »
теперь надеюсь ясно изложил ::)

та оно и так было понятно :) я ж как видите не сказал, что ваше предложение в "Что надо доделать" совсем лишено смысла. я понимаю, что с классом как у пункта меню было бы удобнее. поэтому я и сказал
жестко класс пропишите, и все. смысл такой же.
, а не "то же самое"

а по факту, поскольку вам все таки нужно решение, а не просто принципиальный момент, добавят это разработчики или нет, то уже и я сказал, и ELLE подтвердила - по ID персонализируйте просто, и все.
смысл такой же
:)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Стилизация категорий
« Ответ #10 : 11.08.2014, 10:34:56 »
Накидал тут вариант
Единственное что нужно сделать, это поправить шаблон. В описании по ссылке написано как
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

Cerber

  • Захожу иногда
  • 266
  • 34 / 0
  • Богиня Иштар и ее пес Пи..ц
Re: Стилизация категорий
« Ответ #11 : 11.08.2014, 16:14:11 »
а по факту, поскольку вам все таки нужно решение, а не просто принципиальный момент, добавят это разработчики или нет, то уже и я сказал, и ELLE подтвердила - по ID персонализируйте просто, и все.:)

Но пользоваться меню Joomla очень неудобно и долго особенно если каталог состоит из 150-200 категорий.
...

 ^-^ Это принципиальный момент поскольку я ранее решил этот вопрос по своему (модуль):
Код: php
<?php foreach($cats_array as $curr){
    $class="cats_item";
    if ($curr->short_description) $class = $class."_ful"; //add #2 tip caterory
    if ($curr->category_id==112) $class = $class."big"; //add #3 tip caterory
    if ($categories_id[$curr->level]==$curr->category_id) $class = $class."_a"; //active
    echo '<a class="'.$class.'" href="'.$curr->category_link.'">'.$curr->name.'</a>';
}?>
Но как при таком раскладе Вы объясните заказчику что в будущем, после добавления новых категорий 3-го уровня (в моем случае) ему придется лезть в код и добавлять условия.

И вместо того чтобы лезть в код, просто объяснить заказчику что для категорий N-го типа надо прописать N-ый класс
в параметрах категории JS, если бы это было бы в стоковом варианте

К тому же добавятся возможность для манипуляции с разными категориями не прибегая к Joomla-вскому меню
Одни плюсы толь эта идея в ваших штыках уже не кажется такой хорошей так-же как для бабушке микроволновка :)
Давайте рассуждать как проще и лучше, а не как мы умеем или привыкли



Спасибо Linfuby за Ваш вариант с меня (+)
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Стилизация категорий
« Ответ #12 : 11.08.2014, 22:57:31 »
ЖШ, хорош в плане доступности и чтения кода, и очень хорош в плане возможностей расширения функционала. За счет этого и живет часть сообщества продавая свои реализации. А другая часть, либо изучает ЖШ, либо покупает готовые идеи.
При этом почти все коммерческие продукты всегда имеют возможность реализации бесплатно.
И здесь у пользователя всегда встает вопрос - покупать, или сделать самому.
Я когда начал работать с ЖШ - выбрал вариант, сделать самому и на сегодня я один из поставщиков решений для ЖШ.
А кем хочешь стать ты? Обращение не к конкретному человеку, а к каждому что читает данную ветку.
Читай, экспериментируй, удаляй и заново ставь Joomla и JoomShopping. И только через несколько десятков раз, ты сможешь задавать вопросы не только в ветке "Дизайн и оформление", но и в "Разработки и улучшения".
Поэтому главной мыслью, которую я хотел донести является то, что если грызть гранит науки до основания, то открытия которые ждут после этого смогут удивить любого эксперта в области прогрызания этого гранита.
И запомните - 80% ответа содержится в вопросе. И если Ваш вопрос содержит 0% ответа - не стоит его задавать на этом форуме, так как в ответ вы получите вопросов еще больше чем хотели получить ответов.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Re: Стилизация категорий
« Ответ #13 : 12.08.2014, 00:15:49 »
Linfuby +
Cerber а если задать класс последнему пункту с помощью javascript'а?

У меня так вкладки реализованы, у них условие - если вкладка пустая то она не выводится, а при переходе на страницу товара какая-то вкладка открытая должна же быть, и естественно первая.

Например.
Код
("div#menu a:first").addClass("l_m_item");
только first поменять на last. Я не знаю javascript но с last думаю должно работать, и не надо ничего извращаться. А если не заработает, суть все равно понятна.
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Стилизация категорий
« Ответ #14 : 12.08.2014, 05:26:04 »
Можно ж и псевдоклассом. shurakana, у вас ошибка.
Если разметка чисто ссылками:

Код: html4strict
<div id="menu">
  <a>1</a>
  <a>2</a>
  <a>3</a>
  <a>4</a>
</div>

…то так:

Код: css
#menu a:first-child {/*первый*/}
#menu a:last-child {/*последний*/}

Если это список:

Код: html4strict
<ul id="menu">
  <li><a>1</a></li>
  <li><a>2</a></li>
  <li><a>3</a></li>
  <li><a>4</a></li>
</ul>

…то так:

Код: css
#menu li:first-child a {/*первый*/}
#menu li:last-child a {/*последний*/}

Ну а если юзать css3-селекторы, то вообще возможно всё. ^-^
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Стилизация категорий
« Ответ #15 : 12.08.2014, 05:29:30 »
Cerber, я для таких случаев присваиваю дополнительным классом альас. Т.е. id, level и т.д. может теоретически смениться. Альасы же материалов/пунктов-меню/категорий в 99% случаев остаются навсегда. Конкретно в JS не могу сказать, как его выцепить, нет под рукой. var_dump-м можно глянуть.
*

Cerber

  • Захожу иногда
  • 266
  • 34 / 0
  • Богиня Иштар и ее пес Пи..ц
Re: Стилизация категорий
« Ответ #16 : 12.08.2014, 11:21:54 »
Ребята спасибо за решения, но суть поста (уже темы) не в решении конкретных проблем, а в том что
при отсутствии такого параметра как "класс пункта категории" нам приходится каждому изобретать свой велосипед
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: Стилизация категорий
« Ответ #17 : 12.08.2014, 11:44:14 »
создание сайта = изобретение своего велосипеда
 :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки магазина (2015)

Автор nevigen

Ответов: 162
Просмотров: 17571
Последний ответ 02.06.2024, 22:02:55
от Vastriet
Что нужно доделать в ЖШ

Автор nevigen

Ответов: 924
Просмотров: 99328
Последний ответ 22.12.2020, 22:09:27
от nevigen
Поменять местами данные в форме ФИО

Автор Roman74ru

Ответов: 1
Просмотров: 2091
Последний ответ 23.07.2016, 15:53:19
от Roman74ru
Не показывает товар при разных производиm

Автор kossss5

Ответов: 0
Просмотров: 1390
Последний ответ 04.11.2014, 13:42:39
от kossss5
Проблемы после обновления 3.18.5 -> 3.19.0

Автор rifys

Ответов: 18
Просмотров: 1701
Последний ответ 29.09.2014, 15:23:25
от rifys