Fatal error in class.frontend.php

Gast

Ruud's Minigallery hat ja solch ähnliche Lösung drin. Ein Text-Feld, pro Zeile ein Titel - das ist machbar bei 10 oder 20 Bildern. Nun hab ich beispielsweise 100 und im Idealfall dazu 100 Titel in der Liste und nun leg ich ein neues Bild in den Ordner rein, dann kommt die ganze Reihung durcheinander, dann muß man gut zählen und entsprechend da, wo es hingehört, eine neue Zeile einfügen - es wäre aber wohl vom Grunsatz her die beste Möglichkeit, wenn man beim Grundprinzip des Moduls bleiben möchte.
Und selbst mit einer Darstellung in Tabelle, links ein Thumb, rechts der Titel - kommt ein Bild in diese Reihe, muß man vielleicht 90 von 100 Titel ändern

evaki

#25
Nettes Angebot!
Pfad oder Gallerytitle, das hatte man wohl mal per Spiel mit den vorhandenen Variablen gemacht, aber wieder aufgegeben, da der Schwerpunkt auf aussagekräfigen Dateinamen lag. Auch wurde versuchsweise ein Array (ob neues oder vorh. -keine Ahnung) "angetastet" (Buffer oder so... keine Ahnung wie gehabt) um die Pfadnamen "bearbeiten" zu können. Vermutlich sollte das Ergebnis dann unter dem Attribut "Title" ausgegeben werden, was zumindest nahe liegt. Mehr als die 06-dev hab ich z.Z. leider nicht, sonst könnte man evtl. sehen was da schon versucht wurde.

Nee, ist schon sehr gut so, was Du da anpeilst. Soll ja hauptsächlich als Update dienen.
MfG. Evaki

Gast

QuoteZumindest ist aber den Nochnutzern erstmal geholfen.

und funktioniert ja auch so

zu den Pfaden...
ist eigentlich eher ein "Grundproblem des Moduls". Es liest Verzeichnisse aus, nix, was in der Datenbank gespeichert ist, somit auch nix, was man irgendwo zuordnen könnte. Man kann es natürlich machen wie die Foldergallery, Verzeichnis lesen, Bilder in der Datenbank speichern, dann dazu Titel und Beschreibung angeben. Aber dann braucht es das Modul nicht, kann man gleich die FG nehmen und ein Template dieser Form erstellen.

Um am Original zu bleiben, hab ich auch in der neuen Version die alte Funktion übernommen, also für das alt- und das title-Attribut den Pfad eingesetzt. Was ich machen könnte, wäre ein Schalter in den Settings, Pfad oder Gallerytitle. Den Bildnamen zerlegen bringt auch nicht viel. In den meisten Fällen (wie bei mir) sind es Zahlen, also nix mit Aussagekraft.

evaki

#23
Jo, damit ist's an dieser Stelle optimiert. - ohne doppelmoppel  :-D
Mit -dev wird in der "Sandkiste" alles bezeichnet was fehlerbereingt ist, aber TODO und anderes noch nicht berücksichtigt ist. Weiß nur, daß die Pfadangaben in den Thumbs und Bildern als überflüssig, wenn nicht gar störend empfunden wurden. Um nicht neu programmieren zu müssen, weil Altmodule primär nur gefixt werden sollen, wollte man es evtl. nur soweit ändern, die Pfade rauszuschmeißen und dafür die Bilddateinamen aussagekräftiger gestalten. Übrigens nur aufgrund der Meldungen hier aus dem Forum. Soweit so gut. Nur liegt das schon wieder za. 14 Tage dort, und ich weiß nicht ob's beim rudimentären Fix bleibt.

Zumindest ist aber den Nochnutzern erstmal geholfen.
MfG. Evaki

Gast

weil ich es gerade lese - aus der im vorherigem Post angehängten view_dev! - 06.php
vielleicht interessiert es jemand, der auch gern mit PHP arbeitet

if (count($all_images)>0) {
        
$images array_slice$all_images$start$settings['thumbs_per_page']);
}
if (
natsort($all_images)>0) {
        
$images array_slice$all_images$start$settings['thumbs_per_page']);
}


Zur Erklärung:
$all_images ist ein Array mit allen Bildern bzw hier sogar Dateien, die im vorgegebenen Verzeichnis eingelesen wurden

count() soll die Teile des Array's zählen

array_slice() soll die Teile entfernen, die nicht den Vorgaben entsprechen. Im speziellen Fall gibt es einen Anfangswert und die Anzahl der Bilder pro Seite. Haben wir 100 Bilder insgesamt und wollen 20 Bilder pro Seite zeigen, macht das 100 / 20 = 5 Unterseiten a 20 Bilder, $start wäre demnach auf Seite 1 = 0, auf Seite 3 = 60.
array_slice() entfernt auf Seite 3 die Einträge 0 - 59 und 80 - 99 aus dem $all_images-Array, auf Seite 1 die Einträge 20 - 99 aus dem $all_images-Array

natsort()  - ohne natsort gäbe es die Reihenfolge beim Einlesen
1 - bild1.jpg
2 - bild10.jpg
3 - bild2.jpg

natsort() stellt eine natürliche Reihenfolge her, also bild10 hinter bild 2

obiger Code würde also den $all_images-Array zuerst zählen, dann kürzen um die Bilder die nicht benötigt werden, dann sortieren und nochmals kürzen

dieser Code wäre ausreichend
if (count($all_images)>0) {
        
$images array_slice$all_images$start$settings['thumbs_per_page']);
}
natsort($all_images);
}


P.S.: ich habe das Modul komplett recoded, als eigenständiges Modul wäre es fertig, ich möchte aber gern eine Upgradefähigkeit zur alten, originalen Swiftgallery, soll heißen, ich brauch noch etwas Zeit, um das Upgrade entsprechend anzupassen. Der Heinz (bbs2) hat mir dafür seine SwiftGallery-Backups zur Verfügung gestellt, so das auch etwas realistisches zum Testen da ist.

evaki

#21
Anbei: swift-fix-01a.zip: utf-8 ohne BOM
(wenn der Editor nicht gesponnen hat, und alles gut gegangen ist  :roll: )

dbs

Ok, verstanden. Die Fixes haben geholfen.
(die view.php im swift-fix-01.zip ist ANSI)
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

Gast

Quote from: dbs on March 09, 2019, 11:57:35 AM
Weiß nichts vom anderen Topic, war da dies dabei?
Quote[E_WARNING] /modules/swift/view.php:[80] from /templates/my-template/index.php:[206] page_content "count(): Parameter must be an array or an object that implements Countable"

in Zeile 206 der index steht
ob_start(); page_content(1); $main       = ob_get_clean();

PHP7.3, WB 2.12.1 inkl. Fixes

bedeutet mit "einfachen Worten" : die index.php gibt in Zeile 206 die Order, den page_content einzulesen - ist also so gesehen der "Auslöser", beim Einlesen des Page-Contents wird dann der Count-Fehler in /modules/swift/view.php:[80] entdeckt.
count() reagiert etwas empfindlich auf verschachtelte Anweisungen  und mag dann lieber eine Klammer mehr. Die Sache aufzusplitten ist aber ein einfacher Weg, diesem Problem aus dem Weg zu gehen

evaki

#18
das war der :
https://forum.WebsiteBaker.org/index.php/topic,31333.msg218689.html#msg218689
ja, und dat Count-Dingens. Im neuen Script wird das wohl mit einem Splitten der Anweisung und nacheinander ausführen gelöst.
Und wie gehabt, weiß nicht ob noch was aus dem Anwenderkreis hierzu kommt.


Tja, und zu "in Zeile 206 der index steht ....." fällt mir im Moment garnichts ein. (ich assoziiere nichts  8-) ) Bin ich wieder wach, oder tu ich nur so?

Nachtrag zu Zeile 206: Könnte Dir wahrscheinlich Jacobi erklären, da der weiß wie das Paket für die Ausgabe im Frontend geschnürt wird.

In view.php:[80] sitzt der eigentliche Fehler
MfG. Evaki

dbs

Weiß nichts vom anderen Topic, war da dies dabei?
Quote[E_WARNING] /modules/swift/view.php:[80] from /templates/my-template/index.php:[206] page_content "count(): Parameter must be an array or an object that implements Countable"

in Zeile 206 der index steht
ob_start(); page_content(1); $main       = ob_get_clean();

PHP7.3, WB 2.12.1 inkl. Fixes
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

evaki

#16
Eine durchzechte Nacht kommt anscheinend doch nicht so gut.
Nee, mißverstanden hab ich's nicht, ich war einfach nur noch zu doof zum Lesen.
Ja, da steht ganz klar "post zuvor angehängte neue swift.php" - tschuldigung...
War wohl noch der Restalkohol
Oder einfach nur der Kater, trotz des vielen Wassertrinkens.
Aber endlich mal 'ne gescheite Begründung von mir  :-D   
Trotzdem, mit zwanzig ging das doch alles  :heul:

Hattest Du zuvor, also vor dem Austausch der Dateien, die gleichen Meldungen wie im anderen Topic angegeben?  Bin neugierig drauf, ob noch was von anderen Usern kommt.
MfG. Evaki




bbs2

Sorry,

ich habe doch, wie berichtet, genau Deine view.php eingestellt und teste diese.
Vielleicht hast Du bei meinem vorherigen post einiges missverstanden.
Ich habe mich sehr gefreut, dass Du daran arbeitest, denn meine PHP-Fähigkeiten reichen dazu nicht aus.

Gebe mir für die Test, letztlich durch viele Besucher der Website, noch etwas Zeit.
Wenn Fehler auftreten, berichte ich. Immerhin läuft das swift-Modul auf mehr als 50 Unterseiten (galleries).

Viele Grüße und herzlichen Dank
Heinz

evaki

#14
Es wurde an anderer Stelle schon gezeigt, daß das Modul Fehlermeldungen ausgibt.
Wenn das bei Deinem Server/CMS nicht geschieht, liegen möglicherweise nicht die entsprechenden Voraussetzungen vor. 

Wenn geänderte Scripte des Moduls hier eingestellt werden, ist's wahrscheinlich begründet.
Wird ja nicht gemacht, weil wir alle sooooooooo viel Zeit haben.  :-D :-D :-D
Schönes Wochenende noch.
MfG. Evaki

bbs2


evaki

Nochmal was abgeholt (Anhang).
Die ersten Fixes. Ob nun nachhaltig oder noch "bedürftig", müßte noch überprüft werden.
Mir liegen keine Kommentare hierfür vor, also ob Schnellschuß oder so.
Jedenfalls gibt's mindestens zwei Meldungen nicht mehr.
Vielleicht kommt ja noch ein gescheiter/endgültiger Fix dabei raus.

evaki

#11
Mal eben von Anwendertestseite geholt (Anhang).
Sieht man mal von den aktuellen Fehlermeldungen ab, stellt sich die Frage, ob der jeweilige Pfad einer Bildergalerie nicht auch unter den Galerieeinstellungen (BE) erscheinen müßte, also bei Anwahl/Auswahl der jeweiligen Galerie, und nicht nur bei der FE-Titelausgabe (hover). Da ich nicht weiß, ob das jemals (WB2.7, 2.8 8) ) funktioniert hat, könnte jemand schauen, ob das überhaupt vorgesehen war/ist. 

Wer darüber hinaus Bastellaune verspürt:
Statt nun wie einige Male vorgeschlagen eine Erweiterung für Beschreibungen hinzuzufügen, könnte auch die view geändert werden, so als Kompromiß. Hierbei "Titel" ohne Pfadangabe, dafür aber mit aussagekräftigen Bilddateinamen.

Gast

Ich bräuchte mal ein reales, funktionierendes Backup der Datenbanktabellen mod_swift und mod_swift_settings. Wäre schön, wenn mir das jemand zusenden könnte.
Mailadresse: uwe@jacobi22.com

Danke

evaki

Die Swift Gallery schmeißt nachweislich Fehler!, wurde an anderer Stelle - wie Dir bekannt - drauf hingewiesen, auch wenn diese ohne Beeinträchtigung zu laufen scheint.
Mit der nächsten PHP-Version könnte es möglicherweise damit schon vorbei sein.
Könnte, hätte, Fahrradkette - Vorsicht ist die Mutter des Eierkartons...
MfG. Evaki

bbs2

Hallo,

Danke für die Tipps. Allerdings hänge ich nicht an alten Modulen. Aus der "alten Zeit" benutze ich nur noch ein
einziges Modul, nämlich die Swift Gallery. Dieses Modul selbst bringt keine Fehlermeldungen mehr, zumindest in der
php_error.log.php. Ich prüfe nun noch über die logfile im Backend.

Alle anderen Module sind auf dem neuesten, verfügbaren Stand für 2.12.1. Von der Swift gallery will ich wegkommen. Da
es sehr viele Seiten sind scheue ich noch etwas die Arbeit. Leider ist das Angebot an Modulen für 2.12.1 und php 7.x
noch etwas dünn. Dennoch alle Achtung für die "Macher" von 2.12.1; Gratulation.

Gruß
Heinz Werner

Gast

Zuerst kontrollieren, ob unter WB-Optionen -> Erweiterte Optionen -> Servereinstellungen -> PHP-Fehlerberichte mindestens "Production" gewählt ist. Falls nicht, entsprechend einstellen und speichern

dann im Top-Menü des Backends auf den X-Button klicken, um die error-log anzuschauen. Klicke dort auf auf "Delete error-log"

Gehe nun ins Frontend und klicke jede Seite und Unterseite einmal durch - irgendwann wird der Fehler auftauchen. und da es ein Fatal Error ist, bricht das Script an dieser Stelle ab, es geht also auch Inhalt verloren. Meist wird das Template nicht komplett geladen, eine Sidebar fehlt usw.
Nach jeder Seite schaust du dir einmal die error-log an. Auf einer der Seiten wird es auftauchen.

Die Darstellung der Fehlermeldung dieser Art erfolgt in der Regel in der Default-Farbe des Browsers, was in den allermeisten Fällen wohl schwarz sein wird. Da muß man also aufpassen bei dunklen Hintergründen.

In Frage kommt alles, was eine Ausgabe erzeugt, Module, Droplets, Snippets, selbst ein Modul, das im Backend arbeitet.

Möglicherweise verschwindet es von allein, wenn du die Module mal upgradest - ich persönlich würde aber danach suchen und nicht drauf hoffen, das es vielleicht allein verschwindet. Da du aber die Alt-Versionen von Modulen zu bevorzugen scheinst, wird die error-log sicherlich nicht leer sein. Vielleicht ist sie auch schon so voll, das WB sie nicht mehr anzeigen kann. In diesem Fall sollte man sie per FTP herunterladen zum Nachlesen und das Original im Ordner /var/logs/ löschen.

evaki

#6
QuoteEvtl. ist der Zusammenhang irgendwann mal erkennbar.
Sicherlich, denn bald kommt wieder der Osterhase und sagt:
"PHP Fatal error:  Cannot declare class frontend"  :-D :-D :-D
(hoffentlich lacht noch jemand)

Falls das nun nicht lustig rüber kam, wie wärs "mit'm bisschen genauer"? - Kontext un so -
Bei "irgendwann mal erkennbar." ist's aber wohl auch nicht so wichtig, wenn's sonst gut läuft...
Mit der nächsten PHP-Version zeigt sich das Problem vielleicht etwas deutlicher.

bbs2

Hallo,

vielleicht liegt es an Modulen, die als Überbleibsel aus WB 2.8.3 eigentlich noch gut laufen.
Evtl. ist der Zusammenhang irgendwann mal erkennbar.

Gruß

Heinz

dbs

Moinsen. An WB wird es nicht liegen.
Vielleicht an einem deiner Module (welche nutzt du, sind sie aktuell?), deinem Template oder an eigenem PHP-Code wo die class frontend nochmal aufgerufen wird.
In den bisherigen Tests ist das jedenfalls noch nie aufgetaucht.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

bbs2

Sorry für die ungenaue Angabe.
Ich nutze bereits 2.12.1.

Heinz

hgs

Ich würde schon mal auf die aktuelle Version WB 2.12.1 machen und dann schauen ob der Fehler immer noch auftaucht.
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)