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

kasper9820

  • Захожу иногда
  • 127
  • 4 / 6
  • ...ISponsor!
тулбар JomSocial
« : 09.09.2013, 11:58:01 »
не знаю как и куда написать, на форуме новенький. Если что перенесите

Как в коде темплейта тулбара JomSocial заставить выводить тулбар не по статическому значению "jomsocial" - это тип меню тулбара (если он другой, то не выводится) а по динамическому - на основании языка - ru, ua, en и т.д.
Поясню, если язык русский, тогда выводится тулбар с типом ru, если англ. тогда с типом en и т.д.  (мой моб 380662621456)
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

kasper9820

  • Захожу иногда
  • 127
  • 4 / 6
  • ...ISponsor!
Re: Тулбар JomSocial
« Ответ #2 : 11.11.2014, 14:07:57 »
Всем добрый день!
Помогите решить такую (интересную) задачу:
Как известно JomSocial выводит ToolBar только внутри компонента. Для реализации серьезных проектов этого крайне недостаточно.
Для решения этой зада (для вывода ToolBar) других местах сайта я использовал модуль Knu JS Community Menue Everywhere.
Модуль предельно просто, но без допиливания все равно не обойтись.
Этот модуль выводит ToolBar где угодно но не в самом компоненте JomSocial.
Казалось бы ничего существенного, но:
В такой связке ToolBar выводиться в разных местах а вся CSS стилизация влияет на оба ToolBar.

Моя задача выводить ToolBar на всем сайте в строго одном месте (скажем в топе сайте)
Я не хочу выводить ToolBar в пределах компонента JomSocial в стандартном для него месте (отключение в ПУ привод к отключению его и в модуле - этот вариант не подходит)

Модуль Knu JS Community Menue Everywhere я допилил отрезав условие выводить ToolBar только вне JomSocial.
Теперь получается, что ToolBar выводиться везде, но в пределах JomSocial он дублируется стандартным из самого компонента.

Облазил все файлики шаблона. В них ToolBar - это toolbar.header.php, toolbar.index.php, toolbar.submenu.php
Они вызываются контролером, который создается на лету.

Проще говоря я не нашел того места, в котором вызывается стандартный ToolBar в стандартное место (чтобы комментировать эти строчки)

Прошу помочь разобрать или предложить альтернативные пути решения.

Код
<?php

defined('_JEXEC') or die('Restricted access');
if(!defined('DS')) define('DS', DIRECTORY_SEPARATOR);

require_once( JPATH_ROOT . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'core.php');
$ich = CFactory::getUser();
$online =  $ich->isOnline();


CFactory::load( 'libraries' , 'toolbar' );
$toolbar_lib = CToolbarLibrary::getInstance();
$jinput = JFactory::getApplication()->input;
$optionkompo = $jinput->get('option');
$knu_doc = JFactory::getDocument();



echo '<div class="'.$params->get('moduleclass_sfx').'">'; // moduleclass_sfx
echo '<div id="community-wrap" style="margin-bottom:0px! important;min-height:0px! important;" >';
echo $toolbar_lib->getHTML();
echo '</div></div><div style="clear:both;"></div>';

?>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

позиции модулей JomSocial и их отображение - sufix

Автор arturk

Ответов: 42
Просмотров: 22216
Последний ответ 13.06.2020, 14:10:26
от ademar
Ошибки после установки JomSocial.

Автор DKsN

Ответов: 80
Просмотров: 24767
Последний ответ 06.03.2016, 23:55:31
от Amigos
[Решено] JomSocial Как перенести правую колону (обо мне, последние группы, кто в сети и т.д.) с прав

Автор galemus

Ответов: 15
Просмотров: 7612
Последний ответ 29.11.2014, 23:43:36
от ingavr
Делаем адекватное меню в JomSocial.

Автор nolimits4web

Ответов: 38
Просмотров: 28607
Последний ответ 11.11.2014, 17:19:49
от kasper9820
Шаблон то JomSocial не грузится. Трабл с CSS JomSocial

Автор teo21

Ответов: 3
Просмотров: 4716
Последний ответ 11.11.2014, 14:21:31
от kasper9820