Seite 1 von 1

Slider auf allen Seiten

BeitragVerfasst: Mo 13. Jul 2015, 22:19
von ThomaZ
Hallo,

ich bin grad dabei ein Bootstrap-Template zu entwickeln. Komme super voran und habe die Startseite grundlegen, bis auf CSS-Feintuning fertig.
Ich habe auf der Startseite den Slider mit einem Overlay versehen:

slider_startseite.jpg
slider_startseite.jpg (101.5 KiB) 12318-mal betrachtet




Jetzt möchte ich gern auf sämtlichen Unterseiten auch einen Slider anzeigen - allerdings einen Speziell formatierten.
Ich habe das Gerüst dafür fertig, habe allerdings nur eine Schemenzeichnung ;-) :

slider_Unterseite.png
slider_Unterseite.png (25.43 KiB) 12318-mal betrachtet



Mein Problem ist jetzt folgendes
Der Slider steht in folgender if-Abfrage

Code: Alles auswählen
<?php if($KategorieDataArray){?>


Der Slider selbst bezieht dann seine Daten aus dem $KategorieDataArray

Code: Alles auswählen
<?php foreach($KategorieDataArray as $Data) {?>
   <div class="item">
      <?php if($Data["url"] != "") {?>
         <a href="<?php echo $Data["url"]?>"><?php echo $Data["image_string"]?></a>
            <?php } else {?>
            <?php echo $Data["image_string"]?>
         <?php } ?>
      </div>
<?php } ?>


Das $KategorieDataArray ist scheinbar nur auf der Startseite mit Daten gefüllt - also erhalte ich auf Unterseiten nur eine leere Ausgabe. Ist es möglich die Slieder-Bilder mit einem foreach abzufragen, wenn ich mich NICHT auf der Startseite befinde?

Mein Aufbau soll in etwa so aussehen:

Code: Alles auswählen
<div class="row">
   <div class="col-md-12 no-padding-sides">
      <div class="panel panel-default">
         <div class="panel-body">

         <div id="logoRelative" class="col-md-4">
            <?php echo $logoImage ?>
         </div>

         <!-- Slider auf allen NICHT STARTSEITEN -->
         <div class="col-md-5">
            <div class="slider">
               <div class="sliderContent">
                  <?php foreach($KategorieDataArray as $Data) {?>
                  <div class="item">
                     <?php if($Data["url"] != "") {?>
                        <a href="<?php echo $Data["url"]?>"><?php echo $Data["image_string"]?></a>
                     <?php } else {?>
                     <?php echo $Data["image_string"]?>
                  <?php } ?>
               </div>
            <?php } ?>
         </div>
      </div>
   </div>
<!-- Ende Slider auf allen NICHT STARTSEITEN -->
[... gekürzt ...]


Ich hoffe ich konnte aufzeigen was ich genau vorhabe.
Natürlich bekommt der Slider auf den Unterseiten eigene Klassen damit ich ihn anders formatieren kann - es geht hier aber nur um die eigentliche Ausgabe.

Ich hoffe mir kann jemand helfen :-)

Viele Grüße aus dem Norden,

Thomas

Re: Slider auf allen Seiten

BeitragVerfasst: Mi 15. Jul 2015, 09:08
von ThomaZ
Keiner eine Idee?

ich möchte ungern den Slider für nicht-Startseiten hardcoden, wenn es im System einen funktionierenden Slider gibt :-P

Gruß,
Thomas

Re: Slider auf allen Seiten

BeitragVerfasst: Mi 15. Jul 2015, 10:55
von Martens
Hallo Thomas,

füg mal oben in templates/[DEIN_TEMPLATE]/website/index.tpl diesen Code ein:
Code: Alles auswählen
<?php
include_once(DATEIPFAD . "includes/functions.slider.inc.php");
$KategorieDataArray = GetSliderDataArray();
?>

Das ist ungetestet und auch nicht State of the Art, aber es könnte funktionieren. Da $KategorieDataArray an manchen Stellen auch für andere Dinge verwendet wird, ist es vielleicht sinnvoll statt dessen eine andere Variablenbezeichnung zu verwenden.

Grüße
Martin

Re: Slider auf allen Seiten

BeitragVerfasst: Mi 15. Jul 2015, 19:07
von ThomaZ
Hallo Martens,

Vielen Dank!!
Es funktioniert Prima!

Was genau ist an dieser Sache nun "unsauber"? Weil du ja sagtest - nicht state of the art - ?

Code: Alles auswählen
<?php if($KategorieDataArray){?>
[.....]                       
<?php } else { ?>
<!-- Header-Anzeige  -->
<div class="row">
   <div class="col-md-12 no-padding-sides">
      <div class="panel panel-default">
         <div class="panel-body">
           
            <div id="logoRelative" class="col-md-3 col-sm-12 col-xs-12 ">
               <?php echo $logoImage ?>
            </div>

<!-- Slider auf allen NICHT STARTSEITEN -->
   <?php
      include_once(DATEIPFAD . "includes/functions.slider.inc.php");
      $KategorieDataArray = GetSliderDataArray();
   ?>
<div class="col-md-6 hidden-xs hidden-sm">
   <div class="slider slider_unterseiten">
      <div class="sliderContent slidercontent_unterseiten">
         <?php foreach($KategorieDataArray as $Data) {?>
            <div class="item">
            <?php if($Data["url"] != "") {?>
            <a href="<?php echo $Data["url"]?>"><?php echo $Data["image_string"]?></a>
            <?php } else {?>
            <?php echo $Data["image_string"]?>
         <?php } ?>
      </div>
      <?php } ?>
     </div>
   </div>
</div>
<!-- Ende Slider auf allen STARTSEITEN -->
[........]
<!-- header Anzeige Ende -->


Es fehlen diverse schließende Divs - aber so sieht mein Code auszugweise aus - vieleicht hilft es irgendwem :)

LG

Thomas

Re: Slider auf allen Seiten

BeitragVerfasst: Fr 17. Jul 2015, 09:05
von mmaass
Unsauber, weil dieser include nix im Template zu suchen hat. :)
Du kannst es aber aus der index.php raus nehmen und in includes/header.inc.php rein tun, da diese Datei überall aufgerufen wird und Grundfunktionalität bereit hält. Da ist es dann ok.

Warum eigentlich einen so grossen Overhead mit Bootstrap?
Vorteile im Sinne der Geschwindigkeit oder SEO seh ich nicht wirklich, eher das Gegenteil.

Re: Slider auf allen Seiten

BeitragVerfasst: Sa 18. Jul 2015, 11:49
von Martens
mmaass hat geschrieben:Unsauber, weil dieser include nix im Template zu suchen hat. :)

Genau das meinte ich. Aber die header.inc.php hatte ich auf die Schnelle irgendwie nicht auf dem Zettel … :D

Re: Slider auf allen Seiten

BeitragVerfasst: Sa 18. Jul 2015, 12:23
von Magnus
Du kannst es aber aus der index.php raus nehmen und in includes/header.inc.php rein tun, da diese Datei überall aufgerufen wird und Grundfunktionalität bereit hält.

und beim nächsten Update ist alles wieder futsch ...
und die Sucherei nach der Ursache ist von großer Hektik begleitet, weil das Update ja nicht im Testsystem durchgeführt wird, sondern gleich auf dem LiveSystem. Und dokumentieren wird sowieso überbewertet.

OK, Zyn-Modus wieder aus.

Ne im Ernst, ich bin mittlerweile der Ansicht, dass Änderungen ausschließlich innerhalb des template-Ordners vorgenommen werden sollten. Dort lässt sich für jede Änderung ein eigener template Ordner anlegen. Lässt sich ja durchnummerieren.
Und stellt man fest, dass die aktuelle geänderte Version Fehler aufweist, schaltet man auf die Vorversion zurück, sucht und beseitigt den Fehler und schaltet wieder auf die neue Version um.
Getestet und entwickelt wir natürlich in einem lokalen System (z.B. mittels xampp) und erst wenns da funktioniert wird auf den Live-Server hochgeladen.

In meinem SEO-Modul für bessere Title und Description habe ich die Dateien in einen Ordner "tpl_includes" im templatesOrdner untergebracht. Ist schön übersichtlich und xxx.inc.php - Dateien in dem Ordner lassen sich wunderbar ins template einbinden, entweder in die index.tpl oder halt in die einzelne gerade benötigte tpl-datei.

Natürlich habe ich das Modul und die Art der Einbindung auch in den neuen responsive Template Vorlagen verwendet ;-)

Damit lässt sich dann ganz entspannt arbeiten :-)

viele Grüße

Magnus

Re: Slider auf allen Seiten

BeitragVerfasst: Mo 20. Jul 2015, 18:11
von mmaass
Du solltest Dich dann mal mit dem customisation Ordner befassen. :)
Das wäre bis aufs Template dann Updatesicher. Gibts auch schon seit der Version 2.1 Magnus. :)

Re: Slider auf allen Seiten

BeitragVerfasst: Mo 20. Jul 2015, 20:08
von Magnus
Kenn ich schon lieber Michael,

nur ist der nicht so richtig praktisch, ich liefer die Tage noch einen konkreten Verbesserungsvorschlag :-)

viele Grüße

Magnus