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

ash1989

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
1.Есть материал, который хочу разбить на страницы, чтобы потом как обычно клацать "следующая","предыдущая" и т.д.
Добавил материал, в нужных местах клацнул на кнопку "разрыв страницы". Сохранил. Эффекта никакого. Всё на одной странице.
Что я не так делаю?))
версия 1.5.25


2.Можно ли сделать страницу с материалом, не привязывая к меню??
ну, например, у меня на главной странице какой-то текст с небольшим описанием компании. Под превью хочу сделать ссылку-слово "подробнее", чтобы при нажатии на неё переходило на новую страницу с полным описанием.
Ковырял, колупал...но без привязки материала к меню я такого не нашёл.
Поможете?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать несколько страниц?
« Ответ #1 : 10.04.2012, 00:49:50 »
1. Посмотрите включен ли плагин (Разрыв страницы или pagebreak)
2. Выведите часть текста произвольным кодом HTML, кнопка подробнее ссылка на полный текст статьи (Есть и модули которые позволяют выбрать статью и показывать только вступительный текст к примеру GK4)
*

ash1989

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Как сделать несколько страниц?
« Ответ #2 : 10.04.2012, 01:14:28 »
1. Посмотрите включен ли плагин (Разрыв страницы или pagebreak)
2. Выведите часть текста произвольным кодом HTML, кнопка подробнее ссылка на полный текст статьи (Есть и модули которые позволяют выбрать статью и показывать только вступительный текст к примеру GK4)

по второму пункту:
да, я сделаю ссылку на полный текст статьи. но ведь саму статью всё равно придётся к пункту меню привязывать, ни так ли?

...пока что я придумал следующее...
создал ещё одно меню. Понаделывал в нём произвольные пункты со статьями. Пункты назвал по нумерации статей, чтобы легче было ориентироваться.
После чего это меню я просто отключил.
Ну а дальше, поскольку с отключённым меню его пункты всё равно в системе функционируют, сделал ссылки на них через "подробнее".
« Последнее редактирование: 10.04.2012, 01:42:47 от ash1989 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать несколько страниц?
« Ответ #3 : 10.04.2012, 01:47:33 »
Цитировать
но ведь саму статью всё равно придётся к пункту меню привязывать, ни так ли?
Необязательно. Привязывать к меню нужно:
1. Когда у Вы хотите пункт меню с данной ссылкой
2. Когда Вы хотите красивую SEF ссылку
это основное можно еще привести кучу типа странице статье свой дизайн  и т. д.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Как сделать несколько страниц?
« Ответ #4 : 10.04.2012, 08:41:34 »
Так может редактор вырезает код <hr system-break ?
*

ash1989

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Как сделать несколько страниц?
« Ответ #5 : 10.04.2012, 13:12:21 »
хорошо...я сейчас опишу всё по-порядку.
Итак..мне нужно сделать материал ( например, анекдоты добавить). Для этого я создаю раздел, потом категорию, и только после этого создаю материал с анекдотами, привязывая его к разделу и категории. Без привязки к разделу и категории материал просто не создаётся ("вам нужно выбрать раздел и категорию" пишет). Потом, чтобы материал появился на сайте, я его вывожу с помощью меню. По другому я не нашёл как.
Тут ещё нюанс...
Я читал другие форумы и смотрел видео одно. Не помню, какую именно версию Joomla использовали, но то, что у меня в панели управления называется "материалы", там называлось "статьи". И там была функция "создать статическое  содержимое", то есть материал не привязывается ни к разделу, ни к категории. И этому материалу сразу приписывается  адрес на сайте. После чего на этот материал можно сделать ссылку как угодно.
У меня такого нет.
Если можно, то опишите по порядку, как мне вывести материал без привязки к меню??
Просто если я его к меню не привязываю, то он в системе не появляется и адреса не имеет.на него никак не сделаешь ссылку.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать несколько страниц?
« Ответ #6 : 10.04.2012, 13:36:44 »
ваш сайт/index.php?option=com_content&view=article&id=25 где 25 это id вашей статьи Так выглядит ссылка на ваш материал без привязки меню
Материал можно создавать не указывая раздел и категорию. (Раздел не указано категория не указано)
*

ash1989

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Как сделать несколько страниц?
« Ответ #7 : 10.04.2012, 13:48:06 »
Всё, получилось! огромное спасибо!
Но вот материал у меня всё же без привязки к разделу и категории не создаётся. Пробовал, вылетает "укажите раздел и категорию". Ну это уже ладно. Главное с этим разобрался.

Теперь касательно создания страниц...
Плагин включен. И есть одна странность: если в материал навтыкать разрыва страниц и сохранить, то страницы не появляются никак. Никакого перелистывания.
А если вместо первого разрыва нажать на кнопку "подробнее", то после этого страницы появляются.
То есть на сайте получается так...Сначала читаешь часть текста, нажимаешь внизу подробнее, и после перехода открывается полный текст, который уже разбит на страницы. Короче говоря, если "подробнее" не поставить в начале, то страницы не появятся.
Так и должно быть или глюк??
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать несколько страниц?
« Ответ #8 : 10.04.2012, 13:53:59 »
Да так и должно быть вначале краткий текст -> подробнее -> а затем дополнительный текст и -> разбитие его на страницы
*

ash1989

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Как сделать несколько страниц?
« Ответ #9 : 10.04.2012, 13:58:59 »
Ясно...а то получается так сейчас. Сделал краткое описание статьи на главной и через HTML вставил код-ссылку "подробнее" на страницу с материалом.
Это материал у меня ещё привязан к меню для наглядности.
Так вот если с главной нажимать на "подробнее", то после перехода попадаешь на материал уже разделённый на страницы.А если на этот материал заходить через меню, то он не разделяется.
Я так понял, что разрыв действует исключительно через "подробннее", да??
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать несколько страниц?
« Ответ #10 : 10.04.2012, 14:09:28 »
А вы отключите SEF если используете и посмотрите чем отличаются ссылки в адресной строке.
И посмотрите этот пост    
Структура шаблона com_content
*

ash1989

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Как сделать несколько страниц?
« Ответ #11 : 10.04.2012, 14:18:07 »
да я заметил, что если переходить через "подробнее", то ссылка:
index.php?option=com_content&view=article&id=id статьи
а если через пункт меню, то:
index.php?option=com_content&view=category&layout=blog&id=29&Itemid=id пункта меню

хорошо, почитаю.
 и последний вопрос:
как отключить надоедливый квадрат, который появляется справа сверху при разбиении на страницы??))
там в нём написано:

"Индекс материала
бла-бла-бла
страница "такая-то"
Все страницы"

его убрать можно?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать несколько страниц?
« Ответ #12 : 10.04.2012, 14:23:15 »
Я так понимаю FireBug тут будет в помощь.
Он покажет, что это заданные стили или код.
*

ash1989

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Как сделать несколько страниц?
« Ответ #13 : 10.04.2012, 15:07:12 »
этот квадрат оказывается таблица содержания. её можно отключить?
*

ash1989

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Re: Как сделать несколько страниц?
« Ответ #14 : 10.04.2012, 15:11:36 »
всё..разобрался) надо было в параметрах Pagebreak навигацию отключить.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать появление случайных картинок из пяти разных категорий?

Автор Katy93

Ответов: 2
Просмотров: 2651
Последний ответ 03.05.2021, 21:34:20
от sivers
Как сделать бэкап сайта

Автор egorovv

Ответов: 8
Просмотров: 7274
Последний ответ 06.06.2020, 12:09:43
от SeBun
Как сделать отображение третьего и далее уровней меню?

Автор Hloja_Blimm

Ответов: 12
Просмотров: 2076
Последний ответ 24.11.2017, 15:12:04
от Hloja_Blimm
Как сделать категорию в виде таблицы с настраевыми колонами?

Автор nagav

Ответов: 10
Просмотров: 1910
Последний ответ 24.10.2016, 08:37:27
от vipiusss
Как сделать, чтобы внутренняя страница не показывалась в качестве главной?

Автор kpripper

Ответов: 21
Просмотров: 2299
Последний ответ 19.03.2016, 16:51:11
от flyingspook