Objekt $account von bestimmten User auslesen
Eingetragen von 1000 (764)
am 28.02.2012 - 23:12 Uhr in
am 28.02.2012 - 23:12 Uhr in
<?php
if ($account = user_load($nodeuid)) {
$roles = $account->roles;
if (in_array('Standardprofil', $roles))
{
print $node->field_a100[0]['view'];
}
elseif (in_array('Unternehmensprofil', $roles))
{
?>
<a href="http://www.nochnichtfertigx1.de/user/<?php print $nodeuid; ?>">
<?php
print $node->field_a100[0]['view'];?></a>
<?php
}
}
?>
Mit dem obigen Code habe ich eine Abfrage, die, wenn man sich auf dem jeweiligen Node befindet, eine Weiche für die UserNode Rollen ermöglicht. Die Weiche funktioniert auch wunderbar. Nur mit
print $node->field_a100[0]['view'];
Wird ein Feld ausgegeben, welches dem jeweilig besuchten Node zugehörig ist. Nun möchte ich aber auf die $node Variablen eines beliebigen Users zugreifen.
etwa
print $account->$node->field_a100[0]['view'];
oder so ähnlich
- Anmelden oder Registrieren um Kommentare zu schreiben
Die Frage ist doch, wo soll
am 28.02.2012 - 23:18 Uhr
Die Frage ist doch, wo soll die UID herkommen? Bei einer Node hast Du die UID des Autor. Des weiteren kannst Du noch über das User-Objekt auf die UID des Betrachters zugreifen. Welche UID brauchst Du denn? Ich verstehe den Sinn des ganzen nicht.
Beste Grüße
Werner
Ich habe eine
am 28.02.2012 - 23:42 Uhr
Ich habe eine Suchergebnisliste, wobei viele Suchergebnisse (Nodes) vieler verschiedener User angezeigt werden. Die jeweilige UserNodeUID's habe ich schon. Nun möchte ich in der Suchergebnisliste zu jedem einznen Suchergebnis bestimmte nodespezifische Angaben anzeigen wie z.B.
print $node->field_a100[0]['view'];
Nur eben die der betreffenden NodeUid des jeweiligen publishers. Mit
if ($account = user_load($nodeuid)) {
habe ich schon einmal das Objekt §account des jeweiligen Users. Nur wie ist die korrekte Schreibweise, um dazugehörige $node Daten anzuzeigen? Ansonsten muss ich die Informationen aus der Datenbank ziehen. Funktioniert zwar auch aber so wäre es sicherlich einfacher. Die jeweilige UID habe ich mit einer While-do Schleife jeweils einzeln aus der node ausgelesen. Daher kenne ich die zugehörigen Uid#s
Wenn mich nicht alles täuscht könnte
print $account->field_a100[0]['view'];
evt. funktionieren. Ich probiere es gleich mal aus. Danke für deine Mühe
Gib Dir doch mit print_r die
am 28.02.2012 - 23:40 Uhr
Gib Dir doch mit print_r die Struktur von $account einmal aus. Dann siehst Du sofort, wie Du die einzelnen Felder ansprechen kannst. ich habe mir für solche Zwecke eine kleine Hilfsfunktion geschrieben, die mir solche Info in eine Datei schreibt, damit ich mir das in Ruhe ansehen kann.
Beste Grüße
Werner
Sehr hilfreich. Ich habe das
am 29.02.2012 - 00:05 Uhr
Sehr hilfreich. Ich habe das mal gemacht. Leider ist in diesem Objekt nicht das Feld Benutzerreferenz vorhanden. Konnte den Eintrag nicht finden. Dann führt wohl kein Weg daran vorbei. die Daten direkt aus der Datenbank zu beziehen. Das kann natürlich auch nicht dort enthalten sein. Es ist das Objekt der jeweiligen UID. Das hat natürlich nichts mit den erstellten Nodes des Users mit dieser UID zu tun. Sorry..
Besten Dank!
Wenn Du bei Drupal 6 das
am 29.02.2012 - 00:16 Uhr
Wenn Du bei Drupal 6 das User-Profile benötigst, gibt es dazu auch eine passende Funktion, die, wenn ich mich richtig erinnere, load_profile(UID) oder profile_load(UID) heißt. Da mußt Du Dir das Profile-Modul einmal genauer ansehen. Damit solltest Du dann die entsprechenden Informationen finden.
Beste Grüße
Werner
Um genau zu sein lädt man in
am 29.02.2012 - 10:08 Uhr
Um genau zu sein lädt man in D6 das Profil z. B. so:
<?php
global $user;
profile_load_profile($user);
?>
Danach stehen im User-Objekt die Profilfelder zur Verfügung.
Allerdings habe ich den Sinn der Sache immer noch nicht ganz verstanden. Du hast ein User-Objekt und willst damit an einen Node kommen. Haben die User bei dir nur einen Node?