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

Glorius

  • Новичок
  • 4
  • 0 / 0
Уважаемые формучане, здравствуйте!

Создал поле путем расширения стандартного класса JFormFieldList.
При добавлении поля в XML файл формы, поле отображается без проблем.
В документации по созданию пользовательских полей указано, что если поле не подключено в XML файле формы, то можно использовать следующую конструкцию:
Код
JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');
$proba = JFormHelper::loadFieldType('Proba', false);
$probaOptions = $proba->getOptions();
При попытке вывести поле таким образом вываливается ошибка:

0 Call to a member function xpath() on null

Вываливается на этом месте:
Код
$probaOptions = $proba->getOptions();
Подскажите пожалуйста, что это может значить и в какую сторону рыть?
*

sivers

  • Живу я здесь
  • 2593
  • 360 / 0
Подскажите пожалуйста, что это может значить и в какую сторону рыть?
закоментируйте 3-ю строку и добавьте:
Код
print_r($proba);
exit;
это чтоб убедиться, что у вас там объект не пустой (что очень вероятно).

Если добавляете пользовательское поле (свой тип поля), то у него должна быть реализация (пхп-код). Либо у вас нет реализации, либо там ошибка.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Glorius

  • Новичок
  • 4
  • 0 / 0
Сделал:
Спойлер
[свернуть]
Реализация из документации, ничего не менял практически:
Код
<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');

JFormHelper::loadFieldClass('list');

class JFormFieldProba extends JFormFieldList {

   protected $type = 'Proba';

   public function getOptions() {
       $app = JFactory::getApplication();
       $catid = $app->input->get('catid');
       if ($catid) {
              $db = JFactory::getDbo();
              $query = $db->getQuery(true);
              $query->select('a.title')->from('`#__answer_tt` AS a')->where('a.catid = "'.$catid.'" ');
              $rows = $db->setQuery($query)->loadObjectlist();
              foreach($rows as $row){
                     $oforma[] = $row->title;
              }
              $options = array_merge(parent::getOptions(), $oforma);
       }
       else {
              $options = parent::getOptions();
       }
       return $options;
       }
}
При добавлении поля в XML формы все прекрасно работает
Код
<field 
      name="proba_cat"
      type="Proba"
      label="COM_ANSWER_FORM_LBL_T_PROBA_CAT"
      description="COM_ANSWER_FORM_DESC_T_PROBA_CAT"
      hint="COM_ANSWER_FORM_LBL_T_PROBA_CAT">
            <option value="">---</option>
</field>
*

sivers

  • Живу я здесь
  • 2593
  • 360 / 0
Для начала попробуйте заменить это:
Код
$proba = JFormHelper::loadFieldType('Proba', false);
на это:
Код
$proba = JFormHelper::loadFieldType('Proba', true);

Но не думаю, что что-то существенно изменится. Опции вроде как относятся к конкретному полю и описываются в XML. А вы получаете объект типа поля (т.е. шаблон, а не само поле) и пытаетесь вытянуть из него опции, которых там просто нет.
В родительсом классе getOptions() (который вызывается в случае отсутствия $catid в параметрах) идет обращение к объекту:
Код
$this->element->xpath('option')
отсюда и ошибка.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sivers

  • Живу я здесь
  • 2593
  • 360 / 0
Попробуйте вот такой код:
Код
$form = JForm::getInstance('', JPATH_ROOT.'/путь_к_вашей_форме/имя_формы.xml');
$fieldProbaCat = $form->getField('proba_cat');
$probaOptions = $fieldProbaCat->getOptions();
print_r($probaOptions);
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Glorius

  • Новичок
  • 4
  • 0 / 0
Для начала попробуйте заменить это:
Код
$proba = JFormHelper::loadFieldType('Proba', false);
на это:
Код
$proba = JFormHelper::loadFieldType('Proba', true);
Вы правы, это ничего не меняет.

И в этом вы правы:
... пытаетесь вытянуть из него опции, которых там просто нет.
*

Glorius

  • Новичок
  • 4
  • 0 / 0
Попробуйте вот такой код:
Код
$form = JForm::getInstance('', JPATH_ROOT.'/путь_к_вашей_форме/имя_формы.xml');
$fieldProbaCat = $form->getField('proba_cat');
$probaOptions = $fieldProbaCat->getOptions();
print_r($probaOptions);
Спасибо за подсказку. )
Данный способ работает только в виде, в контроллере выдает ошибку.

Спасибо за наводку в Вашем предыдущем сообщении.
Создал пользовательское поле (не расширение) и все "взлетело" )
Соответственно, используя $proba->getInput(); вместо $proba->getOptions();
*

sivers

  • Живу я здесь
  • 2593
  • 360 / 0
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Странная ошибка

Автор borro

Ответов: 6
Просмотров: 2607
Последний ответ 31.07.2020, 17:19:58
от NewUsers
Динамические поля как параметры пункта меню

Автор platonische

Ответов: 10
Просмотров: 1276
Последний ответ 05.01.2020, 15:45:46
от platonische
Атрибут поля Showon

Автор rkron

Ответов: 4
Просмотров: 1650
Последний ответ 29.01.2019, 20:28:13
от dmitry_stas
Ошибка: 1064 - You have an error in your SQL syntax;

Автор ds30358

Ответов: 4
Просмотров: 973
Последний ответ 02.12.2017, 19:39:30
от Aleks.Denezh
[РЕШЕНО] Ошибка повторной установки

Автор platonische

Ответов: 17
Просмотров: 1879
Последний ответ 28.11.2017, 13:26:44
от platonische