Neu If file exists in tpl Datei

S-T

Neues Mitglied
4. Februar 2021
9
0
Hallo,

ich bekomme es nicht hin, in einer tpl Datei eine Abfrage zu programmieren, ob ein Verzeichnis / Datei existiert.

Code:
{block name='productdetails-image-images-wrapper'}
            {$path = '/httpdocs/360/$Artikel->Artikelnummer'}
            {if (file_exists($path))} {
            {echo "The file $path exists";}
            } else {
            <div id="gallery_wrapper" class="clearfix">
                    <div id="gallery"
                         class="product-images slick-smooth-loading carousel slick-lazy"
                         data-slick-type="gallery">
                        {block name='productdetails-image-images'}
                            {foreach $Artikel->Bilder as $image}
                                {strip}
                                    <div class="square square-image js-gallery-images {if !$image@first}d-none{/if}">
                                        <div class="inner">
                                            {image alt=$image->cAltAttribut|escape:'html'
                                                class="product-image"
                                                fluid=true
                                                lazy=true
                                                webp=true
                                                src="{$image->cURLMini}"
                                                srcset="{$image->cURLMini} {$Einstellungen.bilder.bilder_artikel_mini_breite}w,
                                                    {$image->cURLKlein} {$Einstellungen.bilder.bilder_artikel_klein_breite}w,
                                                    {$image->cURLNormal} {$Einstellungen.bilder.bilder_artikel_normal_breite}w,
                                                    {$image->cURLGross} {$Einstellungen.bilder.bilder_artikel_gross_breite}w"
                                                data=["list"=>"{$image->galleryJSON|escape:"html"}", "index"=>$image@index, "sizes"=>"auto"]
                                            }
                                        </div>
                                    </div>
                                {/strip}
                            {/foreach}
                        {/block}
                    </div>
                    {if $Artikel->Bilder|count > 1}
                        <ul class="slick-dots initial-slick-dots d-lg-none" style="" role="tablist">
                            {foreach $Artikel->Bilder as $image}
                                <li class="{if $image@first}slick-active{/if}" role="presentation">
                                    {button}{/button}
                                </li>
                            {/foreach}
                        </ul>
                    {/if}
                </div>
            {/if}
            {/block}

Gibt es eine Befehlsreferenz für die tpl Dateien.

Ja, ich weiß die Dateien werden bei eine Update überschrieben...

Gruss

Steven
 

S-T

Neues Mitglied
4. Februar 2021
9
0
Hallo Michael,

ich möchte mir daraus später ein Plugin stricken.

Funktion ganz einfach:
Bei jedem Artikel werden die Bilder angezeigt.
Ausser es gibt im Verzeichnis '360' ein Verzeichniss mit der Artikelnummer des Artikels.
Dann habe ich ein 360 Grad Foto via FTP hochgeladen.
Im Quellcode wir an der der echo "" Stelle noch der 360 Player eingebunden.
Somit kann ich durch einfachen Upload steuern, welche Artikel ein 360 Grad Foto bekommen.

Eine einfach If Abfrage würde mir deshalb reichen.

Gruss

Steven
 

S-T

Neues Mitglied
4. Februar 2021
9
0
Hallo,

gleich das nächste Problem.

Bei diesem Code:

Code:
{assign var="drehart" value=$Artikel->cArtNr}
            {assign var="drehbarpath" value="./360/" & $drehart & "/output.html"}
            {$drehbarpath}
            {if is_file('$drehbarpath')}
            {$drehbarpath}
            {else}
            {$drehbarpath}
            .
            .
            .
            {/if}

z.b. Zeile 3,5,7 gebe ich nur zum Debug die Variable auf der Webseite aus.

Diese sollte dann ja so aussehen ./360/4711/output.html

Bei mir erscheint aber: "00 "00

Einmal "00 auf Zeile 3 und "00 aus Zeile 7

Auch mit dieser Möglichkeit

{$drehart=$Artikel->cArtNr}
{$drehbarpath="./360/" & $drehart & "/output.html"}

kommt das gleiche Ergebnis heraus.

Schreibe ich aber z.b.
{$drehbarpath="Hallo"}
{$drehbarpath}
Kommt als Ausgabe Hallo

Vvl. kann mir einer hierbei helfen, ich verstehe es nicht...

Gruss

Steven
 

Conny

Sehr aktives Mitglied
7. September 2009
479
38
Hi,
am Besten erst mal in die Syntax von Smarty vertiefen: www.smarty.net


PHP:
{$pic_path="meinPath"}

{$drehart="360"}

{$pic_name="output.jpg"}


{$erg = "/$pic_path/$drehart/hier_vielleicht_noch_mehr/$pic_name"}

<!-- Ergebnis anzeigen -->

{$erg}

Sieht so aus:
/meinPath/360/hier_vielleicht_noch_mehr/output.jpg
 
Zuletzt bearbeitet:

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
4.878
865
Berlin
Für so etwas gibt es schon fertige Plugins, dann ist die 360er Ansicht zwar nicht im der Galerie Bild Container aber da finde ich das eh etwas ungünstig.
 

Conny

Sehr aktives Mitglied
7. September 2009
479
38
Hi @S-T,

ich habe noch mal ein getestetes Beispiel für dich.
Im Root vom Webspace habe ich einen Ordner "360" angelegt und dort mal eine Datei mit der Endung .png eingestellt.
Z.B. 4711.png
Wobei 4711 die Artikel Nr ist.

Also steht jetzt in der Variable $drehart die Artikel Nr. 4711
Bei is_file sollte man den (kompletten) absolouten Path mit angeben was ich mit der Konstante PFAD_ROOT mache.


Code:
{$drehart=$Artikel->cArtNr}
{$drehpath = "/360/{$drehart}.png"}
   
{if is_file("{PFAD_ROOT}$drehpath")}
    <img src="{$drehpath}">
{else}
    {* Bereich für normale (Standard) Anzeige *}
{/if}
 
  • Gefällt mir
Reaktionen: S-T

S-T

Neues Mitglied
4. Februar 2021
9
0
Hallo Conny,

Ich habe jetzt die Änderungen in ein Plugin integriert, das sobald ich für einen Artikel ein 360 Animation hochlade diese anstelle der hinterlegten Bilder im Shop angezeigt werden.
Dadurch bleiben die Artikelfotos vorhanden um in CSV Exporten mit Artikelfotos arbeiten zu können.

Vielen Dank für die Hilfe.

Gruß aus dem sonnigen Norden

Steven