WBCE CMS – Way Better Content Editing.
Du bist nicht angemeldet.
Seiten: 1
Hallo zusammen,
folgendes Problem:
Ich habe eine Topics-Seite angelegt, dann auf der Startseite einen Topics-Abschnitt als Master-Topic. Danach die Beispiel-Topics gelöscht.
Nur die gelöschten Beispiele tauchen auf der Startseite immer noch auf. Wie werde ich die denn endgültig los?
Gruß
Bastie
Beitrag geändert von bastie (15.12.2018 16:54:36)
Wer Rechtschreibfehler findet, darf sie gerne herunterladen, kopieren, weiterverwenden und weiterverbreiten. Ich beanspruche in keiner Weise ein Urheberrecht. Meine Rechtschreibfehler stehen unter der MIT-Lizenz.
Offline
welche Topics/WBCE-Version? Ggf. updaten, es gab früher mal so einen Bug, siehe https://forum.wbce.org/viewtopic.php?id=332 - aber der ist eigentlich inzwischen gefixt
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Topics 0.9.4.4
WBCE 1.3.2
Die Seite läuft noch lokal
Wer Rechtschreibfehler findet, darf sie gerne herunterladen, kopieren, weiterverwenden und weiterverbreiten. Ich beanspruche in keiner Weise ein Urheberrecht. Meine Rechtschreibfehler stehen unter der MIT-Lizenz.
Offline
Ich kanns nicht reproduzieren, weder lokal mit WBCEportable noch auf einer Testwebsite auf einem echten Webserver.
Du kannst sonst den Adminer als Admintool installieren und dann direkt in der Datenbanktabelle (deinprefix)_mod_topics die Zombie-Einträge, erkennbar an der negativen Section, vernichten.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Hmm..
Beim Löschen werden topics nicht wirklich gelöscht, sondern bekommen eine negative section-id.
Dass es in topics so grobe Fehler gibt (auch negative section-id listen) , wäre aber wohl schon aufgefallen.
Hallo,
ich habe die Beispieleinträge aus einer Topics-Section gelöscht. Nun fand ich das Thema Topics-Master spannend, habe also eine Topics section angelegt, die selbst keine Einträge enthät- und schwupps sind die Beispieleinträge dort wieder aufgetaucht.
Gibt es eine Möglichkeit, die auf einfache Weise komplett los zu werden? Oder muss ich da "von Hand" an die Datenbank ran?
Martin
Offline
Das Problem scheint nur unter sehr speziellen (lokalen?) Bedingungen aufzutreten - siehe https://forum.wbce.org/viewtopic.php?id=2509
Code allein macht nicht glücklich. Jetzt spenden!
Offline
konnte ich mit WBCE 1.3.3 und Topics 0.9.4.4 reproduzieren. Auch bei mir sind negative Section IDs. Das passiert in delete_topic.php L.32ff:
$hascontent = $row['hascontent'];
if ($hascontent < 2) {
// Delete topic
$database->query("DELETE FROM ".TABLE_PREFIX."mod_".$tablename." WHERE topic_id = '$topic_id' LIMIT 1");
$database->query("DELETE FROM ".TABLE_PREFIX."mod_".$tablename."_comments WHERE topic_id = '$topic_id'");
} else {
//hide topic
$hide_it = 0 - $section_id;
$theq = "UPDATE ".TABLE_PREFIX."mod_".$tablename." SET section_id = '$hide_it' WHERE topic_id = '$topic_id'";
$database->query($theq);
}
also, wenn $hascontent >= 2 und das sehen wir in save_topic.php L.110 ff.:
$hascontent = 1;
if (strlen($long.$extra) < 7) {$hascontent = 0;}
if (strlen($long.$extra) > 400) {$hascontent = 2;}
$query_comments = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_".$tablename."_comments WHERE topic_id = '$topic_id'");
if($query_comments->numRows() > 0) {$hascontent = 3;}
also wenn $long und $extra in Summe länger als 400 Zeichen ist oder Kommentare zu dem Topic vorhanden sind. Mit $hascontent =2 sind dann wohl auch die Beispieleinträge mit von der Partie. Warum das bisher nicht aufgefallen ist, ist mir noch nicht klar - vielleicht weil man meistens viele Einträge hat, so dass die Beispieleinträge recht weit nach unten rutschen?
Offline
Bingo: Negative Section-IDs um die zu löschenden Beiträge zu verstecken sind dafür verantwortlich - siehe https://forum.wbce.org/viewtopic.php?pid=21713#p21713
Offline
Ich habe die beiden Threads zum Thema Beispieltopics mal zusammengeführt.
Das Problem tritt auf, wenn die Topics-Seite, die die Beispieltopics generiert hat, gelöscht wird. Werden nur die Beispieltopics selbst gelöscht (über die Schaltfläche "Löschen" in der Topics-Beitragsansicht unten rechts), erscheinen sie auch nicht mehr im Master.
Um das Problem zu beheben, muss in der view.list.php die Zeile
$theq = "SELECT * FROM ".TABLE_PREFIX."mod_".$tablename." WHERE ".$sectionquery." AND ". $qactive.$query_extra." ORDER BY ".$sort_topics_by.$limit_sql;
geändert werden zu
$theq = "SELECT * FROM ".TABLE_PREFIX."mod_".$tablename." WHERE ".$sectionquery." AND ". $qactive.$query_extra." AND section_id > 0 ORDER BY ".$sort_topics_by.$limit_sql;
Dass die gelöschten Topics eine negative ID erhalten, ist beabsichtigt, um so einen "Rettungsanker" zu haben, falls ein Topic versehentlich gelöscht worden ist.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Das Problem tritt auf, wenn die Topics-Seite, die die Beispieltopics generiert hat, gelöscht wird. Werden nur die Beispieltopics selbst gelöscht (über die Schaltfläche "Löschen" in der Topics-Beitragsansicht unten rechts), erscheinen sie auch nicht mehr im Master.
hmm... über die Schaltfläche wird doch genauso die delete_topic.php aufgerufen. Ich denke der Punkt ist, dass im Master nicht explizit bestimmte Sections oder ein bestimmtes picture directory gesetzt ist, sondern das im Master und in den Beispieltopics auf dem Standard 'same picture dir' belassen wird.
Um das Problem zu beheben, muss in der view.list.php die Zeile
$theq = "SELECT * FROM ".TABLE_PREFIX."mod_".$tablename." WHERE ".$sectionquery." AND ". $qactive.$query_extra." ORDER BY ".$sort_topics_by.$limit_sql;
geändert werden zu
$theq = "SELECT * FROM ".TABLE_PREFIX."mod_".$tablename." WHERE ".$sectionquery." AND ". $qactive.$query_extra." AND section_id > 0 ORDER BY ".$sort_topics_by.$limit_sql;
Dass die gelöschten Topics eine negative ID erhalten, ist beabsichtigt, um so einen "Rettungsanker" zu haben, falls ein Topic versehentlich gelöscht worden ist.
super. Das hilft dann auch nicht nur bei den Beispieltopics sondern auch bei selbst erstellten Beiträgen. Wenn die lang genug sind, dass sie mit dem Rettungsanker nur versteckt werden, dann sind sie ohne die neue Prüfung auch im Master noch sichtbar, wenn die Einträge über das picture directory gesucht werden. In dem Fall ist ja die section_id nicht explizit angefordert, sondern auch alle Beiträge aller Sections (ob mit positiver oder negativer ID) bei denen das pichture directory passt
Den Fix sollten wir ins Github Repo übernehmen. Wer pflegt denn Topics derzeit federführend? Wäre gut, wenn der Fix auch upstream aufgenommen werden würde, damit wir ihn nicht mit dem nächsten Topics-Update wieder verlieren.
Offline
ich seh gerade, dass bei
$theq = "SELECT * FROM ".TABLE_PREFIX."mod_".$tablename." WHERE ".$sectionquery." AND ".$qactive.$query_extra;
in der gleichen Datei vermutlich die gleiche Zusatzbedingung gebraucht wird, damit die Anzahl der aktiven Beiträge korrekt ermittelt wird.
Offline
ich hab mal Pull request #378 zu den aktuellen Themen rund um Topics aufgemacht
Offline
Danke, ich habs mal gemerged und auch im Master nachgezogen.
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Super, vielen Dank.
Jetzt müsste man mal durchgehen, ob die negativen Section IDs noch an anderen Stellen eventuell unerwünschte Effekte bereiten könnten, aber das ist leider nicht mal so geschwind gemacht, zumindest nicht wenn man sich wie ich gerade erst anfängt mit dem Modul auseinanderzusetzen.
Pflegt Chio das Modul aktiv, sprich ist die Angabe im info.php noch aktuell? "Started by..." kingt allerdings so als hätten es ohnehin schon ein paar andere Leute erweitert. Colinax zum Beispiel hat Changelog Einträge hinzugefügt (das hab ich in meinem Pull Request vergessen).
Offline
Super, vielen Dank.
Jetzt müsste man mal durchgehen, ob die negativen Section IDs noch an anderen Stellen eventuell unerwünschte Effekte bereiten könnten, aber das ist leider nicht mal so geschwind gemacht, zumindest nicht wenn man sich wie ich gerade erst anfängt mit dem Modul auseinanderzusetzen.
Pflegt Chio das Modul aktiv, sprich ist die Angabe im info.php noch aktuell? "Started by..." kingt allerdings so als hätten es ohnehin schon ein paar andere Leute erweitert. Colinax zum Beispiel hat Changelog Einträge hinzugefügt (das hab ich in meinem Pull Request vergessen).
Ich denke, dass sonst überall nach konkreten section_ids gefragt wird, und die können niemals < 0 sein.
Topics gehört mittlerweile zum Core - und da mische ich mich nicht ein. Neue Features sind nicht geplant; vielleicht mal die Erweiterung um die Autoren vervollständigen, aber das interessiert eh keinen wirklich und ist nur mehr drin, um es für spezielle Kundenwünsche bereit zu haben.
Naja: EIn Leichen-Aufräum-Tool vielleicht. Manche schaffen es, 50 Untitled in der Liste zu haben. Wie das geht, weiß ich nicht.
Beitrag geändert von grindbatzn (30.01.2019 12:57:06)
Seiten: 1