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

Alphaed

  • Осваиваюсь на форуме
  • 26
  • 2 / 0
Код ошибки:
Код
Fatal error: Call to a member function get() on a non-object in /storage/home/srv24302/htdocs/templates/yoo_explorer/warp/systems/joomla.1.6/menus/pre.php on line 60

Листинг файлика, конкретно ругается на $item->params->get('pageclass_sfx') в строке $parts = preg_split('/[\s]+/', $item->params->get('pageclass_sfx'));.
Код
<?php
/**
* @package   Warp Theme Framework
* @file      pre.php
* @version   5.5.14
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright  2007 - 2011 YOOtheme GmbH
* @license   YOOtheme Proprietary Use License (http://www.yootheme.com/license)
*/

/*
Class: WarpMenuPre
Menu base class
*/
class WarpMenuPre extends WarpMenu {

/*
Function: process

Returns:
XML Object
*/
function process($module, $xmlobj) {

if ($ul = $xmlobj->document->getElement('ul')) {
$this->_process($module, $ul);
return $ul;
}

return false;
}

function _process($module, $xmlobj, $level = 0) {

$menu = JSite::getMenu();
$images = strpos($module->parameter->get('class_sfx'), 'images-off') === false;

foreach ($xmlobj->children('li') as $li) {

// get menu item id
$id = (int) str_replace('item-', '', $li->_attributes['id']);

// is current/active ?
if ($li->hasClass('current')) {
$isActive = 2;
} else if ($li->hasClass('active')) {
$isActive = 1;
} else {
$isActive = 0;
}

// reset attributes
$li->_attributes = array();

// get menu item params
$item = $menu->getItem($id);

// get class suffix params
$page_params = array();
$parts = preg_split('/[\s]+/', $item->params->get('pageclass_sfx'));

foreach ($parts as $part) {
if (strpos($part, '-')!== false) {
list($name, $value) = explode('-', $part, 2);
$page_params[$name] = $value;
}
}

$columns     = isset($page_params['columns'])? (int) $page_params['columns'] : 1;
$columnwidth = isset($page_params['columnwidth'])? (int) $page_params['columnwidth'] : -1;

$li->addAttribute('data-menu-active', $isActive);
$li->addAttribute('data-menu-columns', $columns);
$li->addAttribute('data-menu-columnwidth', $columnwidth);

// add item background image
if ($item->params->get('menu_image') && $item->params->get('menu_image')!= -1) {
if (isset($li->_children[0])) {

$img  = $li->_children[0]->child('img');
$span = $li->_children[0]->child('span');

if (!$span) {
$li->_children[0]->createElement('span', $item->title);
}

$li->_children[0]->removeChild($img);

if ($images) {
$img = $item->params->get('menu_image');
$li->_children[0]->_children[0]->addAttribute('data-menu-image', JURI::base().$img);
}
}
}

$childList = $li->child('ul');

if ($childList) {
$this->_process($module, $childList, ($level+1));                  
}

if ($li->child('a')) {
$link = $li->child('a');
if (!count($link->_children)) {
$link->parse('<span>'.$link->_data.'</span>');
$link->_data = null;
}
}

}

}

}

Если не затруднит, коллеги, помогите разобратся.
*

pl4cebo

  • Осваиваюсь на форуме
  • 25
  • 3 / 0
Re: После обновления до 1.7 wrap yootheme упал
« Ответ #1 : 20.07.2011, 14:49:16 »
Цитировать
Да, типо всякие фичи если в шаблоне идут. Меню навороченые.
За все шаблоны не отвечаю, может есть которые подойдут
(yoo_enterprise глючит Fatal error: Call to a member function get() on a non-object in /var/www/***/data/www/****/templates/yoo_enterprise/warp/systems/joomla.1.6/menus/pre.php on line 60)

Цитировать
есть такое, Gantry Framework только после обновления на 3.2.7 нормально заработал
*

Alphaed

  • Осваиваюсь на форуме
  • 26
  • 2 / 0
Re: После обновления до 1.7 wrap yootheme упал
« Ответ #2 : 20.07.2011, 15:24:55 »
Решенице бы...
*

Alphaed

  • Осваиваюсь на форуме
  • 26
  • 2 / 0
Re: После обновления до 1.7 wrap yootheme упал
« Ответ #3 : 21.07.2011, 11:52:20 »
Нашел.

В templates/yoo_explorer/warp/systems/joomla.1.6/menus/pre.php
строка 38

Код
foreach ($xmlobj->children('li') as $li) {

Поменять на
Код
foreach ($xmlobj->children('li id') as $li) {

Т.е. просто добавить id
*

D3N

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
  • B-A-D
Re: После обновления до 1.7 wrap yootheme упал
« Ответ #4 : 23.08.2011, 21:33:18 »
Спасибо! Помогло и мне)
*

ilyans

  • Новичок
  • 6
  • 0 / 0
Re: После обновления до 1.7 wrap yootheme упал
« Ответ #5 : 17.02.2012, 14:58:51 »
У меня стоит шаблон symphony - тоже помогло 
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться