Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

Rodogor

  • ***
  • 189
  • +24/-0
    • Просмотр профиля
Редирект на созданную страницу.
« : 17 Января 2013, 20:23:46 »
Здравствуйте. Вроде не маленький мальчик и подобное делал не раз, но почему-то сейчас у меня не получается сделать редирект на созданную страницу, как допустим создание блога - отправили из формы данные в макрос, а там $this->redirect();

Что делаю:
0. создаём страницу - получаем id
1. прописываем права (аналогично блогах и стандартному кодэ)
2. по id страницы получаем objectId источника данных страницы
3. сохраняем заполненные поля
4. commit для созданной страницы
5. выводим id страницы - выводится
6. через происходит либо а) выводим url - не выводится б) если выводится - редиректится

Что пробовал делать - у меня по порядку идут страницы, т.е. я заранее знаю url. Так вот я руками прописывал следующий url и редирект происходил.
              
 
                $questId = $hierarchy->addElement('41807','27', $name, $name,'1338');
$quest = $hierarchy->getElement($questId);
$quest->setIsActive(true);
$oUsers = cmsController::getInstance()->getModule('users');
$pCollection = permissionsCollection::getInstance();
$pCollection->setDefaultPermissions($questId);
$pCollection->setElementPermissions($oUsers->user_id, $questId, 31);
$user     = umiObjectsCollection::getInstance()->getObject( $oUsers->user_id );
$groups   = $user->getValue('groups');
foreach($groups as $id)
$pCollection->setElementPermissions($id, $blogId, 1);
$data = cmsController::getInstance()->getModule("data");
$oQuestId = $quest->getObjectId();
$data->saveEditedObject($oQuestId,true);
$quest->commit();
var_dump($questId);
var_dump($hierarchy->getIdByPath($questId));
$this->redirect($hierarchy->getIdByPath($questId));

UPDATE:
заметил, что так работает -
$this->redirect($quest->link);   
« Последнее редактирование: 17 Января 2013, 20:35:37 от Rodogor »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Редирект на созданную страницу.
« Ответ #1 : 18 Января 2013, 11:51:27 »
попробуй не
$this->redirect($hierarchy->getIdByPath($questId));

, а
$url = $hierarchy->getIdByPath($questId);
var_dump($url);
$this->redirect($url);

и заодно скажи, выводиться ли $url?

*

Vladimir

  • ****
  • 279
  • +48/-0
    • Просмотр профиля
Re:Редирект на созданную страницу.
« Ответ #2 : 18 Января 2013, 19:53:40 »
ээээ.. а почему $hierarchy->getIdByPath($questId); ??
Мне всегда казалось, что в redirect нужно передавать урл, а не id

*

Vladimir

  • ****
  • 279
  • +48/-0
    • Просмотр профиля
Re:Редирект на созданную страницу.
« Ответ #3 : 18 Января 2013, 19:54:34 »
ах да! getIdByPath($questId);   => getPathById

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Редирект на созданную страницу.
« Ответ #4 : 19 Января 2013, 02:08:52 »
действительно, напутал сам когда копировал с исходника