+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Zweispaltiges Layout artkelabhängig auf einspaltig reduzieren

  1. #1
    Neu an Board
    Registriert seit
    25.04.2006
    Beiträge
    99
    Bedankte sich
    32
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Zweispaltiges Layout artkelabhängig auf einspaltig reduzieren

    Hallo,
    ich habe ein eigenes Template erstellt, mit einer horizontal verlaufenden Navi, sowie einer breiten Content und einer schmalen rechten Randspalte (für News). Nun benötige ich für bestimmte Artikel die gesamte Breite des Templates.
    Frage: Wie kann ich das unter Joomla 1.5 wohl realisieren, wenn doch in meiner Template-HTML das Layout soweit vorgegeben ist?

    Vielen Dank für gute Ratschläge
    Toddy

  2. #2
    Verbringt hier viel Zeit
    Registriert seit
    29.11.2005
    Ort
    Berlin
    Beiträge
    962
    Bedankte sich
    8
    Erhielt 200 Danksagungen
    in 196 Beiträgen

    Standard

    Das programmiert man in der index.php des Templates oder an anderer Stelle mit PHP und CSS.

    Zuerst zählt man die Module, die auf eine Position ausgegen werden.

    $breite-rechts = $this->countModules('right');

    Wenn an der Modul-Position keine Module ausgegeben werden, unterbindet man deren Ausgabe und erhöht den Wert der Breite der Position der Komponente um die Breite der nicht ausgegebenen Position.

    <?php if ($breite-rechts > 0) : ?>

    Ausgabe der rechten Position.

    <?php else : ?>

    <style = "text/css">
    .maincontent {
    width: 700px;
    }
    </style>

    <? endif; ?>

    Gehen wir hier mal davon aus, in dem Template wäre die rechte Spalte normalerweise 200 Pixel breit und die Komponente 500 Pixel und das nötige Wissen ist vorhanden.
    Mein "Kunde" möchte mit Joomla zum Mond fliegen.

    Bin Anfänger... geht das irgendwie?

  3. #3
    Gute Seele des Boards Avatar von Indigo66
    Registriert seit
    30.10.2007
    Ort
    München
    Beiträge
    10.687
    Bedankte sich
    338
    Erhielt 3.354 Danksagungen
    in 3.244 Beiträgen

    Standard

    Mit ein bisschen weniger Code, könnte das auch so aussehen, vorausgesetzt Dein Contentbereich hat eine Breite von 100%, damit es sich anpassen kann.
    PHP-Code:
                <?php if ($this->countModules('right')) { ?> 
                       <div id="rechts">
                            <jdoc:include type="modules" name="right" style="xhtml" />                        
                        </div>
                <?php ?>
    Das DIV rechts muß dann aber das ganze rechte Divkonstrukt sein, das wegfallen muss wenn dort kein Modul geladen ist.

  4. #4
    Neu an Board
    Registriert seit
    25.04.2006
    Beiträge
    99
    Bedankte sich
    32
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Oha hört sich etwas kompliziert an, aber ich werd versuchen eure Hinweise umzusetzen.


    Ich weiß ja nicht ob es etwas bringt, aber hier mal der eigentlich Code aus der index.php:

    <body>
    <div id="container">
    <div id="header">

    <div id="laufband"><jdoc:include type="modules" name="newsticker" style="xhtml" /></div>
    <div id="tophead"><a id="tophead-link" href="index.php"></a>
    <jdoc:include type="modules" name="tophead" style="xhtml" /></div>
    <div id="suckerfish"><jdoc:include type="modules" name="nav" style="xhtml" /></div>
    <div id="navsearch"><jdoc:include type="modules" name="navsearch" style="xhtml" /></div>
    </div>

    <div id="#content" class="content"><!-- Start des Contentbereichs -->

    <jdoc:include type="modules" name="header" style="boxteaser" />
    <!-- Grosse Grafik -->

    <!-- Horizontale Teasergruppe -->
    <jdoc:include type="modules" name="crea_user1" style="boxteaser" />
    <jdoc:include type="modules" name="crea_user2" style="boxteaser" />
    <jdoc:include type="modules" name="crea_user3" style="boxteaser" />
    <jdoc:include type="modules" name="crea_user4" style="boxteaser" />
    <jdoc:include type="modules" name="crea_user5" style="boxteaser" />

    <div class="clear"></div><!-- Clear't die Floats -->

    <div id="pcontainer" class="clear"><!-- Post Container -->
    <div class="pslinks"><jdoc:include type="module" name="breadcrumbs" />
    <jdoc:include type="component" />
    </div>

    <!-- Postspalte rechts, News -->
    <div class="psrechts"><jdoc:include type="module" name="Newsheader" /></div><br />
    <div class="psrechts"><jdoc:include type="modules" name="right" style="xhtml" /></div>

    <!-- Contentcontainer -->
    </div></div></div><!-- Container außen -->

    <div class="footwrapper"><!-- Footer = 100% Breite -->
    <div id="footer" class="footer"><jdoc:include type="modules" name="footer" style="xhtml" /><br /><jdoc:include type="modules" name="footernav" style="xhtml" /> <!-- Footercontent --></div>
    </div>
    </body>
    In der rechten Randspalte sollte sich generell ein Newsbereich befinden (<!-- Postspalte rechts, News -->), so dass auf diesen Seiten ein zweispaltiges Layout auch nötig ist.
    Auf wenigen anderen Seiten hingegen, benötige ich die gesamte Breite des Templates. Leider verstehe ich nicht genau, was ich nun genau machen kann, damit nur auf den Seiten die ich benötige die volle Breite nutzen kann, sorry. Ich wollte das auf einer Blogseite machen. Wobei mich dort auch noch ärgert, dass immer wieder leere Tabellen ausgegeben werden.

    Hier mal ein Screenshot:
    layout.jpg

    Gruß
    Toddy
    Geändert von tams (09.11.2011 um 10:03 Uhr)

  5. #5
    Gute Seele des Boards Avatar von Indigo66
    Registriert seit
    30.10.2007
    Ort
    München
    Beiträge
    10.687
    Bedankte sich
    338
    Erhielt 3.354 Danksagungen
    in 3.244 Beiträgen

    Standard

    Für die Postspalte rechts setzt Du die IF-Anweisung für das Modul Newsheader und der Modulposition right (Code hast Du ja jetzt) und den PostContainer setzt Du auf 100%. Fertig.

  6. Erhielt Danksagungen von:


+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein