Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 19 Ответов
  • 21966 Просмотров
*

SORE

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Всем добрый день! В Joomla 1.6 в меню появилась такая вкладка "CSS-класс ссылки" Можно ли с её помощью задать конкретному пункту меню например красный цвет?
Вобщем задача состоит в том что есть пункт меню "Машины" и там подкатегории, и нужно одну марку выделить красным цветом! Возможно ли такое?

Машины
- BMW
- OPEL (выделить красным цветом)
- AUDI
« Последнее редактирование: 02.06.2011, 20:09:25 от SORE »
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
Re: Как задать CSS-класс ссылки?
« Ответ #1 : 01.06.2011, 17:01:13 »
Без правки кода или JS - нет.  >:(
*

SORE

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Как задать CSS-класс ссылки?
« Ответ #2 : 01.06.2011, 17:13:17 »
Без правки кода или JS - нет.  >:(
Жаль( а не подскажешь как это можно реализовать с помощью JS или где почитать про это?
*

SORE

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Как задать CSS-класс ссылки?
« Ответ #3 : 02.06.2011, 20:07:28 »
Нашёл решение, но не через меню " CSS класс ссылки" , а именно через CSS стиль меню который находится в папке шаблона, там надо руками каждому item меню прописать свой стиль и все)
подробнее здесь http://joomlaforum.ru/index.php?topic=120223.0
*

Adeptus

  • Завсегдатай
  • 1861
  • 219 / 15
Re: Как задать CSS-класс ссылки?
« Ответ #4 : 02.06.2011, 20:09:29 »
Нашёл решение, но не через меню " CSS класс ссылки" , а именно через CSS стиль меню который находится в папке шаблона, там надо руками каждому item меню прописать свой стиль и все)

Это не РЕШЕНИЕ.

Это КОСТЫЛЬ.
*

SORE

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Это не РЕШЕНИЕ.

Это КОСТЫЛЬ.

Согласен! но это лучше чем ничего) Вопрос для чего нужна вкладка "CSS-класс ссылки" и как ей пользоваться остается актуальной...
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
в настройке пункта меню если возможность вписать класс без правок кода.
« Последнее редактирование: 22.10.2012, 18:55:52 от intcorp »
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
intcorp да, но потом надо вызвать этот параметр в выводе меню. Большинство клубных шаблонов с оверрайдом модулей, и разработчики часто плюют на некоторые опции.
*

beliyadm

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

Shustry

  • Moderator
  • 6434
  • 745 / 3
beliyadm, здесь (modules\mod_menu\tmpl\ или modules\mod_mainmenu\tmpl\) он есть, а здесь (templates\$template\html\mod_menu\default.php) его может и не быть, если шаблон клубный или вообще какой-нить левый. Для кого-то это видимо проблема.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
beliyadm, здесь (modules\mod_menu\tmpl\ или modules\mod_mainmenu\tmpl\) он есть, а здесь (templates\$template\html\mod_menu\default.php) его может и не быть, если шаблон клубный или вообще какой-нить левый. Для кого-то это видимо проблема.
Да, факт, не подумал
ненавижу клубные шаблоны
проще сверстать самому, нежели разбирать все эти клубные и их подводные камни
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

sanswed

  • Новичок
  • 1
  • 0 / 0
Всем привет! Отвечаю на вопрос "Как задать CSS-класс одного пункта меню?".

Вариант 1. Простой

1. Открываем "Панель управления->Менеджер шаблонов";
2. Перед нами таблица (список) шаблонов. Переходим по ссылке в столбце "Шаблон" искомого шаблона;
3. Откроется шаблон, где будут представлены различные данные, разбитые по блокам. Нас интересует блок "Таблицы стилей";
4. Переходим по ссылке одного из стилей. У меня ссылка называется "Изменить css/template.css";
5. Добавляем нужный класс и сохраняем.


Вариант 2. Сложный
отличается от предыдущего только тем, что нужный нам класс\стиль мы выносим в свой личный, отдельный файл, дабы не вносить изменений в исходные css-файлы Joomla. Это для тех, кому покой только снится :)

Для этого нужно:
1. Выполнить вход по FTP-протоколу на сервер;
2. Открыть css-папку, из которго наш шаблон подтягивает все css-стили. У меня папка находится вот здесь: "/public_html/templates/my_template/css/" ;
3. Создаём там собственный css-файл. Но это не всё, к сожалению. Теперь нужно сделать так, чтобы наш шаблон видел этот файл, т.е. сделать include;
4. Входим в CMS. Там открываем "Панель управления->Менеджер шаблонов";
5. Переходим по ссылке в столбце "Шаблон" искомого шаблона;
6. Далее, в блоке "Основные файлы шаблона" переходим по ссылке "Изменить шаблон главной страницы";
7. И теперь наша задача аккуратно включить созданный css-файл по подобию того, как это сделано с другими css-файлами данного шаблона;
8. Лично у меня за включение css-файла отвечает строка:
Код
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/user_style.css" type="text/css" />
Но внимание! вначале найдите похожие строки в исходном коде, и только убедившись (7 раз отмерь) вставляйте свой код;
9. Сохраните. Теперь надо проверить всё ли корректно было сделано. Для этого перейдите на шаг назад, т.е. на карточу вашего шаблона. Там блоке "Таблицы стилей" должен появиться ваш файл. Если этого не произошло, значит ... что-то не так сделали на одном из шагов, описанных мною;
10. Если же всё ок, то можете перейти по ссылке добавленнома css-стиля и внести изменения.

Спасибо, пожалуйста.

Всё написанное сделано на Joomla  2.5.6

P.S. 5 лет программировал на C, C++ и Visual C++ . Сегодня, за 2 ч. узнал что такое CSS и вновь, на интуитивном уровне, разбирался с Joomla. Потратил время, но зато бесплатно)) Жертвуем временем, экономим деньги... Хотя это спорно)
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
За подробной мануал и потраченное время респект. Только он ни разу не по теме и задачу никак не решает ^-^.
*

Rio74

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Всё написанное сделано на Joomla  2.5.6
Громко сказано, ведь все шаблоны разные и оба варианта могут не подойти, например в моем шаблоне так не получится сделать, потому что файл template.css в принципе отсутствует.
*

beliyadm

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

l.akkermann

  • Новичок
  • 4
  • 0 / 0
Подниму тему, вновь расписываясь в своём невежестве, ну а что поделаешь.

http://mammamia-pizza.ru/index.php

Вверху есть меню. Как видно при исследовании элемента, за визуальный стиль отвечает файл mega.css.
Там же можно увидеть id каждого из пунктов - например, "Контакты" имеет запись <a href="/kontakty" class="mega" id="menu523" title="Контакты">
Открываю файл mega.css

Вижу код в самом начале:


Код
.ja-megamenu a.over, .ja-megamenu a.active { color: #cf4e33; }

/* 0v - 0 and below
-----------------------------------*/
.ja-megamenu ul.level0 {
font-family: "DroidSerifRegular", Arial, sans-serif;
}
.ja-megamenu ul.level0 > li.mega {
background: url(../../images/nav-sep.png) no-repeat right center;
padding: 0;
position: relative;
}

Ну думаю, нашёл!

Добавляю свой.. и вот тут проблема. Я явно не могу понять, как упомянуть корректно конкретный id.
Вот так вот пробовал и слитно, и раздельно, и не помню уже как ещё. Не работает.
Код
.ja-megamenu ul.level0 > li.mega.id523 {
padding: 0;
position: relative;
background-color: red;
}

Помогите. :(

p.s: полный файл css
*

l.akkermann

  • Новичок
  • 4
  • 0 / 0
Спасибо огроменное! :)
*

addrss

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Я сделал так (Joomla 3):

1. Узнаем ID пункта меню. (смотрим в менеджере меню, у каждого пункта есть уникальный ID)
В моём случае это «1446»

2. Добавляем нужный класс и стили в CSS
В моём случае это:

Код
a.item-1446{
color:red!important;
font-weight:bold!important;
}

3. В админке в нужном пункте меню в поле «CSS-класс ссылки» пишем «item-1446»

Если не получается, то можно так попробовать:

1. Узнаем ID пункта меню.

2. Смотрим, как он выводится в HTML-разметке
В моём случае это

Код
<li class="item-1446"><a class="item-1446" href="/price">Прайс</a></li>

3. Добавляем нужный класс и стили в CSS
В моём случае это:

Код
#mainmenu .navbar-inner ul.nav > li > a.item-1446{
color:red!important;
font-weight:bold!important;
}

4. В админке в нужном пункте меню в поле «CSS-класс ссылки» пишем «item-1446»

Профит
« Последнее редактирование: 26.12.2015, 13:56:16 от addrss »
*

beliyadm

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

Кликабельность псевдоэлемента в пункте меню

Автор vasilii.pupkov

Ответов: 4
Просмотров: 5031
Последний ответ 29.12.2021, 23:15:38
от v42bis
Выпадающее меню

Автор DrShepard

Ответов: 10
Просмотров: 4319
Последний ответ 20.10.2021, 12:36:16
от DrShepard
Как закруглить края выпадающего меню?

Автор coliandra

Ответов: 1
Просмотров: 2758
Последний ответ 11.12.2020, 21:15:57
от effrit
При прокрутке страницы виджет залезает на меню

Автор coliandra

Ответов: 2
Просмотров: 2549
Последний ответ 27.11.2020, 11:33:58
от coliandra
Как убрать маркер только из одного пункта меню.

Автор kuraev64

Ответов: 2
Просмотров: 2678
Последний ответ 20.07.2020, 11:18:44
от kuraev64