1. Приветствуем Вас на нашем закрытом форуме для складчиков сайта cmsheaven.org. Если Вы частный вебмастер, фрилансер, владелец малого или среднего бизнеса, представитель студии по разработке сайтов - будем рады видеть Вас в наших рядах экономных людей.
    Регистрация на форуме возможна только после вступления в складчину

Решено Шаблон Transform

Тема в разделе "Вопросы по шаблонам для Joomla [тех. поддержка]", создана пользователем DreW, 21 фев 2015.

Статус темы:
Закрыта.
  1. DreW

    DreW Опытный складчик

    Регистрация:
    21 фев 2015
    Сообщения:
    42
    Симпатии:
    2
    Пардон, учту
    #21
  2. DreW

    DreW Опытный складчик

    Регистрация:
    21 фев 2015
    Сообщения:
    42
    Симпатии:
    2
    Нужна помощь!
    Шаблон на joomla 2.5
    В Related products не могу правильно вывести товары. Получается как на картинке -
    http://geekpic.net/pm-V4UNJ2.html

    код файла default_relatedproducts.php следующий:
    Код:
    <?php
    defined ( '_JEXEC' ) or die ( 'Restricted access' );
    require(JPATH_SITE . DS . 'modules' . DS . 'mod_virtuemart_product' . DS . 'helper.php');
    vmJsApi::jPrice();
    $Browsecellwidth = ' span' . floor (OGRID_SYS / VmConfig::get ( 'products_per_row', 3 ));
    $iBrowseCol = 1;
    $iBrowseProduct = 1;
    ?>
    <div class="row-fluid">
    <h4><?php echo JText::_('COM_VIRTUEMART_RELATED_PRODUCTS'); ?></h4>
    
    <?php
    foreach ($this->product->customfieldsRelatedProducts as $product) {
    $db = JFactory::getDBO();
    $qt='SELECT `product_price` FROM `#__virtuemart_product_prices`  WHERE `virtuemart_product_id` = '.$product->custom_value.'';
    $db->setQuery($qt); $result = $db->loadResult(); $sena = $this->currency->getSymbol();
    
    ?>
      <div class="product floatleft span3 vertical-separator">
    
    
    
    
    <div class="spacer">
    <div class="spacer-handler">
    <div class="pr-img-handler">
    <?php // Product Image
    
    $product_model = VmModel::getModel('product');
    foreach ($this->product->customfieldsRelatedProducts as $key => $field) {
    $product = $product_model->getProduct($field->custom_value);
    $product_model->addImages($product);
    ?>
    <!--<div class="product-field product-field-type-<?php echo $field->field_type ?>">
    <span class="product-field-display"><?php echo $field->display ?></span>
    </div>-->
    
    <?php $image = explode('>', $field->display);
    $image = $image[1].'>';
    echo JHTML::_('link', JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$product->virtuemart_product_id.'&virtuemart_category_id='.$product->virtuemart_category_id),$image,array('title' => $product->product_name) );
    }
    ?>
    
    <div class="popout-price">
    <div class="popout-price-buttons-handler">
    <?php
    if ($product->images) {
    echo '<div class="show-pop-up-image">'.$product->images[0]->displayMediaThumb( 'class="featuredProductImage"',true,'class="modal"' ).'</div>';
    }
    echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id ), vmText::_ ( 'COM_VIRTUEMART_PRODUCT_DETAILS' ), array ('title' => $product->product_name, 'class' => 'product-details' ) );
    ?>
    </div>
    </div>
    
    
    
    </div>
    <div class="action-handler">
    <h3 class="h-pr-title">
    <?php // Product Name
    echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id ), $product->product_name, array ('title' => $product->product_name ) ); ?>
    </h3>
    
    <span class="product-price">
    <?php
    if (VmConfig::get ( 'show_prices' ) == '1') {
    // if( $featProduct->product_unit && VmConfig::get('vm_price_show_packaging_pricelabel')) {
    // echo "<strong>". vmText::_('COM_VIRTUEMART_CART_PRICE_PER_UNIT').' ('.$featProduct->product_unit."):</strong>";
    // } else echo "<strong>". vmText::_('COM_VIRTUEMART_CART_PRICE'). ": </strong>";
    if ($this->showBasePrice) {
    echo $this->currency->createPriceDiv( 'basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices );
    echo $this->currency->createPriceDiv( 'basePriceVariant', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT', $product->prices );
    }
    echo $this->currency->createPriceDiv( 'variantModification', 'COM_VIRTUEMART_PRODUCT_VARIANT_MOD', $product->prices );
    if (round($product->prices['basePriceWithTax'],$this->currency->_priceConfig['salesPrice'][1]) != $product->prices['salesPrice']) {
    echo '<div class="price-crossed">' . $this->currency->createPriceDiv( 'basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices ) . "</div>";
    }
    if (round($product->prices['salesPriceWithDiscount'],$this->currency->_priceConfig['salesPrice'][1]) != $product->prices['salesPrice']) {
    echo $this->currency->createPriceDiv( 'salesPriceWithDiscount', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITH_DISCOUNT', $product->prices );
    }
    echo $this->currency->createPriceDiv( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices );
    if ($product->prices['discountedPriceWithoutTax'] != $product->prices['priceWithoutTax']) {
    echo $this->currency->createPriceDiv( 'discountedPriceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices );
    } else {
    echo $this->currency->createPriceDiv( 'priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices );
    }
    echo $this->currency->createPriceDiv( 'discountAmount', 'COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT', $product->prices );
    echo $this->currency->createPriceDiv( 'taxAmount', 'COM_VIRTUEMART_PRODUCT_TAX_AMOUNT', $product->prices );
    } ?>
    </span>
    <div class="hand-product-details">
    <?php // Add to cart
      if (!VmConfig::get('use_as_catalog', 0) and !empty($product->prices)) {?>
    <div class="addtocart-area"><form method="post" class="product js-recalculate" action="index.php">
    
    <div class="addtocart-bar">
    
      <!-- Display the quantity box END -->
    
      <?php // Add the button
      $button_lbl = JText::_('COM_VIRTUEMART_CART_ADD_TO');
      $button_cls = 'addtocart-button'; //$button_cls = 'addtocart_button';
      $button_name = 'addtocart'; //$button_cls = 'addtocart_button';
    
    
      // Display the add to cart button
      $stockhandle = VmConfig::get('stockhandle','none');
      if(($stockhandle=='disableit' or $stockhandle=='disableadd') and ($product->product_in_stock - $product->product_ordered)<1){
      $button_lbl = JText::_('COM_VIRTUEMART_CART_NOTIFY');
      $button_cls = 'notify-button';
      $button_name = 'notifycustomer';
      }
      vmdebug('$stockhandle '.$stockhandle.' and stock '.$product->product_in_stock.' ordered '.$product->product_ordered);
      ?>
      <span class="addtocart-button">
      <?php if ($button_cls == "notify-button") { ?>
      <span class="outofstock"><?php echo JText::_('COM_VIRTUEMART_CART_PRODUCT_OUT_OF_STOCK'); ?></span>
    
      <?php } else {?>
      <input name="<?php echo $button_name ?>" class="<?php echo $button_cls ?>" value="<?php echo $button_lbl ?>" title="<?php echo $button_lbl ?>" type="submit" />
    <?php } ?>
      </span>
    <span class="quantity-box">
    <input type="text" class="quantity-input js-recalculate" name="quantity[]" value="<?php if (isset($product->min_order_level) && (int)$product->min_order_level > 0) {
    echo $product->min_order_level;
    } else {
    echo '1';
    } ?>"/>
    </span>
    <span class="quantity-controls js-recalculate">
    <input type="button" class="quantity-controls quantity-plus"/>
    <input type="button" class="quantity-controls quantity-minus"/>
    </span>
      <div class="clear"> </div>
      </label></div>
    
      <?php // Display the add to cart button END ?>
      <input class="pname" value="<?php echo $product->product_name ?>" type="hidden" />
      <input name="option" value="com_virtuemart" type="hidden" />
      <input name="view" value="cart" type="hidden" />
    
      <input name="virtuemart_product_id[]" value="<?php echo $product->virtuemart_product_id ?>" type="hidden" />
      <?php /** @todo Handle the manufacturer view */ ?>
      <input name="virtuemart_manufacturer_id" value="<?php // echo $product->virtuemart_manufacturer_id ?>" type="hidden" />
      <input name="virtuemart_category_id[]" value="<?php echo $product->virtuemart_category_id ?>" type="hidden" />
      </form>
    </div>
      <?php }  // Add To Cart Button END ?>
    
    
    
    </div>
    <div class="gr-cover"></div>
    </div>
    </div>
    
    </div>
    
      </div>
    
    <?php } ?>
    </div>
    
    За вывод изображения отвечает кусок:
    Код:
    <?php // Product Image
                   
                            $product_model = VmModel::getModel('product');
                            foreach ($this->product->customfieldsRelatedProducts as $key => $field) {
                                $product = $product_model->getProduct($field->custom_value);
                                $product_model->addImages($product);
                            ?>
                                <!--<div class="product-field product-field-type-<?php echo $field->field_type ?>">
                                    <span class="product-field-display"><?php echo $field->display ?></span>
                                </div>-->
                           
                                            <?php $image = explode('>', $field->display);
                                            $image = $image[1].'>';
                                            echo JHTML::_('link', JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$product->virtuemart_product_id.'&virtuemart_category_id='.$product->virtuemart_category_id),$image,array('title' => $product->product_name) );
                        }
                        ?>
    Последнее редактирование: 25 фев 2015
    #22
  3. Modi34

    Modi34 Свой человек

    Регистрация:
    31 окт 2014
    Сообщения:
    2.033
    Симпатии:
    720
    к сожалению картинка не отображается

    а с чем вам нужна помощь? - что нужно сделать?
    #23
  4. DreW

    DreW Опытный складчик

    Регистрация:
    21 фев 2015
    Сообщения:
    42
    Симпатии:
    2
    Изображение состоит из всех сопутствующих товаров, и так несколько столбцов... Что не так в коде?
    [​IMG]
    Последнее редактирование модератором: 26 фев 2015
    #24
  5. DreW

    DreW Опытный складчик

    Регистрация:
    21 фев 2015
    Сообщения:
    42
    Симпатии:
    2
  6. Lordboy

    Lordboy Мастодонт Команда форума

    Регистрация:
    17 ноя 2014
    Сообщения:
    597
    Симпатии:
    366
    Дайте ссылку на ресурс и опишите проблему. Вам просто так не нравится?))) А что там должно быть? Если нужна помощь - давайте исходники со ссылкой. Это вы считаете, что этот кусок кода отвечает за вывод, а по факту не только он...
    components\com_virtuemart\views\virtuemart\tmpl\defaul_products.php
    или, тут внимание)
    templates\ваш шаблон\html\com_virtuemart\virtuemart\default_products.php
    #26
    Modi34 нравится это.
  7. DreW

    DreW Опытный складчик

    Регистрация:
    21 фев 2015
    Сообщения:
    42
    Симпатии:
    2
    В этом шаблоне http://cmsheaven.org/templates/joomla/transform/, в карточке товара некорректно отображаются сопутствующие товары (в версии для joomla 3.3 они вообще не отображаются). Нужно сделать так, чтобы сопутствующие товары отображались как модуль LATEST PRODUCT на главной странице этого шаблона.
    Использую Joomla 2.5
    #27
  8. Lordboy

    Lordboy Мастодонт Команда форума

    Регистрация:
    17 ноя 2014
    Сообщения:
    597
    Симпатии:
    366
    А в демо, я смотрю, сопутствующих товаров нет...
    Ну тут, во первых копать в сторону components/com_virtuemart/themes/default/templates/common/productsnapshot.tpl и template/common/relatedProducts.tpl.php эти файлы по идее отвечают за вывод сопутствующих товаров. Ну а потом, может быть попробовать решить это с помощью вот этого http://joomlavip.ru/joomla/plaginy-...soputstvujuschih-tovarov-dlja-virtuemart.html ? Конечно, не решает поставленной задачи, но все таки может убрать косяк с кривым выводом.
    Ну а потом несколько мануальчиков
    http://virtuemart.su/nastrojka-soputstvuyushhix-tovarov-v-virtuemart-2/
    http://www.zegeberg.ru/sobstven-sate/uzabiliti-saita/481-soputstvuyshchie-tovary.html
    Хочется помочь, но беда со временем и, по хорошему, надо фтп и доступ. Так, налету, вряд ли кто подскажет.
    #28
    Modi34 нравится это.
  9. Modi34

    Modi34 Свой человек

    Регистрация:
    31 окт 2014
    Сообщения:
    2.033
    Симпатии:
    720
    в коде не так все... вы слепили нечто страшное и теперь пытаетесь заставить кого-либо это читать? - у вас там цикл в цикле)))) и судя по скриншоту еще и заголовок с ценой везде одинаковые.... и+ к этому - какие-то непонятные запросы к базе.... которые нигде не используются.... я уже писал вам - это не часть стандартного функционала шаблона - обратитесь с этим к фрилансеру....

    тем не менее на ваш вопрос я отвечу если избавиться от второго ненужного цикла перебирающего тот же объект что и цикл выше
    Код:
    <?php // Product Image
    
    $product_model = VmModel::getModel('product');
    
    $product_model->addImages($product);
    ?>
    <!--<div class="product-field product-field-type-<?php echo $field->field_type ?>">
    <span class="product-field-display"><?php echo $field->display ?></span>
    </div>-->
    
    <?php $image = explode('>', $product->display);
    $image = $image[1].'>';
    echo JHTML::_('link', JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$product->virtuemart_product_id.'&virtuemart_category_id='.$product->virtuemart_category_id),$image,array('title' => $product->product_name) );
    
    ?>
    и $field заменить на $product картинки будут нормальные...
    https://www.dropbox.com/s/icg83tpj0dseid8/Скриншот 2015-02-27 06.04.35.png?dl=0

    сразу отвечу чтобы не было HELP! - у виртуалмарт есть апи http://docs.virtuemart.net/api-vm2/...helper.html#af2a8322e659d4e9322b49c590b6b4639 - там все необходимое для получения чего-либо

    например чтобы получить цену достаточно
    $model = new VirtueMartModelProduct();
    $calculator = calculationHelper::getInstance();
    $currency = CurrencyDisplay::getInstance();

    и
    $calculator->getProductPrices($poduct->custom_value)['salesPrice']; // выдаст цену

    надеюсь это вам поможет, но повторюсь лучше обратиться за помощью к фрилансеру вам сделают все быстро и качественно....
    #29
    DreW нравится это.
Статус темы:
Закрыта.