Drupal

Form hibák a form-ba

Elég rég óta idegesített már, hogy a drupal a hibaüzeneteket mindig az oldal elején jeleníti meg, nem pedig ott, ahol a hiba keletkezett, vagyis a form elem előtt. Most egy kicsit utánanéztem, és chx kolléga segítségével sikerült is megtalálni a megoldást. Ez pedig nem más, mint a theme_form_element felülírása.

Ugyebár, a template.php file-ban kell csinalni egy függvényt, themeneve_form_element($element, $value) néven, ebbe kell bemásolni ugyanazt a kódot, mint amit a leírásban is látunk. Én ebbe szúrtam bele a

$output .= ">\n";
után a következő kódot:

 if ($error = form_get_error($element)) {
    $output .= '<div class="form-error">'.$error.'</div>';
    $eid = array_search($error, $_SESSION['messages']['error']);
    unset($_SESSION['messages']['error'][$eid]);
    if (empty( $_SESSION['messages']['error'])) {
      unset($_SESSION['messages']['error']);
    }
  }

A form_get_error függvény egy stringet ad vissza, a hibaüzenettel. Ha ebben van valami, (tehát hiba volt) akkor beteszük a kimenetbe. Én ezt itt egy div-el és a form-error osztállyal oldottam meg, így egyszerűen tudunk stílust is rendelni hozzá.

Ezután kikeressük a $_SESSION['messages']['error'] tömbböl ezt a hibát és kitöröljük, ugyanis az ebben a tömbben tárolt elemek fognak megjelenni a felső részben. Utána megnézzük, hogy ez a tömb üres-e, és ha igen, akkor az egészet kitöröljük, mert ha a tömb létezik, akkor a divet mindenképpen kiírja a drupal

Felmerülhet a kérdés, hogy miért nem töröljük valahol az egész tömböt? Azért, mert nemcsak a formok adhatnak vissza hibaüzenetet, és a tömb törlésével ezek a hibaüzenetek is elszállnának.

Drupalos smink hiba

Breaking news! Csak, hogy más ne szívjon vele egy napig. Amikor az ember modult fejleszt, elég gyakran használja a hook_theme hook-ot.

Administration Menu Dropdown

Ha már EdgarPe belinkelt engem, és is belinkelem őt. Jó dolog ez az Admin menü, de az ember egy idő után többet akar. Mégpedig azt, hogy ez a menü mindig látszódjon.

Nos ezt a problémát oldja meg az Administration Menu Dropdown. Alapértelmezetten a menü nem látszik. Bekapcsolni elvileg a Ctrl+Alt kombinációval lehet (ez nekem nem ment, de át lehet állítani). Ezen kívül lehetőség van arra is, hogy egy kis ikon kattintgatásával lehessen megjeleníteni-elrejteni.

AdminMenu1.png AdminMenu2.png

Képek importálása

Elég sokáig keresgéltem a megfelelő megoldást képek importálására. Egy olyan projecten dolgozom, ahol egy régi adatbázisból kell híreket importálni.

BUEditor - update

thumbnail_BUEditor-update3.pngÚgy látszik, hogy nem mindent olvasok el, amit belinkelek. Az előző poszt közben jutott eszembe, hogy pár képet is mellékelek. Meg is csináltam a régi módon, file csatolás, link beírás. Már kész is volt a bejegyzés, gondoltam, ezt a képes dolgot majd máskor megoldom. Ekkor jutott eszembe PP cikke.

BUEditor

Mióta programozom, azóta vágyom egy jó editorra, amit még nem igazán sikerült megtalálni. Ugyanígy vagyok ezzel, amióta webes felületen is írogatok. Kipróbáltam jó pár WYSIWYG editort, de azt tapasztaltam, hogy szétizélik a HTML kódot, beletesznek mindenfajta tag-et, átírják a szöveget stb.

Új-ság

Itt a tavasz, úgyhogy itt volt az ideje megújulni egy kicsit. (Tudom, nem tavasz van, de az ősz nem hangzott volna jól, bár az időjárást elnézve inkább a tél a jellemző évszak.)

Szóval levetkőzte az oldal a régi design-t és felvette ezt az újat. Ezenkívül kisebb változás, hogy az oldal alatt nem drupal 5.x, hanem 6.4 dübörög.

      

Cache törlés

A 6-os drupálban a az egyik legidegesítőbb, ez a smink cache-elés. Fejlesztés alatt ritka idegesítő tud lenni, hogy mindig a devel modul Empty cache menüpontjával kell frissíteni az oldalt. De máról ennek vége, mivel szerencsére erre is van egy modul.

Persze nem szabad elfelejteni kikapcsolni (a devel modullal egyetemben) az éles oldalon.

Elindult az új Ubuntu.hu

A Feisty megjelenése kapcsán elindult az új ubuntu.hu oldal. Akárcsak az ubuntu.com, ez is drupal alapon működik.

    

újdonságok

Sajnos volt nemrégiben egy kisebb rendszerleállás, így elveszett pár dolog innen, de még megpróbálom visszaszerezni. Mivel a linkfelhő verseny lezárult, (amin a 27. helyen veégeztem, látszik, hogy a végefelé már nem foglalkoztam a dologgal) így ez az oldal megszűnik, illetve összeolvad az amon.hu-val és a továbbiakban ott lesz elérhető. Most már mind a két oldalt a drupal 5.1-es verziója hajtja, így csak az importálási kérdéseket kell megoldani.

Szóval nemsokára nagyszerű cikkeket lehet majd itt olvasgatni különböző programozási és egyéb kérdésekben. Illetve lesz egy új téma, ez pedig a póker...

    

Mai dolgok

Nagy nap a tegnapi, mert immár sikerült bekerülni a google-ba mégpedig a 9. helyre, ami rögtön a 6. is, mert az első 10 találatból töröltek 3-at. Csináltam ma is egy modult, ami Content type-onként mutatja a node-okat, pld.: http://linkfelho.amon.hu/lbct/englishposts. Ezt azért csináltam, mert elindult a http://drupal.hu/english/  ahova talán majd én is szeretnék irkálni.

Na, de a lényeg, remélem holnap (azaz ma) elkészül egy kisebb fejlesztés a Linkfelhő és Pillangószív versenyzők legnagyobb örömére. Aztán, ha megvan, akkor már tényleg csinálom azt is, amiért fizetnek is.

      

Randomfeed module

A very easy and very useless module what I written, the name is Randomfeed. This module define a block what is randomly find a feed from the aggregator and displays it. When You click on the "Other" link random module find a new feed with Ajax technique. It is working with or without Javascript. You can download it from here.
    

Google search modul

Összedobtam egy Google kereső-modult. Még látszik rajta, hogy nagyon összedobott. Ha esetleg van rá igény, akkor pofozgatom egy kicsit.

Randomfeed javítva

Javítottam a randomfeed modul kisebb hibáját, most már a tovább gomb is jól működik.
    

Randomfeed Update

Sikeresen upgradeltem az egyik modulomat, amely a randomfeed nevet viseli. Ez a modul a beállított csatornákból véletlenszerűen kiválaszt egyet, és megmotatja egy blokkban.

Az érdekessége, a Van másik! ami egy Ajaxos hívással kicseréli a blokk tartalmát, egy másik véletlenszerű feed-re, természetesen oldal újratöltődés nélkül. Érdekességképpen, le lehet tölteni. Ez csak 5.0-val tesztelt, és valószínüleg csak abban is működik.

Update: Nos, miután azt hittem, hogy minden szép és jó, felvittem ezt a cikket, amely automatikusan a randomfeed alias-t kapta, így a jó kis javascriptes ajax-os dolog, már nem működött, mert a get ezt az oldalt hívta be. Egyébként a tovább gomb sem jó most, de majd még csiszolok rajta.

    

Service links

Nagyon belelendültem itt a modulokba, így felkerült a Service links modul. Ezt már egy kicsit bonyolultabb volt upgrade-elni, de mint itt alul látható sikerült.

    

Digg this!

Újabb modul került beüzemelésre, ez pedig a Digg this. Ezz a modul minden cikk mellé kirak egy ilyen kis digg ikont, amivel lehet szavazni az adott cikkre. Ez a modul is 4.7-hez készült, de ezzel már több probléma is akadt.

Egyrészt használja a curl php kiterjesztést, ami eddig nem volt fennt a gépen. Ezenkívül az 5.0-s Drupalban megváltozott mind a nodeapi, mind a settings, amiket mind át kellett írni. Eltartott egy ideig, dehát így lehet talán a legjobban tanulni. Persze az egészet itt a szerveren csináltam, remélem, hogy valami hibaüzenetet fog a kereső beindexelni.

Be lehetett volna állítani úgy is a dolgot, hogy itt lehessen szavazni a főoldalon, de az minden cikknél egy-egy kérést intéz a digg.com felé, amely rendesen lelassítja az oldalt, így csak a teljes cikk megjelenítésnél lehet majd szavazni, a cikk címére kattintva.

      

Comment RSS modul

Egy újabb nagyon hasznos modul került feltöltésre a Comment RSS modul, ami nem mellékesen Hojtsy Gábor munkája. A modul által tudjuk rss hírolvasóban olvasni az oldalhoz érkezett hozzászólásokat.

A modul jelenleg 4.7-es állapotban van, de csak commentrss.info  fájlt kellett létrehozni, és máris működik. A hozzászólások elérhetőek a http://commentrss.amon.hu oldalon.

    

Tagadelic modul

Természetesen a következő modul nem lehetett más, mint Tagadelic. Eme egyszerű, de nagyszerű kiterjesztés nem csinál mást az oldalon, mint egy linkfelhőt, amely látható is itt a bal oldalon. Egy kicsit átírtam, így minden link title elemében benne van, hogy az adott Tag hány tartalomhoz kapcsolódik. (A title elem megjelenít egy kis lebegőablakot a hozzárendelt tartalommal.)

Miután telepítettük, a blokkoknál minden szótárhoz megjelenik egy újabb blokk, és ha bejelöljük, máris van egy Linkfelhőnk!

    

Az oldal szerkezete

Ha már elindult ez a Linkfelhő verseny, gondoltam, kipróbálom a legújabb Drupal rendszert, amely jelenleg az 5.0 Beta 1. Ebben a verzióban az alapértelmezett smink a Garland (a Minelli ennek a fix széles változata).
Ehhez egyenlőre csak a Pathauto modult tettem hozzá. Ez a modul nem a beküldött tartalmak alapján un. path alias-okat csinál automatikusan. Mi is az a path alias? Ha beküldünk egy új cikket, akkor annak az elérési útja alapértelmezésben valami ilyesmi lesz: http://linkfelho.amon.hu/node/3. Ehhez hozzárendelhetünk egy másik elérést, pld: http://linkfelho.amon.hu/az_oldal_szerkezete. Mindezt a Drupal beépített path modulja teszi lehetővé. Ezáltal minden tartalomnál kapunk egy új lehetőséget "Az útvonal beállításai" részt, ahol rögtön megadhatjuk az új elérési utat. Ezenkívül lehetőség van az aliasok egységes kezelésére az admin/build/path elérési út alatt is. Nos, a pathauto modul, annyit tesz ehhez hozzá, hogy ezeket az álneveket automatikusan generálja, a címekből, illetve a kategóriákból. Egy már régóta használatban lévő oldalra is feltehetjük, mert képes az eddigi tartalmak teljes őjraelkészítésére.