WBCE CMS – Way Better Content Editing.
Du bist nicht angemeldet.
Hallo.
Ich habe WBCE neu installiert und eigentlich nicht viel gemacht.
Ein paar Seiten angelegt und etwas das Template daflagga angepasst.
Jetzt habe ich das Suchfeld (auf der Startseite) etwas angepasst und zum ersten mal ausprobier und da kommt der folgende Fehler:
Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\LWM1\modules\show_menu2\include.php on line 96
Auch durch den Aufruf der Seite direkt (/search/index.php) wird sofort der Fehler ausgegeben.
Kann mir einer sagen was da los ist und wie ich das beheben kann?
Danke.
Lösung: Beitrag #6 von stefanek
Beitrag geändert von neelix (31.10.2018 11:18:11)
★·.·´¯`·.·★ [ Neelix ] ★·.·´¯`·.·★
Offline
Ich kann den Fehler bestätigen, tritt ab PHP 7.2 auf. (Und zwar nicht nur bei uns ;-) - siehe auch php.net)
Abhilfe: in der /modules/showmenu2/include.php die Zeilen
if (count($wb->page) == 0 && defined('REFERRER_ID') && REFERRER_ID > 0) {
global $database;
$sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` WHERE `page_id` = '.REFERRER_ID.'';
$result = $database->query($sql);
if ($result->numRows() == 1) {
$wb->page = $result->fetchRow();
}
unset($result);
}
ändern zu
if (is_array($wb->page)) {
if (count($wb->page) == 0 && defined('REFERRER_ID') && REFERRER_ID > 0) {
global $database;
$sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` WHERE `page_id` = '.REFERRER_ID.'';
$result = $database->query($sql);
if ($result->numRows() == 1) {
$wb->page = $result->fetchRow();
}
unset($result);
}
}
Verwendung nur unter Vorbehalt, ich bin nicht so der PHP-Profi, vielleicht kann wer von den versierteren Programmierern da nochmal drüberschauen bzw. hat eine bessere Lösung?
Beitrag geändert von florian (30.10.2018 18:15:56)
Code allein macht nicht glücklich. Jetzt spenden!
Offline
Hi florian, erstmal danke schön.
Ich werde das mal testen und noch auf einen PHP-Profi warten.
Mal gucken was der dann dazu sagt ;-)
★·.·´¯`·.·★ [ Neelix ] ★·.·´¯`·.·★
Offline
>Eingebaut und es kommt bei mir der gleiche Fehler
★·.·´¯`·.·★ [ Neelix ] ★·.·´¯`·.·★
Offline
Die Änderung von Florian funktioniert schon, aber Achtung! die Stelle ist zweimal im Quelltext vorhanden:
- einmal um Zeile 96 rum (das ist die die Florian meint)
- und einmal um Zeile 436 rum in der Funktion show_breadcrumbs
... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...
Offline
neelix
Hallo neelix,
wenn Du magst, kannst Du es mit dieser Datei versuchen und einmal Rückmeldung geben:
https://raw.githubusercontent.com/WBCE/ … nclude.php
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
neelix
Verwendung nur unter Vorbehalt, ich bin nicht so der PHP-Profi, vielleicht kann wer von den versierteren Programmierern da nochmal drüberschauen bzw. hat eine bessere Lösung?
is_array() ist gut, reicht aber nicht immer aus.
Ab PHP Version 7.3.0. wird die Funktion is_countable() implementiert.
Ich habe auf GitHub einen PullRequest gemacht, der eine Polyfill Funktion bereitstellt, sodass die is_countable Funktion auch auf Systemen mit einer kleineren PHP Version verwendet werden kann.
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Den Polyfill PR hab ich in gemerged
Offline
stefanek
Hallo neelix,
wenn Du magst, kannst Du es mit dieser Datei versuchen und einmal Rückmeldung geben:
https://raw.githubusercontent.com/WBCE/ … nclude.phpGruß,
Christian
Hallo Christian,
vielen dank für den Hinweis und das bereistellen des Codes.
Ich habe es eingebaut und es funktioniert super !!!
Vielen dank !
Ich habe mein ersten Post bearbeitet und den Titel geändert, damit jeder weiss was er machen kann, falls noch mehr diesen Fehler haben.
PROBLEM GELÖST !
Beitrag geändert von neelix (31.10.2018 11:20:27)
★·.·´¯`·.·★ [ Neelix ] ★·.·´¯`·.·★
Offline
bernd, stefanek, thanks