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

Digan

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Привет всем.

Есть такой код.

Код: php
          <div class="content_box">
            <div class="content_top">
              <div class="ct_tl"></div>
              <div class="ct_tm"></div>
              <div class="ct_tr"></div>
              <span style="float:right"><?php echo date("d.m.Y"); ?></span>
 <a href="http://ссылка на категорию" style="color:#bdf3f4;">[Название категории]</a>
              <a href="http://ссылка на материал" style="color:#FFFFFF;">
                <strong>Заголовок новости</strong>
              </a>
            </div>
            <div class="content_text">
              <br>
              <br>
              <div style="width:90%; margin:0px auto;">
<img src="ссылка на картинку" border="0" width="200" height="200">
<div id=newtext>
Текст новости
                      </div>
    <br>
                <hr>
                 <a href="http://ссылка на статью" style="text-decoration:underline;" target="_blank">Читать далее...</a>
                <br>
                <br>
              </div>
              <p>
  </p>
              <div style="height:12px; font-size:8pt;">
              </div>
            </div>
            <div class="content_bottom">
              <div class="ct_bl"></div>
              <div class="ct_bm"></div>
              <div class="ct_br"></div>
            </div>
          </div>

Это так сказать шаблон для новости. Каждая новость должна иметь такую разметку. Общий контейнер куда помещаются новости это див с id="main_container". То есть при каждом добавлении новости в начало дива main_container должен добавлятся новый див content_box.

Я так понял нужно писать компонент или переделать существующий. В настройках компонента нужны: текстовый редактор, возможнсть указать ссылку на категорию, возможность указать ссылку на материал. Как это можно реализовать?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Как реализовать ленту новостей
« Ответ #1 : 31.10.2011, 07:54:55 »
Зачем компонент, открываете шаблон стандартного контента и вперед с песнями
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Digan

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Как реализовать ленту новостей
« Ответ #2 : 01.11.2011, 01:59:33 »
Спасибо за ответ. Я сделал немного по другому. Перпеписал модуль последних новостей.

Модуль теперь выглядит так:
Код: php
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<ul class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
<?php foreach ($list as $item) :  ?>
<div class="content_box">
<div class="content_top">
<div class="ct_tl"></div>
<div class="ct_tm"></div>
<div class="ct_tr"></div>
<span style="float:right"><?php echo date("d.m.Y"); ?></span>
<a href="<?php echo $item->link; ?>" style="color:#bdf3f4;"><?php if ( $params->get('category')==1) echo $item->text3;?></a>
<a href="<?php echo $item->link; ?>" style="color:#FFFFFF;" class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
<strong><?php echo $item->text1; ?></strong>
</a>
</div>
<div class="content_text">
<br>
<br>
<div style="width:90%; margin:0px auto;">
<div id=newtext>
<?php
if ( $params->get('intro_text')==1)
echo '<br/>'.$item->text4;
?>
</div>
<br>
<hr>
<a href="http://ссылка на статью" style="text-decoration:underline;" target="_blank">Читать далее...</a>
<br>
<br>
</div>
<p>
</p>
<div style="height:12px; font-size:8pt;">
</div>
<div class="content_bottom">
  <div class="ct_bl"></div>
              <div class="ct_bm"></div>
              <div class="ct_br"></div>
</div>
</div>
</div>
<?php endforeach; ?>
</ul>

Теперь появилась еще парочка вопросов.

1. Как в новость поставить дату публикации материала?
2. Как в материал добавить ссылку на другой материал? Хотелось бы выбрать через комбобокс или хотя бы нужную ссылку ввести в едитбокс.
« Последнее редактирование: 01.11.2011, 02:35:38 от Digan »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Как реализовать ленту новостей
« Ответ #3 : 01.11.2011, 10:52:21 »
1 - http://joomlaforum.ru/index.php/topic,75239.0.html
2 - есть редактор JCE и к нему плагин advlink
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Digan

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Как реализовать ленту новостей
« Ответ #4 : 09.11.2011, 17:28:14 »
1 - http://joomlaforum.ru/index.php/topic,75239.0.html
2 - есть редактор JCE и к нему плагин advlink
Благодарю. Вроде работает, но почему у меня вместо даты создания материала выводиться текущая дата? Сделал так как по ссылке.
Т.е. беру $row->created. В базе стоит правильная дата, а в новости почему выводиться текущая дата и время.

Еще я в новости сделал ссылку на список материалов в категории, к которой отоситься материал новости. Но при клике список выводиться внизу, после новостей, а нужно, чтобы при клике на название категории выводились только материалы этой категории, без новостей. Такое я встречал при использовании модуля поиска. При поиске форма поика выводиться после новостей, а нужно чтобы они выводилась только форма. Новости у меня выводятся только на главной странице. Как сделать так, чтобы это выводилось правильно?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Как реализовать ленту новостей
« Ответ #5 : 09.11.2011, 18:52:16 »
Благодарю. Вроде работает, но почему у меня вместо даты создания материала выводиться текущая дата? Сделал так как по ссылке.
Т.е. беру $row->created. В базе стоит правильная дата, а в новости почему выводиться текущая дата и время.
Не может быть такого, если выводите $row->created

Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Digan

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Как реализовать ленту новостей
« Ответ #6 : 09.11.2011, 23:08:03 »
Не может быть такого, если выводите $row->created



Сами можете убедиться.
Вот код:
Код: php
		foreach ( $rows as $row )
{
if($row->access <= $aid)
{
$lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));
} else {
$lists[$i]->link = JRoute::_('index.php?option=com_user&view=login');
}
$lists[$i]->text1 = htmlspecialchars( $row->at );
$lists[$i]->text2 = htmlspecialchars( $row->st );

$lists[$i]->categorylink = JRoute::_( 'index.php?view=category&amp;id='.$row->catslug );
    $lists[$i]->text3 = htmlspecialchars( $row->ct );

$lists[$i]->text4 = strip_tags (mb_substr ($row->it, '0', '1300') );
$lists[$i]->created = JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC2'));

$i++;
}

Код: php
<?php // no direct access
defined('_JEXEC') or die('Restricted access'); ?>
<ul class="latestnews<?php echo $params->get('moduleclass_sfx'); ?>">
<?php foreach ($list as $item) :  ?>
<div class="content_box">
<div class="content_top">
<div class="ct_tl"></div>
<div class="ct_tm"></div>
<div class="ct_tr"></div>
<span style="float:right" class="date"><?php echo $item->created; ?></span>

<a href="<?php echo $item->categorylink; ?>" style="color:#bdf3f4;"><?php if ( $params->get('category')==1) echo "[Категория: ".$item->text3."]";?></a>
<a href="<?php echo $item->link; ?>" style="color:#FFFFFF;" class="latestnews<?php echo $params->get ('moduleclass_sfx'); ?>">
<strong><?php echo $item->text1; ?></strong>
</a>
</div>
<div class="content_text">
<!--Ссылки на "мне нравится"-->
<table border="0" align="right">
<tbody>
  <tr>
<td>
<img src="/templates/beautylike/images/facebook-icon.png" border="0" height="20">
</td>
<td>
<img src="/templates/beautylike/images/twitter-icon.png" border="0" height="20">
</td>
<td>
  <img src="/templates/beautylike/images/vkontakte-icon.png" border="0" height="20">
</td>
<td>
  <img src="/templates/beautylike/images/livejournal-icon.png" border="0" height="20">
</td>
  </tr>
</tbody>
</table>
<br>
<br>
<div style="width:90%; margin:0px auto;">
<div id=newtext>
<?php echo $item->text4; ?>
<a style="color:#bdf3f4;" href="<?php echo $item->link; ?>" title="Читать далее"> читать далее...</a>
<br>
<hr>
<a style="color:#bdf3f4;" href="<?php echo $item->link; ?>" title="Читать">Читать статью</a>
</div>
</div>
<p>
</p>
<div style="height:12px; font-size:8pt;">
</div>
<div class="content_bottom">
  <div class="ct_bl"></div>
  <div class="ct_bm"></div>
  <div class="ct_br"></div>
</div>
</div>
</div>
<?php endforeach; ?>
</ul>
*

Digan

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Re: Как реализовать ленту новостей
« Ответ #7 : 12.11.2011, 16:32:50 »
1 - http://joomlaforum.ru/index.php/topic,75239.0.html

Подскажите почему модуль по этой ссылке обрезает вставленные в начало статьи картинки? Как сделать так, чтобы картинки из статьи отображались и в новости?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Как реализовать ленту новостей
« Ответ #8 : 12.11.2011, 17:42:53 »
Подскажите почему модуль по этой ссылке обрезает вставленные в начало статьи картинки? Как сделать так, чтобы картинки из статьи отображались и в новости?
Потому что либо htmlspecialchars либо strip_tags
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод отображения последних новостей в 2 колонки

Автор Mark54

Ответов: 2
Просмотров: 1551
Последний ответ 17.01.2017, 13:37:32
от beliyadm
как сделать ленту новостей для моего же сайта?

Автор Darya_Meshkova

Ответов: 4
Просмотров: 2542
Последний ответ 14.01.2015, 12:20:57
от darkghost
[Решено] Модуль вывода новостей с картинками для Joomla 1.5

Автор DizainerGazeti

Ответов: 21
Просмотров: 4586
Последний ответ 13.10.2014, 17:49:48
от DizainerGazeti
Парсер новостей

Автор kav

Ответов: 1
Просмотров: 1341
Последний ответ 14.08.2014, 10:35:17
от OmniWizard
Картинка в списке новостей на главной

Автор barkos

Ответов: 9
Просмотров: 1341
Последний ответ 17.04.2014, 21:41:39
от Shustry