Темизация конкретного товара. Drupal5+Ubercart

Главные вкладки

Аватар пользователя coolakov coolakov 9 марта 2010 в 17:55

Есть ubercart на пятом друпале.
Через управление классами создан новый тип товара(мебель), которому, как и полагается, присвоился урл taxonomy/term/blabla
Создаю материал только что созданного типа, допустим табуретка. Он, молодец, появляется на странице taxonomy/term/blabla, и дополнительно создается персональная страница товара node/34.
С темизацией странички taxonomy/term/blabla я с помощью модуля vews справился. А вот страничка node/34 отображается в дефолтном представлении, что меня не устраивает.

Осложняется дело тем, что я создал еще и несколько страниц, имеющих адреса, допустим, node/5, node/33 и node/35. То есть, темизировать все ноды разом (я вроде примерно понял как это сделать)я не могу, т.к. они у меня разных типов: есть страницы, а есть товары.

Соответственно, вопрос: как мне темизировать (настроить отображение устраивающим меня образом) страницы конечного товара?

Комментарии

Аватар пользователя volocuga volocuga 9 марта 2010 в 18:20

Инструкция:

1) Создать текстовый файл и переименовать его в node-Ваш тип ноды.tpl.php
2) Вставить код (без тегов php):

<?php

<div class="node<?php if ($sticky) { print " sticky"; } ?><?php if (!$status) { print " node-unpublished"; } ?>">
<
div class="content">
    <
div class="product-top" style="width:700px;">
        <
div class="product-image" style="width:210px; float:left;">
<?
php $imagePath $node->field_image_cache['0']['filepath']; ?>
               
                <a href="<?=base_path()?><?=$imagePath?>" rel="lightshow[prod]">
                    <img src="<?=base_path()?>files/imagecache/product/<?=$imagePath?>" alt="<?=$title?>" title="<?=$title?>">
                </a>
                <ul class="other_imgs" style="list-style-type:none; margin-top:10px; text-align:center;">
                    <?php foreach ($node->field_image_cache as $images) { if ($images['filepath'] != $imagePath) { ?>
                    <li style="display:inline; padding:0; margin-left:0;"><a href="<?=base_path()?><?=$images['filepath']?>" rel="lightshow[prod]" title="<?=$title?>">
                    <img src="<?=base_path()?>files/imagecache/thumbnail/<?=$images['filename']?>" alt="<?=$title?>"></a></li>
                    <?php } } ?>
                </ul>
            </div>
            <div class="product-add-to-cart" style="margin-left:10px; width:480px; float:left; clear:right;">
            <h1 class="title" style="color:#000; font-size:1.6em; font-weight:bold;"><?=$title?></h1>
                <span style="font-size:.8em;">Ships Fast &amp; <a href="http://www.hugamonkey.com/info/love-it">Free</a></span>

                <div class="add-to-cart-box" style="width:320px; margin-top:10px; padding:.4em; border:5px solid #ccc; background:#f1f1f1;">
              <div class="add-to-cart-box_pricing-box" style="background:#fff; border-bottom:1px dotted #000; height:2.6em;">
           <div class="add-to-cart-box_price" style="float:left; font-size:2em; font-weight:bold; margin-top:.2em;"><?=uc_currency_format($node->sell_price)?></div>
                    </div>
                <div class="add-to-cart-box_add-to-cart" style="padding:.4em; font-size:.8em;">
                    <a href="<?=base_path()?>files/sitewide/hugamonkey-baby-sling-sizing-chart.png" rel="lightshow[prod]">
                    <img src="<?=base_path()?>themes/dreamy/images/sizingIcon.png" alt="Baby Sling Sizing Chart" /></a><br />
                   <a href="<?=base_path()?>files/sitewide/hugamonkey-baby-sling-sizing-chart.png" rel="lightshow[prod]">Sizing Chart</a>&nbsp;&nbsp;
                   <a href="<?=base_path()?>info/sizing-chart" style="font-size:80%;">[Detailed Instructions]</a>
                        <?php print $node->content['add_to_cart']["#value"]; ?>
                    </div>
              </div>
             
            <div class="product-rating-box" style="margin-top:10px; width:320px; float:left; clear:right; font-size:.8em; padding:.2em; border:2px solid #ccc;">
                <div class="product-rating-box_ratings" style="float:left; width:120px;">
Product Rating: <?php print $node->content["fivestar_widget"]["#value"];  ?>
                    </div>
                    <div class="product-rating-box_reviews" style="float:left;">
                    <?php if ($node->comment_count != ) { ?>
<a href="#comment-field"><?=$node->comment_count;?> Customer Reviews</a><br  />
                   <?php ?>
                        <?php if ($node->comment_count != ) { ?>
                    <a href="#comment-field">Write A Review</a>
                        <?php ?>
                         <?php if ($node->comment_count == ) { ?>
                    <a href="#comment-field">Be The First To Write A Review!</a>
                        <?php ?>
                    </div>
                </div>
          </div>
        </div>
        <br clear="all" />
        <div class="product-bottom" style="width:700px; margin-top:20px;">
        <div class="product-description" style="width:700px;">
            <div style="background:url(<?=base_path()?>themes/dreamy/images/decription-bg.png) no-repeat; width:700px; height:30px; padding:25px 0 0 20px;">
                <h3 style="color:#fff;">Baby Sling Description:</h3>
                </div>
                <div class="product-description_content" style="margin-left:0;">
<?php print $node->content['body']['#value'];  ?>
                </div>
            </div>
            <div class="product-meta">
                <div style="background:url(<?=base_path()?>themes/dreamy/images/product-meta-bg.png) no-repeat; width:700px; height:40px; padding:25px 0 0 20px;">
                    <h3 style="color:#fff;">Spread The Word:</h3>
                </div>
                <div class="product-meta_content">
                <p>Do you love the <?=$title?>? <a href="<?=base_path()?><?php print $node->links['forward_links']['href']; ?>">Spread the word</a>.</p>
    <p>Or, share us at your favorite social bookmarking site:<?=$service_links?></p>
                </div>
            </div>
            <div id="comment-field" style="background:url(<?=base_path()?>themes/dreamy/images/product-comments-bg.png) no-repeat; margin-top:20px; width:700px; height:40px; padding:25px 0 0 20px;">
            <h3 style="color:#fff;">Customer Reviews:</h3>
            </div>
        </div>
</div>
</div>
?>

3) Изменить rel="lightshow[prod]
на class="thickbox", у вас стоит не lightbox, a thickbox

4)Изменить ещё что-то по вкусу

Аватар пользователя coolakov coolakov 9 марта 2010 в 19:00

Спасибо за вариант, но не то.
Был бы у меня один товар - решение бы подошло, но нода-то у меня не одна. А для каждой id="node-3", id="node-5", ... id="node-55" делать свою страничкупредставления - так себе вариант.
Мне бы какое-нибудь решение поуниверсальней, погибче.

Аватар пользователя volocuga volocuga 9 марта 2010 в 22:09

Приехали. То что я вам дал - это темизация ВСЕХ тысяч и десятков тысяч страниц ваших товаров в пределах одного типа ноды.

Сколько у вас может быть типов нод? Десяток,два? Уж осилите невось десяток шаблонов Smile

Аватар пользователя coolakov coolakov 10 марта 2010 в 4:01

Блин я туплю. Я с чего-то вдруг подумал что под типом ноды подразумевается ее ID)))
volocuga, огромнейшее вам спасибо!