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

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Всем привет!
Друзья, кто юзает этот замечательный шаблон (https://master3.alekvolsk.info/ru/)?
Не хочется по мелочам (а уж тем более бесплатно) отвлекать автора, поэтому предлагают задавать вопросы в данной теме.

У меня первый вопрос: Никак не могу сделать выпадающее меню. Кто-то делал такое по клику или наведении? Подскажите как решили данный вопрос.

Заранее спасибо!
*

khan-alex

  • Давно я тут
  • 649
  • 30 / 1
У меня первый вопрос: Никак не могу сделать выпадающее меню. Кто-то делал такое по клику или наведении? Подскажите как решили данный вопрос.
Не ставил сей замечательный шаблон, но там кажется из скриншотов настройки шаблона понятно: Шаблон -- Закладка "Menu" -- Click mode for drodown -- Переключить "Yes"
и Dropbar mode -- Переключить "Yes"
Попробуйте поиграйтесь с настройками в самом шаблоне.
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Дык не писал бы, если бы не перепробовал все....  :(
*

khan-alex

  • Давно я тут
  • 649
  • 30 / 1
Ну тогда к разработчику AlexVolsk напиши. Вроде его детище.
*

fireman

  • Захожу иногда
  • 338
  • 10 / 0
  • в цель...
Дык не писал бы, если бы не перепробовал все....  :(
Приветствую!
У меня работает, и по клику и при наведении. Посмотрите, выпадающий пункт меню привязан к корневому?
Или в настройках модуля: показывать подпункты меню - да/нет;
или, там же: последний уровень - стоит 1 (надо либо все/либо по числу уровней)

Зато у меня не выводится иконка открытия мобильного меню, при соответствующем размере окна...
« Последнее редактирование: 20.07.2019, 20:02:54 от fireman »
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Приветствую!
У меня работает, и по клику и при наведении. Посмотрите, выпадающий пункт меню привязан к корневому?
Или в настройках модуля: показывать подпункты меню - да/нет;
или, там же: последний уровень - стоит 1 (надо либо все/либо по числу уровней)
При таких настройках у меня просто выводятся все пункты подменю уже открытыми по умолчанию (((
*

fireman

  • Захожу иногда
  • 338
  • 10 / 0
  • в цель...
При таких настройках у меня просто выводятся все пункты подменю уже открытыми по умолчанию (((
А Uikit CSS включены у вас? Вкладка Head includes. Только отключив их у меня вывелись все пункты и подпункты меню, ну и соответственно все стили обнуляются, на странице только текст.

Кстати, заметил такой еще момент, опция Boundary alignment (ее название в админке написано с опечаткой Boubdary) - если в  ней выставить значение Justify, то не работает Click mode for dropdown и подменю будет выпадать при наведении курсора.
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Цитировать
А Uikit CSS включены у вас? Вкладка Head includes. Только отключив их у меня вывелись все пункты и подпункты меню, ну и соответственно все стили обнуляются, на странице только текст.
По-разному пробовал... Сейчас вот так:
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Кстати, заметил такой еще момент, опция Boundary alignment (ее название в админке написано с опечаткой Boubdary) - если в  ней выставить значение Justify, то не работает Click mode for dropdown и подменю будет выпадать при наведении курсора.
будет проверено и исправлено при подтверждении, с подобным можно стучаться в саппорт с пометкой [bug]
*

fireman

  • Захожу иногда
  • 338
  • 10 / 0
  • в цель...
По-разному пробовал... Сейчас вот так:
При аналогичных настройках подменю у меня выпадает.
Цитировать
а в модуле меню переопределение выбрано?
Да, у меня стоит navbar. А почему может не появляться иконка мобильного меню при уменьшении экрана? Основное пропадает, а иконка не появляется. Не подскажите?
« Последнее редактирование: 22.07.2019, 00:28:48 от fireman »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А почему может не появляться иконка мобильного меню при уменьшении экрана? Основное пропадает, а иконка не появляется. Не подскажите?
https://master3.alekvolsk.info/ru/documentation/menu
Составной параметр Offcanvas
Список секций в виде выпадающих панелей. Формируется автоматически из параметров позиций шаблона.
Секция offcanvas-menu специально предназначена для публикации в ней мобильного меню.
*

fireman

  • Захожу иногда
  • 338
  • 10 / 0
  • в цель...
https://master3.alekvolsk.info/ru/documentation/menu
Составной параметр Offcanvas
Список секций в виде выпадающих панелей. Формируется автоматически из параметров позиций шаблона.
Секция offcanvas-menu специально предназначена для публикации в ней мобильного меню.
Я дублировал модуль основного меню, разместил его в offcanvas-menu, сменил альтернативный макет, отличный от navbar (иначе ошибка выскакивает, сайт падает) и жду... Не так надо?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Я дублировал модуль основного меню, разместил его в offcanvas-menu,
всё правильно (кроме выделения текста красным - за это от админа может прилететь)

сменил альтернативный макет, отличный от navbar
достаточно указать дефолтный, суффикс класса меню указать uk-nav-default или uk-nav-primary для стилизации и всё должно работать, если вы не трогали дефолтную разметку
*

fireman

  • Захожу иногда
  • 338
  • 10 / 0
  • в цель...
Разметки не касался. За красный текст - извиняюсь, не ведал...
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
а в модуле меню переопределение выбрано?
https://master3.alekvolsk.info/ru/documentation/overrides#menu
Блин, нет конечно... По старинке указывал суффикс класса меню... Тупанул. Прошу прощения, и спасибо за оперативный ответ!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Кстати, заметил такой еще момент, опция Boundary alignment (ее название в админке написано с опечаткой Boubdary) - если в  ней выставить значение Justify, то не работает Click mode for dropdown и подменю будет выпадать при наведении курсора.
баг подтверждён, выпущено обновление с исправлением, читаем подсказку для параметра Boundary alignment (добавлена в последнем обновлении)
спасибо за фидбек!
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
В мобильной версии хлебные крошки не помещаются по ширине, из-за чего появляется горизонтальный скролл. Так задумано?
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
в мобильной версии крошки скрывают вообще-то
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
в мобильной версии крошки скрывают вообще-то
Да, есть такое мнение и, зачастую, оно вполне справедливое и, в условиях ограниченного пространства дисплея гаджета, оправданно. Но в некоторых случаях (в моём, в частности) структура сайта очень сложна, статьи большие и, порой, посетитель действительно может заблудиться...

Нашел интересное решений. Разумеется, на реализации его в Вашем шаблоне я не настаиваю (возможно, за доп плату попрошу это сделать). Просто, мало ли, кому-то пригодится. Суть решения - сокращать слова с помощью js или css: https://codepen.io/lagudal/pen/KxGpQj
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Естественно, я не буду это добавлять, т.к. это сугубо индивидуальное решение.
Вообще, имхо, крошки в юиките не совсем корректно завёрстаны изначально: уголок-разделитель не должен переноситься, да и правила блочной модели некорректны, так что всё верстается индивидуально по месту
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
уголок-разделитель не должен переноситься
Я тут понял почему он перноситься потому что по умолчанию в прошке это | а она переноситься, типа как в php коде
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Немного смущает один момент. Главная страница Избранные материалы или Блог материалов. Теги материала выводятся ПОСЛЕ ссылки Подробнее.
В стандартных шаблонах теги выводятся вместе с датой создания материала, именем автором, хитами и т.п. Это и понятно, ведь по логике, эти данные относятся к материалу.

В данном же шаблоне логика, имхо, нарушена.

Кто-то знает, как это исправить?
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
так в шаблоне вывода перенесите теги и делов то
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
так в шаблоне вывода перенесите теги и делов то
А вот и не получается ((( Обыскался. Дату, автора, категории - без проблем, а теги не могу.... В info_block.php они не выводятся. По всей видимости, просто в конце содержимого материала выводятся.
*

Missile

  • Завсегдатай
  • 1116
  • 90 / 1
Теги материала выводятся ПОСЛЕ ссылки Подробнее.
Это и удобнее, на мой взгляд. Представьте, если у вас будет 10-15 тегов. К тому же, читатель обращает внимание на теги после того, как прочёл статью.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В данном же шаблоне логика, имхо, нарушена.
от master3 это кстати не зависит - это дефолтное поведение com_content
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Это и удобнее, на мой взгляд. Представьте, если у вас будет 10-15 тегов. К тому же, читатель обращает внимание на теги после того, как прочёл статью.
Разговор не о статье! Разговор о кратком содержимом, которое выводится в Блоге материалов. Проще говоря, во вступлении. См. вложение. Подробнее, Оставить отзыв, и только внизу теги. Ну не логично, хоть ты убей.

от master3 это кстати не зависит - это дефолтное поведение com_content
Да? Я смотрел шаблон Protostar. Он, вроде как, дефолтный. Думал это и есть изначальный вид...

Как бы то ни было, как это можно исправить?
« Последнее редактирование: 20.08.2019, 00:26:14 от dron »
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
от master3 это кстати не зависит - это дефолтное поведение com_content
дефолтное как раз таки в строке с инфо
в данном случае это действительно переопределено в шаблоне
ТС перенесите код
Код
<?php if ($params->get('show_tags', 1) && !$tmpl_params->get('show_list_tags',0) && !empty($this->item->tags->itemTags)) : ?>
        <?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
        <?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
    <?php endif; ?>
в нужное вам место
перед интротекстом
*

Webster

  • Захожу иногда
  • 185
  • 7 / 0
упс, забыл самое главное
это в файлике blog_item.php
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Различные условия в шаблонах Joomla 3.0 и 2.5

Автор Fedor Vlasenko

Ответов: 133
Просмотров: 27787
Последний ответ 16.12.2024, 15:52:14
от goga_pgasovav
Шаблон jm MyPlace - не воспроизводится видео

Автор THE KILLERS

Ответов: 2
Просмотров: 1398
Последний ответ 23.07.2024, 13:58:16
от THE KILLERS
Ошибка при входе в корзину шаблон jmart

Автор dimiur

Ответов: 5
Просмотров: 4185
Последний ответ 24.05.2023, 14:24:30
от Gleb72
Почему обновление шаблона ломает шаблон?

Автор gorbi_U

Ответов: 8
Просмотров: 2814
Последний ответ 03.05.2023, 22:54:19
от SmiP
Шаблоны Joomlart, Gavick, Yootheme, RocketTheme для Joomla: легально и с обновлениями, no warez

Автор _ib_

Ответов: 168
Просмотров: 204121
Последний ответ 15.04.2023, 18:26:50
от AS1969