Hali!
A feladatom az lenne, hogy kiirjak a login blockba egy olyat, hogy hirlevelre regisztralt felhasznalok jelentkezhetnek...
Hogy miert van szukseg erre? Erdekes a kerdes, olyat akartunk elerni, hogy a kikuldott hirlevelbe be tudjunk agyazni kepeket, hogy ne kelljen a felhasznalonak a levelezoprogramjaban engedelyezni a tavoli kepek letolteset, es hasonlo okossagokat a htmlbe tavoli kepek beillesztese miatt. Probalkoztam mas modulokkal is de vegul ugy dontottunk, hogy a mailman manager lesz a megoldas, amivel ezt a legegyszerubben tudjuk megvalositani, ugy hogy az a megrendelonek is megfelel, meg konnyen is tudja ezt a funkcionalitast elerni, konkretan a mar megszokott levelezoprogramjabol...:)
Ami a gond, hogy a mailman manager jelenleg nem tamogatja anonymous felhasznalok feliratkozasat a mogottes mailman listara, arra pedig nincsen penz hogy ezt a featuret belefejlesszuk, annak ellenere hogy en szivesen bevallalnam, ezt a megrendelo el is fogadta annyit kert hogy a login blockban errol jelenjen meg egy ertesites.
Ket mondszert latok elerhetonek erre a celra, az egyik, hogy fogom es beleturok a modules/user/user.module fileba, amivel ugye az a baj, hogy evvel a drupal core-t modositanom kell. Viszont miutan mi utjara engedjuk a projectet nem akarunk mar nagyon hozzanyulni, ez meg olyan dolog lenne, ami egy upgradenel odafigyelest igenyel, meg tudast, amit a megrendelotol nem varhatok el.
A masik lehetoseg talan a block.tpl.php megganyolasa lenne, hogy amikor a login blockot jeleniti meg, akkor irja ki ezt a szoveget is...:)
Egyik sem tunik szep megoldasnak... de egyenlore mast nem talaltam erre, ebben kernem a segitsegeteket, abban az esetben ha valaki tud jobb megoldast, ha nem akkor csak egy megnyugtatas hogy ez maskepp nem megy...
Konkretan a user.modulban, a login block form szerkezetebe lehetne a legkonnyebben beletenni egy plusz szoveget, csak az ugyen nem hurok, tehat nem tudom felulcsapni, de cserebe a form maga egy valtozo, csak nem tudom hogy hol ferhetek hozza, hogy meg a megjelenites elvegzese elott hozza tudjam adni ezt a plusz egy sort, ugy hogy a drupal corehoz nem nyulok, es ha a hol meg sejlik is, a hogyan az nagyon nincs meg.
Koszonom az otleteket, vagy a linkeket elore is.
Pifta
u.i.: Ha valaki ismer olyan modult, ami tamogatja a levelbe agyazott kepkuldest, es az anon feliratkozast, nekem az is jo, en nem talaltam ilyet, vagy rosszul neztem... a phplistet, es a simplenewst megneztem mar, de azok ha jol lattam, csak ugy tudjak ezt a funkciot, hogy tavoli kepeket lehet html kodba beagyazni, a levelbe beleagyazott kepekrol a phplist mar hallott, de csak a template reszekbe tudja beagyaznia kepet a contentbe nem, az meg a megrendelo miatt nem mukodik, hogy minen hirlevelet templatekent gyart le.
Amit tudnia kene ha modult ajanlatok: anon feliratkozas, beagyazott kepek, es konnyu hirlevelszerkesztes... ezalatt kb a dreamweaverben megszerkesztett, es levelbe beillesztett honlap elkuldeset ertem kb... Az is jo, ha tinymcevel vagy hasonloval mukodik egyutt a modul, es ugy lehet editalni, ennel bonyolultabb dolog mar nem az igazi.
én beleírnám a page.tpl.php-ba
ha valami ilyesmire gondolsz: http://lmv.hu/ (belépés menüpont), akkor ebből mazsolázhatsz:
ninja - http://alleycat.hu
page.tpl.php
Erdekes az elgondolas... Meg eddig a legkevesbbe gany megoldas, bar nem ertem miert jo megvalositanom a login block megjeleneset ujra, ha mar egyszer megvan csak ki kellene egesziteni, azonkivul, hogy azert jo mert igy a core piszkalasa nelkul meg tudom oldani a feladatot...:)
meg nemtom hogy ez most epp tervezett-e de az oldalt epp nemtom elerni, timeoutol.
mindenesetre koszonom a javaslatot.
Pifta
roppant egyszerű
azért jó így megvalósítani, mert roppant egyszerű és "hordozható"
az apache néha eltörik, így néz ki a cucc: http://alleycat.hu/files/lmv-hu-login.png
én azért rejtem el js-el, mert mi a viharnak legyen ott mindíg?
ha ezt az utat választod akkor viszont ez is kell:
ninja - http://alleycat.hu
neked is koszonom
a segisteget, vegulis nekem az a megoldas lesz ami bejon, hogy csinalok kulon block templatet a loginhoz.
Pifta
drupal_get_token()?
Hol a drupal_get_token()? Ha jól emlékszem, kb. a Drupal 4.7.4 óta anélkül nem mennek a sminkbe égetett HTML formok.
Egyébként is, sminkből formot sima HTML-lel kiíratni életveszélyes, mert fennáll a veszély, hogy keresztbe teszünk a form validáló funkcióknak. Ha mindenáron magát a formot akarjuk manipulálni és nem a blokkot, akkor írhatunk a form számára saját template-et amit _phptemplate_callback funkcióval meghívunk, vagy használhatjuk a beépített Drupal eszközöket (drupal_get_form('form_id')).
teljesen jól működik
több oldalon használom (4.7.) már elég rég óta, idáig hibátlanul működött.
megnézem amit mondasz, jól hangzik.
ninja - http://alleycat.hu
erre való
Nem tudom, ez miért gányolás. Pontosan ilyen célokra találták ki a block.tpl.php-t.
ganyaloas
ganyolas alatt azt ertem, ami modszert en egyedul latok, es ezert is vetettem fel, csak nem fejtettem ki bovebben, nyilvan ertelmes megoldas is letezhet.
Az en megoldasom az hogy fogom, es a block.tpl.phpba irok egy olyat, hogy ha a login blockban vagyok akkor adjak hozza a blockhoz valami szoveget egyebkent meg ne... ezt en ganyolasnak tekintem, hizsen az igazan kulturalt ha a megjelenitett adat tudja hogy oda plusz infot kell beirni, nem pedig a megjelenitesert felelos kod.
Azt viszont nem latom hogy a megjelenitett adatot hol kene modositanom, ugy hogy a corehoz nem nyulok hozza.
kulon templatenel file neve, lehet-e? hogyan?
Olvasgattam manualt evvel kapcs is sokat, es ugye van az a megoldas, hogy a page.tpl.php-nel meg lehet azt csinalni, hogy adott oldalnak mas legyen a megjelenitese ugy hogy egy megfeleloen elnevezett filet elhelyezek ami annak az oldalnak a template-jet tartalmazza.
A kerdes hogy ez mukodik-e a blockokra is, illetve ha igen akkor a login blockhoz nekem milyen neven kellene a filet letrehozzam, nincs kedvem a kodban lekovetni, de lehet hogy az lesz, holnap mikor leulok dolgozni aztan max megvalaszolom a sajat kerdesem...:
block-user-0.tpl.php
Nem lehet ilyen élesen elválasztani, hogy mi az információ és mi a megjelenítés. Ha minden node-nak a végére kiteszel egy copyright jelzést akkor az micsoda? Szerintem az ilyen fix részeket simán be lehet tenni a sminkbe. Ha nem a sminkbe, akkor hová? A smink egy fix öntőforma, amibe beleöntöd a változó adataidat. Sehol nincs az leírva, hogy a nem-változó rész csak HTML címke lehet.
Using different block templates for different blocks, regions, etc.
koszonom
Hat koszonom, ezt kerestem...:) csak elsiklottam effolott a doksiban.:)
a ganyolasrol:
Ha minden nodenak a vegere teszem ki, akkor nyilvan a node templateb valo, de ha csak bizonyos nodeokba kell kitenni, akkor azt a node adathalmazanak kell tudnia hogy ki kell e tenni, nem a templatejenek kell eldonteni, valamilyen az adatokbol kinyert informacio alapjan. Legalabbis szerintem.
Azt nem mondtam hogy a nem valtozo resz csak hmtl cimke lehet, de amikor adott egyetlen specialis block, aminek a megjeleneseben szukseg van valamire, akkor azt nem tartom jo megoldasnak, hogy a generikus block templatebe piszkaljak bele valami feltetelt, hogy az megjelenhessen. Az hogy mas template jeleniti meg mar teljesen elfogadhato.
De ez mar szemleletbeli kulonbseg, meg nem biztos hogy ebben a topicban kellene megvitatni:) megegyszer koszonom a segitseget.
Pifta
Egy általánosabb megoldás
Egy lehetséges megoldás lehet még a következő:
1. modules/user/user.module megynit
2. keres user_block
3. lát $op == 'list' résznél
3. Keres $op == 'view' rész
4. Itt keres $delta == 0, talál:
5. innen minket csak a 'content' rész érdekel, no meg megszívlelhetjük, a megjegyzésben találhatóakat.
6. adminisztráció->web.ép. ->blokkok->blokk hozzáadása
7. beviteli formát PHP-ra állítjuk, majd a blokk tartalmához a következőt írjuk:
8. kész is vagyunk.
Megjegyzések
- ha a szövegeket angolul visszük be, és használjuk a t() függvényt(lásd második kódrészlet) akkor többnyelvű oldalnál sem leszünk gondban.
- ez a megoldás szinte minden blokkra használható. (sőt akár a kapcsolat űrlapot is betehetjük így ;))
- az üzenet a kód és a smink módosítása nélkül átírható a webes felületen.
- nem hülyebiztos!! Amennyiben nem mi, vagy hozzáértő fogja kezelni az oldalt, érdemes vagy saját modult fejleszteni, kb 20 sor, vagy egy smink változót felvenni és az Edit által javasolt utat követni. Ekkor a szöveg ugyan úgy változtatható.
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Felmelegíteném a témát
Én nem a login block elé vagy mögé szeretnék írni, hanem bele.
Az Elfelejtett jelszó és a Regisztráció linkjéből gombot szeretnék csinálni.
Meg lehet ezt oldani anélkül, hogy belenyúlnék a user modul kódjába?
Ha bele kell nyúlni, akkor ezt hogy célszerű megtenni? Mert próbáltam hozzányúlni a user_login_block-hoz, de ha rendes gombot akarok csinálni, akkor ahhoz külön formot kellene gyártanom a gomb köré.
Valahogy így:
Na erre varrjon nekem valaki gombot. :-)
miért nem nyitsz új témát új támának?
Már ne haragudj, de milyen témát melegítesz Te fel????
na mindegy, ha nektek egy ilyen összeokádott hányingerfórum a jó, akkor nesztek, én már nem pörgök ezen.
form_alter-al tudsz formot megváltoztatni.
http://api.drupal.org/api/function/user_login_block/5
a fenti linken kilesheted, hogy hogyan jön létre a form és mit kell módosítanod.
pp
(a gomb, az nem gomb, hanem link! Az, hogy gomb alakja lesz ne tévesszen meg!)
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Ez igen egyszeru
hook_form_alter , $form['info'] = array('#value' => 'szoveg'); ennyi. (a #type defaultja markup, tehat azt felesleges beleirni)