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

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Почему-то не могу убрать index.php из URL сайта. Если включаю Перенаправление URL, все внутренние страницы сайта дают 404. Это создает проблемы.
Во-первых, кастомная 404 не работает, так как ошибочный url должен тоже включать index.php) - иначе белая страница 404 без дизайна.
Во-вторых, 301 редирект не работает. Думаю, это как-то тоже связано с такой настройкой. Потому что урлы без index.php не воспринимаются.
В-третьих - это самое неважное, но интересно для информации. Есть старый сайт, который я переместила на поддомен. Там тоже были index.php в адресах, но его разработчики как-то с этим справились. Как я узнала об этом? Сейчас, на поддомене, открывается только главная старого сайта. Все внутренние - 404. НО. Если вставить в ссылки магический index.php, они откроются!
 http://testnews.tereza.ru/,
внутренние, если их открывать из меню, дают 404: http://testnews.tereza.ru/contact, а вот если добавить туда http://testnews.tereza.ru/index.php/contact
Работа старого сайта не особо нужна, но очевидно, что причина единая и что index.php надо убрать из адресов
Вопрос - как?
Fatal error - это не фатально!!! Я проверила.
*

evgen777

  • Давно я тут
  • 657
  • 62 / 2
Так у вас .htaccess в корне сайта есть хоть?
Разработка, доработка расширений для Joomla!
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Щадящее выпиливание index.php из URL:

Код
RewriteCond %{REQUEST_URI} ^/index.php/.* [NC]
RewriteRule .? - [F]

При таком подходе останется только ^/index.php$, но доступ к нему ограничивать не стоит, пусть он будет. А в robotx.txt запретите индексацию этой страницы.

*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
А mod_rewrite включен на сервере?
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
.htaccess конечно есть. Все вообще как обычно. А вот насчет mod rewrite не знаю. Мне заказчики дали избирательный доступ, к панели управления хостинга доступа нет, чтобы посмотреть, что там включено. Было бы классно, если бы он не был включен, это бы все объяснило, и что индекс нельзя убрать и что 301 редирект не работает.
Но если я пишу вместо tereza.ru tereza.ru/index.php открывается все-таки tereza.ru без индекса. Это значит, что mod rewrite включен? Или не значит?
И когда был старый сайт на основном домене, там отсутствовал index.php в адресах, то есть какая-то директива работала по его ликвидации. А сейчас старый сайт в подпапке и эта директива не работает, и все его внутренние страницы открываются только с индексом
« Последнее редактирование: 10.04.2016, 21:32:01 от Аня »
Fatal error - это не фатально!!! Я проверила.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Завтра пойду к ним в офис и выясню. Я бы очень порадовалась, если дело просто в отключенном mod rewrite.
Fatal error - это не фатально!!! Я проверила.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Там ещё вначале должна быть такая строчка RewriteEngine on  ;D
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Да все есть, все нормально. Совершенно стандартная ситуация, стандартная свежая Joomla со всем, что там полагается.
Fatal error - это не фатально!!! Я проверила.
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
На хостинге говорят, что mod_rewrite включен
Fatal error - это не фатально!!! Я проверила.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Что за хостинг? Если там файл не htaccess.txt а именно .htaccess, и если в этом файле RewriteEngine включен, то RewriteCond и RewriteRule (как показал выше Филипп Сорокин) внутри должны обрабатываться и адрес должен принимать нужный вид. Если этого не происходит, значит стоит какой то запрет на управление сервером через .htaccess или его отдельных команд. Это уже не ваша задача - сообщите об этом клиенту и пусть сами разбираются с хостером.

Второй вариант:

И когда был старый сайт на основном домене, там отсутствовал index.php в адресах, то есть какая-то директива работала по его ликвидации. А сейчас старый сайт в подпапке и эта директива не работает, и все его внутренние страницы открываются только с индексом

Собственно, где у вас находится этот .htaccess и какова у вас структура сайта? Сколько всего файлов .htaccess?
« Последнее редактирование: 11.04.2016, 14:06:45 от SeBun »
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
.htaccess один, обычный джумловский, переименованный. Хостинг 1gb.ru
В настоящее время основной сайт, который на Joomla, в папке http, а старый  в подпапке
Fatal error - это не фатально!!! Я проверила.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
.htaccess один, обычный джумловский, переименованный
Где он находится? В папке основного сайта или подпапке?

Я думаю, вы быстрее получите ответ, если напишите сюда: support@1gb.ru. Они могут глянуть, что там у вас с этим .htaccess и дать нужный совет.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

almika

  • Захожу иногда
  • 325
  • 27 / 0
Возможно, на хостинге указано в конфигурации сервера что-то типа:
Код
Options Indexes FollowSymLinks
AllowOverride None
Это запрещает переписывание Options в .htaccess.
На локалке я просто меняю 2-ю строчку на AllowOverride All.
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Цитировать
Я думаю, вы быстрее получите ответ, если напишите сюда: support@1gb.ru. Они могут глянуть, что там у вас с этим .htaccess и дать нужный совет.
Я уже их сильно пытала на этот счет.
Вот такой .htaccess был на старом сайте, где убийство index.php работало. Может, там есть магические строчки, которые заводили переадресацию:
Код
Options -Indexes
AddDefaultCharset utf-8

AddType application/vnd.ms-word.document.macroEnabled.12 .docm
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
AddType application/vnd.ms-powerpoint.template.macroEnabled.12 potm
AddType application/vnd.openxmlformats-officedocument.presentationml.template potx
AddType application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
AddType application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
AddType application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
AddType application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
AddType application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
AddType application/vnd.ms-excel.addin.macroEnabled.12 xlam
AddType application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
AddType application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
AddType application/vnd.ms-excel.template.macroEnabled.12 xltm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 1 years"
ExpiresByType image/jpeg "access plus 1 years"
ExpiresByType image/png "access plus 1 years"
ExpiresByType text/css "access plus 1 months"
ExpiresByType text/javascript "access plus 1 months"
ExpiresByType application/x-javascript "access plus 1 months"
</IfModule>




RewriteEngine on

RewriteCond %{HTTP_HOST} ^testnews
RewriteRule .* - [L]

RewriteCond %{HTTP_HOST} ^tereza.ru [OR]
RewriteCond %{HTTP_HOST} ^tereza.su [OR]
RewriteCond %{HTTP_HOST} ^www.tereza.su
RewriteRule (.*) http://www.tereza.ru/$1 [R=301,L]

#RewriteCond %{HTTP_HOST} !^www\.esobox3\.com$ [NC]
#RewriteRule ^(.*)$ http://www.esobox3.com/$1 [R=301,L]

RewriteCond $1 !^(index\.php|test\.php|assets|adm/img|adm/js|adm/admin|adm/styles|img|upload|js|styles|captcha|robots\.txt|sitemap\.xml) [NC]
#RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteRule ^(.*)$ index.php?$1 [L]
« Последнее редактирование: 12.04.2016, 10:27:49 от Аня »
Fatal error - это не фатально!!! Я проверила.
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
*

almika

  • Захожу иногда
  • 325
  • 27 / 0
Скорее всего, вы читали FAQ на сайте вашего хостинга, но на всякий случай:

Цитировать
На всех наших серверах под управлением Apache работает mod_rewrite.
Если вам или вашему скрипту кажется, что mod_rewrite или .htaccess не работают, надо сделать следующее -
1) В личном кабинете посмотреть "Управление сайтами и серверами", убедиться, что ваш сайт на Apache. Если нужно, поменяйте тип сервера на Apache.
2) Если сайт на Apache, то mod_rewrite работает 100%. Проверяйте скрипт.

Взято отсюда: http://www.1gb.ru/default.aspx?ti=6&hti=83

У вас точно на Apache? Там на страничке ещё есть информация, может что-то пригодится. Вот здесь http://www.1gb.ru/default.aspx?ti=6&hti=84 они предлагают даже создать .htaccess автоматом для доменов 3-го уровня.

Кое-что зависит и от версии Apache. Пригодилась бы информация о системе.

Удачи
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Точно Apache и точно mod_rewrite включен. Читала я эту инструкцию) И, более того, на старом сайте mod_rewrite работал нормально. В настройках Joomla все норм. Как только включаю переадресацию URL, внутренние страницы дают 404. Потому что без index.php не фурычат(
Теперь там другой человек будет заниматься сайтом, я свое дело сделала. Значит, упадет в поиске сайт. Я так понимаю, для компании это не критично. Мне просто самой очень любопытно, в чем причина такого нестандартного поведения. Для общего развития и повышения профессионализма.
Ведь близко разгадка! Старый .htaccess удалял index.php, а джумловский не удаляет. В чем-то между ними критическая разница!
Fatal error - это не фатально!!! Я проверила.
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
В том что не удаляет присутствует строка
Код
RewriteRule ^(.*)$ index.php?$1 [L]
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Вот эта строчка
Код
RewriteRule ^(.*)$ index.php?$1 [L]
из старого .htaccess, который работал,
а в джумловском написано
Код
RewriteRule .* index.php [F]   RewriteCond %{REQUEST_URI} !^/index\.php   RewriteRule .* index.php [L]
- это я выписала все, что там связано с index.php
Fatal error - это не фатально!!! Я проверила.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Так, тут же ответ был для проверки.
Почему он на свалке?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Цитировать
Создайте на сервере пустую поддиректорию mod_rewrite и загрузите в нее файлы .htaccess и index.php следующего содержания:
.htaccess:

RewriteEngine On
RewriteRule ^.*$ index.php


index.php:

<?php
print 'Есть поддержка!';
?>

Наберите в браузере адрес вида http://domain.ru/mod_rewrite
На открывшейся странице в браузере должна появиться надпись «Есть поддержка». Если этого не произошло, необходимо выполнить правильную настройку mod_rewrite.

Может в настройках домена не стоит индексная страница index.php а с стоит index.html
Сообщить модератору     Записан
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
Есть поддержка! Увы. http://tereza.ru/mod_rewrite/
Fatal error - это не фатально!!! Я проверила.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
а что там кракозябры?
Может и htaccess в левой кодировке и это причина?
*

Аня

  • Давно я тут
  • 745
  • 33 / 0
  • Копатыч нестабилен!
А у меня не кракозябры в браузере. Но кодировку щас гляну.
На хостинге по умолчанию в редакторе кода стоит сp1251 и она не переключается. Вернее, переключается, но не сохраняется.
« Последнее редактирование: 13.04.2016, 12:22:25 от Аня »
Fatal error - это не фатально!!! Я проверила.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с адаптацией

Автор Leo1986

Ответов: 1
Просмотров: 1031
Последний ответ 22.05.2025, 20:30:25
от Leo1986
Проблема с плагином News Show gk5

Автор Evgeniy

Ответов: 4
Просмотров: 1422
Последний ответ 27.03.2025, 05:38:57
от R31rus
Проблема со входом в панель администратора Joomla 3.x после обновления

Автор danieeljose

Ответов: 2
Просмотров: 1580
Последний ответ 24.03.2025, 20:33:02
от R31rus
Вопрос по шаблону Flex

Автор Invictus

Ответов: 0
Просмотров: 570
Последний ответ 06.02.2025, 21:10:46
от Invictus
Проблема с меню

Автор denis_4

Ответов: 6
Просмотров: 1635
Последний ответ 07.08.2024, 14:00:43
от denis_4