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

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #31 : 19.01.2010, 22:31:08 »
После продолжительного застоя выкладываю новую версию — 1.1.0
Правда функциональных изменений не очень много:
  • добавлена возможность обработки содержимого модуля контент-плагинами
  • реализована подгрузкая файла style.css для более удобной настройки внешнего вида
  • чётные/нечётные строки можно выделяють разными классами
  • + всякие мелочи
По сути дотянул настройки до аналогичных в DWho's Online.

(upload опять переполнен :( — качаем с joomlacode)
« Последнее редактирование: 19.01.2010, 22:36:02 от Darkick »
*

nevigen

  • Легенда
  • 10451
  • 863 / 25
  • http://n*****n.com
Re: DBirthdays (модуль показа дней рождений)
« Ответ #32 : 20.01.2010, 14:34:46 »
куллл... маладца...
« Последнее редактирование: 20.01.2010, 15:09:34 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #33 : 20.01.2010, 15:09:29 »
Недавно я сподобился и написал несколько инструкций по DBirthdays (только на английском). Там есть для CommunityBuilder и JomSocial. По аналогии наверняка можно разобраться и для Кунены.
*

egoz

  • Захожу иногда
  • 96
  • 1 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #34 : 31.01.2010, 17:07:29 »
Приветствую.
Скажите, а привязка к CommunityBuilder или JomSocial обязательна?
Если я не предполагаю регистрацию на сайте и у меня есть некий список из, допустим, 200 дат ДР людей.
Задача - вывод дат ДР по такому же принципу как в Вашем модуле.
Единственная загвоздка - надо куда-то эти данные внести и чтоб модуль их считывал.
Быть может кто-нить слышал про нечто подобное?
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #35 : 31.01.2010, 18:37:46 »
можно создать таблицу и туда вбить людей с датами и натравить модуль на них.
*

egoz

  • Захожу иногда
  • 96
  • 1 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #36 : 01.02.2010, 06:19:51 »
можно создать таблицу и туда вбить людей с датами и натравить модуль на них.
спасибо, конечно, но знать бы еще где и как все это делается :-)
буду пока без этой фишки, пока сайт в стадии мелкой кастомизации и наполнения
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #37 : 01.02.2010, 08:10:09 »
phpMyAdmin и руками набивать, можно так.
*

egoz

  • Захожу иногда
  • 96
  • 1 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #38 : 01.02.2010, 11:31:37 »
phpMyAdmin и руками набивать, можно так.
спасибо большое за консультацию. как вермя подойдет к этому модулю на сайте или буду что-то другое думать, попроще, т.к. для меня этот путь пока сложноват. или буду тут заказывать нужный мне модуль.
*

monah1983

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #39 : 04.03.2010, 02:08:49 »
Как сдвинуть абзац, т.е. чтобы надпись была почти у границы модуля, все облазил, подскажите где менять, и какие значение надо ввести
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #40 : 04.03.2010, 08:59:03 »
стили
*

monah1983

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #41 : 04.03.2010, 12:32:31 »
в каком именно стиле (в шаблоне или именно в самом модуле?), уже все просмотрел.... подскажите пожалуйста ! ! !
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #42 : 04.03.2010, 13:10:11 »
вот не всё равно в каком, главное чтобы он применялся к странице. Можно в с тилях шаблона.
*

Sidtan

  • Захожу иногда
  • 70
  • 0 / 0
  • вМоскве.рф
Re: DBirthdays (модуль показа дней рождений)
« Ответ #43 : 06.03.2010, 15:35:31 »
Спасибо  Darkick за отличные модули. Но 1 вопрос, я не разбираюсь в CSS, можно ли выложить настройки CSS что бы пользователи были не в одну колонку?
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #44 : 06.03.2010, 17:38:39 »
можно попробовать примерно так:
Код
ul.mod_dbirthdays li {
list-style: none !important;
width: 46%;
float: left;
}
*

Sidtan

  • Захожу иногда
  • 70
  • 0 / 0
  • вМоскве.рф
Re: DBirthdays (модуль показа дней рождений)
« Ответ #45 : 06.03.2010, 18:29:51 »
можно попробовать примерно так:
Код
ul.mod_dbirthdays li {
list-style: none !important;
width: 46%;
float: left;
}
большое спасибо, ты делаешь полезные модули. Только что то не получилось, все делал так же как и с модулем DWho's Online
« Последнее редактирование: 06.03.2010, 19:12:19 от Sidtan »
*

Efrik

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #46 : 10.03.2010, 18:51:28 »
Подскажите как мне в модуле DBirthdays убрать отступы слева
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #47 : 10.03.2010, 20:06:51 »
так же как в любом списке - править стили.
*

Reyhs

  • Захожу иногда
  • 106
  • 7 / 4
Re: DBirthdays (модуль показа дней рождений)
« Ответ #48 : 25.03.2010, 00:44:09 »
Здравствуйте. Вот Вы написали можно сделать активной ссылку на пользователя, а как ? Там надо написать строку с переменными как я понимаю. У меня все по умолчанию соответственно мне подойдет строка по умолчанию. Для JomSocial дайте ссылочку пожалуйста.
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #49 : 25.03.2010, 08:23:24 »
для JomSocial устанавливаем в параметре Формат ссылки на профиль (Profile link format)
Код
index.php?option=com_community&view=profile&userid=$id&Itemid=_тут_№_пункта_меню_для_списка_пользователей_
*

lekx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #50 : 26.03.2010, 12:23:16 »
Здравствуйте! У меня такая же ситуация как у egoz, есть некий список из дат ДР людей. Задача - вывод дат ДР по такому же принципу как в Вашем модуле.
 Я создал таблицу в таблице два поля дата рождения и ФИО, вбил данные. Какие настройки нужно изменить в модуле для вывода? Пробовал по разному менять, не выводит ( Заранее спасибо!
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #51 : 26.03.2010, 13:24:32 »
что за таблица создана, какая структура?
*

lekx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #52 : 26.03.2010, 14:19:19 »
Хотел добавить скрин, не понял как. Поэтому опишу

Имя таблицы jos__dr
В таблице три поля:
1-ое поле date , в нем хранятся дни рождения учеников школы, тип поля date
2-ое поле fio , в нем фамилии,имена учеников школы, тип поля text
3-ее поле class , в нем класс в котором учиться данный ученик , тип tinytext (решил добавить 3-ее поле для хранения информации о классе )

*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #53 : 26.03.2010, 15:10:56 »
имя таблицы точно с двумя подчёркиваниями?

Ну как то так:

Настроки таблицы дней рождений
Имя таблицы:  jos__dr
Поле "День рождения":  date
Поле идентификатора:  fio

Настроки таблицы пользователей
Имя таблицы:  jos__dr
Поле идентификатора:  fio
Поле "Имя":  fio
Условие для WHERE:  1
*

lekx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #54 : 30.03.2010, 15:05:23 »
не работает. Пробовал таблицу с двумя и с одним подчёркиванием. Настройки прописал те,которые вы указали.
выводит:
DBd Database error
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #55 : 30.03.2010, 15:23:21 »
значит смотреть, какая именно ошибка. Она должна выводится в позицию сообщений и скидываться в текстовый файл в логах.
*

lekx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #56 : 30.03.2010, 15:39:27 »
А где можно посмотреть этот текстовый файл на локальном сервере?
Всё нашёл.
« Последнее редактирование: 01.04.2010, 11:17:34 от lekx »
*

lekx

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #57 : 01.04.2010, 11:19:08 »
В лог файле код ошибки вот такой:
1146   Table 'j15.#_dr' doesn't exist SQL=SELECT `fio` AS `id`, `fio` AS `name`, `date` AS `birthday`   FROM `#_dr` b   WHERE  b.`date` <> '' AND b.`date` IS NOT NULL AND b.`date` <> 0 AND u.block = 1
*

Darkick

  • Moderator
  • 1142
  • 239 / 1
Re: DBirthdays (модуль показа дней рождений)
« Ответ #58 : 01.04.2010, 12:10:35 »
английский читать умеем? (надо уметь)
нет такой таблицы пишет.
Если указываем префикс универсально, то надо #__ (два подчёркивания). Либо писать фактическое имя таблицы.
*

StAsus

  • Осваиваюсь на форуме
  • 26
  • 1 / 0
Re: DBirthdays (модуль показа дней рождений)
« Ответ #59 : 22.05.2010, 04:31:30 »
Не хочет выводить ни аватары, ни ссылку на профиль. Установлен и CB и модуль сообщений. выводит почему то данные в виде:
Код
вапвап <иконка ЛС>
отмечает сегодня!
Где вапвап - Имя пользователя(не логин) иконка ЛС работает.

ссылки на базы данных вроде указаны правильно, при условии, что если установлен CB имя таблицы #__users не надо менять, а если и надо то на [мой префикс]_users, я просто так понял, что Юзеры и в CB берутся из этой же таблицы.
Формат отображения пользователя стоит "$avatar $name $pms" - аватар почему-то не робит. Доп поля $years_old, $birthday_date - тоже не работают. Кто может подсказать, в чем дело?

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

DWho's Online (модуль "продвинутый" Кто онлайн)

Автор Darkick

Ответов: 147
Просмотров: 120219
Последний ответ 07.03.2017, 20:58:14
от granik