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

EvgeniyAL

  • Захожу иногда
  • 191
  • 6 / 0
Подскажите пожалуйста, как при отправке личного сообщения сделать поле тема не обязательным?
*

DrEddy

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
На официальном форуме отвечают:
Цитировать
This will need a lot of core customizations. First you'll have the validation problem and secondly a template problem. When looking at your inbox, you see all the message by it's subject. How do you want them to show it otherly?

If you really want this 'feature', I advice you to ask it on the 'Service Required' forum. Do you want me to move it over there?
, значит, что пока никак
*

EvgeniyAL

  • Захожу иногда
  • 191
  • 6 / 0
Блин, это крупный недочет с их стороны((( Но спасибо за ответ ^-^
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Да ладно, там работы на 5 минут.
Открываете файл controllers/inbox.php

И ищем строки:

1 часть:

Код
if (empty ( $data->subject ))

Внутри условия, вместо:

Код
$view->addWarning ( JText::_('CC SUBJECT MISSING') );
$validated = false;

Ставим

Код
$data->subject = '(Без темы)';

Часть 2

Код
if( empty($postVars['subject']) || JString::trim($postVars['subject']) == '' )

Внутри условия, вместо:
Код
$errMsg = '<div class="message">'.JText::_('CC SUBJECT MISSING').'</div>';
$doCont = false;
$resizeH += 35;

Ставим
Код
$postVars['subject'] = '(Без темы)';

Теперь, если тема пустая, то будет записано (Без темы).
Я написал на скорую руку. У меня текст выводится из языковой переменной через JText::_('')
*

EvgeniyAL

  • Захожу иногда
  • 191
  • 6 / 0
Супер, спасибо большое))) А можете подсказать, как ещё при отправке из меню, там ещё форма не всплывающая, а просто обычная, и если не заполнить выдает "Необходимая запись отсутствует или содержит неверное значение!" ^-^
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Странно, должно было исправить оба варианта. Гляну - напишу.
*

житель неба

  • Новичок
  • 4
  • 0 / 0
Личные сообщения JomSocial
« Ответ #6 : 29.11.2010, 19:01:43 »
Помогите пожалуйста. Личные сообщения в JomSocial долго приходят. в порядке двух минут. можно это как то исправить? раньше помню где то видел тему. а сейчас найти не могу.
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Личные сообщения JomSocial
« Ответ #7 : 30.11.2010, 04:12:13 »
:)
1. Никогда не пишите друг-другу в состоянии алкогольного опьянения
2. Проверьте Ваш ПК на жучки и прослушку. Где-то по дороге письма досматриваются
3. Если личные сообщения идут от любимой, то настройка с 1 секундным оповещением покажется адом... Если от тещи, то лучше бы вообще не приходили...

А вообще конечно интересно...
Может быть Вы просто имели в виду то, что нельзя отправить сообщение чаще чем 1р в 60 секунд?
Тогда измените значение
floodLimit=60
в файле:
administrator/components/com_community/default.ini
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

житель неба

  • Новичок
  • 4
  • 0 / 0
Re: Личные сообщения JomSocial
« Ответ #8 : 30.11.2010, 04:37:49 »
Остроумно.  :D :D :D :D.
открываешь два боаузера. заходишь от двух пользователей. и пишешь от одного другому. обновляешь страницу. а сообщения нет. и так пару минут. и не важно с какой интенсивностью обновляешь.  так понятно?
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Личные сообщения JomSocial
« Ответ #9 : 30.11.2010, 06:49:29 »
После отправки сообщения, тут же удалите кеш и проверьте доставку
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

fedorrr

  • Осваиваюсь на форуме
  • 32
  • 0 / 1
вопрос по JomSocial ?
« Ответ #10 : 10.12.2010, 01:45:06 »
парни кто знает с чем может конфликтовать js ,вобщем на чистой Joomla все ок,а вот на работующей где есть и св и юдеим и много чего еще,вобщем не робит система внутренних сообщений просто напросто не даходят до чела,а если его добавить сначала в друзья а патом написать сообщение тогда все доходит!после пробовал удалил юддеим и св проблема не решилась?
*

locksmith

  • Захожу иногда
  • 60
  • 0 / 0
Сделал как было написано. Сообщение действительно отправляется. Есть одно большое НО! Когда заходишь в отправленные то те сообщения где была указана тема можно было прочитать - а без темы ссылки на открытие нет и вообще не появляется "без темы". Вресия JomSocial 2.02. Как быть подскажите?
*

Padre

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: Личные сообщения JomSocial
« Ответ #12 : 19.12.2010, 14:17:33 »
Подскажите, как убрать в личных сообщениях строку "тема"?
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Личные сообщения JomSocial
« Ответ #13 : 19.12.2010, 14:21:39 »
Подскажите, как убрать в личных сообщениях строку "тема"?
Где то при переводе она мне попадалась. Скопируйте весь текст. как он выглядит?
« Последнее редактирование: 19.12.2010, 17:18:52 от kharol »
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Padre

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: Личные сообщения JomSocial
« Ответ #14 : 19.12.2010, 17:46:57 »
Где то при переводе она мне попадалась. Скопируйте весь текст. как он выглядит?

*Кому (Настоящее имя)    
*Тема    
*Сообщение    
   
Вы можете отправить 1000 сообщений в день
Вы отправили 0 из 1000 сообщений.
Поля, помеченные звездочкой (*) обязательны.

Эта таблица появляется, когда пишешь кому-то сообщение... и при каждом написании сообщения нужно писать тему сообщения, это просто жутко не удобно.
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Личные сообщения JomSocial
« Ответ #15 : 20.12.2010, 10:15:01 »
Что то я запутался..
В личных сообщениях уже давно ничего нет лишнего.
Кому, Тема и Сообщение
Какая у Вас версия JomSocial ?
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Padre

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: Личные сообщения JomSocial
« Ответ #16 : 20.12.2010, 15:23:45 »
Что то я запутался..
В личных сообщениях уже давно ничего нет лишнего.
Кому, Тема и Сообщение
Какая у Вас версия JomSocial ?

Странно, версия 2.0.2.
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Личные сообщения JomSocial
« Ответ #17 : 20.12.2010, 17:25:18 »
Обновитесь, хуже не будет
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Padre

  • Осваиваюсь на форуме
  • 41
  • 1 / 0
Re: Личные сообщения JomSocial
« Ответ #18 : 22.12.2010, 02:00:17 »
Обновитесь, хуже не будет

Обновился до версии 2.0.3, ставил новую Joomla и базу, тема в личной переписке не куда не делась, смотрел на другом сайте с JomSocial у них тоже есть графа "Тема" в личной переписке... Путь к этой графе - в меню есть пункт "Сообщения", там есть "Новое сообщение", так вот именно в этой таблице есть обязательная графа "Тема"... Вот как её убрать, ужасно путает юзеров, куча разных тем в личных сообщениях, не удобно очень... в других соцсетях, например заходишь в личную переписку и там просто идут сообщения без привязки к теме...
*

ikx2003

  • Новичок
  • 4
  • 0 / 0
Сделал как было написано. Сообщение действительно отправляется. Есть одно большое НО! Когда заходишь в отправленные то те сообщения где была указана тема можно было прочитать - а без темы ссылки на открытие нет и вообще не появляется "без темы". Вресия JomSocial 2.02. Как быть подскажите?
мда .. J1.7 + версия 2.2.4 а точно такая ж проблема - теперь сообщения уходять а ссылки на открытие нет. кто нибуть решил проблему ?
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Не могу представить как это выглядит. Покажите скрин пожалуйста.
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

ikx2003

  • Новичок
  • 4
  • 0 / 0

 На скриншоте отправленные сообщения но в полученных тож самое. При этом как в рулетке - один раз все ж выскочила ссылка на текст - "Без ответа-теxt"
при этом первые 2 сообщения были пустые ..я предположил что система не хочет видеть русские буквы и добавил "text" - и проверил - в результате одно письмо с ссылкой а потом опять без возможности открыть ))
на данный момент связка J1.7и Соц 2.2.4. + плюс шаблон.
 И сразу второй странный момент - от 2.4.1 и выше вне зависимости от версии Joomla - после написания  именно !! ответа на полученное письмо поле для ответа становится не активным - пока не обновишь страничку.
Вот такая рулетка. 
 
*

Нариман

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
тема актуальна.
*

rodion

  • Новичок
  • 3
  • 1 / 0
Будьте добры, подскажите что я делаю не так, вернее как сделать чтобы получить нужный результат
JS 2.4, поставил floodlimit=0 (пробовал ставить 1), но для того чтобы переписываться внутри inbox нужно обновлять страницу. Очень хотелось бы чтобы можно было слать несколько сообщений последовательно. После отправки сообщения пользователю, пока не обновишь страницу форма для написания сообщения не активна

Готов отблагодарить материально не только на словах

В версии 2.6 все работает как нужно, на сайте русской поддержки убедился в этом
« Последнее редактирование: 16.06.2012, 15:49:44 от rodion »
*

Demias

  • Захожу иногда
  • 244
  • 2 / 0
Аналогичная проблема, как и у rodion'a. Есть решение (кроме обновления, т.к. не катит, много изменений делал).
*

leonid2009

  • Новичок
  • 1
  • 0 / 0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать JomSocial главной страницей

Автор ZapTeR

Ответов: 5
Просмотров: 5636
Последний ответ 11.11.2014, 14:23:46
от kasper9820
Возможно ли сделать так чтобы обновить аватар из своего альбома а не загрузить из компа?

Автор aniangeless

Ответов: 0
Просмотров: 1310
Последний ответ 16.10.2013, 16:48:30
от aniangeless
Как сделать обязательной загрузку аватара при регистрации?

Автор aniangeless

Ответов: 0
Просмотров: 1336
Последний ответ 16.10.2013, 16:46:34
от aniangeless
Как сделать чтобы регистрация из 3 этапа в один этап?

Автор aniangeless

Ответов: 0
Просмотров: 1293
Последний ответ 16.10.2013, 16:45:57
от aniangeless
Как сделать форму входа на AJAX?

Автор aniangeless

Ответов: 1
Просмотров: 1840
Последний ответ 13.05.2013, 17:14:43
от Сergei