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

syrpo

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Здравствуйте, давайте раз и навсегда разберемся с вопросом редиректов для https в Joomla.
Перелопатил пол интернета, вменяемого ответа так и не нашел.

Что нужно сделать:
В файле .htaccess настроить 301 редиректы:
- С домена www.site.ru на домен site.ru
- Со всех страниц http на такие же страницы https
Суть такая, чтоб все страницы сайта открывались по https и без www.

Помогите сделать доброе дело!
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Re: Давайте разберемся в редиректах
« Ответ #1 : 12.12.2015, 23:51:35 »
А давайте.
Вот только, блин, не выйдет.
Всё решено давно, и лопатить оказывается не надо и четверти интернета, беда-печаль.
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Давайте разберемся в редиректах
« Ответ #2 : 13.12.2015, 00:22:07 »
Здравствуйте, давайте раз и навсегда разберемся с вопросом редиректов для https в Joomla.
Перелопатил пол интернета, вменяемого ответа так и не нашел.
...
Помогите сделать доброе дело!

К чему такой пафос? Не умеете работать с Apache - читайте документацию. Вам даже не нужно лезть в htaccess - разработчики Joomla об этом позаботились раз и навсегда. Все что вам нужно сделать - включить SSL в настройках сервера, в админке. А само правило, касающееся ваших задач очень простое:

Код
RewriteCond %{HTTP_HOST} ^www [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://site.ru/$1 [R=301,L]
*

syrpo

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Re: Давайте разберемся в редиректах
« Ответ #3 : 13.12.2015, 12:01:19 »
А давайте.
Вот только, блин, не выйдет.
Всё решено давно, и лопатить оказывается не надо и четверти интернета, беда-печаль.
В приведенной Вами ссылке не слова нет про https

К чему такой пафос? Не умеете работать с Apache - читайте документацию. Вам даже не нужно лезть в htaccess - разработчики Joomla об этом позаботились раз и навсегда. Все что вам нужно сделать - включить SSL в настройках сервера, в админке. А само правило, касающееся ваших задач очень простое:

Код
RewriteCond %{HTTP_HOST} ^www [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://site.ru/$1 [R=301,L]
На странице обнаружена циклическая переадрессация
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Давайте разберемся в редиректах
« Ответ #4 : 13.12.2015, 14:46:08 »
Покажите содержимое вашего htaccess.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Давайте разберемся в редиректах
« Ответ #5 : 13.12.2015, 15:16:49 »
Если прописать редирект на https в .htaccess и подключен сертификат на хостинге, не нужно еще в админке Joomla включать SSL.
*

syrpo

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Re: Давайте разберемся в редиректах
« Ответ #6 : 14.12.2015, 12:33:44 »
Если прописать редирект на https в .htaccess и подключен сертификат на хостинге, не нужно еще в админке Joomla включать SSL.
Откуда такой утверждение? Если не включать SSl в админке, ссылки на самом сайте будут неверно формироваться.
Покажите содержимое вашего htaccess.
стандартный файл htaccess + то, что Вы написали:

##
# @package    Joomla
# @copyright  Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved.
# @license    GNU General Public License version 2 or later; see LICENSE.txt
##

##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that disallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your SEF url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
##

## No directory listings
IndexIgnore *

## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
Options -Indexes

## Mod_rewrite in use.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://site.ru/$1 [R=301,L]

## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# Uncomment following line if your webserver's URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##

# RewriteBase /

## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.
*

syrpo

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Re: Давайте разберемся в редиректах
« Ответ #7 : 14.12.2015, 12:37:55 »
1) SSL в админке включен
2) также было проделано следующее изменение:
http://anikin.pw/tags/ciklicheskaya-pereadresaciya/
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Давайте разберемся в редиректах
« Ответ #8 : 12.06.2017, 08:55:56 »
Подскажите хочу сделать перенаправление категории
старая /oformlenie-v-baget-ramki.html а перенаправить надо на /bagetnaya-masterskaya.html
Рассматривал вариант
Код: php-brief
RewriteCond %{REQUEST_URI} ^/oformlenie-v-baget-ramki/$
RewriteRule ^.*$ https://update.lik-astana.kz/bagetnaya-masterskaya/? [R=301,L]
 
но он вроде как не подходит так как категории с суффиксом а дальше в них есть еще подкатегории и товары
Сейчас работают обе
/bagetnaya-masterskaya/katalog-bageta/baget-10-20-mm.html 
/oformlenie-v-baget-ramki/katalog-bageta/baget-10-20-mm.html
ответ на них на обоих 200-й хотя у /oformlenie-v-baget-ramki должен быть 301
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Давайте разберемся в редиректах
« Ответ #9 : 12.06.2017, 10:33:23 »
http://www.htaccessredirect.net/ нашёл как то раз в доке Joomla
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Давайте разберемся в редиректах
« Ответ #10 : 15.06.2017, 09:59:14 »
Сервис интересный.
Вот что он мне сгенерировал
Код: php-brief
//301 Redirect Old File
Redirect 301 /oformlenie-v-baget-ramki.html /bagetnaya-masterskaya.html
//301 Redirect Entire Directory
RedirectMatch 301 /oformlenie-v-baget-ramki(.*) /bagetnaya-masterskaya///301 Redirect Old File
Redirect 301 /oformlenie-v-baget-ramki.html /bagetnaya-masterskaya.html
//301 Redirect Entire Directory
RedirectMatch 301 /oformlenie-v-baget-ramki(.*) /bagetnaya-masterskaya/$1


Но вроде как перенаправлять директорию отдельно и страницу это неправильно 
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Давайте разберемся в редиректах
« Ответ #11 : 19.06.2017, 09:42:18 »
При таком ридеректе
Код: php-brief
Redirect 301 /oformlenie-v-baget-ramki.html /bagetnaya-masterskaya.html
RedirectMatch 301 /oformlenie-v-baget-ramki(.*) /bagetnaya-masterskaya/Redirect 301 /oformlenie-v-baget-ramki.html /bagetnaya-masterskaya.html
RedirectMatch 301 /oformlenie-v-baget-ramki(.*) /bagetnaya-masterskaya/$1

В ссылках с категорией /bagetnaya-masterskaya/ появился двойной слеш /bagetnaya-masterskaya// подскажите как решить
при переходе по категориям этого слеша нет но при просмотре в поисковой выдачи он есть.
Вот допустим ссылка такого вида bagetnaya-masterskaya//podramniki.html и если перейти глубже в категорию слеш пропадает
/bagetnaya-masterskaya/podramniki/izgotovlenie-podramnikov-dlya-kartin-detail.html
 
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться