Удаляем из ссылок вложенность item, category, frontpage
#31
Отправлено 05 February 2014 - 09:45
Пожалуй добавлю опциональную возможность для новой версии 2.1.3 (скоро на экранах).
Для старых ссылок будет редирект
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#32
Отправлено 05 February 2014 - 12:23
Посмотрел, почитал, потыкал, подумал...
Пожалуй добавлю опциональную возможность для новой версии 2.1.3 (скоро на экранах).
Для старых ссылок будет редирект
Спасибо! Так и знал, что надо всего-лишь немного подождать!
#33
Отправлено 05 February 2014 - 12:29
Посмотрел, почитал, потыкал, подумал...
Пожалуй добавлю опциональную возможность для новой версии 2.1.3 (скоро на экранах).
Для старых ссылок будет редирект
Денис, может добавите и опцию в виде вывода ID материала вместо алиаса, как здесь?
Было бы очень здорово.
#34
Отправлено 05 February 2014 - 13:26
An1hony, Думаю можно сделать.
Как появится немного свободного времени допишу в рецепт новую версию роутера.
Хочу добавить
- id вместо алиаса
- удаляем category_id
- редирект со старых ссылок на новые.
- возмоооожно, если получится... независимость от пунктов меню joomla. но тут все очень можно ((
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#35
Отправлено 05 February 2014 - 19:34
Спасибо Денис, ждем с нетерпением выхода новой версии JBZoo!
JBZoo это круто!
#36
Отправлено 05 March 2014 - 15:38
Нашёл багу.
Если в разных категориях есть одинаковые подкатегории с одинаковыми алиасами, то при просмотре обеих подкатегорий показывается тизер одного материала, того, что привязан к первой подкатегории.
Со стандартным роутером показываются разные материалы.
#37
Отправлено 05 March 2014 - 20:43
Если в разных категориях есть одинаковые подкатегории с одинаковыми алиасами
Вы что-то путаете.
В Zoo нельзя создать две категории с одинаковыми алиасами, даже если они принадлежат разным каталогам.
Отключайте проверку лицензий как можно скорее!
— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.
#38
Отправлено 15 March 2014 - 11:03
Вы что-то путаете.
В Zoo нельзя создать две категории с одинаковыми алиасами, даже если они принадлежат разным каталогам.
Да, это я перегнул парку в кастомизации создания алиасов и убил проверку на уникальность, вернул обратно =)
#39
Отправлено 04 April 2014 - 17:08
Хотел кое-что уточнить по данному хаку
Открываем файл \media\zoo\applications\jbuniversal\framework\events\jbevent.application.php
И меняем одноименные функции sefBuildRoute и sefParseRoute на вариант ниже
У меня так:
/** * on after application sefparseroute * @param AppEvent $event */ public static function sefParseRoute($event) { } /** * on after application sefbuildroute * @param AppEvent $event */ public static function sefBuildRoute($event) { }
Мне это удалить и заменить вашим?
Просто тогда <?php не в тему.
#40
Отправлено 04 April 2014 - 17:15
Ну, в PHP все-таки полезно разбираться хотя бы на уровне понимания (как я ) и знать, что такое функция.
Функция sefParseRoute в Вашем файле :
public static function sefParseRoute($event) { }
Функция sefParseRoute в коде Дениса:
public static function sefParseRoute($event) { $app = self::app(); $params = $event->getParameters(); $count = count($params['segments']); if (empty($params['vars'])) { $itemId = (int)$app->alias->item->translateAliasToID($params['segments'][0]); if ($itemId) { $params['vars']['task'] = 'item'; $params['vars']['item_id'] = $itemId; } } if (empty($params['vars'])) { $categoryId = (int)$app->alias->category->translateAliasToID($params['segments'][0]); if ($categoryId) { $params['vars']['task'] = 'category'; $params['vars']['category_id'] = $categoryId; if (isset($params['segments'][1])) { $params['vars']['page'] = (int)$params['segments'][1]; } } } $event->setReturnValue($params); }
sefBuildRoute
public static function sefBuildRoute($event) { }
sefBuildRoute в коде Дениса
public static function sefBuildRoute($event) { $app = self::app(); $params = $event->getParameters(); if (isset($params['segments'][0])) { if (in_array($params['segments'][0], array('item', 'category', 'frontpage'))) { unset($params['segments'][0]); } } $params['segments'] = array_values($params['segments']); $event->setReturnValue($params); }
Сообщение отредактировал Sliapy: 04 April 2014 - 17:16