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

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Добрый день, у меня есть такая маленькая проблема размеров в ЛОГО.
После обновление Joomla на версию 3.8.12 у меня получился просто белый сайт, поэтому я начал отключать модули и узнал что модуль ЛОГО у меня вызывает ошибку PHP Fatal error:  Call to a member function get() on null in
/webroot/templates/bootstrap/html/mod_menu/logo.php on line 42
Вот что находится в файле logo.php
Спойлер
[свернуть]
И тут вопрос, что с этим делать, отключаю модуль всё работает нормально?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Перед 32 строки добавь
Код: php
echo '<pre>';
print_r($menu_item);
echo '</pre>';
exit;
Что будет на странице?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Перед 32 строки добавь
Код: php
echo '<pre>';
print_r($menu_item);
echo '</pre>';
exit;
Что будет на странице?
Вот что появилось после добавления.
Спойлер
[свернуть]
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
А ты уверен что это ошибка появилась после обновления Joomla?
В переменной $menu_item нет даже массива params. Так при чем здесь Joomla!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
А ты уверен что это ошибка появилась после обновления Joomla?
В переменной $menu_item нет даже массива params. Так при чем здесь Joomla!
Да уверен, потому что до обновления всё работало, после перестало.
Делаю откат и всё работает, ставлю обнову и всё опять гаснет, так что определённо обнова.
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Есть идеи для решения этой проблемы ?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Код: php
echo '<pre>';
print_r($menu_item);
echo '</pre>';
exit;
Выполни код до и после обновления. В чем их разница?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Код: php
echo '<pre>';
print_r($menu_item);
echo '</pre>';
exit;
Выполни код до и после обновления. В чем их разница?
После обновления скидывал выше, до обновления не реагирует на код вообще никак.
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
После обновления скидывал выше, до обновления не реагирует на код вообще никак.
Это все равно надо сделать. Надо знать что содержится в переменной $menu_item
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
После обновления я вставляю ваш код и получаю,
Код
ttjoomla\content\menu\ItemArticle Object
(
    [j_microdata:ttjoomla\models\Item:private] =>
    [jregistry:ttjoomla\helpers\Registry:private] => Joomla\Registry\Registry Object
        (
            [data:protected] => stdClass Object
                (
                    [id] => 101
                    [menutype] => main-menu
                    [title] => Domovská stránka
                    [alias] => homepage
                    [note] =>
                    [route] => homepage
                    [link] => index.php?option=com_content&view=article&id=13
                    [type] => component
                    [level] => 1
                    [language] => cs-CZ
                    [browserNav] => 0
                    [access] => 1
                    [home] => 1
                    [img] => 
                    [template_style_id] => 0
                    [component_id] => 22
                    [parent_id] => 1
                    [component] => com_content
                    [tree] => Array
                        (
                            [0] => 101
                        )

                    [query] => ttjoomla\helpers\Registry Object
                        (
                            [jregistry:ttjoomla\helpers\Registry:private] => Joomla\Registry\Registry Object
                                (
                                    [data:protected] => stdClass Object
                                        (
                                            [option] => com_content
                                            [view] => article
                                            [id] => 13
                                        )

                                    [initialized:protected] => 1
                                    [separator] => .
                                )

                        )

                    [url] => /
                    [html_id] => menu-item-101
                )

            [initialized:protected] => 1
            [separator] => .
        )

)
До обновления вставляю ваш код и ничего не происходит, сайт работает как и работал.
Просто не реагирует на данный код, консоль тоже пуста, логи так же.
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Скинь файл logo.php без правок. Такой какой он был в архиве!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
До обновы
Код
<?php
defined('_JEXEC') or die;

JLoader::registerNamespace('ttjoomla', JPATH_LIBRARIES);

use ttjoomla\menu\Module;

$module = new Module($module, $params, $attribs, $list, $base);
$menu_item = $module->getItemBase();

$link["tag"] = "span";
$link['attrs'] = [];
$link['url'] = $menu_item->flink;
$link['uri'] = JUri::getInstance($link['url']);
if ($link['uri']->getHost() === null) {
    $link['url'] = str_replace('///', '/', \JUri::base().'/'. $link['url']);
}
if (!empty($link['url'])) {
    $link["tag"] = "a";
    $link['attrs']['href'] = 'href="'. $link['url'] .'"';
}
echo '<pre>';
print_r($menu_item);
echo '</pre>';
exit;
$link["open_tag"] = $link['tag'] .' '. join(' ', $link['attrs']);
       
$image = [];
$image['url'] = $menu_item->params['menu_image'];
$image['uri'] = \JUri::getInstance($image['url']);
if ($image['uri']->getHost() === null) {
    $image['url'] = \JUri::base().'/'. $image['url'];
}

$title = [];
$title['text'] = $menu_item->params->get('page_heading', $menu_item->title);
$title['tag'] = $module->params['header_tag'];

$subtitle = [];
$subtitle['text'] = $menu_item->params['menu-anchor_title'];


/*
if ($menu_item instanceof MenuItemAlias) {
    $alias_ref_item =  $menu_item->getRefItem();
   
    empty($logo_layout->getParams()->title_text) && $logo_layout->getParams()->title_text = $alias_ref_item->params['page_heading'];
    empty($logo_layout->getParams()->subtitle_text) && $logo_layout->getParams()->subtitle_text = $alias_ref_item->params['menu-anchor_title'];
}
*/
?>

<article id="<?php echo $module->html_id ?>"
    class="<?php echo trim('logo '. join(' ', $module->params['moduleclass_sfx']))?>">
    <header class="clearfix">
        <?php if ($image['url']): ?>
            <div class="logo-image pull-left">
                <<?php echo $link["open_tag"] ?>>
                    <img class="img-responsive" src="<?php echo $image['url'] ?>">
                </<?php echo $link["tag"] ?>>
            </div>
        <?php endif; ?>
        <?php if (!empty($title['text'])): ?>
            <<?php echo $title['tag'] ?> class="<?php echo trim('logo-title '. join(' ', $module->params['header_class']))?>">
                <<?php echo $link["open_tag"] ?>>
                    <?php echo $title['text'] ?>
                </<?php echo $link["tag"] ?>>
            </<?php echo $title['tag'] ?>>
        <?php endif; ?>
    </header>
    <?php if ($subtitle['text']): ?>
    <div class="logo-subtitle">
        <?php echo $subtitle['text']; ?>
    </div>
    <?php endif; ?>
</article>
После обновы
Код
<?php
defined('_JEXEC') or die;

JLoader::registerNamespace('ttjoomla', JPATH_LIBRARIES);

use ttjoomla\menu\Module;

$module = new Module($module, $params, $attribs, $list, $base);
$menu_item = $module->getItemBase();

$link["tag"] = "span";
$link['attrs'] = [];
$link['url'] = $menu_item->flink;
$link['uri'] = JUri::getInstance($link['url']);
if ($link['uri']->getHost() === null) {
    $link['url'] = str_replace('///', '/', \JUri::base().'/'. $link['url']);
}
if (!empty($link['url'])) {
    $link["tag"] = "a";
    $link['attrs']['href'] = 'href="'. $link['url'] .'"';
}
echo '<pre>';
print_r($menu_item);
echo '</pre>';
exit;
$link["open_tag"] = $link['tag'] .' '. join(' ', $link['attrs']);
       
$image = [];
$image['url'] = $menu_item->params['menu_image'];
$image['uri'] = \JUri::getInstance($image['url']);
if ($image['uri']->getHost() === null) {
    $image['url'] = \JUri::base().'/'. $image['url'];
}

$title = [];
$title['text'] = $menu_item->params->get('page_heading', $menu_item->title);
$title['tag'] = $module->params['header_tag'];

$subtitle = [];
$subtitle['text'] = $menu_item->params['menu-anchor_title'];


/*
if ($menu_item instanceof MenuItemAlias) {
    $alias_ref_item =  $menu_item->getRefItem();
   
    empty($logo_layout->getParams()->title_text) && $logo_layout->getParams()->title_text = $alias_ref_item->params['page_heading'];
    empty($logo_layout->getParams()->subtitle_text) && $logo_layout->getParams()->subtitle_text = $alias_ref_item->params['menu-anchor_title'];
}
*/
?>

<article id="<?php echo $module->html_id ?>"
    class="<?php echo trim('logo '. join(' ', $module->params['moduleclass_sfx']))?>">
    <header class="clearfix">
        <?php if ($image['url']): ?>
            <div class="logo-image pull-left">
                <<?php echo $link["open_tag"] ?>>
                    <img class="img-responsive" src="<?php echo $image['url'] ?>">
                </<?php echo $link["tag"] ?>>
            </div>
        <?php endif; ?>
        <?php if (!empty($title['text'])): ?>
            <<?php echo $title['tag'] ?> class="<?php echo trim('logo-title '. join(' ', $module->params['header_class']))?>">
                <<?php echo $link["open_tag"] ?>>
                    <?php echo $title['text'] ?>
                </<?php echo $link["tag"] ?>>
            </<?php echo $title['tag'] ?>>
        <?php endif; ?>
    </header>
    <?php if ($subtitle['text']): ?>
    <div class="logo-subtitle">
        <?php echo $subtitle['text']; ?>
    </div>
    <?php endif; ?>
</article>
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
42 строка что до что после обновления она пуста! Ну так в какой строке ошибка?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
42 строка что до что после обновления она пуста! Ну так в какой строке ошибка?
Извиняюсь, до обновления выдаёт вот это
Спойлер
[свернуть]
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Извиняюсь, до обновления выдаёт вот это
Уже не суть важно. Все равно в объекте нет массива params.
Так можно только гадать!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
До обновы
Спойлер
[свернуть]
После обновы
Спойлер
[свернуть]
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Уже не суть важно. Все равно в объекте нет массива params.
Так можно только гадать!
Ещё скинул полностью файлы из сервера, какие могут быть решения  ?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Ещё скинул полностью файлы из сервера, какие могут быть решения  ?
Вот если бы ты знал PHP таких бы проблем не было.
Сделаю за 700 RUB.
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Вот если бы ты знал PHP таких бы проблем не было.
Сделаю за 700 RUB.
Без проблем бы заплатил, но у меня нету Яндекс денег, только оплата картой.
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Без проблем бы заплатил, но у меня нету Яндекс денег, только оплата картой.
Там на карту тоже можно положить!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

olikCZ

  • Осваиваюсь на форуме
  • 30
  • 0 / 0
Там на карту тоже можно положить!
Хорошо, как проходит сделка ?
И сколько это дело времени займёт ?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Обновление Joomla 3.10 до 4

Автор Scaltro

Ответов: 0
Просмотров: 946
Последний ответ 19.09.2024, 18:32:39
от Scaltro
Сохранить не удалось из-за ошибки: Содержимое превышает допустимые лимиты

Автор R31rus

Ответов: 21
Просмотров: 5424
Последний ответ 27.03.2024, 16:46:13
от Gorilla
Обновление Joomla

Автор toxic_rain

Ответов: 1
Просмотров: 757
Последний ответ 17.03.2023, 12:56:01
от marksetter
jos-Error: Материал не найден вместо 404 ошибки

Автор bugmenot

Ответов: 4
Просмотров: 1434
Последний ответ 10.01.2023, 11:32:11
от Mick_20
Ошибки при переходе на PHP 8.2

Автор Dram

Ответов: 6
Просмотров: 1681
Последний ответ 30.12.2022, 13:44:32
от Dram