WBCE CMS – Way Better Content Editing.
You are not logged in.
Hallo zusammen,
vielleicht verstehe ich die Funktionen bei der Beitragserstellung ja falsch.
Ich habe dort ja die Möglichkeit einem Beitrag ein Startdatum zuzuordnen, sodass er zum angegebenen Datum sichtbar in der Übersicht wird.
Soweit so gut; leider wird der Beitrag (als Link) aber schon über "nächster Beitrag" in der Next|Last -Leiste am unteren Ende angezeigt, was mit Klick darauf dann natürlich in einem 404 endet. Gleiches Verhalten (404) zeigt sich auch, wenn das Startdatum erreicht wird;
ich lasse zB eine Übersicht in einer seperaten Seite via NIA anzeigen, dort wird der Beitrag dann bei eintretendem Startdatum angezeigt, führt aber in einen 404; erst wenn ich diesen Beitrag erneut speichere ist der 404 weg....
oder muss ich gleichzeitig den Beitrag als "Aktiv: Nein" kennzeichnen? Und aktiviert er sich dann zum angegebenen Startdatum selbst?? Spekulatius: Greifen da die "Zugriffs-, Ansichtsrechte" nicht, oder nicht komplett??
WBCE 1.6.3 - Fraggy 2.7.1 - PHP 8.3.14- All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
Das ist ein Bug.
Ändere in der functions.php, Zeile 869-865 (SQL-Query in der function mod_nwi_post_get) zu
$t = time();
$sql = sprintf(
"SELECT `t1`.*, " .
" (SELECT `link` FROM `%smod_news_img_posts` AS `t2` WHERE `t2`.`$order_by` > `t1`.`$order_by` AND `section_id`=$section_id AND (`published_when` = '0' OR `published_when` <= $t) AND (`published_until` = '0' OR `published_until` >= $t) AND `active`=1 $query_group ORDER BY `$order_by` $prev_dir LIMIT 1 ) as `prev_link`, ".
" (SELECT `link` FROM `%smod_news_img_posts` AS `t3` WHERE `t3`.`$order_by` < `t1`.`$order_by` AND `section_id`=$section_id AND (`published_when` = '0' OR `published_when` <= $t) AND (`published_until` = '0' OR `published_until` >= $t) AND `active`=1 $query_group ORDER BY `$order_by` $direction LIMIT 1 ) as `next_link` " .
"FROM `%smod_news_img_posts` AS `t1` " .
"WHERE `post_id`=%d",
TABLE_PREFIX, TABLE_PREFIX, TABLE_PREFIX, $post_id
);
Das behebt das Problem sowohl in NWI als auch NWIA
Last edited by florian (10.06.2023 10:15:20)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
ok,
die zeitgesteuerte Anzeige(sowohl Ein-, als auch Ausblenden) des Links funktioniert jetzt richtig.
dennoch führt es zum 404 bei klick auf den Link, muss also den Beitrag erneut abspeichern...
WBCE 1.6.3 - Fraggy 2.7.1 - PHP 8.3.14- All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
ok,
die zeitgesteuerte Anzeige(sowohl Ein-, als auch Ausblenden) des Links funktioniert jetzt richtig.
dennoch führt es zum 404 bei klick auf den Link, muss also den Beitrag erneut abspeichern...
noch irgendwelche Ideen, oder Lösungsvorschläge dazu?
Vielleicht hatte ich mich ja auch etwas misverständlich ausgedrückt;
-ich schreibe einen Beitrag
-ich setze ein veröffentlichungsdatum, das in der Zukunft liegt
-in NIA und der Übersichtsseite von NWI wird der Link zur angegebenen Zeit angezeigt (danke Florian)
-klick auf den Link führt zu 404
-muss den Beitrag erneut abspeichern, dann korrekte Anzeige
Danke für die Unterstützung
btw: die functions.php heißt functions.inc.php (Hinweis, falls das andere Änderungswillige nicht finden)
WBCE 1.6.3 - Fraggy 2.7.1 - PHP 8.3.14- All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
Soweit ich das rekonstruieren kann, wird bei Beiträgen mit Veröffentlichungsdatum in der Zukunft das Acces-File in /pages/posts (noch) nicht angelegt, was dann natürlich zu einem 404 führt.
Bei erneutem Abspeichern nach erreichen des Datums wird das File dann angelegt.
Das Verhalten ist natürlich sehr "unglücklich" und wohl ein Bug.
Ich sehe nur noch nicht wirklich wo es da genau klemmt
Edit:
bin ein Stück weiter:
in der save_post.php wird ab Zeile 210 (nachdem bereits Accessfile und Datenbankeintrag angelegt wurden), nochmal $active manipuliert und auf 0 gesetzt wenn $publishedwhen in der Zukunft liegt.
Daraufhin wird bei $active != 1 das (bereits angelegte) Accessfile gelöscht.
Ob das nur ein "Überbleibsel" aus irgendwelchen älteren Versionen ist und einfach übersehen wurde, oder ob das einen tieferen Sinn hat, kann ich nicht wirklich sagen, da müsste mal jemand ran der sich in den NWI-Interna besser auskennt ...
Wenn du ganz mutig bist könntest du mal in der save_post.php den Bereich von Zeile 210 bis einschließlich 221 auskommentieren und gucken ob das irgendwelche Nebenwirkungen hat ...
Last edited by bernd (15.06.2023 17:55:03)
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Online
giz
Das war ich beim letzten Update, weil es mich störte, dass depublizierte Beiträge trotzdem noch ein Accessfile hatten. Nur hatte ich nicht bedacht, dass sich die Accessfiles ja nicht von selbst generieren, wenn das Startdatum erreicht ist.
In die Funktion mod_nwi_posts_getall (~ Zeile 1141) und mod_nwi_post_get (~ Zeile 870) muss noch ein Check, ob die jeweilige (Access-)Datei vorhanden ist, und wenn nicht, muss diese generiert werden.
Ungefähr so:
$filename = WB_PATH.PAGES_DIRECTORY.'/'.$post['link'].PAGE_EXTENSION;
if (!file_exists($filename)) {
mod_nwi_create_file($filename, '', $post['post_id'], $post['section_id'], 'xxx page_id xxx');
}
Rot markiert: Gibt es eine einfache Möglichkeit, an die page_id ranzukommen, wenn die Konstante PAGE_ID nicht gesetzt ist, oder muss ich da noch einen SQL-Abfragerattenschwanz reinbauen, der anhand der section_id dann aus der sections-Tabelle dann die page_id liefert?
Last edited by florian (15.06.2023 18:20:56)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
giz
Dann müßte man doch eigentlich nur die Zeile 210 ($publishedwhen) rausschmeißen?
Das $publisheduntil in 211 macht ja durchaus Sinn nicht mehr benötigte Accessfiles aufzuräumen.
Selbst wenn man einen abgelaufenen Beitrag nochmal benötigen sollte, muss man ihn ohnehin editieren wodurch das Accessfile neu angelegt wird.
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Online
giz
Danke euch beiden für das Eruieren und Bemühen den Käfer zu vertreiben.
WBCE 1.6.3 - Fraggy 2.7.1 - PHP 8.3.14- All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
...
Wenn du ganz mutig bist könntest du mal in der save_post.php den Bereich von Zeile 210 bis einschließlich 221 auskommentieren und gucken ob das irgendwelche Nebenwirkungen hat ...
War ich dann mal und hab's ausprobiert
also:
-Beitrag erstellt mit start- und ablaufdatum
-Anzeige in Übersicht korrekt
-Link funktioniert (!), kein 404
-Wenn man allerdings den kompletten Link zu dieser Seite kennt (https://www.tld.de/posts/linkzurseite-1232123.php), kann man sie auch nach dem Ablaufdatum abrufen, somit also eher kontraproduktiv.
Sonst bisher keine anderen Sideeffects gemerkt....
ich werde diese Änderung wieder rückgängig machen, danke für die Idee!
WBCE 1.6.3 - Fraggy 2.7.1 - PHP 8.3.14- All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
Temporärer Würgaround um den 404 zu vermeiden (bis wir da eine bessere Lösung zusammengeklöppelt haben) wäre,
nur die Zeile 210 auskommentieren, dann wird das Accessfile für einen künftigen Beiträge nicht gelöscht.
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Online
Ich würge, danke
WBCE 1.6.3 - Fraggy 2.7.1 - PHP 8.3.14- All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
Tausche mal die functions.inc.php durch die hier angefügte aus (zurück in .php umbenennen).
Den Würgaround braucht es dann (hoffentlich ) nicht mehr.
Eine Anmerkung: Das ganze Erzeugen/Entfernen von Accessfiles passiert nur beim (neu) Laden von Beiträgen oder Übersichtsseiten.
Das heißt z.B., wenn Du einen zeitgesteuerten Beitrag auf 8:30 stellst und um 8:31 ins Dateisystem oder auf die Übersichtsseite oder einen vorheriger/nächster-Beitrag-Link schaust, ohne die jeweilige Seite im Frontend neu zu laden, hat sich (auch) bei den Accessfiles noch nichts getan.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
giz
So, ausgewürgt.
Danke für's Coden,
Start- Ablauf, inkl. korrekter Anzeige in Links/Übersicht passt jetzt.
keine erkennbaren Sideeffects
keine Fehler im errorlog
Eine Anmerkung: Das ganze Erzeugen/Entfernen von Accessfiles passiert nur beim (neu) Laden von Beiträgen oder Übersichtsseiten. Das heißt z.B.,........ohne die jeweilige Seite im Frontend neu zu laden, hat sich (auch) bei den Accessfiles noch nichts getan.
Und deshalb kann man auf die Beiträge (wenn man den kompletten Link dazu hat) auch zugreifen, wenn sie nach dem Ablauf(datum) wieder versteckt werden? Verstehe... Und mit Neu-Laden meinst Du Neu-Speichern, oder? Denn sonst würde sich ja nix ändern, nur wenn ich die Seite neu lade....
das bedeutet also, wenn die suchmaschinenbots in der "sichtbaren" Zeit der Seite diese im Index listen, bleibt sie jederzeit auffindbar und auch abrufbar, bis ich diese nochmals abspeichere...OK, habe ja keine Staatsgeheimnisse die ich temporär anzeigen lasse
Danke Dir/Euch für die Arbeit und schönen Sonntag noch!
WBCE 1.6.3 - Fraggy 2.7.1 - PHP 8.3.14- All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
Nein, das ist nicht ganz korrekt.
Mit Neuladen meine ich Neuladen der Seite im Frontend, also durch Klick auf "Aktualisieren" oder F5 bzw. einfach den Aufruf der Seite.
Das heißt, wenn ein Bot oder Besuchy eine Übersichtsseite aufruft, werden im Hintergrund fehlende Accessfiles von gerade online gegangenen Beiträgen erzeugt und von gerade abgelaufenen gelöscht.
Last edited by florian (18.06.2023 15:05:10)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
ok, got it, danke;
ändert aber nichts an der Möglichkeit des direkten Zugriffs, wenn man den Link kennt. Passt für mich aber.
WBCE 1.6.3 - Fraggy 2.7.1 - PHP 8.3.14- All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
Online
Tausche mal die functions.inc.php durch die hier angefügte aus (zurück in .php umbenennen).
Den Würgaround braucht es dann (hoffentlich ) nicht mehr.Eine Anmerkung: Das ganze Erzeugen/Entfernen von Accessfiles passiert nur beim (neu) Laden von Beiträgen oder Übersichtsseiten.
Das heißt z.B., wenn Du einen zeitgesteuerten Beitrag auf 8:30 stellst und um 8:31 ins Dateisystem oder auf die Übersichtsseite oder einen vorheriger/nächster-Beitrag-Link schaust, ohne die jeweilige Seite im Frontend neu zu laden, hat sich (auch) bei den Accessfiles noch nichts getan.
ist dieser Fix eigentlich nicht ins NWI eingeflossen? Ich glaube mich zu erinnern, diesen bei mir auch eingespielt zu haben und dann waren die Probleme mit den Access-Files weg. Jetzt habe ich das Update auf 1.6.3 eingespielt und entdecke, dass Access-Files wieder bei manchen Beiträgen fehlen (oder ist das ein neues Problem, das sich nur in der gleichen Art äußert?)
Offline
ist dieser Fix eigentlich nicht ins NWI eingeflossen? Ich glaube mich zu erinnern, diesen bei mir auch eingespielt zu haben und dann waren die Probleme mit den Access-Files weg. Jetzt habe ich das Update auf 1.6.3 eingespielt und entdecke, dass Access-Files wieder bei manchen Beiträgen fehlen (oder ist das ein neues Problem, das sich nur in der gleichen Art äußert?)
gerade recherchiert, aber der genannte Fix ist als v5.0.22 mit Commit 89f55f9 eingeflossen. Ich suche mal, ob ich noch mehr Posts ohne access file habe
Offline
Hmm... das war jetzt der einzige Post mit dem Problem. Allerdings war der erst seit heute früh veröffentlicht. Vielleicht hatte den einfach sonst noch keiner aufgerufen. Und ich bin über das integrierte getNewItems-Droplet rein gegangen. Vielleicht hätte ich nur die NWI-Seite einmal explizit aufrufen müssen...
Offline
aber eigentlich hätte mein eigener Seitenaufruf ja schon das Accessfile erzeugen müssen.
Nun ja, was auch immer das war, vielleicht ein Schluckauf vom Filesystem:)
Ich beobachte das mal weiter
Offline
florian