Новости 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 Гость просматривают эту тему.
  • 24 Ответов
  • 2043 Просмотров
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
В контент плагине имеется параметр:
Код: xml
        <field name="nfa" type="radio" class="btn-group btn-yesno" default="0" label="PLG_LABEL" description="" >
          <option value="1">JYES</option>
          <option value="0">JNO</option>
        </field>

Также в плагине некая обработка происходит в подключаемом js, внутри jQuery(document).ready(function() {});.

Как в этом js получить значение nfa?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Код: php
$this->params->get('nfa', 0);
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Это код на php, а нужен на js, чтобы использовать значение параметра внутри js
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Код: php
$doc = JFactory::getDocument();
$doc->addScriptDeclaration( 'jQuery(document).ready(function() { var myVar = ' . $this->params->get( 'nfa', 0 ). ';});.' );
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Вывести его отдельным атрибутом любого элемента на странице. Например так:
<div id="myfield" class="nfa">
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Код: php
$doc = JFactory::getDocument();
$doc->addScriptDeclaration( 'jQuery(document).ready(function() { var myVar = ' . $this->params->get( 'nfa', 0 ). ';});.' );
Можно и так, спс. А что делать, если скрипт в отдельном файле? К тому же файл со скриптом может быть довольно объемным.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
вот так можно переменную передать в javascript
Код: javascript
var param = "<?php echo $this->params->get('nfa', 0); ?>";
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
вот так можно переменную передать в javascript
Код: javascript
var param = "<?php echo $this->params->get('nfa', 0); ?>";
Тоже решение, спс, но опять же, не для js-файла.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
У ТС задача получить переменную во внешний файл, как я понял. Я два варианта предлагаю:
1. Вывести на странице куда угодно, потом получить.
2. Записать в кукисы.
По-первому варианту пример из недавних, делал яндекс-карту:

<li class="ad-item" coords="52.51,85.21"> — на странице
el.coords = $(el).attr('coords').split(','); — в скрипте

демо работы
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Если переменная содержит массив, объект или другие сложные объекты то проще через AJAX
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Переменная может содержать либо 0 либо 1, от этого и пляшем.
<div class="nfa" nfa="1"></div>
var nfa = jQuery(".nfa").attr('nfa')
правильно понял?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Если переменная содержит массив, объект или другие сложные объекты то проще через AJAX
В этом случае кодируем в строку или в джейсона и выводим тупо текстом в скрытом блоке где угодно. Хотя тут, имхо, рациональнее уже в кукисы писать или даже в хранилище (если сильно объёмная переменная).
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
как раз если сильно объемная то только через AJAX. У кукисов ограничение по объему. 4kb если не ошибаюсь
интернет-блог: http://websiteprog.ru
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Тоже решение, спс, но опять же, не для js-файла.
А при чем тут JS файл?!
вот такой код:
$doc = JFactory::getDocument();
$doc->addScriptDeclaration( 'jQuery(document).ready(function() { var myVar = ' . $this->params->get( 'nfa', 0 ). ';});.' );
в <head></head>
вставит
<script>
jQuery(document).ready(function() { var myVar = 1;});
</sript>
а дальше ваш скрипт в файле может получить эту переменную и обработать её!
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
как раз если сильно объемная то только через AJAX. У кукисов ограничение по объему. 4kb если не ошибаюсь
…или даже в хранилище (если сильно объёмная переменная).
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
я просто не понял что подрузумевается под хранилищем. Хранить в базе или в файле нецелесообразно, или вы имеете ввиду сессию?
интернет-блог: http://websiteprog.ru
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
А при чем тут JS файл?!
вот такой код:
$doc = JFactory::getDocument();
$doc->addScriptDeclaration( 'jQuery(document).ready(function() { var myVar = ' . $this->params->get( 'nfa', 0 ). ';});.' );
в <head></head>
вставит
<script>
jQuery(document).ready(function() { var myVar = 1;});
</sript>
а дальше ваш скрипт в файле может получить эту переменную и обработать её!

В плагине:
Код: php
    $document->addScriptDeclaration('jQuery(document).ready(function() {var nfa = '.(int)$this->params->get('nfa',0).';});');
    $document->addScript(JURI::base().'media/plugname/js/script.js');
В js:
Код: javascript
jQuery(document).ready(function() {
  alert(nfa);
});
В консоли:
ReferenceError: nfa is not defined - ссылка на script.js
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Это Web Storage
интересная конечно штука но работает она только на javascript и хранит данные в сессии или в памяти как я понял. Тут же задача из php в javascript передать
интернет-блог: http://websiteprog.ru
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Тогда AJAX + json. Запрос в Google "jqury AJAX json". Отдаст что угодно. Хотя предвижу вопросы что писать в url и как читать в js ответы.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
В консоли:
ReferenceError: nfa is not defined - ссылка на script.js
правильно потому что media/plugname/js/script.js  у вас выполнится раньше document.ready
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Тогда AJAX + json. Запрос в Google "jqury AJAX json". Отдаст что угодно. Хотя предвижу вопросы что писать в url и как читать в js ответы.
Атто, конечно вопросы будут. Но масштабы задачи слишком мизерны для задействования таких технологий, проще вообще весь js вывести посредством $document->addScriptDeclaration(), речь идет о мааааленьком контент-плагинчике.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
а если так
$document->addScriptDeclaration('var nfa = '.(int)$this->params->get('nfa',0).';');
$document->addScript(JURI::base().'media/plugname/js/script.js');
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
а если так
$document->addScriptDeclaration('var nfa = '.(int)$this->params->get('nfa',0).';');
$document->addScript(JURI::base().'media/plugname/js/script.js');
А так работает, спасибо. Всем предложившим решения +

Решено.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
А так работает, спасибо. Всем предложившим решения +
Вообще бы в идеале было бы сделать так:
в media/plugname/js/script.js написать например так:
function myFunction(nfa){  alert(nfa);  }
и вызывать уже так:
$document->addScriptDeclaration('jQuery(document).ready(function() { myFunction ( '.(int)$this->params->get('nfa',0).'); });');
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

params->get для компонента, как получить свои собственные параметры для компонента

Автор klubnichkaaa

Ответов: 13
Просмотров: 14312
Последний ответ 01.06.2017, 20:20:28
от Septdir
По ID'у пункта меню получить ссылку для перехода

Автор GRIG

Ответов: 4
Просмотров: 3092
Последний ответ 08.05.2017, 17:13:05
от Aleks.Denezh
Значение из контента перенести в модуль

Автор leo78

Ответов: 42
Просмотров: 3313
Последний ответ 31.07.2015, 19:51:00
от leo78
Дополнительные параметры пунктов меню для плагина

Автор enshtein

Ответов: 3
Просмотров: 3068
Последний ответ 06.11.2014, 16:48:17
от lebmarg
Доработка плагина

Автор Ragnos

Ответов: 19
Просмотров: 2178
Последний ответ 07.07.2014, 16:14:16
от zomby6888