Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

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

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
Добрый день,
помогите пожалуйста,

На элементарном запарился, есть:
Код
<input type="checkbox" id="king-night" name="king-night">
Что б срабатывание только один раз id="king-night" при первом заходе на сайт?

Не селен в JS, что то намудрил:
Код
<script>
jQuery(function(){
setTimeout(function(){
jQuery ('#king-night').trigger('click');
}, 500);
});
</script>

« Последнее редактирование: 26.10.2020, 12:42:19 от warlocksp »
Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: JS срабатывание только одни раз click?
« Ответ #1 : 26.10.2020, 13:25:00 »
Пример решения
Код
jQuery(document).ready(function ($) {
    if (!localStorage.getItem('king_night')) {
        localStorage.setItem('king_night', 1);
        $('#king-night').trigger('click');
    }
});
*

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
Re: JS срабатывание только одни раз click?
« Ответ #2 : 26.10.2020, 13:37:31 »
Пример решения
Код
jQuery(document).ready(function ($) {
    if (!localStorage.getItem('king_night')) {
        localStorage.setItem('king_night', 1);
        $('#king-night').trigger('click');
    }
});

Спасибо большое за подсказку:)
С меня "+"
Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
*

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
Re: JS срабатывание только одни раз click?
« Ответ #3 : 27.10.2020, 09:03:59 »
Перестал работать, скрипт
Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: JS срабатывание только одни раз click?
« Ответ #4 : 27.10.2020, 09:11:00 »
Перестал работать, скрипт
Откройте в другом браузере. Он вообще 1 раз срабатывает )
Если надо 1 раз, при каждом открытии/обновлении страницы, то надо по-другому делать.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
Re: JS срабатывание только одни раз click?
« Ответ #5 : 27.10.2020, 10:23:34 »
Откройте в другом браузере. Он вообще 1 раз срабатывает )
Если надо 1 раз, при каждом открытии/обновлении страницы, то надо по-другому делать.

Пробовал через "Chrome", "Edge"
Нужно один раз, когда человек зашел на сайт. Зайдет на следующий день - снова сработал один раз.

Проверил этот работает, думал что то намудрили, а нет (каждый раз при обновлении).
Код
jQuery(function(){
setTimeout(function(){
jQuery ('#king-night').trigger('click');
}, 500);
});
Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: JS срабатывание только одни раз click?
« Ответ #6 : 27.10.2020, 11:24:40 »
Нужно один раз, когда человек зашел на сайт. Зайдет на следующий день - снова сработал один раз.
Тогда сразу формулируйте задачи поточнее. Об этом вообще нельзя было догадаться. Выше вам предложили вариант, который срабатывает вообще один раз (что соответствовало вопросу). Если замените там localStorage на sessionStorage, то будет срабатывать в каждой новой закладке и при перезапуске браузера. А если надо, чтоб именно раз в день, тогда надо запоминать дату последнего срабатывания и сравнивать с ней. Для этого предложенный код можно поменять так:
Код
jQuery(document).ready(function ($) {
    var now = new Date().toLocaleDateString();
    if (localStorage.getItem('king_night')!= now) {
        localStorage.setItem('king_night', now);
        $('#king-night').trigger('click');
    }
});
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
Re: JS срабатывание только одни раз click?
« Ответ #7 : 27.10.2020, 11:50:50 »
Код
jQuery(document).ready(function ($) {
    var now = new Date().toLocaleDateString();
    if (localStorage.getItem('king_night')!= now) {
        localStorage.setItem('king_night', now);
        $('#king-night').trigger('click');
    }
});

jQuery(document).ready(function ($) {
    if (!sessionStorage.getItem('king_night')) {
        sessionStorage.setItem('king_night', 1);
        $('#king-night').trigger('click');
    }
});

Не срабатывает.

Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: JS срабатывание только одни раз click?
« Ответ #8 : 27.10.2020, 12:19:17 »
Код
jQuery(document).ready(function ($) {
    var now = new Date().toDateString();
    if (localStorage.getItem('king_night')!= now) {
        localStorage.setItem('king_night', now);
        $('#king-night').trigger('click');
        alert('Сработало!');
    }
});

Попробуйте это. Если увидите сообщение, значит срабатывает, но эффекта нет.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Только первый абзац

Автор warlocksp

Ответов: 0
Просмотров: 692
Последний ответ 28.11.2017, 15:24:15
от warlocksp
Вызвать событие click() несколько раз

Автор alex_next

Ответов: 11
Просмотров: 1403
Последний ответ 29.04.2016, 14:51:21
от umbabaraumba