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

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
DST сдвиг
« : 28.10.2009, 23:16:56 »
Кто нибудь понял что это такое и как оно работает?
Это в редактировании данных.
Понятно, что это смещение времени (ВВ ОО, типа летнее-зимнее). Но я НИФИГА не понял, как оно работает!
Во-первых, нельзя поставить ноль, в этом случае показывает 4. Если ставить 4 - оно так и остается.
Установка сдвига на "-1" - перебрасывает меня на полсуток вперед (проверяю какое время по личным сообщениям).
Установка сдвига на 1 приближает меня к заветной цели,но 0, как уже известно - не работает.
Кто-нить с этим сталкивался? что это, как это, зачем это?

Вот щас времени по Москве - 23:13. Так у меня в ЛС ни разу не вышло этого времени. Либо пишу сильно сегодня днем, либо так же сильно завтра днем. Удалось несколько сообщений написать глубокой ночью. Но ни разу в то время, которое на часах указано...

Кошмар!

Письмо в JomSocial все длиннее и длиннее получается...
+
*

SyncMaster

  • Moderator
  • 103
  • 51 / 6
Re: DST сдвиг
« Ответ #1 : 29.10.2009, 01:30:33 »
Нужно выставить реальную разницу с UTC. У меня, к примеру, +5. Показывает правильное время.
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: DST сдвиг
« Ответ #2 : 29.10.2009, 01:44:02 »
я так понял, что там еще и 12-часовой формат... : (

так, примерно вроду удалось время подогнать...
но завтра уже тонкости настраивать буду... : )
+
*

SyncMaster

  • Moderator
  • 103
  • 51 / 6
Re: DST сдвиг
« Ответ #3 : 29.10.2009, 01:51:02 »
Я выставил часовой пояс в настройках JomSocial (/administrator/index.php?option=com_community&view=configuration), и этот же часовой пояс стал показываться по умолчанию у пользователей.
А там каждый пользователь подгоняет под себя.

Всё дело в переводе.

Если понравится компонент (какой-то он ущербный пока), то займусь грамотным переводом «для пользователя», какой делали, к примеру, для SOBI2.
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: DST сдвиг
« Ответ #4 : 29.10.2009, 18:38:52 »
да-да, спасиб, уже разобрался.. что еще и в админке это все меняется. методом проб и ошибок таки сделал пральное время (но все равно, 12-часовой формат - не удобен!).
Перевод брал тут какой-то пролетающий, остальное просто по месту переводил. где-то сам справлялся, где-то брат помогал.
компонент... да.. чувствуется, как хлюпает под ногами... но по крайней мере хлепает под ноги на дороге, которая ведет в светлое будущее, кмк...
аякс с сообщениями, побольше вариантов показа анкеты (в варианте, когда анкета открыта для мэмберов, обычному гостю нельзя посмотреть фотоальбомы пользователя. при том, что с модуля просмотра фотоальбовом доступ получается ко всем абльомам. логики в этом я не вижу)
+
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: DST сдвиг
« Ответ #5 : 29.10.2009, 19:04:15 »
По поводу 12-часовой формат - просили разработчиков добавить настройку... Так всё равно не добавили. :( Вот решение:

Цитировать
As a workaround you can change /libraries/activites.php
replace

    $timeFormat             = $config->get( 'activitiestimeformat' );
    $dayFormat              = $config->get( 'activitiesdayformat' );

with

    //$timeFormat             = $config->get( 'activitiestimeformat' );
    //$dayFormat              = $config->get( 'activitiesdayformat' );
    $dayFormat = "%d %b.";
    $timeFormat = "%H:%M";


Или вот:
Цитировать
To change the date formatting at the activities section go to "components\com_community\libraries\activities.php"(approximately at line 240)

Remove the following line at approximately at line 240 and..

    $createdTime    = $date->toFormat($dayinterval == ACTIVITY_INTERVAL_DAY ? $timeFormat : '%b %d' );

replace with this:

    $createdTime = $date->toFormat($dayinterval == ACTIVITY_INTERVAL_DAY ? '%H:%M' : '%b %d' );
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Re: DST сдвиг
« Ответ #6 : 30.10.2009, 00:07:24 »
на локалке получилось.
файл /components/com_cmmunity/libraries/activities.php
Код
				//$timeFormat		= $config->get( 'activitiestimeformat' );
//$dayFormat = $config->get( 'activitiesdayformat' );
  $dayFormat = '%d %b.';
  $timeFormat = '%H:%M';
  $date = cGetDate($oRow->created);

второй кусок кода, который для замены - не нужен. там и так строчка подправлена. выглядит так:
Код
				$createdTime 	= $date->toFormat($dayinterval == ACTIVITY_INTERVAL_DAY ? $timeFormat : $dayFormat );

стало показывать время 21:03 (допустим : ))
+
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: DST сдвиг
« Ответ #7 : 30.10.2009, 11:16:09 »
Ну да, можно поменять или там или там. Первый вариант лучше.
*

SibPartizan

  • Захожу иногда
  • 66
  • 1 / 0
Re: DST сдвиг
« Ответ #8 : 27.05.2010, 10:43:31 »
А как сделать нормальный формат времени в сообщениях?
Сей час формат времени отображается по 12 часам.
*

steelcat

  • Захожу иногда
  • 118
  • 13 / 0
Re: DST сдвиг
« Ответ #9 : 30.05.2010, 18:57:14 »
А как сделать нормальный формат времени в сообщениях?
Сей час формат времени отображается по 12 часам.


Это в файлах шаблона:
/components/com_community/templates/default/inbox.message.php
/components/com_community/templates/default/inbox.list.php
заменить %I:%M %p на %H:%M
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться