Funktionstest: Guestbook 2.8.7

Testberichte zu kompatiblen Addons; bitte Anleitung beachten!
Antworten
Benutzeravatar
shadowcat
Administrator
Beiträge: 5278
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Funktionstest: Guestbook 2.8.7

Beitrag von shadowcat »

Name des Moduls:
Guestbook

Quelle:
http://addon.websitebaker.org/pages/en/ ... d=0601F521

Getestete Version:
2.8.7

Getestet mit BlackCat Version:
1.0.3 / 1.1.1

Ergebnis Installation:
OK

Ergebnis Seite hinzufügen (bei Seitenmodul):
OK

Darstellung im Frontend:
Soweit ok, allerdings kein Eintrag möglich. (Springt automatisch und ohne Fehlermeldung wieder zur Übersichtsseite zurück.)
In BlackCat v1.1.1: Seite scheinbar leer, da Sprachdatei nicht geladen (Patch siehe unten). Danach sind Einträge möglich, allerdings ist der Link "Ins Gästebuch eintragen" nach erfolgter Eintragung defekt und leitet auf die Hauptseite um. Ansonsten scheint es zu funktionieren.

Darstellung im Backend:
Zerstört die Darstellung im Freshcat-Theme. Scrollen (z.B. im Einstellungen-Dialog) dadurch nicht möglich. Davon abgesehen funktioniert es aber.

Sonstige Beobachtungen:
Lädt CSS in den body, was nicht valide ist.

Notwendige Patches

Datei backend.js
komplett löschen (oder umbenennen, z.B. gbkbackend.js; dann wird sie nicht mehr automatisch geladen)

Datei view.php
Zeilen 27-32

Code: Alles auswählen

// check if module language file exists for the language set by the user (e.g. DE, EN)
if(file_exists(WB_PATH.'/modules/guestbook/languages/'.LANGUAGE.'.php')) {
	require_once(WB_PATH.'/modules/guestbook/languages/'.LANGUAGE.'.php');
} else {
	require_once(WB_PATH.'/modules/guestbook/languages/EN.php');
}
ändern in

Code: Alles auswählen

// check if module language file exists for the language set by the user (e.g. DE, EN)
if(file_exists(WB_PATH.'/modules/guestbook/languages/'.LANGUAGE.'.php')) {
	require WB_PATH.'/modules/guestbook/languages/'.LANGUAGE.'.php';
} else {
	require WB_PATH.'/modules/guestbook/languages/EN.php';
}
Datei delete.php
Zeile 27:

Code: Alles auswählen

if(!defined('WB_PATH')) die(header('Location: index.php'));
DAHINTER einfügen:

Code: Alles auswählen

global $database;
Dateianhänge
2015-05-04 10_44_39-BlackCat CMS » Administration - PAGES.png
2015-05-04 10_44_39-BlackCat CMS » Administration - PAGES.png (62.73 KiB) 6366 mal betrachtet
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
Dwingo
Beiträge: 26
Registriert: Fr 24. Apr 2015, 09:23
Wohnort: Bergkamen

Re: Funktionstest: Guestbook 2.8.7

Beitrag von Dwingo »

Name des Moduls:
Guestbook

Getestete Version:
2.8.7

Getestet mit BlackCat Version:
1.1.1

Sonstige Beobachtungen:
Mit dem Modul erzeugte Seiten lassen sich nicht löschen. Es wird zwar die "erste Stufe" angenommen und der Mülleimer wird angezeigt, endgültig löschen ist allerdings nicht möglich. Der Aufruf der Löschfunktion wird angenommen und die Sicherheitsabfrage erscheint, nach Bestätigung wird dann ein ein leeres Hinweisfenster mit OK Button angezeigt. Wird dieses bestätigt, hängt der Fortschrittsbalken unten links in einer Endlosschleife.

Sobald eine Gästebuchseite im Backend aufgerufen wird, funktioniert das Werkzeugsymbol für das Popupmenu bei keiner Seite mehr. Erst wenn eine andere Seite im Backend gewählt wird, steht die Funktion wieder zur Verfügung.
Testumgebung: XAMPP - Apache 2.4.23 | PHP 5.6.28 with xdebug 2.2.5 | MariaDB 10.1.19
BC Version: 1.2(.1)

// hack for ie browser (assuming that ie is a browser)

// I am not sure if we need this, but too scared to delete.
Benutzeravatar
Morpheus
Beiträge: 1050
Registriert: Do 8. Aug 2013, 10:49
Kontaktdaten:

Re: Funktionstest: Guestbook 2.8.7

Beitrag von Morpheus »

Hallo Dwingo,

Wenn Du ein Gästebuch suchst, kann man auch gut die Kommentarfunktion aus dem KitFramework nehmen.
So habe ich das hier gemacht.
http://www.bürger-hillscheid.de/page/gaestebuch.php

Hier steht wie es geht:
http://kitframework.webbird.de/de/conte ... er-das-cms

Allerdings sind Gästebücher, "glaub ich" aus der Mode gekommen! :(
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen!
Benutzeravatar
Dwingo
Beiträge: 26
Registriert: Fr 24. Apr 2015, 09:23
Wohnort: Bergkamen

Re: Funktionstest: Guestbook 2.8.7

Beitrag von Dwingo »

Danke für den Hinweis Morpheus. Für zukünftige Projekte werde ich mir das KitFramework mal anschauen.

Zur Beseitigung des Problems habe ich folgendes gefunden:

In der Datei modules/guestbook/backend.js sind jQuery 1.2.6 und jQuery textarea autogrow plugin direkt im Code eingebunden.
Ich habe diese beiden Bestandteile der Datei gelöscht und dadurch sind die oben geschilderten Anzeigeprobleme verschwunden.
Testumgebung: XAMPP - Apache 2.4.23 | PHP 5.6.28 with xdebug 2.2.5 | MariaDB 10.1.19
BC Version: 1.2(.1)

// hack for ie browser (assuming that ie is a browser)

// I am not sure if we need this, but too scared to delete.
Benutzeravatar
Dwingo
Beiträge: 26
Registriert: Fr 24. Apr 2015, 09:23
Wohnort: Bergkamen

Re: Funktionstest: Guestbook 2.8.7

Beitrag von Dwingo »

Das Gästebuch lässt mich einfach nicht los :D

Da ich für die Migration meiner WSB Installationen das Gästebuch übernehmen will, versuche ich es mit meinen bescheidenen PHP Kenntnissen irgendwie zum Laufen zu bringen.

Das o.g. entfernen des JQuery Scripts hat die Anzeigeprobleme im Backend beseitigt, der Link für neue Einträge wird allerdings noch nicht angezeigt.
Den Fehler habe ich gefunden: Das Array $MOD_GUESTBOOK wird nicht angelegt(nach langem Debuggen dann doch mal gesehen, das BC eine Logdatei anlegt :roll: ), da die DE.PHP aus dem Ordner Languages nicht geladen wird.
Warum kann ich mir allerdings nicht erklären. Die Datei ist ja vorhanden.
Also habe ich in der view.php ab Zeile 27 die Prüfung auf die existierende Datei entfernt und die Datei ohne Prüfung eingebunden mit

Code: Alles auswählen

   include_once(WB_PATH.'/modules/guestbook/languages/DE.php');
Ergebnis: Link wird nicht angezeigt.

Binde ich allerdings irgendeine der anderen Sprachfiles ein, erscheint der Link in der entsprechenden Sprache. Nur die DE.php funktioniert nicht.
Fehler habe ich in der Datei nicht gefunden, also mal was anderes probiert. Ich habe die Datei in DEU.php umbenannt und eingebunden und siehe da, der Link erscheint und funktioniert. Erklären kann ich mir das allerdings nicht.

In den Logfiles von BC wird bei eingebundener DE.php nur folgende Fehlermeldung ausgegeben:

Code: Alles auswählen

2015-05-03 15:25:39 - INFO --> [errorHandler()] lvl: 8 | msg:Undefined variable: MOD_GUESTBOOK | file:T:\xampp181\htdocs\bc_tf_test\modules\guestbook\view.php | ln:93 [ view.php:(145) ] 
Wenn ich mal eine nicht existierende Sprachdatei einbinde, bekomme ich wie zu erwarten in den Logs auch einen Hinweis das die Datei nicht vorhanden ist.

Code: Alles auswählen

2015-05-03 15:31:25 - WARN --> [errorHandler()] lvl: 2 | msg:include_once(): Failed opening 'T:\xampp181\htdocs\bc_tf_test/modules/guestbook/languages/DEx.php' for inclusion (include_path=';.;T:\xampp181\php\PEAR') | file:T:\xampp181\htdocs\bc_tf_test\modules\guestbook\view.php | ln:30 [ view.php:(140) ] 
Hat dazu vielleicht jemand einen Hinweis, warum die DE.php nicht geladen wird ?
Testumgebung: XAMPP - Apache 2.4.23 | PHP 5.6.28 with xdebug 2.2.5 | MariaDB 10.1.19
BC Version: 1.2(.1)

// hack for ie browser (assuming that ie is a browser)

// I am not sure if we need this, but too scared to delete.
Benutzeravatar
shadowcat
Administrator
Beiträge: 5278
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Funktionstest: Guestbook 2.8.7

Beitrag von shadowcat »

Ersetze include_once mit include, dann sollte es funktionieren.

Übrigens sollte man sowohl bei include(_once) als auch bei require(_once) auf die Klammerung verzichten. Das wird zwar toleriert, ist aber streng genommen ein Syntaxfehler, weil das keine Methoden sind.

Edit: Achso, erklären kann ich das. :D Der BlackCat Core bindet die vorhandenen Sprachdateien automatisch ein, bevor das Modul geladen wird. Die meisten WB-Module machen aber folgendes: Sie binden erst mal pauschal die EN.php ein und gucken dann, ob es für die aktuelle Sprache auch eine Datei gibt. Wenn ja, machen sie ein include_once. Da aber die Sprachdatei vorher schon vom BC-Core eingebunden wurde, funktioniert ein include_once nicht mehr - es wird ja explizit gesagt: Nur EINMAL einbinden.

Ersetzt man also include_once mit include, funktioniert das Ganze wieder.

Welche BC-Version hast Du? Eigentlich sollte der aktuelle Core (v1.1.1) alte Sprachdateien - also die von WB-Modulen - ignorieren.

Added in 13 minutes 42 seconds:
Also irgendwie find ich das peinlich...
Release history
v2.8.7 Nov 26, 2010 (ruebenwurzel)
- adapted guestbook for working with WB 2.9.x
(removed "$database = new database();" from gstbk_add.php)
- fixed an E_STRICT-Notice in PHP 5.x versions
(changed "mktime();" into "time();" in gstbk_save.php)
Added in 13 minutes 30 seconds:
Dwingo hat geschrieben:Mit dem Modul erzeugte Seiten lassen sich nicht löschen. Es wird zwar die "erste Stufe" angenommen und der Mülleimer wird angezeigt, endgültig löschen ist allerdings nicht möglich. Der Aufruf der Löschfunktion wird angenommen und die Sicherheitsabfrage erscheint, nach Bestätigung wird dann ein ein leeres Hinweisfenster mit OK Button angezeigt.
Wenn Du mit Firefox und Firebug arbeitest, kannst Du vor dem Aufruf des "endgültigen Löschens" die Firebug Konsole aufmachen. Dort wirst Du irgendeine Fehlermeldung sehen. Ich versuche das mal nachzustellen, aber bei mir ist schon das Frontend komplett leer. :lol: Also auch keine "Eintragen"-Option.

Edit: Der Fehler ist "Notice: Undefined variable: database in ...". Ein

Code: Alles auswählen

global $database;
am Anfang der delete.php wird das Problem lösen.

Anmerkung dazu: Wir wissen nicht, warum die Globals manchmal nicht da sind. Das ist keine Absicht und auch nicht immer der Fall.

Added in 12 minutes 10 seconds:
Ich hab mal im Eingangspost die bisher ermittelten Anpassungen ergänzt. Bei mir funktioniert es fast, bis auf den Link.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
Dwingo
Beiträge: 26
Registriert: Fr 24. Apr 2015, 09:23
Wohnort: Bergkamen

Re: Funktionstest: Guestbook 2.8.7

Beitrag von Dwingo »

Danke für die ausführlichen Erklärungen Bianka.

Die Vorgeschlagenen Änderungen funktionieren.
Welche BC-Version hast Du? Eigentlich sollte der aktuelle Core (v1.1.1) alte Sprachdateien - also die von WB-Modulen - ignorieren.
Ich nutze die Version 1.1.1 mit PHP 5.5.15. Die Daten der Site habe ich von WSB Version 2.8.3 SP3 Revision 1640 mit dem Migrationstool migriert.

Wenn du den Link zum Eintragen meinst, der erscheint bei mir und funktioniert auch.
ScreenShot Gästebuch.png
ScreenShot Gästebuch.png (19.47 KiB) 6359 mal betrachtet
Allerdings funktioniert jetzt das eigentliche Eintragen nicht mehr. Unter einer PHP 5.4x Version hat es noch geklappt.
Evtl. habe ich auch ein wenig zu viel daran rumgefrickelt :) Werde es nun noch mal komplett neu migrieren und dann mal schauen ob es funktioniert.
Testumgebung: XAMPP - Apache 2.4.23 | PHP 5.6.28 with xdebug 2.2.5 | MariaDB 10.1.19
BC Version: 1.2(.1)

// hack for ie browser (assuming that ie is a browser)

// I am not sure if we need this, but too scared to delete.
Benutzeravatar
shadowcat
Administrator
Beiträge: 5278
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Funktionstest: Guestbook 2.8.7

Beitrag von shadowcat »

Der Link erscheint schon, aber wenn man drauf klickt, kommt man auf die Einstiegsseite. Das ist _nur_ nach dem Verfassen eines Eintrags der Fall. Ich habe das Problem bis zur ASP-Absicherung verfolgt, kann es aber nicht erklären. Ich hatte dann keine Lust mehr, weiter zu forschen. :D Irgendwie ist das ja auch okay, wenn man schon einen Eintrag gemacht hat. :lol:

Edit: Ich teste hier lokal mit PHP 5.5, daran liegt's eher nicht.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5278
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Funktionstest: Guestbook 2.8.7

Beitrag von shadowcat »

Dwingo hat geschrieben:Mit dem Modul erzeugte Seiten lassen sich nicht löschen.
Ich habe mittlerweile den Fehler im Addons Helper gefunden, der das Problem verursacht. Ist dann in BC 1.2 behoben.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Antworten