Napi debug: Pathauto olyan álnév mintát használ, ami nem is létezik

  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • The spam filter installed on this site is currently unavailable. Per site policy, we are unable to accept new submissions until that problem is resolved. Please try resubmitting the form in a couple of minutes.
Kategória: 
Gyorstippek

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.

[geshifilter-code]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[/geshifilter-code]

Hozzászólások

Hozzászólás

A mező tartalma nem nyilvános.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <del> <img>
  • A webcímek és email címek automatikusan linkekké alakulnak.
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.
  • Engedélyezett HTML elemek: <a> <blockquote> <br> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <li> <ol> <p> <span> <strong> <ul>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>. The supported tag styles are: <foo>, [foo].
  • Minden email cím át lesz alakítva ember által olvasható módon, vagy (ha a JavaScript engedélyezett) ki lesz cserélve kattintható, de biztonságos hivatkozásra.