Artikelleichen trotz database-cleanup

Dieses Forum enthält Diskussionen zu Bugs in ConPresso 4 und deren Lösungen.
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Ja, eben! Dann müsste er doch diese angepasste Version auch direkt benutzen können - evtl. nach Rückbau der Anpassungen.
Günther Ludwig
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 712
Registriert: 22.02.2006 22:00
Wohnort: Berlin
Hat sich bedankt: 216 Mal
Danksagung erhalten: 25 Mal
Kontaktdaten:

parallelinstallation und andere ideen

Beitrag von hscha »

Hallo Markus, Matthias, MagPie,

mir ist auch bei anderen Installationen von ConPresso aufgefallen, dass der Zugriff mit mod_dbadmin nicht immer funktioniert. Lesen geht aber schreiben nicht. Deshalb hat Matthias ggf. recht mit seiner Annahme, dass evtl. die Schreibrechte in der Datenbank nicht ausreichen. Jedoch funktionieren alle DB-Operationen über ConPresso, auch das Löschen von Artikeln. Sonst wären da über tausend Artikel in der Datenbank.

Nur eben manchmal klappt das Löschen nicht. Wahrscheinlich muss ich die Datenbank-Sicherung aus ConPresso analysieren, um die Werte der Variablen zu bestimmen, da ich direkt in mod_dbadmin nicht mal alle Datensätze lesen kann...

Das Ganze ist jedoch nicht so tragisch, da es sich nicht um ein großes Problem handelt. Es geht um ca. 30-40 Datensätze. Jedoch glaube ich, dass ich nicht der einzige bin, in dessen Installation das passiert.

Der Provider Cidsnet.de ist leider nicht sehr auskunftsfreudig, was die technische Seite der php-Betriebsumgebung angeht. Sogar phpinfo wurde deaktiviert. Auf das versprochene GD 2.0.x warten wir schon seit zwei Jahren, Supportmails werden nicht beantwortet etc...

Deshalb versuche ich so viel wie möglich selbst herauszubekommen.
Vielen Dank für euer Engagement auf meine Fragen hin. Ich schreibe hier wieder, wenn ich die o.g. Werte für die Datenbankleichen gefunden habe!

Grüße aus Berlin von
H.Schallnas
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 712
Registriert: 22.02.2006 22:00
Wohnort: Berlin
Hat sich bedankt: 216 Mal
Danksagung erhalten: 25 Mal
Kontaktdaten:

im bilde...

Beitrag von hscha »

So, jetzt habe ich die Übeltäter.
Die Artikelleichen weisen immer die Kombination
article_archiv = 5 und freigabe = 2 :twisted:
auf (alte Version, STATE_BLOCKED).

Kann man die Abfrage in database_cleanup einfach umschreiben, um diese Artikel loszuwerden? :idea:

Grüße von
H.Schallnas
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Es betrifft also ausschließlich geblockte Artikel, für die es eine neue Version gibt bzw. gab.
Eigentlich wollte ich diese nicht automatisch entsorgen lassen, da sie ja nicht endgültig vom Chefredakteur gelöscht wurden, also quasi ihr Schicksal noch offen ist...

Daher möchte ich mal in die Runde fragen ob es nicht dem Chefredakteur zuzumuten ist irgendwann mal über geblockte Artikel zu entscheiden?

Ansonsten müsste man nur AND freigabe = 0 aus artikel_archiv = 5 AND freigabe = 0 entfernen (kommt 2mal vor!)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 712
Registriert: 22.02.2006 22:00
Wohnort: Berlin
Hat sich bedankt: 216 Mal
Danksagung erhalten: 25 Mal
Kontaktdaten:

geblockte Artikel löschen

Beitrag von hscha »

Hallo Markus,

ich denke, vielleicht könnte man das als weitere Option in die Datenbank-Aktionsliste aufnehmen. Ich habe eh die Option "alle löschen" auskommentiert, weil ich gern das Artikelarchiv für abgelaufene Artikel erhalten möchte (jeweils nur die Hauptversion).
Somit könnte man noch eine Option "alle geblockten Artikel löschen", eine "alle alten Artikelversionen löschen" oder "geblockte alte Artikelversionen löschen" schaffen...

Das kann natürlich den einen oder anderen Admin wieder verwirren...

Das könnte dann so aussehen:

Code: Alles auswählen

if ($_GET['action'] == "blockedversions")  {
	$db_versions = new DB;
	$db_delete = new DB;
	$query_versions = "SELECT nr FROM ".CPO_NEWS." WHERE artikel_archiv = 5 AND freigabe = 2";
	$db_versions->query($query_versions);
	while($db_versions->next_record())  {
		$query_delete = "DELETE FROM ".CPO_CONTENT_FILES." WHERE article_id = ".$db_versions->v('nr');
		$db_delete->query($query_delete);
		$query_delete = "DELETE FROM ".CPO_CONTENT_HTML." WHERE article_id = ".$db_versions->v('nr');
		$db_delete->query($query_delete);
		$query_delete = "DELETE FROM ".CPO_CONTENT_IMAGES." WHERE article_id = ".$db_versions->v('nr');
		$db_delete->query($query_delete);
		$query_delete = "DELETE FROM ".CPO_CONTENT_TEXT." WHERE article_id = ".$db_versions->v('nr');
		$db_delete->query($query_delete);
		$query_delete = "DELETE FROM ".CPO_CONTENT_URLS." WHERE article_id = ".$db_versions->v('nr');
		$db_delete->query($query_delete);
	}
	$query_delete = "DELETE FROM ".CPO_NEWS." WHERE artikel_archiv = 5 AND freigabe = 2";
	$db_delete->query($query_delete);
	$message[] = $db_delete->affected_rows()." alte geblockte Artikelversionen wurden endgültig gelöscht!"; 
	logaction($db_delete->affected_rows().' alte geblockte Artikelversionen wurden endgültig gelöscht!', '');
}
Und in der Linktabelle:

Code: Alles auswählen

<tr>
            <td class="leftrow">Alte <strong>geblockte</strong> Artikelversionen löschen</td>
            <td class="rightrow"><a href="database_cleanup.php?action=blockedversions">Ausführen »»</a></td>
        </tr>
Grüße von
H.Schallnas
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

MarkusR hat geschrieben:Daher möchte ich mal in die Runde fragen ob es nicht dem Chefredakteur zuzumuten ist irgendwann mal über geblockte Artikel zu entscheiden?
Sollte man meinen! Meine Erfahrung ist aber auch eine andere :?
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ich habe hier mal eine verbesserte und beliebig erweiterbare Version erstellt.
Dateianhänge
database_cleanup.zip
(1.71 KiB) 762-mal heruntergeladen
cleanup.gif
cleanup.gif (5.73 KiB) 10844 mal betrachtet
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 712
Registriert: 22.02.2006 22:00
Wohnort: Berlin
Hat sich bedankt: 216 Mal
Danksagung erhalten: 25 Mal
Kontaktdaten:

gediegen

Beitrag von hscha »

Hallo Markus,

das ist natürlich eine sehr viel elegantere Lösung als meine :D
Vielen Dank!

H.Schallnas, Berlin
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Ich würde mir noch wünschen, dass die Aktionen sich noch einschränken ließen auf bestimmte Rubriken, Autoren und/oder letzten Bearbeiter. Desweiteren wäre es optimal, wenn sich noch ein Zeitraum angeben ließe, um bspw. alle alten Artikelversionen vor einem bestimmten Datum zu löschen.

Dies wäre gerade bei mittleren bis größeren Projekten sinnvoll, zumal wenn mehrere Redakteure am Geschehen beteiligt sind. Wer hat da schon den Überblick, ob man die Artikelversion von vor 3 Tagen nicht doch noch braucht.

p.s.: Auch eine sinnvolle Option wäre es, alle alten Artikelversionen bis auf eine einstellbare Anzahl - sagen wir bspw. zwei - letzte Versionen löschen zu können.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Zeitraum wäre einfach.

Wie meinst Du die Einschränkung auf bestimmte User?
Nur die dürfen löschen oder nur die Artikel bestimmter User werden gelöscht?
Diese Auswahl wird nicht so einfach...

Auch das Löschen bis auf die letzten zwei, drei Artikelversionen ist nicht ganz trivial, sollte aber noch machbar sein.

Die neueste Version ist ja so aufgebaut, daß man ganz einfach neue Auswahlen hinzufügen kann, wenn man mit SQL und PHP einigermaßen zurechtkommt...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

MarkusR hat geschrieben:Zeitraum wäre einfach.

Wie meinst Du die Einschränkung auf bestimmte User?
Nur die dürfen löschen oder nur die Artikel bestimmter User werden gelöscht?
Ich meinte schon die letztere Variante.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ist in Arbeit...
Dateianhänge
db-aktionen-neu.png
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Wow, du bist ja schneller als die Polizei erlaubt!
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Tja... das mit dem Nichtlöschen der letzten Version wird komplizierter.

Ich kann zwar mit einer Abrage alle Versionen bis auf die letzte löschen, aber die Abfrage hat endlose Laufzeiten durch verschachtelte Unterabfragen. Eine normale Abfrage dauert keine Tausendstel Sekunde (auf dem verwendeten Server), diese läuft bis zu einer Minute...
Da ist die Vorletzte, Vorvorletzte etc. noch gar nicht dabei...

Das wird wohl eine Löschaktion werden, die sich nicht mit einer Abfrage lösen lässt, also muß eine PHP-Schleife her...
Dateianhänge
q_sub.png
q_sub.png (5.58 KiB) 9302 mal betrachtet
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ok... schnell ein Array gefüttert und damit die Aktion angestoßen...

Hier eine neue Version für Experimentierfreudige, die vorher ihre Datenbank mittels phpmyadmin gesichert haben!

edit: bitte die im weiteren Thread gepostete Version benutzen!
Dateianhänge
db-aktionen-neu2.png
Zuletzt geändert von MarkusR am 18.11.2009 15:08, insgesamt 2-mal geändert.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten