Dein Vorschlag gefällt mir gut.
Beiträge von shoxinat0r
-
-
Herzlichen Dank euch!
-
-
EDIT: Ist ja auch interessant, was ich bei der Installation des Plugins entdeckt habe:
Erstellungsdatum 17. Dezember 2016Zurück in die Zukunft.
-
Schönes Plugin!
-
Mittlerweile bin ich übrigens soweit:
Code
Alles anzeigen{if $board->canEditThreads() || $thread->getBoard()->getModeratorPermission('canClosePost') || $thread->getBoard()->getModeratorPermission('canDeletePost') || $thread->getBoard()->getModeratorPermission('canDeletePostCompletely') || $thread->getBoard()->getModeratorPermission('canEnablePost') || $thread->getBoard()->getModeratorPermission('canRestorePost')} {assign var='canEditPostInline' value=true} var $postClipboardHandler = new WBB.Post.Clipboard($postHandler); $postClipboardHandler.setThreadUpdateHandler($updateHandler); $('.jsDeleteThread').click(function () { var self = $this; WCF.System.Confirmation.show(WCF.Language.get('wbb.thread.confirmTrash'), function(action) { if (action === 'confirm') { self._updateThread(elementID, optionName, { isDeleted: 1, reason: $('#wcfSystemConfirmationContent').find('textarea').val() }); } }, { }, $('<fieldset><dl><dt>' + WCF.Language.get('wbb.thread.confirmTrash.reason') + '</dt><dd><textarea cols="40" rows="4" /></dd></dl></fieldset>')); }); }); {else} {assign var='canEditPostInline' value=false} {/if}
Funktionieren tut es aber nicht.
-
Eine kleine Frage schieße ich noch hinterher, aber dann soll es das auch erst einmal gewesen sein:
Neben den Button soll ein neuer Button, der nicht nur einen Beitrag sondern direkt das ganze Thema löscht.
Ich würde sagen, ich brauche wieder Javascript im thread.tpl ab Zeile 135.
Den Button habe ich auch bereits erstellt. Mir stellen sich nun folgende Fragen:- Wie genau muss das Javascript aussehen, um das ganze Thema zu löschen? Es soll wieder dasselbe Fenster kommen, wie wenn ich normal über Thema bearbeiten das Thema moderiere.
- Wie bekomme ich die ID des Themas heraus, in dem der Beitrag steht, um dann das Javascript ausführen zu lassen?
Mein Vorschlag für Javascript wäre dieses hier:
Code
Alles anzeigen$('.jsDeleteThread').click(function () { var post = $(this); var $template = $('<fieldset><dl></dl></fieldset>'); $('<dt><label for="postTrashReason">' + WCF.Language.get('wbb.post.edit.trash.reason') + '</label></dt>').appendTo($template.children('dl')); $('<dd><textarea id="postTrashReason" name="reason" cols="40" rows="3" /></dd>').appendTo($template.children('dl')); WCF.System.Confirmation.show(WCF.Language.get('wbb.thread.confirmTrash'), $.proxy(function (action) { if (action === 'confirm') { $postHandler.update(post.data('postID'), 'trash', { reason: $('#postTrashReason').val() }, function() { new WCF.System.Notification().show(); }); } }, this), '', $template); });
-
Entfern das mal hier
href="#" bei deinem Button unten.Top, jetzt bleibt das Fenster auch offen und man wird nicht umgeleitet.
Wird der Beitrag gelöscht?
Leider nein, aber ich habe es jetzt so hinbekommen:
Nun funktioniert alles ohne Probleme.
Wieder einmal: ein großes Dankeschön an dich, Olaf!
-
Das klappt wirklich schon gut und das Fenster zum Löschen wird auch korrekt eingeblendet. Allerdings leitet die Seite dann wieder auf die Startseite um und das Fenster verschwindet. Wie kann ich das noch lösen? Dann wäre auch alles perfekt.
-
Okay, danke. Wie und wo füge ich das nun ein bzw. verbinde das?
Entschuldige die Fragen, ich versuche das alles momentan noch zu lernen und bin noch nicht so weit. -
Danke für die flotte Antwort, Olaf!
Allerdings kann ich dir nicht ganz folgen. Den betreffenden Abschnitt habe ich in der WBB.js - Datei gefunden. Wie verwende ich nun das Javascript? -
Guten Abend,
ich versuche, einen Beitrag direkt über einen neuen PostButton löschen zu können, um nicht immer auf "Bearbeiten" klicken zu müssen.
Den Button habe ich bereit im Template threadPostList eingefügt und er wird auch angezeigt, wie ich es mir vorstelle.
Der Code sieht so aus:Smarty{if MODULE_USER_INFRACTION && $__wcf->session->getPermission('mod.infraction.warning.canWarn')}<li class="jsDeletePost jsOnly" data-post-id="{@$post->postID}"><a href="#" title="Beitrag entfernen" class="button jsTooltip"><span style="color:#3498db;" class="icon icon16 icon-trash"></span> <span class="invisible">Beitrag entfernen</span></a></li>{/if}
Nun soll bei einem Klick auf den Button das übliche "Beitrag löschen" - Fenster kommen (s. Anhang). Ist das überhaupt möglich und wenn ja, wie?
Beste Grüße
-
Was genau enthält die Variabel $queue?
Gibt diese mal mit var_dump aus.
Edit:
Das ganze habe ich mal getestet und es wird eine Konversation von dem Moderator erstellt und der Benutzer, der dem Eintrag erstellt ist der andere Teilnehmer
Bist du ggfs. der selbe dem der Eintrag gehört?Komisch, jetzt funktioniert es auch.
Mein Problem war wohl folgendes:
Ich hatte zum Testen einen einzigen Beitrag von einem anderen User. Den habe ich immer de- und aktiviert. Sobald der Moderator den Beitrag deaktiviert, wird er wohl als Ersteller erkannt. Sollte aber vorher an dem Beitrag keine moderative Aktion ausgeführt werden, klappt alles wie gewünscht.Ich danke dir, Olaf!
-
Hi Olaf,
danke für die schnelle Antwort!
Allerdings funktioniert das auch nicht. Die Konversation wird nur alleine mit dem Moderator gestartet. -
Hallo zusammen zu später Stunde,
ich habe folgendes Problem: wenn der Moderator im Moderationspanel bei einer Freischaltungsanfrage "Inhalt löschen" auswählt, soll der Benutzer, dessen Inhalt freigeschaltet werden soll, eine PN bzw. Konversation erhalten.
Anbei mein Code, bei dem die Konversation mit dem Moderator gestartet wird und nicht mit dem Benutzer, dessen Inhalt freigeschaltet werden sollte. Vielleicht könnt ihr einmal drüber schauen und mir sagen, wo mein Fehler steckt.PHP
Alles anzeigen<?php namespace wcf\system\event\listener; use wcf\data\moderation\queue\ViewableModerationQueue; use wcf\data\conversation\Conversation; use wcf\data\conversation\ConversationAction; use wcf\data\user\User; use wcf\system\WCF; class ModerationQueueActivationListener implements IParameterizedEventListener { public function execute($eventObj, $className, $eventName, array &$parameters) { if ($eventObj->getActionName() == "removeContent") { $queue = ViewableModerationQueue::getViewableModerationQueue($eventObj->getObjects()[0]->getData()["queueID"]); $user = new User($queue->userID); $userLanguage = $user->getLanguage(); $conversationAction = new ConversationAction(array(), 'create', array( 'data' => array( 'subject' => $userLanguage->getDynamicVariable('wcf.moderation.status.rejected.com.woltlab.wcf.moderation.activation', array()), 'time' => TIME_NOW, 'userID' => $user->userID, 'username' => $user->username ), 'messageData' => array( 'message' => $userLanguage->getDynamicVariable('wcf.moderation.status.rejected.text.com.woltlab.wcf.moderation.activation', array('queue' => $queue)), 'enableHtml' => true ), 'participants' => array( $queue->userID ) )); $returnValues = $conversationAction->executeAction(); $conversationAction = new ConversationAction(array($returnValues['returnValues']), 'hideConversation', array('hideConversation' => Conversation::STATE_HIDDEN)); $conversationAction->executeAction(); } } }
Viele Grüße,
shoxinat0r -
Deshalb sollte es ja an das Recht gekoppelt sein, damit es nur die Moderatoren sehen können, ohne direkt auf das Profil zugreifen zu müssen.
Alles klar.
-
Hallo Olaf,
es wäre schön, wenn die Anzahl der Einträge im Moderationsbuch in der Seitenleiste angezeigt wird. Am besten könnte man dies mit dem Recht Kann das Moderations Buch verwalten koppeln.
Wäre super, wenn du da was machen könntest.Gruß
-
"Deaktivieren" ist doch der passende Punkt. Oder ist das kein Mod-Account auf dem Screenshot?
-
Also ich habe habe alles durch getestet Olaf es geht nicht!
Bei mir funktioniert es ohne Probleme.
-
Klasse Plugin! Dann brauchen meine Moderatoren nicht mehr unbedingt ACP Rechte. Das macht vieles einfacher.