Новости Joomla

Свои типы полей в Joomla.

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note" name="your_note_for_user" label="Заголовок примечания" title="Альтернативный способ для заголовка" description="Текст примечания" class="col-12 alert alert-info" heading="h1" close="true" />

heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён. Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле

<field type="systempluginstatus" name="systempluginstatus" addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>

-

type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:

<?php // namespace для атрибута addfieldprefix namespace Joomla\Module\Wtquicklinks\Site\Fields; // нельзя напрямую обращаться к этому файлу defined('_JEXEC') or die; // подключаем родительский класс для переопределения use Joomla\CMS\Form\Field\NoteField; use Joomla\CMS\Language\Text; use Joomla\CMS\Plugin\PluginHelper; // имя класса и имя файла точь-в-точь class SystempluginstatusField extends NoteField { protected $type = 'Systempluginstatus'; protected function getLabel() { // если плагин не включён if(PluginHelper::isEnabled('system','wtquicklinks')) { // меняем свойства родительского класса $this->class = 'alert alert-danger w-100'; $this->element['label'] = '⚠️ А-а-а-а!'; $this->element['description'] = 'Плагин не включён!!'; // и просто рендерим его с нашими свойствами return parent::getLabel(); } // А иначе всё хорошо, скрываем поле из виду. $this->parentclass = 'd-none'; return ''; } }

Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает. @webtolkru#joomla #php #webdev #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 148 Ответов
  • 66415 Просмотров
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Эта связка задумывалась для того, чтобы свести к минимуму или совсем уничтожить возможность попадания в "молоко" при выборе параметров поиска.
Модуль служит для задания условий поиска, а компонент (пока) только для вывода результатов.
Ищет по артикулу, категории, производителю, типу и характеристикам типов товара, по цене.
Поля выбора настраиваются в админке модуля.
Ajax работает  на библиотеке jquery.

Ограничения: характеристик в типе до 5; пока не придумал как быть с характеристиками в которых присутствует мультивыбор значений уже придумал.

Устанавливать только связкой, порознь не работают.

Посмотреть можно здесь: http://aqua.barier-cs.com/catalog/index.html

[вложение удалено Администратором]
« Последнее редактирование: 09.07.2009, 09:51:16 от Arkadiy »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Работает на ветке 1.0 и магазина и Joomla, скриншотов не делал, можно поставить посмотреть.
*

morph

  • Давно я тут
  • 924
  • 105 / 0
kryvenko, для 1.1.* ветки такого нет.только стандартный расшитенный поиск по характеристикам).
ком изначально написан для 1.0.* ветки.
или переписать для 1.1.* или писать свой)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Доработал модуль и компонент, теперь более-менее стабилен, поставил себе на сайт. Теперь работает с полями, содержащими мультивыбор значений. Посмотреть можно здесь: http://aqua.barier-cs.com/catalog/index.html
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Обновил компонент и модуль. Исправлены мелкие ошибки. Из того что знаю не работает только паджинация с включенным СЕФ. Обойти можно поставив исключение на компонент.
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Обновил компонент и модуль. Исправлены мелкие ошибки. Из того что знаю не работает только паджинация с включенным СЕФ. Обойти можно поставив исключение на компонент.
Жаль, что на Joomla 1.5 не идёт, а так отличный компонент, respect.
 А где выложена последняя твоя доработка?
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Работает на ветке 1.0 и магазина и Joomla, скриншотов не делал, можно поставить посмотреть.
У меня такое пишет , когда я загружаю компонент Невозможно создать каталог "Z:\home\test1.ru\www\components\com_vm_ext_search\"  с модулем всё впорядке
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Посмотри, может этот каталог уже есть, тогда удали его и запусти установку заново. (в administrator/components тоже надо удалить такую-же папку)

странно на одном сайте работает на еще 4-х нет
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Посмотри, может этот каталог уже есть, тогда удали его и запусти установку заново. (в administrator/components тоже надо удалить такую-же папку)
administrator/components в этой директории нету такого каталога и в /companents тоже..сам создал такую папку, тогда пишет , что такой каталог уже существует
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
странно на одном сайте работает на еще 4-х нет
А что конкретно не работает?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
administrator/components в этой директории нету такого каталога и в /companents тоже..сам создал такую папку, тогда пишет , что такой каталог уже существует
Странно, как я понял ты пробуешь на Денвере, там все очень просто должно быть.
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Странно, как я понял ты пробуешь на Денвере, там все очень просто должно быть.
может вручную можно его поставить?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
1. Надо выполнить запрос к БД
Код
INSERT INTO `jos_components` VALUES ('', 'Расширенный поиск по товарам', 'option=com_vm_ext_search', 0, 0, 'option=com_vm_ext_search', 'Расширенный поиск по товарам', 'com_vm_ext_search', 0, 'js/ThemeOffice/component.png', 0, '');
        
2. Создать папки \administrator\components\com_vm_ext_search\ и \components\com_vm_ext_search\
3. Положить все файлы кроме vm_ext_search.php в папку \administrator\components\com_vm_ext_search\, vm_ext_search.php положить в папку \components\com_vm_ext_search\

Должно заработать
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
1. Надо выполнить запрос к БД
Код
INSERT INTO `jos_components` VALUES ('', 'Расширенный поиск по товарам', 'option=com_vm_ext_search', 0, 0, 'option=com_vm_ext_search', 'Расширенный поиск по товарам', 'com_vm_ext_search', 0, 'js/ThemeOffice/component.png', 0, '');
       
2. Создать папки \administrator\components\com_vm_ext_search\ и \components\com_vm_ext_search\
3. Положить все файлы кроме vm_ext_search.php в папку \administrator\components\com_vm_ext_search\, vm_ext_search.php положить в папку \components\com_vm_ext_search\

Должно заработать
сейчас попробую
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Теперь работает! спасибо

А ты такойже на Joomla 1.5 можешь переделать?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Могу, но времени нет, а самому не нужно.
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Могу, но времени нет, а самому не нужно.
Я уверен народу нужно.. да и в наше время время деньги.
Я в основном на Joomla 1.5, а на Joomla 1.0. загрузку товаром через csv также можно делать?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Да, без проблем.
А типы товаров и параметры можно задавать через CSV iproved?
*

morph

  • Давно я тут
  • 924
  • 105 / 0
Цитировать
А типы товаров и параметры можно задавать через CSV iproved?
ком типы стандартные юзает - как их заливать - дело вкуса)
Arkadiy ,только сейчас поставил.респект.-перепишу под 1.5
*

scaners

  • Захожу иногда
  • 131
  • 15 / 0
Компонент у меня ставится, но когда заходишь в него пишет следующее: "; if(!is_writable(dirname(__FILE__) . '/config.php')){ mosRedirect('index2.php?option=' . $option . '&act=config', 'Configuration file is Нетt writable'); return; } $fp = fopen(dirname(__FILE__) . '/config.php', 'w'); fwrite($fp, $contents); fclose($fp); } include dirname(__FILE__) . '/config.php'; ?>
Насколько я понял, он намекает, что не может сделать запись в конфиг файл. Но на файл стоят все необходимые для записи CHMOD.

А вот модуль вообще не ставится. Пишет:  ОШИБКА: Не могу найти Joomla! XML установочный файл в пакете. 
Насколько я понял, модуль и компонент не под 1.5 сделан ведь? Ставлю я его на Joomla 1.0.15
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
ком типы стандартные юзает - как их заливать - дело вкуса)
Arkadiy ,только сейчас поставил.респект.-перепишу под 1.5
выложи на всеобщее обозрение
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Подскажите как сделать поиск, чтобы например вначале в первом выпадающем списке было марка машины-> далее при выборе было модель машины -> далее бренд -> товар
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Arkadiy ,только сейчас поставил.респект.-перепишу под 1.5
Буду премного благодарен :)
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Буду премного благодарен :)
поддержываю
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Компонент у меня ставится, но когда заходишь в него пишет следующее: "; if(!is_writable(dirname(__FILE__) . '/config.php')){ mosRedirect('index2.php?option=' . $option . '&act=config', 'Configuration file is Нетt writable'); return; } $fp = fopen(dirname(__FILE__) . '/config.php', 'w'); fwrite($fp, $contents); fclose($fp); } include dirname(__FILE__) . '/config.php'; ?>
Насколько я понял, он намекает, что не может сделать запись в конфиг файл. Но на файл стоят все необходимые для записи CHMOD.

А вот модуль вообще не ставится. Пишет:  ОШИБКА: Не могу найти Joomla! XML установочный файл в пакете. 
Насколько я понял, модуль и компонент не под 1.5 сделан ведь? Ставлю я его на Joomla 1.0.15
Видно у тебя загрузка файлов вызывает проблемы. В .htaccess добавь строчку
php_value max_execution_time 600 - увеличит время действия скрипта (в секундах)
php_value upload_max_filesize 16M - увеличит максимальный размер загр. файла
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Arkadiy Такое мож знаешь как забацать?
Подскажите как сделать поиск, чтобы например вначале в первом выпадающем списке было марка машины-> далее при выборе было модель машины -> далее бренд -> товар
*

scaners

  • Захожу иногда
  • 131
  • 15 / 0
Видно у тебя загрузка файлов вызывает проблемы. В .htaccess добавь строчку
php_value max_execution_time 600 - увеличит время действия скрипта (в секундах)
php_value upload_max_filesize 16M - увеличит максимальный размер загр. файла
Время действия у меня такое и стоит. А максимальный размер файлов 20 Мб.
*

dedalik

  • Захожу иногда
  • 98
  • 0 / 2
Время действия у меня такое и стоит. А максимальный размер файлов 20 Мб.
Тогда делай вручную всё идёт!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 22899
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 10253
Последний ответ 14.01.2021, 00:09:53
от gartes
Сортировка товаров по дате поступления

Автор coob

Ответов: 2
Просмотров: 2497
Последний ответ 21.06.2018, 08:40:05
от kungurskiy
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 53284
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 27288
Последний ответ 25.10.2016, 15:03:07
от Igoritaly