[Помогите] Отображение валюты в корзине

Тема в разделе "OpenCart", создана пользователем Vladsuperklas, 19 май 2014.

  1. Vladsuperklas

    Vladsuperklas

    Регистрация:
    17 май 2014
    Сообщения:
    46
    Симпатии:
    2
    Всем привет, ребятушки помогите на вас последняя надежда, нужно разделить цену и валюту
    Сейчас так
    [​IMG]
    А нужно так
    [​IMG]
    Шаблон корзины
    Код:
    <?php
    
        preg_match('#^(.*) - ([^ ]*)$#i', $text_items, $matches);
       
        $count = $matches[1];
        $total = $matches[2];
    
    ?>
    <div id="cart" class="item">
        <div class="cart-total">
            <span class="icon show-phone hide-desktop hide-tablet"></span><span class="cart-total-text"><?php echo $total; ?></span>
            <div class="drop-arrow"></div>
        </div>
        <div class="cart-wrap">
            <div class="cart-text"><?php echo $heading_title; ?></div>
            <div class="cart-count"><?php echo $count; ?></div>
        </div>
        <div class="drop-content">
            <div class="drop-body">
                <?php if ($products || $vouchers) { ?>
                    <table class="cart-list">
                        <tbody>
                            <?php foreach ($products as $product) { ?>
                                <tr>
                                    <td class="image">
                                        <?php if ($product['thumb']) { ?>
                                            <a href="<?php echo $product['href']; ?>">
                                                <img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>">
                                            </a>
                                        <?php } ?>
                                    </td>
                                    <td class="name ta-left">
                                        <a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
                                        <div>
                                            <?php foreach ($product['option'] as $option) { ?>
                                            - <?php echo $option['name']; ?> <?php echo $option['value']; ?><br />
                                            <?php } ?>
                                        </div>
                                    </td>
                                    <td class="quantity ta-center"><?php echo $product['quantity']; ?></td>
                                    <td class="total"><?php echo $product['total']; ?></td>
                                    <td class="remove"><div title="<?php echo $button_remove; ?>" onclick="DeleteFromCart('<?php echo $product['key']; ?>');"></div></td>
                                </tr>
                            <?php } ?>
                            <?php foreach ($vouchers as $voucher) { ?>
                                <tr>
                                    <td class="image"></td>
                                    <td class="name ta-left"><?php echo $voucher['description']; ?></td>
                                    <td class="quantity ta-center">1</td>
                                    <td class="total"><?php echo $voucher['amount']; ?></td>
                                    <td class="remove"><div title="<?php echo $button_remove; ?>" onclick="DeleteFromCart('<?php echo $voucher['key']; ?>');"></div></td>
                                </tr>
                            <?php } ?>
                        </tbody>
                    </table>
                    <table class="cart-end">
                        <tbody>
                            <?php foreach ($totals as $total) { ?>
                            <tr>
                                <th><?php echo $total['title']; ?>:</th>
                                <td><?php echo $total['text']; ?></td>
                            </tr>
                            <?php } ?>
                        </tbody>
                    </table>
                    <div class="cart-buttons">
                        <a href="<?php echo $checkout; ?>" class="button button-small button-alt"><?php echo $text_checkout; ?></a>
                        <a href="<?php echo $cart; ?>" class="button button-small"><?php echo $text_cart; ?></a>
                    </div>
                <?php } else { ?>
                    <div class="empty"><?php echo $text_empty; ?></div>
                <?php } ?>
            </div>
        </div>
    </div>
    На вас последняя надежда
    P.S. Возможна чисто символическая оплата)
     
  2. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.264
    Симпатии:
    534
    Vladsuperklas, бесплатный совет - для символа гривны в настройках магазина указан не грн, а (пробел)грн
     
  3. Vladsuperklas

    Vladsuperklas

    Регистрация:
    17 май 2014
    Сообщения:
    46
    Симпатии:
    2
    тогда шаблон рушиться, ошибку пишет [​IMG]
     
  4. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.264
    Симпатии:
    534
    Vladsuperklas, этот файлcart.tpl идет от шаблона? Если да, то попробуйте заменить оригинальным из дистрибутива opencart, не знаю, зачем это регулярное выражение вначале кода.
     
  5. Vladsuperklas

    Vladsuperklas

    Регистрация:
    17 май 2014
    Сообщения:
    46
    Симпатии:
    2
    заменил, получилось так(((
    [​IMG]
     
  6. NinoZombie

    NinoZombie

    Регистрация:
    27 окт 2013
    Сообщения:
    223
    Симпатии:
    61
    в пути к файлу было видно, что он /template/oceanic :wink:
    Не получается у меня так помогать почему-то... Хочется сразу всю информацию. Дайте ссылку на сайт, попробую там глянуть :smile:
    Но уже есть предположение, что проблему можно решить через правку контроллера корзины
     
    Vladsuperklas нравится это.
  7. Vladsuperklas

    Vladsuperklas

    Регистрация:
    17 май 2014
    Сообщения:
    46
    Симпатии:
    2
    Так точно, шабл Oceanic сайт http://hacktools.cf/ :unsure:
     
  8. NinoZombie

    NinoZombie

    Регистрация:
    27 окт 2013
    Сообщения:
    223
    Симпатии:
    61
    Контроллер отправьте тоже, пожалуйста.
    /catalog/controller/checkout/cart.php
     
    Vladsuperklas нравится это.
  9. Vladsuperklas

    Vladsuperklas

    Регистрация:
    17 май 2014
    Сообщения:
    46
    Симпатии:
    2
    PHP:
    <?php
    class ControllerModuleCart extends Controller {
        public function 
    index() {
            
    $this->language->load('module/cart');

            if (isset(
    $this->request->get['remove'])) {
                
    $this->cart->remove($this->request->get['remove']);

                unset(
    $this->session->data['vouchers'][$this->request->get['remove']]);
            }

            
    // Totals
            
    $this->load->model('setting/extension');

            
    $total_data = array();                   
            
    $total 0;
            
    $taxes $this->cart->getTaxes();

            
    // Display prices
            
    if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                
    $sort_order = array();

                
    $results $this->model_setting_extension->getExtensions('total');

                foreach (
    $results as $key => $value) {
                    
    $sort_order[$key] = $this->config->get($value['code'] . '_sort_order');
                }

                
    array_multisort($sort_orderSORT_ASC$results);

                foreach (
    $results as $result) {
                    if (
    $this->config->get($result['code'] . '_status')) {
                        
    $this->load->model('total/' $result['code']);

                        
    $this->{'model_total_' $result['code']}->getTotal($total_data$total$taxes);
                    }

                    
    $sort_order = array();

                    foreach (
    $total_data as $key => $value) {
                        
    $sort_order[$key] = $value['sort_order'];
                    }

                    
    array_multisort($sort_orderSORT_ASC$total_data);           
                }       
            }

            
    $this->data['totals'] = $total_data;

            
    $this->data['heading_title'] = $this->language->get('heading_title');

            
    $this->data['text_items'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));
            
    $this->data['text_empty'] = $this->language->get('text_empty');
            
    $this->data['text_cart'] = $this->language->get('text_cart');
            
    $this->data['text_checkout'] = $this->language->get('text_checkout');
            
    $this->data['text_payment_profile'] = $this->language->get('text_payment_profile');

            
    $this->data['button_remove'] = $this->language->get('button_remove');

            
    $this->load->model('tool/image');

            
    $this->data['products'] = array();

            foreach (
    $this->cart->getProducts() as $product) {
                if (
    $product['image']) {
                    
    $image $this->model_tool_image->resize($product['image'], $this->config->get('config_image_cart_width'), $this->config->get('config_image_cart_height'));
                } else {
                    
    $image '';
                }

                
    $option_data = array();

                foreach (
    $product['option'] as $option) {
                    if (
    $option['type'] != 'file') {
                        
    $value $option['option_value'];   
                    } else {
                        
    $filename $this->encryption->decrypt($option['option_value']);

                        
    $value utf8_substr($filename0utf8_strrpos($filename'.'));
                    }               

                    
    $option_data[] = array(                                  
                        
    'name'  => $option['name'],
                        
    'value' => (utf8_strlen($value) > 20 utf8_substr($value020) . '..' $value),
                        
    'type'  => $option['type']
                    );
                }

                
    // Display prices
                
    if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                    
    $price $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')));
                } else {
                    
    $price false;
                }

                
    // Display prices
                
    if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                    
    $total $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')) * $product['quantity']);
                } else {
                    
    $total false;
                }

                
    $this->data['products'][] = array(
                    
    'key'       => $product['key'],
                    
    'thumb'     => $image,
                    
    'name'      => $product['name'],
                    
    'model'     => $product['model'],
                    
    'option'    => $option_data,
                    
    'quantity'  => $product['quantity'],
                    
    'price'     => $price,   
                    
    'total'     => $total,   
                    
    'href'      => $this->url->link('product/product''product_id=' $product['product_id']),
                    
    'recurring' => $product['recurring'],
                    
    'profile'   => $product['profile_name'],
                );
            }

            
    // Gift Voucher
            
    $this->data['vouchers'] = array();

            if (!empty(
    $this->session->data['vouchers'])) {
                foreach (
    $this->session->data['vouchers'] as $key => $voucher) {
                    
    $this->data['vouchers'][] = array(
                        
    'key'         => $key,
                        
    'description' => $voucher['description'],
                        
    'amount'      => $this->currency->format($voucher['amount'])
                    );
                }
            }

            
    $this->data['cart'] = $this->url->link('checkout/cart');

            
    $this->data['checkout'] = $this->url->link('checkout/checkout''''SSL');

            if (
    file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/module/cart.tpl')) {
                
    $this->template $this->config->get('config_template') . '/template/module/cart.tpl';
            } else {
                
    $this->template 'default/template/module/cart.tpl';
            }

            
    $this->response->setOutput($this->render());       
        }
    }
    ?>
     
  10. NinoZombie

    NinoZombie

    Регистрация:
    27 окт 2013
    Сообщения:
    223
    Симпатии:
    61
    Блин, должно все решаться так:
    Подставить в Система -- Локализация -- Валюты у валюты по умолчанию в поле "Символ справа:" вот такое значение " грн." (без кавычек, но с пробелом).
    Ну или в базе данных, в таблице oc_currency руками это значение поменять...
     
  11. Vladsuperklas

    Vladsuperklas

    Регистрация:
    17 май 2014
    Сообщения:
    46
    Симпатии:
    2
    подставил, корзина рухнула сайт - http://hacktools.cf/
     
  12. Narayan

    Narayan

    Регистрация:
    2 май 2014
    Сообщения:
    7
    Симпатии:
    2
    Попробуй вместо пробела написать &nbsp , должно помочь.