MyBB.de Forum

Normale Version: Events on Index Plugin - Weitere Modifikationen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Moin Community,

Ich habe einige Verständnisprobleme zum Plugin System und zur generellen Funktion von Funktionen (Oh mann) im MyBB und hoffe ihr könnt mir da weiterhelfen.

Ich fang mal an mit den Hooks, soweit ist das einfach und erspart einem Änderungen an den Basisdateien - Nur das Problem ist, dass ich irgendwie auf dem Schlauch stehe und es nicht auf die Reihe bekomme, dass etwas angezeigt wird.

PHP-Code:
$plugins->add_hook('calendar_event_start''join_inoff'); 

heißt ja nichts weiter als dass die Funktion "join_inoff" aus meinem Plugin an dem Hook "calendar_event_start" ausgeführt wird. Soweit so gut. Problem ist nur das der Code

PHP-Code:
if ($mybb->user['uid'] > 0) {
        
$arrPartiUsers explode(","$event['additionalusers']);
        if(!
in_array($mybb->user['uid'],$arrPartiUsers)) {
            eval(
"\$join_event = \"".$templates->get("calendar_event_signup")."\";");
        } else {
            eval(
"\$join_event = \"".$templates->get("calendar_event_signoff")."\";");
        }
    } 

am Hook nicht richtig ausgeführt wird, sondern nur, wenn ich die Calendar.php ab Zeile 1373 mit dem obrigen Code modifiziere. Wo liegt mein Gedankenfehler?
(Die angegebenen Templates existieren und die entsprechende Variable ist im Template "calendar_event_editbutton" eingebunden)

- - -

Nächstes Problem:
Lediglich eine Idee die ich verifizieren möchte, bevor ich anfange, wild drauf los zu programmieren: Wie stelle ich es an, dass ich mit dem Plugin eine GET Variable abgreife, die dann im Plugin abgegriffen wird und die Funktion dann
Datenbank Querys ausführt:

Ich dachte mir, dass ich einen weiteren Hook am index_start plaziere, der dann prüft, ob Variable "signin" mit 1 oder 0 belegt ist und dann Datenbank queries ausführt. Weiterhin lasse ich dann ein Template mitparsen, die dann eine Meldung im oberen Bereich von MyBB ausgibt: Erfolgreich bei Event xyz an/abgemeldet, so wie bei neuer PN etc.

Finde ich diese Variable dann im $mybb->input['signin']?

- - -

Frage: Lassen sich mit $query = $db->simple_select(); nur einzelige Querys ausführen oder bin ich einfach zu doof, dass richtig zu verwenden?

- - -

Anbei ein Screen wie es momentan aussieht
(20.09.2008, 13:05)Spiro schrieb: [ -> ]Wo liegt mein Gedankenfehler?
Ich weiß nicht, wie die Funktion aussieht, aber ich denke, dass die globals am Anfang nicht oder falsch gesetzt sind.
PHP-Code:
global $mybb$event$join_event
(20.09.2008, 13:05)Spiro schrieb: [ -> ]Finde ich diese Variable dann im $mybb->input['signin']?
Ja.
(20.09.2008, 13:05)Spiro schrieb: [ -> ]Frage: Lassen sich mit $query = $db->simple_select(); nur einzelige Querys ausführen oder bin ich einfach zu doof, dass richtig zu verwenden?
Die Funktion simple_select() ist nur dafür da, eine einfache Abfrage aus einer Tabelle auszuführen. Wenn du umfangreichere Queries benutzen musst, musst du query() benutzen.
So sieht das komplett aus:

PHP-Code:
function sign_inoff() {
    
    global 
$db$mybb$templates$index_events$lang$theme$event;
    
    if (
$mybb->user['uid'] > 0) {
        
$arrPartiUsers explode(","$event['additionalusers']);
        if(!
in_array($mybb->user['uid'],$arrPartiUsers)) {
            eval(
"\$join_event = \"".$templates->get("calendar_event_signup")."\";");
        } else {
            eval(
"\$join_event = \"".$templates->get("calendar_event_signoff")."\";");
        }
    }


Hab die Funktion nochmal umbenannt, nicht wundern - so sieht das aus - der fehler liegt bei den eval funktionen - der rest der variablen ist richtig belegt, auch werden die templates richtig gelesen, sie schaffen es aber irgendwie nicht mehr ins endtemplate :>
(20.09.2008, 13:17)Michael schrieb: [ -> ]Ich weiß nicht, wie die Funktion aussieht, aber ich denke, dass die globals am Anfang nicht oder falsch gesetzt sind.
PHP-Code:
global $mybb$event$join_event
Sonst kannst du $join_event nicht benutzen.
(20.09.2008, 14:35)Dragon schrieb: [ -> ]
(20.09.2008, 13:17)Michael schrieb: [ -> ]Ich weiß nicht, wie die Funktion aussieht, aber ich denke, dass die globals am Anfang nicht oder falsch gesetzt sind.
PHP-Code:
global $mybb$event$join_event
Sonst kannst du $join_event nicht benutzen.

Mhm - okay - ich glaub ich habs nun begriffen - objektorientiert Smile

Vielen Dank - die anderen Fragen hat Michael ja bereits beantwortet.

Spiro
Es gab doch mal ein Plugin, wo die anstehenden Geburtstage
angezeigt wurden, da ich dies für MyBB 1.4.(x) noch nicht gefunden
habe, frage ich mich ob man z.B dieses "Zweckentfremden" könnte ?

Oder vielleicht noch besser, gibt bereits ein neues PlugIn für die
Geburtstagserinnerung der nächsten X Tage ?
Ich habe bisher noch keins gefunden und wäre glücklich wieder diese
Funktion im Forum zu haben.
Hallo eneR,

siehe > "Events on index".
(23.09.2008, 13:18)linwinman schrieb: [ -> ]Hallo eneR,

siehe > "Events on index".

Hi linwinman,

danke für den Link, ist aber leider nicht das was ich meinte.
Eigentlich wollte ich wieder ein PlugIn, in dem man die Zeit (Tage)
einstellen kann, wann der Geburtstagskandidat sein Fest feiert.

Ich weis.... ich habe mich oben nicht richtig ausgedrückt...Sorry !

Quasi: in X Tagen hat der oder der Geburtstag und dies wurde damals
mit einem Kerzentörtchen noch verschönert.
Ich weis auch nicht mehr wer der Author des Plugin´s war, ich hoffe
er macht es kompatibel zur 1.4.X...
Zitat:Ich weis auch nicht mehr wer der Author des Plugin´s war
der Autor ist i. d. R. im "_info"-Array angegeben. Wink

aber: ... ein' hab' ich noch: > Ereignisse auf Startseite 2.0 - vllt. ist es das, was du suchst.
(23.09.2008, 20:04)linwinman schrieb: [ -> ].....aber: ... ein' hab' ich noch: > Ereignisse auf Startseite 2.0 - vllt. ist es das, was du suchst.

Hi linwinman,

danke für Deine Anstrengungen.... diese Plugin habe ich schon am laufen, es bringt
leider die Geburtstage nicht zum Vorschein. Aber an für sich ist es top.
Seiten: 1 2