Формирование URL

Возможно?

 
Посетитель
small user social cms
Сообщений: 80
Доброе время суток. Вот озаботился такой темой. Как известно не рекомендуется для улучшения продвижения сайта делать слишком большую вложенность статей.

Ну, например, мойсайт.ru/category1/subcategory1/subcategory2/post1.html - не есть хорошо.
Гораздо лучше мойсайт.ru/post1.html

Но при этом в навигации сайта должны остаться все эти категории и подкатегории, чтобы например вывести список статей в оределенной категории.

Встает вопрос. А можно ли так сделать??? Вырезание части url ???
http://umnie-roditeli.ru
Развиваю и воспитываю детей (своих)
Посетитель
small user social cms
Сообщений: 80
Правльно ли я понимаю, что для этого можно поиграться с полем seolink в таблице cms_content. Необходимо, чтобы туда записывался путь без категорий. Для этого берем файл /component/content/model.php и редактируем вот это

Код PHP:
  1. public function getSeoLink($article){
  2.  
  3. $seolink = '';
  4.  
  5. $category = $this->inDB->get_fields('cms_category', "id={$article['category_id']}", 'NSLeft, NSRight');
  6.  
  7. $left_key = $category['NSLeft'];
  8. $right_key = $category['NSRight'];
  9.  
  10. $path_list = $this->getCategoryPath($left_key, $right_key);
  11.  
  12. if ($path_list){
  13. foreach($path_list as $pcat){
  14. if ($pcat['id']!=1){
  15. $seolink .= cmsCore::strToURL(($pcat['url'] ? $pcat['url'] : $pcat['title'])) . '/';
  16. }
  17. }
  18. }
  19.  
  20. $seolink .= cmsCore::strToURL(($article['url'] ? $article['url'] : $article['title']));
  21.  
  22. if ($article['id']){
  23. $where = ' AND id<>'.$article['id'];
  24. } else {
  25. $where = '';
  26. }
  27.  
  28. $is_exists = $this->inDB->rows_count('cms_content', "seolink='{$seolink}'".$where, 1);
  29.  
  30. if ($is_exists) { $seolink .= '-' . $article['id']; }
  31.  
  32. return $seolink;
  33.  
  34. }
Для нашей задачи эта функция выглядела бы так:

Код PHP:
  1. public function getSeoLink($article){
  2.  
  3. $seolink = '';
  4.  
  5. $seolink .= cmsCore::strToURL(($article['url'] ? $article['url'] : $article['title']));
  6.  
  7. if ($article['id']){
  8. $where = ' AND id<>'.$article['id'];
  9. } else {
  10. $where = '';
  11. }
  12.  
  13. $is_exists = $this->inDB->rows_count('cms_content', "seolink='{$seolink}'".$where, 1);
  14.  
  15. if ($is_exists) { $seolink .= '-' . $article['id']; }
  16.  
  17. return $seolink;
  18.  
  19. }
Все ли верно?

Но тогда наверное можно наткнуться на какие-то подводные камни. Вдруг еще где-то эта функция работает и там нужен полный путь??
http://umnie-roditeli.ru
Развиваю и воспитываю детей (своих)
Реклама
cms
Посетитель
small user social cms
Сообщений: 42
На первый и второй камень я сегодня наткнулся

Камень первый
Сделал по примеру как у вас, доюавлял новости как положено, URL были вида http://site.ru/moyanovost.html

Затем в разделе новостей заметил что выводятся новости в обратном порядке не как на главной и решил сменить вывод по убыванию, и все ссылки слетели, стали вида http://site.ru/novosti/razdel/moyanovost.html ну и естественно с ПС все вылетело, теперь каждую новость редактирую что бы ссылки вернуть как были.

Как можно обойти эту проблему??

Камень второй, в новостях типа site.ru/novost.html не отображаются sidebar maintop и т.д. Т.е хочу баннер впихнуть в sidebar а он не появляется. Что делать не понятно, работает только если поставить галочку отоброжать на всех.
Редактировалось: 1 раз (Последний: 22 сентября 2011 в 02:22)
Пытаюсь лепить http://westday.ru/ и http://ta-gaz.ru/
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 238
А меня интересует как с помощью этого сделать ссылку типа сайт.ru/nikitka вместо того что сейчас сайт.ru/users/nikitka!Кто может помочь отзовитесь!
Уважайте мнение каждого...
Модератор
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 964
Nikitka, так просто у вас ничего не получится. Дело в том, для всех компонентов, кроме content, по ури определяется компонент. Т.е. в вашем случае /users/ определяет, что нужно открыть компонент "Профили пользователей". Если вы уберете с ури эту часть, то будет искаться раздел статей под названием "никитка" .
Ну, если уж так вам хочется, то можете подредактировать файл /core/cms.php строки где-то 1565 в методе detectComponent() со следующим кодом
Код PHP:
  1.  
  2. //если компонент не существует, считаем это content
  3. $this->uri = 'content/'.$this->uri;
  4. $this->is_content = true;
  5. return 'content';
проверяте ури на логин пользователя и если совпадает, то добавляете в ури /users/ и возвращаете компонент 'users'
Хватит париться, живи как нравится!
Посетитель
small user social cms
Сообщений: 57
densvi:
Как известно не рекомендуется для улучшения продвижения сайта делать слишком большую вложенность статей.

Ну, например, мойсайт.ru/category1/subcategory1/subcategory2/post1.html - не есть хорошо.
Гораздо лучше мойсайт.ru/post1.html

Но при этом в навигации сайта должны остаться все эти категории и подкатегории, чтобы например вывести список статей в оределенной категории.
У меня та же потребность и по той же причине. Есть, правда, мнение, что урлы давно уже не влияют на индексацию сайта. Утверждать и спорить не буду, но на основании консультации с профи, которому [у меня] есть основания доверять, вижу это целесообразным. К тому же так просто эстетичнее - ничего лишнего)).

Здесь Till даёт решение для урлов статей. Всё вроде замечательно работает. Но кроме статей есть ещё урлы блогов, профилей пользователей, групп.... Пользователь nedoriko предлагает скинуться и заплатить тому, кто возьмётся за доработку....
Редактировалось: 2 раз (Последний: 8 февраля 2012 в 14:00)
Посетитель
small user social cms
Медаль
Сообщений: 130
В таком случае навязывается вопрос. Как сделать чтоб URL формировались не из пути по сайту-модулям а в видео свободной реализации URL
Регистрация доменов
VDS от 225 р., Облачный Хостинг от 124 р. на скоростных серверах
10$ на счет в DigitalOcean
Посетитель
small user social cms
Сообщений: 57
sofcom:
В таком случае навязывается вопрос. Как сделать чтоб URL формировались не из пути по сайту-модулям а в виде свободной реализации URL
Это было бы замечательно. Я видел подобный сервис в Дискуз (китайская CMS). Там можно урлы формировать по своему усмотрению. И не приходится даже спорить о целесообразности того или иного варианта))).
Редактировалось: 1 раз (Последний: 9 февраля 2012 в 20:45)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.