Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

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

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Как сделать SEF url ?
« : 21.04.2014, 09:36:38 »
Сейчас вот так, но надо SEF. Спасибо
Код
$url = JUri::root(). "index.php?option=com_content&view=article&id=$articleId";
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Как сделать SEF url ?
« Ответ #1 : 21.04.2014, 09:48:23 »
Так
Код: php-brief
$url=JUri::root().JRoute::_('index.php?option=com_content&view=article&id=$articleId');
не выводит?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #2 : 21.04.2014, 13:40:13 »
Нет так не будет работать.
Выводит:
site.ru/administrator/index.php?option=com_content&view=article&id=
*

voland

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

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #4 : 21.04.2014, 13:52:10 »
Яндекс пингер переделываю http://site.yandex.ru/cms-plugins/
Он отдает адреса в виде  http://site.ru/index.php?option=com_content&view=article&id=15
А должен отдавать на пинг нормальный URL.
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #5 : 21.04.2014, 21:21:22 »
ап
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как сделать SEF url ?
« Ответ #6 : 21.04.2014, 22:58:42 »
А если так:
Код: php
$router = JFactory::getApplication()->getRouter('site');
$url = $router->build('index.php?option=com_content&view=article&id=$articleId')->toString(array('path', 'query', 'fragment'));
интернет-блог: http://websiteprog.ru
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать SEF url ?
« Ответ #7 : 21.04.2014, 23:15:29 »
Код: php-brief
if(!class_exists('ContentHelperRoute')) require_once (JPATH_SITE . '/components/com_content/helpers/route.php');
$doc = JFactory::getDocument();
//$id - ид материала, catid - ид категории
$url = ContentHelperRoute::getArticleRoute($id, (($catid)?$catid:0), $doc->language);
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #8 : 09.05.2014, 09:20:31 »
А откуда взять ID категории ?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать SEF url ?
« Ответ #9 : 09.05.2014, 10:59:25 »
Код: php-brief
$article->catid
смотрите если не получится в $article
var_dump($article);
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #10 : 06.07.2014, 13:14:17 »
Код: php-brief
if(!class_exists('ContentHelperRoute')) require_once (JPATH_SITE . '/components/com_content/helpers/route.php');
$doc = JFactory::getDocument();
//$id - ид материала, catid - ид категории
$url = ContentHelperRoute::getArticleRoute($id, (($catid)?$catid:0), $doc->language);

URL получаются такого типа: http://index.php?option=com_content&view=article&id=2741&catid=18&Itemid=157

Проблема актуальна.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
интернет-блог: http://websiteprog.ru
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать SEF url ?
« Ответ #13 : 06.07.2014, 22:21:55 »
Цитировать
Не работает.
В общих насторойках сайта SEF включен?
В корне сайта файл htaccess.txt переименован в .htaccess
Я привел полностью рабочее решение
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #14 : 08.07.2014, 16:43:45 »
Конечно включен. По вашему способу url имеет такой  вид - site.ru/administrator/index.php?option=com_content&view=article&id=15&catid=3&Itemid=140
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Как сделать SEF url ?
« Ответ #15 : 08.07.2014, 17:56:23 »
http://joomlaforum.ru/index.php/topic,293840.0.html
выводит http://site.ru/component/content/article?id=1
Код: php-brief
echo JRoute::_('index.php?&option=com_content&view=article&id=1');
выводит /component/content/article?id=1

ContentHelperRoute::getArticleRoute() не формирует SEF ссылки, наоборот, возвращает non-SEF ссылки на материалы.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как сделать SEF url ?
« Ответ #16 : 08.07.2014, 19:09:43 »
Код: php
function buildSefLink($link) //в качестве параметра ссылка в формате "index.php?option=com_xxx&view=xxx..."
{
    $router = JRouter::getInstance('site');
    $router->setMode(JROUTER_MODE_SEF);
    $uri = $router->build($link);

    $path = str_replace(JURI::base(true).'/', JURI::root(), $uri->getPath());
    $uri->setPath($path);
    $url = $uri->toString(array('path', 'query', 'fragment'));
    return $url;
}
echo buildSefLink('index.php?option=com_content&view=article&id=4:myarticle&catid=root');
Вот так у меня работает. 4 - ид материала, myarticle - псевдоним. Нужно указывать view и category, так уж роутер устроен у com_content. Он вобще довольно своеобразный..
« Последнее редактирование: 08.07.2014, 19:22:01 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как сделать SEF url ?
« Ответ #17 : 08.07.2014, 23:47:13 »
JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->language));
\joomla25\components\com_content\views\article\view.html.php стр 53
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как сделать SEF url ?
« Ответ #18 : 08.07.2014, 23:58:49 »
JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->language));
\joomla25\components\com_content\views\article\view.html.php стр 53
Jroute не будет билдить SEF ссылки из админки. Там используется другой роутер для админки в котором не SEF билдер. Для этого я и привел функцию которая обходит этот момент.. 
интернет-блог: http://websiteprog.ru
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Как сделать SEF url ?
« Ответ #19 : 09.07.2014, 00:00:13 »
Ну да:
JRoute::_('non-SEF_url');
Не будь паразитом, сделай что-нибудь самостоятельно!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как сделать SEF url ?
« Ответ #20 : 09.07.2014, 01:15:18 »
На самом деле в статическом методе(c непонятным названием "_") класса jroute происходит вызов роутера по умолчанию для приложения и его методов. Для сайта ипользуется класс JRouterSite а для админки JRouterAdministrator. Так вот проблема в том что для сайта ЧПУ ссылки формирует в основном защищенный метод _buildSefRoute , который  в JRouterAdministrator просто отсутствует. Поэтому и нету ЧПУ ссылок в админке.
интернет-блог: http://websiteprog.ru
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #21 : 09.07.2014, 18:26:52 »
Хотите сказать невозможно сформировать SEF ссылку на материал в админке?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как сделать SEF url ?
« Ответ #22 : 09.07.2014, 18:46:26 »
В ответе #16 я привел вариант который работает, по крайней у меня.
интернет-блог: http://websiteprog.ru
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #23 : 09.07.2014, 18:52:51 »
В ответе #16 я привел вариант который работает, по крайней у меня.
Выводит совершено Неправильные url это автоматом сделает кучу дублей.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как сделать SEF url ?
« Ответ #24 : 09.07.2014, 18:57:00 »
Значит вы что-то пропускаете при формировании самого линка или ид категории или ид пункта меню(если он привзян к пункту меню), я только привел функцию которая пропускает ссылки через чпу билдер сайта, а формирует ссылки каждый компонент по разному, у каждого свой роутинг, тут нет универсального решения.
интернет-блог: http://websiteprog.ru
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #25 : 10.07.2014, 15:36:16 »
Если категория или материал привязан к пункту меню, то ваш способ работать не будет. А одну из двух хоть как привязано.
Если категория привязана то ссылки получаются такого вида:
сайт/пункт меню/категория/статья.html
А должны:
сайт/пункт меню/статья.html
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Как сделать SEF url ?
« Ответ #26 : 10.07.2014, 17:30:11 »
itemid="..." указываете в ссылке? Попробуйте комбинировать параметры в ссылке: catid,itemid...я не вдавался в подробности работы роутера com_content, но видел в роутерах когда они формировали сегменты  на основе количества параметров. Так в каком то слаучае возможно какой то из параметров указывать не стоит. Вобще проще всего посмотреть какие ссылки пропускает через jroute('...') com_content у вас на сайте и уже эти ссылки пробовать пропустить через билдер.
интернет-блог: http://websiteprog.ru
*

mainet

  • Захожу иногда
  • 148
  • 1 / 0
Re: Как сделать SEF url ?
« Ответ #27 : 10.07.2014, 19:09:32 »
itemid="..." указываете в ссылке? Попробуйте комбинировать параметры в ссылке: catid,itemid...я не вдавался в подробности работы роутера com_content, но видел в роутерах когда они формировали сегменты  на основе количества параметров. Так в каком то слаучае возможно какой то из параметров указывать не стоит. Вобще проще всего посмотреть какие ссылки пропускает через jroute('...') com_content у вас на сайте и уже эти ссылки пробовать пропустить через билдер.
Конечно, он по-умолчанию подставляется в классе ContentHelperRoute. Если бы он не подставлялся были бы ссылки сайт/категория/статья.html - что есть тоже неправильный url
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать короткие ссылки Joomla 3.9?

Автор ezheck

Ответов: 12
Просмотров: 5210
Последний ответ 10.01.2020, 07:44:37
от arma
SEF со слэшем на конце или без или сделать суффикс?

Автор staticlight

Ответов: 17
Просмотров: 14717
Последний ответ 09.04.2018, 15:20:24
от stendapuss
как сделать редирект внешних ссылок?

Автор Mega4el

Ответов: 0
Просмотров: 1436
Последний ответ 24.11.2016, 01:51:17
от Mega4el
Как сделать дубль страницы?

Автор Филипп Сорокин

Ответов: 16
Просмотров: 1981
Последний ответ 20.11.2015, 03:00:45
от Филипп Сорокин
Сделать дружественные ссылки для самописного компонента

Автор aleks

Ответов: 0
Просмотров: 1369
Последний ответ 18.07.2015, 16:13:11
от aleks