Neu News Darstellung auf Startseite nebeneinander statt übereinander Shop 4

  • "Hermes B2C" wird zum 29.02.2020 abgeschaltet und durch das neue "Hermes-Shipping-Interface" (HSI) ersetzt.
    Wer noch "Hermes B2C" nutzt sollte rechtzeitig umsteigen
    Weiterführende Infos gibt es hier: Infos zur Schnittstelle

Holgersson

Aktives Mitglied
21. Januar 2011
49
1
Hallo Zusammen,

in einem 4.x Testshop suche ich noch nach der Lösung die Startseite nach meinen Wünschen zu gestalten.
Die dargestellten News werden dort auf voller Breite übereinder angezeigt, also viel weiße Luft.

Gerne hätte ich drei Boxen nebeneinander. Oder ist das aus Responsive-Gründen eher unklug?

Im Backende kann man es wohl nicht einfach einstellen, sondern über eine Custom Template. Wie gehe ich dann am besten vor? CSS steuert die Darstellung habe ich gehört, aber dann hört es mit meinem Halbwissen bereits auf.

Auch ein Link auf die passende Beschreibung würde mir helfen.

Vielen Dank schon mal
 

Mirko.Schmidt

Moderator
Mitarbeiter
14. August 2015
1.801
126
Hallo,

in der ../page/index.tpl gibt es in den Zeilen 32 - 40 folgenden Block
Code:
{block name="index-additional"}
    {if isset($oNews_arr) && $oNews_arr|@count > 0}
        <hr>
        <h2>{lang key="news" section="news"}</h2>
        {foreach name=news from=$oNews_arr item=oNewsUebersicht}
            {include file="blog/preview.tpl"}
        {/foreach}
    {/if}
{/block}
Hiermit werden die Boxen auf der Startseite erstellt. Damit nun z.B. 2 Boxen nebeneinander sind, könnte man es in folgendes abändern

Code:
{block name="index-additional"}
    {if isset($oNews_arr) && $oNews_arr|@count > 0}
        <hr>
        <h2>{lang key="news" section="news"}</h2>
        {foreach name=news from=$oNews_arr item=oNewsUebersicht}
            <div class="col-md-6">
                {include file="blog/preview.tpl"}
            </div>
        {/foreach}
    {/if}
{/block}
Dann werden ab einer Fensterbreite von 992px 2 Boxen nebeneinander dargestellt. Hier wird einfach das Bootstrap Gridsystem genutzt, was nach belieben auch noch geändert werden kann. Gibt bestimmt auch noch andere Lösungen.
 

Holgersson

Aktives Mitglied
21. Januar 2011
49
1
Super vielen Dank.

ich vermute ich sollte es das eben unter MeinTemplate->Layout->index.tpl ändern (und nicht im update-relevanten Original):

Dort sieht es gerade so aus:

{if isset($nFullscreenTemplate) && $nFullscreenTemplate == 1}
{include file=$cPluginTemplate}
{else}
{include file='layout/header.tpl'}
{if !empty($Link->Sprache->cTitle)}
<h1>{$Link->Sprache->cTitle}</h1>
{/if}

{include file="snippets/extension.tpl"}

{if !empty($Link->Sprache->cContent)}
{$Link->Sprache->cContent}
{/if}


{if $Link->nLinkart == 11}
<div id="tos" class="well well-sm">
{if $AGB->cAGBContentHtml}
{$AGB->cAGBContentHtml}
{elseif $AGB->cAGBContentText}
{$AGB->cAGBContentText|nl2br}
{/if}
</div>
{elseif $Link->nLinkart == 24}
<div id="revocation-instruction" class="well well-sm">
{if $WRB->cWRBContentHtml}
{$WRB->cWRBContentHtml}
{elseif $WRB->cWRBContentText}
{$WRB->cWRBContentText|nl2br}
{/if}
</div>
{elseif $Link->nLinkart == 5}
{include file='page/index.tpl'}
{elseif $Link->nLinkart == 6}
{include file='page/ shipping.tpl'}
{elseif $Link->nLinkart == 14}
{include file='page/tagging.tpl'}
{elseif $Link->nLinkart == 15}
{include file='page/livesearch.tpl'}
{elseif $Link->nLinkart == 16}
{include file='page/manufacturers.tpl'}
{elseif $Link->nLinkart == 18}
{include file='page/newsletter_archive.tpl'}
{elseif $Link->nLinkart == 21}
{include file='page/sitemap.tpl'}
{elseif $Link->nLinkart == 23}
{include file='page/free_gift.tpl'}
{elseif $Link->nLinkart == 25 && empty($nFullscreenTemplate)}
{include file="$cPluginTemplate"}
{elseif $Link->nLinkart == 26}
{include file='productwizard/index.tpl'}
{elseif $Link->nLinkart == 29}
{include file='page/404.tpl'}
{/if}
{include file='layout/footer.tpl'}
{/if}


Wo darf ich es den ergänzen?

Danke schön nochmal
 

Mirko.Schmidt

Moderator
Mitarbeiter
14. August 2015
1.801
126
Ja definitiv in einem Child Template ändern und nicht im Evo. Zum einen wäre es besser den Code immer in Code Tags zu packen und zum anderem das sieht eher nach der ../layout/index.tpl aus und nicht der ../page/index.tpl
 

Holgersson

Aktives Mitglied
21. Januar 2011
49
1
Okay,
ich muss nochmal ganz auf Anfang:

Für Code-Tags die Einfüge Funktion nutzen, okay.

Stimmt, das war die Layout->index...sorry

um dies im Child Template ausführen zu lassen stelle ich mir das laienhaft so vor:
ich erstelle ein Verzeichnis MeinTheme/Page und kopiere dort die index.tpl - Datei aus dem Evo-405-2 Ordner. Die ändere ich dann an besagter Stelle.

Zu einfach gedacht? Funktioniert auch nicht.

Code:
{if !empty($cFehler)}
    <div class="alert alert-danger">{$cFehler}</div>
{/if}

{include file="productwizard/index.tpl"}

{if isset($StartseiteBoxen) && $StartseiteBoxen|@count > 0}
    <hr>
    {assign var='moreLink' value=null}
    {assign var='moreTitle' value=null}
    {foreach name=startboxen from=$StartseiteBoxen item=Box}
        {if isset($Box->Artikel->elemente) && count($Box->Artikel->elemente)>0 && isset($Box->cURL)}
            {if $Box->name === 'TopAngebot'}
                {lang key="topOffer" section="global" assign='title'}
                {lang key='showAllTopOffers' section='global' assign='moreTitle'}
            {elseif $Box->name === 'Sonderangebote'}
                {lang key="specialOffer" section="global" assign='title'}
                {lang key='showAllSpecialOffers' section='global' assign='moreTitle'}
            {elseif $Box->name === 'NeuImSortiment'}
                {lang key="newProducts" section="global" assign='title'}
                {lang key='showAllNewProducts' section='global' assign='moreTitle'}
            {elseif $Box->name === 'Bestseller'}
                {lang key="bestsellers" section="global" assign='title'}
                {lang key='showAllBestsellers' section='global' assign='moreTitle'}
            {/if}
            {assign var='moreLink' value=$Box->cURL}
            {include file='snippets/product_slider.tpl' productlist=$Box->Artikel->elemente title=$title hideOverlays=true moreLink=$moreLink moreTitle=$moreTitle}
        {/if}
    {/foreach}
{/if}

{block name="index-additional"}
   {if isset($oNews_arr) && $oNews_arr|@count > 0}
       <hr>
       <h2>{lang key="news" section="news"}</h2>
       {foreach name=news from=$oNews_arr item=oNewsUebersicht}
           <div class="col-md-6">
               {include file="blog/preview.tpl"}
           </div>
       {/foreach}
   {/if}
{/block}
{/block}
 

Holgersson

Aktives Mitglied
21. Januar 2011
49
1
Ja, ich denke das hatte ich soweit auch alles angewandt:

Würde ich dann wie oben gemeint, die index.tpl in MeineTheme/page/ folgendermaßen aussehen?

Code:
{extends file="{$parent_template_path}Evo/page/index.tpl"}

{block name="index-additional"}
    {if isset($oNews_arr) && $oNews_arr|@count > 0}
        <hr>
        <h2>{lang key="news" section="news"}</h2>
        {foreach name=news from=$oNews_arr item=oNewsUebersicht}
            <div class="col-md-6">
                {include file="blog/preview.tpl"}
            </div>
        {/foreach}
    {/if}
{/block}
so angewandt, bleibt meine Seite leer.
 

Holgersson

Aktives Mitglied
21. Januar 2011
49
1
Ja genau, das hatte hatte ich noch raus genommen, aber dann ist die Seite zwar wieder da, aber ohne Änderung. Chache war zwar aus, aber trotzdem geleert.

Kann ich was einbauen um zu testen ob der Weg der richtige ist?
 

Holgersson

Aktives Mitglied
21. Januar 2011
49
1
Ja, es werden zwei letzte News-Vorschau übereinander dargestellt. Gleiche wie wenn ich die page/index.tpl nicht ändere.
 

Mirko.Schmidt

Moderator
Mitarbeiter
14. August 2015
1.801
126
Der Pfad bei den Dateien beim Child Template passt und dies ist aktiv? Könnte der aktuelle Code von der page/index.tpl noch mal gepostet werden.
 

Holgersson

Aktives Mitglied
21. Januar 2011
49
1
Die page/index.tpl im Child template ist folgende:
Code:
{extends file="{$parent_template_path}/page/index.tpl"}

{block name="index-additional"}
    {if isset($oNews_arr) && $oNews_arr|@count > 0}
        <hr>
        <h2>{lang key="news" section="news"}</h2>
        {foreach name=news from=$oNews_arr item=oNewsUebersicht}
            <div class="col-md-6">
                {include file="blog/preview.tpl"}
            </div>
        {/foreach}
    {/if}
{/block}
in der Evo_405-2 ist die so:

Code:
{if !empty($cFehler)}
    <div class="alert alert-danger">{$cFehler}</div>
{/if}

{include file="productwizard/index.tpl"}

{if isset($StartseiteBoxen) && $StartseiteBoxen|@count > 0}
    <hr>
    {assign var='moreLink' value=null}
    {assign var='moreTitle' value=null}
    {foreach name=startboxen from=$StartseiteBoxen item=Box}
        {if isset($Box->Artikel->elemente) && count($Box->Artikel->elemente)>0 && isset($Box->cURL)}
            {if $Box->name === 'TopAngebot'}
                {lang key="topOffer" section="global" assign='title'}
                {lang key='showAllTopOffers' section='global' assign='moreTitle'}
            {elseif $Box->name === 'Sonderangebote'}
                {lang key="specialOffer" section="global" assign='title'}
                {lang key='showAllSpecialOffers' section='global' assign='moreTitle'}
            {elseif $Box->name === 'NeuImSortiment'}
                {lang key="newProducts" section="global" assign='title'}
                {lang key='showAllNewProducts' section='global' assign='moreTitle'}
            {elseif $Box->name === 'Bestseller'}
                {lang key="bestsellers" section="global" assign='title'}
                {lang key='showAllBestsellers' section='global' assign='moreTitle'}
            {/if}
            {assign var='moreLink' value=$Box->cURL}
            {include file='snippets/product_slider.tpl' productlist=$Box->Artikel->elemente title=$title hideOverlays=true moreLink=$moreLink moreTitle=$moreTitle}
        {/if}
    {/foreach}
{/if}

{block name="index-additional"}
{if isset($oNews_arr) && $oNews_arr|@count > 0}
    <hr>
    <h2>{lang key="news" section="news"}</h2>
    {foreach name=news from=$oNews_arr item=oNewsUebersicht}
        {include file="blog/preview.tpl"}
    {/foreach}
{/if}
{/block}
 

Holgersson

Aktives Mitglied
21. Januar 2011
49
1
wenn ich in der Child/page/index.tpl mal die {extends file="{$parent_template_path}/page/index.tpl"} rausnehme, kommt es zum Fehler ohne Darstellung. Der Weg scheint also zu funktionieren.

Gibt es mehr Möglichkeiten News darzustellen?
Muss ich bei der Boxen-Verwaltung was beachten?
 

Mirko.Schmidt

Moderator
Mitarbeiter
14. August 2015
1.801
126
Hier wurde das Evo-Child-Example als Grundlage genommen. In der Browser Console gibt's auch einige Javascript Fehler. Am besten das ganze nochmal neu aufziehen und eine eigene template.xml anlegen und nur die Dateien/Ordner erstellen die benötigt werden.