1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

mod_yj_vm_showcase как убрать вывод лишних нулей

Тема в разделе "Joomla", создана пользователем alexwebmasster, 5 окт 2010.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. alexwebmasster

    alexwebmasster Постоялец

    Регистр.:
    11 июл 2010
    Сообщения:
    135
    Симпатии:
    3
    Данный модуль, выводит кучу лишних нулей после разделителя,
    [​IMG]
    подскажите как побороть эту проблему и еще перенести знак доллара , чтобы он выводился после цены.
    HTML:
    <?php
    /*----------------------------------------------------------------------
    #Youjoomla Virtuemart Showcase Module for Joomla 1.5 Version 1.0
    # ----------------------------------------------------------------------
    # Copyright (C) 2007 You Joomla. All Rights Reserved.
    # Designed by: Youjoomla.com
    # Commercial
    # Website: http://www.youjoomla.com// Copyright (c) 2006 - 2008 Youjoomla LLC
    # This code cannot be redistributed without permission from Youjoomla - http://www.youjoomla.com.
    # More info at http://www.youjoomla.com 
    # Developer: Dragan Todorovic
    ------------------------------------------------------------------------*/
    if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
    $nr_products        = $params->get( 'nr_products', '6' );
    $vmchars            = $params->get( 'vmchars', '50' );
    $currency           = $params->get( 'currency', '$' );
    $image_height       = $params->get( 'image_height', '75px' );
    $image_width        = $params->get( 'image_width', '75px' );
    $image_align        = $params->get( 'image_align', 'left' );
    $ordering           = $params->get('ordering',3);
    $show_addcart       = $params->get( 'show_addcart', '1' );
    $show_price         = $params->get( 'show_price', '1' );
    $slide_width        = $params->get( 'slide_width', '750px' );
    $slide_height       = $params->get( 'slide_height', '160px' );
    $max_show           = $params->get( 'max_show', '4' );
    $bann_itemid		= $params->get( 'bann_itemid', '' );
    $bann_catsid        = $params->get( 'bann_catsid', '' );
    $vms_durration      = $params->get( 'vms_durration', '500' );
    $vms_autoslide      = $params->get( 'vms_autoslide', '3000' );
    // DO NOT  EDIT BELOW THIS LINE --------------------------------------
    if($ordering == 1){
    $order = '#__vm_product.product_id DESC';
    }elseif($ordering == 2){
    $order = '#__vm_product.product_id ASC';
    }elseif ($ordering == 3){
    $order = 'RAND()';
    }
    JHTML::_("behavior.mootools");
    $document	=& JFactory::getDocument();
    $document->addStyleSheet(JURI :: base().'modules/mod_yj_vm_showcase/css/style.css');
    $document->addScript(JURI :: base().'modules/mod_yj_vm_showcase/lib/Showcase.js');
    // Load the virtuemart main parse code
    if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
    require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
    } else {
    require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
    }
    require_once( CLASSPATH . 'ps_product.php');
    $ps_product = new ps_product;
    $db =& new ps_DB;		
    global $VM_LANG, $vm_mainframe;
    global $database;
    if($bann_itemid != '') $restrict_product = "AND #__vm_product.product_id NOT IN (".$bann_itemid.")";
    if($bann_catsid != '') $restrict_category  = "AND category_id NOT IN (".$bann_catsid.")";
    $sql = "SELECT  #__vm_product.product_id,category_id,product_thumb_image,product_name,product_price,product_desc FROM #__vm_product"
    ."\n INNER JOIN #__vm_product_price ON #__vm_product.product_id  = #__vm_product_price.product_id"
    ."\n INNER JOIN #__vm_product_category_xref ON #__vm_product.product_id = #__vm_product_category_xref.product_id"
    ."\n WHERE product_publish = 'Y' ".$restrict_category." ".$restrict_product." ORDER BY ".$order." LIMIT ".$nr_products  ."";
    $database->setQuery( $sql );
    $load_prices = $database->loadObjectList();
    $sql2 = "SELECT id FROM #__menu WHERE link ='index.php?option=com_virtuemart' ";
    $database->setQuery( $sql2 );
    $load_itemid = $database->loadObjectList();
    foreach ( $load_itemid as $vmitemid ) {
    $WMItemid = $vmitemid->id;
    }
    ?>
    <script language="javascript" type="text/javascript">
    	window.addEvent('load', function(){
    		new Showcase({
    			container : 'overall_container', 
    			items :'.yjwm_scproduct', 
    			itemWidth : <?php  echo $slide_width / $max_show  ?>, 
    			visibleItems: <?php  echo $max_show  ?>, 
    			effectDuration : <?php echo $vms_durration  ?>, 
    			autoSlide : <?php echo $vms_autoslide ?>,
    			mouseEventSlide: 1000,
    			navigation: {
    				'forward':'linkForward', 
    				'back':'linkBackward'
    			}
    		});
    	})
    </script>
    <!-- http://www.Youjoomla.com  Youjoomla Virtuemart Showcase Module for Joomla 1.5 starts here -->
    <div id="overall_container" style="height:<?php echo $slide_height ?>;width:<?php echo $slide_width + 124 ?>px;">
        <div class="right_nav_link" style="height:<?php echo $slide_height ?>;"><a class="linkForward" id="linkForward" style="height:<?php echo $slide_height ?>;"></a></div>
        <div class="yjwm_showcase_holder" style="width:<?php echo $slide_width ?>; height:<?php echo $slide_height ?>;">
        <?php 
    	foreach ( $load_prices as $produkti ) {
    $productlink = "index.php?page=shop.product_details&amp;flypage=".$ps_product->get_flypage($db->f("product_id"))."&amp;product_id=".$produkti->product_id."&amp;category_id=".$produkti->category_id."&amp;option=com_virtuemart&amp;Itemid=".$WMItemid; 
    $productintro 	= substr(strip_tags($produkti->product_desc),0,$vmchars);
    $ptitle         = $produkti->product_name;
    $pimage         =  'components/com_virtuemart/shop_image/product/'.$produkti->product_thumb_image.'';
    $pimageatt      = ' height="'.$image_height.'" width= "'.$image_width.'" alt="'.$ptitle.'" title="'.$ptitle.'" ';
    $pprice =  $currency.$produkti->product_price;
    ?>
            <div class="yjwm_scproduct" style="height:<?php echo $slide_height ?>; width:<?php  echo $slide_width / $max_show  ?>px;">
            <div class="yjwm_sc_in" style="height:<?php echo $slide_height - 2 ?>px; width:<?php  echo $slide_width / $max_show -5  ?>px;">
           <h3><a href="<?php echo JRoute::_($productlink) ?>"><?php echo $ptitle  ?></a></h3>
            <p style="height:<?php echo $slide_height - 90 ?>px;">        <a href="<?php echo JRoute::_($productlink) ?>">
            <img src="<?php echo $pimage ?>" <?php echo $pimageatt ?>  align="<?php echo $image_align  ?>" /></a><?php echo $productintro ?></p>
    <?php if ($show_price == 1 || $show_addcart == 1){ ?>        
            <div class="yjvmsc_price_cart">
            <?php if ($show_price == 1){ ?>
            <div class="price"><?php echo $pprice?></div>  <?php } ?>
             <div class="yjwmsc_moreinfo"><a href="<?php echo JRoute::_($productlink) ?>">подробнее</a></div>
    <?php if ($show_addcart == 1){ ?>
    <div class="yjvmsc_products_cart">
    <form action="index.php?option=com_virtuemart&amp;Itemid=<?php echo $WMItemid ?>" method="post">
        <input type="hidden" name="option" value="com_virtuemart" />
        <input type="hidden" name="page" value="shop.cart" />
        <input type="hidden" name="Itemid" value="<?php echo $WMItemid ?>" />
        <input type="hidden" name="func" value="cartAdd" />
        <input type="hidden" name="prod_id" value="<?php echo $produkti->product_id ?>" />
        <input type="hidden" name="product_id" value="<?php echo $produkti->product_id ?>" />
        <input type="hidden" name="quantity" value="1" />
        <input type="hidden" name="set_price[]" value="" />
        <input type="hidden" name="adjust_price[]" value="" />
        <input type="hidden" name="master_product[]" value="" />
        <input type="submit" class="yjvmsc_addtocart_button" value="Add to Cart" title="Add to Cart" />
        </form>
        </div>
        <?php } ?>
            </div>
          <?php } ?>  
            </div>
            </div>
            <?php } ?>
        </div>
       <div class="left_nav_link" style="height:<?php echo $slide_height ?>;" > <a class="linkBackward"  id="linkBackward" style="height:<?php echo $slide_height ?>;" ></a></div>
    </div>
    <!-- http://www.Youjoomla.com  Youjoomla Virtuemart Showcase Module for Joomla 1.5 ends here -->
    Я понимаю что вопрос элементарный для человека понимающего ПХП, но моих знаний хватило только перевести ссылку подробнее. И если не трудно, расскажите логику обнаружения куска кода, отвечающего за вывод такого кол-ва нулей. Просто понять хочу и научиться. Заранее благодарен.
     
  2. RedRabbit

    RedRabbit

    Регистр.:
    11 июл 2008
    Сообщения:
    606
    Симпатии:
    250
    А в настроках вирта стоит какое количество разрядов?
    Выложи тут модуль, посмотрю.
     
  3. alexwebmasster

    alexwebmasster Постоялец

    Регистр.:
    11 июл 2010
    Сообщения:
    135
    Симпатии:
    3
    В настройках все нормально выставлено и на сайте отображается корректно. http://narod.yandex.ru/disk/25692877000/mod_yj_vm_showcase.rar
     
  4. -Dima-

    -Dima-

    Регистр.:
    3 окт 2009
    Сообщения:
    167
    Симпатии:
    66
    поменять валюту местами, это 109 строка :
    HTML:
    $pprice =  $currency.$produkti->product_price;
    поменяй на
    HTML:
    $pprice =  $produkti->product_price.$currency;
    А вот по поводу нулей, то это значение тянется с базы.. поэтому проверить надо именно как туда приходят значения, скорее всего где-то в настройках у тебя указано кол-во знаков после запятой..
    так, просто перед выводом на сайт возможно округляется где-то до двух знаков, к примеру.
    Самый простой вариант, округли сам:
    HTML:
    $pprice = round($produkti->product_price,2).$currency;
     
  5. alexwebmasster

    alexwebmasster Постоялец

    Регистр.:
    11 июл 2010
    Сообщения:
    135
    Симпатии:
    3
    а убрать совсем эти нули никак нельзя в данном файле?
     
  6. -Dima-

    -Dima-

    Регистр.:
    3 окт 2009
    Сообщения:
    167
    Симпатии:
    66
    Вместо 2 поставь 0:
    PHP:
    $pprice round($produkti->product_price,0).$currency;
     
    alexwebmasster нравится это.
  7. alexwebmasster

    alexwebmasster Постоялец

    Регистр.:
    11 июл 2010
    Сообщения:
    135
    Симпатии:
    3
    С помощью простых манипуляций я пришел к выводу, что данное значение переменной берется из формы при заполнении товара в магазине "Цена товара (без налогов:(" а там после сохранения прибавляется 5 нулей, а нужно чтобы брало из формы "Цена товара (с налогами:("
    Вопрос: как узнать эту переменную?

    Добавлено через 10 минут
    В принципе этот результат устраивает! Спасибо!
     
  8. -Dima-

    -Dima-

    Регистр.:
    3 окт 2009
    Сообщения:
    167
    Симпатии:
    66
    Это надо сам компонент ковырять..насколько я понимаю, то в таблице #__vm_product_price хранятся все данные по цене, налогам и т.д.
    А при выводе, данные суммируются ..и получаешь "Цена товара (с налогами:(".
    Хотя может это значение уже в базе, тогда все гораздо проще, посмотри какие данные в мускуле хранятся, может так оно и есть, тогда просто скажи название столбца.
    Ну или пройдись поиском по файлам, ищи "#__vm_product_price" а там уже надо смотреть дальнейшие преобразования.
     
  9. 3ner

    3ner

    Регистр.:
    21 июн 2009
    Сообщения:
    760
    Симпатии:
    198
    Во-первых Ruskai уже переделал этот модуль http://www.nulled.ws/showpost.php?p=1618421&postcount=9
    Во-вторых более грамотно он сделал, т.е. currency берется не из этого модуля, а из настроек вирта и дробь соответственно подправлена.
    Относительно этого модуля можно поправить:
    В этом же файле mod_yj_vm_showcase.php
    PHP:
    $pprice =  $currency.$produkti->product_price;
    меняем на:
    PHP:
    $auth                                     $_SESSION['auth'];
    $weight_subtotal ps_shipping_method::get_weight($produkti->product_id);
    $weight_subtotal                        0;
    $my_taxrate                                0;
    $my_taxrate                              $ps_product->get_product_taxrate($produkti->product_id$weight_subtotal);
    $price                                     $ps_product->get_adjusted_attribute_price($produkti->product_id);
    if( 
    $auth["show_price_including_tax"]     == ) {
                
    $price["product_price"]     = $price["product_price"] * ($my_taxrate+1);
            } else {
                
    $price["product_price"]     = $price["product_price"];
    }
    $price["product_price"]                 = $GLOBALS['CURRENCY']->convert$price["product_price"], $price["product_currency"] );
    $pprice                                     round$price["product_price"], );
    $pprice                                    $GLOBALS['CURRENCY_DISPLAY']->getFullValue($pprice);
    Вот и получим требуемое или можно взять уже готовый от Ruskai
     
    alexwebmasster нравится это.
Статус темы:
Закрыта.