Pathauto a nové aliasy
Ahoj,
používám v nastavení Pathauto modulu na možnost
Create a new alias. Leave the existing alias functioning.
tedy česky
Ponechat starý alias a vytvořit nový.
Drupal ale zobrazuje starý alias – URL adresa obsahuje starou adresu, nikoli novou, která odpovídá aktuálnímu titulku článku. Např. funkce url() vrací nejstarší alias.
To by měl řešit modul Path redirect, který by ze starého aliasu přesměroval na nový s hlavičkou 301, ale ten je v současné době ve vývoji, není doporučen pro použití na ostrých webech a hlavně není kompatibilní s nějakými verzemi Pathauto.
O vybírání aliasů se stará funkce drupal_lookup_path(), proto jsem se rozhodl funkci upravit. V API najdete funkci jak vypadá, tady upravené řádky souboru includes/path.inc:
...
68. // Get the most fitting result falling back with alias without language
69. $alias = db_result(db_query("SELECT dst FROM {url_alias} WHERE src = '%s' AND language IN('%s', '') ORDER BY language DESC, pid DESC", $path, $path_language));
...
79. // Get the most fitting result falling back with alias without language
80. if ($src = db_result(db_query("SELECT src FROM {url_alias} WHERE dst = '%s' AND language IN('%s', '') ORDER BY language DESC, pid DESC", $path, $path_language))) {
...
Jde o přidání seřazovací podmínky do mySQL dotazu.
Chtěl bych se o tuhle změnu především podělit, ale taky poprosit ty zkušenější z Vás o radu, jak dostat tuhle změnu do jádra Drupalu a jestli to má vůbec smysl.
Díky
Milan
Poslat nový komentář