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

aphone

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Запрос данных из JomSocial
« : 28.10.2011, 23:13:21 »
Скажите пожалуйста, как получить по логину пользователя, его имя, аватар и статус из JomSocial?
очень нужно. Помогите пожалуйста
*

aphone

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Запрос данных из JomSocial
« Ответ #1 : 30.10.2011, 15:10:12 »
вот пытаюсь так сделать:


         <?php      
         $pathtojs = JPATH_ROOT.DS.'components'.DS.'com_community';
         if (file_exists($pathtojs.DS.'libraries'.DS.'core.php'))
         {
         include_once($pathtojs.DS.'libraries'.DS.'core.php');
         include_once($pathtojs.DS.'libraries'.DS.'messaging.php');
         
         $juser =& CFactory::getUser($item->created_by);
         $item->authorAvatar = $juser->getThumbAvatar();
         $item->authorLink = CRoute::_('index.php?option=com_community&view=profile&userid='.$item->created_by);
         }         
         echo $item->created_by;
      ?>   

ничего не получается

код выдран из модуля одного.
*

aphone

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Запрос данных из JomSocial
« Ответ #2 : 30.10.2011, 16:04:57 »
вот делаю так в отдельном файле пхп

<?php
$jspath = JPATH_ROOT.DS.'components'.DS.'com_community';
include_once($jspath.DS.'libraries'.DS.'core.php');

$user = '62';
$avatarUrl = $user->getAvatar();
echo '<img src="'. $avatarUrl .'"/>';  ?>

?>

и получаю вот такую ошибку:

Warning: include_once(JPATH_ROOTDScomponentsDScom_communityDSlibrariesDScore.php) [function.include-once]: failed to open stream: No such file or directory in /home/f/fr3244/public_html/dj.php on line 4

Warning: include_once() [function.include]: Failed opening 'JPATH_ROOTDScomponentsDScom_communityDSlibrariesDScore.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/f/fr3244/public_html/dj.php on line 4

Fatal error: Call to a member function getDisplayName() on a non-object in /home/f/fr3244/public_html/dj.php on line 11
*

aphone

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Запрос данных из JomSocial
« Ответ #3 : 30.10.2011, 19:55:31 »
я вставил в mod_php такой вот код:

$jspath = JPATH_ROOT . DS . 'components' . DS . 'com_community';
include_once($jspath. DS . 'libraries' . DS . 'core.php');
// Get CUser object
$user  = CFactory::getUser($description);
$avatarUrl = $user->getThumbAvatar();
$username = $user->getDisplayName();
$userstatus = $user->getStatus();
$userlink = CRoute::_('index.php?option=com_community&view=profile&userid='.$user->id);
echo '<a href='.$userlink.'><img align="left" alt="" class="caption" width="80" src="'.$avatarUrl.'" /><br><b>'.$username.'</b></a><br>'.$userstatus;

он в этом модуле работает. Но в отдельном PHP файле этот же код не работает. почему?
*

abbyevg

  • Захожу иногда
  • 82
  • 6 / 0
  • эвилпанда
Re: Запрос данных из JomSocial
« Ответ #4 : 31.10.2011, 12:56:51 »
Что значит $description в ? 

Код
$user  = CFactory::getUser($description);

Там должен быть ID искомого пользователя
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Примеры сайтов с использованием JomSocial

Автор Zombeee

Ответов: 116
Просмотров: 43695
Последний ответ 24.12.2017, 22:23:15
от PAMMONEcom
Шаблон JomSocial "extended"

Автор kharol

Ответов: 73
Просмотров: 24368
Последний ответ 28.03.2017, 14:40:31
от leha25
вывод информации из JomSocial

Автор nikoter

Ответов: 25
Просмотров: 10715
Последний ответ 08.12.2015, 12:49:51
от Сergei
Сквозная авторизация пользователей JomSocial на субдоменах

Автор tigr04

Ответов: 4
Просмотров: 6260
Последний ответ 12.10.2015, 11:33:07
от oberon2005
Как переделать стандартный поиск JomSocial?

Автор Сergei

Ответов: 6
Просмотров: 4079
Последний ответ 22.05.2014, 16:54:53
от Сergei