Удаляем из ссылок вложенность 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










