Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

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

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
В том плагине что я вам дал вставляете метод:
Код: php
public function onContentBeforeSave( $context, $data )
{
$input = JFactory::getApplication()->input;
if ( $input->getCmd( 'option' ) === 'com_content' ) {
print_r( $data );
die();
}
}
Отработает перед сохранением, увидите все что в $data
public function onContentAfterSave( $context, $data ) - будет после того как материал уже будет записан в бд!
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
Подробнее не совсем понимаю что должен выбрать юзер и какой id должен в зависимости от этого добавляться?
Плагины группы editors  служат для работы с редактором, это вообще редакторы.. вы не в ту степь лезете!
НА странице  создание/редактирования материала есть кнопки да/нет если пользователь нажал "да" то нужно добавить на страницу материала на которой он нажал опеределеный модуль ( если сменил да. на нет, то не подключать ).
Я хочу это сделать так если пользователь нажал "ДА", добавить  id материала в массив, и массив  на наличие этого id при загрузки страницы.
Поэтому 2 впороса которых я не могу решить:
1. Как обработать отправку формы в адмике, что бы проверить что выбрал юзер.
2. Что бы не городить с массивом id, как подключить модуль средствами Joomla, т.е у Joomla где то хранится в базе какие модули должны быть подключены к странице, как туда дописать нужный модуль при необходимости.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
1. Для добавления кнопки использовать мой пример!
Вывести банально вместо <field name="filed1" type="text" label="Тестовое поле:" value=""></field>
<field name="filed1" type="list" label=Вставить модуль:" default="0">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>

2. Переопределяете шаблон материала
3. В переопределеном шаблоне там где нужно вывести модуль сделать:
if ( $params->get( 'filed1', 0 ) ) {
//выводим модуль!
}
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
т.е у Joomla где то хранится в базе какие модули должны быть подключены к странице, как туда дописать нужный модуль при необходимости.
у Joomla НЕ хранится в базе какие модули должны быть подключены на определенных страницах! Такого вообще нет в Joomla!
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
1. Для добавления кнопки использовать мой пример!
Вывести банально вместо <field name="filed1" type="text" label="Тестовое поле:" value=""></field>
<field name="filed1" type="list" label=Вставить модуль:" default="0">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>

2. Переопределяете шаблон материала
3. В переопределеном шаблоне там где нужно вывести модуль сделать:
if ( $params->get( 'filed1', 0 ) ) {
//выводим модуль!
}
Да с кнопкой понял, можно 2 раза не повторять, и событие обработалось, я так и не понял почему оно у меня не работал, но пофиг, главное что работает.
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
у Joomla НЕ хранится в базе какие модули должны быть подключены на определенных страницах!
Тогда тупой вопрос, но как joоmla  узнает что опеределнный модуль нужно подключить к опеределеной странице?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Тогда тупой вопрос, но как joоmla  узнает что опеределнный модуль нужно подключить к опеределеной странице?
Никак! Такой опции нет в Joomla!
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
Никак! Такой опции нет в Joomla!
Перефразирую, каким магическим образом нужный модуль подключается  к нужной странице, к примеру есть выбрать для модуля "привязать ко всем пунктам меню" (или как то так) то модуль будет на всех страницах
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Перефразирую, каким магическим образом нужный модуль подключается  к нужной странице, к примеру есть выбрать для модуля "привязать ко всем пунктам меню" (или как то так) то модуль будет на всех страницах
Ну дык вы же сами ответили на свой вопрос ) "привязать ко всем пунктам меню", модули привязываются к пунктам меню, но не к материалам! В пункте меню может быть любая сущность, не только материал!
Если у вам материал не будет привязан к пункту меню то у вас ничего не выведется!
Банальный вопрос, вам нужно модуль показывать / скрывать вне контейнера с материалом (например в правой или левой колонке), или все же в контейнере с контентом?
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
Ну дык вы же сами ответили на свой вопрос ) "привязать ко всем пунктам меню", модули привязываются к пунктам меню, но не к материалам! В пункте меню может быть любая сущность, не только материал!
Если у вам материал не будет привязан к пункту меню то у вас ничего не выведется!
Банальный вопрос, вам нужно модуль показывать / скрывать вне контейнера с материалом (например в правой или левой колонке), или все же в контейнере с контентом?
В контейнере, после текста.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Да все же банально просто!
В том плагине что я вам дал дописать метод:
Код: php
public function onContentAfterDisplay( $context, &$row, &$params, $page = 0 )
{
$input = JFactory::getApplication()->input;
if ( $input->getCmd( 'option' ) === 'com_content' && $input->getCmd( 'view' ) === 'article' ) {
$html = '';
$attribs = new JRegistry( $row->attribs );
if ( $attribs->get( 'field1' ) ) {
$modeules = JModuleHelper::getModules( 'ПОЗИЦИЯ ВАША ДЛЯ МОДУЛЕЙ ПОД КОНЕТНТОМ' );
foreach ( $modeules as $module ) {
$html .= JModuleHelper::renderModule( $module, array( 'style' => '' ) );
}
}
return $html;
}
}
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Эт я не дописал решение данной задачи плагины два
plugins\editors-xtd\readmore в связке с \plugins\content\pagebreak
первый вставляет <i data-module="mymodule"></i> и кнопку свою  ^-^
второй находит данный текст и заменяет нужным кодом
настоящий программист никогда не ищет легких подходов. Он должен перелопатить систему, ядро и все что может, чтобы вернутся к готовому провереному коду, который всегда был рядом  *DRINK*
*

fsv

  • Живу я здесь
  • 2781
  • 411 / 2
НА странице  создание/редактирования материала есть кнопки да/нет если пользователь нажал "да" то нужно добавить на страницу материала на которой он нажал опеределеный модуль ( если сменил да. на нет, то не подключать ).
А просто в материал добавить {loadmodule mod_login} чего не хотите? Если надо "для секретарши" по клику на кнопочке "да/нет", напишите плагин кнопки, который js будет добавлять эту же конструкцию в текст в редакторе.

upd. Пока писАл, ответ выше уже есть похожий.
Веб-разработка: заказ. Только новая разработка.
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
А просто в материал добавить {loadmodule mod_login} чего не хотите? Если надо "для секретарши" по клику на кнопочке "да/нет", напишите плагин кнопки, который js будет добавлять эту же конструкцию в текст в редакторе.

upd. Пока писАл, ответ выше уже есть похожий.
Спасибо, то что нужно добрые люди выше решили что мне это знать не нужно...
Только добавил после текста в материал, но не вставляет модуль {loadmodule MOD_DTKFEEDBACK}
*

fsv

  • Живу я здесь
  • 2781
  • 411 / 2
Только добавил после текста в материал, но не вставляет модуль {loadmodule MOD_DTKFEEDBACK}
У вас плагин Контент - Загрузка модулей активирован? Зайдите в него и почитайте описание.
Сомневаюсь, что ваш модуль пишется именно так - MOD_DTKFEEDBACK. - upd.: посмотрел, там регулярка регистронезависимая

добрые люди выше решили что мне это знать не нужно...
Не заметил. Наоборот, столько постов помощи мало кто получает. Пока вы на 3 странице обсуждения не написали, что вам надо, я, например, не понимал. Предполагаю, что и другие. Вы спрашивали то, что сами себе придумали, но суть задачи не изложили.
« Последнее редактирование: 12.06.2014, 15:54:52 от fsv »
Веб-разработка: заказ. Только новая разработка.
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
У вас плагин Контент - Загрузка модулей активирован? Зайдите в него и почитайте описание.
Сомневаюсь, что ваш модуль пишется именно так - MOD_DTKFEEDBACK. - upd.: посмотрел, там регулярка регистронезависимая
Не заметил. Наоборот, столько постов помощи мало кто получает. Пока вы на 3 странице обсуждения не написали, что вам надо, я, например, не понимал. Предполагаю, что и другие. Вы спрашивали то, что сами себе придумали, но суть задачи не изложили.
Я им очень благодарен обоим, я сам бы еще очень долго возился, я когда все закончу выложу исходники может кому то поможет)
А имя у меня реально в верхнем регистре :)

Цитировать
У вас плагин Контент - Загрузка модулей активирован? Зайдите в него и почитайте описание.
Уже нашел про то что плагин может не работать, щас буду собирать все на продакшине там уже посмотрю что и как)
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
Цитировать
Контент - Загрузка модулей активирован
Его вообще нет)
Все есть и включено, в 3 утра и не такое увидишь)
Но не работает в коде выводит {loadmodule 107} (пробовал и id и имя)
« Последнее редактирование: 13.06.2014, 04:17:56 от __noob__ »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Его вообще нет)
Все есть и включено, в 3 утра и не такое увидишь)
Но не работает в коде выводит {loadmodule 107} (пробовал и id и имя)
А вы пробовали читать что написано в плагине Контент-загрузка модулей?
Цитировать
Загружает модули, опубликованные в определенной позиции в текст материала (синтаксис: {loadposition user1}) или отдельный модуль по названию (синтаксис: {loadmodule mod_login}). Дополнительно можно задать стиль отображения и произвольный заголовок модуля (если используется loadmodule).

И почему не воспользовались моим вариантом где я написал код как можно загрузить модуль в конце контента?
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
А вы пробовали читать что написано в плагине Контент-загрузка модулей?
И почему не воспользовались моим вариантом где я написал код как можно загрузить модуль в конце контента?
Потому что нужно было временное решение на сегодня, что бы пока выглядело как будто все работает :)
Цитировать
А вы пробовали читать что написано в плагине Контент-загрузка модулей?

Да, конечно. На сколько я понял {loadposition user1} не обязательно, достаточно и  loadmodule. Но даже если их и использовать вместе то не работает.
Цитировать
Загружает модули, опубликованные в определенной позиции в текст материала (синтаксис: {loadposition user1}) или отдельный модуль по названию (синтаксис: {loadmodule mod_login}). Дополнительно можно задать стиль отображения и произвольный заголовок модуля (если используется loadmodule).
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
Я не фига не пойму, почему в Joomla в код взятый из 100% рабочего примера не работает.

                       
Код: php
 $name = trim ( 'mod_dtkfeeback' ); // имя будет браться из переменной
$document = JFactory::getDocument();
$renderer = $document->loadRenderer('module');
$mod = JModuleHelper::getModule( $name ); // объект модуля возвращается

if (!isset($mod))
{
$name = 'mod_' . $name;
$mod  = JModuleHelper::getModule( $name );
}

$params = array('style' => 'none');

echo $renderer->render($mod, $params); // но не работает
Почему не работает простейший вывод?
и как получить id модуля, что бы вывести его на позицию ту что выбрана в настройках модуля?
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
Цитировать
Сомневаюсь, что ваш модуль пишется именно так - MOD_DTKFEEDBACK.
Кстати проблема была как раз в регистре, но такой вариант загрузки откинул из за не понятных багов...

П.с вопрос в сообщение выше актуален  !
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Все должно работать!
Так работает!
Код: php
$renderer = JFactory::getDocument()->loadRenderer( 'module' );
echo $renderer->render( 'mod_login' , array('style' => 'none') );

и так тоже:
Код: php
$renderer = JFactory::getDocument()->loadRenderer( 'module' );
echo $renderer->render( JModuleHelper::getModule( 'mod_login' ), array('style' => 'none');
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
Цитировать
Все должно работать!
ДА вот в том и проблема что должно но не работает, код был взят из модуля Joomla, который вставляет модули.

Я прикрепил оба модуля, если не верите что не работает)
« Последнее редактирование: 17.06.2014, 13:22:09 от __noob__ »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
ДА вот в том и проблема что должно но не работает, код был взят из модуля Joomla, который вставляет модули.
Я прикрепил оба модуля, если не веришь что не работает)
И что я по вашему должен делать с вашими модулями? Проверяйте настройки модуля, может в его настройках он не опубликован, или не отображается на всех страницах, или на конкретной странице не отображается!
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
И что я по вашему должен делать с вашими модулями? Проверяйте настройки модуля, может в его настройках он не опубликован, или не отображается на всех страницах, или на конкретной странице не отображается!
Нечего, настройки проверил все отображается, ладно не важно я обошелся хаком через js.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

__noob__

  • Захожу иногда
  • 57
  • 0 / 0
__noob__, юный хакер    :laugh:
Там таблицу, там скрипт
Да не успеваю уже сделать по нормальному, я часов 5 убил на то что бы понять почему оно не работает, но так и не понял, отличий не нашел кроме того что  во встроенном модуле работает а в моем нет((
Сегодня последний день, и завтра уже все должно работать, а не делать вид что работает)

П.с таблица получилась норм, блекджеком и сейвами  yes!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вставка кода вызова модуля в тело шаблона другого модуля

Автор Dorfman

Ответов: 15
Просмотров: 2618
Последний ответ 19.11.2018, 21:45:54
от beliyadm
Добавить проверку в форму регистрации

Автор apsorry

Ответов: 3
Просмотров: 1423
Последний ответ 08.01.2016, 15:40:02
от apsorry
Сортировка материала в RSS (view.feed.php) по дате создания

Автор bombapiter

Ответов: 7
Просмотров: 2953
Последний ответ 24.10.2014, 10:49:31
от bombapiter
Как проверить существует ли ID материала?

Автор sorrrrry

Ответов: 7
Просмотров: 2601
Последний ответ 15.10.2014, 16:52:58
от SmokerMan
[Решено] Доступ к параметру материала из шаблона

Автор olf

Ответов: 5
Просмотров: 1618
Последний ответ 10.07.2014, 18:32:21
от b2z