Honnan tudom hogy admin oldalon vagyok ?

eggproject képe

Sziasztok!

Problemam:
En a zen theme-t kezdtem modositani es a user formokra kulon templatet csinalok a theme_hook-ban pl:

	$hooks['user_profile_form']=array("render element"=>"form",
										"template"=>"user-profile-form",
										"path"=>drupal_get_path("theme","zen")."/templates");

na most azt szeretnem elerni hogy az admin feluleten a core alap formja toltodjon be ... a neten legtobb helyen ezt javasoltak arg(0) == "admin" amit en igy implementaltam:

  if(arg(0) != "admin")
  {
  	$hooks = array();
	$hooks['user_profile_form']=array("render element"=>"form",
										"template"=>"user-profile-form",
										"path"=>drupal_get_path("theme","zen")."/templates");

viszont sajna nem muxik ... es ha megfogom debugerrel az if-nel akkor 1xert fut csak bele pl a admin/people/create oldalon es akkor is az arg(0) = "js" es nem admin :((((

remelem most jol kerdeztem:P

elore is koszonom a helpet...

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Fórum: 
Sk8erPeter képe

"En a zen theme-t kezdtem modositani"
De ugye létrehoztál subtheme-et, és inkább azt módosítgatod...?!

Ez azért tetszett:

ezt javasoltak arg(0) == "admin" amit en igy implementaltam: [...] arg(0) != "admin"

Itt nem tűnt fel, hogy a kódban nálad valami nem stimmel? :)

"a user formokra kulon templatet csinalok a theme_hook-ban"
Konkrétan mit szeretnél csinálni? Miért nem a meglévő template-eket módosítod?
Az általad mutatott kódrészlettel nagyjából semmit nem lehet kezdeni (ennyiből mi sem tudjuk, mit akarsz).

Ezenkívül ha kérdezel a fórumon, próbálj már meg egy kicsit összefogottabban fogalmazni (bár ha ugyanezt cseten írnád, akkor is pont ugyanilyen érthetetlen lenne).

0
0
eggproject képe

- zen theme-t modositom
- a zen_theme ( ami a hook_theme(ezt tenyleg elirtam) megvalositasa) ami meghivja a _zen_theme(....) metodust es en abba irtam bele

function _zen_theme(&$existing, $type, $theme, $path) {
.
.
.
  if(arg(0) != "admin")
  {
  	$hooks = array();
	$hooks['user_profile_form']=array("render element"=>"form",
										"template"=>"user-profile-form",
										"path"=>drupal_get_path("theme","zen")."/templates");
.
.
.
	$hooks['user_pass_reset'] = array("render element"=>"form",
			"template"=>"user-pass-reset",
			"path"=>drupal_get_path("theme","zen")."/templates");
	return $hooks;
  }
}

azt szeretnem elerni hogy csak a front-end feluleten hasznalja a drupal azon formokdnal ahol sajat templatet csinalok...

0
-2
Sk8erPeter képe

Ennél undorítóbban már nem is tudnád megoldani.

Theme-et nem módosítunk!! Létre kell hozni belőle subtheme-et. Van is itt drupal.hu-n is leírás erről, keress rá.
Főleg nem a Zen theme-et kéne, amihez egyértelműbb leírást már nem is tudtak volna csatolni, hogy mégis hogyan kell létrehozni subtheme-et belőle. Kb. 5 perc alatt meg tudod csinálni, egyszerű, mint egy marék lepkef×ng.

"azt szeretnem elerni hogy csak a front-end feluleten hasznalja a drupal azon formokdnal ahol sajat templatet csinalok..."
az is frontend, amit az admin lát, meg az is, amit az általános, "bejelentkezett" jogosultságú felhasználó lát.....

Akkor próbáljuk meg magyar nyelven összefoglalni, mit is akarsz:
valamiért át akarod szabni saját template-fájllal a felhasználói beállításokhoz tartozó formot, azokon az oldalakon, amiket NEM az admin lát?
Még egyszer megkérdezem, miért nem jók az alap template-fájlok, miért nem azokba nyúlsz bele.

Theme developert érdemes lenne használni:
http://drupal.org/project/devel_themer

0
0
eggproject képe

most nem fogom mindenre valaszolni mert baromira nincs kedvem veszekedni ... irtam hogy most kezdtem a drupal-t ... annak is megvan az oka hogy miert templatet hozok letre es nem alter-ben csinalok mindent... az is igaz hogy a zen theme-t modositom de attol meg hogy nem cisnaltam subtheme-t attol meg minden ugyan ugy mukodik... CSAK EGYETLEN EGY KERDESEM LENNE: BAROMI NEHEZ LETT VOLNA A KERDESEMRE VALASZOLNI: HONNAN TUDOM A PHP KODBAN HOGY ADMIN FELULETEN VAGYOK EPPEN? AHELYETT HOGY OSSZEVISSZA MAGYARAZTOK ? MERT AZ HOGY TAJEKOZTATO JELEGGEL SZOLTOK HOGY INKABB LEGKOZELEBB CSINALJ EGY SUBTHEME-T MERT IGY SZOKTAK stb .... AKKOR AZT MONDOM HOGY KOSZONOM ES MEGFOGADOM A TANACSOT, DE SZERINTEM EGY FORUMON AHOL SEGITENI SZOKTAK NEM AZT KENE HOGY 2 NAPON KERESZTUL A KERDEZOT TAMADJUK HANEM MEGPROBALUNK NEKI SEGITENI... HA VALAMI OLYAT CSINAL AMI AZ ADOTT RENDSZER ALTALANOS PROGRAMOZASI SZABALYAIVAL ELLENKEZIK AKKOR JELZEM NEKI (ES NEM LEUGATOM!)

TENYLEG KOSZONOM A NAGY SEMMIT!

0
-3
Sk8erPeter képe

Annyit azért megtehettél volna, hogy csupa nagybetűs írás helyett megfogalmazod egy kerek mondatban, pontosan mi is a végcélod.
Akkor lehet, hogy már rég túljutottunk volna az egészen.
Hidd el, ha válaszolunk, abban segítő is szándék van, nem csak kioktatás a célunk, hanem az, hogy jobb módszereket használj a Drupalban programozásra.

2
0
szantog képe

Ezt olvasd el még egyszer. Vagy sokszor. Leginkább a NeverGone féle részt. Most ugyanez van.

A file elején ott van

   /**
    * @file
    * Contains functions to alter Drupal's markup for the Zen theme.
    *
    * IMPORTANT WARNING: DO NOT MODIFY THIS FILE.

a következő sor meg üres, kisdobos becsszó, nincs ott, hogy kivéve eggproject.

Gőzöd nincs mit csinálsz, és miért csinálod. Most létrehoztál egy theme definíciót, ami nincs implementálva. Ez szinte 100%, mert ha #theme_wrappert adtál volna egy renderable arrayhez hook_valami_alterben, akkor ez a kérdés nem jött volna létre, de ha mégis, annak aztán nem sok keresnivalója a sminkben. (bár ezzel akár még vitatkozni is lehet) Azon kívül egy registryt babrálsz, aminek az a lényege, hogy _registry_ ergo hacsak nem akarod minden oldalt theme registry rebuildel kezdeni, akkor ide nem írhatsz /page feltételeket.

Kb 90% az esély, hogy megint vasvillával lapátolsz szenet, igen valószínű, hogy nem saját tpl.php kell neked, szóval inkább azt kéne leírni, hogy mit akarsz pontosan, de sanszos, hogy amit akarsz, azt hook_form_alter környékén kell keresni.

Az arg()-ra visszatérve meg valószínű, hogy a ctoolsal is sikerült összeveszned, jellemzően ő használja a 'js'-t a pathbaen, és a kérdéseidből kiindulva csak a jóisten tudja, hány hasonlóan míves mutatványt sikerült eddig produkálnod a rendszeredben.

2
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.

Sk8erPeter képe

+1, ennél jobban össze se lehetett volna foglalni. :D

0
0
eggproject képe

„Az arg()-ra visszatérve meg valószínű, hogy a ctoolsal is sikerült összeveszned, ” koszonom ebbol mostmar tudom hogy miert nem jo az a megoldas(de neten mindenhol ezt talaltam csak sajna) ... nagyon egyszeru dolgot szeretnek: szeretnem eldonteni a php kodban hogy eppen admin feluleten vagy front-end-en vagyok-e es ez alapjan szeretnek bizonyoso muveleteket vegre hajtani(a muveletek most lenyegtelenek!)

„ Azon kívül egy registryt babrálsz, aminek az a lényege, hogy _registry_ ergo hacsak nem akarod minden oldalt theme registry rebuildel kezdeni, akkor ide nem írhatsz /page feltételeket.” --- ezt most nem igazan ertem hogy minden oldalt rebuildel kezdeni ? mivel en tobb letezo form template-et akarom lecserelni(mind1 hogy miert) es megint csak oda jukadok vissza hogy ezt ajanlottak a neten, a hook_theme-ben tegyem meg... mukodik is tokeletesen de akkor te melyik hookba raknad ezen felulirasokat ?

0
-1
szantog képe

'szeretnem eldonteni a php kodban hogy eppen admin feluleten vagy front-end'

Nincs egzakt módszer, baromi sok mindentől függ. menu_get_item(), menu_get_object(), ezeknek a resultjában lehet összevakarni a feltételrendszert, vagy ha ctools objectet keresni, ez kb oldalanként, de minimum menu callbackenként változik. Ebben az egy esetben viszont ez a trükk bejön: user_is_anonymus() Tekintve, hogy bejelentkezett user a user/register oldalra acces deniedot kap, anonymnak meg gondolom csak nem adsz administer user jogot.

"ezt most nem igazan ertem hogy minden oldalt rebuildel kezdeni ? mivel en tobb letezo form template-et akarom lecserelni(mind1 hogy miert) es megint csak oda jukadok vissza hogy ezt ajanlottak a neten, a hook_theme-ben tegyem meg... mukodik is tokeletesen de akkor te melyik hookba raknad ezen felulirasokat ?"
- ez nettó zöldség. nincs olyan, hogy "form template", kivéve pár nagyon speciális esetet. És baromira nem mindegy, miért akarod lecserélni wrappert akarsz köré rakni, a form struktúráját, plusz html akarsz benne vagy mi?

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

Nagyon koszonom! Ezt igy mar ertem :)

user_is_anonymus() sajnos nem jo mert keves latogato lesz aki nem fog belepni(alapbol reges az oldal) ...

-----------
form:
igen szeretnem ha a submit gomb es az elotte levo (barmilyen form) elem egy kulon wrapper divben lenne(ennek csupan design okai vannak es sajnos csak igy lehet megoldani :() ... de mivel ezt a form api-val nem tudtam megoldani(ahogy mar mondtam a form api-t meg nem ertem teljesen :( pl: nem tudom hogy mitol fugg hogy a tombben levo form elemeket milyen sorrendben fogja generalni stb...) ezert valasztottam azt a modszert hogy templatetet csinalok ahol ugye egyesevel renderelem ki az elemeket es akkor a kello div berakasa pofon egyszeru(egyebkent tenyleg halkan jegyzem meg hogyha neten rakeresek arra hogy drupal 7 custom user register form, akkor a legtobb esetben ezt a template-s modszert irjak es azert csinaltam en is ugy...) ...
a drupal alapbol ezt generalja

.
.
<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>
.
.

de en azt szerettem volna elerni(templattel el is ertem)

<div class="submit-wrapper">
	<div id="edit-field-elfogadom-a-szabalyzatot" class="field-type-list-boolean field-name-field-elfogadom-a-szabalyzatot field-widget-options-onoff form-wrapper">
		<div class="form-item form-type-checkbox form-item-field-elfogadom-a-szabalyzatot-und">
			  <label for="edit-field-elfogadom-a-szabalyzatot-und">Elfogadom a szabályzatot <span title="Szükséges mező." class="form-required">*</span></label>
			 <input type="checkbox" class="form-checkbox required" value="1" name="field_elfogadom_a_szabalyzatot[und]" id="edit-field-elfogadom-a-szabalyzatot-und">
		</div>
	</div>
	<div id="edit-actions--2" class="form-actions form-wrapper">
		<input type="submit" class="form-submit" value="mehet" name="op" id="edit-submit--2">
	</div>
</div>

a regisztracios formot pedig a page--front.tpl.php-ban rakkom ki megpedig igy

$form = drupal_get_form('user_register_form');
print render($form);

es hidd el tenyleg kivancsi vagyok hogy a form api-val hogy lehet megoldani mert egyebkent tenyleg nem mindegy hogy most letre kellett hoznom 1 fajlt vagy csak 3-4 sort beszurni egy alterba...

Koszonom az elozo magyarazatokat :)

0
0