Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 23, 2012, 07:29:34

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5257 Beiträge in 1422 Themen von 333 Mitglieder
Neuestes Mitglied: pje
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  wie prüfen ob Bild an Server liegt ?
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: wie prüfen ob Bild an Server liegt ?  (Gelesen 792 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« am: Oktober 16, 2011, 11:27:06 »

Hallo,

Ich habe vom Verlag Bilder zur Verfügung gestellt bekommen, die nach dem EAN-Code benannt sind.
z.B. 9783772428449.jpg
Diese Bilder habe ich nach 2 Größen (Normal- und Zoomansicht) formatiert und auf den Server gelegt.

Im Shop habe ich die EAN-Codes der Artikel eingetragen.
Die Bilder binde ich jetzt so ein:

Code:
<!--spmacro:module(show)
sub lightboximg {
my $index = $_[0];
my $anzahl = $_[1];
if ($index <= $anzahl) {
  my $ean = ssp::get_var_article("EAN",$index);
  my $img = "http://www.woll-insel.at/TOPP/" . $ean . ".jpg";
  my $zoom = "http://www.woll-insel.at/TOPP/zoom/" . $ean . ".jpg";
  my $text = ssp::get_var_article("ARTNR",$index);
  if (length($ean)) {
main::mprint qq|<img style="height: 100px; width: auto;margin-right:10px;" src="$img">
<div style="position:relative; margin-top: -22px;"><a href="$zoom" rel="lightbox[roadtrip]" title="$text">
<img style="width:20px; height: 20px;" src="../images/zoom.jpg" alt="zoom" border="0" /></a>
</div>|;
}
}
return 0;
}
-->

Das Problem ist jetzt, dass es zwar seeehr viele Bilder gibt die ich *nicht* brauche aber nicht alle Bilder - die ich brauche - zu allen Artikeln im Shop.
Der EAN-Code ist aber eingetragen was dann dazu führt, dass die Lightbox ewig nach solchen Bildern sucht aber sie nicht findet.
Die Bedingung
  if (length($ean)) { }
nutz also in diesem Fall nichts sondern müsste
  if (Bild ist am Server vorhanden) { }
sein.

Wie kann ich das abfragen?
Gespeichert

dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #1 am: Oktober 16, 2011, 11:38:56 »

google hat mir verraten wie's geht  Cool

falls das mal jemand braucht
if (Bild ist am Server vorhanden) { ... }  kann man so abfragen:

Code:
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
 
my $response = $ua->get($img);
 
  if ($response->is_success) { ... }

Nachtrag:
  es funktioniert zwar - aber schadet scheinbar der Perfomance Sad
Seintenaufbau stark verzögert

Gibt es eine bessere Möglichkeit?
« Letzte Änderung: Oktober 16, 2011, 13:53:16 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« Antwort #2 am: Oktober 17, 2011, 00:07:11 »

Sollte so gehen:

Code:
if (-e("/TOPP/" . $ean . ".jpg")) {
  ## vorhanden
}
Gespeichert

MfG ahe
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #3 am: Oktober 17, 2011, 10:36:20 »

Hallo ahe,

funktioniert  Cheesy

(.... vorausgesetzt man verwendet den korrekten UNIX-Pfad Wink  - Danke für den Hinweis)
Gespeichert

Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS