Сайт Земскова Ильи
Веб-мастер, к.т.н., «200000».
Бензин ваш - идеи наши © И.Ильф и Е.Петров

Справка по плагину Friendly URLs

Установка плагина (инсталляция)

Инсталляция происходит классическим способом (копирование в папку plugins и включение плагина на странице управления плагинами в админ-панели). Настройка заключается в задания шаблонов для адресов страниц (смотрите страницу опций плагина). Кроме этого обязательно нужно в настройках движка нужно запретить использование синонимов страниц. Для этого откройте на редактирование файл \application\config\mso_config.php и задать следующие значения параметрам:

$config['mso_permalink_no_slug'] = "no"; // полностью отключить синонимы 
$config['mso_permalink_slug_cat'] = "no"; // разрешить также синонимы рубрик

Чтобы плагин начал обрабатывать RSS потоки вашего сайта необходимо скопировать в папку вашего шаблона в подпапку /type/feed/ содержимое папки feed, которая находится в каталоге плагина. Если у вас в шаблоне нет папки /type/feed/ (т.е. используются стандартные type-файлы), то можно безбоязненно скопировать указанные файлы из папки плагина. Если же в вашем шаблоне уже есть такие файлы, то перед копированием поверх них файлов из папки плагина необходимо убедиться, что не будет потерян нужный вам функционал формирования rss-потоков. При необходимости, обратитесь за помощью к автору шаблона или другому php-специалисту, чтобы они провели анализ кода.

Коды шаблонов

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

  • {page-slug} - slug записи,
  • {page-id} - id записи (число),
  • {cat-slug} - slug основной рубрики (если значение не определено, то будет подставлено значение no-cat),
  • {sub-cat-slug} - slug подрубрики (если значение не определено, то будет подставлено значение no-subcat),
  • {cat-sub-cat-slug} - макрос для обозначения конструкции вида {cat-slug}/{sub-cat-slug}, т.е. {cat-sub-cat-slug} сперва будет заменяться на указанную конструкцию, а уже потом обрабатываться алгоритмом. Если {sub-cat-slug} не определено, то {cat-slug}/{sub-cat-slug} урезается до конструкции {cat-slug},
  • {year} - год публикации записи (формат: YYYY, например - «2015»),
  • {month} - номер месяца публикации записи (формат: MM, например - «02» для февраля),
  • {day} - день месяца публикации записи (формат: DD, например - «02» для второго дня месяца),
  • {hour} - час публикации записи (формат: HH, например - «03» для третьего часа),
  • {minute} - минута публикации записи (формат: II, например - «20» для двадцатой минуты),
  • {second} - секунды публикации записи (формат: SS, например - «12» для двенадцатой секунды),
  • {author} - ник автора записи,
  • {type} - имя типа записи (по умолчанию в движке для записей определены «blog» и «static»).

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

  • {cat-id} - id рубрики,
  • {cat-slug} - slug рубрики,
  • {cat-parent-id} - id родительской рубрики (если есть, иначе используется значение no-parent-cat-id),
  • {cat-parent-slug} - slug родительской рубрики (если есть, иначе используется значение no-parent-cat-slug),
  • {parent-child-cat-slug} - макрос для обозначения конструкции вида {cat-parent-slug}/{cat-slug}, т.е. {parent-child-cat-slug} сперва будет заменяться на указанную конструкцию, а уже потом обрабатываться алгоритмом. Если {cat-parent-slug} не определено, то {cat-parent-slug}/{cat-slug} урезается до конструкции {cat-slug},

Шаблоны не обязательно начинать с косой черты (слеша) «/» - плагин сам приводит шаблон к нужному виду.

Известные особенности работы плагина

Т.к. обрабатываются только адреса страниц стандартного вида без учёта синонимов, то если у вас на сайте были вручную (или автоматически) расставлены ссылки с использованием стандартного механизма синонимов, то вам придётся самостоятельно позаботиться о том, чтобы привести эти ссылки к виду /page/page-slug и /category/category-slug.

Подсчёт просмотров страниц

В движке для подсчёта просмотров страниц имеется специальная функция mso_page_view_count_first, которая вызывается в начале файла шаблона \type\page\page.php. В этой функции жестко прописан алгоритм определения страницы на основе стандартной чпу движка (т.е. /page/slug). Из-за этого при включении плагина friendly_urls может «поломаться» отображение количества просмотров страниц. Чтобы восстановить работу подсчёта страниц нужно заменить вызов стандартной функции mso_page_view_count_first на соответсвующую функцию плагина - friendly_urls_page_view_count_first. Если у вас на сайте используется дефолтный шаблон и вы не создавали свой type-файл для кастомизации вывода страниц записей, то вам нужно создать в папке используемого шаблона папку \type\page\ и скопировать в неё файл \application\maxsite\shared\type\page\page.php. Затем нужно найти в скопированном файле функцию mso_page_view_count_first (обычно вызов находится в самом начале файла) и заменить её на friendly_urls_page_view_count_first. В качестве примера проведённой замены в папке плагина находится файл \friendly_urls\type\page\page.php.

Комментариев: 18

Добрый день!

Установил плагин, изменил mso_config, как указано. Активировал плагин, но записи не появляются! Кроме самой верхней страницы вида ("сайт".ru) - остальные не выводятся. Даже в админ панели редактирования записей нажимаю "просмотреть запись" и ничего не выходит - получаю только пустую страницу с кодом

<div class="type type_page">

Что у меня не так?

Что у меня не так?

Скорее всего влияют какие-то особенности вашего шаблона. Точнее смог бы сказать при осмотре, но это возможно только в рамках оказания платной услуги поддержки.

Еще информации, сразу не проверил...

Оказывается,. что плагин вроде работает, но на шаблоне Default 5.5, а я пытался его проверить на шаблоне bootstrap 1.0 (где он - не работает). MaxSite версия - 0.86

в чем может быть причина, что в разных шаблонах по разному. Куда копать?

в чем может быть причина, что в разных шаблонах по разному. Куда копать?

Возможно в шаблоне bootstrap 1.0 нет нужных хуков для глобального кеширования. Сейчас уже не помню точно этот шаблон, но возможно в этом дело. В любом случае, нужно проследить ход обработки запроса и станет ясно чего не хватает.

Поражен Вашим быстрым ответом - пока писал дополнение, Вы написали ответ)))

Пока жду скайп-звонка клиента есть минутка ответить. Вам просто повезло smile

искал в гугле страницы своего сайта. некоторые близко, другие - далеко. Вопрос, откуда берутся приставки к доменному имени? Чаще всего из-за них страницы далеко в результатах поиска.

Напимер: сайт skniimesh.ru/...(какая-то страница), а в гугле встречаются maam.skniimesh.ru и какие-то еще другие приставки...

Откуда они берутся? (Кстати, при переходе на них происходит переадресация на сайт без приставок)

Откуда они берутся? (Кстати, при переходе на них происходит переадресация на сайт без приставок)

Алексей, если вы подозреваете мой плагин в создании этих приставок, то огорчу - он тут не при чём. В нём даже нет функционала, который мог бы работать с доменной частью адреса.

Где гугл нашёл "домены с приставками" - хороший вопрос, но для ответа на него нужно проводить расследование. Могу посмотреть ваш сайт и поискать "откуда ноги растут" в рамках платной консультации. Пишите в личку, если интересно.

Доброго времени суток, Илья!

Всё вроде б сделал по инструкции, но, не как не получается сменить /page/ на /sveden/.

версия MaxSite CMS: 0.863 шаблона «Default» без переделок.

Подскажите пожалуйста, какие настройки поставить в Вашем плагине, что бы всё заработало?

Я не программист, а просто продвинутый пользователь.

Сергей, для начала убедитесь, что тестируемые записи принадлежат рубрике, которая имеет слаг = sveden. Ну и не мешало бы озвучить ваш шаблон чпу.

ваш шаблон чпу.

Если я правильно понимаю, речь идет о Шаблон для MaxSite CMS''Default', version'4.2'?

убедитесь, что тестируемые записи принадлежат рубрике, которая имеет слаг = sveden.

Если, я ещё как Вы Илья, был программистом, то понял сразу, что и куда подставить. Например рублика — news

Если, я ещё как Вы Илья, был программистом, то понял сразу, что и куда подставить. Например рублика — news

Сергей, в настройках каждой рубрики есть поле адреса. Если у записи есть привязка к рубрике Новости, то адрес такой страницы будет /news/... Вот для вашей задачи и нужно настроить рубрику Швеция на адрес sveden, а потом привязать запись к этой рубрике, а не к рубрике Новости.

Извиняюсь Илья, что трачу Ваше личное время, можно сделать проще — напишите пожалуйста те значения, которые нужны в моём случае. Может, если бы были примеры использования, я уловил Вашу мысль Илья быстрее. А так, наше общение затянется на долго.

Задача в рублике Новости http://site.ru/category/news/……

После того как заходим получаем http://site.ru/page/…..

сменить /page/ на /sveden/

Буду премного благодарен за помощь!

С уважением и наилучшими пожеланиями, Сергей!

Извиняюсь Илья, что трачу Ваше личное время, можно сделать проще — напишите пожалуйста те значения, которые нужны в моём случае. Может, если бы были примеры использования, я уловил Вашу мысль Илья быстрее. А так, наше общение затянется на долго.

Сергей, в настройках плагина в поле "Шаблон URI для записей" вместо стандартного значения "/{cat-sub-cat-slug}/{page-slug}.html" попробуйте подставить значение "/sveden/{page-slug}". Если всё равно не получите то, что нужно, то дальнейшие подсказки могу осуществлять только после изучения вашего сайта, а это возможно только в рамках платной консультации.

Доброго времени суток, Илья!

Поставил Вашу команду Илья, как Вы указали.

Результат: http://site.ru/"/sveden/……….."

Опишу подробнее.

Захожу в рублику Новости http://site.ru/category/news

Перехожу на первую публикацию.

Получаю: http://site.ru/"/sveden/……….."

Возвращаюсь в рублику Новости http://site.ru/category/news

Перехожу на вторую публикацию.

Получаю стандартную ссылку: http://site.ru/page/………………

Настройки в плагине:

Использовать нестандартные шаблоны URI — галка не стоит.

Шаблон URI для записей - "/sveden/{page-slug}"

Шаблон URI для записей без рубрик - /{page-slug}.html

Шаблон URI для категорий - /{cat-slug}/

Учитывать нестандартные next-сегменты в адресах — пусто.

Благодарю за помощь.

С уважением и наилучшими пожеланиями, Сергей!

Здравствуйте!

Возникла такая вот проблема: удалил несколько проиндексированных страниц, которые имели такой вот вид:

site.com/category/page.html (URL просто для образца структуры)

Их на сайте нет, но если перейти по этим URL то они загружаются, но вместо 404 ошибки на странице показывает контент категории.

То есть, ты переходишь на site.com/category/page.html а тебе показывает контент site.com/category/

Получается, что все эти удаленные УРЛ гуляют по выдаче поисковика из-за чего поисковик сигнализирует об определенном количестве дублей, поскольку все удаленные УРЛ показывают одну и ту же страницу категории. Скажите, пожалуйста, можно ли сделать, чтобы при переходе на подобные УРЛ выдавало 404 ошибку?

Евгений написал(-а):

Возникла такая вот проблема: удалил несколько проиндексированных страниц, которые имели такой вот вид:
site.com/category/page.html (URL просто для образца структуры)
Их на сайте нет, но если перейти по этим URL то они загружаются, но вместо 404 ошибки на странице показывает контент категории.
То есть, ты переходишь на site.com/category/page.html а тебе показывает контент site.com/category/
Получается, что все эти удаленные УРЛ гуляют по выдаче поисковика из-за чего поисковик сигнализирует об определенном количестве дублей, поскольку все удаленные УРЛ показывают одну и ту же страницу категории. Скажите, пожалуйста, можно ли сделать, чтобы при переходе на подобные УРЛ выдавало 404 ошибку?

Вроде бы исправлял эту ситуацию. Скажите, какую версию плагина используете? Пишите сразу на почту, чтобы я вам последнюю версию плагина выслал для тестирования.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

Авторизация MaxSiteAuth.

(обязательно)