gototopgototop
Register
Вход
HomeJoomla 2.5: Установка и настройка /  Joomla 2.5: красивые ссылки своими руками
Joomla 2.5: красивые ссылки своими руками E-mail
Joomla 2.5 - Установка и настройка Joomla 2.5
Автор: Наталья Мельниченко   
01.04.2013 13:12

Как сделать красивые ссылки в Joomla 2.5Как часто, друзья мои, гуляя по чужим сайтам, мы видим ссылки, чем-то похожие на эту  диву с нечеловеческой внешностью!  Их так и называют: человеконепонятные. Говорят, поисковые роботы их тоже понять не могут.

Занимаясь переделкой своего "старого" (на Joomla 1.5) сайта о Павловске, я как-то не особенно зацикливалась на ссылках, создаваемых в Joomla 2.5. Конечно, видела, что они, мягко говоря, не совсем ладные, но работали нормально, ожидая того момента, когда я, наконец, установлю для них расширение типа Artio Joom SEF. На "полуторке" этот компонент работал достаточно прилично, поэтому у меня были основания предполагать, что для "двойки" он будет даже более усовершенствованным.

Уж не знаю, как ещё надолго я бы оттягивала важную для сайта операцию, если бы не возникли два обстоятельства: первое - это ученический поток вопросов, связанных с "ужасными" ссылками в Joomla 2.5, а второе - это мой собственный ужас, появившийся в тот момент, когда я, отправляя в письме к своему другу-историку ссылку на выставленную на моём сайте его новую статью, обнаружила, что Gmail не принимает эту ссылку!!! - очевидно, по причине её доходящей до неприличия "человеконепонятности".

Пытаясь исправить положение, я бросилась срочно устанавливать спасительный, как я думала, Artio. Привычно пробежалась по настройкам и, потирая ладошки, кинулась просматривать лицевую панель... Это был шок: все ссылки имели  форму, логику создания которой понять было невозможно. Но включено в ссылку было всё, что Artio смог только найти, а кое-что он ещё и продублировал.

Но самое ужасное состояло в том, что никакие перенастройки компонента не помогли: первоначально созданные им ссылки не хотели меняться ни при каких условиях, кроме, пожалуй, одного: надо было КАЖДУЮ ссылку править в самом компоненте.

Хорошо, если статей на сайте парочка, а когда их почти 100?

...Потратив кучу времени на операцию по спасению, в конце концов всё же почла за благо восстановить сайт по бэкапам за предыдущий день. Зато теперь у меня есть возможность давать  всем дружеский совет:

перед тем, как рискнуть завести отношения с Artio, удостоверьтесь, что терять вам вообще-то нЕчего.  В противном случае - отмерьте не 7, а минимум 10 раз, и только потом начинайте  интрижку.

Следующим моим шагом было исследование на тему: можно ли в Joomla 2.5 сделать ссылки красивыми (или хотя бы просто нормальными) без установки дополнительных расширений? - оказалось, можно, о чём я и буду сегодня рассказывать. Итак,

Шаг 1. После установки и русификации Joomla 2.5 обратим внимание на ссылки, которые будут выглядеть примерно так:

localhost/demo25/index.php?option=com_content&view=article&id=22&Itemid=437

Понятно, что такая "красота" нам не подходит, поэтому первое, что мы должны сделать, это переименовать находящийся в корневом каталоге сайта файл "htaccess.txt"  в ".htaccess".

Делается это просто: в файловом менеджере типа Total Commander находим нужный файл, щелкаем по нему мышкой, потом нажимаем Shift +F6. Строчка с названием файла подсветится, и тогда мы просто стираем  в ней ".txt" , а перед "htaccess" ставим точку. Нажимаем Enter, и всё готово, файл переименован.

Далее открываем  меню Сайт>>Общие настройки и в правой части вкладки "Сайт" - "Настройки SEO" - устанавливаем свои правила, не забывая их потом  сохранить. На картинке показано то, что сделала я, а вы при желании можете включить ещё и третью сверху кнопку, т.е. "Добавлять суффикс к URL" - "Да". В этом случае ссылки будут оканчиваться на ".html" . Я данную кнопку в скриншоте примера не включила,  а вы делайте так, как вам больше нравится.

Вот мой расклад, в котором я изначально пропустила кнопку "Да" в строчке "Алиасы в Unicode", оставив по умолчанию "Нет". В дальнейшем, сколь бы я ни пыталась включить "Да", она почему-то продолжала работать в соответствии с первоначальными настройками. Чтобы избежать подобных глюков, лучше  нажимайте эту злополучную "Да" с самого начала (особенно если в дальнейшем не планируете работать с алиасами самостоятельно):

Делаем красивые ссылки :: Joomla! 2.5

Совет: поскольку нечто подобное всё-таки может случиться с любым из вас (а некоторые письма от читателей подтверждают это), то ниже я подробно опишу, как исправляла ситуацию. Кого кара с юникодами не посетила, могут радоваться и сосредоточиться только на принципе работы с алиасами.

Предисловие к Шагу 2. В первом шаге мы сделали подготовительную работу. Теперь ссылки изменили внешность и, если вы ещё не успели создать ни новой категории, ни новой статьи, названия которых будут, естественно, на русском языке, то в предустановленном на Joomla контенте (написанном на английском) и ссылках на него всё будет смотреться прилично.

Однако совсем иная картина предстанет перед вами немедленно после перехода к созданию и публикации русскоязычного контента. Далее для практического пояснения я буду использовать свой сайт о Павловске, который работает теперь на Joomla 2.5.

Итак, открываем Главную страницу павловского сайта. На ней выставлены несколько статей, среди которых есть и "Женщина, которая спасла Павловск". Прокручивая окно вниз, найдите её и нажмите на заголовок статьи. После того, как она откроется, посмотрите в браузерной строчке, как выглядит ссылка:

Как видите, ссылка короткая и по ней путь к статье достаточно понятен. Эту ссылку уже можно скопировать, вставить в электронное письмо и отправить кому угодно. А вот в то время, когда я ограничивалась только описанным выше Шагом 1, видимая в браузерной строке часть ссылки (к сожалению, я не заскриншотила тот момент) выглядела так:
pavlovsk-spb.ru/связаны-с-павловском/зеленова/77-женщина,-которая-спасла

 Это то, что было видимо. Когда же я скопировала всю ссылку и перенесла её в Блокнот, то название статьи в ней оказалось просто  шифром каким-то:

/77-%D0%B6%D0%B5%D0%BD%D1%89%D0%B8%D0%BD%D0%B0,-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D0%B0%D1%8F-%D1%81%D0%BF%D0%B0%D1%81%D0%BB%D0%B0-%D0%BF%D0%B0%D0%B2%D0%BB%D0%BE%D0%B2%D1%81%D0%BA.html

Естественно, что Gmail отказывается пересылать подобное безобразие.

 Шаг 2. Работа с алиасами.

У любого материала (будь это статья или категория) есть как заголовок, так и алиас, или заменитель заголовка. Заголовок мы прописываем сами (без этого Joomla откажется сохранять материал), а вот поле для алиаса, как правило, оставляем пустым. После того, как мы нажмём на кнопку "Сохранить", Joomla автоматически и без изысков подставляет алиас. Практически это то же название материала, только все слова разделены знаками "-". При этом в алиас попадают даже запятые, если они есть в заголовке.

Демонстрирую сказанное скриншотами:

1) создаю новую категорию и называю её "Связаны с Павловском". Пока я не нажала на кнопку "Сохранить", поле для алиаса остаётся пустым, а ID материала имеет номер "0" :

Делаем красивые ссылки :: Joomla! 2.5

2) оставляю поле для алиаса пустым и нажимаю на "Сохранить". Joomla подставила своё видение, а внизу появился номер ID материала:

Делаем красивые ссылки :: Joomla! 2.5

Зная "кухню", легко сделать поправки. Поэтому я стираю в алиасной строчке джумловскую "подставу"  и пишу свой - но теперь аглицкими буквами  - новый заменитель, который решила обозначить как "peoples". Конечно, можно было бы написать и "svyazani-s-pavlovskom", как это сделало бы дополнительно установленное расширение типа Artio JoomSEF. Но я решила укоротить "заменитель", и, между прочим, в ответ на это Джумла не стала вести себя, как рассерженный верблюд, - значит, она позволяет в этом месте делать творческие отступления.

По этой же схеме я заменила подкатегорию "Зеленова А.И." на "zelenova".

Поскольку для заголовка "Женщина, которая спасла Павловск" никакого алиаса я не прописала, то ссылка на статью, хоть частично и изменилась в самом начале, второй своей частью передавалась смесью русских букв плюс цифр, и видимая её часть была вот такой...:

Делаем красивые ссылки :: Joomla! 2.5

... а скопированная в Блокнот продолжала цвести махровым цветом:
Делаем красивые ссылки :: Joomla! 2.5

И тогда я изменила алиас заголовка статьи на "zelenova-spasla-pavlovsk":
Делаем красивые ссылки :: Joomla! 2.5

И только после этого ссылка приобрела укороченную форму и способность при необходимости легко "переноситься" в интернет-пространство.

Однако для меня открытым оставался вопрос "а зачем козе баян?", то бишь цифирьки "77" в ссылке. Исследовав все возможности  для изменений через админку, поняла, что придётся копаться в файлах.

Значит, шагаем дальше, но предварительно делюсь опытом по поводу инструментов вебмастера, в частности, блокнотов. На моём компьютере их три:

1) простой Блокнот, в который я переношу тексты из Wordа, чтобы перед переносом статьи в визуальный редактор очистить ненужные коды;

2) AkelPad, в котором легко работать с файлами .css и php, особенно когда приходится сохранять файлы в кодировке UTF-8, да ещё и "без BOM" ;

3) Notepad, дающий код построчно, с нумерацией каждой строки.

Шаг 3. Вносим изменения в файлы с тем, чтобы убрать из ссылки ID материала.

3.1. Открываем файл config.xml  . Путь к нему такой:

/administrator/components/com_content/config.xml

3.1. 2. Вставляем в файл (на скриншоте ниже показано место для вставки) следующий код (можете скопировать отсюда):

<field name="sef_advanced_link"
type="radio"
default="0"
label="Sef Advanced Mode"
description="Remove ItemID from Content URL?">
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>

Делаем красивые ссылки :: Joomla! 2.5

Не забудем сохранить внесённые изменения: Файл>>Сохранить.

3.2. В NotePade открываем файл router.php . Путь к нему следующий:

/components/com_content/router.php

3.2. 1.  В строчках 27 и 208 находим этот код:

$advanced = $params->get('sef_advanced_link', 0);

и меняем "0" на  "1".

Показываю одно из нужных мест:

Делаем красивые ссылки :: Joomla! 2.5

3.2. 2. Закомментируем (закроем) строчки  228-232 :

if (strpos($segments[0], ':') === false) {
$vars['view'] ='article';
$vars['id'] = (int)$segments[0];
return $vars;

Это делается просто: подставляем по паре значков до и после выделенного куска кода:

/* if (strpos($segments[0], ':') === false) {
$vars['view'] ='article';
$vars['id'] = (int)$segments[0];
return $vars;
}*/

Делаем красивые ссылки :: Joomla! 2.5

Естественно, не забудем сохранить файл: Файл>>Сохранить.

Шаг 4. Обновляем в лицевой панели страницу со статьёй и смотрим, что получилось.  Нажмите на картинку, чтобы посмотреть, как окончательно выглядит сейчас ссылка из урока:Красивые ссылки в Joomla

 

 

 

 

 

Контакты





Copyright © 2011. Joomla! для "чайников". Автор сайта Наталья Мельниченко
Follow us on Twitter