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

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Есть якобы решение тут
Однако мне не подходит((

Имеется 1-е меню:
- раздел1
- - категория1
- - категория2
- раздел2
- - категория3
- - категория4

Нужно 2-е меню
- раздел1
- - категория5
- - категория6

Необходимо скопировать пункт 'раздел1' в другое меню с тем же алиасом. В J1.5 это делается без проблем, в J2.5 к алиасу добавляется цифра 1, так - /razdel1-1 (прописать вручную тоже нельзя). Если же использовать тип меню - Псевдоним, то ссылка на 'категория5' и на 'категория6', будет вида /2012-04-05-00-17-42/kategoriya5 , вместо того чтобы быть такой - /razdel1/kategoriya5

Единственное что придумалось - ручками править БД (ессесно при пересохранении снова /2012-04-05-00-17-42/kategoriya5)

Очень хочется обойтись без сторонних SEF расширений, поэтому приветствуются любые мысли.
« Последнее редактирование: 06.04.2012, 15:03:05 от ELLE »
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
А если выбрать пункт меню как для сторонней ссылки - внешняя ссылка кажется - и тупо забить туда нужную с алиасами?))) Единственное что с подсветкой пунктов будет малость неувязочка...
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
А если выбрать пункт меню как для сторонней ссылки - внешняя ссылка кажется - и тупо забить туда нужную с алиасами?)))
хех, так тоже не получится)) ссылка такая же - /2012-04-05-00-17-42/kategoriya5
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Необходимо скопировать пункт 'раздел1' в другое меню с тем же алиасом. В J1.5 это делается без проблем, в J2.5 к алиасу добавляется цифра 1, так - /razdel1-1 (прописать вручную тоже нельзя). Если же использовать тип меню - Псевдоним, то ссылка на 'категория5' и на 'категория6', будет вида /2012-04-05-00-17-42/kategoriya5 , вместо того чтобы быть такой - /razdel1/kategoriya5
ссылка будет такой же как и алиас пункта меню 'категория5' и 'категория6'.
и причем здесь раздел?
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
менюшки разные или одно меню с подразделами?
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
ссылка будет такой же как и алиас пункта меню 'категория5' и 'категория6'.
и причем здесь раздел?
SmokerMan, попробуй сначала, потом расскажешь ;)
первое меню
 - пункт номер раз (блог категории, материал - не важно) (алиас - punkt-nomer-paz)
второе меню
 - пункт номер раз (псевдоним или внеш. ссылка - не важно) (алиас - цифры, оно же дата, подставляется автоматом)
 - - - подпункт (блог категории, материал - не важно) (алиас - podpunkt)
публикуем второе меню, ссылка на подпункт вида - /2012-04-05-00-17-42/podpunkt, а должно быть /punkt-nomer-paz/podpunkt
« Последнее редактирование: 05.04.2012, 23:35:18 от ELLE »
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Проверил разные способы, пока идея только одна...

В меню_1 делаем раздел_1 все категории и категория_5 и категория_6 (но 5 и 6 не публикуем) а потом в  меню_2 создаем псевдоним раздела_1, в нем псевдонимы категория_5 и категори_6
В итоге имеем : в меню_1 видно все кроме категорий 5 и 6, а в меню_2 видно только категории 5 и 6 - ссылки с родным SEF нормальные, проверил (никаких 2012-04-05-00-17-42 нет)
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Marques, а вот тут самое интересное)))
модуль меню сворачивается на втором уровне если меню на псевдонимах)) а уровней больше чем 2
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Не, все равно не прокатило, если не публиковать в основном (не псевдоним) - то псевдоним из меню_2 - ведет на 404...
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Вся загвоздка в том что Joomla не допускает одинаковые алиасы корневого пункта меню, подменю - копируются нормально.
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
А в меню_2 пункт раздел_1 обязательно должен быть кликабельным ? Может его просто сделать разделителем ?
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Попробовал. ну да косяк, походу)
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
А в меню_2 пункт раздел_1 обязательно должен быть кликабельным ? Может его просто сделать разделителем ?
не, разделитель тоже не разрешает сохранить с тем же алиасом

Не, все равно не прокатило, если не публиковать в основном (не псевдоним) - то псевдоним из меню_2 - ведет на 404...
да можно и опубликовать - нет проблем, и создать второе меню полностью на псевдонимах с 2-3 уровнями, но модуль меню не будет раскрываться если мы зайдем в какой-нибудь раздел и/или подсвечивать активные пункты даже если это корень.
Попробовал. ну да косяк, походу)
мда(( и теперь надо или хакать J, или править сам модуль меню - чтобы оно работало на псевдонимах, раскрывалось при переходе в глубь(вообще это реально?)....
Вообщем пока в БД правлю эти цифры - это работает, но только до того момента пока кто-нибудь не залезет в эти пункты и не пересохранит их.
И последний вариант...вернутся на 1.5, что довольно проблематично уже будет((
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Что-то с пунктами меню, да и вообще с SEF косяков немало в 2.5... Тут со списком всех категорий была проблема, J не хотела формировать правильную ссылку, отсебятину порола... мдя... может к версии 2.5.10 или 2.5.20 допилят :)
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Marques, вообще-то уже 2.5.4 :), точнее последний раз было обновление 2.5.4.1 после которого у меня к одному разделу добавилось Joomla! Update, выглядело это так - site.ru/Joomla!%20Update/blog/article
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Вообщем пока в БД правлю эти цифры - это работает, но только до того момента пока кто-нибудь не залезет в эти пункты и не пересохранит их.
И последний вариант...вернутся на 1.5, что довольно проблематично уже будет((
Просто при сохранении пункта они видимо не учли такую ситуацию и у него путь неправильно формируется
Поле path таблицы #__menu
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Поле path таблицы #__menu
ага, оно самое...просто я в БД сижу уже как в админке)) и чую что это не вариант, при любом изменении все рухнет
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Marques, вообще-то уже 2.5.4 :), точнее последний раз было обновление 2.5.4.1 после которого у меня к одному разделу добавилось Joomla! Update, выглядело это так - site.ru/Joomla!%20Update/blog/article

То что 2.5.4 - это мне известно ;) (http://joomlaforum.ru/index.php/topic,210519.0.html)
А вот 2.5.4.1 - это уже не Joomla, а русский языковой пакет (ru-RU_joomla_lang_full_2.5.4v1)
я просто сравнил номер последней версии 1.5 - 1.5.26 вот и думаю, раз у линейки 1.5 аж целых 26 обновлений было, то и линейку 2.5 ждет что-то подобное. Потому и написал... исправят где-то к 2.5.10 или 2.5.20 уж точно. :)
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Есть одно мысль, нужно попробовать.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Вчера все вспоминала... Прямо дежавю. Недавно же делала такое! Был точно такой же косяк, но я осилила. Создавала псевдонимы, и тоже два разных меню было - верхнее и боковое.

Сначала был такой же косяк. Потом заметила, что косит, если заблокированы в момент создания то ли материалы, то ли пункты меню, на который псевдоним делала... Все разблокировала, перезаписала алиасы еще раз, и все устаканилось. Но вчера пробовала на версии    Joomla! 2.5.0 Stable [ Ember ] и нифига у меня не вышло....

К сожалению, версии движка точной не помню, сайт был не мой, так, подработка мелкая... уже и домена не помню...  Но получилось.   Так что это баг от версии к версии...(((
« Последнее редактирование: 06.04.2012, 09:33:50 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Цитировать
Потом заметила, что косит, если заблокированы в момент создания то ли материалы, то ли пункты меню, на который псевдоним делала... Все разблокировала, перезаписала алиасы еще раз, и все устаканилось.
не, Taatshi, у меня ничего не блокировалось, всё опубликовано.

что баг понятно...вопрос что делать..  :(
« Последнее редактирование: 06.04.2012, 15:13:41 от ELLE »
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Пока сделала 2 меню - основное, с алиасами как мне нужно; и второе, опубликованное - на псевдонимах до 3-х уровней.
Косяк в том, что меню на псевдонимах не разворачивается при переходе в глубь.

Если кто-то может подправить модуль меню - пишите в ЛС срочно, буду безмерно благодарна :)
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
 *DRINK*
------------------
харэ флудить  ;)
« Последнее редактирование: 07.04.2012, 02:18:15 от ELLE »
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
« Последнее редактирование: 07.04.2012, 02:45:07 от Marques »
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Я по делу пост оставлял (( Писать лениво было (( Так что:

Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

Marques

  • Завсегдатай
  • 1410
  • 190 / 9
  • Ctrl+F5
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
по моему вы чуть-чуть гоните ))
1-е меню:
- раздел1
- - категория1
- - категория2
............

2-е меню
- раздел1
- - категория5
- - категория6

не опечатка это, что раздел один надо, а в двух менюшках разные подразделы? Если не опечатка, ТО:

1. эти разделы (razdel1, razdel2, ...) выносите совсем в другое меню, которое у вас совсем не будет видно на сайте и подразделы в этом-же меню заводите.
2. и в первом и во втором меню создаёте нужную структуру этих разделов как псевдонимы.
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
да era, все так - сейчас и сделала на псевдонимах, НО меню не разворачивается при переходе в глубь!
(можно только совсем полностью развернуть)
« Последнее редактирование: 07.04.2012, 06:51:54 от ELLE »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Вобще в модуле меню не хватает опции - скрывать лишние пункты меню. Так бы можно было сделать одно общее меню, и два модуля, настроенных по разному...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Алиас пункта меню совпадает с именем подкаталога в каталоге с сист.файлами

Автор Andrey N.

Ответов: 14
Просмотров: 3232
Последний ответ 07.10.2021, 23:57:15
от Garrr
Главное меню

Автор Анастасия87

Ответов: 7
Просмотров: 1570
Последний ответ 21.05.2021, 08:40:40
от arma
[РЕШЕНО] Как в Joomla 2.5 автоматом удалять пользователей, не активировавшихся?

Автор pH43

Ответов: 2
Просмотров: 3661
Последний ответ 01.06.2020, 17:16:26
от pH43
Как сократить вертикальное расстояние между меню сайта и баннером?

Автор MultiMatrix83

Ответов: 2
Просмотров: 1424
Последний ответ 16.02.2020, 19:30:25
от MultiMatrix83
Редактирование Модуля - в меню не удаляется пункт

Автор bovinkm

Ответов: 4
Просмотров: 1617
Последний ответ 16.08.2019, 15:00:22
от bovinkm