WebsiteBaker Support (2.13.x) > Hilfe & Support (deutsch)

Seiten "direkt" editieren geht nicht mehr (Uncatched exception)

(1/5) > >>

bytex:
Hallo zusammen,

ich glaube mein Hoster hat irgendetwas verändert, so dass die folgende Funktion nicht mehr funktioniert. Kürzlich ging es noch. Vorab: Falls es dafür mittlerweile ein Droplet oder eine andere elegante Lösung gibt: Bitte nicht weiter lesen, sondern mir einen Hinweis geben.
Ich möchte, dass wenn man sich als Admin oder Editor mit den passenden Rechten anmeldet, die Seite direkt mit einem Klick editieren kann. Dazu hatte ich im Template entsprechenden Code, der dieses überprüft und ggf. ein Symbol zum Editieren einblendet. Dieses funktioniert nicht mehr. Sobald ich mich anmelde und eigentlich das Symbol zum Editieren eingeblendet werden sollte, bekomme ich eine Uncatched exception - Meldung und zwar in der Zeile mit "$database = new database();". Leider bin ich zu unwissend, das Problem zu verstehen und um den Code wirklich im Detail zu verstehen - hatte den irgendwann mal irgendwo übernommen.


--- Code: ---<?php  
if (is_numeric($wb->get_session('USER_ID'))) {
// Get permissons
if ($page_id) { $this_page = $page_id; }
else { $this_page = $wb->default_page_id; }
$database = new database();
$results = $database->query("SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$this_page'");
$results_array = $results->fetchRow();
$old_admin_groups = explode(',', $results_array['admin_groups']);
$old_admin_users = explode(',', $results_array['admin_users']);
$this_user = $wb->get_session('GROUP_ID');
if (is_numeric(array_search($this_user, $old_admin_groups)) )
{
?>
<a href="<?php echo ADMIN_URL; ?>/pages/modify.php?page_id=
<?php 
if ($page_id) { echo $page_id; }
else { echo  $wb->default_page_id; }
?>
" target="_blank"><img title='Seite bearbeiten' border=0 src="<?php echo ADMIN_URL ?>/images/modify_16.png" alt="<?php echo $HEADING['MODIFY_PAGE']; ?>" /></a>&nbsp;&nbsp;
<?php } ?>     
<?php } ?>

--- End code ---

Bin für jede Hilfe dankbar.
LG
bytex

PS: Die genaue Fehlermeldung war: There was an uncatched exception
Call to private database::__construct() from invalid context
in line (208) of (/templates/xyz/index.php):

dbs:
Moin, du hättest auch einmal in die Forumsuche "$database = new database();" eingeben können (oder über Google).
Jedenfalls muss die Zeile raus. Auskommentieren am Zeilenanfang mit Doppelslash // geht auch.
Hoffe hilft.

bytex:
Danke für die schnelle Hilfe.  (Y) Tatsächlich reicht es aus, diese Zeile auszukommentieren. Ich verstehe zwar nicht, warum das Programm dennoch läuft, weil $database da ja "deklariert" oder instanziiert wird. Aber ich habe leider auch zu wenig Erfahrung mit php. Offenbar gibt es $database schon vorher.

LG
bytex

dbs:
WB stellt $database global bereit. Es ist also schon da, deshalb beisst sich das dann, wenn es nochmal aufgerufen wird.
Ob die Erklärung stimmt, weiß ich aber auch nicht so genau. :-)

Luisehahne:

--- Quote from: dbs on September 12, 2021, 12:21:47 PM ---WB stellt $database global bereit. Es ist also schon da, deshalb beisst sich das dann, wenn es nochmal aufgerufen wird.
Ob die Erklärung stimmt, weiß ich aber auch nicht so genau. :-)

--- End quote ---

Korrekt  (Y)

Dietmar

Navigation

[0] Message Index

[#] Next page

Go to full version