UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: xanty от 25 Ноября 2014, 17:04:44

Название: ЧПУ в виде category/object-ID
Отправлено: xanty от 25 Ноября 2014, 17:04:44
Здравствуйте, столкнулся с задачей реализовать для проекта URL в виде сайт.ру/категория/ID-странички но увы затратив некоторое кол-во времени на поиски полей для настройки вида ЧПУ и в последовательности не обнаружив их ринулся читать  мануалы и рыскать в вики. Поскольку у меня не вышло найти информации как решить мою задачу, я сделал запрос в тех поддержку, на что они любезно ответили воот этой ссылочкой http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/formirovanie_dannyh_na_servere_protokol_umap/ мол, сделать можно как там написано, но увы после 2-х часовой битвы так ничего у меня не вышло, я понимаю что скорей всего по моей неопытности в работе с ЮМИ, и прошу вас помочь разобраться в этой задачке. А если кто уже делал для себя подобное, прошу за делится! :)
Название: Re:ЧПУ в виде category/object-ID
Отправлено: admin от 27 Ноября 2014, 10:21:32
umap это конечно хорошо, но может рассмотреть другой вариант. У вас есть страница(пусть у неё будет с id = 121 и alt-name = 'page1'), которая лежит внутри раздела (пусть у неё будет alt-name = 'category1'). Заходя на страницу, в адресной строке, вы видите http://site.ru/category1/page1 , а вам необходимо увидеть http://site.ru/category1/121 . Так может проще исправить alt-name у страницы с "page1" на '121', то есть, сохранить в alt-name значение, равное id текущей страницы? или я слишком упростил.

P.S. А по каким причинам вам понадобилось создавать url, в котором выводится именно id, а не какой-то осмысленный текст?
Название: Re:ЧПУ в виде category/object-ID
Отправлено: xanty от 27 Ноября 2014, 16:14:37
Спасибо за совет, я хочу что бы при добавлении допустим товара или статьи у страницы автоматически был адрес в виде как я излагал выше, это по моим соображениям выглядит в адресной строке более эстетично и легче запомнить/написать чем транслитерированный URL, понятно что многие скажут а как же СЕО и т.д., на что можно ответить сайт делается в первую очередь для пользователя, а уж потом если этого мало будет для ПС и т.д., в общем я чем больше знакомлюсь с ЮМИ тем больше удивляюсь и даю такое определение — на UMI "сделать можно всё, но просто так ничего не сделаешь", и порой бывает убивает меня логика самого движка она местами не предсказуема и без "пендалей" и вашей помощи не обойтись :)
Название: Re:ЧПУ в виде category/object-ID
Отправлено: admin от 27 Ноября 2014, 16:28:39
к сожалению или к радости у umi слишком много заложенно гибкости и как следствие желание сделать что-то может натыкаться на отсутствие реализации именно этого, именно в нужном виде. Надеюсь, что после того, как umisoft запустили market, эта ситуация будет выправляться.

P.S. у umi, кстати, есть еще короткая запись обращения к страницам вида site.ru/~/id - где id является id страницей
Название: Re:ЧПУ в виде category/object-ID
Отправлено: xanty от 27 Ноября 2014, 16:50:02
<<< P.S. у umi, кстати, есть еще короткая запись обращения к страницам вида site.ru/~/id - где id является id страницей

Вот бы эту запись на всех... а то только я из пользователей сайта буду знать про неё.
Название: Re:ЧПУ в виде category/object-ID
Отправлено: xanty от 28 Ноября 2014, 09:58:29
umap это конечно хорошо, но может рассмотреть другой вариант. У вас есть страница(пусть у неё будет с id = 121 и alt-name = 'page1'), которая лежит внутри раздела (пусть у неё будет alt-name = 'category1'). Заходя на страницу, в адресной строке, вы видите http://site.ru/category1/page1 , а вам необходимо увидеть http://site.ru/category1/121 . Так может проще исправить alt-name у страницы с "page1" на '121', то есть, сохранить в alt-name значение, равное id текущей страницы? или я слишком упростил.

P.S. А по каким причинам вам понадобилось создавать url, в котором выводится именно id, а не какой-то осмысленный текст?

А вот при создании страницы как узнать ещё ID, она ведь ещё не создана и не имеет его, или я ошибаюсь?
Название: Re:ЧПУ в виде category/object-ID
Отправлено: admin от 28 Ноября 2014, 10:15:51
А вот при создании страницы как узнать ещё ID, она ведь ещё не создана и не имеет его, или я ошибаюсь?

Вы абсолютно правы. Id появляется после добавления страницы. Поэтому, вначале добавили, затем, указали в alt-name, id созданной страницы.
Название: Re:ЧПУ в виде category/object-ID
Отправлено: xanty от 28 Ноября 2014, 10:53:01
Я благодарен вам за желание помочь, но увы, это не очень хорошее решение, это ручная работа причем очень трудоемкая, задачу это не решает.
Название: Re:ЧПУ в виде category/object-ID
Отправлено: admin от 28 Ноября 2014, 11:13:51
Я благодарен вам за желание помочь, но увы, это не очень хорошее решение, это ручная работа причем очень трудоемкая, задачу это не решает.

А как в идеале вы видите механизм работы системы? Насколько я понимаю, вы же все равно создаете страницы. Значит, вас смущает только то, что надо дополнительно заполнять "Псевдостатический адрес", копируя туда id страницы из адресной строки?
Название: Re:ЧПУ в виде category/object-ID
Отправлено: xanty от 28 Ноября 2014, 12:01:11
Механизм работы должен быть следующим:
Условия:
1) товар можно добавлять с панели управления
2) товар добавляет пользователь с интерфейса на сайте (с предмодерацией)
3) определенные группы добавляют товар с интерфейса на сайте без модерации
Механизм:
При добавлении товара/статьи генерируется ID объекта и он же является частью адреса по которому можно найти объект
Название: Re:ЧПУ в виде category/object-ID
Отправлено: admin от 28 Ноября 2014, 12:11:46
в таком случае вам нужно написать event, который при создании товаров будет сохранять в поле alt-name id текущего товара. Информацию по event можно почитать в api документации Событийная модель (http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/sobytijnaya_model_umicms/), примеры можно посмтореть на wiki.umisoft.ru (например Автоматическое формирование даты начала активности при создании новости. (http://wiki.umisoft.ru/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D1%82%D1%8B_%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%B0_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BF%D1%80%D0%B8_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B8_%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8.))
Название: Re:ЧПУ в виде category/object-ID
Отправлено: xanty от 30 Ноября 2014, 09:56:10
Кажись проще будет разобраться с umap...
Название: Re:ЧПУ в виде category/object-ID
Отправлено: admin от 16 Декабря 2014, 13:11:49
с umap получилось? Если да, то напишите как именно вы его использовали, для других будет познавательно.
Название: Re:ЧПУ в виде category/object-ID
Отправлено: e.ioffe от 16 Декабря 2014, 22:10:00
В качестве подсказки, делал подобное разбирая переменную $_REQUEST['path']. 15 строк кода, системные файлы UMI не затрагиваются.
Название: Re:ЧПУ в виде category/object-ID
Отправлено: admin от 17 Декабря 2014, 00:26:32
В качестве подсказки, делал подобное разбирая переменную $_REQUEST['path']. 15 строк кода, системные файлы UMI не затрагиваются.
в качестве подсказки мне?)
Название: Re:ЧПУ в виде category/object-ID
Отправлено: xanty от 18 Декабря 2014, 09:54:17
ioffe, спасибо за наводку, надеюсь докопаюсь до истины...
Делал ЧПУ с помощью UMap, ИМХО решение ацтойное, это обычный редирект а не ЧПУ, при этом появляется куча дублей и масса негатива, одним словом решение ацтойное. Конечно очень жаль что из коробки нет столь примитивного функционала.
Название: Re:ЧПУ в виде category/object-ID
Отправлено: e.ioffe от 18 Декабря 2014, 13:53:56
xanty, если не получится - напишите в ЛС.