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

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Довольно часто встречаются запросы по организации показа разной информации для разных, скажем, городов (ещё не мультисайтовость, но уже интерактивность какая-никакая).
Т.е. при выборе из списка городов какого-нибудь города хочется получать новости по выбранному населённому пункту, и, скажем, пару дополнительных модулей с уникальной информацией.
Предлагаю своё небольшое решение для подобных задач, не требующих глобального программирования- модуль “Any chooser” (для J1.5 и 1.6/1.7, качать - по ссылкам в самом низу).



Сам по себе модуль ничего сложного не делает, а всего лишь позволяет создавать выпадающий список, и сохранять в куки пользовательские данные.

А далее - врубаем фантазию и думаем, что можно с этим делать :).
К примеру, я вывел стандартным модулем mod_latestnews информацию по выбранному городу, всего лишь хакнув пару строк в этом модуле (\modules\mod_latestnews\helper.php)

Код
if (isset($_COOKIE['cat'])) $catid=trim($_COOKIE['cat']); //проверили, есть ли такая кука
   else $catid = trim( $params->get('catid') ); //подставили её вместо номеров категорий, переданных через настройки модуля
$secid = trim( $params->get('secid') ); //это изначальная строка

Как вариант, можно выводить подобным методом в шаблон уникальное имя позиции модуля, а в админке создавать уникальные для каждого «города» модули и им прописывать эту позицию.

В общем, дальше сами играйтесь :)
Но сначала настраиваем и тестим всё на локалке, ибо, как показала практика, граната в опытных, но облизъяньих руках способна положить сайт (будет ругаться на куки неправильные).


[вложение удалено Администратором]
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
да там на картинке всё демо видно )
только сраный радикал тормозит неимоверно :)
выбрал значение-страница обновилась, новостной модуль вывел новость из соотвествующей категории. дальше делаешь что хошь :)

кстати, я тут нашёл ещё более интересное решение - надо будет затестить:
http://extensions.joomla.org/extensions/languages/multi-lingual-content/1767
там типа мультиязычность, но, по ходу, можно делать мульти_всё_что_хошь :)
для небольших сайтов очень удобная альтернатива джумфишам
*

zaero

  • Новичок
  • 6
  • 0 / 0
Отличный модуль. Подскажите пожалуйста, есть ли нечто подобное для Joomla 1.0?
Если нет, можно ли как-нибудь этот модуль адаптировать к J1.0?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
по сути там от Joomla только строки
$params->get('data', '');
$document    = & JFactory::getDocument();
и XML другой
так что берёшь модуль под 1.0, смотришь, как там оформлены эти моменты и переписываешь
*

KocmonpaB

  • Новичок
  • 5
  • 0 / 0
effrit, а не могли бы Вы еще раз залить модуль, к сожалению по ссылке файла нет.
заранее спасибо.

Ну вот, опять файл не найден :( А я так на него понадеялась! Вроде то, что надо...
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Помогите перевести для Joomla 1.0.
Совсем не знаю функций и операторов, которые используются в 1.5!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Да в том то и дело, что XML перевёл - там ничего сложного.
А вот с & JFactory - проблемы. Поискал аналоги для Joomla 1.0. Но не пойму, что там в этих строчках делается.

В файле php необходимо сделать изменения во-первых, в этом месте:
Код
defined('_JEXEC') or die('Restricted access');

А во-вторых, в этом:
Код
$data=mb_ereg_replace("\]","",$data); 						// remoove all ']' simbol at once
$alldata=mb_split("\n",$data); // split text to array of strings
$document = & JFactory::getDocument();
Но вот здесь и не пойму, что делать. Если убрать строчки, то модуль работает, но, естественно, неправильно. Если не убирать, то не работает. Помогите, пожалуйста. Очень надо!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Это я сделал. Забыл написать. Проблемы со вторым местом.
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Всё сделал, но всё равно не работает.
Работает только тогда, когда комментирую строчки
Код
$data=mb_ereg_replace("\]","",$data); 						// remoove all ']' simbol at once
$alldata=mb_split("\n",$data); // split text to array of strings
Естесственно, тогда меню селекторное пустое, но сайт работает нормально.
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Может что не так делаю?
Но вроде ничего кроме вышеупомянутых строчек не менял. Странно как-то - это функции, вроде бы, обычные... ничего характерного именно для Joomla 1.5.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Всё сделал, но всё равно не работает.
Работает только тогда, когда комментирую строчки
Код
$data=mb_ereg_replace("\]","",$data); 						// remoove all ']' simbol at once
$alldata=mb_split("\n",$data); // split text to array of strings
Естесственно, тогда меню селекторное пустое, но сайт работает нормально.
Функции начинающиеся с mb_ насколько я помню требуют подключенного к апачу модуля для работы с многобитными кодировками (не помню как он называется), возможно у тебя его нет или не подключен. Но если Joomla 1.0, то там многобитных кодировок и не надо и смело можно эту приставку убрать, останутся функции, работающие с однобайтными кодировками.
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Цитировать
Функции начинающиеся с mb_ насколько я помню требуют подключенного к апачу модуля для работы с многобитными кодировками (не помню как он называется), возможно у тебя его нет или не подключен. Но если Joomla 1.0, то там многобитных кодировок и не надо и смело можно эту приставку убрать, останутся функции, работающие с однобайтными кодировками.

Большое спасибо, результат налицо - теперь уже селектор появляется... =), но сайт по прежнему не работает. После селектора ничего не грузится.

Кто-нибудь тестировал вообще его под Joomla 1.0? Может я просто что-то не то делаю?
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Там, оказывается, ещё ниже были функции с mb_.
Их тоже убрал и теперь всё стало выводиться, но теперь в выпадающем меню появляется только первая строчка, а все остальные - нет. Может дело именно в mb_? Может работает только с ней?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Нет, mb_ требуется для UTF-8, для 1251 не нужно. Дело в чем-то еще.
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Может выложить изменённые файлы - кто-нибудь у себя потестирует?
Может у меня руки кривые? =)
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Попробуй
Код
$alldata=split("\n",$data); 	
заменить на
Код
$alldata=split("<br />",$data);
Мне помогло.
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Цитировать
Попробуй
Код:

$alldata=split("\n",$data);    

заменить на
Код:

$alldata=split("<br />",$data);

Мне помогло.
Да, спасибо, это помогло - теперь выводятся все строчки, которые ввожу, но вот их выбор не происходит..
Когда выбираю какую-нибудь строчку, в фаерфоксе пишется сообщение: "Фаерфокс не может определить, как открытть данный адрес и т.п.". Тут, скорее всего, из-за того, что на локалхосте проверяю. Если проверяю на работающем сайте, то выскакивает просто абсолютный путь до файлов сайта.

Сменил строчку
Код
$redirectUrl=$mosConfig_absolute_path;
на
Код
$redirectUrl="index.php";
Но теперь не происходит выбора нужной строчки. Происходит перезагрузка страницы и строчка остаётся та, которая была, а не та, которую выбрал.
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Попробуй
Код
$alldata=split("\n",$data); 	
заменить на
Код
$alldata=split("<br />",$data);
Мне помогло.
А у тебя выбор происходит нормально? Когда меняешь строчки в выпадающем списке одну на другую - всё нормально работает? У меня просто перекидывает по адресу, который указан (например, главная страница), а значение в выпадающем списке не меняется, а остаётся как предыдущее.
*

god-master

  • Захожу иногда
  • 61
  • 2 / 0
Если не трудно, прикрепи, пожалуйста, файл php твоего модуля. Что-то я ничего не понимаю.
А ещё вопрос, а где тестируешь скрипт? На локалхосте?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Код: php
<?php
/**
* @version $Id: mod_footer.php 14401 2010-01-26 14:10:00Z louis $
* @package Joomla
* @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined( '_VALID_MOS' ) or die();

$data = $params->get('data', '');
$redirect=$params->get('redirect', '0');
$expire=(int)$params->get('expire', '0');
//require(JModuleHelper::getLayoutPath('mod_anychooser'));
?>

<script type="text/javascript"> 

function setCookie (name, value, expires, path, domain, secure) {
var exdate=new Date();
exdate.setDate(exdate.getDate()+expires);


  document.cookie = name + "=" + escape(value) +
((exdate)? "; expires=" + exdate : "") +
((path)? "; path=" + path : "") +
((domain)? "; domain=" + domain : "") +
((secure)? "; secure" : "");
}

    function checkit(cook){
//alert(cook);
var dataArr = cook.menu.value.split(';'); // make array from spllittin string
for(i = 0; i < dataArr.length; i += 1){
var n_v = dataArr[i].split('='); // make pair name / value
//alert( n_v[1]);
setCookie(n_v[0], n_v[1], <?php echo $expire;?>, "/"); // push name, value and expiration date to cookie
}
location=cook.action; // simple redirect
        //document.forms["anychooser"].submit(); 

</script>

<?
$data=mb_ereg_replace("\]","",$data); // remoove all ']' simbol at once
$alldata=mb_split("<br />",$data); // split text to array of strings
$redirectUrl=JPATH_SITE; // set redirect to the same page
if ($redirect) $redirectUrl="/"; // or to the main page

$label="";
if (isset($_COOKIE['label'])) $label=$_COOKIE['label']; // get value of 'label' from cookie if it's set
echo "<div class='anychooser ".$label."'><form action='". $redirectUrl ."' method='post' name='anychooser'><select name='menu' size='1' onchange='checkit(this.form);'>";
$datcount=0;
foreach($alldata as $single){
$parts=mb_split("\[",$single); // split string to two parts (label and data)
$shoosed=" ";
mb_ereg("label=(.*?);",$parts[1], $matches); // get value of 'label' from list
if($label==$matches[1]) $shoosed=" selected "; // and compare it to cookie (if "yes" - made current list item 'selected')
echo "<option".$shoosed."value='".$parts[1]."'>". $parts[0] ."</option>";
$datcount++;

}
//echo "<input type='submit' value='OK' />";
echo "</select></form></div>";

?>
Но предупреждаю - у меня Joostina 1.3, она схожа с Joomla 1.0 но не очень.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

WT Telegram bot - отправка данных из Joomla в Telegram-бота

Автор sergeytolkachyov

Ответов: 4
Просмотров: 3270
Последний ответ 01.08.2025, 09:26:57
от sergeytolkachyov
Модуль вывода новостей. Joomla 3.x

Автор fbr

Ответов: 54
Просмотров: 29200
Последний ответ 22.07.2025, 10:13:22
от fbr
Calendar Filter — модуль для фильтрации материалов Joomla

Автор Sulpher

Ответов: 0
Просмотров: 1762
Последний ответ 09.11.2024, 14:01:49
от Sulpher
Бесплатный плагин импорта экспорта данных в поля материалов Joomla - CFI

Автор zikkuratvk

Ответов: 9
Просмотров: 7148
Последний ответ 02.06.2024, 06:38:19
от SolopoV
WT Digitally signed PDF отображения данных электронной подписи из PDF

Автор sergeytolkachyov

Ответов: 0
Просмотров: 2790
Последний ответ 23.03.2022, 13:45:39
от sergeytolkachyov