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

sagitarius84

  • Новичок
  • 4
  • 0 / 0
Подскажите, как можно автоматически создавать меню под материал. Сайт справочник по городам и селам, создано 30000 материалов с алиасами. Сейчас тайтл - "Караганда". Под поисковик тайтл при помощи БД изменю на Карта, индексы, справочник, погода в Караганде. Теперь возник вопрос с пунктами меню. Нужно создать меню под все материалы с визуально приятным тайтлом вида "Караганда". Создавать 30000 пунктов меню как-то не очень хочется :'(, отображение при помощи стандартного шаблона раздела тоже не катит :((визуально ссылки вида Карта, индексы, справочник, погода в Караганде). Думал подойдет следующий модуль http://ext.joom.ru/moscmenutree.html, он то создает пункты автоматически, но синхронизирован с материалом (то есть если я изменю на Карта, индексы, справочник, погода в Караганде, то и тайтл пункта будет такой же), да и ссылки тоже не оптимизированные. Так вот вопрос: как все же сделать все правильно, чтобы и поисковику было хорошо и пользователю?
*

Dusted

  • Захожу иногда
  • 180
  • 49 / 0
Извиняюсь за оффтоп, но как вы себе представляете отображение 30000 пунктов меню на сайте?
Куплю ваши сайты, рассмотрю все варианты - пишите в личку.
*

sagitarius84

  • Новичок
  • 4
  • 0 / 0
Сначала области, потом переход на районы, потом в каждом районе села в 2-4 колонки на странице. Или же сделать каскадными выпадающими списками область>район>город (село). Это не проблема. Вопрос не в этом. Вариантов полно. Вопрос в том, как создать меню под материал автоматом.
*

olderman

  • Захожу иногда
  • 78
  • 0 / 1
У меня подобная задача, но гораздо менее масштабная. Задача создавать меню для материалов определенной категории. Попробовал MosCmenuTree. В принципе, меню создается, но как привязать модуль, чтобы он оставался, например, в левой колонке. Он привязан у меня к пункту верхнего горизонтального меню. И появляется при нажатии на этот пункт. Но когда выбраешь пункт в меню MosCmenuTree и открывается соответствующая страница - все это левое меню пропадает. Т.е. нарушается связь с пунктом верхнего меню или, вернее, ранее нажатый пункт перестает быть выбранным.
Подскажите, как быть? И есть ли апьтернатива MosCmenuTree, которая бы работала с loomla 1.5 без режима совместимости.
*

nicotinoff

  • Новичок
  • 9
  • 0 / 0
Такаяже проблема..
1. пропадают нужные меню при выборе материала или категории
2. в строке навигации сразу идет home>материал
нужно установить какойнить каталог
*

mer

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
может это подойдет Automatic Menu Magic:
http://alex-kurteev.ru/novosti-joomla-1.5-i-1.0/plagin-sozdaniya-punktov-menyu-automatic-menu-magic.html

"...набор из двух плагинов, которые автоматическисоздают пункты меню Joomla для размещенных статей (а также, если установлены параметрах - псевдоним или альтернативное [дополнительное] имя"

автор: http://www.derosetechnologies.com/community/joomla-automatic-menu-magic
*

palexa

  • Завсегдатай
  • 1108
  • 88 / 0
Я вот поставил Automatic Menu Magic - но я так и не понял как пункты создаются
*

psevan

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Я вот поставил Automatic Menu Magic - но я так и не понял как пункты создаются
Не разобрались с этим меню? Тоже на могу заставить работать.


« Последнее редактирование: 02.03.2012, 06:26:37 от psevan »
*

AdWeb

  • Давно я тут
  • 877
  • 31 / 3
а вы уверены что он под 1.7-2.5 работает? Automatic Menu Magic если судить по рус линку там версия 1.5 ток...на оф сайте не нашел описания под какую версию делалось
| Хороший Хостинг | Купить Хикашоп | Каталог перекладів Joomla компонентів
PS. спасибо кидать через вебмани: R152456839841 если плюсикофф не хватает :)
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
На mod_menu свет клином не сошёлся. Используйте, например, модуль Список материалов категории (mod_articles_category).
*

AdWeb

  • Давно я тут
  • 877
  • 31 / 3
это немного не то имхо, либо я не понимаю каким образом сделать из него меню навигации, по типу обычного мод_меню

ЗЫ. сам изначально планировал тоже использовать систему меню=регион-район-населенный пункт-материалы, в итоге структуру упростил до регион-список материалов категории
| Хороший Хостинг | Купить Хикашоп | Каталог перекладів Joomla компонентів
PS. спасибо кидать через вебмани: R152456839841 если плюсикофф не хватает :)
*

olderman

  • Захожу иногда
  • 78
  • 0 / 1
Не смог заставить работать Automatic Menu Magic под Joomla 1.5
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Сделать из него систему навигации просто. Разделим задачи:
Задача раз - разметка:
Копируем файл шаблона в папку хтмл нашего темплейта и переписываем в плоски список (<ul><li><a>)
Задача два - отличительный селектор активному пункту:
Получаем урл текущей страницы, ищем совпадение в древе нашего списка, присваиваем класс или айдишник.
Собственно, больше ничего вроде не нужно.
*

AdWeb

  • Давно я тут
  • 877
  • 31 / 3
если я правильно понял процесс не автоматизирован и надо будет дописывать ручками новые материалы
| Хороший Хостинг | Купить Хикашоп | Каталог перекладів Joomla компонентів
PS. спасибо кидать через вебмани: R152456839841 если плюсикофф не хватает :)
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
если я правильно понял процесс не автоматизирован и надо будет дописывать ручками новые материалы
Почему? Как раз не надо будет. Всё автоматизировано :)
*

strannik-yura

  • Давно я тут
  • 511
  • 44 / 1
  • :)
Почему? Как раз не надо будет. Всё автоматизировано :)
заинтересовался данным решением,
если не затруднит, пример кода
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Ок. Позже напрограмлю.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Собственно, у модуля "Последние новости" разметка как раз правильная разметка и минимум настроек в админке, что не может не радовать новичков. Из настроек выбираем только источник (категорию) и количество выводимых ссылок. Я ввёл 9999. Думаю, должно хватить.
Остаётся добавить только отличительный класс на активный пункт меню. Для этого копируем из modules\mod_articles_latest\tmpl\ в templates\beez_20\html\mod_articles_latest\ файл default.php и заменяем всё на:
Код: php
<?php
defined('_JEXEC') or die;
$url = JURI::getInstance(JURI::current())->getPath();
?>
<ul>
<?php foreach ($list as $item) :
?>
<li>
<a href="<?php echo $item->link; ?>"<?php if ($item->link == $url) {echo ' class="active"';}; ?>>
<?php echo $item->title; ?></a>
</li>
<?php endforeach; ?>
</ul>
Всё.
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
1. Создаёте скрытое меню.
2. Создаёте в нём пункты меню нужной структуры
3. Создаёте меню, которое публикуете на сайте
4. С помощью псевдонимов выводите что нужно, в любом порядке.
Посоветуйте, b]плагин, который при создании материала автоматом добавляет[/b] его в меню?
Желательно для Joomla 3

http://www.derosetechnologies.com/community/joomla-automatic-menu-magic
http://extensions.joomla.org/extensions/extension/site-management/sef/direct-alias-pro
« Последнее редактирование: 29.08.2016, 02:07:56 от leo78 »
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 118 / 9
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Там все по английски Kazaam! Free Edition - Plugin - подходит или надо покупать?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
http://blog.pbelkov.net/2015/08/14/article_to_url/
Я вот такой плагин писал, при сохранении материала в специально назначенном меню создается ссылка на материал
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
beliyadm
Kazaam вроде подходит, у меня 399 материалов уже набито, он все из категории перенёс, хотя названия я хотел менять на свой лад, более того он срабатывает когда из плагин входишь.
« Последнее редактирование: 30.08.2016, 12:21:55 от leo78 »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Вопрос, не кто, не сталкивались с таким:
Если адрес такой:
домен.ru/anime-online/11-eyes.html
- отображает одно

Но если такой:
домен.ru/пп/11-eyes.html
- то может отобразить другой материал или что не найдена такая информация
*

beliyadm

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

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Это конечно не в тему но при использовании JL No Doubles, такое пропадает и правит и отображает верно, но меня не устраивает, что при включённом плагине в редакторе перестаёт работать кнопка вставки материала   


я уже задавал вопрос об этом - не решил проблему
http://joomlaforum.ru/index.php/topic,311192.msg1661942.html#msg1661942
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Автоматическое сжатие фото при загрузке на сайт

Автор Amerikana

Ответов: 13
Просмотров: 4538
Последний ответ 30.06.2022, 11:52:23
от Nikita2705
[Решено] title материалов и категорий без пунктов меню

Автор pharaoh

Ответов: 269
Просмотров: 63290
Последний ответ 03.02.2022, 02:45:26
от globus812
Как добавить описание к пункту меню в Joomla 2.5? (Как у материалов)?

Автор nia

Ответов: 7
Просмотров: 5938
Последний ответ 29.03.2021, 12:10:26
от sivers
В моб версии не откриваються норм меню

Автор umsbeauty

Ответов: 0
Просмотров: 1476
Последний ответ 11.01.2021, 17:55:15
от umsbeauty
Убрать название пункта меню из URL материала

Автор fortuner

Ответов: 15
Просмотров: 8749
Последний ответ 31.10.2020, 00:46:04
от spas