Sziasztok!
Hogyan tudok egy adatott kötelező kitöltésre (required) bírni a template.php-ben?
function phptemplate_adatok_node_form($form){
…..
$output .= drupal_render($form['field_cim']);
--> ezt szeretném.
cck-val vittem fel ezt, tudom ott is be lehet jelölni, hogy szükséges a kitöltése vagy nem de most én a template.php szeretném neki megadni ezt az dolgot.
Segítségeteket előre is köszönöm.
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
#required?
Van egy #required property a Form API-ban (default: FALSE), ami minden elemhez megadható. Nem ez kell neked?
Fox Mulder
Az a baj, hogy nem tudom mit
Az a baj, hogy nem tudom mit és hova kell írni :(:(
Gondoltam, hogy ezt kell "required" de hova és hogyan :(:(
Ez a bajom. Ebben kérem a segítségeteket.
ikszeld be egy teszt rendszeren valamelyik mezőt
és írasd ki az egész form tömböt, akkor meglátod, hova kerül az.
-
clear: both;
miért is?
miért a template.php fájlodban szeretnéd ezt megadni...?
Mert ott tudom mozgatni az
Mert ott tudom mozgatni az elemeket + egyéb más dolgokat is megvalósítani.
nagyon érdekelne
hogy pontosan miket valósítasz meg... Ha a mozgatás alatt a mezők sorrendjét érted, azt súlyozással a mező beállításainál is megadhatod, ahogy a kötelező kitöltést is.
jó, de ő nem ott akarja hanem amott és kész!
mit nem lehet ezen érteni? ;)
-
clear: both;
eh, badarság!
minek ott akarja? ;)) én nem látom a dologban a rációt, de sebaj... mindig is tudtam, hogy majd hüjén halok meg :)
ez kiírta a dolgokat
Na, ez kiírta a dolgokat
$output.= '<pre>'. print_r($form,true) .'</pre>';
látom is hogy a pl. az email címnél ott van
[#type] => textfield
[#title] => E-mail cím
[#default_value] =>
[#required] => 1
[#maxlength] => 255
[#size] => 60
[#description] =>
[#post] => Array
de hogyan tudom ezt megvalósítani az enyémben
$output .= drupal_render($form['field_cim']['required']); --> így nem működik.
mondjuk így
most volt időm kipróbálni és
most volt időm kipróbálni és hiba van benne
$output .= drupal_render($form['field_cim']['#required']= TRUE);
warning: uasort() [function.uasort]: The argument should be an array in C:\htdocs\drupal.hu\includes\common.inc on line 2145.
warning: Cannot use a scalar value as an array in C:\htdocs\drupal.hu\includes\common.inc on line 2176.
warning: Cannot use a scalar value as an array in C:\htdocs\drupal.hu\includes\common.inc on line 2187.
ui: kipróbáltam több féleképpen és úgy sem működött.
nem jó
mert nem a
drupal_render();
függvénybe kéne tenni...de ezt a template.php -
de ezt a template.php - szeretném bele tenni, és ott meg nem jó valamiért
hogy csinálod?
alaposan kell tesztelni
Ezt az egész megközelítést alaposan tesztelni kell. Sgabe-nek nem véletlenül vannak aggályai ezzel kapcsolatban. Érzésem szerint egy beküldött űrlap ellenőrzése(validálása) előbb történik, mint ahogy az űrlap újra megjelenítése. Ha ez igaz akkor ebben a megoldásban az ellenőrzés után macerálod a #required értéket.
Szerintem jobb lenne a CCK admin felületén bekapcsolni a „szükséges” értéket, vagy kisebb modullal hook_form_alter() vagy hook_nodeapi() $op = validate ellenőrizni amit kell.
hook_form_alter?
Ezt szerintem hook_form_alter-rel lehet megoldani, de az modulba kell rakni, lévén egy hook...
--
IE doesn't support internet
igen én is így csináltam
sgabe: igen én is így csináltam de nem működik :(
Sweetchack: igen csak ha bepipálom és létrehozok még egy adatlapot és ott ha megint a cím-et adom be neki akkor az is aktív lesz ugye csak akkor nem ha létrehozok egy másik cím-et (field_cim_0). Ezért akartam volna elérni azt, hogy ne kelljen másik „adathalmazt” létre hozni, hanem mindent egybe tegyen, csak lehessen az egyiken kötelezővé tenni a másikon meg szabadon hagyni.
zila és Sweetchack: Sajnos modult nem tudok írni, rá mert ahhoz nem értek még.
Köszönöm mindenkinek az eddigi segítséget.
mező beállításai
Ha létrehozol egy új tartalom típust, amihez hozzáadod a meglévő cím meződet, a tartalom típus szerkesztésénél, a mezők kezelése fülön, a cím meződ beállításainál megadhatod, hogy szükséges legyen-e a mező kitöltése. Nem lesz semmilyen hatással a másik tartalom típusodra.
ez nem így van ám
az, hogy kötelező e vagy sem, "globális" beállítása egy mezőnek. ha egy kötelező mezőt újrahasznosítasz egy másik típusban, ott is kötelezőnek kell majd lennie, vagy ha mégis kiveszed a kötelező beállítást, akkor sehol nem lesz kötelező, ott sem ahol eddig az volt. (azért van az egy "global settings" mezőcsoportban;)
az eredeti témához pedig:
ennek, ami itt a feladat lenne, semmi köze a sminkréteghez, ahogy erre már többen céloztak. nem ott kell megcsinálni, talán azért sem megy. saját modulod hook_form_alter hurkában _kell_ az ilyet intézned, ez van. egyébként egy saját ilyen modult sem nehezebb írni mint egy sminkfunkciót, példamodulok az api.drupal.org webhelyen, _example írd a keresőbe.
-
clear: both;
igazad van
my bad, de mint feljebb írtam már, ezt egyébként sem így kéne megoldani
Mind a hárman másképp értjük :)
Szerintem meg úgy csinálta meg, hogy 1 adatlapon több címet is meg lehet adni, de egyet mindenképpen kötelező de a többi nem. 2 adatlappal lehetne csak megcsinálni, az első kötelező, a második (multiple és ) nem kötelező. Csak ezért nem akart 2 adatlapot.