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

amelo

  • Новичок
  • 4
  • 0 / 0
Ошибка вида "Parse error: syntax error, unexpected $end in /var/www/e5435632/data/www/inti-ru.net/maki/templates/453/html/com_content/section/blog_item.php on line 131", когда в "Главной" меняю тип на "Блог Раздела". Думал, что ошибка из-за использования коротких PHP тегов <? вместо <?php, но покопавшись в blog_item.php никакой ошибки не нашёл. Перезалил файлик - ничего не изменилось.
В чём может быть проблема?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Parse error: syntax error, unexpected $end in....
« Ответ #1 : 24.02.2010, 14:03:05 »
так покопайтесь в этом файле, скорей всего там ошибка синтаксиса, незакрытое условие или что то вроде
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

amelo

  • Новичок
  • 4
  • 0 / 0
Re: Parse error: syntax error, unexpected $end in....
« Ответ #2 : 24.02.2010, 14:16:29 »
копался. ничего не нашёл. вот сам код:

Код
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<?php $canEdit   = ($this->user->authorize('com_content', 'edit', 'content', 'all') || $this->user->authorize('com_content', 'edit', 'content', 'own')); ?>
<?php if ($this->item->state == 0) : ?>

<div class="system-unpublished">
    <?php endif; ?>
    <?php if ($this->item->params->get('show_title') || $this->item->params->get('show_pdf_icon') || $this->item->params->get('show_print_icon') || $this->item->params->get('show_email_icon') || $canEdit) : ?>
    <div class="article-title-indent">
        <div class="article-title-wrapper">
            <table class="contentpaneopen<?php echo $this->escape($this->item->params->get( 'pageclass_sfx' )); ?>">
                <tr>
                    <?php if ($this->item->params->get('show_title')) : ?>
                    <td class="contentheading<?php echo $this->escape($this->item->params->get( 'pageclass_sfx' )); ?>" width="100%"><?php if ($this->item->params->get('link_titles') && $this->item->readmore_link != '') : ?>
                        <a href="<?php echo $this->item->readmore_link; ?>" class="contentpagetitle<?php echo $this->escape($this->item->params->get( 'pageclass_sfx' )); ?>"> <?php echo $this->escape($this->item->title); ?></a>
                        <?php else : ?>
                        <?php echo $this->escape($this->item->title); ?>
                        <?php endif; ?>
                    </td>
                    <?php endif; ?>
                    <?php if (($this->params->get('show_pdf_icon')) or ( $this->params->get( 'show_print_icon' )) or ($this->params->get('show_email_icon')) or ($canEdit) ): ?>
                    <td width="100%"><div class="icon-indent">
                            <table>
                                <tr>
                                    <?php if ($this->item->params->get('show_pdf_icon')) : ?>
                                    <td align="right" width="100%" class="buttonheading"><?php echo JHTML::_('icon.pdf', $this->item, $this->item->params, $this->access); ?> </td>
                                    <?php endif; ?>
                                    <?php if ( $this->item->params->get( 'show_print_icon' )) : ?>
                                    <td align="right" width="100%" class="buttonheading"><?php echo JHTML::_('icon.print_popup', $this->item, $this->item->params, $this->access); ?> </td>
                                    <?php endif; ?>
                                    <?php if ($this->item->params->get('show_email_icon')) : ?>
                                    <td align="right" width="100%" class="buttonheading"><?php echo JHTML::_('icon.email', $this->item, $this->item->params, $this->access); ?> </td>
                                    <?php endif; ?>
                                    <?php if ($canEdit) : ?>
                                    <td align="right" width="100%" class="buttonheading"><?php echo JHTML::_('icon.edit', $this->item, $this->item->params, $this->access); ?> </td>
                                    <?php endif; ?>
                                </tr>
                            </table>
                        </div></td>
                    <?php endif; ?>
                </tr>
            </table>
            <?php if (($this->params->get('show_author')) or ( $this->params->get( 'show_create_date' )) ): ?>
            <div class="article-indent">
                <?php if (($this->item->params->get('show_author')) && ($this->item->author != "")) : ?>
                <span class="small">
                <?php JText::printf( 'Written by', ($this->escape($this->item->created_by_alias)? $this->escape($this->item->created_by_alias) : $this->escape($this->item->author)) ); ?>
                </span>
                <?php endif; ?>
                <?php if ($this->item->params->get('show_create_date')) : ?>
                <div class="createdate"><?php echo JHTML::_('date', $this->item->created, JText::_('DATE_FORMAT_LC2')); ?></div>
                <?php endif; ?>
            </div>
            <?php endif; ?>
        </div>
    </div>
</div>
<?php  if (!$this->item->params->get('show_intro')) :
echo $this->item->event->afterDisplayTitle;
endif; ?>
<?php echo $this->item->event->beforeDisplayContent; ?>
<div class="article-text-indent">
    <div class="clear">
        <table class="contentpaneopen<?php echo $this->escape($this->item->params->get( 'pageclass_sfx' )); ?>">
            <?php if (($this->item->params->get('show_section') && $this->item->sectionid) || ($this->item->params->get('show_category') && $this->item->catid)) : ?>
            <tr>
                <td><?php if ($this->item->params->get('show_section') && $this->item->sectionid && isset($this->section->title)) : ?>
                    <span>
                    <?php if ($this->item->params->get('link_section')) : ?>
                    <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute($this->item->sectionid)).'">'; ?>
                    <?php endif; ?>
                    <?php echo $this->escape($this->section->title); ?>
                    <?php if ($this->item->params->get('link_section')) : ?>
                    <?php echo '</a>'; ?>
                    <?php endif; ?>
                    <?php if ($this->item->params->get('show_category')) : ?>
                    <?php echo ' - '; ?>
                    <?php endif; ?>
                    </span>
                    <?php endif; ?>
                    <?php if ($this->item->params->get('show_category') && $this->item->catid) : ?>
                    <span>
                    <?php if ($this->item->params->get('link_category')) : ?>
                    <?php echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($this->item->catslug, $this->item->sectionid)).'">'; ?>
                    <?php endif; ?>
                    <?php echo $this->escape($this->item->category); ?>
                    <?php if ($this->item->params->get('link_category')) : ?>
                    <?php echo '</a>'; ?>
                    <?php endif; ?>
                    </span>
                    <?php endif; ?>
                </td>
            </tr>
            <?php endif; ?>
            <?php if ($this->item->params->get('show_url') && $this->item->urls) : ?>
            <tr>
                <td valign="top" colspan="2"><a href="http://<?php echo $this->escape($this->item->urls) ; ?>" target="_blank"> <?php echo $this->escape($this->item->urls); ?></a> </td>
            </tr>
            <?php endif; ?>
            <tr>
                <td valign="top" colspan="2"><?php if (isset ($this->item->toc)) : ?>
                    <?php echo $this->item->toc; ?>
                    <?php endif; ?>
                    <?php echo $this->item->text; ?> </td>
            </tr>
            <?php if ( intval($this->item->modified)!= 0 && $this->item->params->get('show_modify_date')) : ?>
            <tr>
                <td colspan="2"  class="modifydate"><?php echo JText::sprintf('LAST_UPDATED2', JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2'))); ?> </td>
            </tr>
            <?php endif; ?>
            <?php if ($this->item->params->get('show_readmore') && $this->item->readmore) : ?>
            <tr>
                <td  colspan="2"><div class="indent-more"> <a href="<?php echo $this->item->readmore_link; ?>" class="png readon<?php echo $this->escape($this->item->params->get('pageclass_sfx')); ?>">
                        <?php if ($this->item->readmore_register) :
echo JText::_('Register to read more...');
elseif ($readmore = $this->item->params->get('readmore')) :
echo $readmore;
else :
echo JText::sprintf('Read more...');
endif; ?>
                        </a> </div></td>
            </tr>
            <?php endif; ?>
        </table>
    </div>
</div>
<?php if ($this->item->state == 0) : ?>
</div>
<?php endif; ?>
<div class="article-separator-indent"><span class="article_separator">&nbsp;</span></div>
<?php echo $this->item->event->afterDisplayContent; ?>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не могу распаковать jpa архив сайта Akeeba backup. ajax error

Автор smadkz

Ответов: 4
Просмотров: 1905
Последний ответ 26.12.2020, 15:15:15
от stendapuss
Fatal error: Class 'JDocument' not found

Автор gabiboi

Ответов: 2
Просмотров: 2415
Последний ответ 04.09.2020, 14:39:07
от svetka_777
simpleform2 ошибка ajax error в Google chrome

Автор safronoff343

Ответов: 1
Просмотров: 1256
Последний ответ 05.06.2020, 20:36:42
от safronoff343
Ошибка Fatal error: Allowed memory size of 73400320 bytes exhausted

Автор Andre109

Ответов: 1
Просмотров: 2170
Последний ответ 03.12.2018, 01:29:56
от voland
Ошибка 500 Internal Server Error. Что это такое и как это решить

Автор sargiusz

Ответов: 4
Просмотров: 5602
Последний ответ 20.03.2017, 14:30:33
от flyingspook