Ті хто використовує JoomFish давно помітили, що при включеному SEF посилання на головну сторінку відображається у вигляді
http://www.site_name.ua/index.php?lang=ua.
У цій статті піде мова про те, як привести такі посилання до "красивого"
вигляду.
Щоб позбавитися частини index.php?lang= в адресі головної сторінки однієї із
мов, а просто залишити вигляд http://www.site_name.ua/ua/ ми звернемося до можливостей Apach, а точніше до
mod_rewrite.
У конфігураційному файлі .htaccess прописуємо після:
RewriteEngine On
наступний код:
RewriteRule ^([A-Za-z]+)/$ index.php?lang=$1
RewriteRule ^([A-Za-z]+)$ index.php?lang=$1
Далі відкриваємо index.php свого шаблону, знаходимо позицію у якій ми виводимо
модулі, наприклад lang:
<?php mosLoadModules ( 'lang', -1 ); ?>
Замість цього коду впишемо наступний:
<?php
if ($option == com_frontpage){
echo '<a href="/ua">Укр</a> <a href="/en">Eng</a>';
}
else {
mosLoadModules ( 'lang', -1 );
}
?>
Цей код прописуємо для компонента Головної сторінки.
Якщо ми використаємо такий підхід, то відпаде необхідність робити модифікацію
компонента JoomFish.
У випадку якщо у нас замість компонента Головної сторінки використовується категорія, розділ або просто статичний матеріал, то замість if ($option == com_frontpage){ можемо використати Itemid, або id категорії, розділу чи матеріалу. Записується це наступним чином: if ($Itemid == 12){
або if ($id == 12){, де 12 - id.
Підсумок
Тепер у нас мовні версії будуть відображатись із короткими URL, а на головній
сторінці наш модуль JoomFish компонента замість /index.php?lang=ua буде відображати посилання як
/ua.