Новости 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 Ответов
  • 1854 Просмотров
*

coyoteN

  • Новичок
  • 8
  • 0 / 0
Позиция в шаблоне
« : 09.03.2014, 22:58:55 »
Прошу помощи знающих людей. Делаю сайт на Joomla 3.2, нашел шаблон s5-velocity.
Всем он устраивает, но при наполнении сайта возникла проблема. Понадобилась еще одна модульная позиция в этом шаблоне.
Эта позиция должна находится над логотипом и основным меню, но под Open panel-ю.
Начал разбирать шаблон и добавлять строки.
Открыл файл шаблона \ index.php \  там после 201 строки дописал вот такую строчку с названием своей позицией cust_my:

               <div id="s5_top_menu_wrap">
                  <?php s5_module_call('cust_my','notitle'); ?>
               </div>

Дальше в файл \ templateDetails.xml \ дописал строчку:

                                           <position> cust_my </position>

Так как использовал селектор id, то не стал дописывать в файл \ template.css \ код.
Естественно создал новое меню, разместил его в своей созданной позиции. Перезагрузил шаблон и вот мое меню появилось. Оно полностью рабочее(расположено по горизонтали), но находится не на том месте где мне надо. А находится оно перед логотипом, а не над ним.
При попытке переписать код :

                                    <div class="s5_topmenufloat">
               <?php s5_module_call('cust_my','notitle'); ?>
                                    </div>

Создав собственный класс s5_topmenufloat и прописав его в файл \ template.css \

                                                         .s5_topmenufloat {
                                                           float:left;}

Перезагрузил шаблон. Меню стало в столбик, шрифт поменялся. Но самое главное он остался на том же месте перед логотипом.
Дальнейшие попытки (эксперименты) не привели к нужному результату.
Прошу помощи. Какой и куда нужно приписать код чтоб это меню (модульная позиция) встала над логотипом с меню?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Позиция в шаблоне
« Ответ #1 : 09.03.2014, 23:06:38 »
А зачем вы делаете блок "плавающим"? Блоки по умолчанию друг под другом располагаются. В вашем случае может "плавать" логотип.
интернет-блог: http://websiteprog.ru
*

coyoteN

  • Новичок
  • 8
  • 0 / 0
Re: Позиция в шаблоне
« Ответ #2 : 09.03.2014, 23:17:37 »
Вроде располагал как раз по порядку (вроде). Возможно логотип и плавает с основным меню. Но как сделать правильно, я не не знаю. Начинающий сайтостроитель.
По этому и прошу помощи.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Позиция в шаблоне
« Ответ #3 : 09.03.2014, 23:24:47 »
покажите код вывода логотипа и его CSS, или кинте ссылку на сайт
интернет-блог: http://websiteprog.ru
*

coyoteN

  • Новичок
  • 8
  • 0 / 0
Re: Позиция в шаблоне
« Ответ #4 : 09.03.2014, 23:32:29 »
могу дать только ссылку на демо сайт. Так как свой пока что на денвере.
http://www.shape5.com/demo/index.php?velocity/
вот код вывода логотипа и всех меню
Спойлер
[свернуть]
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Позиция в шаблоне
« Ответ #5 : 09.03.2014, 23:58:52 »
По идее нормально все, если у вас такие же стили как на демосайте, блоки плавать не должны. Покажите CSS ваш
интернет-блог: http://websiteprog.ru
*

coyoteN

  • Новичок
  • 8
  • 0 / 0
Re: Позиция в шаблоне
« Ответ #6 : 10.03.2014, 00:12:33 »
щас перенес свой блок
      <div id="s5_top_menu_wrap">
               <?php s5_module_call('cust_my','notitle'); ?>
               </div>
чуть выше. Прописал его после строки
   <!-- Header -->      
   <div id="s5_header_outer">
То меню переместилось в верх над логотип. Но при этом ушло в крайний левый угол и впритык к верху. Теперь его осталось опустить чуть по ниже и сдвинуть правее над логотип.

Как показать СSS? А то файл большой и выложить его целиком думаю будет проблемитично.
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Re: Позиция в шаблоне
« Ответ #7 : 10.03.2014, 00:15:40 »
coyoteN, заведите хостинг. Выложите туда свой сайт. Проще всего с помощью Akeeba. Проблему решать куда проще будет.
*

coyoteN

  • Новичок
  • 8
  • 0 / 0
Re: Позиция в шаблоне
« Ответ #8 : 10.03.2014, 00:17:44 »
Вот стандартные строки селектора id s5_top_menu_wrap:

#s5_top_menu_wrap li, #s5_bottom_menu_wrap li {
float:left;
margin-right:16px;
}

#s5_top_menu_wrap li a {
color:#FFFFFF !important;
}


Вот это я прописывал если использовал свой класс s5_topmenufloat:
   .s5_topmenufloat {
float:left;}
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Позиция в шаблоне
« Ответ #9 : 10.03.2014, 00:22:08 »
Попробуйте заменить его тем что на демосайте если там меняли чего то.Еще возможно модуль имеет абсолютное позиционирование. Вот смотрите на картинке я поместил белый блок в HTML там где у вас модуль выводился



Действительно выложите лучше где -нибудь чтобы мы тут не гадали..
« Последнее редактирование: 10.03.2014, 00:29:31 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

coyoteN

  • Новичок
  • 8
  • 0 / 0
Re: Позиция в шаблоне
« Ответ #10 : 10.03.2014, 00:36:52 »
Спасибо. Завтра продолжу опыты. И постараюсь выложить на обозрение.



P.S. А что вы дописали чтоб вывести этот квадрат?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Позиция в шаблоне
« Ответ #11 : 10.03.2014, 00:47:24 »
Код: html4strict
<div id="s5_header_area_inner" class="s5_wrap">	
<div id="s5_top_menu_wrap" style="width:70px;height:70px;background-color:#fff"></div>
<div id="s5_header_wrap">
...
« Последнее редактирование: 10.03.2014, 00:52:56 от zomby6888 »
интернет-блог: http://websiteprog.ru
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Разобраться с областью компонента в шаблоне

Автор gorbi_U

Ответов: 7
Просмотров: 2183
Последний ответ 04.02.2023, 10:45:14
от sivers
При обновлении плагина helix3 слетает сендвич в мобильном шаблоне

Автор gorbi_U

Ответов: 0
Просмотров: 1559
Последний ответ 25.01.2023, 10:55:44
от gorbi_U
Криво выводятся `title` & `data-original-title` в шаблоне

Автор Аня

Ответов: 2
Просмотров: 2163
Последний ответ 16.04.2022, 23:44:10
от onniby
Проблемы с меню в шаблоне Shaper_helix3

Автор Helgi

Ответов: 8
Просмотров: 1438
Последний ответ 18.01.2022, 10:47:11
от draff
Как вносить изменения в стили в шаблоне jd_newjersey?

Автор sergspb

Ответов: 2
Просмотров: 1013
Последний ответ 29.12.2021, 13:35:35
от sergspb