Новости Joomla

Перевод и публикация интервью с 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

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

victordnepr

  • Новичок
  • 1
  • 0 / 0
Новости не в столбик
« : 30.07.2013, 22:14:52 »
сейчас на сайте (по ходу это шаблон) одна новость на всю область, а вторя уже в первой колонке, 3 во второй и 4 в третьей.
Но хочеться сделать чтобы новости в одну колонку были. Как это сделать?

Код: индекс.хпх
<?php
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.framework', true);
require('css/helper.php');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/default.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/config.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/toolbar.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/modules.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/styles/style1.css" type="text/css" />
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/js/jquery.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/js/<?php echo $this->params->get('menutype'); ?>.js"></script>
<script type="text/javascript">     
var $j = jQuery.noConflict();
$j(document).ready(function() {           
$j('#wdb_toolbar ul ').superfish({               
delay:       500,                                         
animation:   {opacity:'show',height:'show'},               
speed:       'slow',                                       
autoArrows:  false,                                         
dropShadows: false                                           
});         
});         
</script>
</head>

<body id="<?php echo $this->params->get('presetstyle'); ?>" class="<?php echo $this->params->get('fontfamily'); ?>">
<?php if($this->countModules('topmenu') or $this->countModules('topright')) : ?>
<div id="wdb_top-line" class="clr">
<div id="wdb_top-structure">
<div id="wdb_topmenu">
<jdoc:include type="modules" name="topmenu" style="none" />
</div>
<div id="wdb_topright">
<jdoc:include type="modules" name="topright" style="none" />
</div>
</div>
</div>
<?php endif; ?>
<div id="wdb_header-line" class="clr">
<div id="wdb_header-structure">
<div id="wdb_logo">
&nbsp;
</div>
<div id="wdb_header">
<jdoc:include type="modules" name="header" style="none" />
</div>
</div>
</div>
<?php if($this->countModules('toolbar') or $this->countModules('search')) : ?>
<div id="wdb_toolbar-line" class="clr">
<div id="wdb_toolbar-structure">
<div id="wdb_toolbar">
<jdoc:include type="modules" name="toolbar" style="none" />
</div>
<?php if($this->countModules('search')) : ?>
<div id="wdb_search">
<jdoc:include type="modules" name="search" style="none" />
</div>
<?php endif; ?>
</div>
</div>
<div id="wdb_spacer-line" class="clr">
<div id="wdb_spacer-structure">
&nbsp;
</div>
</div>
<?php endif; ?>
<?php if($this->countModules('banner')) : ?>
<div id="wdb_banner-line" class="clr">
<div id="wdb_banner-structure">
<jdoc:include type="modules" name="banner" style="none" />
</div>
</div>
<?php endif; ?>
<?php $mClasses = modulesClasses('block1'); if ($this->countModules('advert1') or $this->countModules('advert2') or $this->countModules('advert3') or $this->countModules('advert4') or $this->countModules('advert5')) : ?>
<div id="wdb_advert-line" class="clr">
<div id="wdb_advert-bg">
<div id="wdb_advert-structure">
<div class="<?php echo $advert_width; ?>">
<?php if($this->countModules('advert1')) : ?>
<div class="wdb_advert <?php echo $mClasses['advert1'][0]; ?>">
<jdoc:include type="modules" name="advert1" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('advert2')) : ?>
<div class="wdb_advert <?php echo $mClasses['advert2'][0]; ?>">
<jdoc:include type="modules" name="advert2" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('advert3')) : ?>
<div class="wdb_advert <?php echo $mClasses['advert3'][0]; ?>">
<jdoc:include type="modules" name="advert3" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('advert4')) : ?>
<div class="wdb_advert <?php echo $mClasses['advert4'][0]; ?>">
<jdoc:include type="modules" name="advert4" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('advert5')) : ?>
<div class="wdb_advert <?php echo $mClasses['advert5'][0]; ?>">
<jdoc:include type="modules" name="advert5" style="xhtml" />
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php endif; ?>
<div id="wdb_body-line" class="clr">
<div id="wdb_body-structure">
<div id="wdb_body-bg">
<?php if($this->countModules('left')) : ?>
<div id="wdb_left<?php echo $style; ?>">
<jdoc:include type="modules" name="left" style="xhtml" />
</div>
<?php endif; ?>
<div id="wdb_body<?php echo $style; ?>">
<?php $mClasses = modulesClasses('block2'); if ($this->countModules('user1') or $this->countModules('user2') or $this->countModules('user3')) : ?>
<div id="wdb_user<?php echo $style; ?>" class="clr">
<div class="<?php echo $user_width; ?>">
<?php if($this->countModules('user1')) : ?>
<div class="wdb_user <?php echo $mClasses['user1'][0]; ?>">
<jdoc:include type="modules" name="user1" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('user2')) : ?>
<div class="wdb_user <?php echo $mClasses['user2'][0]; ?>">
<jdoc:include type="modules" name="user2" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('user3')) : ?>
<div class="wdb_user <?php echo $mClasses['user3'][0]; ?>">
<jdoc:include type="modules" name="user3" style="xhtml" />
</div>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<?php $mClasses = modulesClasses('block3'); if ($this->countModules('user4') or $this->countModules('user5') or $this->countModules('user6')) : ?>
<div id="wdb_user<?php echo $style; ?>" class="clr">
<div class="<?php echo $user2_width; ?>">
<?php if($this->countModules('user4')) : ?>
<div class="wdb_user <?php echo $mClasses['user4'][0]; ?>">
<jdoc:include type="modules" name="user4" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('user5')) : ?>
<div class="wdb_user <?php echo $mClasses['user5'][0]; ?>">
<jdoc:include type="modules" name="user5" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('user6')) : ?>
<div class="wdb_user <?php echo $mClasses['user6'][0]; ?>">
<jdoc:include type="modules" name="user6" style="xhtml" />
</div>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<div id="wdb_content" class="clr">
<jdoc:include type="message" />

<?php require_once(dirname(__FILE__).'/css/system.php'); ?>
<jdoc:include type="component" />
</div>
<?php $mClasses = modulesClasses('block4'); if ($this->countModules('user7') or $this->countModules('user8') or $this->countModules('user9')) : ?>
<div id="wdb_user<?php echo $style; ?>" class="clr">
<div class="<?php echo $user3_width; ?>">
<?php if($this->countModules('user7')) : ?>
<div class="wdb_user <?php echo $mClasses['user7'][0]; ?>">
<jdoc:include type="modules" name="user7" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('user8')) : ?>
<div class="wdb_user <?php echo $mClasses['user8'][0]; ?>">
<jdoc:include type="modules" name="user8" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('user9')) : ?>
<div class="wdb_user <?php echo $mClasses['user9'][0]; ?>">
<jdoc:include type="modules" name="user9" style="xhtml" />
</div>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
</div>
<?php if($this->countModules('right')) : ?>
<div id="wdb_right<?php echo $style; ?>">
<jdoc:include type="modules" name="right" style="xhtml" />
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php $mClasses = modulesClasses('block5'); if ($this->countModules('footer1') or $this->countModules('footer2') or $this->countModules('footer3') or $this->countModules('footer4') or $this->countModules('footer5')) : ?>
<div id="wdb_footer-line" class="clr">
<div id="wdb_footer-bg">
<div id="wdb_footer-structure">
<div class="<?php echo $footer_width; ?>">
<?php if($this->countModules('footer1')) : ?>
<div class="wdb_footer <?php echo $mClasses['footer1'][0]; ?>">
<jdoc:include type="modules" name="footer1" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('footer2')) : ?>
<div class="wdb_footer <?php echo $mClasses['footer2'][0]; ?>">
<jdoc:include type="modules" name="footer2" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('footer3')) : ?>
<div class="wdb_footer <?php echo $mClasses['footer3'][0]; ?>">
<jdoc:include type="modules" name="footer3" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('footer4')) : ?>
<div class="wdb_footer <?php echo $mClasses['footer4'][0]; ?>">
<jdoc:include type="modules" name="footer4" style="xhtml" />
</div>
<?php endif; ?>
<?php if($this->countModules('footer5')) : ?>
<div class="wdb_footer <?php echo $mClasses['footer5'][0]; ?>">
<jdoc:include type="modules" name="footer5" style="xhtml" />
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php endif; ?>
<?php $designbylabel = $this->params->get('designbylabel'); ?>
<?php $designbylink = $this->params->get('designbylink'); ?>
<?php $designbytarget = $this->params->get('designbytarget'); ?>
<?php $url = "$designbylink"; ?>
<?php if (false === strpos($url, '://')) { $url = 'http://' . $url; } ?>
<div id="wdb_copy-line" class="clr">
<div id="wdb_copy-structure" class="wdb_<?php echo $this->params->get('designby'); ?>">
<div id="wdb_copy">
Android.if.ua &copy; <?php echo date(Y); ?> <?php if(!$designbylabel OR !$designbylink) echo "& Использование материала только с разрешения администрации"; ?>
</div>
<?php print ("$templateby"); ?>
</div>
</div>
<div style="height:25px;" class="clr">&nbsp;</div>
</body>
</html>

если не так объяснил то вот графическое объяснение:


зарание всем благодарен за помощь :)
*

KKAAZZOO

  • Живу я здесь
  • 2288
  • 119 / 9
Re: Новости не в столбик
« Ответ #1 : 30.07.2013, 22:48:43 »
Отрегулировать отображение новостей в настройках менеджера материалов или в пункте меню
*

Cheren

  • Осваиваюсь на форуме
  • 36
  • 3 / 0
Re: Новости не в столбик
« Ответ #2 : 05.08.2013, 01:53:35 »
Количество столбцов 1 - указать! В пункте меню (параметры блока)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как разместить новости плиткой в Joomla 3.x?

Автор Poincare

Ответов: 2
Просмотров: 865
Последний ответ 03.11.2018, 16:57:49
от Poincare
Макет добавления новости с фронта class для input

Автор FitMe

Ответов: 5
Просмотров: 956
Последний ответ 12.11.2016, 01:59:19
от FitMe
Проверка на наличие introtext в модуле "Материалы - Новости"

Автор kik84

Ответов: 1
Просмотров: 901
Последний ответ 19.06.2016, 15:30:35
от Taatshi
вывод материала - новости

Автор keksfeo

Ответов: 1
Просмотров: 1028
Последний ответ 09.06.2016, 09:00:54
от keksfeo
Как вывести на главную страницу последние новости их разных категорий?

Автор Илья112

Ответов: 3
Просмотров: 4033
Последний ответ 08.06.2016, 13:02:50
от naskolumbia