Ma érdekes dologgal találkoztam: Be volt állítva a pathauto, hogy egy tartalomtípusnak csoportok/[title-raw] módon generáljon automatikusan álnevet. Igenám, de szerencsétlen csoport tartalomtípusom mindeképpen og/[title-raw] útvonalra szenvedte magát, egyszerűen semmiképpen nem volt hajlandó megenni a beállított álnév mintát.
A debug során csúnyán megkavarodtam, mivel benne volt az "og" az útvonalban, ráadásul csoporttartalomról volt szó, mindenáron az organic_groups modulnak, vagy valamelyik kiegészítőjének akartam betudni a hülyeséget.. Szétszedtem már mindent, töröltem a tartalomtípust, újra felraktam, majd adatbázismentésből vissza minden.
Na, ha már amúgyis phpmyadmin mélységben kell turkálni, nézzünk kicsit bele, hogy mit alkotott a pathauto modul az adatbázisban. (Természetesen mindezt csak azután, mitán az összes og kezdetű táblát átnyaltam..)
Azt tudni kell, hogy a pathauto a variables táblában tárolja a tartalomtípusok beállításait, mégpedig a name mezőben pathauto_node_[node_type]_pattern néven. Nosza debug, szedjük ki gyorsan ezeket rekordokat, és nézzük meg okával.
Ha már nem untam volna annyira a banánt, egy frappáns sql queryvel gyorsan kikaptam volna azt a pár sort, ami nekem kell, de mivel nem voltam kellőképpen motivált amúgyis pocsék sql szintaktikai tudásom pallérozásához a google segítségével, így pár laza kattintással inkább kinyomtam a képernyőre azt a cirka 1800 recordot.
És lőn világosság!
Ilyen sorok szerepeltek a táblában: pathauto_node_group_hu_pattern, pathauto_node_group_en_pattern, pathauto_node_group__pattern, és mellettük a serializált adatok ellenére is világosan látszott a gyilkos álnév minta: og/csoportok
Innentől ugye a megoldás evidens, kevésbé frappánsan kijelölve a betegség rákos gócpontjait laza delete recorddal megszabadulni álomrendszerünk mételyétől.
De nézzük mi is történt? Ez a rendszer valaha többnyelvűnek indult, i18n és társai meg az összes létező tartalomfordítási modullal bekapcsolva. Ilyenkor egyesével minden nyelvhez lehet álnevet beállítani (és pechemre be is vol tállítva..) és a pathauto az álnév mintát a pathauto_node_[node_type]_[lang]_pattern változóba menti,
Utána hiába lesz kikapcsolva és uninstallva az i18n, ezek a minták nem törlődnek, és ezeket is veszi "erősebbnek".
Ez nyilvánvaló bug, de mivel elég sok idő ment el a debugra + ugye ezt a bejegyzést is meg kellett írnom, nem volt időm végigfutni azt a párszáz hozzászólást, ami ebben a témában született. Ha esetleg Neked sikerült, és tudod, hogy miújság a témában, dobj egy kommentet légyszi, ingyen van. :)
A megoldás sem lehet olyan wasistdas: a pathauto modul nyilván figyeli az i18n létezését az admin form generáláskor. Pár sorral kell kiegészíteni a submit hookot, hogy a form beküldésekor is figyelje ugyanezt, és ha nem létezik, akkor törölje a mintákat.
Edit: <aries_mwz> álnévminta egybeírandó - jogos, úgy látszik a debughoz szükséges agykapacitásom a helyesírási tudásom helyérő vándorolt el
Hozzászólások
Hozzászólás