Übergabe eine Variablen an Hook
am 27.01.2011 - 20:56 Uhr in
Hallo!
Ich beschäftige mich noch nicht allzu lange mit Drupal7, daher ist das mit den Hooks noch nicht so klar.
Meine Frage: Ich möchte ein Argument aus der URL auslesen, mein Aufruf: example.com/member/frosch
Im Menü-Hook kann ich das Argument weitergeben an die Funktion "member_anzeige".
function member_menu(){
$items['member/%'] = array(
'page callback' => 'member_anzeige',
'page arguments' => array(1),
usw.
In der Funktion member _anzeige kann ich nun das Argeument "frosch" erhalten und verarbeiten.
function member_anzeige($wert){
Als $wert erhalte ich "frosch" und kann damit arbeiten. Soweit alles klar.
Nun möchte ich (oder besser muß ich) dieses Argument "frosch" in einem Block anzeigen.
Dazu verwende ich die Hooks
function member_block_info() {...
und
function member_block_view($block_name = '') {...
Die letzte Funktion gibt ein Array mit dem Titel und dem Inhalt der im Block erscheinen soll zurück.
Nun soll ja (ich vereinfache das mal) der Block das Argument "frosch" anzeigen.
Wie übergebe ich das Argument bzw, die Variable "frosch" an den Block-Hook.
Ich habe schon versucht mit $user oder Sessions etwas zu machen, hat aber nicht funktioniert.
Kann mir bitte jemand auf die Sprünge helfen?
Vielen Dank!
- Anmelden oder Registrieren um Kommentare zu schreiben
hier
am 27.01.2011 - 21:05 Uhr
hier http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/arg/7
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Danke ...
am 27.01.2011 - 21:23 Uhr
Hallo Tobias,
danke, das mir arg() funktioniert, nur löst noch nicht ganz mein Problem.
Wenn ich dann z.b. auf Kontakt oder Home klicke ist der Blockinhalt wieder verschwunden, er sollte aber für die gesamte Gast-Session erhalten bleiben.
Eine Idee?
Danke!
Dann speicher doch den Wert
am 27.01.2011 - 21:44 Uhr
Dann speicher doch den Wert auch in der Session-Variable.
Hallo ...
am 27.01.2011 - 21:50 Uhr
ok, wie genau mache ich das?
Danke!
<?php$_SESSION['name_deines_m
am 27.01.2011 - 21:59 Uhr
<?php
$_SESSION['name_deines_moduls']['wert'] = $wert;
?>
Nur so als Beispiel.
Danke ...
am 28.01.2011 - 00:03 Uhr
ja, mit Session-Variablen kann man das speichern, gestaltet sich aber doch in verschiedenen Kontexten recht kompliziert.
Gibt es nicht noch eine elegantere Lösung?
Danke!
Erzähl doch erstmal dein
am 28.01.2011 - 00:34 Uhr
Erzähl doch erstmal dein Problem bzw. Anforderung. Und dann kann man dir besser helfen ggf. sogar ohne programmieren.
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Hallo ...
am 28.01.2011 - 09:42 Uhr
Tobias,
das technische Problem ist ja in Eingangsartikel, denke ich, recht ausführlich beschrieben.
Die Site soll folgendes realisieren. Besucher können sich registrieren und erhalten einen Link mit welchem sie andere Personen einladen können.
Wenn ein neuer Besucher sich dann (über diesen Link) registriert vermerkt das System wer ihn eingeladen hat. Das habe ich über eine zusätzliche Spalte in der Tabelle users reaslisiert.
In der neuen Spalte soll bei Registrierung die UID des Empfehlenden eingetragen werden. Wie mache ich das eigentlich? Einen Hook?
Nun möchte ich das so organisieren, dass wenn ein Besucher auf den Einladungslink mit der URL example.com/member/frosch klickt, die Seite in einem Block die Daten des Empfehlers mit dem Username "frosch" (Name, evtl. eMail) anzeigt. Dann weiß der Besucher unter wem er sich registriert.
Ich hoffe, ich habe mich verständlich ausgedrückt.
Danke!
ich würde mich eher hier
am 28.01.2011 - 11:36 Uhr
ich würde mich eher hier einhaken http://drupal.org/node/671818, zum D7 Port des Invite Moduls.
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Hallo ...
am 28.01.2011 - 14:46 Uhr
Tobias, danke für den Tip.
Das Invite-Nodul komm meinem Vorhaben schon recht nahe, leider gibt es das noch nicht für D7.
Es ist da von einem Patch auf D7 die Rede, aber wie kann ich das Patch durchführen, auf meinem PC habe ich Windows und auf meinem Provider-Server keinen Shell-Zugang?
Danke!
Gruß Rüdiger
Dann patchst du das Modul
am 28.01.2011 - 15:10 Uhr
Dann patchst du das Modul lokal und überführst es zur gegebener Zeit auf dem Server. Wie man patcht steht hier im Handbuch oder http://drupal.org/patch.
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Danke ...
am 28.01.2011 - 19:33 Uhr
Tobias,
hab das versucht lokal zu patchen (mit Cygwin), aber da kommen mehrere Fehlermeldungen.
Ich muß wohl warten bis die 7er Version rauskommt, oder?
Gruß Rüdiger
Der Port ist ja auch nicht
am 28.01.2011 - 19:59 Uhr
Der Port ist ja auch nicht fertig, kannst ruhig mithelfen.
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Hallo ...
am 28.01.2011 - 21:14 Uhr
Tobias, gute Idee, aber ich glaube ich bin noch nicht ganz soweit ...
:-))
Gruß Rüdiger