content_article_include tut nichts

Alles rund um Module und Plugins in CONTENIDO 4.10.
Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

content_article_include tut nichts

Beitrag von Faar » Fr 3. Mai 2019, 09:26

Moin,
ich (will) benütze ausnahmsweise mal das Modul content_article_include und dann funktioniert es nicht.
Der blaue Button ist da, aber klicke ich darauf, tut sich nichts.
Keine Error-Meldung im Log, keine Meldung in der Konsole.
Es öffnet sich einfach kein Popupfenster.

Beim content_teaser Modul funktioniert es, also ein genereller Fehler dürfte es nicht sein.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

McHubi
Beiträge: 1096
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von McHubi » So 5. Mai 2019, 18:52

Hallo Faar,

kann ich nicht bestätigen. Ich habe das Modul einfach mal auf einer Testseite eingeklinkt und beim Klick auf das Icon öffnet sich die Konfiguration zur Auswahl der Kategorie und des Artikels. Ich hab eine frische 4.10.0er Installation und das Ganze im Firefox getestet.
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

(NEU!) Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von Faar » Mo 6. Mai 2019, 08:52

McHubi hat geschrieben:
So 5. Mai 2019, 18:52
kann ich nicht bestätigen. Ich habe das Modul einfach mal auf einer Testseite eingeklinkt und beim Klick auf das Icon öffnet sich die Konfiguration zur Auswahl der Kategorie und des Artikels. Ich hab eine frische 4.10.0er Installation und das Ganze im Firefox getestet.
Hallo Hubi,
ich habe eine geupdatete 4.10 Installation und auch Firefox und bei mir tut es das eben nicht. :(
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

McHubi
Beiträge: 1096
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von McHubi » Mi 8. Mai 2019, 14:27

Mal eine Vorlage mit ausschließlich diesem Modul angelegt und wenn's dann klappt Stück für Stück mit den anderen Modulen auffüllen?
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

(NEU!) Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

homtata
Beiträge: 1052
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von homtata » Fr 10. Mai 2019, 10:19

Es könnte sein, dass das spinnt, je nachdem was im Layout oder durch Module an welcher Stelle an JS-Code eingeklemmt ist. Das kann sich mit dem JS des Backends beißen, das hier mit dazu gerendert wird. Schau mal in diese Richtung, ich denke, dass es daran liegt.

Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von Faar » Do 16. Mai 2019, 09:51

Da spinnt definitiv etwas, denn dieses Modul leert auch $idcat und $idart und vielleicht noch andere Variablen.
Wegen diesem Modul ging mein Level 2 Menü nicht mehr, da es in der tatsächlichen Reihenfolge im Layout als fast letztes Modul kam.

In Zeile 258 und 259 findet sich das da:

Code: Alles auswählen

        $idart = $_bakArticleId;
        $idcat = $_bakCategoryId;
Und vorher in 203 und 202 auch schon direkte Zuweisungen in diese globalen Variablen.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

homtata
Beiträge: 1052
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von homtata » Do 16. Mai 2019, 10:01

Okay... dann ist es besser, nicht darauf zu vertrauen, dass diese Variablen den Wert hat, den Contenido ihnen zuweist, sondern sie an der nötigen Stelle neu zu instanzieren aus ihren tatsächlichen Werten, im Stil von:

$lang = cRegistry::getLanguageId();
$idcat = cRegistry::getCategoryId();
$idart = cRegistry::getArticleId();
usw...

Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von Faar » Do 16. Mai 2019, 10:14

Moin.
Wenn Du schaust, wie cRegistry::getCategoryId(); die idcat holt, wirst du feststellen, dass die globale $idcat der Ursprung ist.
Dein Code sieht in Wahrheit dann so aus:

Code: Alles auswählen

$lang = $lang;
$idcat = $idcat;
$idart = $idart;
Außer die Variable hat keinen Inhalt, dann sieht sie so aus:

Code: Alles auswählen

$lang = 0;
$idcat = 0;
$idart = 0;
Das liegt daran, dass cRegistry::getCategoryId() bei $idcat = "" eine 0 zurück gibt.
Der Fehler liegt eindeutig daran, dass ein Modul die globalen Variablen überschreibt.

Da bei mir das Modul noch nicht läuft, weil der blaue Button noch nicht geht (Javascript Kollission?), gibt es aus der Datenbank auch keine Ergebnisse ab Zeile 191.
$includeCatId = $db->f("idcat"); wird also nie true, folglich gibt es die $includeCatId noch gar nicht, wenn in Zeile 203 zugewiesen wird:
$idcat = $includeCatId;
Da ist dann ein leeres "" in $idcat für alle nachfolgenden Prozesse und Module.

Dieser erste Fehler wäre noch nicht so fatal, wenn $idcat = $_bakCategoryId; in Zeile 259 nicht falsch verschachtelt wäre.
Denn das steckt in einer weiteren if-Klammer, die Mangels ausgewählter Artikel nicht wahr wird und folglich die letzte Zuweisung auch nie stattfindet.
Denn in Zeile 201 hat jemand sinnvollerweise die gültige $idcat gespeichert: $_bakCategoryId = cRegistry::getCategoryId();
Nur wird sie dank der falschen Verschachtelung nie mehr zurück gespeichert.
Es wird im ganzen Modul nie daran gedacht, dass auch mal kein Artikel ausgewählt sein könnte und mal keine Ergebnisse in den Varaiblen stehen könnten, oder überhaupt die Variable definiert wird.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

homtata
Beiträge: 1052
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von homtata » Do 16. Mai 2019, 11:19

Dann musst du anders vorgehen und im Modul content_article_include zuvor die globalen Variablen zwischenspeichern in andere Variablen und später im Modul wieder neu $idart und $idcat zuweisen.

Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von Faar » Do 16. Mai 2019, 11:33

homtata hat geschrieben:
Do 16. Mai 2019, 11:19
Dann musst du anders vorgehen und im Modul content_article_include zuvor die globalen Variablen zwischenspeichern in andere Variablen und später im Modul wieder neu $idart und $idcat zuweisen.
Das macht doch dieses Modul bereits.
Ab Zeile 200 wird gesichert und ab Zeile 258 wird die Sicherung wieder zugewiesen.
Nur sollte es ab Zeile 263 vor der letzten Klammer stehen und nicht in 258.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

homtata
Beiträge: 1052
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von homtata » Do 16. Mai 2019, 12:28

Ich würde sogar lieber sehen, wenn die backup-Variablen oben gleich mitinstanziert werden, also eher:

Code: Alles auswählen

// Init vars and objects
$curContainerId = $cCurrentContainer;
$languageId = cRegistry::getLanguageId();
$clientId = cRegistry::getClientId();
$cfg = cRegistry::getConfig();
$db = cRegistry::getDb();
$tpl = cSmartyFrontend::getInstance();
$saved = false;
$_bakArticleId = cRegistry::getArticleId();
$_bakCategoryId = cRegistry::getCategoryId();
und NACH der letzten Klammer, ganz am Ende des Moduls, wieder zurückgeschrieben wird. Egal ob das Modul etwas tut oder nicht, es geht sicherheitshalber hinten mit der Neuinstanzierung zu Ende.

homtata
Beiträge: 1052
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von homtata » Do 16. Mai 2019, 12:29

Faar, das ist somit ein Modulbug. Kannst du das entsprechend melden/vermerken oder xmurrix sonstwie darauf aufmerksam machen?

Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von Faar » Do 16. Mai 2019, 13:18

Xmurrix habe ich es schon gemeldet aber ich müsste noch ein Issue aufmachen. Das kann er aber schneller und besser als ich oder ich muss mich da reinfuxen.
Vorher muss ich aber das YAML-Menü :( umgestalten und dann die content_article_include zum laufen bringen, denn es geht bei mir der Button ja noch nicht. Vielleicht finde ich da drin noch mehr Fehler, die gleich mitbehandelt gehören.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von Faar » Do 16. Mai 2019, 15:04

Der Blaue Button
In der Konsole wird ein Fehler bei main-php 314:23 angezeigt:
Leerer String an getElementById() übergeben.
Hat vielleicht nichts damit zu tun.

Im Seitenquelltext findet sich folgendes:

Code: Alles auswählen

<img src="http://.../contenido/images/article_include.png" alt="" class="cms_abstract_img cms_teaser_img" id="article_include_62" style="cursor: pointer;" />

<script>
(function($) {
    $('.content_article_include .popup_opener img#article_include_62').click(function() {
        var holder = $(this).parent().parent().find('#article_include_container_62');
        holder.css("top", $(this).offset().top + holder.height() + (holder.height()/2) + 'px');
        holder.css("left", $(this).offset().left + (holder.width()/2) + 'px');
        holder.show();
    });
 ...
Die Reihenfolge .content_article_include .popup_opener img#article_include_62 stimmt, aber es tut nichts.
Kann es an den ' statt " liegen?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1510
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: content_article_include tut nichts

Beitrag von Faar » Do 16. Mai 2019, 15:39

Ok, das position:absolute; im Element-CSS des article_include_container62 macht Probleme, denn das Popup ist da, aber außerhalb des Bildschirms.

Code: Alles auswählen

Element {
    position: absolute;
    top: 611.85px;
    left: 1304.17px;
    display: block;
}
Der Abstand left: 1304.17px; bezieht sich auf irgendein HTML-Element eher rechts im Bildschirm, so dass das Modul-Popup dadurch viel zu weit rechts ist und außerhalb des sichtbaren Bereiches.
Wenn ich statt 1304 eine 100 eintrage, sehe ich das Popup.
Oder wenn ich statt absolute ein fixed eintrage.

Tatsache ist, dass mein Browserfenster kleiner ist als der Bildschirm (3800Pixel) und der Abstand links vom Browserfensterrand mit 1304Pixel schon stimmen würde, in der normalen Ansicht im Browser.
Aber nicht mehr in der Editor-Ansicht, wo links der Artikelbaum-Frame ist.
Und schon gar nicht, wenn der Abstand von irgendeinem HTML-Element aus berechnet wird, in diesem Fall ist es in etwa die rechte Leiste mit News und eben dem vorgesehen Artikel-Inklude.
Eigentlich müsste dann der Abstand 0px sein, dann passt es auch.

Wenn ich mittels Debugger das CSS so hinbiege, dass das Formular erscheint, kann ich zwar etwas einstellen aber es erscheint in der Seite trotzdem nichts.
Was ist das eigentlich für ein Modul?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Antworten