Sziasztok!
Az lenne a kérdésem, hogy hogyan kell használni a Placeholder modult.
Webformnál az input mezőkhöz szeretnék placeholder attribútumot felvenni. Letöltöttem a placeholder modult, aktiváltam, + a szükséges JQuery file is a helyén van. De hogyan tovább?
Másik kérdésem az lenne, hogy a webformnál a címkék rejtve vannak, csak a placeholder működne, de úgy tudom, hogy ezt nem minden böngésző támogatja. Hozzá tudok adni esetleg egy title attribútomot is a mezőkhöz?
Előre is köszi a segítséget!
Köszi
Szilvi
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
mezei Form API használata a legegyszerűbb erre
Form API-t tudod kezelni saját sminkből vagy modulból? Mert akkor könnyű a dolog, egy megfelelő hook_form_alter()-ben csak hozzáadod az adott formelemhez a
'#placeholder' => t('Enter your name here'),
kulcsot a megfelelő formmezőhöz.
Egyébként nem tudom, mennyire szükséges egyáltalán a Placeholder modul használata, gondolom ez max. annyit tesz hozzá, hogy amikor a júzer a formelemre klikkel, akkor tűnjön el a placeholder... ez nem biztos, hogy indokolt.
OFF bekapcs.:
vicces, hogy a projekt oldalán azt mondja:
Kár, hogy ez butaság, mert a drupal.org-os kereső pont nem úgy működik, hogy amikor az ember belekattint, akkor eltűnik a "Search drupal.org", hanem csak egy mezei placeholder attribútum van hozzáadva:
<input type="text" maxlength="128" name="search_theme_form" id="edit-search-theme-form-1" size="15" value="" placeholder="Search drupal.org" class="form-text">
ami épp az ezt az attribútumot támogató böngésző beépített magatartása szerint viselkedik, tehát hogy csak akkor tűnik el a szöveg, amikor elkezdünk a formelembe gépelni. :))
/OFF kikapcs.
Form API használata esetén ugyanis nagyon egyszerű a placeholdert hozzáadni, pl. egy saját theme_textfield()-ben ennyi:
Ez most persze csak egy lehetőség a sokból, de szerintem a legegyszerűbb; ez annyit csinál, hogy minden
mail
szövegmezőbe ayourname@example.com
stringet fogja belepakolni placeholderként, minden egyéb szövegmezőbe pedig a formelem címét, három ponttal, amennyiben a title be van állítva. Természetesen feltételekhez is lehet kötni ezt az egészet, tehát lehet olyat is, hogy csak bizonyos formelemeknél legyen egyáltalán placeholder, vagy alapból mindegyiknél legyen, kivéve az XYZ mezőket.DE ha ezt használod, akkor érdemes tudni róla, hogy ez így sminkfüggő, viszont a Placeholder modul használata esetén sminktől függetlenül is lesznek placeholdereid.
Köszönöm a válaszod,
de sajnos ennyire nem vagyok profi...
Valóban egy ilyen megoldásra gondoltam, és nem ragaszkodom a placeholder modulhoz. Mivel tudomásom szerint pl. az IE nem kezeli ezt az attributumot, mindenféleképpen szeretném használni a title-t.
Hogyan kezdjek hozzá?
Ha nem nagy fáradtság tudnál, segíteni, hogy hova is kell beírnom a fenti kódot..
Elnézést az értetlenkedésért, de sajnos még nem vagyok egy PHP guru, - ezen mielőbb változtatni szeretnék- ezért is keresgéltem a modulok között...
Előre is köszönöm,
Szép estét
Szilvi
Ahogy azt Péter írta, ez egy
Ahogy azt Péter írta, ez egy sminkfüggő megoldás, szóval amelyik sminkhez teszed, abban lesz csak hatása.
És azt úgy kell, hogy az aktuális sminkedben megkeresed a template.php fájlt (valószínüleg megtalálod, de ha nincs még, akkor létrehozod).
Ebbe a fájlba bemásolod a fenti kódot, annyi változtatással, hogy a "SMINKEDNEVE" szót kicseréled az aktuális sminked nevére (ez pl. pontosan a sminked könyvtárának a neve).
Utána cache ürítés, és mennie kell.
Védd az állatokat! ;)
Szuper!
Köszönöm, működik, egyedül az email mező nem akarja az igazságot, de keresem a hibát, azzal is csak tanulok:-)
Szép estét!
köszi
Szilvi
Ha még szeretnél tanulni,
Ha még szeretnél tanulni, akkor tedd fel a Devel modult, és a fenti függvényed végére tegyél bele egy ilyet:
dpm($variables);
Ez klasszul kidobja, hogy a függvényen belül mi történt az egyes textfieldek attribútumaival (a textfieldek pofozgatására most egyébként ezt a függvényt módosítgatod).
Védd az állatokat! ;)
Nagyon köszönöm a segítőkészségedet!
Valóban nagyon kis hasznos eszköz, sőt ahogy olvasgattam a leírását, felfedeztem a Firebug Drupalos add-on-ját. Egy újszülöttnek minden vicc új:-)
Visszatérve a problémára: továbbra sem teszi bele az email mezőbe, hogy [email protected], de már legalább rájöttem az okára. Legalábbis azt hiszem.
A többi mező osztálya form-text, ezé form-email (hiszen ezt választottam ki), az email-cím-ellenőrzés miatt.
Ha szöveges mezőként veszem fel az email-címet, működik a függvény: beteszi, hogy email....
Én mégis inkább az email mezős megoldást szeretném, gondolom ezt kell a függvényben módosítanom. (Tudom, hogy ez már nem közvetlenül Drupalos téma, de ha belefér még, kérlek segíts)
Köszi, és ezer hála:
Szilvi
Na megnéztem: az van, hogy a
Na megnéztem: az van, hogy a fenti függvény az email mezőbe nem tud beleszólni, erre egy másikat kell beizzítani: theme_webform_email
Innentől már sima ügy, az alábbi kód kell a template.php-ba:
Az eredetihez képest a 17. sor lett beszúrva.
Ebben a folyamatban a megfelelő függvény megtalálása a legnehezebb, ebben segíthet a Devel modulhoz kapcsolódó Theme developer, az API reference, és contrib moduloknál a DrupalContrib API reference. Ja és a Form API Reference :)
Védd az állatokat! ;)
Nagyon köszönöm!
Minden úgy működik, ahogy kell:-)
Köszönöm még egyszer!!!
Szép napot!
Szilvi
még egy kérdés:
Hozzá tudok adni valahogy egy class attributumot ehhez a placeholderhez? szeretném formázni, de sehogy sem tudom elérni...
(Chrome-ban nem látható a színe miatt)
Előre is köszi:
Szilvi
Placeholder színének megadása CSS-sel
Nem kell class a placeholder formázásához.
Ettől függetlenül ha szeretnél, hozzá tudsz adni saját class-t:
_form_set_class($element, array('form-text', 'form-email'));
HELYETT (myclass osztályt adom hozzá):
_form_set_class($element, array('form-text', 'form-email', 'myclass'));
De az igazi válasz a placeholderek formázására:
http://stackoverflow.com/questions/2610497/change-an-inputs-html5-placeh...
egy szemléletes példát felraktam neked ide külön mezőknek is meghatározok placeholder colort:
http://jsfiddle.net/Sk8erPeter/KyVXK/
Nagyon köszönöm a segítséget!
Nem gondoltam, hogy ilyen egyszerű:-)
Jó éjt!
Szilvi