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

yodis

  • Захожу иногда
  • 52
  • 2 / 1
Все привет, в общем задался я тем чтоб убрать index.php после доменного имени. Прописал правило в htacces и все заработало. Но стоит войти в VirtueMart в любую категорию или товар и вписать в ссылку index.php к примеру:
мойсайт.ру/категория/index.php/товар.html

И всеравно товар открывается и ссылка остается с INDEX.PHP.
Как исправить это, подскажите.  !
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: index.php внутри ссылки. Как лечить ?
« Ответ #1 : 06.12.2016, 18:56:30 »
Цитировать
RewriteEngine on
RewriteRule ^index\.php/(.*) /$1 [R=301,L]
« Последнее редактирование: 07.12.2016, 00:04:15 от Филипп Сорокин »
*

yodis

  • Захожу иногда
  • 52
  • 2 / 1
Re: index.php внутри ссылки. Как лечить ?
« Ответ #2 : 06.12.2016, 23:54:02 »


Спасибо огромное, плюсанул !
Помогло и работает, но вот только не пойму одного, если я вставляю гдето index.php то все что до него и месте с ним удаляеться. К примеру

мойсайт.ру/категория1/index.php/категория2/товар.html нажимаем энтер и выходит теперь вот так мойсайт.ру/категория/товар.html

Сьело вот эту часть ссылки /категория1/index.php/ Это можно подправить ?
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: index.php внутри ссылки. Как лечить ?
« Ответ #3 : 07.12.2016, 00:04:35 »
См. отредактированный ответ выше.
*

yodis

  • Захожу иногда
  • 52
  • 2 / 1
Re: index.php внутри ссылки. Как лечить ?
« Ответ #4 : 07.12.2016, 00:30:01 »
См. отредактированный ответ выше.
Не работает совсем (((
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: index.php внутри ссылки. Как лечить ?
« Ответ #5 : 07.12.2016, 00:32:13 »
Не работает совсем (((

Правило корректное: http://htaccess.mwl.be/ -- попробуйте почистить кэш.
*

fsv

  • Moderator
  • 2782
  • 411 / 2
Re: index.php внутри ссылки. Как лечить ?
« Ответ #6 : 07.12.2016, 00:38:17 »
RewriteEngine on
RewriteRule (.*)index\.php/(.*) /$1$2 [R=301,L]
Веб-разработка: заказ. Только новая разработка.
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: index.php внутри ссылки. Как лечить ?
« Ответ #7 : 07.12.2016, 00:41:06 »
Цитировать
(.*)index\.php/(.*)

Ну я бы не советовал, т.к. совпадает с index.php на всех уровнях, что не является корректным решением. К тому же, правило совпадает, например со следующим:

Цитировать
iiiiiiiiiiindex.php
asdflksdjf.index.php

Рерайт должен быть точным.
*

yodis

  • Захожу иногда
  • 52
  • 2 / 1
Re: index.php внутри ссылки. Как лечить ?
« Ответ #8 : 07.12.2016, 01:03:27 »
Правило корректное: http://htaccess.mwl.be/ -- попробуйте почистить кэш.

## Can be commented out if causes errors, see notes above.
Options +SymLinksIfOwnerMatch

## Mod_rewrite in use.
RewriteEngine On

#Вот код который убирает index.php:
RewriteRule ^index\.php/(.*) /$1 [R=301,L]
#RewriteRule index\.php/(.*) /$1 [R=301,L]


Чистил кеш, пробовал с телефона и другого компа, не работает, предыдущее правило работало, а это совсем не хочет.
Вот ссылка на сайт, проверьте сами если интересно.

http://ecolan.com.ua/shop/index.php/%D1%81%D1%82%D0%B8%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%8B/lg/lg-735l.html
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: index.php внутри ссылки. Как лечить ?
« Ответ #9 : 07.12.2016, 01:10:57 »
Покажите в спойлере .htaccess целиком.
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: index.php внутри ссылки. Как лечить ?
« Ответ #10 : 07.12.2016, 01:11:41 »
А у вас сайт в подкаталоге что ли?
*

yodis

  • Захожу иногда
  • 52
  • 2 / 1
Re: index.php внутри ссылки. Как лечить ?
« Ответ #11 : 07.12.2016, 01:13:01 »
Спойлер
[свернуть]
*

yodis

  • Захожу иногда
  • 52
  • 2 / 1
Re: index.php внутри ссылки. Как лечить ?
« Ответ #12 : 07.12.2016, 01:14:13 »
А у вас сайт в подкаталоге что ли?
Как это в подкаталоге ?
Путь выглядит вот так - Путь к файлам: /home/linkmart/ecolan.com.ua/www/
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: index.php внутри ссылки. Как лечить ?
« Ответ #13 : 07.12.2016, 01:40:50 »
Ну всё работает, как задумано: ссылка http://ecolan.com.ua/index.php/shop перенаправляет на http://ecolan.com.ua/shop. Проблема состоит в том, что Joomla! обрабатывает входящий URL по нескольким урлам -- дубли страниц, разнообразных вариантов которых великое множество. То есть файла shop/index.php физически не существует, идёт рерайт на index.php, который в корневом каталоге, то есть запрос передаётся на обработку роутера J!, который в силу его несовершенности открывает дубль.

Если хотите устранить index.php не только в корне, но и на других уровнях, то можете попробовать следующее:

Код
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/index.php/ [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (?|(^)|(.+/))index\.php/(.*) /$1$2 [R=301,L]

Это правило сначала проверяет, есть ли /index.php в урле на всех уровнях, затем проверяет, начинается ли он от корня, если нет, то проверяет, существует ли такой файл физически. Если такого файла физически не существует, то URL обрезается. Очень важно проверить существование файла, т.к. запрос, например, на administrator/index.php вызовет ошибку.

Прежде чем применять это правило, ответьте себе на вопрос, есть ли в этом прямая необходимость? Если страницы типа /shop/index.php не проиндексированы, то правило применять не надо -- лучше закрыть индексацию этих страниц в robots.txt. Однако перенаправление с корневого index.php вам следует сделать в любом случае:

Код
RewriteEngine on
RewriteRule ^index\.php/(.*) /$1 [R=301,L]
« Последнее редактирование: 07.12.2016, 01:55:31 от Филипп Сорокин »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Прямые ссылки на товар без категорий

Автор neGODnic

Ответов: 7
Просмотров: 1709
Последний ответ 16.11.2016, 09:15:37
от robert
Убрать /manufacturer/ из ссылки в хлебных крошках

Автор mkt

Ответов: 11
Просмотров: 4419
Последний ответ 24.10.2016, 11:02:09
от Сергей_y
Партнерские ссылки на кнопку "купить"

Автор Megos

Ответов: 8
Просмотров: 1414
Последний ответ 10.04.2016, 20:03:40
от Megos
Использовать одно из полей в "Информации о товаре" как поле для ссылки

Автор Tur1st

Ответов: 1
Просмотров: 1190
Последний ответ 08.04.2013, 09:55:32
от Tur1st
ЧПУ VM2 как убрать назв. категории из ссылки ?

Автор chandler

Ответов: 5
Просмотров: 2226
Последний ответ 28.03.2013, 16:42:26
от Diff