node-product.tpl.php Pfad statt Produktbild?
am 30.09.2011 - 11:26 Uhr in
Hallo ihr Lieben,
Benutze seit einigen Wochen Drupal, kenne mich also oberflächlich aus.
Derzeit bin ich dabei, meinen Ubercartshop zu konfigurieren, und habe deshalb diesen Code als meine node-product.tpl.php:
<div class="node-<?php print $node->nid; ?><?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
<?php if ($picture) {
print $picture;
}?>
<?php if ($page == 0) { ?><h2 class="title"><a href="<?php print $node_url?>"><?php print $title?></a></h2><?php }; ?>
<div class="content">
<table cellpadding="0" cellspacing="0" class="product">
<tr>
<td align="center" class="product_image">
<?php
// Grabs the firsts image path and sets $imagePath.
$imagePath = $node->field_image_cache['0']['filepath'];
?>
<br /><?php print l(
theme('imagecache', 'product', $field_image_cache[0]['filepath'], $field_image_cache[0]['alt'], $field_image_cache[0]['title']),
$field_image_cache[0]['filepath'],
array('class' => 'thickbox'), NULL, NULL, FALSE, TRUE); ?>
</td>
<td class="product_info">
<div id="node">
<?php // product title ?>
<p class="product-title"><?php print $title ?></p>
<p class="product-titles">Product Details</p>
<?php print $node->content['weight']["#value"]; ?>
<?php print $node->content['dimensions']["#value"]; ?>
<p class="product-titles">Product Rating</p>
<?php print $node->content["fivestar_widget"]["#value"]; ?>
<p class="product-titles">Product Reviews:</p>
Product Reviews <?php print $node->comment_count; ?> | <a href="/<?php print $node->links['comment_add']['href']; ?>#comment-form">Review Product</a> | <a href="#read_reviews">Read Reviews</a>
</div>
<br />
<div id="cartContainer">
<div id="cartAdd">
<?php // add to cart buttons ?>
<?php print $node->content['add_to_cart']["#value"]; ?>
</div>
<div id="cartPrice">
<?php // list price and sell price display ?>
<p class="product-titles">PNW Everyday Low Price</p>
<p id="productPrices" class="productGeneral"><?php print uc_currency_format($node->sell_price); ?></p>
</div>
<div id="spacer"><!-- nothing --></div>
</div>
</td>
</tr>
</table>
<hr />
<?php print $productupsell ?>
<br />
<p class="product-titles">Description:</p>
<?php // product description ?>
<?php print $node->content['body']['#value']; ?>
<br />
<a href="/<?php print $node->links['comment_add']['href']; ?>#comment-form" name="read_reviews">Review Product</a>
</div>
<?php if ($links) { ?><div class="links">» <?php print $links?></div><?php }; ?>
</div>
von hier: http://www.ubercart.org/forum/development/3868/nifty_products_tutorial_p...
Jedoch bekomme ich dann bei meiner Produktansicht immer den Link:
img src = http://meineseite.de/sites/default/files/imagecache/product/apfel.jpg" alt ="" title="" class="imagecache imagecache-product" width="100" height="93"
angezeigt.
Wenn ich darauf klicke, komme ich zum Bild.
Ich habe mit imagecache 2 Presets, einen für das Hauptbild, und einen für die Thumbs erstellt.
Wie bekomme ich die Bilder anstatt dem Pfad angezeigt? Ich hoffe mir kann jemand helfen.
mit freundlichen Grüße,
Hans
- Anmelden oder Registrieren um Kommentare zu schreiben
Du musst bei der l - function
am 30.09.2011 - 14:58 Uhr
Du musst bei der l - function mitgeben, dass HTML als $text benutzt werden darf, sonst gibt dir zwar die theme-function von imagecache einen img-tag mit allem drum und dran zurück, aber die l - function ignoriert das html und gibt das als Text aus.
Das hier meine ich:
?php print l(
theme('imagecache', 'product', $field_image_cache[0]['filepath'], $field_image_cache[0]['alt'], $field_image_cache[0]['title']),
$field_image_cache[0]['filepath'],
array('class' => 'thickbox'), NULL, NULL, FALSE, TRUE); ?>
siehe: http://api.drupal.org/api/drupal/includes--common.inc/function/l/6
Du musst also nur dein array('class' => 'thickbox') erweitern auf array('class' => 'thickbox', 'HTML' => true)
Vielen dank, aber..
am 02.10.2011 - 08:35 Uhr
Hey Looman,
vielen Dank bereits für deine Hilfe.
Habe nun das array('class' => 'thickbox', 'HTML' => true) hinzugefügt, meinen cache geleert, jedoch erscheint das Bild immer noch als Pfad?
Was mache ich noch falsch?
lg, Hans
Welche Drupal-Version
am 02.10.2011 - 10:41 Uhr
Welche Drupal-Version verwendest du?
Und was genau soll denn das "NULL, NULL, FALSE, TRUE" am Ende der l-Funktion bezwecken?
Hallo, ich verwende Drupal.
am 02.10.2011 - 12:32 Uhr
Hallo,
ich verwende Drupal. 6.22
Ich weiß es nicht, das war standartmäßig dabei gestanden, wenn ich es entferne, bekomme ich jedoch eine Error-Nachricht.
Was könnte ich npch ändern, damit es funktioniert?
danke, Hans
Hallo,probiere mal bitte
am 02.10.2011 - 12:40 Uhr
Hallo,
probiere mal bitte folgendes:
<?php print l(
theme('imagecache', 'product', $field_image_cache[0]['filepath'], $field_image_cache[0]['alt'], $field_image_cache[0]['title']),
$field_image_cache[0]['filepath'],
array('html' => true, 'attributes' => array('class' => 'thickbox'))); ?>
Die l-function verlangt unter Drupal 6 nur 3 Parameter, dieses ", NULL, NULL, FALSE, TRUE" ist nicht nur fragwürdig, sondern dürfte garnicht funtionieren.
Falls das oben geschriebene nicht funktioniert, gib bitte mal deine Fehlermeldung mit an.
Wow! danke looman!
am 02.10.2011 - 17:41 Uhr
Wow! hat super funktioniert!
dankeschön :)
Jetzt habe ich nur noch dass Problem, dass er mir nur ein Bild anzeigt.
Könnte ich meinen Block View mit Lightbox2-Feldern, den ich erstellt habe, miteinbinden?
Da ich mit dem jetztigen Code nur ein Bild (das Hauptbild) angezeigt bekomme, jedoch sehr gern die anderen in einer Thumbnail angezeigt hätte.
Den Block habe ich mit Views Slideshow erstellt.
Weißt du was ich meine?
Danke bereits im vorraus,
Hans
http://drupal.org/node/246742
am 02.10.2011 - 17:56 Uhr
http://drupal.org/node/246742
danke
am 02.10.2011 - 22:30 Uhr
hey danke, und wo muss ich dieses
<?php
$view = views_get_view('viewname');
print $view->execute_display('default');
?>
dann einfügen, damit ich den Block angezeigt bekomme? danke bereits für deine Bemühung, Hans
Hallo nochmal, ich weiß
am 02.10.2011 - 23:44 Uhr
Hallo nochmal,
ich weiß leider nicht genau, was du machen möchtest.
Wenn die zusätzlichen Bilder, die du anzeigen willst, mit aus der gleichen node kommen, kannst du diese mit einer foreach-schleife einfach mit ausgeben. Wenn es um einen seperaten Block mit Bildern als Inhalt geht, musst du das, was Exterior geschrieben hat nur an die richtige Stelle schreiben (zum Beispiel in ein Extra-Div hinter dein Hauptbild).
Einfach mal rumprobieren, wo es am besten passt ;)