Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями 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 Гость просматривают эту тему.
  • 11 Ответов
  • 1573 Просмотров
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Помогите пожалуйста решить или укажите направление для решения..
 В статье http://tattooroman.com/permanent-makeup/tatuazh-brovey/protsedura-tatuazha-brovey в самом низу стоит ссылка на якорь("FOTO"). Якорь на главной, в одном из разделов.
Так вот, нажимая на ссылку, раздел открывается, но не до конца. В чём может быть задержка??
Joomla 3.х
Заранее благодарен любому ответу!
« Последнее редактирование: 17.11.2014, 17:18:03 от rom »
*

dimat84

  • Давно я тут
  • 517
  • 20 / 0
Re: Не до конца срабатывает якорь
« Ответ #1 : 07.11.2014, 01:19:57 »
Все нормально открывается
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #2 : 07.11.2014, 02:06:25 »
Извиняюсь, я сразу не обратил внимание - я тестировал на Мазиле.
В Мазиле открывается вот так


т.е. не показывает папки с фотками, которые должны быть справа, как на этой фотке:


На Chrome и Opera вообще открывает только главную и всё.
Задача, чтобы перейти по ссылке и сразу попасть на открывшийся раздел "Мои работы"
« Последнее редактирование: 07.11.2014, 02:15:08 от rom »
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Не до конца срабатывает якорь
« Ответ #3 : 07.11.2014, 11:26:01 »
на главной в коде нет метки на которую ссылается якорь
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #4 : 07.11.2014, 15:14:26 »
на главной в коде нет метки на которую ссылается якорь

Как это сделать? поделитесь пожалуйста
*

umbabaraumba

  • Живу я здесь
  • 2415
  • 153 / 1
  • если помог можете поставить +
Re: Не до конца срабатывает якорь
« Ответ #5 : 07.11.2014, 15:22:48 »
Вот так
Errare humanum est
Ubuntu по-русски
Пишу не сложные модули и компоненты, не дорого но не срочно
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #6 : 07.11.2014, 17:31:05 »
Вот так

я так уже пытался сделать, но видать опыта мало, поэтому не уверен точно в какой файл и куда вставить метку.
пробовал поочерёдно вставлять в этот код(по логике в него надо) там где надпись " -ВСТАВЛЯЛ СЮДА-". Файл "gallery.php" в папке шаблона:
Код
<?php defined( '_JEXEC' ) or die; ?>
<?php

// Get a db connection.
$gallerydb = JFactory::getDbo();
 
// Create a new query object.
$query = $gallerydb->getQuery(true);
 
$query->select($gallerydb->quoteName(array('id','ttstudio_title','ttstudio_image','ttstudio_orderid','state')));
$query->from($gallerydb->quoteName('#__ttstudio_galleries'));
$query->order($gallerydb->quoteName('ttstudio_orderid'));

// Reset the query using our newly populated query object.
$gallerydb->setQuery($query);
$galleryresults = $gallerydb->loadRowList();

?>

<div class="gallery"> -ВСТАВЛЯЛ СЮДА-
<?php foreach ($galleryresults as $row) : ?>
<?php if ($row[4] == 1) { ?>
<?php if ($portfolioimghide == 0) { ?>     
    <figure>  -ВСТАВЛЯЛ СЮДА-
        <a -ВСТАВЛЯЛ СЮДА- class="gallery<?php echo $row[0]; ?>" data-title="<?php echo $row[1]; ?>" href="<?php echo $row[2]; ?>">
            <img src="<?php echo $row[2]; ?>" alt="">
        </a>  -ВСТАВЛЯЛ СЮДА-
        <figcaption> -ВСТАВЛЯЛ СЮДА-
            <span><?php echo $row[1]; ?></span>
        </figcaption>
    </figure>
<?php } else { ?> 
    <a class="gallerylink gallery<?php echo $row[0]; ?>" href="<?php echo $row[2]; ?>" data-title="<?php echo $row[1]; ?>"><?php echo $row[1]; ?></a><br/>
<?php } ?>   
<script type="text/javascript">
jQuery(function($) {
$(".gallery<?php echo $row[0]; ?>").swipebox({hideBarsDelay : <?php if (!empty($swipeboxautohide)) { echo $swipeboxautohide . '000'; } else { echo '0'; } ?>});
});
</script>   
<?php } ?>   
<?php endforeach; ?>   
</div>

<?php

// Get a db connection.
$itemsdb = JFactory::getDbo();
 
// Create a new query object.
$query = $itemsdb->getQuery(true);
 
$query->select($itemsdb->quoteName(array('id','ttstudio_title','ttstudio_gallery','ttstudio_image','ttstudio_video','ttstudio_orderid','state')));
$query->from($itemsdb->quoteName('#__ttstudio_gallery_items'));
$query->order($itemsdb->quoteName('ttstudio_orderid'));

// Reset the query using our newly populated query object.
$itemsdb->setQuery($query);
$itemsresults = $itemsdb->loadRowList();

?>

<?php foreach ($itemsresults as $row) :
if ($row[6] == 1) {
echo '<a data-rel="gallery' . $row[2] . '" href="';
if (!empty($row[4])) { echo $row[4]; } else { echo $row[3]; }
echo '" class="hide gallery' . $row[2] . '" data-title="' . $row[1] . '"></a>';
}
endforeach; ?>

но срабатывает так же как и с якорем, недооткрывается. как будто что-то блокирует срабатывание.
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #7 : 17.11.2014, 17:15:48 »
Нашлось некоторое решение:
в файле custom.js
Код
    jQuery('#ascensorBuilding').ascensor({direction:"x",time:1300,childType:"article",loop:false,overflow:'hidden'});

    if (jQuery(window).width() > 1024) {
    jQuery('#ascensorBuilding').stellar();
    }
     
    jQuery(window).load(function () {
    "use strict";
    if (jQuery(window).width() > 800) {
    jQuery('body').find('header').stop().animate({
    'marginTop': '0px'
    }, 500);
    setTimeout(function () {
    jQuery('body').find('#main-menu ul').stop().animate({
    'marginLeft': '0px'
    }, 500);
    jQuery('body').find('#sub-menu ul').stop().animate({
    'marginLeft': '0px'
    }, 900);
    }, 500 );
    }
    var menuheight = jQuery('body').find('#main-menu').height();
    if (jQuery(window).width() < 640) {
    if (jQuery(window).height() > 320) {
    jQuery('body').find('#sub-menu').css('top', menuheight + 90);
    }
    else {
    jQuery('body').find('#sub-menu').css('top', menuheight + 50);
    }
    }
    else
    {
    if (jQuery(window).height() > 320) {
    jQuery('body').find('#sub-menu').css('top', menuheight);
    }
    else {
    jQuery('body').find('#sub-menu').css('top', menuheight + 50);
    }
    }
    });
     
    jQuery(window).resize(function () {
    "use strict";
    var menuheight = jQuery('body').find('#main-menu').height();
    if (jQuery(window).width() > 800) {
    jQuery('body').find('header').css('margin-top', '0px');
    jQuery('body').find('nav ul').css('margin-left', '0px');
    jQuery('body').find('#main-menu').css('display', 'block');
    jQuery('body').find('#sub-menu').css('display', 'block');
    jQuery('body').find('#sub-menu').css('top', menuheight);
    }
    if (jQuery(window).width() < 640) {
    jQuery('body').find('#main-menu').css('display', 'none');
    jQuery('body').find('#sub-menu').css('display', 'none');
    jQuery('body').find('#mobile-menu').removeClass('menu-close');
    if (jQuery(window).height() > 320) {
    jQuery('body').find('#sub-menu').css('top', menuheight + 90);
    }
    else {
    jQuery('body').find('#sub-menu').css('top', menuheight + 50);
    }
    }
    else
    {
    if (jQuery(window).height() > 320) {
    jQuery('body').find('#sub-menu').css('top', menuheight);
    }
    else {
    jQuery('body').find('#sub-menu').css('top', menuheight + 50);
    }
    jQuery('body').find('#main-menu').css('display', 'block');
    jQuery('body').find('#sub-menu').css('display', 'block');
    }
    });
     
     
    jQuery("body").find('#mobile-menu').on("click", function (e) {
    "use strict";
    e.preventDefault();
    jQuery('body').find('#main-menu').toggle();
    jQuery('body').find('#sub-menu').toggle();
    jQuery('body').find('#mobile-menu').toggleClass('menu-close');
    });
     
    if (jQuery(window).width() < 640) {
    jQuery("body").find('nav li a').on("click", function () {
    "use strict";
    jQuery('body').find('#main-menu').toggle();
    jQuery('body').find('#sub-menu').toggle();
    jQuery('body').find('#mobile-menu').toggleClass('menu-close');
    });
    }
     
    /////////////////* ACCORDION */////////////////////////
     
    jQuery(document).ready(function () {
    "use strict";
    jQuery('.accordion-header').toggleClass('inactive-header');
     
    jQuery('.accordion-content').css({ 'width': '100%' });
     
    jQuery('.accordion-header').click(function () {
    if (jQuery(this).is('.inactive-header')) {
    jQuery('.active-header').toggleClass('active-header').toggleClass('inactive-header').next().slideToggle().toggleClass('open-content');
    jQuery(this).toggleClass('active-header').toggleClass('inactive-header');
    jQuery(this).next().slideToggle().toggleClass('open-content');
    }
     
    else {
    jQuery(this).toggleClass('active-header').toggleClass('inactive-header');
    jQuery(this).next().slideToggle().toggleClass('open-content');
    }
    });
     
    return false;
    });
     
    jQuery('body').find('iframe').wrap('<div class="flex-video"></div>');
    jQuery('body').find('.hasTooltip').removeClass('hasTooltip');

первая строка:
Код
jQuery('#ascensorBuilding').ascensor({direction:"x",time:1300,childType:"article",loop:false,overflow:'hidden'});

была заменена на:
Код
if(window.location.hash=="#foto") {jQuery('#ascensorBuilding').ascensor({windowsOn: 1,direction:"x",time:1300,childType:"article",loop:false,overflow:'hidden'});}
else {jQuery('#ascensorBuilding').ascensor({direction:"x",time:1300,childType:"article",loop:false,overflow:'hidden'});}

Проблема в том, что всё хорошо работает как надо на локалке, а вот на хостинге не срабатывает. Странно, но не могу понять что может мешать работе скрипта. Может ли быть проблема в самом хосте??
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Не до конца срабатывает якорь
« Ответ #8 : 17.11.2014, 19:28:57 »
От хоста может быть только одна проблема - страница переходит на якорь только после полной загрузки, если какой-то файл потерялся, то загрузка идет долго или бесконечно и т.п.
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #9 : 18.11.2014, 00:14:40 »
От хоста может быть только одна проблема - страница переходит на якорь только после полной загрузки, если какой-то файл потерялся, то загрузка идет долго или бесконечно и т.п.

Вы имеете ввиду, что на сайте на хосте не хватает файла в отличии сайта на локалке?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Не до конца срабатывает якорь
« Ответ #10 : 18.11.2014, 05:27:51 »
Вы посмотрите в консоль FireBug, есть ли там отсутствующие файлы, вместо того, чтобы задавать доп. Вопросы.
*

rom

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Не до конца срабатывает якорь
« Ответ #11 : 19.11.2014, 01:02:11 »
Вы посмотрите в консоль FireBug, есть ли там отсутствующие файлы, вместо того, чтобы задавать доп. Вопросы.

спасибо, мистер просвещённость!)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать tooltip в регистрации в Joomla 3?

Автор KoloS

Ответов: 13
Просмотров: 8904
Последний ответ 24.08.2021, 19:00:51
от coolplaymaster
Шаблон VTEM CLEAN (не работает с русскими буквами) - ?

Автор warlocksp

Ответов: 6
Просмотров: 1500
Последний ответ 15.10.2018, 17:59:59
от Frost68
Как вывести alt для изображения в карточке?

Автор Anna01

Ответов: 6
Просмотров: 2092
Последний ответ 24.04.2017, 12:04:22
от Anna01
Стили пагинации в Helix 3

Автор stepan39

Ответов: 0
Просмотров: 1413
Последний ответ 30.03.2017, 12:30:13
от stepan39
При увелечении масштаба исчезает модуль

Автор Egordj

Ответов: 0
Просмотров: 1107
Последний ответ 08.02.2017, 20:56:41
от Egordj