Jelszóval védett tartalom

kredenc képe

Sziasztok!

Előre bocs, ha "volt már" témát feszegetek, de éjjel végigolvastam a teljes fórumot, rá is kerestem a problémámra, egyelőre nem találtam választ.

Tehát: egy céges honlapon kellene egy tartalmat jelszóval elérhetővé tenni. Konkrétan: a nagyker árlistát csak regisztrált emberkék nézhetik meg / tölthetik le. Ehhez van egy statikus oldal (nagyker-arlista). Mivel az oldal anonym felhasználós, azaz nem szükséges login a látogatáshoz, a login blokkot csak itt kellene megjeleníteni, egy információs mezővel plusz egy 'regisztráció' hivatkozással. Ha a látogató begépeli nevet/jelszót, ugyanezt az oldalt kapja, csak már a tartalommal.

Ezt próbáltam így:

<?php global $user; ?>
<?php if ($user->uid) : ?>
  - tartalom - 
<?php else : ?>
 - login block -
<?php endif; ?>

A - login block - az ugye az, amit a drupal alapvetően használ. Tulajdonképpen ez működött, én, mint regisztrált user a tartalmat láttam, kijelentkezés után megjelent a login mező, ám az elküldés után ez 'végtelen ciklusba' került, azaz ismét az üres loginmezőt kaptam vissza. A form action így nézett ki:

<form action="/nagyker-arlista" method="post" id="user_login">

Azaz az action az adott oldalra dob vissza - azt gondoltam, az uid elenőrzés miatt ekkor már a tartalom fog látszani, de nem... Mit rontok el? A legfrisebb verziót (5.2) használom. Előre is köszönöm a választ!

aries képe

Miért nem állítod be, hogy a blokk melyik csoportnak látszódjon és hol jelenjen meg? Ezt a blokk beállításainál tudod megtenni.

Aries
http://aries.mindworks.hu

0
0
kredenc képe

... ha láma kérdéseket írok, de másfél napja ismerkedek a drupallal :). Amúgy gyorsan tanulok, nem lesz velem sok gond, ígérem. :)

A kérdésed és egyben megoldásod természetesen kézenfekvő, be is állítottam, már majdnem jó, sőt tökéletes, viszont akkor bátorkodom azt is megkérdezni itt (hátha segítünk ezzel másokat is, akiknek ez a gondja, és később rátalálnak erre a szálra), hogy mily módon lehet összerakni frappánsan az oldalt. Ugyanis most a beküldött tartalom alatt jelenik a login blokk, és szeretném valahogy megdizájnolni, azaz ne elkülönülve legyen a két dolog, hanem egyben, homogén módon. Erre jó pl. a block.tpl? Vagy más modul? CSS-ben otthon vagyok, ha bele kell nyúlni a PHP-ba, attól se rettenek vissza, úgyhogy elég egy-két, a fentihez hasonló 'jó irányba rugdosás' is :). Köszi a választ előre is!

0
0
Illyés Edit képe

Ugyanis most a beküldött tartalom alatt jelenik a login blokk

Milyen smink teszi neked a login blokkot a tartalom alá? Nincs left sidebar és right sidebar a blokk beállítási oldalon?

0
0
kredenc képe

Saját sminkem van. Én mondtam neki, hogy a tartalomba tegye :). Ez ott jó helyen is van. A .node classt formázom CSS-ben úgy, hogy pofás kis boxba pakolja a tartalmat. Ez oké. Most azt csináltam, hogy van a tartalom formázott h2 fejléccel (cím - Nagyker árlista), alatta a dobozban a szövegtörzs (Csak regisztráltaknak, stb), ám alatta ott 'fityeg' a login blokk.

Mondjuk ha más megoldás nincs, akkor sincs gáz, mert ezt is megformázom CSS-ben, mint a tartalmat, és lesz egymás alatt két pofás box, csak gondoltam, ha van rá ismert, egyszerű megoldás, az egészet egybe lehetne pakolni, mint a http://lmv.hu/ oldalon a belépés menüpont. De ott tudom, hogy a készítő a login modult rakta be az oldal törzsébe, php beviteli formával (tegnap esti fórumolvasásom gyümölcse :)). Gondoltam, a block.tpl vagy template.tpl, esetleg a node.tpl alkalmas arra, hogy ilyesmit megjátsszak. Ha viszont ennél bonyolultabb, akkor összehozom CSS-ben, float, absolute pozícionálás, egyéb okosságok csodákra képesek :).

0
0
Illyés Edit képe

Létrehozhatsz egy új sminkrégiót, amit a page.tpl.php-ben a fő tartalmi részen belülre helyezel. Ez a régió megjelenik a blokk beállítási oldalon, ott beleteheted a User login blokkot.

0
0
ninja képe

az lmv-n így van:

<?php global $user; ?>
<?php if ($user->uid) : ?>
	Ezt kapja a bejelentkezett arc pl: szia username arc
<?php else : ?>
	Ezt kapja a be nem jelentkezett arc pl: loginblock.
<?php endif; ?>

http://alleycat.hu

0
0
kredenc képe

Megoldottam a problémámat...

<?php global $user; ?>
<?php if ($user->uid) : ?>
  Védett tartalom
<?php else : ?>
  Csak regisztráltaknak, etc...
  <?php
    $block = module_invoke('user', 'block', 'view', 0);
    print $block['content'];
   ?>
<?php endif; ?>

Ilyen egyszerű. Ez egy blokkban van, és úgy formázom, ahogy akarom.

0
0
Illyés Edit képe

Az utókor kedvéért írjuk le, hogy itt nincs lehetőség felhasználó létrehozására és új jelszó kérésére, hacsak nem kódoljuk bele a "Csak regisztráltaknak..." részbe.

Az ajánlott megoldás az, amire Aries is utalt: a blokk beállítási oldalon (admin/build/block) kell szabályozni a User login blokk megjelenését, pl. hogy csak ezen a bizonyos védett információkat tartalmazó oldalon jelenjen meg. Azt, hogy a blokk melyik régióban jelenjen meg az oldalon, szintén a blokk beállítások oldalon tudjuk szabályozni.

0
0