WebsiteBaker Community Forum
WebsiteBaker Support (2.13.x) => General Help & Support =>
Hilfe & Support (deutsch) => Topic started by: Siggit on July 17, 2023, 12:03:54 PM
-
Hallo,
ich wollte gerade den Page Cloner 1.0.7. verwenden.
Benutze gerade die WB Version 2.13.2 r133.
Der Page Cloner ist installiert, wenn ich Ihn unter Admin Tools aufrufe bekomme ich folgende Fehlermeldung:
Wähle die Seite die kopiert werden soll
Seitentitel: Menütitel: Sichtbarkeit:
There was an uncatched exception
Call to private database::__construct() from invalid context
in line (97) of (/modules/pagecloner/tool.php):
In Zeile 97 der tool.php steht:
$database = new database();
Mit diesem Modul könnte ich die Seitenstruktur, schneller aufbauen da ich an einigen Stellen mehrere Unterseiten benötige.
Danke im voraus.
Siggi
-
die angezeigte Zeile muß auf jeden Fall raus bzw deaktiviert / auskommentiert werden, z.b. durch Voranstellen zweier //
Ob das ausreicht, weiß ich nicht. Häng das gezippte Modul bitte mal an deine nächste Antwort dran
-
schon gefunden.
die genannte Version 1.0.7 stammt von den Kollegen bei WBCE und ist dementsprechend auf dieses CMS ausgerichtet. Es ist also mit ein, zwei Änderungen nicht getan
-
Danke dir,
gibt es ein Modul mit dem ich Seiten klonen kann für WB?
Grüße Siggi
-
Hallo,
habe jetzt noch das gefunden:
https://forum.WebsiteBaker.org/index.php/topic,31860.msg223039.html#msg223039 (https://forum.WebsiteBaker.org/index.php/topic,31860.msg223039.html#msg223039)
Download:
https://forum.WebsiteBaker.org/index.php?action=dlattach;topic=31860.0;attach=14056 (https://forum.WebsiteBaker.org/index.php?action=dlattach;topic=31860.0;attach=14056)
Habe mir dort die Page Cloner Version 0.66 herunter geladen und installiert.
bekomme jetzt folgende Fehlermeldung:
There was an uncatched exception
Class 'Template' not found
in line (80) of (/modules/pagecloner/tool_clone.php):
ab Zeile 80 steht:
// Setup template object
$template = new Template(WB_PATH.'/modules/pagecloner');
$template->set_file('page', 'template.html');
$template->set_block('page', 'main_block', 'main');
Habe die Zeilen testweise auskommentiert dann folgt die Fehlermeldung in der nächsten Zeile.
Danach kommt die Meldung:
There was an uncatched exception
Call to a member function set_block() on null
in line (121) of (/modules/pagecloner/tool_clone.php):
Dort steht:
$template->set_block('main_block', 'page_list_block2', 'page_list2');
Wenn ich die auskommentiere kommt eine weiße Seite. Kann ja meiner Meinung nach nur mit dem template vom Page Cloner was zu tun haben.
Vielleicht hat ja noch jemand eine Idee.
Grüße Siggi
-
Habe den Code in Zeile 80 so abgeändert:
// Setup template object
use vendor\phplib\Template;
if(!class_exists('Template')){ require(WB_PATH.'/include/phplib/template.inc');}
$template = new Template(WB_PATH.'/modules/pagecloner');
$template->set_file('page', 'template.html');
$template->set_block('page', 'main_block', 'main');
Hatte damit leider auch keinen Erfolg.
-
Ich hab mir mal die Version 0.66 vorgenommen und eine 0.67 daraus gemacht und erfolgreich mit WB 2.13.3 r166 mit php8.1 durch getestet.
Ist als Anhang dran gehängt.
Viel Spaß beim testen.
Was habe ich geändert:
An zwei Stellen musste der Weg zum Template eingefügt werden
if (!class_exists('Template')){ require(WB_PATH.'/include/phplib/template.inc');}
wurde direkt nach// Setup template object
eingefügt.
Einmal in der tool.php und einmal in der tool_clone.php
und dann noch ein bisschen Coding Standarts.
aus:
get_user_id()
wurde getUserId()
und aus
get_group_id()
wurde getGroupId()
in einigen Dateien
Gefunden durch den tollen ErrorLogger, der seines gleichen sucht.
-
Super Arbeit! (Y) (Y) (Y)
Es funktioniert, auch mit mehreren Abschnitten. Habe es mit wysiwyg und einem Minislider getestet.
In meiner error.log im var Verzeichnis habe ich keine Fehler angezeigt bekommen und bei Ionos mit einer Sever error.log ist das so ein Thema für sich, musste die bisher immer über den Support aktivieren lassen.
Danke nochmal :-)
-
Danke für die Arbeit (Y)!
Habe das Modul gerade installiert (2.12.2 R379 unter PHP 7.4), leider eine Fehlermeldung:
There was an uncatched exception
Call to undefined method admin::getGroupId()
in line (122) of (/modules/pagecloner/tool.php):
Verschwindet die beim Update auf die aktuelle WB-Version?
Viele Grüße
masju
-
Habe das Modul gerade installiert (2.12.2 R379 unter PHP 7.4), leider eine Fehlermeldung:
There was an uncatched exception
Call to undefined method admin::getGroupId()
in line (122) of (/modules/pagecloner/tool.php):
Verschwindet die beim Update auf die aktuelle WB-Version?
Das alte Modul (Vers 0.66) wurde repariert und das natürlich für die aktuellen WB-Versionen, weil wir eben davon ausgehen, das man auch aktuelle WB-Versionen benutzt, schon allein, weil der Provider das fordert durch hochsetzen der PHP-Version.
die angemahnte Funktion getGroupId() und später auch getUserId() gab ist in dieser über 5 Jahre alten WB-Version noch nicht. Sie ersetzten die alten Funktionen get_group_id() bzw get_user_id(), deren Namen im Zuge des Umstieges auf OOP auf die aktuellen Coding-Standards angepasst wurde. Dort heißt es z.b. grob und einfach zusammengefaßt:
Funktionen
Funktionsnamen sind beschreibend, erster Buchstabe klein (Präfix zählt nicht), jedes "neue" Wort groß
Vor die Beschreibung sollte der Paketname gesetzt werden (klein) um Kollisionen mit anderen Funktionsnamen zu vermeiden
Bei der Definition soll der Original K&R Einrückungsstil verwendet werden (siehe Bsp.; ich persönlich bevorzuge aber ein einfaches Leerzeichen vor der öffnenden geschweiften Klammer)
Bei Aufrufen kein Leerzeichen nach Funktionsnamen, der öffnenden Runden Klammer und dem letzten Parameter
Leerzeichen nach Kommas zur Parametertrennung und der schließenden runden Klammer
Deine gepostete Fehlermeldung besagt, das diese Funktion nicht gefunden wurde, weil es sie (noch) nicht gibt in dieser WB-Version. Wird in den aktuellen WB-Versionen solch alte Funktion aufgerufen, wird eine Info-Meldung gesetzt und intern die neue Funktion verwendet. Diese Methode läßt Freiraum, um es zu reparieren. Ab WB 3 wird es dann keine Info mehr geben und die Reaktion wird an PHP angepasst, wo es dann einen Scriptabbruch geben wird.
Willst du unbedingt bei deiner alten WB-Version bleiben, brauchst du auch die alte Modul-Version dazu. Der entsprechende Download-Link wurde oben gepostet. Da es keine Modul-Downgrades gibt in WB, muß die neueste Modul-Version 0.67 erst deinstalliert werden, um danach die alte Version 0.66 zu installieren
-
Okay, prima, vielen Dank für die ausführliche Antwort. Dann mache ich beizeiten mal ein Update :-)
Gruß
masju
-
war ja geschlossen - Anfrage in neuem Thread geöffnet!