Gesamtbreite anzeigen

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • psren
    Contao-Urgestein
    • 07.04.2010
    • 2733

    #1

    Gesamtbreite anzeigen

    Hallo,
    ich habe vor eine Seite zu erstellen, die vom Aufbau etwa so angedacht ist.

    Also nur die 100% großen Hintergründe und der Inhalt dann zentriert, 960px

    Jetzt mein Problem:
    Beim erstellen der Templatedatei bin ich auch ein Problem gestossen, welches mir die Forensuche nicht gelöst hat.

    im fe_default wird die Breite die man im backend eingibt (hier: 960px) als width von dem div mit der id
    #wrapper zugeteilt (laut firebug)
    da, die 100% Hintergrundbalken es nun erfordern die Bereiche header content footer voneinander zu trennen
    (jedes muss ja in seinem einzelnen 100%div liegen) müsste ich die 960px in eine Klasse schreiben um sie mehreren (3) divs zuzuteilen.

    Wie ist die Abfrage für die Breite?

    Danke, psren

    (Oder ist die Lösung leichter, ich blick sie nur nicht?)
    Zuletzt geändert von psren; 05.05.2010, 20:31.

    Wenn ich euch helfen konnte könnt ihr euch gerne mal
    meine Amazon Wunschliste anschauen. Dankeschön.
  • Juke
    Contao-Fan
    • 09.07.2009
    • 293

    #2
    Wenn ich Layouts mit Querstreifen erstelle, ändere ich die fe_page und baue Sektionen ein.
    Dazu musst du Seitenleiste links => Templates => ein neues Template erstellen und dann die fe_page suchen. Editor öffnen und dann den Code ändern und zwar so, dass du um die einzelnen Segemente ein <div> drumherum baust.

    Vom Prinzip her so:
    HTML-Code:
    <div id="wrapper"> 
    
    <div id ="section1"> 
    <div id="header"> ... </div>
    </div>
    
    <div id="section2">
    <div id="container"> ... </div>
    </div>
    
    <div id="section3">
    <div id="footer"> ... </div>
    </div>
    
    </div>

    Die TL Inhalts-divs werden damit in den Sektionen eingebettet. Via css gebe ich ihnen eine width von 100%, #wrapper behält seine 960px. So kannst du jeder Sektion eine eigene Hintergrundfrabe oder ein eigenes Hintergrundbild geben.

    Viele Grüße
    juke

    [Anmerkung Moderation: Bitte Code mittels vorgesehenem Codeblock formatieren]
    Zuletzt geändert von schman; 07.05.2010, 10:42.
    Carpe Diem und viele Grüße aus Bawü - juke | Contao-Partner | jukemedia.de | frische-zitronen.de |

    Kommentar

    • psren
      Contao-Urgestein
      • 07.04.2010
      • 2733

      #3
      So ähnlich dachte ich mir das auch, doch der wrapper schließt ja bei deinem code die sektionen mit ein?
      somit ist die sektion wenn ich ihr die width 100% gebe nur 100% vom wrapper, der ja 960px breit ist?!

      oder liegt hier mein denkfehler?

      HTML-Code:
      <div class="sektion">
         <div id="header" class="wrapper"> ... </div>
      </div>
      <div class="sektion">
         <div id="container" class="wrapper"> ... </div>
      </div>
      <div class="sektion">
         <div id="footer" class="wrapper"> ... </div>
      </div>
      So dachte ichs mir, un dann irgendwie statt dem #wrapper der .wrapper die breite von 960px zuteilen?

      Wenn ich euch helfen konnte könnt ihr euch gerne mal
      meine Amazon Wunschliste anschauen. Dankeschön.

      Kommentar

      • psren
        Contao-Urgestein
        • 07.04.2010
        • 2733

        #4
        Über $this->showTemplateVars();
        kam ich an das da.

        PHP-Code:
        Array
        (
            [doctype] => 
        
            [robots] => 
        
            [framework] => 
        
        
        
            [header] =>  
            [left] => 
            [main] => 
            [right] => 
            [footer] => 
            [sections] => Array
                (
                )
        
            [sPosition] => after
            [layout] => DB_Mysql_Result Object
                (
                    [resResult:protected] => Resource id #84
                    [strQuery:protected] => SELECT * FROM tl_layout WHERE fallback=1 LIMIT 0,1
                    [intIndex:Database_Result:private] => 0
                    [intRowIndex:Database_Result:private] => 0
                    [blnDone:Database_Result:private] => 
                    [blnModified:Database_Result:private] => 
                    [arrCache:protected] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 1
                                    [tstamp] => 1273079525
                                    [name] => TC Winnenden Startseite
                                    [fallback] => 1
                                    [header] => 1
                                    [headerHeight] => a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}
                                    [footer] => 
                                    [footerHeight] => a:2:{s:4:"unit";s:0:"";s:5:"value";s:0:"";}
                                    [cols] => 1cl
                                    [widthLeft] => a:2:{s:4:"unit";s:2:"px";s:5:"value";s:3:"200";}
                                    [widthRight] => a:2:{s:4:"unit";s:2:"px";s:5:"value";s:3:"200";}
                                    [sections] => 
                                    [sPosition] => after
                                    [stylesheet] => 
                                    [newsfeeds] => 
                                    [calendarfeeds] => 
                                    [modules] => a:1:{i:0;a:2:{s:3:"mod";s:1:"1";s:3:"col";s:6:"footer";}}
                                    [template] => fe_page
                                    [doctype] => xhtml_strict
                                    [urchinId] => 
                                    [cssClass] => 
                                    [onload] => 
                                    [head] => 
                                    [mootools] => a:3:{i:0;s:13:"moo_accordion";i:1;s:11:"moo_slimbox";i:2;s:17:"moo_lightbox4ward";}
                                    [script] => 
                                    [static] => 1
                                    [width] => a:2:{s:4:"unit";s:2:"px";s:5:"value";s:3:"960";}
                                    [align] => center
                                )
        
                        )
        
                )
        
            [language] => de
            [charset] => UTF-8
            [base] => http://localhost/tcwinnenden/
            [mainTitle] => TC Winnenden
            [pageTitle] => Jugend
            [title] => TC Winnenden - Jugend
            [description] => 
            [onload] => 
            [class] => 
            [mootools] => 
        
        
        
        
        
        
        
        
            [stylesheets] => 
        
        
            [head] => 
            [keywords] => 
        ) 
        
        Wie bekomme ich hier nurn die Breite + Einheit.
        [width] => a:2:{s:4:"unit";s:2:"px";s:5:"value";s:3:"960";}


        verzeiht mir, ich kann echt so gut wie garkein php
        Zuletzt geändert von psren; 05.05.2010, 20:32.

        Wenn ich euch helfen konnte könnt ihr euch gerne mal
        meine Amazon Wunschliste anschauen. Dankeschön.

        Kommentar

        • mkeipert
          Contao-Nutzer
          • 17.02.2010
          • 81

          #5
          Weiß nicht, ob ich jetzt zu einfach denke...

          Aber ich nehme in solchen Fällen bei Seitenlayout einfach das statische Layout raus. Dann kann ich den einzelnen Elementen per CSS die Breiten zuweisen, die sie haben sollen, da das gesamte Layout (wrapper) ohne fixe Breite auskommt. Bsp:

          head: 100%
          container / main: 1024px & zentriert
          footer: 100 %

          Grüße
          Mario

          Kommentar

          • BugBuster
            Wandelndes Contao-Lexikon
            • 15.06.2009
            • 10679

            #6
            Zitat von psren Beitrag anzeigen
            Wie bekomme ich hier nurn die Breite + Einheit.
            [width] => a:2:{s:4:"unit";s:2:"px";s:5:"value";s:3:"960";}
            PHP-Code:
            $a = 'a:2:{s:4:"unit";s:2:"px";s:5:"value";s:3:"960";}';
            print_r(unserialize($a)); 
            
            ergibt:
            PHP-Code:
            Array
            (
                [unit] => px
                [value] => 960
            ) 
            
            Grüße, BugBuster
            "view source" is your guide.
            Danke an alle Amazon Wunschlisten Erfüller

            Kommentar

            • psren
              Contao-Urgestein
              • 07.04.2010
              • 2733

              #7
              Das ist schonmal gut zu wissen, danke.
              Was ich eigendlich wissen wollte ist aber, wie ich überhaupt den array mit der breite drin aufrufe...

              also wie fülle ich dein $a mit dem [width]

              Wenn ich euch helfen konnte könnt ihr euch gerne mal
              meine Amazon Wunschliste anschauen. Dankeschön.

              Kommentar

              • BugBuster
                Wandelndes Contao-Lexikon
                • 15.06.2009
                • 10679

                #8
                Oje, da bin ich ein wenig überfragt.
                Vielleicht:
                PHP-Code:
                $this->[layout][arrCache][0][width] 
                
                Grüße, BugBuster
                "view source" is your guide.
                Danke an alle Amazon Wunschlisten Erfüller

                Kommentar

                • psren
                  Contao-Urgestein
                  • 07.04.2010
                  • 2733

                  #9
                  das selbe dachte ich mir auch schon, aber als ich das getestet hatte, hat es nicht geklappt
                  da bin ich aber froh, dass ich nicht als einziger nicht dahintergekommen bin :P

                  Wenn ich euch helfen konnte könnt ihr euch gerne mal
                  meine Amazon Wunschliste anschauen. Dankeschön.

                  Kommentar

                  • BugBuster
                    Wandelndes Contao-Lexikon
                    • 15.06.2009
                    • 10679

                    #10
                    Hm, [layout] ist ein DB Object und kein Array, daran wird es liegen.
                    Wieder mal geraten, vielleicht über
                    Code:
                    $arrTemp = $this->layout->arrCache;
                    sich das Array da raus ziehen und dann aus dem Array sich den Wert holen.
                    Grüße, BugBuster
                    "view source" is your guide.
                    Danke an alle Amazon Wunschlisten Erfüller

                    Kommentar

                    • psren
                      Contao-Urgestein
                      • 07.04.2010
                      • 2733

                      #11
                      Ich kann echt so gut wie kein PHP, habs mal so probiert
                      PHP-Code:
                      <?php 
                      $arrTemp = $this->layout->arrCache;
                      echo $arrTemp['width'];
                      ?>
                      und so
                      PHP-Code:
                      <?php 
                      $arrTemp = $this->layout->arrCache;
                      echo $arrTemp['width'];
                      ?>
                      beides mal ohne erfolg.

                      Wenn ich euch helfen konnte könnt ihr euch gerne mal
                      meine Amazon Wunschliste anschauen. Dankeschön.

                      Kommentar

                      • BugBuster
                        Wandelndes Contao-Lexikon
                        • 15.06.2009
                        • 10679

                        #12
                        Hmm ja, ich probier auch grad.
                        Bis zum Objekt komme ich noch, hier mal die direkte Variante:
                        PHP-Code:
                        <pre>
                        <?php var_dump($this->arrData[layout]); ?>
                        </pre>
                        bzw.
                        PHP-Code:
                        <pre>
                        <?php var_export($this->arrData[layout]); ?>
                        </pre>
                        Nun bekommt man hier das Objekt angezeigt.

                        Nun wirds schwierig, da kämpfe ich selber noch.
                        Keine Ahnung ob und wie man da rankommt.
                        Grüße, BugBuster
                        "view source" is your guide.
                        Danke an alle Amazon Wunschlisten Erfüller

                        Kommentar

                        • BugBuster
                          Wandelndes Contao-Lexikon
                          • 15.06.2009
                          • 10679

                          #13
                          Bevor ich weitermache, dan welcher Stelle brauchts du das?
                          Ich meine, innerhalb eines Moduls während es arbeitet oder im Template selbst?

                          Ich habe da ne Variante im Template, aber dafür wie ich das mache würde mich jeder PHP Progger schlagen für...
                          Grüße, BugBuster
                          "view source" is your guide.
                          Danke an alle Amazon Wunschlisten Erfüller

                          Kommentar

                          • psren
                            Contao-Urgestein
                            • 07.04.2010
                            • 2733

                            #14
                            ich brauche das im template selbst, weil ich n bisscvhen sehr spezielles layout habe, welches ich mit css nicht so einfach hinbekomme, und eben das schöne breite feld im seitenlayout nicht umsonst haben möchte

                            Danke für die Mühe BugBuster

                            Wenn ich euch helfen konnte könnt ihr euch gerne mal
                            meine Amazon Wunschliste anschauen. Dankeschön.

                            Kommentar

                            • Q..
                              Contao-Nutzer
                              • 06.03.2010
                              • 22

                              #15
                              Hallo psren,

                              ich hatte deinen Beitrag abonniert, weil er mich interessiert hat. Nun hab' ich mir das Ganze einmal genauer angeschaut! Ich denke, du denkst viel zu kompliziert.

                              Genau dieses Layout (vom Aufbau her) habe ich "ganz einfach" umgesetzt, ohne die fe_page etc. zu editieren ...

                              Seitenlayout (siehe Bild)
                              - Kopfzeile einfügen
                              Höhe xx px

                              - Fußzeile einfügen
                              Höhe xx px

                              - Spalten
                              nur die Hauptspalte

                              - statisches Layout
                              kein statisches Layout

                              Die Stylesheets
                              Code:
                              #header{
                              width: 100%;
                              ... dein Hintergrundbild ....
                              }
                              
                              #footer{
                              width: 100%;
                              ... dein Hintergrundbild ....
                              }
                              
                              #main{
                              width: 960px;
                              ... 
                              }
                              Dann sollte das passen!
                              Angehängte Dateien
                              viele Grüße
                              Q..

                              Kommentar

                              Lädt...