Новости Joomla

Перевод и публикация интервью на греческом портале Joomla Утро, просматриваешь входящие письма и...

Перевод и публикация интервью на греческом портале Joomla 🇬🇷Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции.Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью. Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент. 🇬🇷 Интервью на греческом портале (joomla.gr)🌐 Оригинальное интервью (на английском)Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

marbert

  • Захожу иногда
  • 417
  • 9 / 0
возникла ситуация, необходимо запретить автору нессанкционировано менять свой материал - как?

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

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Ту тему бахнули вот это подойдет http://joomlaforum.ru/index.php/topic,32718.0.html
*

marbert

  • Захожу иногда
  • 417
  • 9 / 0
Ту тему бахнули вот это подойдет http://joomlaforum.ru/index.php/topic,32718.0.html

упс.... но в content.php нет таких строк, о которых пишет smart...
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Потому что это для 1.0  ;D я не знаю почему бахнули тему, но тема была это точно и я отвечал как это сделать. Если никто не ответить позже напишу как сделать.
*

marbert

  • Захожу иногда
  • 417
  • 9 / 0
Потому что это для 1.0  ;D я не знаю почему бахнули тему, но тема была это точно и я отвечал как это сделать. Если никто не ответить позже напишу как сделать.
а без хака, выходит, никак?

т.е., нет плагина какого для регистрации CB?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Итак два варианта 1 сложный, второй простой
1. Вообщем я тогда предлагал изменить немного шаблон вывода материала. Допустим у нас есть блог категории берем файл components\com_content\views\blog_item.php находим в нем
Код
<?php $canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')); ?>
и меняем на
Код
<?php $canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all')); ?>
Ну и так с шаблонами вывода остального (материала и т.д.) подробнее читаем это Меняем вид вывода контена!
Это уберет иконку, но не спасет от ссылки на редактирование (view=article&id=IDматериала&task=edit&option=com_content) хотя она типа шифруется добавляется всякая хренатень типа "%3Afdgdfgdfg" и т.п, но это все до лампочки :). Так вот что бы злые звери не могли отредактировать надо закомментировать или удалить еще строчку в components\com_content\controller.php
Код
function edit()
{
$user =& JFactory::getUser();

// Create a user access object for the user
$access = new stdClass();
$access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all');
//$access->canEditOwn = $user->authorize('com_content', 'edit', 'content', 'own'); Эту строчку комментируем.

Но с этим вариантом там у ребят какие-то проблемы или непонятки были помоему, не помню, точно так до конца и не разобрались.
Почему тему удалили я не знаю. Может кто из старших увидит ответит :)

2. А забыл еще есть более радикальный метод с com_content\helpers\icon.php можно тупо его переименовать в icon2.php, но тогда у вас упадут все иконки PDf и т.д.

Либо меняем в com_content\helpers\icon.php
Код
if (!$access->canEdit && !($access->canEditOwn && $article->created_by == $user->get('id'))) {
return;
}
на
Код
if (!$access->canEdit) {
return;
}
И все должно работать. Да уж лучше одну строчку поменять в одном файле чем в пяти :)
Только после обновления не надо забывать меняется этот файл или нет.

Вообщем все рассказал пишите, если что не так.
« Последнее редактирование: 04.03.2009, 15:05:02 от SmokerMan »
*

marbert

  • Захожу иногда
  • 417
  • 9 / 0
Итак два варианта 1 сложный, второй простой
хм, решения серьезные и не однозначные...

ты можешь помочь в вопросе с Profile Manager (PROMA)?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
хм, решения серьезные и не однозначные...
Однозначные  8) Ибо еще не нашлись товарищи которые помогут по данному вопросу. За советами можно обратиться на оф. форум поддержки (англ.)  ;) Если что найдете по этой теме пишите здесь. Пока это просто мое мнение. Вы задали вопрос я на него ответил.
Если вы попробовали то что я написал и у вас это не получилось, так и скажите в чем заключается проблема? А по поводу сомнительно или нет это уж ... б дальше писать не хочу

По поводу личного сообщения ничем помочь не могу!

500 цука набил  *DRINK*
« Последнее редактирование: 05.03.2009, 00:38:11 от SmokerMan »
*

marbert

  • Захожу иногда
  • 417
  • 9 / 0
Однозначные  8) Ибо еще не нашлись товарищи которые помогут по данному вопросу. За советами можно обратиться на оф. форум поддержки (англ.)  ;) Если что найдете по этой теме пишите здесь. Пока это просто мое мнение. Вы задали вопрос я на него ответил.
Если вы попробовали то что я написал и у вас это не получилось, так и скажите в чем заключается проблема? А по поводу сомнительно или нет это уж ... б дальше писать не хочу

По поводу личного сообщения ничем помочь не могу!

500 цука набил  *DRINK*
нет, вопрос не в том, что Ваш совет не пригодился или еще что, вопрос в том, что когда речь шла о J1.0 и в ней нужно было изменить 2 строки в одном файле - это одно, а в случае с J1.5 - как Вы сами сказали "Да уж лучше одну строчку поменять в одном файле чем в пяти" - и при этом "Но с этим вариантом там у ребят какие-то проблемы или непонятки были" - сами понимаете...

Поскольку, речь не о персональной страничке, рисковать стремно... Признаюсь, очень удивлен, ПОЧЕМУ такая простая функция не решена joomla.org изначально, чтобы безо всяких хаков и т.п. - ведь вопрос банальный...

В любом случае, Вам, SmokerMan, спасибо за предложение!
*

koN

  • Захожу иногда
  • 103
  • 7 / 0
Всё, нашел, как повторить метод Smarta в Joomla 1.5.

components\com_content\views\

В папках (кроме архивной) найти файлы "view.html.php" и заменить в них строки:

$access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all');
$access->canEditOwn   = $user->authorize('com_content', 'edit', 'content', 'own');

На:

$access->canEdit = false;
$access->canEditOwn = false;
« Последнее редактирование: 29.07.2009, 08:34:59 от koN »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Всё, нашел, как повторить метод Smarta в Joomla 1.5.

components\com_content\views\

В папках (кроме архивной) найти файлы "view.html.php" и заменить в них строки:

$access->canEdit = $user->authorize('com_content', 'edit', 'content', 'all');
$access->canEditOwn   = $user->authorize('com_content', 'edit', 'content', 'own');

На:

$access->canEdit = false;
$access->canEditOwn = false;

При таком раскладе иконка пропадет у всех, в том числе и у админа. Тогда уже лучше оставить $access->canEdit как был.
И вообще этот вариант лучше не использовать, т.к. это делается не на уровне шаблона.
И зачем опять же менять в 4-х файлах, когда все можно сделать в одном icon.php?
*

koN

  • Захожу иногда
  • 103
  • 7 / 0
При таком раскладе иконка пропадет у всех, в том числе и у админа.

Согласен, просто мне надо было отключить редактирование с фронтенда для всех групп. Но ведь и у Смарта для Joomla 1.0 аналогично.

И зачем опять же менять в 4-х файлах, когда все можно сделать в одном icon.php?

В icon.php Вы только иконку отключаете, а смартовским методом - доступ к функции редактирования, или я что-то неправильно понимаю?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Я не знаю что там за  метод Смарта.
Но этим я думаю тоже много не добьетесь.
Проще убрать строчку из libraries\joomla\user\authorization.php
Код
$this->addACL( 'com_content', 'edit', 'users', 'author', 'content', 'own' );
*

koN

  • Захожу иногда
  • 103
  • 7 / 0
Я не знаю что там за  метод Смарта.

http://joomlaforum.ru/index.php/topic,32718.0.html

Но этим я думаю тоже много не добьетесь.

Какие могут быть проблемы?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Какие могут быть проблемы?
Да проблем собственно не каких и нет :)
Разговор не о чем. Вашим методом точно так же скрывается иконка на редактирование материала, а если пройти по нужной ссылочке
Код
?view=article&id=IDМАТЕРИАЛА&task=edit&option=com_content
то его все равно можно отредактировать.
Если хотите от этого избавиться делайте как я написал в предыдущем посте.
*

koN

  • Захожу иногда
  • 103
  • 7 / 0
Да проблем собственно не каких и нет :)
Разговор не о чем. Вашим методом точно так же скрывается иконка на редактирование материала, а если пройти по нужной ссылочке
Код
?view=article&id=IDМАТЕРИАЛА&task=edit&option=com_content
то его все равно можно отредактировать.
Если хотите от этого избавиться делайте как я написал в предыдущем посте.

Что ж, справедливо, принимается. Больше в этом файле ничего не надо менять?
*

virusnumber9

  • Захожу иногда
  • 72
  • 0 / 0
  • Творец!
Цитата: SmokerMan
Если хотите от этого избавиться делайте как я написал в предыдущем посте.

Тогда "авторы" не могут добавлять ничего
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Тогда "авторы" не могут добавлять ничего
что значит не могут?
причем здесь редактирование и добавление?
*

virusnumber9

  • Захожу иногда
  • 72
  • 0 / 0
  • Творец!
"Авторы" не могут добавлять ничего, тогда что они будут редактировать? Материал не добавляется
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
"Авторы" не могут добавлять ничего, тогда что они будут редактировать? Материал не добавляется
действительно, наверное не могут, давно тема была и всплыла тут :)
components\com_content\controller.php добавляем
Цитировать
function save()
...

      $access->canPublish      = $user->authorize('com_content', 'publish', 'content', 'all');
      $access->canADD      = $user->authorize('com_content', 'add', 'content', 'all');

      if (!($access->canEdit || $access->canEditOwn || $access->canADD)) {
         JError::raiseError( 403, JText::_("ALERTNOTAUTH") );
      }
пробуем.
*

virusnumber9

  • Захожу иногда
  • 72
  • 0 / 0
  • Творец!
Просто удалить строчку "|| $access->canEditOwn" ? Или чет я не понял...
« Последнее редактирование: 04.11.2010, 11:02:54 от virusnumber9 »
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Здравствуйте!
Подскажите, пожалуйста, можно ли ограничить возможность редактирования по времени. Чтобы Авторы могли редактировать свои материалы в течении суток, скажем, а после этого такая возможность бы пропадала?
Спасибо.
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Что, совсем никак  :o?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться