canEditPost() manipulieren Thread-Klasse

  • Hallo,


    gibt es irgendeine Möglichkeit die Methode canEditPost() in der Thread.class.php zu manipulieren? Ich wüsste nicht, wie ich da über ein Event hinkommen sollte. Scheinbar sind dort keine Events vorgesehen?


    Gruß

    JAY

  • itsmeJAY

    Changed the title of the thread from “canEditPost Thread-Klasse” to “can Edit Post manipulieren Thread-Klasse”.
  • Hi SoftCreatR


    Ich möchte im Grunde in einem Plugin eine neue Bedingung hinzufügen, welche false returnen könnte und der Benutzer den jeweiligen Beitrag somit nicht editieren darf. Somit möchte ich die bestehende Logik erweitern.


    Hättest du da einen Vorschlag?


    Gruß

    JAY

  • Ich hole noch einmal etwas weiter aus:


    Was will ich tun?

    Ich möchte Benutzern das Bearbeiten eines (eigenen) Beitrages bei gewissen Bedingungen verbieten. Dabei spielt es eigentlich keine Rolle, welche Bedingung dies ist.


    Da im Template threadPostList.tpl in Zeile 195 bereits folgendes abgefragt wird um den "Editieren" Button anzuzeigen / nicht anzuzeigen...

    Code
    {if $thread->canEditPost($post->getDecoratedObject()) || $canEditPostInline}

    und es an der Stelle kein passendes Event gibt um ggf. über einen TemplateListener eigene Klassen ins Spiel zu bringen, dachte ich irgendwie, dass ich die canEditPost()-Methode manipulieren kann. Dann müsste ich im Template nichts ändern (was aufgrund von fehlenden Events so oder so nicht möglich ist).


    Was im Grunde passieren soll, ist folgendes. Ich bin mir unsicher, ob es überhaupt eine Möglichkeit gibt, dies irgendwie zu realisieren.

    Damit würde ich bezwecken, dass der "Editieren" Button in Abhängigkeit einer eigenen Bedingung nicht verfügbar wäre.

    Edited 4 times, last by itsmeJAY ().

  • itsmeJAY

    Changed the title of the thread from “can Edit Post manipulieren Thread-Klasse” to “canEditPost() manipulieren Thread-Klasse”.
  • Im schlimmsten Fall: Den Button per Javascript ausblenden (also einfach ein Event im Header nehmen) und zusätzlich noch PostAction::validateUpdate erweitern, falls jmd. den Button per CSS wieder einblendet.

  • Im schlimmsten Fall: Den Button per Javascript ausblenden (also einfach ein Event im Header nehmen) und zusätzlich noch PostAction::validateUpdate erweitern, falls jmd. den Button per CSS wieder einblendet.

    Danke Christopher Walz für den Tipp. Das wäre tatsächlich die letzte Option gewesen.


    @WoltLab Team:

    Wäre es nicht möglich, dass man dort ein Event bekommt? Kann sicherlich häufiger vorkommen, dass Plugins dort was ändern wollen. Dadurch würde man sich unnötige und aus meiner Sicht unsaubere JS Arbeit sparen und das validate in der Action würde auch bereits funktionieren.


    Grüße

  • Kann man hier seitens dem Team noch auf Antwort hoffen? Wäre für die Planung bei mir interessant.


    Gruß

  • Wenn es deiner Planung hilft: Aktuell ist das nicht wirklich anders zu lösen, als wie von Christopher Walz vorgeschlagen. PHP-seitig hast du derzeit keine Möglichkeit.

    Danke für deine Antwort. Das hilft definitiv, allerdings versuche ich js in solchen Fällen echt nur zu nehmen, wenn es gar nicht mehr anders geht. Deshalb hoffe ich noch auf ein Event, ansonsten wird mir wohl nichts übrig bleiben.. ^^