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

doc1705

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
500 - DB function failed with error number 1146
Table 'БД.jos_gx_showcase' doesn't exist SQL=SELECT `id` FROM `jos_gx_showcase` WHERE `toemail` = 'еМЫЛО'

Вы не можете посетить текущую страницу потому, что:
просроченная закладка/избранное
поисковый механизм, у которого просрочен список для этого сайта
пропущен адрес
у вас нет прав на эту страницу
Запрашиваемый ресурс не был найден.
В процессе обработки вашего запроса произошла ошибка.



Ошибка возникает при регистрации нового пользователя на последнем шаге. Фигня в том что чел все равно смог зарегистрироваться. ошибку бы убрать чтоб не показывалась. ПОМОГИТЕ!

Привет!У меня такая же проблема!!Ты случайно не решил её?
*

doc1705

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
нет.но если решу - напишу тебе как. ты тоже напиши если че ладно?
*

kharol

  • Moderator
  • 1721
  • 217 / 0
1) У всех таблиц Joomla Вашей DB префикс jos_ ?
2) Что за страшное значение у поля`toemail` = 'еМЫЛО' ?!
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

doc1705

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
да, jos
еМЫЛО это я так спрятал e-mail от глаз на форуме
*

doc1705

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
проблема решилась установкой alpharegistration и отключением в JomSocial регистрации
*

cygun

  • Захожу иногда
  • 116
  • 3 / 0
А как решить эту хрень чтобы обычная регистрация заработала? Из за чего такая ошибка появляется
*

cygun

  • Захожу иногда
  • 116
  • 3 / 0
com_giftexchange - вот он виновник. Удалив этот компонент оказались проблемы
*

kharol

  • Moderator
  • 1721
  • 217 / 0
проблема решилась установкой alpharegistration и отключением в JomSocial регистрации
Это не решение проблемы, а обход.
На время устранения неполадки, создайте таблицу:
Код
CREATE TABLE IF NOT EXISTS `jos_gx_showcase` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `uid` INT(11) NOT NULL DEFAULT 0,
  `fromid` INT(11) NOT NULL DEFAULT 0,
  `toid` INT(11) NOT NULL DEFAULT 0,
  `toemail` VARCHAR(255) NOT NULL DEFAULT 0,
  `giftids` VARCHAR(255) NOT NULL DEFAULT 0,
  `message` TINYTEXT NOT NULL DEFAULT '',  
  `cost` INT(11) NOT NULL DEFAULT 0,
  `colors` TEXT NOT NULL DEFAULT '',
  `placements` TEXT NOT NULL DEFAULT '',
  `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',    
  `status` TINYINT(3) NOT NULL DEFAULT 1,
  `checked_out` INT(11) NOT NULL default 0,
  `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `ordering` INT(11) NOT NULL DEFAULT 0,  
  `archived` TINYINT(1) NOT NULL DEFAULT 0,  
  `published` TINYINT(3) NOT NULL DEFAULT 1,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
А потом ищите, какие следы остались от Gift Exchange
Например не патчит ли компонент какую-нибудь таблицу, на предмет создания нового поля в таблице users. Либо, возможно, остались какие то связи у пользователей с этой таблицей jos_gx_showcase, которые делали подарки. Вполне возможно, что появилось новое правило для начисления баллов, при дарении подарка
« Последнее редактирование: 15.10.2010, 03:01:43 от kharol »
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Wassup

  • Захожу иногда
  • 64
  • 2 / 0
А если таблицы не с 'jos_', то JomSocial не будет работать? не подскажите есть ли sql запрос что бы переименовать все перфиксы таблиц?
*

Wassup

  • Захожу иногда
  • 64
  • 2 / 0
Переименовал префикс  только у таблиц '_community...' это может в итоге как то сказаться на работе сайта?
*

kharol

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

Wassup

  • Захожу иногда
  • 64
  • 2 / 0
когда я начинал делать сайт на Joomla  я прочитал где то на форуме что для обеспечения большей безопасности Joomla надо поменять префикс таблиц...
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Ну по большому счету да... Можно и номер квартиры повесить вверх ногами... и очки темные одеть, а выйти на улицу - попасть под автобус. Безопасность штука относительная.
В последнем случае была проблема у JomSocial именно с префиксом отличным от Jos_
Скопируйте сюда Вашу ошибку полностью...
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Wassup

  • Захожу иногда
  • 64
  • 2 / 0
с ошибкой я разобрался переименовав перфикс у таблиц _community со своего на jos_, спасибо за подсказку;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

РЕШЕНИЕ: Профиль-Функция базы данных завершена с номером ошибки 1146

Автор SergioTM

Ответов: 0
Просмотров: 3252
Последний ответ 13.04.2011, 10:26:42
от SergioTM
Fatal error: Class 'CCache' not found in

Автор Katya

Ответов: 0
Просмотров: 1673
Последний ответ 19.01.2011, 03:32:28
от Katya