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

klara7

  • Захожу иногда
  • 311
  • 4 / 1
Joomla 1.5.26, компонент обновила до 1.3.3 - в поле вопроса при печати пропают символы. Никаких модулей в jquery нет. В чем может быть проблема? сайт autotuningufa(точка)ru/faq

P.s. модераторы, почистите, пож-та тему, тут уже на войну и мир набралось ^-^
*

Yuriy19

  • Новичок
  • 1
  • 0 / 0
Почему при попутке задать вопрос компонент SM FAQ 1.3.3 зависает т.е. появляется прелоадер и крутится бесконечно при этом вопрос не добавляется. FireBug ругается на файл smfaq.js строка2: TypeError: $ID(...).value is undefined function $F(id){return $ID(id).value.replace(/&/g,"");}. Уже пробовал отключать все сторонние скрипты но ничего не помогает. Шаблон писал сам в стандартных шаблонах все нормально работает.
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
привет

как быть с многоязычными сайтами - установлен Joom!Fish - 2 языка

Чёт пока не понял

Дорогие Друзья!

Как и у вас, мне тоже очень нравиться этот компонент, поэтому создал для него contentelement для перевода Вопрос и Ответ в Joom!Fish.
Файл нужно бросить в /administrator/components/com_joomfish/contentelements/

скачать можно здесь

Спасибо и +
« Последнее редактирование: 30.08.2013, 23:37:33 от palexa »
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
привет

как быть с многоязычными сайтами - установлен Joom!Fish - 2 языка

Чёт пока не понял

Спасибо

Только пока не понял как названия категорий переводить,

вразумите ?

P.S. Вроде разобрался
« Последнее редактирование: 30.08.2013, 23:37:00 от palexa »
*

Elena-22

  • Новичок
  • 2
  • 0 / 0
Здравствуйте!
Вопрос: установила ваш плагин на сайт: http://zerkalodushi.ru/voptos-otvet-psihologa
Joomla 1.5
При нажатии на кнопку "задать вопрос" не происходит переход на форму где пользователь может задать вопрос. Вместо этого на экране дублируется сайт. В чем может быть проблема?
Тестовый вопрос через админку создать могу, он даже отображается на сайте, а вот посетители не могут задать свои вопросы.
При этом когда устанавливала - всё работало. Зашла через какое-то время проверить - не работает.
Помогите, пожалуйста, разобраться.
*

sergeosn

  • Захожу иногда
  • 70
  • 0 / 0
Подскажите пожалуйста.
Есть два шаблона главный и второстепенный.
Все вопросы отображаются во второстепенном, но когда редактор отвечает на вопросы то редактора выкидывает на главный шаблон. Что надо сделать чтоб он оставался на второстепенном?
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
не совсем понятно о каких шаблонах идет речь
подробнее можно?
*

sergeosn

  • Захожу иногда
  • 70
  • 0 / 0
Для сайта можно делать разные шаблоны под меню.
Есть шаблон для главной страницы.
А есть шаблон для пункта меню FAQ.
Когда редактор отвечает на вопросы пользователей, то его выкидывает на главный шаблон.
*

sergeosn

  • Захожу иногда
  • 70
  • 0 / 0
Грубо говоря как то так:
Отвечает на заданные вопросы редактор. Доступ на редактирование открывается после того, как редактор залогинился.
После завершения аутентификации появляется список вопросов. Если нажать на кнопку "Показать неопубликованные вопросы", мы переходим на страницу с вопросами. При клике на вопрос с целью редактирования - мы попадаем на главную страницу сайта, где форма на редактирование интересующего нас вопроса выводится на главном шаблоне. Т.е. по умолчанию цепляется главный шаблон сайта, а необходимо сделать, чтобы редактирование вопроса происходило во второстепенном шаблоне.
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
если нужно поменять основной шаблон при редактировании, то попробуйте добавить в /components/com_smfaq/views/smfaq/tmpl/default.php
Цитировать
$editor =& JFactory::getEditor();
$app = JFactory::getApplication();
$app->setTemplate('шаблон'); //например - ja_purity 


1.5 под рукой нет, поэтому точно сказать не могу будет работать или нет

*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Стоит компонент SM FAQ 1.7.3.2, CMS Joomla 3.3.6
Не отображается форма для добавления вопроса.
Сайт: http://prioknn.ru/voprosy-otvety

В настройках главной категории форма включена, права на добавление вопросов стоят.
*

vendn

  • Захожу иногда
  • 105
  • 1 / 2
пожалуйста помогите!
Выходит ошибка при создании вопроса через незарег. пользователя
Выходит всплывающее с надписью 500!
Кто встречался, пожалуйста помогите!
Шаблон не родной!
Версия Joomla 2.5.14
Версия модуля - 1.7.3
*

shiftDELET

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
при попытке добавит вопрос появляться ошибка

"Время жизни сессии истекло"

J2.5 | SM FAQ1.6
до этого 2 года все работало отлично. обновлений никаких не было!
*

Tinael92

  • Новичок
  • 1
  • 0 / 0
А кто-нибудь может подсказать, как организовать вывод вопросов каждый на отдельной странице? Joomla 1.5.21, SM FAQ 1.3.3
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль Даты и события для Joomla 1.5

Автор newfork

Ответов: 6
Просмотров: 8259
Последний ответ 17.08.2021, 12:08:15
от Elimelech
JXLSPriceParser - MS Excel + Joomla (v0.3.2)

Автор miraj

Ответов: 277
Просмотров: 123341
Последний ответ 09.04.2017, 11:59:46
от svarg
(CSVI) Компонент импорта csv файлов (Joomla 1.5 ~ Virtuemart 1.1 Native mode), beta

Автор Jkarter

Ответов: 114
Просмотров: 73801
Последний ответ 16.03.2016, 19:03:16
от Ferax
Георгиевская ленточка для Joomla 1.5

Автор ageent

Ответов: 10
Просмотров: 8125
Последний ответ 21.01.2016, 23:50:10
от SeBun
Joomposter программа для постинга в Joomla

Автор bigbrain

Ответов: 130
Просмотров: 60935
Последний ответ 21.01.2016, 19:13:20
от KKAAZZOO