Sziasztok!
A kérdésem az lenne, hogy hogyan lehet elérni az adatbázisból 1 táblából egy bizonyos mező értékét? Elmondom miről van szó.
Szóval a lényeg az lenne, hogy azt akarom megcsinálni, hogy a felhasználóknak felvennék 2 kötelezően kitöltendő mezőt. Az egyik a saját név, a másik pedig a honlapjuk. Úgy akarom ezt beleágyazni egy page-story.tpl.php -ba, hogy a story szerzőjének igazi nevét iratnám ki (tehát nem a login nevét), amihez linkelném a weboldalát (tehát hogy rákattintva ne a drupal belső oldala jöjjön be).
Erre milyen lehetőségem van? Sajnos PHP-hez csak nagyon keveset értek (az alap if + print ami megy, pont a PhPTemplate miatt), de felhasználtam egy másik kódból egy helyen ezt:
<?php print format_date($node->created, 'custom', "Y, F j") ?>
Ez közvetlenül nyúl valahogy valamihez, nem? Esetleg egy függvényt kellene írni a templete.php-ba? Ebben esetleg tudna segíteni valaki? :) Ha látnám a jó kódot, talán később már saját magamnak is ki tudnám kombinálni, ha hasonló problémával kerülök össze.
Bárhogy is alakuljon, ez a PHP kód mindenképpen érdekelne, mert úgy érzem jól jönne, ha ezzel tisztába lennék. Előre is köszönöm a segítséget! :)
Profile modullal...
Szia.
Ha a profile modullal csinálod és hozzáadsz egy "honlap" nevű mezőt, akkor a tartalmát a node.tpl.php-ban kb. így tudod megjeleníteni:
Üdv: Zoli
Valamiért nem jó
Köszi a választ!
Igen, azzal csináltam, de valamiért nem jó. Most csak beszúrtam a kódba így (az id-ket és a classokat átírtam, csak azért csináltam, hogy könyebben áttekinthető legyen) :
De nem ír ki semmit. Kipróbáltam úgy is, hogy a node-ot átírtam userre (ha esetleg elgépelted volna), de úgy sem ment. Most visszaállítottam mégegyszer arra ahogy írtad, de még mindig nem jó. (Gondolom itt a pontosvesszők miatt nem szükséges az új sor, de kiróbáltam és úgy sem ment).
A global -os résznek egyébként mindegy hol van? szükséges valamelyik dokumentum tetején lennie?
ps.: Jah, ezt egyébként a node-story.tpl.php fileomba írtam.
Amit írtál jónak tűnik.
Amit írtál jónak tűnik. Próbáld meg a profil betöltése után a print_r($node) parancsot. Elméletileg a $node tömbben ott kellene lennie a hozzáadott mezőknek. És egy checkbox-al próbáltam ki, működött. A felvitt story-hoz tartozó felhasználónak ki van töltve a honlap mezője?
Üdv: Zoli
De mégsem működik. :(
Ahogy láttam, ez szépen kiír minden elérhető adatot, ugye? Mert szépen kiírt mindent, és a
kóddal utána ki is tudtam íratni a user nevet (de nem azt, ami a különleges mezőben volt az igazi névvel, hanem a login nevet, azaz hogy "szerzouser").
Ellenőriztem újra, ki vannak töltve ennél a felhasználónál a mezők.
Rákerestem még az így kiíratott szövegben a "profile_", "nev", "page", "profile_nev", "profile_page", "Szerző User" (ilyen fantáziadús nevet adtam a próbausernek) szavakra, de egyiket sem találta meg benne.
Szerintem valahogy nem sikerült hozzácsapnia ezeket a plusz mezőket akkor, nem?
Elírtam...
Bocsánat, elírtam. print_r($user), ebben nézd meg. Nem írtad, hogy milyen verziójú drupalt használsz, én most egy 5.1-en próbáltam ki.
Üdv: Zoli
Így viszont ez a kimenet
Én is 5.1-et használok. :)
Ezt a kimenetet kaptam:
Gondolom itt kellett volna lennie a két profile-os mezőmnek.
Nem tudom, hogy számít-e valamit, de nálam alapból a userekenek nincs engedélyezve a story készítés, és itt most úgy csináltam, hogy egy moderátor userrel (vagy egy adminnal, mindegy) a Story tulajdonosát átállítottam erre a mezei userre. Elvileg a drupal tud erről, mert korábban nem az admin vagy moderátor user nevét írta ki a ->name -es résznél, hanem azt, akit beállítottam.
Valakinek van tippje, hogy hol ronthattuk el?
Ha létezik ilyen mezőhozzáadós eljárás, akkor azzal utána elvileg könnyen hivatkozható lenne az a 2 plusz mező, de én sehol sem találom a neten az ehhez kapcsolódó eírást. :(
Talán ez segít
No, elvacakoltam vele. A megoldás a következő:
Ez működik anonymous felhasználó esetében is. Viszont ami a hibát valószínűleg okozta, hogy ha a profil field adatait közvetlenül a regisztráció alatt viszem fel, akkor nem a "profile_field" táblába kerül bele, hanem a "users" tábla "data" oszlopába. Viszont, ha szerkesztem a felhasználót és elmentem újból, akkor már a jó helyre kerül az érték. A megoldás csak az utóbbi esetben működik, mivel a "profile_filed" táblából vesszük az adatokat.
Ha ez probléma, akkor vagy utána kell nézni, hogy mi okozza ezt, vagy pedig írni kell a template.php fájlba egy függvényt, ami mezők értékét megnézi a profile táblában is és a users táblában is.
Most nincs sok időm, ha nem jutsz dűlőre vele, valamelyik nap összedobom.
Üdv: Zoli
Működik! :)
Ez így pont úgy csinálja, ahogy kellett, viszont azt hiszem abból, amit írtál, nem lesz gond, mert ez a 2 mező elvileg nem lesz megadható regisztrációnál, hanem csak az adminisztrátor adhatja meg ezeket az adatokat annak a usernek, aki később majd publikál (tehát regisztrálás után).
Köszönöm szépen a segítséget!
(Jah, és hogy szakítottál rám időt! :) )
drupal 6 alatt ?
Én ugyanezt szeretném de 6-os drupal alatt nem muködik :(
Valakinek megy 6-os alatt ?
engem érdekelne!!!!
Engem érdekelne az a megoldásod ami megnézi mindkét helyen... mert ha jól értettem így hogy ha látni akarom akkor minden egyes reg után bele kell módosítani hogy jó helyről olvassa ki?