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

Anton Korf

  • Новичок
  • 5
  • 0 / 0
Приветствую! Нужно разработать плагин расчета стоимости доставки, в зависимости от расположения магазинов на карте (километража).

ТЗ для плагина: https://yadi.sk/d/6w4wVk2c86M8OA

Жду Ваших вопросов и предложений. Спасибо.
*

Bickaze

  • Захожу иногда
  • 199
  • 18 / 3
Re: Плагин доставки для VirtueMart 3
« Ответ #1 : 23.10.2019, 01:43:43 »
Могу сделать. Предложение в личке.
Joomla-программист
Отзывы с 2012 года. Без предоплаты. Всегда на связи.
Skype: indadza, telegram: @ildar_kkk
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
*

morph

  • Давно я тут
  • 924
  • 105 / 0
Re: Плагин доставки для VirtueMart 3
« Ответ #3 : 23.10.2019, 04:46:33 »
от 8 тыр
не вижу чтобы http://cdn.swizz.ru/ давал какое-то api. Если и работать то с сервисами яндекс-карт(которые тоже частенько тупят) или будет значительно дороже если свое с нуля
*

Anton Korf

  • Новичок
  • 5
  • 0 / 0
Re: Плагин доставки для VirtueMart 3
« Ответ #4 : 23.10.2019, 08:54:38 »
от 8 тыр
не вижу чтобы http://cdn.swizz.ru/ давал какое-то api. Если и работать то с сервисами яндекс-карт(которые тоже частенько тупят) или будет значительно дороже если свое с нуля
Этот сервис нужен только для построения оптимального маршрута. В принципе придумал логику его построения просчетом расстояния. Обновил ТЗ. Пожалуйста посмотрите. Если есть предложения, рад буду услышать. Спасибо.
https://yadi.sk/d/pwt-Gsu4eu4qHQ
*

Anton Korf

  • Новичок
  • 5
  • 0 / 0
Re: Плагин доставки для VirtueMart 3
« Ответ #5 : 23.10.2019, 09:45:08 »
Бюджет ?
Посмотрите обновленное ТЗ.
По бюджету, можете написать Ваше предложение  ЛС.
*

Гоша_Компьютерный

  • Захожу иногда
  • 65
  • 11 / 1
  • sitogon
Re: Плагин доставки для VirtueMart 3
« Ответ #6 : 23.10.2019, 10:30:46 »
У меня как то был для Виртуймарта сделан плагин доставки в зависимости от расположения магазина. Работает на основе Гугл карт. Исходная точка - адрес магазина, конечная - адрес, указанный клиентом при регистрации. В продажу пускать не стал, слишком индивидуальная штука
*

Anton Korf

  • Новичок
  • 5
  • 0 / 0
Re: Плагин доставки для VirtueMart 3
« Ответ #7 : 23.10.2019, 10:41:46 »
У меня как то был для Виртуймарта сделан плагин доставки в зависимости от расположения магазина. Работает на основе Google карт. Исходная точка - адрес магазина, конечная - адрес, указанный клиентом при регистрации. В продажу пускать не стал, слишком индивидуальная штука
Думаю, не совсем мое решение, но посмотреть как это работает у Вас было бы отлично.
Мне нужно, чтобы маршрут выстраивался по кратчайшему пути. Например, мы имеем только конечную точку маршрута (точка доставки). Скрипт перебирает все отрезки до этой точки и выбирает наименьший, далее уже от точки которую выбрал подбирает наикратчайший отрезок и так далее. Я постарался подробно это в ТЗ изложить.
*

Гоша_Компьютерный

  • Захожу иногда
  • 65
  • 11 / 1
  • sitogon
Re: Плагин доставки для VirtueMart 3
« Ответ #8 : 23.10.2019, 10:50:21 »
Вспоминал, где у меня тестовый сайт с этим плагином, так и не вспомнил)
Вот тут работает уже на рабочем - https://kraskalub.ru/ (это не мой сайт)
Но нужна регистрация
Там главная то проблема была в том, что он берет конечный пункт из данных покупателя. А в Виртуймарте может быть несколько вариантов. Пошаговая корзина, одностраничная корзина и самый "гремучий" вариант - одностраничная корзина созданная сторонним компонентом. В общем, оказалось, что мне не сделать вариант, который мог бы купить любой человек, просто установить и пользоваться. Поэтому я не стал его продавать в своем магазине. И вообще практически забыл про него)

То, что вам нужно - возможно кто то и сделает. Но мне сейчас никак однозначно))
*

morph

  • Давно я тут
  • 924
  • 105 / 0
Re: Плагин доставки для VirtueMart 3
« Ответ #9 : 24.10.2019, 04:40:05 »
Цитировать
Этот сервис нужен только для построения оптимального маршрута. В принципе придумал логику его построения просчетом расстояния. Обновил ТЗ. Пожалуйста посмотрите. Если есть предложения, рад буду услышать. Спасибо.
https://yadi.sk/d/pwt-Gsu4eu4qHQ

так я уже озвучил предложение
с к а йп matveevea пишите если бюджет устраивает
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

3 проблемы в связке J5+virtuemart+ VMuikit X + yootheme pro

Автор qualin_rosg

Ответов: 1
Просмотров: 761
Последний ответ 02.11.2024, 21:09:03
от Vastriet
Переписать платежный плагин с Сбера на Юкассу

Автор kochevnik170

Ответов: 2
Просмотров: 855
Последний ответ 24.10.2024, 10:00:45
от kit2m2
Доработки Joomla 4 и VirtueMart 4

Автор Alex_19

Ответов: 1
Просмотров: 2502
Последний ответ 16.04.2023, 22:42:00
от varX
Две цены на товар VirtueMart 4

Автор Alex_19

Ответов: 1
Просмотров: 2385
Последний ответ 15.02.2023, 14:50:43
от Akeksandr
Плагин галлереи в материал

Автор zmeyx

Ответов: 2
Просмотров: 1225
Последний ответ 12.12.2021, 01:40:26
от gartes