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

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

*

sergeron

  • **
  • 59
  • +2/-0
    • Просмотр профиля
Псевдоадрес (ЧПУ) по id
« : 31 Май 2012, 12:11:26 »
У объекта каталога есть некий id,  как получить его имя в транслите как это делает ЧПУ (через API)

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re:Псевдоадрес (ЧПУ) по id
« Ответ #1 : 31 Май 2012, 14:16:16 »
именно его ЧПУ получить по id или механизм транслитерации применить на что-то свое?

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Re:Псевдоадрес (ЧПУ) по id
« Ответ #2 : 31 Май 2012, 18:00:49 »
Имя объекта это %uri%. В апи:
$h = umiHierarchy::getInstance();
$element = $h -> getElement($id);
$uri = $element -> getAltName();//alt_name страницы
$path = $h -> getPathById($id);//путь к странице

*

sergeron

  • **
  • 59
  • +2/-0
    • Просмотр профиля
Re:Псевдоадрес (ЧПУ) по id
« Ответ #3 : 31 Май 2012, 21:43:55 »
ок, спасибо

*

sergeron

  • **
  • 59
  • +2/-0
    • Просмотр профиля
Re:Псевдоадрес (ЧПУ) по id
« Ответ #4 : 01 Июнь 2012, 12:32:15 »
че-то не пошло:

<page id="138" parentId="133" link="/shop/rechnye_kruizy/valaam/" is-active="1" object-id="1154" type-id="147" update-time="1338389423" alt-name="valaam"> - это вот объект

из custom.php прямым запросом в базу мы получаем этот id=1154
 
$query = 'select t2.id from cms3_objects t1, cms3_objects t2 where t1.id in ('.$city_id_str.') and t1.type_id = 138 and t1.name=t2.name and t2.type_id=147'  
$result = l_mysql_query($query) or die("ERROR :".mysql_error());
$sql_data = mysql_fetch_array($result)

вот так получил id ...  и он правильный 1154
пробую получить путь
$h = umiHierarchy::getInstance();
$element = $h -> getElement($id);
$uri = $element -> getAltName();
$path = $h -> getPathById($id);

и ничего... в переменной $path пусто а функция getAltName ругается Call to a member function getAltName() on a non-object

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Re:Псевдоадрес (ЧПУ) по id
« Ответ #5 : 01 Июнь 2012, 14:39:37 »
Минуту...  вы с каким id хотите работать: объекта или страницы?

*

sergeron

  • **
  • 59
  • +2/-0
    • Просмотр профиля
Re:Псевдоадрес (ЧПУ) по id
« Ответ #6 : 01 Июнь 2012, 15:55:23 »
объекта

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Re:Псевдоадрес (ЧПУ) по id
« Ответ #7 : 01 Июнь 2012, 17:05:18 »
Тогда не так. Я понял что у вас id страницу объекта каталога.
тогда Id элемета по id объекта я получаю по методике http://umi-cms.spb.su/api/101/object-element/
Но Сергей Антонинко однажды на форуме ЮМИ называл метод api, решающий ту же задачу. К сожалению, я забыл этот метод, а ссылка на страницу документации в форуме устарела. Поэтому - поищите, возможно, вам повезет, вы найдете штатный метод. Он точно был.

Ну а дальше, когда у вас есть id элемента, все как было выше.