Zuordnung einer Klasse

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • mike_mcfly
    Contao-Fan
    • 29.11.2009
    • 462

    #1

    Zuordnung einer Klasse

    Ahoi zusammen,

    eine Frage an die Catalog-Profis:

    Ist es möglich der Detail-Seite eines Katalog-Eintrages eine Klasse mitzugeben? Damit könnte man per CSS jedem Projekt eigene Stilanweisungen mitgeben z.B. Farben, etc...
    Zuletzt geändert von mike_mcfly; 10.12.2012, 17:50.
    .................................................. ...............................
    Warum der Marine beitreten, wenn man Pirat sein kann?
    - Steve Jobs
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #2
    Was meinst du jetzt genau?
    Du kannst jeder Seite in Contao eine eigene Klasse über die Seitenstruktur geben... darüber kannst du die dann auch unterschiedlich aussehen lassen.
    Oder du gibst dem Modul ne Klasse mit (beim Content Element).

    Oder du willst das bei jedem Item angeben, dann kannst du das natürlich in einem eigenen Template machen wie du möchtest. Zur Not sogar über die Global Variable dann in einer angepasst fe_page im Body direkt ausgeben.

    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

    • mike_mcfly
      Contao-Fan
      • 29.11.2009
      • 462

      #3
      Klasse je Catalog-Eintrag

      @MacKP:

      Erst mal danke für die Rückmeldung.

      Es wäre klasse, wenn jede Seite anhand eines Catalog-Eintrages seine eigene Klasse hätte.

      Also so nach dem Schema:

      PHP-Code:
      <body class="<?php echo $entry['data']['meine_Klasse']['value']; ?>" >
      Zuletzt geändert von mike_mcfly; 10.12.2012, 17:47.
      .................................................. ...............................
      Warum der Marine beitreten, wenn man Pirat sein kann?
      - Steve Jobs

      Kommentar

      • MacKP
        Contao-Yoda
        • 15.06.2009
        • 13315

        #4
        Ich entnehme deinem Post, das du jetzt gerne wissen würdest, wie man das macht?
        Eine kurze Suche ergibt z.B. das da -> https://community.contao.org/de/show...bale-Variablen

        ;-)

        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

        • mike_mcfly
          Contao-Fan
          • 29.11.2009
          • 462

          #5
          PHP-Held

          Jetzt auch noch ein Hellseher, wie?

          Doch ich PHP-Held kann mit dem Link leider nix anfangen wie es aussieht ;(

          Im Seiten-Template habe ich jetzt einfach
          PHP-Code:
          <?php echo $this->kunde; ?>
          eingegeben.

          Sieht in der Gänze also so aus:
          PHP-Code:
          <body id="top" itemscope itemtype="http://schema.org/CreativeWork" class="{{ua::class}} <?php echo $this->kunde; ?> <?php if ($this->class): ?> class <?php echo $this->class; ?><?php endif; ?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>
          kunde ist ein Catalog-Feld vom Typ Text.
          Zuletzt geändert von mike_mcfly; 10.12.2012, 19:35.
          .................................................. ...............................
          Warum der Marine beitreten, wenn man Pirat sein kann?
          - Steve Jobs

          Kommentar

          • MacKP
            Contao-Yoda
            • 15.06.2009
            • 13315

            #6
            Hallo mike_mcfly,
            war auch als Anregung gemeint, das du selber hier im Forum mal suchst ;-)

            Hier mal ne etwas genauere Ausfürhung:

            Im Catalog Template für die Detailseite musst du das Feld erst mal an die Globals übergeben:

            Code:
            $GLOBALS['beliebigername'] = das was du übergeben willst....
            Das kannst du dann in der fe_page ausgeben mit:
            Code:
            echo $GLOBALS['beliebigername']
            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

            • mike_mcfly
              Contao-Fan
              • 29.11.2009
              • 462

              #7
              Es dämmert...

              ...so langsam verstehe ich Deinen Wink mit dem Zaunpfahl

              So kann ich eine globale Variable definieren. Kann ich damit aber auch ein im Katalog definierten Wert übergeben?

              Ich teste mal... und melde mich erst, wenn die Foren-Suche keine Ergebnisse geliefert hat oder ich das Problem samt Lösung hier poste.

              Vielen Dank auf jeden Fall soweit!
              .................................................. ...............................
              Warum der Marine beitreten, wenn man Pirat sein kann?
              - Steve Jobs

              Kommentar

              • mike_mcfly
                Contao-Fan
                • 29.11.2009
                • 462

                #8
                Hab's jetzt einfach mit dem Page-Title gelöst:

                PHP-Code:
                <?php echo $this->pageTitle; ?>
                Der body-Tag komplett:

                PHP-Code:
                <body id="top" itemscope itemtype="http://schema.org/CreativeWork" class="{{ua::class}}<?php echo $this->pageTitle; ?><?php if ($this->class): ?> class <?php echo $this->class; ?><?php endif; ?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>
                Nicht schön, i know !!
                .................................................. ...............................
                Warum der Marine beitreten, wenn man Pirat sein kann?
                - Steve Jobs

                Kommentar

                • MacKP
                  Contao-Yoda
                  • 15.06.2009
                  • 13315

                  #9
                  Warum machst das nicht wie oben beschrieben? Hat das nicht geklappt?
                  Zeig mal deinen Versuch (also das catalog_full), eventuell kann man dir da weiter helfen ;-)

                  Der Titel an sich ist ja wirklich eine der unschöneren Varianten, weil da ja auch leerzeichen vorkommen können etc. und das dann dadurch nicht zwangsweise eigentständige Klassen ergibt.

                  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

                  • mike_mcfly
                    Contao-Fan
                    • 29.11.2009
                    • 462

                    #10
                    Hi MacKP,

                    das Catalog-Full sieht so aus:

                    PHP-Code:
                    <?php if (count($this->entries)): ?>
                        
                    <div class="layout_full">
                    <?php foreach ($this->entries as $entry): ?>
                    <div class="Design-Projekt-Detail">
                    <h2 itemprop="name"><?php echo $entry['data']['kunde']['value']; ?> <span><?php echo $entry['data']['kategorie']['value']; ?></span></h2>
                    <?php endforeach; ?>
                    
                    <!-- Slideshow darstellen falls angegeben -->
                    <?php if($entry['data']['slideshow']['value']) : ?>
                    <div class="flexslider">
                        <ul class="slides">  
                            <?php  
                            foreach($this->entries as $entry) :    
                                foreach($entry['data']['slideshow']['meta'] as $picture) {  
                                    echo "<li><img src=\"{$picture['src']}\" width=\"900\"/></li>\n";  
                                }   
                            endforeach; ?>      
                        </ul>
                    </div>
                    <?php endif; ?>
                    
                    <!-- Kurzbeschreibung darstellen falls eingegeben -->
                    <?php if($entry['data']['kurzbeschreibung']['value']) : ?>
                    <h3 itemprop="description" class="kurzbeschreibung"><?php echo $entry['data']['kurzbeschreibung']['value']; ?></h3>
                    <?php endif; ?>
                    
                    <!-- Beschreibung darstellen falls eingegeben -->
                    <?php if($entry['data']['beschreibung']['value']) : ?>
                    <p class="beschreibung"><?php echo $entry['data']['beschreibung']['value']; ?></p>
                    <?php endif; ?>    
                    
                    <!-- Grosse Bilder darstellen falls eingegeben -->
                    <?php if($entry['data']['bigpicture']['value']) : ?>
                    <p class="beschreibung"><?php echo $entry['data']['bigpicture']['value']; ?></p>
                    <?php endif; ?>    
                    
                    <!-- Projektbilder -->
                    <?php if($entry['data']['popup_bilder']['value']) : ?>
                        <div id="lightbox_bilder"><?php echo $entry['data']['popup_bilder']['value']; ?></div>
                    <?php endif; ?>    
                    
                    </div> <!-- Ende Design-Projekt-Detail -->
                    
                    </div>
                    <?php else: ?>
                    <p class="info"><?php echo $this->noItemsMsg; ?></p>
                    <?php endif; ?>

                    P.S. ist noch nicht im Web nur localhost, daher kann ich Dir keinen Link senden
                    Zuletzt geändert von mike_mcfly; 11.12.2012, 09:56.
                    .................................................. ...............................
                    Warum der Marine beitreten, wenn man Pirat sein kann?
                    - Steve Jobs

                    Kommentar

                    • MacKP
                      Contao-Yoda
                      • 15.06.2009
                      • 13315

                      #11
                      Ich seh da gar nix vom Code den ich dir gegeben habe?

                      Versuchs mal so (unter dem Titel zum Beispiel):

                      Code:
                      $GLOBALS['kunde_css_klasse'] = $entry['data']['kunde']['value'];
                      und dann im fe_page:
                      Code:
                      echo $GLOBALS['kunde_css_klasse']
                      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

                      • mike_mcfly
                        Contao-Fan
                        • 29.11.2009
                        • 462

                        #12
                        Zitat von MacKP Beitrag anzeigen
                        Code:
                        $GLOBALS['kunde_css_klasse'] = $entry['data']['kunde']['value'];
                        --> habe ich in die dcaconfig.php geschrieben


                        und dann im fe_page:
                        Code:
                        echo $GLOBALS['kunde_css_klasse']
                        --> dann so in die fe_page eingefügt:

                        PHP-Code:
                        <body id="top" itemscope itemtype="http://schema.org/CreativeWork" class="{{ua::class}}<?php echo $GLOBALS['kunde_css_klasse'] ?><?php if ($this->class): ?> class <?php echo $this->class; ?><?php endif; ?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload; ?>"<?php endif; ?>>
                        Die Klasse wird nicht ausgegeben, Quelltextanzeige danach:

                        HTML-Code:
                        <body id="top" itemscope itemtype="http://schema.org/CreativeWork" class="mac safari sf6">
                        Genau an der Stelle hatte ich gestern die Flinte ins Korn geworfen.
                        .................................................. ...............................
                        Warum der Marine beitreten, wenn man Pirat sein kann?
                        - Steve Jobs

                        Kommentar

                        • MacKP
                          Contao-Yoda
                          • 15.06.2009
                          • 13315

                          #13
                          Du sollst das ja auch nicht in die dcaconfig.php packen.. diese Datei hab ich doch hier nirgendwo erwähnt?
                          Das MUSS in das catalog_full Template, da wo du auch sonst diese Werte ausgibst, denn nur da sind diese Werte vorhanden!

                          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

                          • mike_mcfly
                            Contao-Fan
                            • 29.11.2009
                            • 462

                            #14
                            Zitat von MacKP Beitrag anzeigen
                            Du sollst das ja auch nicht in die dcaconfig.php packen.. diese Datei hab ich doch hier nirgendwo erwähnt?
                            Das MUSS in das catalog_full Template, da wo du auch sonst diese Werte ausgibst, denn nur da sind diese Werte vorhanden!

                            Viele Grüße
                            Dachte ich mir auch aber ich kann das doch so nicht in das Template schreiben:

                            PHP-Code:
                            <?php if (count($this->entries)): ?>
                            $GLOBALS['kunde_css_klasse'] = $entry['data']['kunde']['value'];
                            <div class="layout_full">
                            <?php foreach ($this->entries as $entry): ?>
                            <div class="Design-Projekt-Detail">
                            .
                            .
                            .
                            ...und mit

                            PHP-Code:
                            <?php $GLOBALS['kunde_css_klasse'] = $entry['data']['kunde']['value']; ?>
                            passiert auch nix...
                            .................................................. ...............................
                            Warum der Marine beitreten, wenn man Pirat sein kann?
                            - Steve Jobs

                            Kommentar

                            • MacKP
                              Contao-Yoda
                              • 15.06.2009
                              • 13315

                              #15
                              Puh...
                              klar das es so nicht geht.

                              1. Pack es in die
                              Code:
                              <?php foreach ($this->entries as $entry): ?>
                              So wie alles andere auch, wo du so an die Werte kommst.

                              2.
                              Mach da doch bitte diese tollen Dinger drum herum:
                              Code:
                              <?php
                              und
                              Code:
                              ?>
                              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

                              Lädt...