[1.0.0] CBACK Post-Papierkorb / Trashcan

 
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 34
Homepage: cback.de
Beiträge: 17271
Dabei seit: 12 / 2003
Betreff:

[1.0.0] CBACK Post-Papierkorb / Trashcan

 · 
Gepostet: 03.06.2015 - 14:38 Uhr  ·  #1
CBACK Post-Papierkorb / Trashcan
löscht Beiträge nicht, sondern verschiebt sie in einen Papierkorb

Dieses Plugin war ein Auftrag von Halwadar von http://www.Adventureinsel.de der sich dazu entschlossen hat, dass das Plugin auch veröffentlicht werden darf. An dieser Stelle nochmal vielen Dank auch von mir.


Mit diesem Plugin ist es möglich Beiträge statt sie zu löschen zunächst in ein zuvor angelegtes "Papierkorb"-Forum zu verschieben. Ferner hat man die Möglichkeit einzustellen, ob der Admin selbst überall direkt löschen kann oder dies nur im Papierkorb selbst kann (ansonsten werden auch Adminlöschungen zunächst verschoben).


Zur Installation und einmaligen Einrichtung des Plugins geht bitte wiefolgt vor:
  • legt zunächst ein Forum Eurer Wahl an, welches als Papierkorb genutzt werden soll
  • stellt die Berechtigungen für dieses Forum so ein, wie ihr dies möchtet
  • nun installiert das Plugin mit dem Plugin Installer wie gewohnt im ACP
  • nach der Plugin installation öffnet bitte im Modulordner des Plugins die Datei "pluginconfig.php" mit einem Codeeditor und passt dort die beiden Einstellungswerte an. Diese sind dort noch einmal genauer beschrieben:
    • bei der Foren-ID tragt die ID (nur die Nummer!!) des Forums ein, das Ihr als Papierkorb nutzen möchtet. Die Foren-ID seht ihr, wenn Ihr das Forum aufruft und im Link auf die Nummer hinter "f=(X)" in der URL schaut
    • im zweiten Konfigurationswert könnt ihr Wählen, wie Adminlöschungen behandelt werden. Entweder, dass der Admin in jedem Forum eine Direktlöschung ausführt oder eben nur im Papierkorb selbst.

  • da diese Konfiguration nur einmal angepasst werden muss wurde auf ein ACP Modul und entsprechend zusätzliche Datenbankabfragen dafür verzichtet.



Viel Spaß mit dem Plugin!
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
koffeeinsuechtiger coding freak
Avatar
Geschlecht:
Herkunft: Neuss
Alter: 34
Homepage: fragz.de
Beiträge: 2216
Dabei seit: 03 / 2008
Betreff:

Re: [1.0.0] CBACK Post-Papierkorb / Trashcan

 · 
Gepostet: 03.06.2015 - 14:50 Uhr  ·  #2
:fgrin:
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Aachen
Beiträge: 353
Dabei seit: 05 / 2005
Betreff:

Re: [1.0.0] CBACK Post-Papierkorb / Trashcan

 · 
Gepostet: 30.06.2015 - 11:27 Uhr  ·  #3
ein guter Anfang :-)

Wenn es dazu jetzt noch die Funktion gäbe das die Inhalte analog zu Ihrem Ursprung verschoben werden können wäre das ein guter Abgang :D

Beispiel:

Forum A pruned nach 30 Tagen - in das unsichtbare Forum A-Alt
Forum B pruned nach 60 Tagen - in das unsichtbare Forum B-Alt

usw.
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 34
Homepage: cback.de
Beiträge: 17271
Dabei seit: 12 / 2003
Betreff:

Re: [1.0.0] CBACK Post-Papierkorb / Trashcan

 · 
Gepostet: 30.06.2015 - 13:22 Uhr  ·  #4
Hallo,

dieses Plugin greift ja nicht in das automatische Pruning ein. Es geht viel mehr darum, dass Löschaktionen, beispielsweise von Usern oder Moderatoren, nicht endgültig sind und somit noch die Möglichkeit besteht einen versehentlich entfernten Thread wieder zurückzuschieben. Ein Pruning soll ja das Forum ordentlich halten bzw. die Datenbank entlasten indem inaktive Threads gelöscht werden.

Ist also kein "Archiv-Plugin". Das wäre ja eine andere Funktion. Und bei einem "Archiv Plugin" würde auch eine ACP Steuerung Sinn machen. ;) - Also dieses Plugin ist nur für die Löschfunktion und hat nichts mit dem Pruning zu tun.

LG,
Chris
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Aachen
Beiträge: 353
Dabei seit: 05 / 2005
Betreff:

Re: [1.0.0] CBACK Post-Papierkorb / Trashcan

 · 
Gepostet: 19.01.2020 - 16:33 Uhr  ·  #5
Hi,

wir verwenden auch im CF4 dieses Plugin und sind erst jetzt, da wir nun eine Datenbank im Strict-Modus laufen lassen, auf ein nerviges Problem gestoßen. Löscht man den einzigen Beitrag aus einem Thema erhält man diese Fehlermeldung angezeigt:

Code
UPDATE CF3_topics SET `topic_replies`=-1 WHERE `topic_id`=9037 


Ursache ist offenbar, dass das Papierkorb-Plugin den gelöschten Beitrag aus dem Thema entfernt und ein neues Thema erstellt und CF4 danach in resync_topics() versucht die Anzahl übriger Beiträge im Original-Thema zu ermitteln und davon dann 1 abzuziehen. Das ergibt dann den Wert -1 für "topic_replies" - und da diese Spalte unsigned ist darf sie keine Vorzeichen ("-") haben - dadurch entsteht die Fehlermeldung.

Besteht da eine Chance der Korrektur im Plugin? :) Meine vorübergehende Lösung möchte ich ungern dauerhaft so lassen .. (Anpassung in Forum-Klasse zur Prüfung, ob der Wert kleiner 0 ist :( ), und unsere Moderatoren nervt es ziemlich, aber der Luxus des Papierkorb-Plugins ist einfach super :)
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 34
Homepage: cback.de
Beiträge: 17271
Dabei seit: 12 / 2003
Betreff:

Re: [1.0.0] CBACK Post-Papierkorb / Trashcan

 · 
Gepostet: 20.01.2020 - 12:27 Uhr  ·  #6
Hallo,

oh Vorsicht, Vorsicht! Das hier ist ein CF3 Plugin! Eigentlich müsste der Paketmanager des CF4 es beim installieren genau deshalb ablehnen (ich vermute mal Du hast die Paketdatei verändert, damit er es trotzdem durchgelassen hat), denn CF3 Plugins sind NICHT mit dem CF4 Kompatibel! - Um den Pluginautoren den Transit zu erleichtern heißen zwar viele Hookpoints gleich und Du hattest hier Glück, dass sich das Plugin wohl nicht so tief reinhängt. Aber das CF4 wurde völlig neu entwickelt und tief in der Struktur verändert. Manchmal kann eine Funktion in der selben Klasse mit dem selben Namen verglichen mit dem CF3 auch komplett anders aufgebaut sein / komplett neu angelegt worden sein. Es sind bei Plugins von CF3 auf CF4 also noch viele wichtige Anpassungen nötig um ggf. auf die veränderten Funktionsmethoden und den veränderten Aufbau zu reagieren. (Das fängt schon damit an, dass Klassenobjekte nicht mehr wie beim CF3 mit global weitergereicht werden sondern alles über den Controller läuft - einschließlich die Sprache - und man mit global nicht sicher sein kann das richtige Objekt anzusprechen und mitunter Sicherheitslücken verursacht, weil das CF4 diese globalen Objekte auch nicht mehr gesondert verifiziert, weil man ja nur noch den Controller benutzen soll). Und natürlich noch vieles andere.


Ich rate also dringend davon ab CF3 Plugins mit "ich erzwinge die Installation" durch Verändern der Paketsignatur ohne die tiefen CF4 Anpassungen zu nutzen. Das kann Dein Board und Deinen Datenbestand dauerhaft beschädigen und zu Fehlern führen, die man nicht mehr behoben oder identifiziert kriegt!

In diesem Fall z.B. das mit dem Resync: Der Zählt ganz neu von der Datenbank aus und das Antwortzahl = n-1 kann dadurch eigentlich nie Null werden, weil jedes Topic ja mindestens einen Post hat (der nicht die Antwort ist sondern der Start).

Man müsste hier also im Plugin nicht nur beim erzeugen des neuen Topics mal die Felder mit der Topicroutine vom CF4 abgleichen um Felder ohne Vorgabewert beim Strict Modus nicht als Fehlerquelle zu haben, danach müsste man das Plugin wohl so umbauen, dass beim Löschen eines Beitrages zunächst (ganz am Anfang) gezählt wird, ob das Topic von dem man löscht sowieso nur noch einen einzigen Post hat und es dann lieber als "Topiclöschen" behandeln statt als Postlöschen. Das würde das Problem dann sicher lösen.

Ich denke nämlich genau da tritt der Fehler auf: Du hast ein Topic mit nur einem Post, das wird gelöscht, er will das aber nach der "ich lösche nur einen Post" Routine machen, sendet 2 Topic IDs (alt & neu) an den Resync und stellt dabei nicht fest, dass eines der Topics inzwischen natürlich schon keine Beiträge mehr hat und er vorher gucken müsste, ob er die übliche Topic-Schieb Routine machen kann, weil das Topic nur noch diesen einen Beitrag hat. Das müsstest Du im Plugin (!) dann vorher abklopfen z.B. indem Du beim Löschen eines einzelnen Beitrages guckst wie viele Beiträge das Topic hat und wenn das genau dieser eine ist springt er weiter auf den Topic Lösch Modus.



Da das CF3 und damit seine Plugins EOL sind und da wie Du siehst Anpassungen von Plugins ans CF4 mehr Arbeit bedeuten ist es zur Zeit leider nicht geplant dieses Plugin für das CF4 zu entwickeln.


Eseidenn natürlich jemand gibt genau das kostenpflichtig in Auftrag. :D Wenn Du interessiert bist schick mir gerne eine PM oder Mail für ein unverbindliches Angebot. Das kannst Du dann natürlich machen, dann entwickle ich Dir davon gerne eine CF4 fähige Version, die dann auch auf PHP7 & strengen DB Systemen getestet ist - was beim CF3 noch nicht der Fall war, da gabs noch kein PHP7 und darauf liefs auch nicht. ;) Ich denke mal das wäre in diesem Fall auch nicht all zu teuer weil das Plugin ja ansich recht klein ist, man müsste nur die Funktionen und das Rundherum auf den neuesten Stand bringen und Routinen einbauen, die vorher "mehr prüfen" weil inzwischen die DB Systeme strengere Datensicherheit erfordern als das zu CF3 Zeiten noch der Fall war. - Da hat man an vieles noch nicht gedacht was heute nötig ist.


LG,
Chris
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.