[gelöst] Individuelle PDF
am 18.09.2009 - 14:10 Uhr in
Auf meinem Portal gibt es ungefähr 100 Benutzer. Ein eingeloggter Benutzer kann eine Seite betrachten, auf welcher ein Link zu einer PDF Datei existiert - nämlich zur Standard PDF Datei.
Nun soll es manche Benutzer geben, bei denen der Link individuell sein soll, also jeder eine andere PDF ausgeliefert bekommt. Dazu hab ich mir folgendes überlegt: Ich hab in den Profilen ein verstecktes URL-Feld angelegt namens "profile_eigenepdf". Standardmäßig ist das Feld leer. Wenn der Benutzer aber eine eigene PDF bekommt, so fülle ich in dieses Feld den Pfad zu seiner individuellen PDF.
Nun muss ich mir einen PHP Codeschipsel basteln der mir diese Abfrage macht. Aber wie frage ich ab, ob dieses Feld leer ist oder ob es einen Inhalt hat? Wie kann ich auf das Feld zugreifen?
Vielen Dank schonmal im Voraus!
- Anmelden oder Registrieren um Kommentare zu schreiben
$user
am 18.09.2009 - 15:03 Uhr
Das Feld müsste als Attribut im user-Objekt auftauchen und sollte sich somit mittels
<?php
global $user;
if ($user->profile_eigenepdf) {
print $user->profile_eigenepdf;
}
?>
In der user-profile.tpl.php abfragen lassen.
hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Vielen Dank erstmal! Aber
am 19.09.2009 - 13:57 Uhr
Vielen Dank erstmal! Aber was meinst du mit user-profile.tpl.php?
Ich hab nun bei der entsprechenden Seite die Eingabemethode auf PHP gestellt und einfach mal den unten angegebenen Kode eingefügt. Egal was ich mache, es kommt immer nur die standard.pdf. Was mach ich falsch?
<?php
global $user;
if ($user->profile_eigenepdf) {
print $user->profile_eigenepdf;
}
?>
else {
print "http://www.domain.de/sites/files/standard.pdf";
}
Profilfelder
am 19.09.2009 - 23:17 Uhr
Wie hast Du denn das Feld angelegt?
Über das Standard Profilmodul oder ContentProfile?
Bei Ersterem müsste das Feld eigentlich gesetzt sein, bei Letzterem musst Du die Daten erst mit der Funktion
content_profile_load
nachladen.hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ich habe einfach in der
am 20.09.2009 - 09:58 Uhr
Ich habe einfach in der Benutzerverwaltung bei Profile ein neues Feld angelegt (also ersteres). Auch ein
<?php
print $user->profile_telefon;
?>
Bringt nix. Hab es mit zwei Benutzern und verschiedenen Feldern probiert, die Ausgabe ist immer nix.
debug
am 20.09.2009 - 12:13 Uhr
Mach doch mal Folgendes:
<?php
drupal_set_message('<pre>'. var_export($user, 1) .'</pre>');
?>
und schau, was da so alles steht.
Ich frag mich immer noch, wo genau Du den Code eigentlich einfügst. Vermutlich ist in
$user
an dieser Stelle gar nicht das gewünschte Benutzerobjekt enthalten.hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ich öffne eine Seite,
am 20.09.2009 - 12:31 Uhr
Ich öffne eine Seite, klicke auf bearbeiten. Dann trage ich in den Textkörper deinen Kode ein (unten im Eingabeformat habe ich PHP ausgewählt). Ich speichere und es kommt als Ausgabe:
* NULL
global $user
am 20.09.2009 - 14:00 Uhr
Ohne ein
<?php
global $user
?>
hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Da wirst du wohl recht haben
am 20.09.2009 - 16:27 Uhr
Da wirst du wohl recht haben :)
Habs nun mal mit dem Admin gemacht und da sieht es so aus:
stdClass::__set_state(array(
'uid' => '1',
'name' => 'admin',
'pass' => 'X',
'mail' => 'X',
'mode' => '0',
'sort' => '0',
'threshold' => '0',
'theme' => '',
'signature' => '',
'signature_format' => '0',
'created' => '1253120810',
'access' => '1253460251',
'login' => '1253443382',
'status' => '1',
'timezone' => '3600',
'language' => 'de',
'picture' => '',
'init' => 'X',
'data' => 'a:2:{s:7:"contact";i:0;s:13:"form_build_id";s:37:"form-0c0ea8f2d9d081b6d8abaa6d79fcb53b";}',
'sid' => 'c7cac4055e263e8c18872f2c659ad130',
'hostname' => '91.48.6.159',
'timestamp' => '1253460280',
'cache' => '0',
'session' => '',
'contact' => 0,
'form_build_id' => 'form-0c0ea8f2d9d081b6d8abaa6d79fcb53b',
'roles' =>
array (
2 => 'authenticated user',
8 => 'Admin',
),
))
Was sagt dir das nun?
Profil
am 20.09.2009 - 21:20 Uhr
Was sagt dir das nun?
Genau das, was ich vorher bereits erwähnte: die Daten hängen per default nicht am Nutzerobjekt und müssen in diesem Fall erst manuell nachgeladen werden.
siehe profile_load_profile
hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Vielen Dank! Nun klappts!
am 21.09.2009 - 08:31 Uhr
Vielen Dank! Nun klappts!
<?php
global $user;
profile_load_profile($user);
print $user->profile_eigenepdf;
?>