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

Garant

  • Новичок
  • 8
  • 0 / 0
Добрый день.
Подскажите пожалуйста, заказал создание сайта, сайт сделали на Joomla! 2.5.6 проверял на хостинге кто делал сайт, вроде все работало.
Перенесли на мой хостинг http://www.hoster.ru/ , и пошли проблемы . 1- очень долго грузится страницы (10-20 сек. и более), 2- ошибка при добавлении товаров и категорий :   vmError: Attention file _notes has no extension in view productdetails and directory /usr/home/47737/garant-dveri.ru/html/components/com_virtuemart/views/productdetails/tmpl     это при добавлении/редактировании товара.

vmError: Attention file _notes has no extension in view category and directory /usr/home/47737/garant-dveri.ru/html/components/com_virtuemart/views/category/tmpl
vmError: Attention file _notes has no extension in view productdetails and directory /usr/home/47737/garant-dveri.ru/html/components/com_virtuemart/views/productdetails/tmpl
 это при редактировании категорий.

Пишу создателям про это, в ответ пишут : не хватает тарифного плана скорее всего (Мега 1)
Пишу на хостинг про это, в ответ : Для выяснения причин ошибок работы Вашего сайта обращайтесь на форумы поддержки
Вашей CMS.

Подскажите в чем проблема? Кто прав кто не прав?
Спасибо, за понимание.
*

bibalaev

  • Захожу иногда
  • 241
  • 8 / 0
  • все должно быть качественно!
а вы прописывали в config файле пути? судя по тому куда вы его перенесли и на что ссылается, два разных адреса.
вам нужно пути проверить в конфиг файле, обычно все беды оттуда бывают после переносов.
*

bibalaev

  • Захожу иногда
  • 241
  • 8 / 0
  • все должно быть качественно!
ошибся, вряд ли поэтому. не так прочитал.
*

bibalaev

  • Захожу иногда
  • 241
  • 8 / 0
  • все должно быть качественно!
может у вас на хостинге не включены какие то скрипты?
проверьте подключенные php скрипты, может чего то не хватает?
*

Garant

  • Новичок
  • 8
  • 0 / 0
может у вас на хостинге не включены какие то скрипты?
проверьте подключенные php скрипты, может чего то не хватает?

Сейчас буду пробовать писать на хостинг,
но они могли бы тоже про это сразу сказать.
Спасибо, за ответ.
Может еще у кого есть какие нибудь мысли!
*

Garant

  • Новичок
  • 8
  • 0 / 0
Сейчас проверил страницу на скорость :

Время загрузки
51,27 сек

Размер страницы
10,5 Кб
*

bibalaev

  • Захожу иногда
  • 241
  • 8 / 0
  • все должно быть качественно!
у меня бывало что например тот или иной сайт не работает, не срабатывает тот или иной модуль или компонент, а все потому . что в настройках (опциях) php не стоит какой то скрипт включенным. ну мало ли, я бы там посмотрел.
*

bibalaev

  • Захожу иногда
  • 241
  • 8 / 0
  • все должно быть качественно!
охренеть.
Хостинг должен проверять! мотивируйте тем, что на других хостингах все работает!
*

Garant

  • Новичок
  • 8
  • 0 / 0
охренеть.
Хостинг должен проверять! мотивируйте тем, что на других хостингах все работает!
Спасибо, пишу)
Правда отвечают они в течении 24 часов.
*

bibalaev

  • Захожу иногда
  • 241
  • 8 / 0
  • все должно быть качественно!
жесть. я вот менял хостинг с американского на рф, ребята очень хорошие, адекватные, всегда на связи, даже в вконтакте. нужно было поставить одну cms, так они мне сами даже поставили скрипт, который их пакет не включал, просто так бесплатно.
*

Garant

  • Новичок
  • 8
  • 0 / 0
жесть. я вот менял хостинг с американского на рф, ребята очень хорошие, адекватные, всегда на связи, даже в вконтакте. нужно было поставить одну cms, так они мне сами даже поставили скрипт, который их пакет не включал, просто так бесплатно.
Я тоже был на другом хостинге, но у них постоянно какие то проблемы и отношение ужас к клиентам и они партнеры тех куда сейчас перекинул сайт.
Мне это создатели посоветовали, говорили у них сотни сайтов работают без проблем на нем.
*

Garant

  • Новичок
  • 8
  • 0 / 0
Так как комментов больше нет, то получается это скорее всего php скрипты?
*

bibalaev

  • Захожу иногда
  • 241
  • 8 / 0
  • все должно быть качественно!
не факт, тут не всегда сразу отвечают.
*

Garant

  • Новичок
  • 8
  • 0 / 0
не факт, тут не всегда сразу отвечают.
понятно, тогда ждем комментариев.
*

Garant

  • Новичок
  • 8
  • 0 / 0
Сегодня меня перевели на другой сервер, проблема с загрузкой страниц пропала (все загружается быстро), но осталось проблема с ошибкой при добавлении и редактировании товара: vmError: Attention file _notes has no extension in view productdetails and directory /usr/home/47737/garant-dveri.ru/html/components/com_virtuemart/views/productdetails/tmpl
И ошибка при добавлении и редактировании категорий : vmError: Attention file _notes has no extension in view category and directory /usr/home/47737/garant-dveri.ru/html/components/com_virtuemart/views/category/tmpl
Общаясь по телефону с хостингом, они сказали что это проблема с CMS и есть описание этой проблемы на форуме, но я не смог найти. Подскажите пожалуйста что делать?
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Исправить ошибку

Автор angelleben

Ответов: 7
Просмотров: 1107
Последний ответ 08.01.2021, 14:21:10
от angelleben
Проблема из chosen.php генерит js ошибку

Автор platonische

Ответов: 0
Просмотров: 1500
Последний ответ 20.05.2020, 11:11:03
от platonische
Вместо позиций блоков Joomla показывает 404 ошибку

Автор MultiMatrix83

Ответов: 3
Просмотров: 1339
Последний ответ 13.07.2019, 18:06:01
от MultiMatrix83
Белая станица. Запрет входа в панель управления

Автор chasa

Ответов: 10
Просмотров: 1369
Последний ответ 02.04.2019, 15:20:48
от chasa
Как в админ. панели убрать надпись "Joomla!® - бесплатное программное..."

Автор sigir

Ответов: 7
Просмотров: 33885
Последний ответ 11.06.2016, 13:54:20
от iDrakon