Hlavička - Mezi monitorem a židlí

Joomla 1.5.x česky a hezké URL stránek

Joomla 1.5 má podporu hezkých URL – takzvaných SEF adres, která ale v češtině dobře nefunguje. Malou úpravou jediného souboru můžete Joomlu přimět ke správnému chování…

Hezké URL obvykle kopírují název článku, ale všechny znaky se převedou na malá písmena, zbaví diakritiky, nepovolené znaky se odstraní a mezery se nahradí spojovníkem (pomlčkou). Článek s názvem Příliš žluťoučký kůň Grošák na webu www.mojedomena.cz pak bude mít adresu www.mojedomena.cz/prilis-zlutoucky-kun-grosak. Výhodou takových adres je snadná zapamatovatelnost a pozitivní efekt na optimalizaci pro vyhledávače (SEO) – odtud pramení zkratka SEF (Search Engine Friendly).

Joomla 1.5 vytváří tyto adresy z aliasu článku, přičemž alias se (pokud ho sami nezadáte) vytvoří automaticky z názvu (titulku) článku. Problémem je, že Joomla vznikla v anglickém prostředí a vývojáři příliš nepočítali se znaky s diakritikou. V češtině se mnohé znaky s háčky a čárkami nezbaví znamének, Joomla je rovnou vynechá! Výše uvedená ukázka pak v Joomle dopadne asi takto: www.mojedomena.cz/pili-luouk-k-grok. Jistě chápete, že takováto adresa není ani přátelská k vyhedávačům (SEF), ani “human readable”.

Aliasy článků a položek menu můžete v Joomle 1.5 změnit ručně, ale proč se exponovat a neustále na to myslet, když to Joomla může udělat automaticky za vás. Otevřete soubor /libraries/joomla/language/language.php a vyhledejte v něm funkci transliterate (hledejte řetězec function transliterate, v současné verzi 1.5.15 začíná na řádku 223) Tuto funkci

function transliterate($string)
	{
		$string = htmlentities(utf8_decode($string));
		$string = preg_replace(
			array('/ß/','/&(..)lig;/', '/&([aouAOU])uml;/','/&(.)[^;]*;/'),
			array('ss',"$1","$1".'e',"$1"),
			$string);

		return $string;
	}

smažte nebo zakomentujte a nahraďte ji následující funkcí

function transliterate($string)
  {
    setlocale(LC_CTYPE,$this->getLocale());
    return iconv('utf-8','us-ascii//TRANSLIT',$string);
  }

po této úpravě již bude Joomla vytvářet aliasy a tudíž i adresy automaticky správně. Dejte ale pozor při případném updatu Joomly, abyste funkci opět nepřepsali.

2 komentáře pro “Joomla 1.5.x česky a hezké URL stránek

  1. 9. 11. 2011 at 16:39

    Po úpravě funguje jak má. Perfektní.

  2. JJ
    12. 10. 2012 at 22:55

    super. funguje. díky moc

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *