Catalog CSS Id & Class der Moduleinstellungen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • derbackes
    Contao-Nutzer
    • 08.02.2010
    • 89

    #1

    Catalog CSS Id & Class der Moduleinstellungen

    Hallo zusammen,

    ich weiß nicht, ob ich auf dem Schlauch stehe oder sich ein kleiner Fehler eingeschlichen hat.

    Wenn ich den Catalog-Modulen wie Related oder Reader in den Moduleinstellungen eine Klasse oder ID gebe, werden diese nicht im Frontend ausgegeben.

    Ich habe mir bereits die mod_ Templates angeschaut und die TemplateVars. In die TemplateVars werden die Daten nicht übergeben, in den mod_ Templates sind die aufrufe für die CSS Daten aber drin.

    Die Daten im Template sehen so aus:

    Code:
    [moduleTemplate] => FrontendTemplate Object
            (
                [strTemplate:protected] => mod_catalogrelated
                [strBuffer:protected] => 
                [strContentType:protected] => text/html
                [arrData:protected] => Array
                    (
                        [id] => 24
                        [pid] => 1
                        [tstamp] => 1306313164
                        [name] => Arbeitsproben: Related Kategorie
                        [headline] => Gleiche Kategorie
                        [type] => catalogrelated
                        [levelOffset] => 0
                        [showLevel] => 0
                        [hardLimit] => 
                        [showProtected] => 
                        [defineRoot] => 
                        [rootPage] => 0
                        [navigationTpl] => 
                        [pages] => 
                        [includeRoot] => 
                        [showHidden] => 
                        [customLabel] => 
                        [autologin] => 
                        [jumpTo] => 0
                        [redirectBack] => 
                        [cols] => 2cl
                        [editable] => 
                        [memberTpl] => 
                        [tableless] => 
                        [form] => 0
                        [searchType] => simple
                        [fuzzy] => 
                        [contextLength] => 48
                        [totalLength] => 1000
                        [perPage] => 0
                        [queryType] => and
                        [searchTpl] => 
                        [inColumn] => main
                        [skipFirst] => 0
                        [loadFirst] => 
                        [size] => 
                        [transparent] => 
                        [flashvars] => 
                        [altContent] => 
                        [source] => internal
                        [singleSRC] => 
                        [url] => 
                        [interactive] => 
                        [flashID] => 
                        [flashJS] => 
                        [imgSize] => 
                        [useCaption] => 
                        [fullsize] => 
                        [multiSRC] => 
                        [html] => 
                        [protected] => 
                        [groups] => 
                        [guests] => 
                        [cssID] => Array
                            (
                                [0] => 
                                [1] => 
                            )
    
                        [space] => Array
                            (
                                [0] => 
                                [1] => 
                            )
    Wie man sieht ist der Array für cssID leer. Habe es sowohl mit einer Klasse als auch einer ID versucht. Gespeichert werden die Daten in der DB, da diese beim erneuten editieren auch wieder da sind.

    Wie bekomme ich die Inhalte also nun abgerufen? Oder ist dies ein Problem, welches bekannt ist?

    Contao Version ist 2.9.5 und die Catalog Version ist Base 245 aus dem SVN-Repositorie.

    Viele Grüße & Danke im voraus,

    Martin
    Zuletzt geändert von derbackes; 25.05.2011, 11:12.
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #2
    Hallo derbackes,
    das ist kein catalog spezifisches Problem. Das ist so ein Grundprinzip in Contao.

    Also Module die eine Klasse oder ID haben, die man dann im Seitenlayout einbindet haben die dann auch im Frontend.
    Wenn man diese Module im Artikel als Content Element einbindet haben die das nicht.
    Dafür kann man denen dann aber eine eigene Klasse/ID im Content Element geben.

    Da ich die Templates eh immer bearbeite mach ich sowas dann einfach auch direkt im Template um nicht in jedem CE das wieder extra machen zu müssen. (wenn nicht die Klassen reichen, die der Catalog eh selber schon drinn hat)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

    Kommentar

    • derbackes
      Contao-Nutzer
      • 08.02.2010
      • 89

      #3
      Ach verdammt.

      Jetzt wo ich es bei dir gelesen habe, fällt es mir ein, dass da der Unterschied zwischen der EInbindung im Seitenlayout und der Einbindung als ContentElement.

      Peinlich.

      Brauche die unterschiedlichen Klassen/IDs um eine Slideshow zu generieren, möchte dafür eine *.tpl File nutzen aber diese in unterschiedlichen Modulen, wovon mehrere auf einer Seite auftauchen.

      Oder denkst dass mehrere TPLs dafür sinnvoller wären?

      Danke und Gruß,

      Martin

      Kommentar

      • MacKP
        Contao-Yoda
        • 15.06.2009
        • 13315

        #4
        Hm hm..
        naja, kannst ja in einem Template nen eigenen Klassen Generator machen, der Parameter aus den Items übernimmt.
        Dann brauchst das nicht mehr per Hand regeln.
        Und wenn du diese ID/Klasse auch noch im Head brauchst für nen JS dann könntest du das direkt im Template an die Head Variable übergeben um das dann da zu nutzen.

        Hier mal ein Beispiel von lindesbs zu einer Grafik die im Header angegeben werden musste:
        <?php
        $GLOBALS['TL_HEAD'][] = '<meta property="og:image" content="tl_files/img/meinBild.jpg" />';
        ?>

        So einfach dein JS im Template selber zusammenbauen und dann in den Header übergeben lassen.

        Viele Grüße
        Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
        [Arbeitet bei -> Paus Design & Medien]
        "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

        Kommentar

        • derbackes
          Contao-Nutzer
          • 08.02.2010
          • 89

          #5
          Hallo MacKP!

          Danke für deine Antwort.

          Das Snippet
          Code:
          <?php
          $GLOBALS['TL_HEAD'][] = '<script type="text/javascript" src="system/modules/mooquee4ward/html/Mooquee1.1.js"></script>';
          ?>
          hat mir sehr geholfen! Kannte ich noch nicht und wird direkt als sehr nützlich in meiner Box abgespeichert.

          Habe jetzt, dank deines Denkanstoßes es wie folgt gelöst:

          Ich erstelle mir zu Anfang im Template eine Variable, die eine Zufallszahl zw. 1-100 enthält. Diese Variable wird an den benötigten Stellen im gesamten Template eingebaut, natürlich auch im JavaScript Teil der für das Sliderelement zuständig ist.

          Ich wollte eigentlich auf Daten aus moduleTemplate zugreifen. Leider hat man aus dem catalog Template keinen Zugriff auf diese Daten, oder ich weiß nicht wie man daran kommt. dann hätte ich einfach die jeweilige ID des Moduls an die Klasse drangehängt.

          Falls jemand dazu Fragen oder auch Verbesserungen: Gerne!

          Viele Grüße,

          Martin

          Kommentar

          • Tim G
            Contao-Urgestein
            • 13.02.2010
            • 2212

            #6
            Hi,
            ich weiss, gehört nur am Rande zum Thema:

            Also Module die eine Klasse oder ID haben, die man dann im Seitenlayout einbindet haben die dann auch im Frontend.
            Wenn man diese Module im Artikel als Content Element einbindet haben die das nicht.
            Dafür kann man denen dann aber eine eigene Klasse/ID im Content Element geben.
            Das altbekannte Thema...

            Aber wäre es nicht an der Zeit für eine Fallback-Funktion im Core?
            Sprich: hat das Modul Klasse und/oder ID und wird per Inhaltselement eingebunden, wo nichts vergeben wird, erbt das Inhaltselement zusätzlich die Klassen vom Modul.
            http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

            Kommentar

            • MacKP
              Contao-Yoda
              • 15.06.2009
              • 13315

              #7
              Zitat von Tim G Beitrag anzeigen
              Hi,
              ich weiss, gehört nur am Rande zum Thema:



              Das altbekannte Thema...

              Aber wäre es nicht an der Zeit für eine Fallback-Funktion im Core?
              Sprich: hat das Modul Klasse und/oder ID und wird per Inhaltselement eingebunden, wo nichts vergeben wird, erbt das Inhaltselement zusätzlich die Klassen vom Modul.
              Das kannt du besser mit Leo diskutieren ;-)
              Es gab dazu schon das ein oder andere Ticket. Ist eben so ein Grundprinzip wo er bisher drann festgehalten hat.

              Viele Grüße
              Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
              [Arbeitet bei -> Paus Design & Medien]
              "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

              Kommentar

              • xtra
                Maintainer
                • 02.07.2009
                • 2007

                #8
                Aus gutem Grunde, denn du kriegst die Klassen/ids bei einem solchen Fallback dann nicht wieder raus.
                Die kleben dann einfach yberall.

                Da man (IMO) Module auch nicht an zigtausend Stellen als CE einbinden sollte, ist es zudem verschmerzbar, an diesen 1-2 Stellen die Id bzw Klasse zu vergeben.
                Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

                Kommentar

                • derbackes
                  Contao-Nutzer
                  • 08.02.2010
                  • 89

                  #9
                  xtra kann ich da eigentlich nur zustimmen. Module an zig Stellen als Inhaltselemente einzubinden ist sicher nicht die feine Art. Da ist man meist mit einem neuen Seitenlayout besser bedient, welches mit den Modulen befeuert wird.

                  Kommentar

                  Lädt...