Custom user_register_form

eggproject képe

Sziasztok!

Nemreg kezdtem drupal 7-vel ... programozasi tapasztalatom van ezert megyeget a drupal csak meg a hook rendszeret nem szoktam meg :P es par dologgal elakadtam pedig tudom hogy meg lehet vele oldani... koszonom elore is a helpeket...

A problemakrol:

amit szeretnek elerni:
egy "kis" regisztralo form amit a drupal a beallitott kotelezo fieldekbol allit ossze.... viszont a kigeneralt html nem megfelelo nekem... es a hibauzenetek helye sem

ami megvan eddig:
- form kigeneralasa (print render(drupal_get_form('user_register_form'));)
- hibauzenetek megjelenesi helyenek megvaltoztatasa (sajat modul az ife modul alapjan)

ami viszont meg problema:
1. en azt szeretnem hogy a submit gomb vagy az a div amiben van az atkeruljon az utolso input elem div-jebe....
ezt az allapotot vagy valami hasonlot szeretnek kodbol elerni(ez most js-vel mukodik :(((

<div class="field-type-list-boolean field-name-field-elfogadom-a-szabalyzatot field-widget-options-onoff form-wrapper" id="edit-field-elfogadom-a-szabalyzatot">
	<div class="form-item form-type-checkbox form-item-field-elfogadom-a-szabalyzatot-und">
		<div class="form-actions form-wrapper" id="edit-actions--2">
			<input type="submit" id="edit-submit--2" name="op" value="Mehet" class="form-submit">
		</div>
		<input type="checkbox" id="edit-field-elfogadom-a-szabalyzatot-und" name="field_elfogadom_a_szabalyzatot[und]" value="1" class="form-checkbox required">  
		<label class="option" for="edit-field-elfogadom-a-szabalyzatot-und">Elfogadom a szabályzatot <span class="form-required" title="This field is required.">*</span></label>
	</div>
</div>

viszont ha nem oldom meg js-vel akkor igy generalja ki a html-t

<div class="field-type-list-boolean field-name-field-elfogadom-a-szabalyzatot field-widget-options-onoff form-wrapper" id="edit-field-elfogadom-a-szabalyzatot">
	<div class="form-item form-type-checkbox form-item-field-elfogadom-a-szabalyzatot-und">
		<input type="checkbox" id="edit-field-elfogadom-a-szabalyzatot-und" name="field_elfogadom_a_szabalyzatot[und]" value="1" class="form-checkbox required">  
		<label class="option" for="edit-field-elfogadom-a-szabalyzatot-und">Elfogadom a szabályzatot <span class="form-required" title="This field is required.">*</span></label>
	</div>
</div>
<div class="form-actions form-wrapper" id="edit-actions--2">
	<input type="submit" id="edit-submit--2" name="op" value="Mehet" class="form-submit">
</div>

ezzel az a bajom hogy design szerint a gombnak olyan helyen van ahova csak absolute pozicioval tudom berakni de ahogy lesz hiba uzenet rogton elcsuszik a gomb :( viszont ha a form utolso div.form-wrapper -ba bele tudom rakni a submitot akkor ott marad a gomb ahol akarom

2. a hibauzenet helyenek megvaltoztatasa miatt
hozza kellett adnom egy elem rendelest...

  1. function XXX_theme() {
  2. return array(
  3. 'XXX_form_element' => array(
  4. 'render element' => 'element'
  5. )
  6. );
  7. }
  8.  
  9. function theme_XXX_form_element($variables) { ....

na most az a gondom ezzel hogy a theme_XXX_form_element nem csak a user_register_form-nal fut le ... hogy a tudom megmondani a drupalnak hogy csak az XY id-val rendelkezo formoknal hasznalja a renderelo function-t ?

Drupal verzió: 
Fórum: 
chx képe

Q:
Hogyan lehet X-szel Y-t csinálni?

A:
Ha valaki Y-t akar csinálni, akkor mondja azt, helytelen módszerekre való utalgatás nélkül! Az ilyen kérdések olyan kérdezőre utalnak, aki nemcsak hogy nem ért X-hez, de zavarosan érti csak az Y problémát is, és az agyát a saját problémája tölti ki. Az ilyen embert jobb békénhagyni, amíg meg nem fogalmazza, hogy mit akar.

Hint: hook_form_alter.

3
0
eggproject képe

bocsanat csak ez egy elo project es az XY az a project neve csak kicsereltem ra... de akkor legyen proba a neve... :P

0
0
nevergone képe

Szerintem az a baj, hogy nem akarod megismerni a rendszert, nem szánod rá az időt és a tapasztalatot, de már rögtön programozni akarod. Lehet, hogy kiváló PHP programozónak tartod magad és profi vagy adatbázis-kezelésben, de a Drupal egy külön világ, megvan a saját belső rendszere, amellyel megoldhatóak a felmerült problémák. Ha te „nyers PHP” tudásoddal, a Drupalt megkerülve akarsz valamit megoldani, annak mindig gányolás, hekkelés lesz a vége, ami semmi jóra nem vezet. Sőt, ilyen megközelítésnél felmerül, hogy mihez kell egyáltalán a Drupal?
A helyzetet bonyolítja, hogy nem mondtad el pontosan, hogy mit szeretnél. Így nehéz segíteni, mert nem vagyunk gondolatolvasók és ebben az esetben az sem visz előbbre, ha csak azt mondod el, hogy mire jutottál.

2
0
eggproject képe

csak felig van igazad mert raszanom az idot ... napok ota nezegetem csak meg nem tiszta es tetszik ez a form rendszer csak meg nem teljesen vilagos(mit es milyen hook-val erek el)... a kodokat nem masoltam be ujra

megprobalom a kerdeseket ujra fogalmazni:
2 kerdes:
az volt a problemam hogy a hibauzeneteket az urlapon a fieldek alatt akartam elhelyezni http://drupal.org/project/ife ezt a module-t letoltottem... megneztem hogy mukodik(hidd el foglalkoztam vele :)) es beepitettem egy sajat modul-ba azt amire szuksegem volt ... mukodik is tokeletesen de en szeretek optimalizalni es debugger futattasa kozben eszre vettem hogy a letrehozott _theme() hook altal bejegyzet element renderelo function-t (function theme_XXX_form_element($variables) { .... az XXX nem a valos nev!) minden form elem renderelesenel lefutattja de en ezt nem szeretnem csak azt szeretnem ha egy bizonyos form(ahogy neztem ezt drupalban altalaban ID-val szokas megadni) elemeinek renderelesenel hivodna meg a function(ez csak szintiszta optimalizacio :) )

1 kerdes:
na hat ezt nehez megfogalmazni ujra :)
mockup
annyit szeretnek hogy a submit gomb ne egy kulon wrapperba keruljon hanem az utolso form elem wrapper-ba...
ha a kep sem segit akkor ezt hagyuk most majd idovel megtanulom...

0
0
szantog képe

Már írta chx: hook_form_alter.
Docs: http://api.drupal.org/api/drupal/developer%21topics%21forms_api_referenc...
További hint: #container, #prefix/#suffix

1
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

eggproject képe

az alter-t ismerem de meg mindig nem tudom hogy mit kene csinalni hogy el tudjam erni amit akarok...

pl hogy talalom meg a tombben az utolso elemet ... a prefix es suffix nem minden esetben jo mert mar probaltam!

0
0
szantog képe

rakd fel a devel modult, és írd be a form_altered végére, hogy dsm($form).

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

eggproject képe

fent van de sajna ez egy regisztrator forom es itt meg nem vagyok belepve es 1xer mar googlival probaltam keresni lehetoseget hogy fejlesztes alatt a dsm menjen nem belepett felhasznaloval is de nem talaltam de igazabol annyira nem is izgat mivel debugerrel dolgozom! (ami mar eddig is sokat segitett a drupal mukodesenek megerteseben!)

0
0
nevergone képe

„probaltam keresni lehetoseget hogy fejlesztes alatt a dsm menjen nem belepett felhasznaloval is de nem talaltam”

Látod erre mondtam a következőt itt: http://drupal.hu/comment/66642#comment-66642

„Szerintem az a baj, hogy nem akarod megismerni a rendszert, nem szánod rá az időt és a tapasztalatot, de már rögtön programozni akarod.”

Menj el az admin/people/permissions oldalra és a Devel modul „Access developer information” jogosultságát add meg a szükséges felhasználói szerepköröknek.

Aztán pedig, ha valóban a Drupallal akarsz foglalkozni, akkor ezt most tedd szépen félre (a munkádat is) és nyomás olvasni, itt kezd: http://nagygusztav.hu/drupal-7-alapismeretek

„debugerrel dolgozom! (ami mar eddig is sokat segitett a drupal mukodesenek megerteseben!)”

Nyugodtan elhiheted, hogy még töredékét sem érted a Drupal működésének és lehetőségeinek. Több éve foglalkozom vele napi szinten, és még most is többször megesik, hogy új dolgokba futok bele, aminek utána kell néznem. Azt hiszem, ezzel a dologgal nem vagyok egyedül a hazai közösségben.

0
0
eggproject képe

Az alapismereteket mar majdnem kiolvastam... de nekem ido amig megszokom alapbol hogy is epul fel a drupal es mit es hogyan szoktak benne ... ha ez a tudas meglesz akkor mar a documentacio is eleg lesz de addig amig nem ertem meg addig sokszor van hogy a documentacio olyanokat ir amiket nem ertek :(( az hogy meg evek ota fejlesztesz benne es meg mindig vannak ujdonsagok azzal nincs gond mert szerintem nincs olyan fejleszto aki mindent egyszerre megtanul ... en legalabbis ugy szoktam haladni hogy van egy feladat es ahoz ami kell tudas azt ossze szedem ... es ugye szepen lassan ezzel az oszkep is bovul majd ... csak tudod mindig a kezdet a legnehezebb... es hidd el mielott irtam ide kerdest azelott nem keveset kerestem annak utanna amiket kerdeztem csak ha meg meg is talaltam a megoldast nem ertettem mivel alap tudas hianyossag van ... Drupal 7 -theme es modul fejlesztesre melyik konyveket ajanljatok ?

0
0
chx képe

Na, erre már lehet válaszolni, a Drupal a formokat tömbként ábrázolja amiket a hook_form_alter -ben lehet változtani. A $form['foo']['bar'] a $form['foo']-n belül jelenik meg, tehát ezt kell elérned.

2
0
eggproject képe

oks ezt igy most ertem ... ki fogom probalni ... de ha a submitot atrakom akkor is mukodni fog ? :) na ma ki is probalom ...

0
0