MyBB.de Forum

Normale Version: Reihenfolge der Hooks?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hi!

Ich hätte eine Frage zu den Hooks. Wenn ein Hook gesetzt wird, wird dann erst der Code vom Plugin ausgeführt, und dann der Code der von MyBB an sich stammt, oder erst der Code von MyBB, und dann die Plugins? Denn es kann ja eine Bild-Begrenzung geben, nun könnte man doch eine Plugin-Erweiterung machen, um diese für manche User aufzuheben, oder?

LG
Die Hooks ersetzen keinen Code von MyBB, sondern das wird einfach zusätzlich aufgerufen. Sozusagen als Funktionsaufruf mitten im MyBB-Code. Es ist also kein so ausgefeiltes Hook-System wie manche anderen Softwares haben, die über solche Hooks Aktionen erlauben, verbieten, abfragen wer fuer die Aktion zuständig ist, mitteilen daß die Aktion stattgefunden hat, etc.

Es gibt teilweise Hooks für davor und danach (die _start _end Hooks), aber oft muß man einfach Glück haben, daß ein Hook an einer Stelle aufgerufen wird, wo man seine eigene Aktion einschieben kann. Und da muß man einfach den MyBB-Code von der entsprechenden Codestelle studieren und sich was überlegen.
@frostschutz Vielen Dank! Denkst du denn, es ist möglich, per Plugin die Bildbegrenzung für manche User zu erhöhen? Btw, wo wird die Bilder-Grenze "benutzt"? Beim parsen eines Posts?
Was meinst Du denn mit "Bildbegrenzung"? Die Anzahl der Anhänge, die ein User in einen Beitrag einbinden kann? Das müsste dann ja bereits bei der newthread.php, newreply.php und editpost.php abgefragt werden. $settings['maxattachments'] wäre da meiner Meinung nach zu berücksichtigen.
Um die Bildergrenze können sich ja normale User schon herummogeln (wenn die Einstellung aktiv ist, daß kurz hintereinander gemachte Beiträge zusammgefügt werden). Da kann man dann einfach in einem zweiten Beitrag weitere Bilder nachschicken.

Spricht was dagegen die Grenze einfach allgemein höher anzusetzen?

Ansonsten, evtl. mit dem global_start Hook

PHP-Code:
global $mybb$settings;

if( (
THIS_SCRIPT == "newreply.php" || THIS_SCRIPT == "newthread.php" || THIS_SCRIPT == "editpost.php")
    && 
$mybb->user['uid'] == 123)
{
    
$settings['maxattachments'] = 42;


Die maxattachments sind in diesen drei Dateien fest verankert, daher gibts keinen direkten Hook dafür. Und die $settings Variable zu verändern, fällt schon unter "Tricks"... Smile

Wenn du kein eigenes Plugin dafür schreiben willst, kannst auch mein Hooks-Plugin dafür hernehmen.
@Jockl
@frostschutz
Vielen Dank für die schnellen Antworten Smile!

Ja, ich meine die Bildergrenze, um die man sich quasi herummogeln kann; Also die Bilder in [img]-Tags - Allerdings will ich sie nicht global hochsetzen, und auch nicht für eine bestimmte Gruppe, sondern für bestimmte User / Posts, welche dynamisch wechseln können :/ ... Ich habe bereits versucht, irgendwo in der Cross-Reference etwas zu finden, aber bis jetzt ergebnislos xD...

LG
Dann müsstest Du vermutlich mit einem Plugin arbeiten, das sich an die bereits von frostschutz erwähnten Hooks anhängt (editpost_start, newreply_start, newthread_start). Die User-ID, die auch variabel gehalten werden kann, hat frostschutz ja schon in dem Code eingebaut. Das würde sich auch noch um die thread-ID ergänzen lassen. Bei newthread_start existiert die aber noch nicht...
@Jockl Vielen Dank! Dann werde ich es mir mal angucken.

Allerdings vorerst eine Frage: Ich habe mir mal $settings ausgeben lassen, und dabei dies hier gefunden:
[maxpostimages] => NeZahl

Könnte man jetzt nicht mit der von frostschutz oben erwähnten Methode statt maxattachments einfach maxpostimages verändern?

LG
Kommt darauf an, was Du willst. $settings['maxpostimages'] beinhaltet, wenn ich mich recht erinnere, alle img-Tags und auch Smilies. $settings['maxattachments'] bezieht sich nur auf die Attachments.
(06.04.2013, 20:32)Jockl schrieb: [ -> ](editpost_start, newreply_start, newthread_start)

Die reichen nicht, daher der Vorschlag mit global_start.

maxpostimages wird da wohl auch funktionieren, wobei der posts Datahandler theoretisch auch an anderen Stellen aufgerufen werden kann. Da müsste this_script weggelassen werden.

Da würde ich dann eher zu einer Codeänderung im post datahandler (verify_images_count) tendieren.
Seiten: 1 2 3 4