Новости 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 Ответов
  • 1135 Просмотров
*

unoduetre

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Здравствуйте.
Я новичек в Joomla и многое вызывает у меня трудности, с которыми я не могу справиться, читая обуающие статьи.
Нужна человеческая помощь.
Мне нужно расположить на главной блог, а рядом слева вертикальный столбец-материал с текстом и картинкой.
Вот так примерно должно быть


Вопрос 1. Как два модуля развести в разные стороны страницы. Блог, например пытается занять всю ширину.
Вопрос 2. Какой модуль выбрать для блога, если в нем планируется писать не большие сообщения(возможно с картинкой и ссылками и датой публикации). Сообщение должно разворачиваться в том же окне по клику на "читать далее", т.е. без разворачивания статьи на отдельной странице. Еще нужна возможность заполнять этот блог ( или это уже мессенджер? или просто список статей?)  в специальной форме, которая разворачивается по нажатию на кнопку.
 
Извиняюсь заранее, если вопрос задан криво. С терминалогией Joomla у меня еще проблемы.
Буду благодарна за любую помощь.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
1 - изучайте CSS, float\flexbox\grid - можно по разному сделать
2 - простой вариант - на ссылку повесить получение данных другой страницы и подключить Lightbox, к примеру хороший плагин http://fancyapps.com/fancybox/3/
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

unoduetre

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
изучайте CSS, float\flexbox\grid - можно по разному сделать
Я знакома с этими инструментами. Но как это сделать в Joomla на готовом шаблоне? Править CSS шаблона?
Искать подходящий шаблон? так жизни не хватит. Я думала, что Джумла - это коструктор, где можно брать блоки-модули и вставлять в нужное место на странице. Нет?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Я знакома с этими инструментами. Но как это сделать в Joomla на готовом шаблоне? Править CSS шаблона?
естественно
не бывает шаблона с стилями на все случаи жизни. Бывают шаблоны на бутстрапе - можете тогда пользоваться его сеткой\классами
можете писать свои, никто это не запрещает

Я думала, что Джумла - это коструктор, где можно брать блоки-модули и вставлять в нужное место на странице. Нет?
Не совсем верно но да, блоки (модули) вы можете вставлять где угодно, но оформлять\выстраивать их - уже ваша задача
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

unoduetre

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Таак. А зачем тогда Joomla, если самому писать шаблон? Как она позволяет "сделать сайт любой сложности  под ваши цели"?
Я не иронизирую, правда. Объясните, пожалуйста, что я реально могу сделать на основе шаблона?
 Прочитала ваше дополнеие.Послендний вопрос снимается.
*

unoduetre

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Вопрос 2. Какой модуль выбрать для блога, если в нем планируется писать не большие сообщения(возможно с картинкой и ссылками и датой публикации). Сообщение должно разворачиваться в том же окне по клику на "читать далее", т.е. без разворачивания статьи на отдельной странице. Еще нужна возможность заполнять этот блог ( или это уже мессенджер? или просто список статей?)  в специальной форме, которая разворачивается по нажатию на кнопку.

Скажите, а как назвать правильно такого типа блог(или что?), который я тут описала. На рисунке подробнее немного.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Таак. А зачем тогда Joomla, если самому писать шаблон? Как она позволяет "сделать сайт любой сложности  под ваши цели"?
Я не иронизирую, правда. Объясните, пожалуйста, что я реально могу сделать на основе шаблона?
Joomla это CMS с своим API. Шаблон всего лишь базовый каркас сайта, где можно написать разные условия (1\2\3 колонки, расположение модулей и так далее)
Как оформить расположение блоков\колонок\модулей - движок про это знать не знает, для этого вы пишите свой CSS

Я правда не понимаю, вы думали поставить cms у и вас сразу все зашевелится? Увы не выйдет, любая система требует настройки под себя. В вашем случае\вопросе это всего лишь стили - выровнять блоки, тут уж никаких претензий к системе быть физически не может
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Скажите, а как назвать правильно такого типа блог(или что?), который я тут описала. На рисунке подробнее немного.
Вы бы его хоть развернули, картинку, глаза сломаешь.
На схеме у вас стандартный трехколоночный макет, слева\справа разные модули, по центру вывод компонента com_content в режиме блога материалов (то есть стандарт, картинка\заголовок\интро).
Написать подобный каркас - 15 минут, три колонки вы сверстать можете? Надеюсь да - ну и напихать в них нужные модули и component
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Мне кажется, что вот эта старая тема может вам помочь в понимании логики Различные условия в шаблонах Joomla 1.5
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
« Последнее редактирование: 04.05.2018, 22:31:30 от Aleks.Denezh »
*

unoduetre

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
beliyadm, спасибо. Трехколоночную страницу я конечно сверстаю. Но ее же еще в Joomla установить надо!
Пойду изучать.
На этом уровне вопрос объявляю решенным. Спасибо.
« Последнее редактирование: 16.03.2018, 12:48:25 от unoduetre »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
beliyadm, спасибо. Трехколоночную страницу я конечно сверстаю. Но ее же еще в Joomla установить надо!
Пойду изучать.

Странный термин "установить" :)
Открываете index.php своего шаблона и делаете любую нужную вам разметку, в нужные места вставляете позиции модулей и компонент в основном блоке. В этом и заключается гибкость движка - вы в одном файле можете создать все что вам угодно. Дальше вставить к примеру позицию LEFT на нее повесить модуль новостей, привязать его в настройках к одной странице, сделать его копию в админке, указать для него другой шаблон (сделав его в к примеру в \templates\шаб\html\mod_articles_latest\новыйшаблон.php с другой разметкой) и привязать к другой странице.
В итоге у вас одна базовая разметка самого сайта, один скрипт для новостей и разное оформление новостей на разных страницах.
И так до бесконечности. Вот это называется гибкость и удобство для создания сайта любой сложности под наши цели :):)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

unoduetre

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Что-то я опять ничего не понимаю...
Под установить шаблон, я понимаю такую же установку, как для скаченных с интернета шаблонов: Расширения->менеджер расширений->установить.

Открываете index.php своего шаблона и делаете любую нужную вам разметку,
Вы сейчас имеете в виду изменение  готового шаблона? Чесно говоря, там в файлах черт ногу сломит. Я почти не узнаю знакомого html  и CSS. К сожалению, с php пока не знакома.

 
делаете любую нужную вам разметку, в нужные места вставляете позиции модулей и компонент в основном блоке. В этом и заключается гибкость движка - вы в одном файле можете создать все что вам угодно. Дальше вставить к примеру позицию LEFT на нее повесить модуль новостей, привязать его в настройках к одной странице, сделать его копию в админке, указать для него другой шаблон (сделав его в к примеру в \templates\шаб\html\mod_articles_latest\новыйшаблон.php с другой разметкой) и привязать к другой странице.
В итоге у вас одна базовая разметка самого сайта, один скрипт для новостей и разное оформление новостей на разных страницах.
А могли бы вы дать ссылку, где об этом можно почитать\посмотреть с примерами. Что-то типа уроков что-ли... 

*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Если действительно хотите изучить систему - идите с нуля
Создайте пустой шаблон и в нем ковыряйтесь.
Приложил пустой шаблон в котором ничего нет, можете распаковать в templates/mytemplate (название любое) и в админке в управлении расширениями использовать опцию "найти". Предварительно в templateDetails.xml можете изменить название описание и прочие поля.
В этом шаблоне (такую структуру использую всегда, сам ненавижу все эти клубные шаблоны, построенные на gantry или иных фреймворках, там реально без поллитры делать нечего) и создавайте свою разметку, пишите стили и скрипты, все что угодно

По условиям в шаблоне я выше давал ссылку, попробуйте поиграть, собственно с версии 1.5 в этом плане почти ничего не изменилось.

Ну и конечно FAQ по последней версии тут читать Joomla 3 FAQ
Поверьте - когда через пару дней поймете базовую логику то делать шаблон под движок ничем почти не отличается от обычной HTML верстки
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

unoduetre

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Большое спасибо! Буду пробовать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести модуль в модуле

Автор jimka

Ответов: 2
Просмотров: 625
Последний ответ 18.04.2025, 15:39:36
от fbr
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 9
Просмотров: 4668
Последний ответ 21.02.2024, 11:03:08
от saynez
Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 1257
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Модуль Похожие метки – только более ранние статьи!

Автор Gerostrat

Ответов: 6
Просмотров: 916
Последний ответ 24.08.2023, 21:56:09
от sivers
Модуль для опросов Advanced Poll не работает

Автор Escander

Ответов: 15
Просмотров: 2010
Последний ответ 02.06.2023, 20:10:22
от kzalmatuy1