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

t0xas

  • Осваиваюсь на форуме
  • 38
  • 3 / 0
  • Только страсть познания делает нас людьми!
существует такая проблема.
Мне нужно спозицианировать вывод имен, дат, городов и т.п. на странице профиля,
я думал что можно объединить код двух файлов из шаблона и организовать свой массив для вывода данных.

то есть из файла profile.about.php залить код в profile.index.php на место <?php echo $about;?>со следующим изменением:

<h2 class="app-box-title" style="position: relative;">
      <?php #echo JText::_('CC ABOUT ME');?>
   </h2>
   <?php if( $isMine ): ?>
   
   <?php endif;?>
   
   <?php foreach( $profile['fields'] as $groupName => $items ): ?>
   
   <ul class="profile-right-info">
      <?php if( $groupName != 'ungrouped' ): ?>
         <li class="infoGroupTitle"><?php #echo ($groupName != 'ungrouped') ? $groupName : ''; ?></li>
      <?php endif; ?>

      <?php foreach( $items as $item ): ?>
         <li class="infoTitle"><?php #echo $item['name']; ?></li>
             <?php if(!empty($item['searchLink'])) :?>
               <a href="<?php echo $item['searchLink']; ?>">
            <?php endif; ?>
            
            <?php  $arr_prof[]=CProfileLibrary::getFieldData( $item['type'] , $item['value'] );?>
            <?php if(!empty($item['searchLink'])) :?>
               </a>
            <?php endif;?>
            
       <?php endforeach; ?>
   </ul>
   <?php endforeach; ?>
   
на что мне выругался браузер

Warning: Invalid argument supplied for foreach() in /home/users/q/qb-studio/domains/ya-mamka.ru/components/com_community/templates/blueface/profile.index.php on line 119


так вот внимание вопрос, что нужно подключить или изменить, чтобы все заработало в profile.index.php. :)

надеюсь гуру мне помогут решить проблему :)

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


Все оказалась проще, я этот массив вывожу прямо в profile.about.php и там же дивами выпремляю с помощью стилей.


ТЕПЕРЬ ВОПРОС ТАКОЙ ВСТАЛ

Где находится список сран, ибо охото русские страны, а не по английски рашен федерашен :)
« Последнее редактирование: 26.07.2009, 15:33:19 от t0xas »
*

ruslango

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Отвечу по списку стран. Не надо искать файлики ) Достаточно открыть JomSocial -> Custom Profiles, там и будут твои страны. Если очень надо, у меня есть список всех стран на русском + первыми идут страны СНГ.
*

t0xas

  • Осваиваюсь на форуме
  • 38
  • 3 / 0
  • Только страсть познания делает нас людьми!
Весьма не плохо было бы. а можно как нить сделать чтобы показать, что пользователь онлайн?
*

moskit

  • Захожу иногда
  • 64
  • 6 / 0
  • ......
Весьма не плохо было бы. а можно как нить сделать чтобы показать, что пользователь онлайн?
вот http://joomlaforum.ru/index.php/topic,95975.0.html

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