Новости Joomla

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором представлены новости, интервью, рецензии и есть небольшой магазин на JoomShopping. Возникла необходимость внутри Joomla статей вставлять упоминание релиза и кнопочку «добавить в корзину». Я взял плагин WT JShopping products anywhere Сергея Толкачева (@webtolkru). Плагин отображает название товара и ссылку. При помощи напильника, ИИ и навыков вёрстки появился Uikit макет для шаблонов на базе Yootheme Pro.Учитываается мобильная версия - телефоны и ipad.Кнопка добавления в корзину работает по Ajax и появляется всплывающее окно (Notification Bar от Uikit) с информацией.Пока это базовый вариант, требующий доведения до лоска, однако он уже работает и его можно применять на проектах.Взять макет можно здесь.А плагин вставки товаров в материалы можно забрать здесь.Приветствуется доведение до ума и оформление в виде PR.

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

👩‍💻 WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla.Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content. Поддержка собственных макетов вывода для галерей. Смешанные фото+видео галереи. Плагин создан как замена Simple Image Gallery и поддерживает синтаксис {gallery}{/gallery}.👩‍💻 v.1.2.3. Что нового?- Обработка вступительного и полного текста для материалов Joomla. Добавлена обработка шорткодов в полном и вступительном текстах материалов Joomla.- Системные требования. Повышены минимальные требования до Joomla 5 и PHP 8.1.- Мелкие правки. Исправлена ошибка работы макета по умолчанию в плагине контента.- Joomla 6. Пакет плагинов успешно протестирован на Joomla 6.Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#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 Гость просматривают эту тему.
  • 43 Ответов
  • 15937 Просмотров
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
А зачем второй пустой атрибут в getCmd?
Значение по умолчанию
Пример $view = $input->getCmd('view', 'myview');
если передана в REQUEST переменная view то вернет то что передали, если не передана то вернет myview
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Федор, но дальше ты уже не можешь использовать filter_input:
Код: php
$_REQUEST['task'] = 'add';

print_r($_REQUEST) выдаст add, но если в task до этого было установлено другое значение, то filter_input(INPUT_GET, 'task', FILTER_SANITIZE_STRING); выдаст не add, а другое значение.
filter_input не работает с $_REQUEST, для этого достаточно других функций
Код: php-brief
$_REQUEST['task'] = 'test';
//здесь если в массиве $_REQUEST не будет task ошибки не будет
$task = filter_var($_REQUEST['task'], FILTER_SANITIZE_STRING);
var_dump($task);
$task = filter_var_array ( $_REQUEST, array('task'=> FILTER_SANITIZE_STRING));
var_dump($task);
die;
;D
подведу итог класс Jinput
Код: php-brief
$_REQUEST['task'] = 'test'; //записываем
$task = filter_var($_REQUEST['task'], FILTER_SANITIZE_STRING); //считываем
//$option = filter_input(INPUT_GET, 'option', FILTER_SANITIZE_STRING); //90% всех благ
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Вообщем ты предлагаешь работать с чистым PHP. Не гибко. Ты ограничен существующими методами PHP.

Возьмем тот же JFilterInput - разве в PHP есть все методы, которые реализованы в этом классе?

Плюс, какой бонус в том, чтобы использовать две строки вместо одной $input->getCmd('task', 'default')? И самое главное, как передавать значение по умолчанию?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
А зачем второй пустой атрибут в getCmd?
А вот это уже "сахар" Женя
Иначе тебе как минимум пришлось использовать тернарный оператор или конструкцию if  else
Код: php-brief
//если a не определена, равна Null, "" выведет 10
$a = $a ? $a: 10;
var_dump($a);
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Возьмем тот же JFilterInput - разве в PHP есть все методы, которые реализованы в этом классе?
Со значением Саша ошибся, получать данные. Это не большая проблема ответ выше
А фильтров больше, причем можешь сам писать, а когда есть функция обратного вызова, то тут вообще руки развязаны
http://www.php.net/manual/ru/filter.filters.php
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Цитировать
А фильтров больше, причем можешь сам писать
То есть все равно придется создавать какой-то класс-билиотеку, который будет содержать в себе эти фильтры. Вообщем не знаю, но твое предложение мне лично кажется очень спорным решением.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Зачем создавать библиотеку она ведь уже есть. Ведь все равно ты фильтры и наименования в памяти не хранил. Либо в доки смотрел, или редактор подсказал. Дело в том, что функции нативные и не требуют подключения ядра Joomla
Классы можно эти не использовать (ведь они и не мешают) а вот в формах там да надо будет думать, чтобы расширить или переделать
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Федор, я всеравно не понимаю зачем писать много когда можно писать мало. Из-за призрачного выигрыша в скорости? Призрачный он потому, что самые тяжелые операции - выборка данных и т.п., они занимают львиную долю времени отдачи страницы, При ускорении в 2 раза, даже в бесконечное число раз операции фильтрации, в общей массе прирост производительности будет в пределах погрешности измерений, т.е. ничтожен. Никакого смысла мудрить в этом месте нет.
Плюс к тому есть стандарты программирования и под разные фреймворки они разные. Для легкой поддержки кода другими программистами необходимо придерживаться стандартов, если каждый будет писать как придется, программисту, получившему в поддержку сию кашу, останется только застрелиться.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Arkadiy, не как придется, а на чистом языке. Человек знающий php , будет читать его, понимать с легкостью без знаний фреймворка. И почему это много, оно работает без использования постороннего кода
Код: php-brief
$option = filter_input(INPUT_GET, 'option', FILTER_SANITIZE_STRING);
если нужно получить значение option для условий то почему бы  и нет. И это не каша ибо каждая переменная здесь названа логично и понятливо. Если полностью читал топик то в Google я им привел ***код который они из версии в версию включают и это из-за того развитого бюрократизма их команды. Проект с миллионным бюджетом, жадничают нанять профессионалов для рефакторинга. Отдать проект на аутсорсинг.
А тыкаешь носом в код, так напиши в баг трекер. Пусть платят за ошибки быстрее соберут. Это политика нормальных, крупных компаний. Которые ценят своих поклонников их время и знания.
*

varX

  • Живу я здесь
  • 2466
  • 141 / 5
  • разработка компонентов
Понятно, как бы мы не спорили, все останутся при своих привычках.  Но дискуссия интересная. Какие-то весомые аргументы в пользу фреймворка есть? Я пока только два вижу.
Это более безопасный код у начинающих (например, юзай JFactory::getSession(); вместо $_SESSION[]; и не переживай про переопределение кем-то глобальных массивов);
И второй это возможность прописать собственные параметрыв в общие классы фреймворка (что обеспечивает  интеграцию между расширениями).
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Федор, ну никто же не мешает использовать filter_input. Используй на здоровье, но JInput при этом грохать нет смысла, у него все же есть два плюса перед filter_input:
- позволяет получать переменные с установкой значения по умолчанию
- позволяет работать с измененными супермассивами
*

KoreshS

  • Новичок
  • 9
  • 1 / 0
Между прочим разработчики бы могли бы и конструкцию сделать
Код
JFactory::getInput();
Ведь на то он и Factory(фабрика), чтобы основные функции в себе содержать.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
application содержит в себе input. Когда надо оба пишу так:
Код: php
$app = JFactory::getApplication();
$var = $app->input->getInt('var', 0);
Если нужен только input, то
Код: php
$input = JFactory::getApplication()->input;
$var = $input->getInt('var', 0);
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Я всегда делаю $app = JFactory::getApplication();
Ну а потом если нужен input то $app->input и т.д Если в редакторе нормальная подсветка кода, то читаеться легко.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Использование JFactory в подключаемых php файлах

Автор oopros

Ответов: 3
Просмотров: 2527
Последний ответ 29.11.2016, 15:25:12
от b2z
Вопрос по PROFILER и JFactory

Автор Haybul

Ответов: 2
Просмотров: 1964
Последний ответ 02.08.2014, 04:33:57
от Haybul
[Решено] Что лучше, что правильно JHtml::метод(параметры) или JHtml::_(метод, параметры)?

Автор MansEL

Ответов: 7
Просмотров: 1754
Последний ответ 01.07.2014, 18:24:15
от b2z
Joomla 3.1 не находит JRequest. Не работает AJAX!

Автор justquestion

Ответов: 2
Просмотров: 3662
Последний ответ 11.10.2013, 12:42:08
от Aleks.Denezh
Как прикрепить файл к письму через форму input type="file"?

Автор DiEV

Ответов: 15
Просмотров: 9723
Последний ответ 09.06.2013, 10:02:10
от Aleks.Denezh