WBCE CMS – Way Better Content Editing.
Du bist nicht angemeldet.
Guten Tag
Preface:
Zuerst einmal ein dickes Lob und drei Sterne ;-) für die viele Arbeit und Stunden die ihr in die 1.4.0 reingesteckt hab (und noch werdet).
Da ist ja nun einiges "unter der Motorhaube" angefasst worden
Ein paar kleine "Biester" hab ich (leider) hier _local_ noch auf dem //Schirm//
- osX 10.14.5
- MAMP 5.3 (367) [ Xdebug 2.7.2 - local ]
- WBCE 1.4.0 RC1
- frische Installation (Englisch)
- Debugmode (Developer "E2")
- StrictMode (class.database.php, Zeile 77 einkommentiert)
1) --- Neue Seite Anlegen :: News with Images, Title "n*!" (Typ und Seitentitel ist egal)
Error ==> "Field 'visibility_backup' doesn't have a default value"
Abhilfe:
~/wbce/admin/pages/add.php
Zeile ~:178
Einfügen (hinter 'admin_groups':
. '`visibility_backup`=\'\', '
2) --- Administration Tools » Account and Signups configuration
Warning ==> Warning: sprintf(): Too few arguments in /Applications/MAMP/htdocs/projekte/WBCE_CMS_140_RC/wbce/framework/Accounts.php on line 466
Hintergrund ist ein "verschluckte" Warning:
"Warning: Use of undefined constant UB_MOD_URL - assumed"
Abhilfe:
File: ~/wbce/framework/Accounts.php
Zeile: ~451
"WB_URL" statt "UB_MOD_URL"
3) --- Administration Tools » SEO Tool
Error ===> Error: Call to a member function fetchRow() on null in /Applications/MAMP/htdocs/projekte/WBCE_CMS_140_RC/wbce/modules/wbSeoTool/functions.php on line 69
SQL schlägt fehl, weil:
"
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'wbce_140_rc.s.module' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
"
Abhilfe:
File: ~/wbce/modules/wbSeoTool/functions.php
Zeile: ~51
SELECT ANY_VALUE(s.`module`), MAX(s.`publ_start` + s.`publ_end`)
"ANY_VALUE" vor das Feld schreiben ... [siehe:: https://dev.mysql.com/doc/refman/5.7/en … ling.html]
und
Zeile: ~~75 (hinter/unter "while($page = $oPages->fetchRow(MYSQL_ASSOC))")
$page["module"] = $page["ANY_VALUE(s.`module`)"];
den "Schlüssel" nomal //normal// in das assoz. array schreiben (sonst //scheppert// es weiter unten ...)
4) --- Administration Tools » Addon Monitor
Notice: Undefined variable: MENU in /Applications/MAMP/htdocs/projekte/WBCE_CMS_140_RC/wbce/modules/tool_account_settings/languages/EN.php on line 16
Abhilfe:
File: ~/wbce/modules/tool_account_settings/languages/EN.php
Zeile: ~13
global $MENU;
einsetzten oder ansonsten //direkt// über $GLOBALS["MENU"] refrenzieren __holen__
4.1 ) --- Administration Tools » Addon Monitor
"NewsReader" wird nicht gelistet obwohl geladen und auf einer Seite eingesetzt!
Liegt vielleicht am Type "Page, Preinit" ...
5) --- Administration Tools » More Security Settings
"Fingerprinting" ist nicht ausgewählt ... checkbox bleib auch nach dem Sichern nicht ausgewählt ...
Eintrag in der DB ist "btrueb" ... nicht "true" oder "false" ... (Tippfehler im Installer?)
Das war's schon (erst mal) ;-)
Gruß Kant
Sapere aude!
Offline
stefanek, florian, colinax, bernd, mrbaseman, webbird
Vielen Dank an Dich.
Werde es mir vorknöpfen und ausführlicher antworten wenn wieder am Rechner.
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
florian, colinax
Hallo Kant,
nochmals vielen Dank für Deine Bug Reports.
Ich habe einen Teil davon gleich überarbeitet.
(1)
News w/ Images
werden sich die Modulersteller drum kümmern, da sie noch an dem Modul arbeiten.
(2)
UB_MOD_URL
https://github.com/WBCE/WBCE_CMS/pull/4 … 3a22721ab5
Das habe ich tatsächlich übersehen gehabt.
Es wird ein erweitertes UserBase Modul kommen, welches dann diese Konstante setzt und davon Gebrauch macht.
Spuren davon sieht man auch in dem template form_preferences.twig
(3)
ANY_VALUE
Ich kriege es so leider nicht zum Laufen und sehe auch die Notice nicht, die Du siehst
Error ===> Error: Call to a member function fetchRow() on null in
Genau diese gleiche Error Notice bekomme ich, wenn ich mit ANY_VALUE in der SQL-Query arbeite.
(4)
$MENU
https://github.com/WBCE/WBCE_CMS/pull/4 … 4316a677da
OK, das habe ich korrigiert
(4.1)
"NewsReader" wird nicht gelistet obwohl geladen
https://github.com/WBCE/WBCE_CMS/pull/4 … 82c7f683e1
Ja, Du hast recht. Es liegt daran, dass es ein Hybrid Modul ist. Diese Version hat es bisher nicht berücksichtigt.
Ich habe es vorerst korrigiert, dass diese Module Trotzdem angezeigt werden.
Darüber hinaus wird grade an einem völlig neuem AddonMonitor gearbeitet, der in die WBCE v. 1.5 reinkommen wird.
(5)
More Security Settings
Diese Baustelle muss ich mir mit dem Team anschauen. Habe da noch nie richtig drauf geschaut und bis jetzt nie verstanden warum da b%sb bei den boolschen Werten verwendet wird.
Für die nächste Version (bzw. sehr zeitnah) haben wir uns auf dem Plan gesetzt den Core MYSQL Strict zu bekommen.
Da werden dann auch wahrscheinlich die Sachen wie das was Du unter Punkt (3) ansprichst berücksichtigt.
Wir können da auf jeden Fall Tipps gebrauchen (oder ich auf jeden Fall zumindest).
In dieser Version hat sich tatsächlich einiges unter der Haube getan und wie Du richtig anmerkst, da wird noch einiges nachkommen.
Übrigens möchte ich mich bei dieser Gelegenheit beim User @mrbaseman bedanken, ohne dem vieles gar nicht möglich geworden wäre in diesem Release.
Grüße,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
florian, bernd, kant, colinax
Hm ...
bei
1) ist eine core Geschichte ... //Modul// ist egal ... kannst genauso wysiwyg/code2/ nehmen ...
siehe: ~/wbce/admin/pages/add.php
bei 3) kann es sich auch um die mySQL version Handeln ...
bei mir: 5.7.25 - MySQL Community Server (GPL)
ich schau noch mal ...
Gruß
Kant
Sapere aude!
Offline
Zu
(1)
Ah, jetzt verstehe ich.
Gut, setzen wir ein Default Value direkt in die Tabelle.
(3)
Ja, wenn Du da eine Lösung hast die Versionsübergreifend funktioniert, wäre super.
Danke schon mal!
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Ach ... einen hätte ich noch:
6) News with images
Da geistert noch "$wb->preprocess" in der view.php vom Modul herum und wirft im Frontend eine "Notice" (nach der anderen) ...
[ ~config: define('WB_DEBUG', true);]
Gruß
Kant
Beitrag geändert von kant (14.07.2019 15:33:44)
Sapere aude!
Offline
Hm ...
bei
1) ist eine core Geschichte ... //Modul// ist egal ... kannst genauso wysiwyg/code2/ nehmen ...
siehe: ~/wbce/admin/pages/add.php
OK, das habe ich dann gleich mal korrigiert:
https://github.com/WBCE/WBCE_CMS/commit … 2da8e67e2b
Denke ich lasse die DB so wie sie ist. Wie ich es sehe ist es die einzige Stelle im Core, wo eine Seite erstellt wird ;-)
6) News with images
Da geistert noch "$wb->preprocess" in der view.php vom Modul herum und wirft im Frontend eine "Notice" (nach der anderen) ...
[ ~config: define('WB_DEBUG', true);]
Hm.. ja, das kommt, weil die preprocess Methode bei WBCE "rausgeworfen" wurde und das ist wahrscheinlich nicht bei den Modulerstellern angekommen, die Notice nicht gesehen worden o.ä.
Dummerweise habe ich auch vergessen, sie dann bei der Intro-Page Verwendung auszuschließen.
Ich denke die beste Lösung wäre (falls das Modul weiterhin unter WB CMS laufen soll) eine Weiche einzubauen und preprocess nur im Fall dass es nicht WBCE ist durchzulaufen.
Gruß,
Christian
Beitrag geändert von stefanek (14.07.2019 16:03:36)
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Hm
... ich noch mal wegen der 3)
Hab noch mal den QueryString ein bisschen "auseinander gezogen" wg. Lesbarkeit (keine Ahnung wie das _hier_ dargestellt wird, sorry)
file: ~wbce/modules/wbSeoTool/functions.php
line: ~51 ff.
[== PHP ==]
$sQuery = "
SELECT ANY_VALUE(s.`module`), MAX(s.`publ_start` + s.`publ_end`) published, p.`link`,
(SELECT MAX(`position`) FROM `". TABLE_PREFIX ."pages` as P2 WHERE P2.`parent`=p.`parent`) siblings,
p.`position`, p.`page_id`, p.`parent`, p.`level`, p.`language`, p.`admin_groups`,
".
(($bRewriteUrlExists == TRUE )
? "p.`".REWRITE_URL."`, "
: ""
)
."
p.`admin_users`, p.`viewing_groups`, p.`viewing_users`, p.`visibility`,
p.`menu_title`, p.`page_title`, p.`page_trail` ".$sProcessSeo."
FROM
`". TABLE_PREFIX ."pages` AS p
INNER JOIN `". TABLE_PREFIX ."sections` AS s
ON p.`page_id`=s.`page_id`
". $sUseTrash. " GROUP BY p.`page_id` ORDER BY p.`position` ASC";
$oPages = $database->query($sQuery);
// echo $database->get_error();
Gruß
Kant
Sapere aude!
Offline
So dürfte es noch etwas übersichtlicher sein (mit dem {TP} statt der TABLE_PREFIX Konstante samt Einführungszeichen und Punkten.
$sQuery = "SELECT ANY_VALUE(s.`module`), MAX(s.`publ_start` + s.`publ_end`) published, p.`link`,
(SELECT MAX(`position`) FROM `{TP}pages` as P2 WHERE P2.`parent`=p.`parent`) siblings,
p.`position`, p.`page_id`, p.`parent`, p.`level`, p.`language`, p.`admin_groups`,
".
(($bRewriteUrlExists == TRUE )
? "p.`".REWRITE_URL."`, "
: ""
)
."
p.`admin_users`, p.`viewing_groups`, p.`viewing_users`, p.`visibility`,
p.`menu_title`, p.`page_title`, p.`page_trail` ".$sProcessSeo."
FROM
`{TP}pages` AS p
INNER JOIN `{TP}sections` AS s
ON p.`page_id`=s.`page_id`
". $sUseTrash. " GROUP BY p.`page_id` ORDER BY p.`position` ASC";
debug_dump($database->get_error());
gibt mir folgendes aus:
FUNCTION wbce_14rc.ANY_VALUE does not exist
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
hm ... MySQL 5.6? !
Sapere aude!
Offline
Ja, MySQL 5.6.34
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
hm ...
ausser einen "hack" - einer Abfrage "vorweg" fällt mir auf die Schnelle auch nichts ein
vor Zeile 51
[== PHP ==]
$sCurrent_MYSQL_Version = $database->get_one("SELECT VERSION()");
$bMYSQL_57 = version_compare( $sCurrent_MYSQL_Version, "5.7.0", ">=");
und dann bei $sQuery (Zeile
[== PHP ==]
$sQuery = "SELECT " . (( $bMYSQL_57 === true) ? "ANY_VALUE(s.`module`)" : "s.`module`") . ", MAX(s.`publ_start` + s.`publ_end`) published, p.`link`,
und weiter unten in der "while" schleife am Anfang
[== PHP ==]
if(isset($page["ANY_VALUE(s.`module`)"]))
{
$page["module"] = $page["ANY_VALUE(s.`module`)"];
}
hm . sprich "größer gleich 5.7 dann mit "any_value" ansonsten ohne .."
Gruß
Kant
Beitrag geändert von kant (14.07.2019 18:00:25)
Sapere aude!
Offline
stefanek, florian
Das kann ich gerne so umsetzen und gleich hochladen.
Danke.
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
florian
kant schrieb:6) News with images
Da geistert noch "$wb->preprocess" in der view.php vom Modul herum und wirft im Frontend eine "Notice" (nach der anderen) ...
[ ~config: define('WB_DEBUG', true);]Hm.. ja, das kommt, weil die preprocess Methode bei WBCE "rausgeworfen" wurde und das ist wahrscheinlich nicht bei den Modulerstellern angekommen, die Notice nicht gesehen worden o.ä.
Dummerweise habe ich auch vergessen, sie dann bei der Intro-Page Verwendung auszuschließen.
Ich denke die beste Lösung wäre (falls das Modul weiterhin unter WB CMS laufen soll) eine Weiche einzubauen und preprocess nur im Fall dass es nicht WBCE ist durchzulaufen.
nee, auch bei wb ist preprocess schon seit geraumer Zeit als deprecated markiert und in 2.12, wenn ich mich recht entsinne, endgültig rausgeflogen.
Im NWI kann das daher auch einfach ersatzlos entfallen.
Martin
Offline
stefanek
Hallo nochmal,
(5)
More Security Settings
Diese Baustelle muss ich mir mit dem Team anschauen. Habe da noch nie richtig drauf geschaut und bis jetzt nie verstanden warum da b%sb bei den boolschen Werten verwendet wird.
das war glaub ich ein Workaround im 2.x-dev-Branch um automatischen Typumwandlungen von php aus dem Weg zu gehen, die manchmal nicht das tun was man naiv erwarten würde. false Null "" 0 scheint da manchmal das gleiche zu sein, während "false" nicht der Leerstring ist, daher nicht 0 also das gleiche wie true... und wer weiß was mysql mit einem String "true" oder "false" anstellt oder wenn ein solcher String asu der DB gelesen und weiter verarbeitet wird...
Naja, wenn man die Operatoren korrekt einsetzt und im Zweifelsfall === statt == einsetzt, dann sollte man hiermit eigentlich gar kein Problem haben, aber wenn man sich dieser Problematik nicht ständig bewusst ist, dann passiert einem das bei php ganz leicht mal, dass der code was anderes tut als man erwarten würde. (in der beta-Phase für die 1.4 sind wir schon mal über diese Problematik gestolpert).
Nun, wenn man den String dann absichtlich anders in der Datenbank ablegt, dann muss man es auch durchgängig so tun. Beim Zusammenführen von verschiedenen Entwicklungen, die in der 1.4 Einzug gehalten haben, sind da anscheinend ein paar Kleinigkeiten übersehen worden.
Übrigens möchte ich mich bei dieser Gelegenheit beim User @mrbaseman bedanken, ohne dem vieles gar nicht möglich geworden wäre in diesem Release.
Danke, danke. Das gebe ich gerne auch zurück ans Team. Egal ob Mechanismen unter der Haube oder neue oder aktualisierte Module oder neue Templates - viele haben ihren Beitrag dazu geleistet dass WBCE mit der 1.4 wieder einen großen Schritt nach vorne macht.
Vielen Dank auch an Kant fürs Testen und für die Rückmeldung, damit wir bis zum Final Release noch ein bisschen nachbessern können.
viele Grüße
Martin
Offline
stefanek
Hallo Martin,
danke für Deine Ausführungen.
Es ist trotzdem etwas seltsam umgesetzt mit den btureb und bfalseb. Selbst b_true / b_false würde viel eingängiger sein.
Wie dem auch sei, ich habe den von Kant reporteten Bug (5) jetzt behoben:
https://github.com/WBCE/WBCE_CMS/commit … 9f3beb0441
Und damit, denke ich, ist die komplette Liste abgearbeitet!
Danke.
Und... der Nächste bitte.
Aber Spaß beiseite, war eine coole Aktion und hat mir den Sonntag davor gerettet langweilig zu werden.
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
mrbaseman
Hallo Christian,
das ist sicher Geschmackssache und man kann ja mit Suchen&Ersetzen durchgehen... wobei dann muss man die ältere Version zumindest lesend aus der Datenbank noch erkennen. Dann müsste man sowas wie `(strstr(strtowlower($value),'false')===false)` verwenden, um 'bfalseb' und 'b_false' und 'false' richtig zu erkennen... und alles andere wird dann wohl schon richtig (also true) sein.
viele Grüße, Martin
PS: A propos langweilige Sonntage: Wir hatten heute zwei Parties im Haus parallel: Sowohl wir als auch mein Schwager hatten eingeleaden und wir hatten 20 Erwachsene und 5 Kinder ums Haus herum springen....
Offline
stefanek
Hallo Christian,
das ist sicher Geschmackssache und man kann ja mit Suchen&Ersetzen durchgehen... wobei dann muss man die ältere Version zumindest lesend aus der Datenbank noch erkennen. Dann müsste man sowas wie `(strstr(strtowlower($value),'false')===false)` verwenden, um 'bfalseb' und 'b_false' und 'false' richtig zu erkennen... und alles andere wird dann wohl schon richtig (also true) sein.
Ja. Ich werde das erstmal noch zurück stellen.
Es stört nicht so sehr. Ist nur so ein WTF? Moment, wenn man es zum ersten Mal in der DB sieht.
PS: A propos langweilige Sonntage: Wir hatten heute zwei Parties im Haus parallel: Sowohl wir als auch mein Schwager hatten eingeleaden und wir hatten 20 Erwachsene und 5 Kinder ums Haus herum springen....
Hört sich nach Spaß an!
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
6) News with images
Da geistert noch "$wb->preprocess" in der view.php vom Modul herum und wirft im Frontend eine "Notice" (nach der anderen) ...
[ ~config: define('WB_DEBUG', true);]
Das ist merkwürdig, da die Funktion zwar als obsolet gekennzeichnet, aber noch vorhanden ist.
https://github.com/WBCE/WBCE_CMS/blob/6 … d.php#L346
Natürlich werde ich den Aufruf entfernen, ich finde es aber komisch, dass bei Dir eine noch vorhandene Funktion Notices wirft.
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
Sie tut halt wofür sie programmiert wurde (wenn Du Dir den Code anschaust).
Ich fand es angemessener so umzusetzen als sie ohne Vorwarnung komplett zu streichen.
Beitrag geändert von stefanek (15.07.2019 10:29:03)
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
die trigger_error macht diese Notice
Offline
stefanek
Ja, genau.
Aber nur, wenn man SuperAdmin ist und WB_DEBUG eingeschaltet ist:
https://github.com/WBCE/WBCE_CMS/blob/6 … d.php#L350
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
ja, Debug hatte er an, und kann ja sein, dass Kant als Superadmin angemeldet war. Jedenfalls sind wir so darauf aufmerksam geworden dass da noch ein überflüssiges preprocess herumgegeistert ist und konnten es rausnehmen. Ich hatte es zwar mal gesehen, hatte aber wahrscheinlich Debug nicht an oder war beim Testen vom Frontend nicht angemeldet... sonst hätte ich die Notice ja auch mal sehen müssen :-)
Offline
Kein Problem.
Einen hübschen Error_Logger könnten wir auch mal gut gebrauchen.
Aber für das nächste Release würde ich gerne vorwiegend was für die User und User-Experience machen.
Gruß,
Christian
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
Sie tut halt wofür sie programmiert wurde (wenn Du Dir den Code anschaust).
Ich fand es angemessener so umzusetzen als sie ohne Vorwarnung komplett zu streichen.
Ich habe "...wurde entfernt..." halt so interpretiert, als sei sie tatsächlich entfernt worden, und wenn ich "Notice" höre, denke ich an XDebug bzw. PHP-Fehlerberichterstattung und nicht was Internes. Daher war ich irritiert.
Ich habe eine Amazon-Wishlist. Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline