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

JHON

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Привет всем!

Прочитал темы по данным вопросам на форуме для обычных шаборнов, но никак не смог найти подходящего кода для шаблона от Gavick.

Нужно заменить файл верхнего баннера в шаблоне с jpg на swf ролик.

Код ролика:

Цитировать
<object style="width: 1000px; height: 331px;" width="1000" height="331" data=" " type="application/x-shockwave-flash">
<param name="src" value=" " />
</object>

Вот редактируемые файлы, куда нужно вписать код:

style1.css

Цитировать
/* Style 1 */

/* template.css */
a:hover,
a:active,
a:focus { color: #F6BF00; }
#bg-wrap1 { background:#060606 url('../images/style1/background.jpg') no-repeat 50% 0; }
#gk-wrapper { background:#000 url('../images/style1/background_page.jpg(вместо него нужен swf ролик)') no-repeat 100% 0; }
h1.logo p,
div.logo-text p { color:#f6bf00; }
h1.logo >a { background:transparent url('../images/style1/logo.png') no-repeat 6px 30px; }


index.php

Цитировать
<?php

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

include_once (dirname(__FILE__).DS.'libs'.DS.'gk.template.helper.php');

$tmpl = GKTemplateHelper::getInstance($this, array('ui', GK_TOOL_SCREEN, GK_TOOL_MENU, 'main_layout', 'direction'));

//Calculate the width of template
$tmplWidth = '';
$tmplWrapMin = '100%';
switch ($tmpl->getParam(GK_TOOL_SCREEN)){
   case 'auto':
      $tmplWidth = '97%';
      break;
   case 'fluid':
      $tmplWidth = intval($tmpl->getParam('gk_screen-fluid-fix-gk_screen_width'));
      $tmplWidth = $tmplWidth ? $tmplWidth.'%' : '90%';
      break;
   case 'fix':
      $tmplWidth = intval($tmpl->getParam('gk_screen-fluid-fix-gk_screen_width'));
      $tmplWrapMin = $tmplWidth ? ($tmplWidth+1).'px' : '771px';
      $tmplWidth = $tmplWidth ? $tmplWidth.'px' : '770px';
      break;
   default:
      $tmplWidth = intval($tmpl->getParam(GK_TOOL_SCREEN));
      $tmplWrapMin = $tmplWidth ? ($tmplWidth+1).'px' : '983px';
      $tmplWidth = $tmplWidth ? $tmplWidth.'px' : '982px';
      break;
}

$tmpl->setParam ('tmplWidth', $tmplWidth);
$tmpl->setParam ('tmplWrapMin', $tmplWrapMin);

//Main navigation
$gk_menutype = $tmpl->getMenuType();
$gkmenu = null;
if ($gk_menutype && $gk_menutype != 'none') {
   $gkparams = new JParameter('');
   $gkparams->set( 'menutype', $tmpl->getParam('menutype', 'mainmenu') );
   $gkparams->set( 'menu_images_align', 'left' );
   $gkparams->set( 'menupath', $tmpl->templateurl().'/gk_menus');
   $gkparams->set('menu_images', 1); //0: not show image, 1: show image which set in menu item
   $gkparams->set('menu_background', 1); //0: image, 1: background
   $gkparams->set('mega-colwidth', 200); //Megamenu only: Default column width
   $gkparams->set('mega-style', 1); //Megamenu only: Menu style.
   $gkparams->set('rtl',($tmpl->getParam('direction')=='rtl' || $tmpl->direction == 'rtl'));
   $gkmenu = $tmpl->loadMenu($gkparams, $gk_menutype);
}   
//End for main navigation

$layout = $tmpl->getLayout ();

if ($layout) {
   $tmpl->display($layout);
}


Помогите пож. заменить! Заранее благодарен!
 
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Ели шаблон от Gavick то обратитесь в поддержку. Если же пользуетесь варезом то ни там ни тут помощи Вам не будет.
*

JHON

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Цитировать
Ели шаблон от Gavick то обратитесь в поддержку. Если же пользуетесь варезом то ни там ни тут помощи Вам не будет.

Вот и я думаю... все файлы перелопатил.. не могу ссылку на данный блок найти который в стиле указан.. и как index.php редактировать, тоже не понятно. :(
*

al-teen

  • Глобальный модератор
  • 2385
  • 224 / 10
  • im
Купил мужик топор, померял - он ему как раз. Хоть порчтите что именно я написал то
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Замена JPEG на GIF

Автор silent_74

Ответов: 15
Просмотров: 9943
Последний ответ 04.01.2019, 23:48:57
от dmitry_stas
Как создать новый блок в шаблоне?

Автор moov

Ответов: 7
Просмотров: 7872
Последний ответ 17.12.2018, 14:08:12
от arma
Поменять цвет блоков в шаблоне

Автор nuon

Ответов: 7
Просмотров: 4754
Последний ответ 10.01.2016, 23:11:34
от nuon
Ребят - В шаблоне Default

Автор Djaga

Ответов: 4
Просмотров: 2215
Последний ответ 10.12.2015, 08:01:47
от Djaga
Замена фона в шаблоне Joomla

Автор Jons$

Ответов: 7
Просмотров: 11855
Последний ответ 12.10.2015, 15:49:09
от darkghost