Новости Joomla

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

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

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

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

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

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

🏆 Открыто голосование за 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 Гость просматривают эту тему.
  • 0 Ответов
  • 1843 Просмотров
*

asterixxl

  • Новичок
  • 3
  • 0 / 0
Закрывается меню при переходе на подкатегорию, модуль omgmenu


Прошу помощи.


CSS omgmenu
Код
/**
* @version $Id: omgmenu.css 45 2013-04-11 09:45:18Z linhnt $
* @package OMG Template Framework for Joomla! 2.5
* @subpackage mod_omgmenu
* @copyright Copyright (C) 2009 - 2013 Omegatheme. All rights reserved.
* @license GNU/GPL version 2, or later
* @website: http://www.omegatheme.com
* Support Forum - http://www.omegatheme.com/forum/
*/

/* this for dropdown on desktop */

.otmenu-desk-wrapper .ot-menu,
.otmenu-desk-wrapper .ot-menu ul{
padding: 0;
margin: 0;
}
.otmenu-desk-wrapper .ot-menu ul,
.otmenu-desk-wrapper .ot-menu{
list-style: none;
}
.otmenu-desk-wrapper .ot-menu li {
margin: 0;
padding: 0;
position: relative;
}
.otmenu-desk-wrapper .ot-menu li li{
    cursor: pointer;
    display: block;
}
.otmenu-desk-wrapper .ot-menu li.divider,
.otmenu-desk-wrapper .ot-menu li.separator {
cursor: default;
}

.otmenu-desk-wrapper .ot-menu li a,
.otmenu-desk-wrapper .ot-menu li a:hover {
text-decoration: none;
}
.otmenu-desk-wrapper .ot-menu li img,
.otmenu-desk-wrapper .ot-menu li a img{
max-height: 150px;
max-width: 95%;
}
.ot-menu img.item-icon {
    max-height: 80px !important;
    max-width: 80px !important;
}
.otmenu-desk-wrapper .ot-menu li li a{
display: block;
}
/*================= root level 1 ===============*/
/* level 1 general */
.otmenu-desk-wrapper .ot-menu li.level1{
float: left;
}
.rtl .otmenu-desk-wrapper .ot-menu li.level1{
float: right;
}

/* level 1 typo */

.otmenu-desk-wrapper .ot-menu li.level1{
border: 0 none;
}
.otmenu-desk-wrapper .ot-menu a.level1 {
    display: block;
    margin: 0;
padding: 10px;
}
.otmenu-desk-wrapper .ot-menu a.level1 span{
margin: 0;
padding: 0;
}


/* level 1 sub */

.otmenu-desk-wrapper .ot-menu .submenu-wrap {
float: left;
margin: 0;
padding: 0;

position: absolute;
/*left: -999em;*/
top: 0.1em;
z-index: 9999;

display: none;
visibility: hidden;

}
.rtl .otmenu-desk-wrapper .ot-menu .submenu-wrap { float: right; }

.otmenu-desk-wrapper .ot-menu .submenu-wrap-ii {
margin: 0;
padding: 0;
}

/* level 1 sub drop action */
.otmenu-desk-wrapper .ot-menu li.hover .submenu-wrap,
.otmenu-desk-wrapper .ot-menu li:hover .submenu-wrap{
left: auto;
}

/* ------ The sub --------*/

/* the sub notColumn */

/* .otmenu-desk-wrapper .ot-menu .notColumn .submenu-wrap,
.otmenu-desk-wrapper .ot-menu .notColumn .submenu-wrap .submenu-wrap{
position: absolute;
} */
.otmenu-desk-wrapper .ot-menu .notColumn li:hover .submenu-wrap,
.otmenu-desk-wrapper .ot-menu .notColumn li.hover .submenu-wrap,
.otmenu-desk-wrapper .ot-menu .notColumn .submenu-wrap li:hover .submenu-wrap,
.otmenu-desk-wrapper .ot-menu .notColumn .submenu-wrap li.hover .submenu-wrap{
/* left: 200px; */
position: absolute;
/* top: 0.1em; */
}

.rtl .otmenu-desk-wrapper .ot-menu .notColumn li:hover .submenu-wrap,
.rtl .otmenu-desk-wrapper .ot-menu .notColumn li.hover .submenu-wrap,
.rtl .otmenu-desk-wrapper .ot-menu .notColumn .submenu-wrap li:hover .submenu-wrap,
.rtl .otmenu-desk-wrapper .ot-menu .notColumn .submenu-wrap li.hover .submenu-wrap{
/* right: 200px; */
}

.otmenu-desk-wrapper .ot-menu .hasColumn .submenu-column .notColumn > .submenu-wrap,
.otmenu-desk-wrapper .ot-menu .hasColumn:hover .submenu-column .notColumn > .submenu-wrap,
.otmenu-desk-wrapper .ot-menu .hasColumn.hover .submenu-column .notColumn > .submenu-wrap {
position: absolute;
display: none;
padding: auto;
border: 1px solid #DDDDDD;
}

/* li hasColumn */
.otmenu-desk-wrapper .ot-menu li.hasColumn {
float: left;
margin: 0;
padding: 0;
position: relative;
}
.rtl .otmenu-desk-wrapper .ot-menu li.hasColumn {
float: right;
}
.otmenu-desk-wrapper .ot-menu li.hasColumn .submenu-column {
float: left;
margin: 0;
padding: 0;
}
.otmenu-desk-wrapper .ot-menu li.hasColumn .submenu-column .submenu-wrap,
.otmenu-desk-wrapper .ot-menu li.hasColumn:hover .submenu-column .submenu-wrap,
.otmenu-desk-wrapper .ot-menu li.hasColumn.hover .submenu-column .submenu-wrap {
visibility: visible;
display: block;
position: relative;
float: left;
margin: 0;
padding: 0;
top: 0;
}

/* ============ fixed right edge issue =========== */
.submenu-wrap.edge-right {
/*right: auto !important;*/
left: auto !important;
}

.rtl .submenu-wrap.edge-left {
/*right: auto !important;*/
right: auto !important;
}


/* ================= General STYLE - depends on design ==============*/
.otmenu-desk-wrapper .ot-menu li:hover {
background-color: #F9F9F9;
}
.otmenu-desk-wrapper .ot-menu li.level1 {

}
.otmenu-desk-wrapper .ot-menu a.level1 {
    font-size: 15px;
font-weight: normal;
text-align: center;
    text-transform: uppercase;

height: 40px; /* depends on design */
}
.otmenu-desk-wrapper .item-desc {
    font-size: 11px;
    text-transform: none;
}
.otmenu-desk-wrapper .ot-menu .submenu-wrap {
border: 1px solid #ddd;
background: #F5F5F5;
border-radius: 3px;
}
.otmenu-desk-wrapper .ot-menu li.level1 > .submenu-wrap {
top: 50px; /* depends on design */
}

.otmenu-desk-wrapper .ot-menu .submenu-wrap-ii {

}
.otmenu-desk-wrapper .ot-menu li li{
/* border-top: 1px solid #ddd; */
}
.otmenu-desk-wrapper .ot-menu li li.first {
border-top: 1px none;
}
.otmenu-desk-wrapper .ot-menu li.hasColumn {
border-top: 1px none;
background-color: transparent;
}
.otmenu-desk-wrapper .ot-menu .submenu-column a {
background-color: transparent;
}
.otmenu-desk-wrapper li.hasColumn .columnTitle {
font-weight: bold;
}
.otmenu-desk-wrapper .ot-menu li.hasColumn .submenu-column {
background-color: #EEE;
}
.otmenu-desk-wrapper .ot-menu li.hasColumn .submenu-column .submenu-wrap,
.otmenu-desk-wrapper .ot-menu li.hasColumn:hover .submenu-column .submenu-wrap,
.otmenu-desk-wrapper .ot-menu li.hasColumn.hover .submenu-column .submenu-wrap {
border: 0 none;
margin: 0 !important;
padding: 0 !important;
}
.otmenu-desk-wrapper .ot-menu li li {
background-color: #FFF;
border-radius: 3px;
margin: 2px 0;
}
.otmenu-desk-wrapper .ot-menu li li a,
.otmenu-desk-wrapper .ot-menu li li .item-separator {
padding: 3px;
display: block;
}
$(document).ready(function() {
    var timer;
    $('.menu > li').hover(
        function() {
            var $that = $(this);
            timer = setTimeout(function(){
                $that.addClass("active");
                $that.find('ul').finish().slideDown('slow');
            },1000); // 1000 - одна секунда до срабатывания (изменить значение на своё)
        },
        function() {
            clearTimeout(timer);
            $(this).removeClass("active");
            $(this).find('ul').finish().slideUp('slow');
        }
    );
});
/* END */

omgmenu.jq.js
Код
/**
* @version $Id: omgmenu.jq.js 46 2013-04-11 09:48:03Z linhnt $
* @package OMG Template Framework for Joomla! 2.5
* @subpackage mod_omgmenu
* @copyright Copyright (C) 2009 - 2013 Omegatheme. All rights reserved.
* @license GNU/GPL version 2, or later
* @website: http://www.omegatheme.com
* Support Forum - http://www.omegatheme.com/forum/
*/

// dropdown menu for desktop layout
;(function($){

// core function
$.fn.otmenu = function(options){
var otmenu = $.fn.otmenu;

return this.each(function(){
var opt = $.extend({}, otmenu.defaults, options);


$(this).find("li").each(function(){
var hasChild = $(this).hasClass('hasChild');
var subWrapper = $(this).find('.submenu-wrap:first').eq(0);

$(this).hover(
function(){
$(this).addClass(opt.hoverClass);
if ($(this).hasClass('hasColumn')) return;



if (hasChild){
if (/msie [1-7]./.test(navigator.userAgent.toLowerCase()) === false)
{ // Not IE 7
var containerWidth = $("body").width();

if (opt.direction == 'ltr')
{
if ($(this).hasClass('level1')){
var startAtRight = ((containerWidth - $(this).offset().left) < $(subWrapper).width()) && (($(this).offset().left + $(this).width()) > $(subWrapper).width());
// var startAtRight = (containerWidth - $(subWrapper).width() - $(this).offset().left < 0) || ($(this).offset().left < $(subWrapper).width());
}
else{
var startAtRight = ((containerWidth - $(this).offset().left - $(this).width()) < $(subWrapper).width()) && ($(this).offset().left > $(subWrapper).width());
}

if (startAtRight){
// var theRight = containerWidth - $(this).offset().left + ($(subWrapper).width() - (containerWidth - $(this).offset().left));
if ($(this).hasClass('level1')){
var theRight = 0;
} else {
var theRight = containerWidth - $(this).offset().left + ($(subWrapper).width() - (containerWidth - $(this).offset().left));
}

$(subWrapper).addClass('edge-right').css({right: theRight, visibility: "visible",display: "none"});
}
else {
if ($(subWrapper).parents('.submenu-wrap').size() > 0){
var theLeft = $(subWrapper).parents('.submenu-wrap').eq(0).width();
$(subWrapper).css({left: theLeft,visibility: "visible",display: "none", right: 'auto'});
}
else {
if (((containerWidth - $(this).offset().left) < $(subWrapper).width()) && (($(this).offset().left + $(this).width()) < $(subWrapper).width())) {
// var theLeft = ($(subWrapper).width() - containerWidth) / 2;
// var theLeft = containerWidth - $(subWrapper).width() - $(this).offset().left - 15;
var theLeft = ((containerWidth - $(subWrapper).width()) / 2 ) - $(this).offset().left;
$(subWrapper).css({left: theLeft, visibility: "visible",display: "none", right: 'auto'});
} else {
$(subWrapper).css({left: 'auto', visibility: "visible",display: "none", right: 'auto'});
}
}
}
}
else {
// var startAtLeft = ($(subWrapper).width() > $(this).offset().left) && $(subWrapper).width() < (containerWidth - $(this).offset().left);
var startAtLeft = ($(subWrapper).width() > ($(this).offset().left + $(this).width())) && $(subWrapper).width() < (containerWidth - $(this).offset().left);

if (startAtLeft){
if ($(this).hasClass('level1')){
var theLeft = 0;
} else {
var theLeft = $(this).parents('.submenu-wrap').eq(0).width();
}
$(subWrapper).addClass('edge-left').css({left: theLeft, visibility: "visible",display: "none"});
}
else {
if ($(subWrapper).parents('.submenu-wrap').size() > 0){
var theRight = $(subWrapper).parents('.submenu-wrap').eq(0).width();
$(subWrapper).css({right: theRight,visibility: "visible",display: "none", left: 'auto'});
// $(subWrapper).css({width: containerWidth - $(this).offset().left});
}
else{
if (($(subWrapper).width() > ($(this).offset().left + $(this).width())) && $(subWrapper).width() > (containerWidth - $(this).offset().left)) {
// var theRight = $(this).width() - (((containerWidth - $(subWrapper).width()) / 2 ) - $(this).offset().left) - $(subWrapper).width();
// $(subWrapper).css({right: theRight,visibility: "visible",display: "none", left: 'auto'});
var theLeft = ((containerWidth - $(subWrapper).width()) / 2 ) - $(this).offset().left;
$(subWrapper).css({left: theLeft, visibility: "visible",display: "none", right: 'auto'});
} else {
$(subWrapper).css({right: 'auto', visibility: "visible",display: "none", left: 'auto'});
}
}
}
}

} else { // IE 7

if (opt.direction == 'ltr'){
if ($(subWrapper).parents('.submenu-wrap').size() > 0){
var theLeft = $(subWrapper).parents('.submenu-wrap').eq(0).width();
$(subWrapper).css({left: theLeft,visibility: "visible",display: "none"});
}
else {
$(subWrapper).css({left: 'auto', visibility: "visible",display: "none"});
}
}
else {
if ($(subWrapper).parents('.submenu-wrap').size() > 0){
var theRight = $(subWrapper).parents('.submenu-wrap').eq(0).width();
$(subWrapper).css({right: theRight,visibility: "visible",display: "none"});

}
else{
$(subWrapper).css({right: 'auto', visibility: "visible",display: "none"});
}
}

}

$(subWrapper).animate(opt.animation,opt.speed);
}
},
function(){
$(this).removeClass(opt.hoverClass);
if ($(this).hasClass('hasColumn')) return;
if (hasChild){
$(subWrapper).removeClass('edge-right').removeClass('edge-left').hide();
}

}
);
});
});
};

// init and calls
var otmenu = $.fn.otmenu;
otmenu.options = {};

otmenu.defaults = { // default options
// language direction
direction: 'ltr',
// li classes
hoverClass: 'hover',
// effects
delay: 400, // delay
animation: {opacity:"show"}, // the animation effect, eg: opacity:"show",height:"show"
speed: 'normal' // speed to show animation
};

})(jQuery);


// sliding up/down menu for tablet and mobile layout
;(function($){

// core function
$.fn.otslmenu = function(options){
var otslmenu = $.fn.otslmenu;

return this.each(function(){
var opt = $.extend({}, otslmenu.defaults, options);

$(this).find("li").each(function(){
if ($(this).hasClass('hasColumn')) return;
var subWrapper = $(this).find('.submenu-wrap:first').eq(0);
var subHandler = $(this).find('.toogle-btn:first').eq(0);
if($(this).hasClass('active')){
$(subWrapper).slideToggle(opt.speed, function(){
$(subHandler).toggleClass(opt.openedHandlerClass).toggleClass(opt.closedHandlerClass);
$(this).toggleClass(opt.openClass);

});
}
$(subHandler).click(function(){
$(subWrapper).slideToggle(opt.speed, function(){
$(subHandler).toggleClass(opt.openedHandlerClass).toggleClass(opt.closedHandlerClass);
$(this).toggleClass(opt.openClass);

});
});
});
});
};

// init and calls
var otslmenu = $.fn.otslmenu;
otslmenu.options = {};

otslmenu.defaults = { // default options
// li classes
openClass: 'open',
openedHandlerClass: 'icon-minus-sign',
closedHandlerClass: 'icon-plus-sign',
// effects
delay: 400, // delay
speed: 'normal' // speed to show animation
};

})(jQuery);
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

убрать из меню заголовки h3

Автор nexter

Ответов: 19
Просмотров: 9230
Последний ответ 03.02.2020, 18:49:47
от durte
При добавлении нового пункта меню не отображается содержимое

Автор Denko

Ответов: 2
Просмотров: 4210
Последний ответ 16.01.2020, 18:40:55
от Denko
Не нажимается пункт меню на мобильной версии

Автор Sensession

Ответов: 7
Просмотров: 5883
Последний ответ 04.01.2020, 16:45:27
от xpank
Не отображаются пункты в меню

Автор physic

Ответов: 20
Просмотров: 24542
Последний ответ 20.09.2019, 16:54:01
от beliyadm
Как в ARI Ext Menu добиться работы параметра "Показать в меню"?

Автор vasmed

Ответов: 1
Просмотров: 4593
Последний ответ 01.03.2019, 11:12:18
от vasmed