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

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Здравствуйте!
В компоненте формирования заявок от пользователей, среди прочей информации, которую вводит пользователь, должна быть загрузка изображения (.png), которое надо сохранить на сервере и записать в БД.
В site/com_odere/views/html/default.php поле для файла представлено в блоке Структурная формула (name=img_png):
Спойлер
[свернуть]
в
В site/com_order/models/forms/ поле представлено (среди прочих полей):
Спойлер
[свернуть]
В site/com_order/controllers/registration/ register.php
Код
		$app   = JFactory::getApplication();
/* файл */
$jinput = $app->input;
if ($file = $jinput->files->get('img_png', null, 'files', 'array')) {
if ($filename = JFile::makeSafe($file['name'])) {
             $src = $file['tmp_name'];              
            $path =JPATH_SITE ."/components/com_order/assets/images/";
            $dest =$path.'uploaded_files '.$filename;
           if (JFile::upload($src, $dest)) {
JFile::delete($dest);
 } else {
                              JFactory::getApplication()->enqueueMessage('Не получается обработать файл', 'error');
                           }
} else {
JFactory::getApplication()->enqueueMessage('Нет названия файла', 'error');
}
} else {
JFactory::getApplication()->enqueueMessage('Нет файла', 'error');
}
Так вот у меня получается 'Нет файла'
Все остальные поля формы сохраняются, а вот изображение получить не могу.
Правда, в компоненте вид формы зависит от типа записи, и в модели я подставляю нужную форму
Спойлер
[свернуть]
« Последнее редактирование: 17.01.2017, 11:35:47 от GuDeVic »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Цитировать
$file = $jinput->files->get('img_png', null, 'files', 'array')
это что за зверь? откуда там четвертый параметр взялся?)
сделать var_dump($_FILES) и посмотреть что приходит
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
это что за зверь? откуда там четвертый параметр взялся?)
сделать var_dump($_FILES) и посмотреть что приходит
Вот отсюда взяла (от Fedor Vlasenko) http://joomlaforum.ru/index.php?topic=263530.0
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Да, var_dump($_FILES) (в модели)правильно изображение представляет
Спойлер
[свернуть]
« Последнее редактирование: 17.01.2017, 12:42:46 от GuDeVic »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
а если так?
Цитировать
$files = $jinput->files->get('jform', null, 'array');
if (!empty($files)) {
    foreach ($files as $file) {
        var_dump($file);
    }
}
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
а если так?
Тогда получается так:
Спойлер
[свернуть]
« Последнее редактирование: 17.01.2017, 13:38:37 от GuDeVic »
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Спасибо.
Я вставила var_dump, на экране появились сведения о загружаемом файле, и только они.
Убираю var_dump - сохраняю файлы, архивирую, загружаю компонент - ничего не меняется.
Всё выглядит так, как будто продолжается работа с неисправленным компонентом.
И наоборот, если возвращаюсь к версии, где не было var_dump и вставляю команду var_dump - тоже ничего не меняется, как будто этой команды нет.
Ничего понять не могу - ведь как-то же первый раз по Вашему совету вставила.

*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Убираю var_dump - сохраняю файлы, архивирую, загружаю компонент - ничего не меняется.
Всё выглядит так, как будто продолжается работа с неисправленным компонентом.
что архивирую и куда загружаю?)
и причем здесь var_dump?
это я просто написал для отладки что бы можно посмотреть приходит файл или нет
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
что архивирую и куда загружаю?)
и причем здесь var_dump?
это я просто написал для отладки что бы можно посмотреть приходит файл или нет
var_dump  я вставляла в контроллер и в метод register (сохранение записи) в модели. Потом эти команды убрала (закомментировала), сохранила файлы, заархивировала компонент, загрузила его, но после загрузки всё выглядело так, как будто dump_var не убран.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Код
JFile::makeSafe($file['name'])
Оффтоп - и это всё? Маловато для проверки

https://cmscafe.ru/razrabotka/547-sozdaem-bezopasnye-rasshireniya-dlya-joomla#file-uploads


У Вас сейчас дыра, как было у AdsManager Опасное расширения для Joomla - AdsManager все версии, разработчик не добросовестный!
Спасибо. Маловато будет! Это просто для тестирования возможности загрузки.
Ещё раз спасибо за дыру, в смысле, что, скорее всего это дыра, а не я сошла с ума (пока что).
Что делать? Удавиться?
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
AdsManager у меня нет, а вот ajaxupload вчера вечером установила. Может совпадение, конечно, но в своём компоненте до загрузки изображений не дошла, тк. не могла получить информацию о загруженном файле (именно поэтому я и обратилась за помощью)
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
var_dump  я вставляла в контроллер и в метод register (сохранение записи) в модели. Потом эти команды убрала (закомментировала), сохранила файлы, заархивировала компонент, загрузила его, но после загрузки всё выглядело так, как будто dump_var не убран.
причем тут сборка и установка?
все манипуляции надо производить в файлах на уже установленном расширении, а потом уже когда все готово и работает думать уже о его сборке, упаковке и т.д.
файл то получилось загрузить или нет? :)

*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
причем тут сборка и установка?
все манипуляции надо производить в файлах на уже установленном расширении, а потом уже когда все готово и работает думать уже о его сборке, упаковке и т.д.
файл то получилось загрузить или нет? :)



Речь идёт о компонентне, который надо было дополнить возможностью загрузки пользователем файла(изображения). Т.е. пользователь выбирает тип заявки, заполняет её, заявка поступает исполнителю и тд и тп.  Но. Теперь понадобилось форму заявки дополнить возможностью ввода структурной формулы (изображение.png), чтобы исполнитель имел доп. информацию. В этом компоненте я пыталась сделать загрузку файла.
Пока не получилось. Потому что ...не знаю, что случилось, но ни print_r, ни var_dump..Ладно, попробую успокоиться.
Не сама же я от руки написала
Код
array(1) { ["jform"]=> array(5) { ["name"]=> array(1) { ["img_png"]=> string(23) "Gerb_Novosibirsk_50.png" } ["type"]=> array(1) { ["img_png"]=> string(9) "image/png" } ["tmp_name"]=> array(1) { ["img_png"]=> string(14) "/tmp/php0HB8TX" } ["error"]=> array(1) { ["img_png"]=> int(0) } ["size"]=> array(1) { ["img_png"]=> int(5413) } } }
Так как к этому массиву обратиться, чтобы прочесть имя загруженного файла, если у поля имя img_png?
*

fsv

  • Живу я здесь
  • 2781
  • 411 / 2
Цитировать
Так как к этому массиву обратиться, чтобы прочесть имя загруженного файла, если у поля имя img_png?
В контроллере:
Код: php
$files = $this->input->files->get('jform', array(), 'array');
foreach( $files['img_png'] as $img )
{
    //todo
}

Попробуйте более четко излагать мысли. Ничего не понятно в теме.
Веб-разработка: заказ. Только новая разработка.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
В контроллере:
Код: php
$files = $this->input->files->get('jform', array(), 'array');
foreach( $files['img_png'] as $img )
{
    //todo
}

Попробуйте более четко излагать мысли. Ничего не понятно в теме.

Вообще-то в теме было написано и про компонент, и про проблему, и приведены  коды.
« Последнее редактирование: 18.01.2017, 21:14:10 от GuDeVic »
*

averkiev

  • Новичок
  • 3
  • 0 / 0
проблему то решили?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

routing в компоненте для соц сетей

Автор interregional

Ответов: 4
Просмотров: 946
Последний ответ 10.04.2019, 09:01:01
от sivers
Удаление в самописном компоненте компоненте

Автор phpCoder

Ответов: 8
Просмотров: 1248
Последний ответ 25.11.2016, 09:09:56
от phpCoder
Как в компоненте Backend получить чистый экран без системного джумловского меню ?

Автор tm2010

Ответов: 30
Просмотров: 2548
Последний ответ 10.02.2016, 19:34:41
от Aleks.Denezh
Создание динамических полей в своем компоненте

Автор NeuroZ

Ответов: 14
Просмотров: 1752
Последний ответ 18.08.2015, 11:17:59
от b2z
Обработка данных в компоненте перед сохранением

Автор ipservice

Ответов: 2
Просмотров: 1475
Последний ответ 27.07.2015, 12:46:01
от ipservice