Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

[gelöst] Daten aus Profil lesen

Eingetragen von ronald (3857)
am 02.07.2014 - 07:37 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Ich habe im Userprofil ein neues Feld angelegt, weil ich dies für ein Modul benötige.
Dieses Feld darf mehrfach (5 mal) genutzt werden.

Schreibe ich dort etwas hinein, erscheint es auch im Userprofil.

Wie komme ich aber in meinem Modul an dieses Feld heran?

Ich habe gehofft, dass es im $user Objekt landet. Tut es aber nicht.

‹ Symfony Module schon in Drupal 7 [gelöst] Daten aus Profil lesen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Ronald, was gibt denn das

Eingetragen von maen (547)
am 02.07.2014 - 08:34 Uhr

Hi Ronald,

was gibt denn das devel Modul aus? Da es angezeigt wird!???, sollte es im render erscheinen oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

seltsame Geschichte

Eingetragen von ronald (3857)
am 02.07.2014 - 09:19 Uhr

Ich habe am Anfang des Moduls global $user stehen.

Dennoch bekomme ich eine Fehlermeldung, wenn ich $user anspreche (variable nicht gefunden).

Schaue ich mir das Profil an, finde ich unter den Userdaten field_meinevariable-und-0-value und darin meinen Feldinhalt.

Spreche ich aber $user['field_meinevariable']['und'][0]['value'] an, bekomme ich die Felermeldung, dass $user unbekannt wäre.

In Objektschreibweise $user->field_meinevariable ... lässt es sich auch nicht ansprechen.

Ich mache irgendetwas grundlegendes falsch.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dass Du global $user

Eingetragen von maen (547)
am 02.07.2014 - 09:37 Uhr

Dass Du global $user verwendest ist richtig. Nutzte Dir aber nur wenig wenn Du diese nicht innerhalb deiner Funktion aufrufst.

Wahrscheinlich hast Du folgendes gemacht:

<?php

...
global
$user;
...

function
bla(...){
$X = $user->...
[
oder]
$X = $user[...]...
}

?>

Stattdessen:

<?php
function bla(...){
global
$user;
$X = $user->name;
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

tja - ich dachte das Schlüsselwort global

Eingetragen von ronald (3857)
am 02.07.2014 - 10:10 Uhr

reicht aus um es modulweit global zu definieren.

Ich probiere es nachher aus.

OK - ich habe zwar das Userobjekt, kann aber dort nicht auf zusätzliche Variablenfelder zugreifen.
Diese werden offensichtlich nicht mitgeladen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

global $user st sogar

Eingetragen von maen (547)
am 02.07.2014 - 09:59 Uhr

global $user st sogar systemweit definiert, sonst könntest Du sie gar nicht aufrufen. Kommt aus dem bootstrap von drupal.
Aber das ist eine php Frage, keine drupal Frage. Du musst die Variablen innerhalb einer Funktion entweder definieren, bspw.

<?php

function bla(){
$x = ""; //string
$x = 0; // Zahl
...
}

?>

oder Du musst sie in deiner Funktion aufrufen.
bspw.
<?php

function bla(){
$x = function blubb(); //aus anderer Funktion aufgerufen
global $user; // Objekt User aufgerufen
...
}

?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

ok - klappt dennoch nicht

Eingetragen von ronald (3857)
am 02.07.2014 - 10:13 Uhr

Ich hatte die Hoffnung, dass dies Drupal mir abnimmt.

Aber ist wurst, weil im $user offenbar die bundled fields nicht enthalten sind, und gesondert geladen werden müssen.

Dafür gibt es aber doch sicherlich eine Standardmethode im core, oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

dpm ($user);

Eingetragen von maen (547)
am 02.07.2014 - 10:26 Uhr

dpm ($user); ???
drupal_set_message(print_r($user,1)); ???

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das kommt raus

Eingetragen von ronald (3857)
am 02.07.2014 - 12:32 Uhr

Sicherheitsrelevante Inhalte habe ich verändert

uid (String, 1 characters ) 1 name (String, 5 characters ) admin pass (String, 55 characters )Hier steht das verschlüsselte Passwort, das niemanden etwas angehtmail (String, 20 characters ) xxxx theme (String, 6 characters ) bartik signature (String, 0 characters ) signature_format (String, 13 characters ) filtered_html created (String, 10 characters ) xxxx3 access (String, 10 characters ) xxxx login (String, 10 characters ) xxxxx status (String, 1 characters ) 1 timezone (String, 12 characters ) Europe/Paris language (String, 2 characters ) de picture (String, 1 characters ) 0 init (String, 20 characters ) xxxxx data (Array, 7 elements)
ckeditor_default (String, 1 characters ) t | (Callback) t(); ckeditor_show_toggle (String, 1 characters ) t | (Callback) t(); ckeditor_width (String, 4 characters ) 100% ckeditor_lang (String, 2 characters ) en ckeditor_auto_lang (String, 1 characters ) t | (Callback) t(); contact (Integer) 1 overlay (Integer) 1 sid (String, 43 characters ) xxxxx ssid (String, 0 characters ) hostname (String, 15 characters ) meine aktuelle IP timestamp (String, 10 characters ) xxxxx cache (String, 1 characters ) 0 session (String, 0 characters ) roles (Array, 2 elements)

Das Zusatzfeld blaccounts ist nicht enthalten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Komisch. Gehe mal auf deinen

Eingetragen von maen (547)
am 02.07.2014 - 11:23 Uhr

Komisch. Gehe mal auf deinen account, editiere ihn und wirf das devel modul an. Da MUSS das Feld drin sein.
Also devel ist aktiviert nehme ich an, sonst vorher devel laden. Ich sehe jedes Feld bei mir. Egal welches Projekt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

soe siehts aus, wenn ich im Profil bin

Eingetragen von ronald (3857)
am 02.07.2014 - 12:30 Uhr

So schauts im Profil aus.
Da ist das Element zu finden.
Nur, wie greife ich von einem anderen Modul aus darauf zu?

content (Array, 5 elements)
blorderchk_resultbox (Array, 5 elements)
#markup (String, 5 characters ) admin #contextual_links (Array, 1 element) block (Array, 2 elements) 0 (String, 28 characters ) admin/structure/block/manage 1 (Array, 2 elements) 0 (String, 10 characters ) flöd 1 (String, 9 characters ) resultbox #block (Object) stdClass bid (String, 2 characters ) 98 module (String, 10 characters ) blorderchk delta (String, 9 characters ) resultbox theme (String, 6 characters ) bartik status (String, 1 characters ) 1 weight (String, 1 characters ) 0 region (String, 7 characters ) content custom (String, 1 characters ) 0 visibility (String, 1 characters ) 0 pages (String, 0 characters ) title (String, 0 characters ) cache (String, 2 characters ) -1 subject (String, 26 characters ) Results of the order query #weight (Integer) 1 #theme_wrappers (Array, 1 element) 0 (String, 5 characters ) block system_main (Array, 13 elements)
field_fld (Array, 16 elements)
#theme (String, 5 characters ) field #weight (Integer) 1 #title (String, 10 characters ) fldlbl #access (Boolean) TRUE #label_display (String, 5 characters ) above #view_mode (String, 4 characters ) full #language (String, 3 characters ) und #field_name (String, 16 characters ) field_tfld #field_type (String, 4 characters ) text #field_translatable (String, 1 characters ) 0 #entity_type (String, 4 characters ) user #bundle (String, 4 characters ) user #object (Object) stdClass
uid (String, 1 characters ) 1 name (String, 5 characters ) admin pass (String, 55 characters ) gelöschtes Passwortmail (String, 20 characters ) xxxx theme (String, 6 characters ) bartik signature (String, 0 characters ) signature_format (String, 13 characters ) filtered_html created (String, 10 characters ) xxxxx access (String, 10 characters ) xxxxx login (String, 10 characters ) xxxxx status (String, 1 characters ) 1 timezone (String, 12 characters ) Europe/Paris language (String, 2 characters ) de picture (NULL) init (String, 20 characters ) xxxxe data (Array, 7 elements)
ckeditor_default (String, 1 characters ) t | (Callback) t(); ckeditor_show_toggle (String, 1 characters ) t | (Callback) t(); ckeditor_width (String, 4 characters ) 100% ckeditor_lang (String, 2 characters ) en ckeditor_auto_lang (String, 1 characters ) t | (Callback) t(); contact (Integer) 1 overlay (Integer) 1 roles (Array, 2 elements)
2 (String, 18 characters ) authenticated user 3 (String, 13 characters ) administrator field_counter (Array, 0 elements) field_fld (Array, 1 element)
und (Array, 1 element)
0 (Array, 3 elements)
value (String, 7 characters ) xxxx format (NULL) safe_value

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da ich gerade an einem

Eingetragen von wla (9461)
am 02.07.2014 - 11:48 Uhr

Da ich gerade an einem ähnlichen Problem arbeite, habe ich mich an eine Funktion erinnert: user_load($uid). Mit

<?php
 
global $user;
 
$account = user_load($user->uid);
?>
kommst Du an alle Felder, die Du auch auf der User-Seite mit Devel siehst. global $user; alleine reicht also nicht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorry, habe ich vergessen

Eingetragen von maen (547)
am 02.07.2014 - 11:53 Uhr

Sorry, habe ich vergessen zuschreiben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Uff - geschafft

Eingetragen von ronald (3857)
am 02.07.2014 - 12:26 Uhr

dann will er genau diese Form:

$account->field_blaccounts['und'][0]['value']

  • Anmelden oder Registrieren um Kommentare zu schreiben

damit das ganze SISCHER ist:

Eingetragen von maen (547)
am 02.07.2014 - 12:45 Uhr

damit das ganze SISCHER ist: field_get_items ist zu bevorzugen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

dann brauche ich den Load nicht?

Eingetragen von ronald (3857)
am 02.07.2014 - 13:26 Uhr

wie sieht dann der Aufruf aus?

Wenn es mehrere Einträge gibt, erhalten ich dann ein Array der Werte?

Ich wurde aus der Beschreibung der API nicht ganz schlau, und habe gerade keine Zeit zum Probieren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Lieber Ronald

Eingetragen von maen (547)
am 02.07.2014 - 13:50 Uhr

irgendwann musst Du schon mal ins eigenständige Lernen kommen!

Hier ein Beispiel:
http://www.drupalcenter.de/node/49117

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 17 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 17 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 24 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association