Frage Menüaufruf

Alles rund um Module und Templates, die nicht Bestandteil des Core sind
Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Frage Menüaufruf

Beitrag von shadowcat » Di 24. Jul 2018, 16:35

Kann ich mal drauf gucken?
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
creativecat
Beiträge: 1067
Registriert: Mi 6. Feb 2013, 12:41
Kontaktdaten:

Re: Frage Menüaufruf

Beitrag von creativecat » So 27. Dez 2020, 19:14

Soooooooooo :-)
Ich bin schon wieder auf mein altes Problem gestoßen! Irgendwie bekomme ich in Menüs nie den aktuellen Menüpunkt. Zum Beispiel mit:

Code: Alles auswählen

{cat_fullmenu(1,startlevel:0,maxlevel:2,ul-id: mainN,current: current_page_item)}
Das Problem liegt in der CAT_Helper_Page. Die wird in der index.php mit der Methode selectPage() ja bereits initiiert es werden also alle Seiten bereits aus der DB geladen. Sooooo - da gibt es also erst mal noch keine page_id und damit noch kein current_item. Erst danach wird aus den geladenen Seiten die page_id mit getPageByPath() geholt.
Damit wird standardmäßig immer die erste Seite (zumindest in meinen ganzen Installationen) gesetzt, weil nach dem Setzen der page_id nie wieder die geladenen Seite angepasst werden, sondern lediglich immer geschaut wird, ob welche bereits im CAT_Helper_Page-Objekt vorhanden sind... Ich habe lange nach dem Fehler gesucht und ihn gefunden :-)
Ein einfaches self::reset(); am Ende der selectPage() hat das Problem behoben, weil ja dann bereits die page_id gesetzt ist und damit auch die current_item korrekt beim erneuten Holen der Seiten aus der DB gesetzt wird!
Noch nicht effizient, aber endlich funktioniert es wieder in meinen Installationen!

Wenn du das so bestätigen könntest, dass das in deinem Sinne ist, Bianka, würde ich das in die 1.4 schieben!

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Frage Menüaufruf

Beitrag von shadowcat » Mo 4. Jan 2021, 09:47

Erst mal gut, dass Du es gefunden hast!

Das reset() aufzurufen ist sicher der einfachste Weg und bei wenigen Seiten sicherlich auch nicht weiter störend. Ob da ein neues setCurrentPage() (oder so...) effektiver wäre, hängt vermutlich davon ab, wie groß der Seitenbaum ist. Da ich nicht annehme, dass es BC-Installationen mit tausenden Seiten gibt, wäre die vorgeschlagene Änderung für mich okay.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Benutzeravatar
creativecat
Beiträge: 1067
Registriert: Mi 6. Feb 2013, 12:41
Kontaktdaten:

Re: Frage Menüaufruf

Beitrag von creativecat » Mo 4. Jan 2021, 09:57

Naja, vielleicht bastel ich da noch schnell eine solche Funktion - im Endeffekt kein großes Ding. Hab nur immer bisschen Respekt vor unerwarteten Sideeffects....

Benutzeravatar
shadowcat
Administrator
Beiträge: 4570
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: Frage Menüaufruf

Beitrag von shadowcat » Mo 4. Jan 2021, 11:23

Ja, ich auch.
My software never has bugs, it just develops random features.
BC1: PHP 5.5.11 (cli), mySQL 5.6.16 with 'strict' enabled, Apache 2.4.9
BC2: PHP 7.2.7, mariaDB 10.2.13, no Apache

Antworten