Предопределение путей к экшенам, и еще один момент

Было бы здорово до релиза, пока еще не заверстан новый дизайн, предопределить пути константами. Движок можно конфигурировать под разные задачи и типы сайтов, однако немного не хватает гибкости с путями. Варианты переименования — за слешами.

В темплейтах конструкция "/blog/" встречается довольно часто, можно пройтись и везде поменять пути вручную, но тогда обновление частей движка через SVN — приведет к ошибкам.

define('LSPATH_PROFILE','profile');	//e.g. user
define('LSPATH_PEOPLE','people');	//e.g. users
define('LSPATH_BLOG','blog');		//e.g. community
define('LSPATH_LOG','log');		//e.g. blog
define('LSPATH_MY','my');		//e.g. blog
define('LSPATH_PAGE','page');		//e.g. static

return array(
	'page' => array(		
		LSPATH_PROFILE => 'ActionProfile',
		LSPATH_BLOG => 'ActionBlog',
		LSPATH_PEOPLE => 'ActionPeople',
	)
);


Второй момент: использование ".html" в окончании топиков. Я поверхностно пробежался по движку, по сайту, и пока не нашел обоснований использования этого. Возможно, для указания ID топика, при неоднородной структуре (а такое уже есть?). В этом случае (обязательной идентификации ID топика в пути) предлагаю для этой самой идентификации — использовать предопределенный паттерн, чтобы иметь возможность, к примеру, использовать такие пути: /blog/bla/t-1212
Да, это можно сделать вручную, но тем самым лишив себя возможности быстро обновляться.

31 комментарий

avatar
И, да, огромное спасибо за движок. Проект действительно выдающийся. Ну, кроме верстки, конечно :)
avatar
А зачем тебе вводить константы? URI, который видят пользователи можно в роутере заменить, насколько я понимаю.
Со второй частью не понял чего не нравится…
Я обоими руками за nazvanie_topika_translitom.html
avatar
Не, в роутере — это одно. В темплейтах, в куче мест прописано руками «/blog/». Вот там везде это менять надо.

А не нравится «.html» — рудимент прошлого. Куда более красивее пути типа /blog/bla/324
avatar
В шаблоне мне кажется должен быть просто путь, а то замучаешься вспоминать все эти константы чтобы ссылку сделать…
насколько я знаю, html лучше «читается» поисковиками…
avatar
Запомнить нужно будет лишь префикс «LSPATH_» (LiveStreetPath, да и это просто пример), остальное — как по умолчанию. Зато сколько гибкости добавляется движку. Да и кажутся нелогичными некоторые пути, например, «my»: /my/someuser — непонятно о чем говорит противоречивый путь, и почему он «мой».

Ну а то, что html лучше «читается» поисковиками — перестало быть актуально еще задолго до появления Хабра.
avatar
Ну а то, что html лучше «читается» поисковиками
сколько людей, столько мнений…
avatar
Это точно. Еще есть мифы и есть актуальная документация, в которой уже много лет как не встретить упоминания «.html», — это разные вещи, ко мнениям не имеющие отношения.
avatar
Да, и если убрать этот «.html» — то для названия топика транслитом почти ничего не надо делать — так работает — livestreet.ru/blog/wishlist/269.html/puti-k-ekshenam
avatar
название транслитом — вот рудимент =)
путь с .html или с /postId — это ЧПУ, а путь с топик-тайтлом транслитом в УРЛе — это уже нифига не человеко-понятный УРЛ, т.к. глупо надеяться, что пользователь будет запоминать таблицу транслитерации сайта и плюс точное название топика
avatar
а ко мне на сайт до сих пор 60 процентов юзером ходят под IE всякими, думаю для них ссылка типа /blog/интересный-топик.html будет вообще катастрофой ;) все должно быть выбираемо, с транлитерацией под одни сайты/браузеры, без под другие.
avatar
а в чем катастрофа ?) в том чтоли, что ослоюзеры не смогут запомнить даже идентификатор топика ?))
avatar
Идентификатор никто не будет запоминать) для этого есть мессенджеры и фейворитс…
avatar
И сколько номеров топиков вы запомнили?))))
по-моему \blogs\topik-pro-krasivyh-koshek.html более понятен чем \blogs\11
Когда мне по аське кидают ссылу с названием топика я ее могу открыть, когда кидают просто номер я спрошу что это.
Кстати, хочу напомнить что в ие7 до сих пор в выпадающем списке строки адреса до сих пор не подписывается тайтл страницы. И там-то как раз только по УРЛу можно определить куда он ведет.
Хотя и правда каждому приятнее свое…
avatar
Ну это я к слову, в ответ benone'у. Но для SEO это очень полезная штука — путь, содержащий ключевые слова — будет считаться более релевантным.
avatar
УРЛы вида blog/Name/Id.html или blog/Name/Id выглядят хотя бы аккуратно, а УРЛы с заголовком — ужасно, особенно если заголовок — это почти целое прежложение…
avatar
да и поиск топика в базе по УРЛу с заголовком в разы тяжелее, чем по первичному ключу
avatar
В том примере, который я дал, нет необходимости держать стобайтные индексы, выборка по числовому ключу, который болдом:
livestreet.ru/blog/wishlist/269.html/puti-k-ekshenam — проверь, так и сейчас работает.
avatar
С этим согласен. Но опять же зависит от задач сайта, и что на весах: красивые урлы, или дополнительный трафик с поисковиков.
avatar
Ну судя такой логике название блогов тоже не нужны в принципе…
Можно айдишниками обойтись)
«Ужасно» — субъективное понятие… Напр. для меня айди поста «Ужасно неинформативно».
Касательно производительности — в сети полно примеров ссылок с тайтлами. Как-то это реализуется.
В общем всё зависит от нужд конечно же…
avatar
я не говорил что невозможно. я сказал, что сильно затратно по ресурсам сервера, если id в УРЛ вообщем не включать ни в каком виде.

а если на этой куче сайтов на говнодвижке типа ДЛЕ используются ссылки с заголовками, то это ничего не значит…

если на той же самой куче сайтов используются рекламные попапы или DIV-ы с рекламой поверх всего контента и всегда в центре страницы+при «закрытии» этого дива открывается порносайт или рекламные блоки на 2/3 площади страницы, то это значит что мы все тоже такой треш должны у себя устраивать? и в «правильные» движки встраивать чтобы всякие разные пипл-ы с желанием создать говносайт за 5 минут и зарабатывать на нем дофига денег жили спокойно далее и не напрягались?

Посмотрите на Хабр. на главной почти нет рекламы, в УРЛах никаких заголовков, но тем не менее при минимальной релевантности запроса к хабру, ссылка на него является первой в поисковиках
avatar
про всякий пипл, не лично к Вам, а вообще. абстрактно :-)
avatar
Тема нашей дискуссии — удобство и эффективность, а не ДЛЕ и левые сайты.
Я к ним отношусь точно так же как и Вы.
Не совсем понятно, почему была поднята тема с той кучей левых сайтов…

Касательно харбра — сам по себе ресурс имеет огромную базу статей и часто цитируется. Это не показатель…

Я думаю нам не стоит спорить, а можно:
1. Найти SEOшника и узнать, действительно ли линки с тайтлом эффективнее в продвижении, или это и правда «рудимент».
2. Согласиться что для каждого удобнее тот или иной вид ссылок («аккуратный» либо «информативный»)
avatar
соглашусь
avatar
Про «Найти SEOшника». Ну если мне не верите — Гугл в помощь — по запросу «ключевые слова в URL» — десять из десяти утверждений сеошников о пользе таких ссылок для продвижения. От себя добавлю, что веса странице это прибавляет не меньше, чем ключевые в тайтле. А рудиментом это быть не может по причине того, что во многих поисковиках это появилось всего несколько лет назад.

Но топик совсем не об этом.
avatar
парни, я вмешаюсь, мне очень нравится идея делать УРЛы типа livestreet.ru/blog/wishlist/269/puti-k-ekshenam.html
по 269 можно без проблем все индексировать, а 'puti-k-ekshenam' с .html или без это каждый выберет для себя сам :) в плане реализации идеи как лучше сделать? отдельную таблицу prefix_url с полями tid,url или добавить в таблицу prefix_topic еще одно поле url?
avatar
Конечно же, проще в той же таблице, никакого выигрыша в оптимизации нет, т.к. основные запросы к таблице топиков — это их вывод и ссылки на них, где этот url и будет задействован. Излишняя декомпозиция — таки враг.

А насчет мифа о «лучшем индексировании с .html» — стоит просто задать себе вопрос: правда ли, что страница /blog/wishlist/269.html лучше проиндексирована, чем страница /blog/wishlist/? И после этого перестать забивать голову подобным.

Еще одним важным плюсом осутсвия .html — увеличение глубины в структуре. К примеру, /blog/wishlist/269/comment/12121
Гооврить о пользе этого — смысла нет, это просто пример, но где это может пригодиться — вариантов множество.
avatar
А можно поподробнее про глубину структуры? Я думал, что ссылка
/blog/wishlist/269/comment/12121 очень уж глубокая и поисковики такие не любят… я ошибался?
avatar
Да.
Во-первых, это не обязательно для поисковиков — это важно.
Во-вторых, глубина для поисковиков — это доступность, начиная с главной. Т.е., если эта ссылка будет, к примеру, на главной — она вполне даже доступна, и считается вторым уровнем.
В-третьих, Яндекс и Гугл прекрасно индексируют страницы, доступность которых более ста кликов. Даже для сайтов с нулевым PR и иЦ — могут быть проиндексированы в течение месяца. И это я не на ходу придумываю :)
avatar
>> Излишняя декомпозиция — таки враг.
денормализация :-)

таки парадокс — в теории баз данных, необходимо максимально нормализировать структуру, исключить хранение дублирующих данных, все связи осуществлять по уникальным ключам.

на практике же, с повышением нагрузки на базу приходится все больше и больше денормализировать структуру, даже на таком молодом движке, как ЖУ, это уже заметно — разнесение текста топиков и прочей служебной информации по разным таблицам и тп.
avatar
В этом случае, все-таки «декомпозиция». Если уж придираться к терминам, то «нормализаия БД посредством декомпозиции таблиц».

При использованпии ключевых слов в адресации — это совсем даже не «дублирующие даные», ключ же остается прежним — ID, а URL — просто ячейка, информация из которой будет задействована при большинстве (если ни при всех) запросов к строке.
Мы же говорим о варианте «/blog/wishlist/269/puti-k-ekshenam», а не о «/blog/wishlist/puti-k-ekshenam»?
avatar
Черт, кажется я только сейчас понял шутку про «денормализацию». Прошу прощения.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.