Profile mezők elérése kódból

konorti képe

Sziasztok,

a profile modult használom arra, hogy ha egy felhasználó regisztrál, akkor megadhatja a nevét, telefonszámát, címét stb.

Azt szeretném elérni, hogy ha a felhasználó beküld egy tartalmat, akkor a tartalom field-jeit automatikusan kitöltse ezekkel az adatokkal. A field-eknek ugye lehet default értéket adni ahová lehet php kódot is beszúrni, de nem tudom hogy hogyan tudnám lekérni a címet, telefonszámot stb...

Tudna valaki segíteni?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
szantog képe

1. Devel modul feltesz, bekapcs.
2. PHP kód futtatása blokk kitesz láblécbe, section closure-ba, vagy valami nem túl zavaró helyre
3. php kód beír.

  global $user; //a te adataid
//vagy
  user_load($uid); //$uid = annak a felhasználónak az azonosítója, akiben turkálni akarsz.
 
  kpr($user);

4. Gondosan megvizsgálva a kiírt ojjektum szerkezetetét $user->aminekedkell beír alapértelmezettnek.

Valami ilyesmi php kód kell a mezőbe

  if ($node->uid) {
    //bizt kedv, ha van a node-nak szerző, akkor azt töltjük be.
    $user= user_load($node->uid);
  }
  else {
    global $user;
  }
  return $user->amitazelőbbmegnéztéldevellel
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.

konorti képe

Köszi,

megnézem majd.

0
0
konorti képe

Na kipróbáltam, lehet hogy én vagyok béna, de egy rohadt hosszú listát kaptam valami Krumo scriptről, meg annak a css fájlát listázza ki. Valami ilyesmi:

*/

/* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- */

ul.krumo-node {
margin: 0px;
padding: 0px;
}
ul.krumo-node ul {
margin-left: 20px;
}
* html ul.krumo-node ul {
margin-left: 24px;
}

0
0
konorti képe

Nincs valakinek valami ötlete, aki már használta ezt a devel modult?

üdv,
Norbert

0
0
hosszu.kalman képe

A user_load() tömböt vár nem pedig integert és azt az eseményt szerintem felesleges kezelni amikor meglévő tartalmat szerkeszt, mert azt már a node tárolja.
A $user objektumot pedig ki lehet írni a devel modullal a felhasználói oldalon a Dev load füllel, és akkor nem kell varázsolni a php blokkal ;)

Tehát szerintem ennyit kellene kb csinálni:

global $user;
 
return $user->profile_mezoneve;
0
0
konorti képe

Köszi a választ a dev load fül tényleg működött, viszont még mindig nem sikerült a default értéket beállítanom. Nem tudom mi lehet a gond, a következő kóddal próbálom:

global $user;
return array(
0 => array("value" => $user->profile_nev),
);

ha a profile_nev-et kicserélem name-re, amely a rendes username-t tárolja akkor működik, csak az én általam hozzáadott mezőre nem.

0
0
konorti képe

Rájöttem:)
Előtte meg kellett hívnom ezt a függvényt.
profile_load_profile($user);

0
0