Jump to content
xt:Commerce Community Forum

Bildgrößenabfrage / Weiche vor Bildauslieferung


mazman

Recommended Posts

Habe aus einer oscommerce alle Produkte und Kategorien etc. per DB Umwandlung etc. in VEYTON übernommen und anschließend die Bildnamen per Script automatisch an die Artikelnummern (products_model) angepasst. Dann meine bearbeiteten Bilder von der Festplatte in die Serverordner geschoben.

Nun hatte ich aber nicht für jedes produkt ein Bild und so gibt es Artikel die in der DB products_model.jpg (Also ARtikelnummer bzw. Bild) drin zu stehen, obwohle es sie auf dem Server nicht gibt. Ich wollte eigentlich eine Abfrage mit getimagesize vor die Teaserbild-Ausliefrung setzen und habe es mit verschiedenen Varianten in templates/xt_default/xtCore/pages/product/product.html probiert. Aber da es eine html ist funzt mein php - Gedanke da nicht. Hat jemand eine Idee. Ich wollte bei Bildbreite = 0 ein Ersatzbild einsetzen. Vielen Dank.

Link to comment
Share on other sites

Du kannst auch da php anwenden ...

{php}

php inhalt ...

{/php}

und so gibt es Artikel die in der DB products_model.jpg (Also ARtikelnummer bzw. Bild) drin zu stehen,

was willst du mir damit sagen? :D^^

wenn jedes Produkt wo es kein Bild zu gab den gleichen Bilddateinamen hat ... benenn das no Image Bild doch einfach products_model.jpg !?

grüße

Link to comment
Share on other sites

Nein. products_model.jpg sollte heißen, dass es Produkte gibt, die in der DAtenbank zwar ein Bild eingetragen haben, nämlich Bildname ist gleich Artikelnummer + jpg Endung. Aber kein Bild mit solchem Namen im Bilderordner existiert. ...weil ich das alles automatisiert eingetragen hatte. Daher will ich in veyton abfragen, wie große das Bild ist, welches in der DB eingetragen ist und wenn es von den Pixelmaßen kleiner 1x1 oder = 0 ist, soll eben ein Platzhalterbild ausgeliefert werden. Unabhängig, was in der DB steht. Hat den Vorteil, dass ich später einmal Bilder nur mit der ARtikelnummer versehen muss und auf den Server uploaden kann und die neuen Bilder werden dann automatisch erkannt.

{php}

echo "Hallo";

{/php}

...funktioniert auf der Seite. Ich hatte zuerst <?php ... ?> probiert und das hatte das System nicht als php erkannt. Jetzt bin isch schlauer! :) Vielen Dank.

Link to comment
Share on other sites

Hmm, also irgendwie fehlt mir noch ein Geistesblitz. Habe jetzt mit getimagesize versucht das Bild zu analysieren. Aber es scheint mir, als ob die Variable $products_image so nicht zu verwenden ist. Jedenfalls erhalte ich kein Ergebnis auf meine echo Ausgaben. Hat jemand eine Idee?

<div id="productinfowrap">

{if $products_image!=''}

<div id="productinfoimages">

{php}

$bild = $products_image ;

$info = getimagesize($bild);

echo $bild;

echo $info[0]; // Bildbreite

echo $info[1]; // Bildhöhe

{/php}

<a href="{img img=$products_image type=m_popup path_only=true}" class="thickbox">{img img=$products_image type=m_info alt=$products_name}</a>

</div>

{/if}

Link to comment
Share on other sites

Hat denn jemand eine Idee, warum mein PHP hier so nicht funktioniert?

In dem <a href ...Code werte die Seite $products_image aus und setzt das richtige Bild ein. Im {php} Bereich dagegen scheint $products_image nicht ausgelesen zu werden. Hmmm.

Gibt es grundlegende Hinweise zu PHP in Veyton PHP- und HTML-Seiten?

Link to comment
Share on other sites

  • 10 months later...

ich hatte ja alle Bilder, die mir zur Verfügung standen, mit Artikelnummer (products_model) versehen und auf den Server geladen. ...dann in der DB die Spalte products_image mit products_model.jpg gefüllt und dann habe ich aus Ermangelung einer Alternative mit folgendem separatem Script nicht vorhandene Bilder mit platzhalter.jpg überschrieben. Vielleicht hilft Dir das weiter.

<?php

die('NO ACCESS!');

$server = "localhost";

$user = "";

$pass = "";

$db="";

$conn = mysql_connect($server, $user, $pass);

$select = mysql_select_db($db,$conn);

$sql2 = ("select * from xt_products");

$result2 = mysql_query($sql2);

while($row = mysql_fetch_assoc($result2)) {

$filename = '/var/..../veyton/media/images/info/'.$row['products_image'] ;

if (file_exists($filename)) {

$info = getimagesize ( '/var/..../veyton/media/images/info/'.$row['products_image'] );

echo "<br>".$row['products_model']." - ".$row['products_image']." - ".$info[0] ;

} else {

echo "<br>".$row['products_model']." - ".$row['products_image']." - Bild zu Platzhalter" ;

/*

$platzhalter = "platzhalter01.jpg";

$sql3 = mysql_query("update xt_products set products_image = '".$platzhalter."' where products_model = '".$row['products_model']."'");

$res=mysql_query($sql3);

*/

}

}

?>

php in veyton nur über Smarty Programmierung. Vielleicht kannst du damit auch eine Llösung erstellen. Wenn Ja, poste sie hier mal. Veyton ist leider nicht mehr so einfach mit php umzustricken. Zumal auch ein Großteil verschlüsselt ist und man dort überhauptnicht herankommt. ...da muss mann dann mit den Hookpoints arbeiten, glaube ich. Viel Erfolg und halte das Forum über Deine Ergebnisse am Laufen, damit in einem Jahr ;) der Nächste davon provitieren kann.

Link to comment
Share on other sites

Die Smarty Variablen in PHP zu nutzen ist kein ProbleM.

$this->get_template_vars('products_name')
oder
{assign var=category_id value=$categories_id}[/PHP]

Veyton lässt sich perfekt mit PHP auf die eigenen Bedürfnisse anpassen, wo seht ihr die Probleme?

Gruß Marcus

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...