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

fedragon

  • Захожу иногда
  • 232
  • 22 / 0
  • You move like an insect
Как в 2.5 Joomla в коде проверить, на главной ли ты странице или нет?

Пробовал так
Цитировать
<?php
$menu = &JSite::getMenu();
if ($menu->getActive()!= $menu->getDefault()) {
?>
ТУТ ВЫПОЛНЯЕМЫЙ КОД
<?php } ?>

но код не лишен недостатков, срабатывает ложно бывает; хотелось бы какую-то точную проверку, чтоб знать - на главной ли я или нет.
« Последнее редактирование: 29.08.2013, 09:57:31 от b2z »
Your flesh is an insult to the perfection of the digital.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
При определенных условиях (главная имя домена) работает такой код
Код
<? php if (JFactory::getURI()->toString() == JURI::base()) : ?>
<h1>Мы на главной</h1>
<?php endif; ?>
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Простой пример. VirtueMart в качестве главной. Нажимаешь на категорию( я так понимаю на ссылку не привязанную к меню) и ваша проверка не срабатывает. Она вообще, по принципу работает как в первом посте от fedragon . Я же предложил совсем иной принцип сверять JFactory::getURI()->toString() адрес текущей страницы с адресом сайта JURI::base()
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
вам не кажется что вы бред написали?! перейдете в категорию то вы уже будете не на главной! (перешли в категорию ссылка стала mysite.ru/cat.html и она не равна mysite.ru) что то вы выдумываете!
нет не кажется. Прежде чем так заявлять, тестируйте. Ваше решение я протестировал. Автор темы не зря поднял этот вопрос. Ссылка, да имеет другое значение mysite.ru/cat.html, но проверка ваша говорит, что мы на главной странице. Мы же находимся на странице категории VirtueMart
Похожая тема

P.S. И это не решает проблему
Код
if ($menu->getActive()->id == $menu->getDefault()->id) {}
*

fedragon

  • Захожу иногда
  • 232
  • 22 / 0
  • You move like an insect
Poznakomlus, спасибо, всё работает в лучшем виде.
frisian, не стал проверять ваш код, потому что всё заработало и так, так что не могу сказать за его эффективность
Your flesh is an insult to the perfection of the digital.
*

Stake1988

  • Захожу иногда
  • 66
  • 0 / 0
При определенных условиях (главная имя домена) работает такой код
Код
<? php if (JFactory::getURI()->toString() == JURI::base()) : ?>
<h1>Мы на главной</h1>
<?php endif; ?>

Странно, почему-то при добавлении этого кода сайт падает (в данное условие заключается только один блок div), точнее в тэге <body> пусто. Может это быть связанно с тем что сайт располагается в домене .рф?
*

Stake1988

  • Захожу иногда
  • 66
  • 0 / 0
Поковырялся немного, заработал такой вариант:

Код
<?php $uri = &JFactory::getURI();
$url = $uri->toString(array('path', 'query', 'fragment'));
if ($url == "/") : ?>
<div >

</div>
<?php endif ?>
Кривовато конечно, но зато работает. Не проверял как оно будет работать в выше описанных вариантах с категориями VirtueMart и т.д.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Код: php
if ( JRequest::getVar('view') == 'featured' ) {$start=1;};
//и далее используем условие как хотим. Например так:
if ($start){
   echo 'Превед! Йа на главной!';
};

*

angpyxa

  • Новичок
  • 1
  • 0 / 0
Привет! я попробовал ваши способы они что то не комильфо.. и написал свой
100% проверка

в шаблоне статьи например
templates/kino7/html/com_content/article/default.php

добавляем в любое место
$GLOBALS["myitem"] = $this->item->id; (айдишник статьи Привязанный к главному пункту меню)

templates/kino7/index.php (главный файл шаблона)

$myid = $GLOBALS["myitem"];

и где то в коде

<? if ($myid==24) :?>

тут все что на главной

 <? endif;?>
 к этому методу добавить ифку по поиску, но это уже производная..) задача решается просто

« Последнее редактирование: 31.03.2012, 17:26:55 от angpyxa »
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
angpyxa молодцом. Хороший велосипед. Работать с глобальными переменными при наличии фреймворка... Явно прописывать айдишники в разметке... В общем, я бы до такого не додумался.
Код: php
if ( JRequest::getVar('view') == 'featured' )
Всё, это самый универсальный, компактный и правильный способ проверки.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Shustry, не у всех же на главной отображается featured, ты не подумал?

Давайте помыслим.

Как вобще определить на главной мы или нет?

Можно сравнивать пункты меню - активный, и домашний.
Но домашний пункт может быть активным, даже когда мы не на домашней странице.
Тот же пример выше с виртом, который приводил Poznakomlus
Значит, этот способ не для всех случаев подходит.

Можно сравнивать url главной страницы, и урл текущей.
Если игнорировать подстроку параметров урла (то что после ?) будут например проблемы с кривожопым виртом, который шлет все формы на index.php

Можно сравнивать урлы с учетом параметров, тогда например если у нас на главной выводится категория с пагинацией, то перейдя на след. страницу мы будем какбы уже не на главной.

Подводим итог:
Каждый "главная страница" понимает по-своему. Кто то - домашний пункт меню, кто-то site.ru/ , кто-то featured статьи Joomla и тд.

А значит нет универсального способа. В каждом случае надо выбирать под свои задачи.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
danik.html, затупил, не то скопипастил. :( Вот оно, вот оно решение моей мечты: написано Poznakomlus, доработано мной:
Код: php
 if (JURI::current() == JURI::base()){}
Абсолютно универсально и компактно.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Универсально, но не абсолютно. читай пост выше. А так да, наверно в 90% подойдет )
Так что закину к себе в копилку, чтоб потом самому не велосипедить.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

genetics

  • Захожу иногда
  • 51
  • 5 / 0
  • «GeneticsPro»
 ^-^ Смотрите Joomla-документацию >> http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
genetics, с этого (из документации по ссылке который) способа и начал тему ТС :)
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Подскажите, пожалуйста, а как вывести модуль только на главной странице? я только что на 2.5. перешел... извиняюсь за ламерский вопрос
*

genetics

  • Захожу иногда
  • 51
  • 5 / 0
  • «GeneticsPro»
Менеджер модулей - Привязка к пунктам меню
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Менеджер модулей - Привязка к пунктам меню
ненене... условие в шаблоне как-то прописывается... в предыдущих Joomlaх так было.
*

Dgikar

  • Захожу иногда
  • 192
  • 3 / 0
  • Я только учусь
http://joomlaforum.ru/index.php/topic,199690.msg1059654.html#msg1059654 - Ответ #8 - Проверено - все работает на ура!
*

ivan414

  • Новичок
  • 3
  • 0 / 0
Помогите. Перестали открываться ссылки. Открывается только главная страница. сайт http://foto-ivan.ru/
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Помогите. Перестали открываться ссылки. Открывается только главная страница. сайт http://foto-ivan.ru/
И как это относиться к этой теме? Создайте отдельную!
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
что нужно для того, что бы выводить модули только на внутренних страницах?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Поставить перед условием восклицательный знак. Например так:
Код: php
if (!((JURI::current() == JURI::base())||(JRequest::getVar('view') == 'featured')))
{};
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Поставить перед условием восклицательный знак. Например так:
Код: php
if (!((JURI::current() == JURI::base())||(JRequest::getVar('view') == 'featured')))
{};
Я чайник полный, так не получается=)) Мне кажется, что я совсем неправильно сделал=)) Код написал ниже, который вставлял в шаблон.
Код
<?php if (!((JURI::current() == JURI::base())||(JRequest::getVar('view') == 'featured')))
{}; ?> модуль на внутренних страницах <?php endif; ?>
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
что нужно для того, что бы выводить модули только на внутренних страницах?
Все страницы кроме главной
Код: php-brief
<?php if(JURI::current()!= JURI::base()){}?>
Все страницы кроме главной, привязанные к меню главной
Код: php-brief
<?php if(JURI::current()!= JURI::base() && JMenuSite::getInstance('site')->getActive()->home){}?>
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Тогда может так?
Код: php
<?php if(JURI::current()!== JURI::base()){}>
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Пробую, вставляю, выдает ошибку Parse error: syntax error, unexpected '>' in /home/sandro2584/3v1.biz/docs/stylage/templates/stylage/index.php on line 38, ребят, как именно нужно прописывать в шаблоне, так?:
Код
<?php if(JURI::current()!== JURI::base()){}>
проверка
<?php endif; ?>
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Спасибо огромное за помощь! yes!
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Рано я радовался=)) Если писать что нибудь или вставлять между, то выводит внутри, но если в таком виде:
Код
<?php if (JURI::current()!== JURI::base()) : ?>
<jdoc:include type="modules" name="topblock" style="xhtml" />
<?php endif; ?>
, то ничего не отображает, не выводит модули на позицию.
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Причем странно, что если пписать следующее:
Код
 <?php if (JURI::current() == JURI::base()) : ?>
<jdoc:include type="modules" name="позиция" style="xhtml" />
<?php endif; ?>
, то модули выводятся(только на главной)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как редактировать отдельную страницу Joomla 2.5?

Автор mrporter

Ответов: 0
Просмотров: 14008
Последний ответ 14.09.2023, 22:16:47
от mrporter
Joomla 2.5.28, Safari под маком и сессии session

Автор beliyadm

Ответов: 19
Просмотров: 16763
Последний ответ 29.03.2023, 12:17:19
от Sawell
Joomla 2.5.28 как скачать все файлы через панель управления

Автор Sergei41984

Ответов: 7
Просмотров: 14513
Последний ответ 27.12.2022, 23:30:38
от Sergei41984
Расширения для Joomla! 1.6 (коллекция полезных ссылок)

Автор Sulpher

Ответов: 124
Просмотров: 145312
Последний ответ 03.12.2022, 16:15:19
от besttechoff
Почему в админке Joomla 2.58 - у меня 16 админов показывает?

Автор dyalex

Ответов: 7
Просмотров: 15394
Последний ответ 27.10.2022, 19:03:45
от marksetter