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

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

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

VM 1.x Модуль квитанции VirtueMart для Joomla. Округление нулей.

Тема в разделе "Virtuemart", создана пользователем Siberex, 21 фев 2011.

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

    Siberex Постоялец

    Регистр.:
    12 окт 2009
    Сообщения:
    138
    Симпатии:
    23
    Здравствуйте. Помогите пожалуйста решить проблемку.
    [​IMG]
    Нужно эти числа либо округлить, либо убрать лишние нули.
    Вот код
    PHP:
    <?php
    defined
    '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
    class 
    ps_kvytanciya {
        var 
    $classname "ps_kvytanciya";
        var 
    $payment_code "kvyt";
        
    /**
        * Show all configuration parameters for this payment method
        * @returns boolean False when the Payment method has no configration
        */
        
    function show_configuration() {
            global 
    $VM_LANG;
            
    $db = new ps_DB();
            include_once(
    CLASSPATH ."payment/".$this->classname.".cfg.php");
        
    ?>
        <table>
            <tr>
                <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_BANK'?>:</strong></td>
                <td>
                    <input type="text" name="CONF_BANK_OTR" class="inputbox" value="<?php echo CONF_BANK_OTR ?>" />
                </td>
                <td></td>
            </tr>
    <tr>
                <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_ROZR_PACHUNOK'?>:</strong></td>
                <td>
                    <input type="text" name="CONF_ROZR_PACHUNOK" class="inputbox" value="<?php echo CONF_ROZR_PACHUNOK ?>" />
                </td>
            </tr>
    <tr>
                <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_OTRYM'?>:</strong></td>
                <td>
                    <input type="text" name="CONF_OTRYM" class="inputbox" value="<?php echo CONF_OTRYM ?>" />
                </td>
            </tr>
    <tr>
                <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_ADRESA'?>:</strong></td>
                <td>
                    <input type="text" name="CONF_ADRESA" class="inputbox" value="<?php echo CONF_ADRESA ?>" />
                </td>
            </tr>
    <tr>
                <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_MFO'?>:</strong></td>
                <td>
                    <input type="text" name="CONF_MFO" class="inputbox" value="<?php echo CONF_MFO ?>" />
                </td>
                        </tr>
    <tr>
                <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_EDRPOY'?>:</strong></td>
                <td>
                    <input type="text" name="CONF_EDPROU" class="inputbox" value="<?php echo CONF_EDPROU ?>" />
                </td>
            </tr>
    <tr>
                <td><strong><?php echo $VM_LANG->_('PHPSHOP_KVIT_PRYZNACHENNYA'?>:</strong></td>
                <td>
                    <input type="text" name="CONF_PRYZNACHENNYA" class="inputbox" value="<?php echo CONF_PRYZNACHENNYA ?>" />
                </td>
            </tr>
                  </table>
        <?php
        
    }
        function 
    has_configuration() {
          
    // return false if there's no configuration
          
    return true;
       }
      
    /**
        * Returns the "is_writeable" status of the configuration file
        * @param void
        * @returns boolean True when the configuration file is writeable, false when not
        */
       
    function configfile_writeable() {
          return 
    is_writeableCLASSPATH."payment/".$this->classname.".cfg.php" );
       }
      
    /**
        * Returns the "is_readable" status of the configuration file
        * @param void
        * @returns boolean True when the configuration file is writeable, false when not
        */
       
    function configfile_readable() {
          return 
    is_readableCLASSPATH."payment/".$this->classname.".cfg.php" );
       }
      
    /**
        * Writes the configuration file for this payment method
        * @param array An array of objects
        * @returns boolean True when writing was successful
        */
       
    function write_configuration( &$d ) {
          
    $my_config_array = array(
                        
    "CONF_BANK_OTR" => $d['CONF_BANK_OTR'],
                        
    "CONF_ROZR_PACHUNOK" => $d['CONF_ROZR_PACHUNOK'],
                        
    "CONF_OTRYM" => $d['CONF_OTRYM'],
                        
    "CONF_MFO" => $d['CONF_MFO'],
                        
    "CONF_EDPROU" => $d['CONF_EDPROU'],
                        
    "CONF_PRYZNACHENNYA" => $d['CONF_PRYZNACHENNYA'],
                        
    "CONF_ADRESA" => $d['CONF_ADRESA'],
                                                                                 );
          
    $config "<?php\n";
          
    $config .= "defined('_VALID_MOS') or die('Direct Access to this location is not allowed.'); \n\n";
          foreach( 
    $my_config_array as $key => $value ) {
            
    $config .= "define ('$key', '$value');\n";
          }
          
    $config .= "?>";
          if (
    $fp fopen(CLASSPATH ."payment/".$this->classname.".cfg.php""w")) {
              
    fputs($fp$configstrlen($config));
              
    fclose ($fp);
              return 
    true;
         }
         else
            return 
    false;
       }
      
    /**************************************************************************
      ** name: process_payment()
      ** returns: 
      ***************************************************************************/
       
    function process_payment($order_number$order_total, &$d) {
            return 
    true;
        }
    }
    Как и где поставить функцию округления?
    Или ели вопрос в базах, то в какой таблице сделать изменение?
    Спасибо заранее.
     
  2. Nusinam

    Nusinam Постоялец

    Регистр.:
    23 окт 2007
    Сообщения:
    122
    Симпатии:
    20
    Не сочтите за флуд... Поделитесь данной квитанцией - нужна именно для Украины

    В коде вроде как ничего нет для вывода этих нулей - вы уверены, что в настройках вирта у вас правильное значение символов?

    Гляньте "Информация о магазине" -> "Стиль отображения валюты" -> "Количество разрядов"
     
  3. Siberex

    Siberex Постоялец

    Регистр.:
    12 окт 2009
    Сообщения:
    138
    Симпатии:
    23
    Точно не помню где брал. Почитайте тут http://www.joomla-ua.org/forum/topic802-20.html
    Кстати вам тоже придется решать эту проблему.
     
  4. Nusinam

    Nusinam Постоялец

    Регистр.:
    23 окт 2007
    Сообщения:
    122
    Симпатии:
    20
    Так, я не уверен, но может и сработает (у меня этой квитанции пока нет)

    Лезем в базу магазина через phpmyadmin и ищем поле jos_vm_product_price. Теперь редактируем его:
    там есть поле "Длина/значения" - у меня это значение - 12,5
    Вот эта "5" и есть вроде как кол-во знаков после запятой.

    Попробуйте, может и выйдет
     
  5. Siberex

    Siberex Постоялец

    Регистр.:
    12 окт 2009
    Сообщения:
    138
    Симпатии:
    23
    Да, значение есть, меняю. Если в этой таблице посмотреть обзор поля то цены действительно изменились с *.00000 на *.00 но в квитанции изменений не наблюдаю. И, кстати, в стиле отображения валюты в настройках стоит "2".
     
  6. Nusinam

    Nusinam Постоялец

    Регистр.:
    23 окт 2007
    Сообщения:
    122
    Симпатии:
    20
    Тогда ждём - может кто-то подскажет верное решение.
    А пока я поставлю квитанцию себе и может чего накопаю
     
  7. egor_bulychev

    egor_bulychev Создатель

    Регистр.:
    27 янв 2007
    Сообщения:
    43
    Симпатии:
    11
    самый простой вариант изменить вывод чисел в шаблоне.
    типа так
    PHP:
    round($price2);
     
  8. Siberex

    Siberex Постоялец

    Регистр.:
    12 окт 2009
    Сообщения:
    138
    Симпатии:
    23
    а куда именно его нужно поставить?
     
  9. Strongest

    Strongest Писатель

    Регистр.:
    24 май 2012
    Сообщения:
    4
    Симпатии:
    0

    Я решил это другим путем.
    в настройках модуля оплаты там где
    Код:
    <?php printf($db->f(order_total))?>
    нужно заменить на
    Код:
    <?php $total_sum = $db->f("order_total");
    echo number_format($total_sum, 2, '.', ' ');?>
     
  10. IgorBond

    IgorBond Постоялец

    Регистр.:
    22 май 2012
    Сообщения:
    66
    Симпатии:
    17
    можно вот так еще
    Код:
    <?php printf('%.2f', $price); ?>
     
Статус темы:
Закрыта.