User Block

Sylonell képe

Sziasztok!

Akadt kis problémám, miszerint a felhasználó bejelentkezési blokk (block-user-0) már jó helyen van és egykét részletet már ott látok, ahol annak lennie kell a blokkon belül, de sajnos van amit nem tudok kikerülni beleírás nélkül.(Pl.: input helyezés és az új felhasználó/passw menük áthelyezése.) Szóval csak annyi kérdésem lenne, hogy a user blokkhoz (a belépés előtti blokk, mert a belépés utáni blokkot már kezelem)kezeléshez tartozó valami.php-t hol találom? Kerestem a modulok között, de sajna sehol nem találom... Esetleg, nem tudom mennyire plusz infó, hogy updateltem az oldal 5.1-ről 6.25-re.

Az a fájl kellene ami ezt a szöveget tartalmazza: (A fájl infó a netről van)

User login

Username: *

Password: *

  • Create new account
    [...]
    (A moduloknál a user, form és hasonló, általam valószínűnek tartottat már átfésültem.)
    Előre is nagyon köszönöm!
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Fórum: 
Sylonell képe

<div class="block block-user" id="block-user-0">
<h2>User login</h2>
<div class="content">
<form id="user-login-form" method="post">
<div>
<div id="edit-name-wrapper" class="form-item">
<label>Username: <span class="form-required">*</span></label>
<input type="text" class="form-text required" value="" size="15" id="edit-name" name="name" maxlength="60">
</div>
<div id="edit-pass-wrapper" class="form-item">
<label>Password: <span class="form-required">*</span></label>
<input type="password" class="form-text required" size="15" maxlength="60" id="edit-pass" name="pass">
</div>
<input type="submit" class="form-submit" value="Log in" id="edit-submit" name="op">
<div class="item-list">
<ul>
<li class="first">
<a title="Create a new user account." href="/user/register">Create new account</a>
[...]

0
0
tatarbj képe

szia, közvetlenül így a forráskódot nem is fogod megtalálni, mert nem így alakul ki :)
ez valójában egy block, mint az pl a konténer div-ből is látszódik (id-je: block-user-0) -> ebből lehet következtetni arra, hogy a user menü implementálja a hook_block-ot és annak is a 0-ás deltájában fogod megtalálni, amit keresel :)
tehát az irány: user module, abban megkeresed a user_block nevű függvényt, abban megnézed a view op-ot, annak pedig lesz egy switch, aminél a 0-ás case-t nézd meg ;)
remélem érthető voltam így este, ha valami nem megy jelezd és segítek szívesen.
üdv, tatarbj.

0
0

---
Tatár Balázs János

szt képe

A modules/system könyvtárban van egy block.tpl.php fájl. Alapvetően ez a core fájl készíti el neked az összes blokkot (a fájlban kommentben láthatod az elérhető változókat is). Viszont a sminked valamelyik könyvtárában lehet, hogy már van egy ugyanilyen nevű fájl. Ha van, akkor abban a sminkben már az felel a blokkok kinézetéért. Ha csinálsz ebből egy másolatot ugyanide block-user-0.tpl.php néven, akkor ezzel a fájllal a user bejelentkezési blokkot tudod tovább specializálni.
Ez a legalapvetőbb módszer.
A devel modul segít a tpl.php fájlokat kitalálni.

0
0
Sylonell képe

Lehet nagy fába vágtam a fejszémet, de nem baj, legalább ebből fogok tanulni is. Nos igen block.tpl.php-m már van, de sajna a develt egyenlőre nem tudom kezelni, pedig youtube-n néztem vidit, csak D7 alatt kicsit másképp mozog. Elvileg elég lenne a user-block-0.tpl.php fájlba bedefiniálnom a Firebugban látott kódrészletet?
A user modul (modules/user) alatt végig néztem a fájlokat, de egyikben sem találtam user-block függvényt. :(
Úgy érzem magam, mint amikor először ültem le programozni :)

0
0
szt képe

Persze, bármit beletehetsz, beleteheted akár a firebugos kódot is, de abban nem sok változó van, ugyebár ;)
Viszont úgy szokás, hogy a *.tpl.php fájlokban nem módosítjuk, csak kiíratjuk a változókat.
A változókat tipikusan a core szolgáltatja (az idevágókat részletesen lásd. a modules/system/block.tpl.php kommentjében), de akár te magad is definiálhatsz felhasználható változókat.
Ezeket a sminkedben lévő template.php fájlban illik definiálni (ha nincs ilyen fájlod, csinálj egyet)
Ott ha beírsz pl. egy ilyen függvényt, hogy:

function SMINKED_NEVE_preprocess_block(&$variables) {
  $variables['envaltozom'] = "valami";
}
, akkor ez elérhető lesz az összes block.tpl.php fájlban, emígy:
  print $envaltozom; 
Ez a függvény egyébként jelen esetben a template_preprocess_block() függvény implementációja.
Ezen a vonalon indulj el.
Még egy: ha felteszed a devel modult, akkor ha ez beteszed pl. a block.tpl.php-ba, akkor kiírathatod az ott elérhető változókat:
dpm($variables);
Új fájlnál űritsd a cache-t.
0
0
Sylonell képe

Köszönöm mind a kettőtöknek a segítséget, sikerült megcsinálnom :)

0
0
szt képe

Köszi, de leírnád, hogy hogyan? Biztos másokat is érdekelne...

1
0