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

ria_andy

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
Коллеги, подскажите как реализовать определение города пользователя по IP?

Нужно просто вывод названия города в шапке сайта.
*

arma

  • Завсегдатай
  • 1752
  • 81 / 3
*

ria_andy

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
http://joomlaforum.ru/index.php?topic=64830.0

Это бредовый топик ) + ни одна ссылка не работает
*

ria_andy

  • Осваиваюсь на форуме
  • 47
  • 0 / 0
http://ipgeobase.ru/

Спасибо, а что с этим делать? как на сайт воткнуть?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Сделать модуль, или поискать готовый, по моему я его где-то здесь видел.
*

aspidy

  • Завсегдатай
  • 1008
  • 55 / 1
  • Миграция joomla 1.0-1.5-2.5
Спасибо, а что с этим делать? как на сайт воткнуть?
http://ross.vc/?p=204
Мелкий ремонт. skype poisk-plus
*

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
*

nikolaevevge

  • Новичок
  • 2
  • 0 / 0
 ::) Библиотека для определение города, страны, региона пользователя по IP (Joomla, WordPress, Bitrix - cms распознаётся автоматически)

Полностью бесплатная!

Версия Joomla теоретически любая!!! А не только 2.5. Bitrix, Wordpress аналогично.

 Написал библиотеку для получения гео-информации по IP-адресу, причем единую для Joomla, WordPress и Bitrix(по битриксу сразу же отдельно оговорюсь, что уже после того как написал узнал что в Bitrix есть встроенный функционал, по ссылке на статью про это тоже будет).
Библиотека запрашивает по API информацию о необходимом IP адресе у удалённого сервера, назад получает стек адресов к которым относится IP, так же страну, регион и город(если удалось определить), и сохраняет эту информацию с базе данных Вашего сайта, при этом используя функционал указанных Выше CMS для взаимодействия с базой данных. Сохраняется информация с целью сокращения времени работы, а так же для избежания создания излишних запросов к удалённому серверу. Соединение с базой данных для указанных CMS прописывать не нужно, поскольку библиотека распознаёт CMS и использует те же настройки соединения с базой данных что и CMS. Кроме того библиотека способна самостоятельно подключить фреймворк, если работа с библиотекой производиться из стороннего php файла.

Подводя итог такой подход позволяет:
 :D 1) легко установить библиотеку для Joomla, Wordpress, Bitrix просто разместив один файл на сервере и подключив его через require_once;
 :D 2) не требует отдельно прописывать соединение с базой данных, поскольку библиотека самостоятельно определит CMS и способ подключения к базе данных;
 :D 3) таблица в базе данных создаётся автоматически, поэтому Вам не потребуется заходить в phpMyAdmin при установке;
 :D 4) не перегружается удалённый сервер предоставляющий информацию по API, так как после обращения информация о стеке IP-адресов сохраняется в Вашей базе данных и в следующий раз информация берётся из её;
 8) 5) сокращается вероятность долгой загрузки сайта, если удалённый сервер предоставляющий информацию по API будет висеть(поскольку я не как тот менеджер, который говорит только о плюсах, отмечу: подвисать Ваш сайт в случаи если удалённый api сервер висит всё же может, поскольку если информация о IP не была получена она не будет сохранена в базу и при следующем использовании библиотеки опять будет производиться попытка загрузить с удалённого сервера, тем не менее о этом скорее всего отдельно напишу решена ли ситуация и как, в целом планируется ряд доработок, поэтому лучше читать актуальную информацию с страницы библиотеки, здесь же я рассказываю о бете версии);
 :D 6) не требуется размещение значительного количества информации о всех IP адресах в Вашей базе данных, информацию в которой к тому же требовалось бы обновлять - информация запрашивается с удалённого сервера только для IP-адресов информация о которых Вам нужна

На момент написания данного ответа в качестве удалённого сервера предоставляющего данные использовался ipGeoBase но есть планы использовать иной(актуальную информацию лучше читать на странице библиотеки)

Немного о настройках

на момент написания данного ответа на форуме:
 ^-^ 1) настраивается имя таблицы в которой будут храниться данные(к нему так же в начале будет добавлен префикс cms, имя указывается без префикса)
 ^-^ 2) время хранения информации о IP адресе в базе данных

пример использования(работает для указанных CMS без подключения файлов ферймворка - он распознаётся и подключается атвоматически)

<?php
require_once "nikolaevevgeGeoIp.php";// если библиотека в той же директории, что и вызываемый php файл
var_dump(nikolaevevgeGeoIp::getInfoByIp("88.85.172.134"));


Библиотека и актуальная информация тут: http://blog.ivru.net/?id=82
« Последнее редактирование: 05.12.2019, 16:12:23 от nikolaevevge »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод информации в личный кабинет пользователя

Автор zndm

Ответов: 17
Просмотров: 6061
Последний ответ 22.09.2022, 18:51:44
от beliyadm
Материалы пользователя (контакта)

Автор katerina37

Ответов: 5
Просмотров: 1106
Последний ответ 18.02.2022, 11:53:02
от katerina37
Руководство пользователя Joomla! 2.5 + 10 легких шагов к освоению Joomla! 3 (книги в pdf)

Автор Marques

Ответов: 68
Просмотров: 225811
Последний ответ 08.01.2021, 13:41:45
от artemnaum
Админка (Менеджер пользователей), доп.колонка с ИП адресом пользователя

Автор Kodopik

Ответов: 0
Просмотров: 1897
Последний ответ 28.01.2019, 19:08:50
от Kodopik
Как создать редирект в форме заказа на основе выбора пользователя? 3.8.10?

Автор CyberWizard

Ответов: 3
Просмотров: 1188
Последний ответ 31.07.2018, 12:11:13
от varX