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

MrRobot

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
С Праздником всех!  Может кто ни будь поможет) 
Есть сайт с компонентом EasySocial. Когда авторизированный пользователь заходит к себе на страничку фотоальбомов. То, там есть кнопочка "создать фото-альбом".
А я хочу эту кнопку перенести на его главную страничку. Но тупо белый экран происходит. Вот пример кода, саму кнопку я выделил звездочками.
Код
<?php
/**
* @package      EasySocial
* [member=126442]copyright[/member]    Copyright (C) 2010 - 2018 Stack Ideas Sdn Bhd. All rights reserved.
* @license      GNU/GPL, see LICENSE.php
* EasySocial 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.
*/
defined('_JEXEC') or die('Unauthorized Access');
?>
<div class="wrapper-for-full-height">

<?php echo $lib->heading();?>

<?php if ($this->isMobile() && $cluster) { ?>
<a class="btn btn-es-default-o btn-sm t-lg-mb--lg" href="<?php echo $cluster->getPermalink();?>">&larr; <?php echo JText::sprintf('COM_EASYSOCIAL_BACK_TO_' . strtoupper($cluster->getType()));?></a>
<?php } ?>

<?php echo $this->html('responsive.toggle'); ?>

<div class="es-container es-media-browser layout-album" data-layout="album" data-album-browser="<?php echo $uuid; ?>" data-es-container>
<?php echo $this->html('html.loading'); ?>

<div class="es-sidebar" data-album-browser-sidebar data-sidebar>

<?php echo $this->render('module', 'es-albums-sidebar-top'); ?>
********************************************************************************************
<?php if ($lib->canCreateAlbums() && !$lib->exceededLimits()) { ?>
<a href="<?php echo $lib->getCreateLink();?>" class="btn btn-es-primary btn-create btn-block t-lg-mb--xl"><?php echo JText::_('COM_EASYSOCIAL_ALBUMS_CREATE_ALBUM'); ?></a>
<?php } ?>
**********************************************************************************************
<?php if ($coreAlbums) { ?>
<div class="es-side-widget">

<?php echo $this->html('widget.title', JText::_($lib->getCoreAlbumsTitle())); ?>

<div class="es-side-widget__bd">
<ul class="o-tabs o-tabs--stacked" data-album-list-item-group="core">
<?php foreach( $coreAlbums as $album ){ ?>
<li class="o-tabs__item has-notice<?php if ($album->id==$id) { ?> active<?php } ?>" data-album-list-item data-album-id="<?php echo $album->id; ?>">
<a href="<?php echo $album->getPermalink();?>" title="<?php echo $album->get('title'); ?>" class="o-tabs__link">
<span data-album-list-item-title><?php echo $album->get('title'); ?></span>
<div class="o-tabs__bubble" data-album-list-item-count><?php echo $album->getTotalPhotos(); ?></div>
</a>
<div class="o-loader o-loader--sm"></div>
</li>
<?php } ?>
</ul>
</div>
</div>
<?php } ?>

<?php if ($lib->showMyAlbums() && ($myAlbums || ($layout == 'form' && empty($id)))) { ?>
<div class="es-side-widget">

<?php echo $this->html('widget.title', JText::_($lib->getMyAlbumsTitle())); ?>

<div class="es-side-widget__bd">
<ul class="o-tabs o-tabs--stacked" data-album-list-item-group="regular">

<?php if ($layout=="form" && empty($id)) { ?>
<li class="o-tabs__item has-notice active new" data-album-list-item>
<a href="javascript: void(0);" class="o-tabs__link">
<i data-album-list-item-cover></i>
<span data-album-list-item-title><?php echo JText::_('COM_EASYSOCIAL_ALBUMS_NEW_ALBUM'); ?></span>
<div class="o-tabs__bubble" data-album-list-item-count>0</div>
</a>
<div class="o-loader o-loader--sm"></div>
</li>
<?php } ?>

<?php foreach ($myAlbums as $album) { ?>
<li class="o-tabs__item has-notice <?php if ($album->id==$id) { ?>active<?php } ?>"  data-album-list-item data-album-id="<?php echo $album->id; ?>">
<a href="<?php echo $album->getPermalink(); ?>" title="<?php echo $this->html('string.escape', $album->get('title')); ?>" class="o-tabs__link">
<i data-album-list-item-cover style="background-image: url(<?php echo $album->getCover(); ?>);"></i>
<span data-album-list-item-title><?php echo $album->get('title'); ?></span>
<div class="o-tabs__bubble" data-album-list-item-count><?php echo $album->getTotalPhotos(); ?></div>
</a>
<div class="o-loader o-loader--sm"></div>
</li>
<?php } ?>
</ul>
</div>
</div>
<?php } ?>

<?php if ($albums || ($layout=="form" && empty($id) && !$lib->showMyAlbums())) { ?>
<div class="es-side-widget">

<?php echo $this->html('widget.title', JText::_('COM_EASYSOCIAL_OTHER_ALBUMS')); ?>

<div class="es-side-widget__bd">
<ul class="o-tabs o-tabs--stacked" data-album-list-item-group="regular" data-album-list-item-container-regular>

<?php if ($layout=="form" && empty($id) && !$lib->showMyAlbums()) { ?>
<li class="o-tabs__item has-notice active new" data-album-list-item>
<a href="javascript: void(0);" class="o-tabs__link">
<i data-album-list-item-cover></i>
<span data-album-list-item-title><?php echo JText::_('COM_EASYSOCIAL_ALBUMS_NEW_ALBUM'); ?></span>
<div class="o-tabs__bubble" data-album-list-item-count>0</div>
</a>
</li>
<?php } ?>

<?php if ($albums) { ?>
<?php foreach ($albums as $album) { ?>
<li class="o-tabs__item has-notice <?php if ($album->id==$id) { ?>active<?php } ?>"  data-album-list-item data-album-id="<?php echo $album->id; ?>">
<a href="<?php echo $album->getPermalink(); ?>" title="<?php echo $this->html('string.escape', $album->get('title')); ?>" class="o-tabs__link">
<i data-album-list-item-cover style="background-image: url(<?php echo $album->getCover(); ?>);"></i>
<span data-album-list-item-title><?php echo $album->get('title'); ?></span>
<div class="o-tabs__bubble" data-album-list-item-count><?php echo $album->getTotalPhotos(); ?></div>
</a>
</li>
<?php } ?>
<?php } ?>
</ul>
</div>

<?php if ($totalAlbums > count($albums)) { ?>
<div class="es-side-widget__bd">
<a href="javascript:void(0);" data-album-showall>
<?php echo JText::_('COM_ES_VIEW_ALL');?>
</a>
</div>
<?php } ?>

</div>
<?php } ?>

<?php echo $this->render('module', 'es-albums-sidebar-bottom'); ?>
</div>

<div class="es-content" data-wrapper>
<?php echo $this->html('html.loading'); ?>

<?php echo $this->render('module', 'es-albums-before-contents'); ?>

<div class="es-album-browser-content" data-album-browser-content>
<?php echo $content; ?>
</div>

<?php echo $this->render('module', 'es-albums-after-contents'); ?>
</div>
</div>
</div>



 Выдает ошибку
Цитировать
Warning: require_once(/home/c/cg26576/torgia/public_html/libraries/joomla/document/html/renderer/head.php): failed to open stream: No such file or directory in /home/c/cg26576/torgia/public_html/templates/ts_lawhouse/error.php on line 28

Fatal error: require_once(): Failed opening required '/home/c/cg26576/torgia/public_html/libraries/joomla/document/html/renderer/head.php' (include_path='.:/opt/php71/share/pear:/usr/share/pear') in /home/c/cg26576/torgia/public_html/templates/ts_lawhouse/error.php on line 28
« Последнее редактирование: 19.01.2019, 14:19:09 от MrRobot »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вставить видео с Telegram в материал?

Автор Ishti39

Ответов: 2
Просмотров: 1191
Последний ответ 18.06.2024, 10:41:30
от Olg
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 9
Просмотров: 4999
Последний ответ 21.02.2024, 11:03:08
от saynez
Как вставить картинку материала в модуле Последние материалы?

Автор androv77

Ответов: 13
Просмотров: 1819
Последний ответ 20.12.2022, 08:37:38
от marksetter
Блок особенностей, как добавить в поле с информацией кнопку или ссылку Подробнее

Автор Alex from SPb

Ответов: 5
Просмотров: 979
Последний ответ 28.11.2022, 19:54:42
от marksetter
Вставить логотип слева от меню так, чтобы меню не сьезжало вниз!

Автор chen

Ответов: 7
Просмотров: 933
Последний ответ 21.10.2022, 22:06:44
от marksetter