Link modul kiváltása CCK mező formázásával

A Drupal egyik erőssége, hogy tetszőleges tartalomtípusokat hozhatunk létre az igényeknek megfelelően. A CCK modullal tetszőleges mezőkkel bővíthetjük az alaprendszert. Egy-egy tartalomtípusban előfordul, hogy linket szeretnénk tárolni, melyet kattintható formában szeretnénk majd megjeleníteni a tartalom megjelenítésekor. Ezt az igényünket kivitelezhetjük a Link modul segítségével. Én is használtam a modult, de volt némi problémám vele, ugyanis a naplóbejegyzésekbe hibaüzeneteket adott. Ez a felhasználói oldalon nem jelentett problémát, de engem zavart, ezért egy egyszerű megoldással kiváltottam a modult.

A CCK modul által a tartalomtípushoz hozzáadtam egy olyan mezőt, mely sima szövegmező típusú, a field_link nevet adtam neki.

A CCK modullal létrehozott mezőket tetszőlegesen formázhatjuk a megfelelő sminkállományokkal. Ehhez elsőnek a CCK modul könyvtárából a sminkünk könyvtárába kell másoljuk a content-field.tpl.php állományt, majd mégegyszer másoljuk át ezt az állományt, de adjuk neki a következő fájlnevet: content-field-field_link.tpl.php (a filed_link helyett az általad használt CCK mező nevével). Tehát meg kell legyen sminkünk könyvtárában mind a két állomány, egyenlőre ugyanazzal a tartalommal.
Ezek után nyissuk meg a content-field-field_link.tpl.php fájlt és szerkesszük át azt a sor, melyben a mező megjelenítése történik. A következő sort kell megkeressük:

<?php print $item['view'] ?>

Itt írja ki a rendszer a mező értékét. Ezt kell átszerkesszük úgy, hogy egy link legyen belőle:

<a href="<?php print $item['view'] ?>"><?php print $item['view'] ?></a>

A változtatások után ürítenünk kell a gyorsítótárat és elméletileg a link mezőink kattintható linkekké alakulnak és közben egy modullal kevesebbet kell használnunk.

Hátránya a megvalósításnak, hogy

  • biztonsági rést jelenthet, ha ennek a mezőnek a kitöltése bárkinek engedélyezett,
  • ha másik sminket választunk, át kell másoljuk a fenti két fájlt új sminkünk könyvtárába.