- május 2012 (1)
- január 2012 (1)
- július 2011 (1)
- május 2011 (1)
- február 2011 (1)
- január 2011 (3)
- december 2010 (2)
- november 2010 (2)
- október 2010 (3)
- szeptember 2010 (2)
- 1 / 2
- ››
Régebben írtam egy cikket a dinamikus form ellenőrzésről, és arra gondoltam leírom az eljárás modernebb változatát, azaz a hibaüzenetek nem alert ablakban jelennek meg, hanem DHTML segítségével.
Természetesen olyan kódot kell készíteni amely akárhány form-ra dinamikusan működik, tehát nem függ az input mezők számától, és az oldalon elhelyezett form-ok mennyiségétől.
A megoldást itt is a jQuery JavaScript könyvtár adja.
De mindenek előtt érdemes átnézni hogyan is kell felépíteni egy profi form-ot. Khauth György kollegám írt már erről néhány nagyon hasznos cikket:
Miután az alapelvek tanulmányozásával végeztünk készítsük el a form-ot:
<style type="text/css"> .form-row { padding-bottom: 10px; width: 290px; } .form-row label { float: left; width: 100px; padding-right: 10px; } .form-row input { float: left; padding: 3px; width: 160px; } .clear { clear: both; } .form-error { text-align: center; color: #C52020; border: 1px solid #DD7777; background: #FFCCCC; margin: 10px 0; display: none; } </style> <div style="margin: 0 auto; width: 300px;">
A Drupal 5-ben van egy hiba amiről a programozók sokszor elfelejtkeznek.
A $node objektumnak van egy path attribútuma:
<?php $node->path; ?>
A probléma az, hogy amikor admin-ként vagyunk bejelentkezve a path érték megfelelő, ám ha nem akkor üres, így minden link a kezdőoldalra mutat. Ez annyit takar, hogy nem lehet elérni a kívánt bejegyzéseket, és ha nem elég körültekintő a tesztelés, akkor fel sem tűnik, mivel a session-be bentmaradunk mint bejelentkezett admin-ok, így nem is érzékeljük a hibát.
A megoldás egy egyszerű beépített Drupal fgv használata
<?php $node->path = drupal_get_path_alias("node/$node->nid"); ?>
Ez egy nagyon egyszerű megoldás, mégis ha nem vagyunk vele tisztába komoly gondot okozhat a weboldalon, de hangsúlyozom: megfelelő tesztelés esetén ki kell hogy derüljön még az élesítés előtt.