FRIHOST FORUMS SEARCH FAQ TOS BLOGS COMPETITIONS
You are invited to Log in or Register a free Frihost Account!


Opencart , Problem cart.php !!!!





edicalgerie
cart.php (www\catalog\controller\checkout\cart.php) works perfectly with version 1.5.3.1 (English)
I have installed French Version 1.5.4.1 (with some change), everything works fine, the only problem I encounter is that when I add products to cart (shopping cart), if I click to view my cart (shopping cart) there will be an blank page so I understand that somthing wrong and the link malfunctions, I think the problem is in the configuration of the cart.php (www\catalog\controller\checkout\cart.php)

This is what gives her :
Code:
<?php
class ControllerCheckoutCart extends Controller {
   public function index() {
      $this->language->load('checkout/cart');
     
      if ($this->request->server['REQUEST_METHOD'] == 'POST') {
            if (isset($this->request->post['quantity'])) {
            if (!is_array($this->request->post['quantity'])) {
               if (isset($this->request->post['option'])) {
                  $option = $this->request->post['option'];
               } else {
                  $option = array();   
               }
         
                  $this->cart->add($this->request->post['product_id'], $this->request->post['quantity'], $option);
            } else {
               foreach ($this->request->post['quantity'] as $key => $value) {
                     $this->cart->update($key, $value);
               }
            }
            }

            if (isset($this->request->post['remove'])) {
             foreach ($this->request->post['remove'] as $key) {
                   $this->cart->remove($key);
            }
            }
         
            if (isset($this->request->post['voucher']) && $this->request->post['voucher']) {
             foreach ($this->request->post['voucher'] as $key) {
                   if (isset($this->session->data['vouchers'][$key])) {
                  unset($this->session->data['vouchers'][$key]);
               }
            }
            }
                           
         if (isset($this->request->post['redirect'])) {
            $this->session->data['redirect'] = $this->request->post['redirect'];
         }   
         
         if (isset($this->request->post['quantity']) || isset($this->request->post['remove']) || isset($this->request->post['voucher'])) {
            unset($this->session->data['shipping_methods']);
            unset($this->session->data['shipping_method']);
            unset($this->session->data['payment_methods']);
            unset($this->session->data['payment_method']);   
            unset($this->session->data['reward']);   
           
            $this->redirect($this->url->link('checkout/cart'));
         }
       }

       $this->document->setTitle($this->language->get('heading_title'));

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

         $this->data['breadcrumbs'][] = array(
           'href'      => $this->url->link('common/home'),
           'text'      => $this->language->get('text_home'),
           'separator' => false
         );

         $this->data['breadcrumbs'][] = array(
           'href'      => $this->url->link('checkout/cart'),
           'text'      => $this->language->get('heading_title'),
           'separator' => $this->language->get('text_separator')
         );
         
       if ($this->cart->hasProducts() || (isset($this->session->data['vouchers']) && $this->session->data['vouchers'])) {
            $this->data['heading_title'] = $this->language->get('heading_title');
         
         $this->data['text_select'] = $this->language->get('text_select');
         $this->data['text_weight'] = $this->language->get('text_weight');
     
           $this->data['column_remove'] = $this->language->get('column_remove');
            $this->data['column_image'] = $this->language->get('column_image');
            $this->data['column_name'] = $this->language->get('column_name');
            $this->data['column_model'] = $this->language->get('column_model');
            $this->data['column_quantity'] = $this->language->get('column_quantity');
         $this->data['column_price'] = $this->language->get('column_price');
            $this->data['column_total'] = $this->language->get('column_total');
         
            $this->data['button_update'] = $this->language->get('button_update');
            $this->data['button_shopping'] = $this->language->get('button_shopping');
            $this->data['button_checkout'] = $this->language->get('button_checkout');
         
         if ($this->config->get('config_customer_price') && !$this->customer->isLogged()) {
            $this->data['attention'] = sprintf($this->language->get('text_login'), $this->url->link('account/login'), $this->url->link('account/register'));
         } else {
            $this->data['attention'] = '';
         }
         
         if (!$this->cart->hasStock() && (!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning'))) {
               $this->data['error_warning'] = $this->language->get('error_stock');
         } elseif (isset($this->session->data['error'])) {
            $this->data['error_warning'] = $this->session->data['error'];
         
            unset($this->session->data['error']);         
         } else {
            $this->data['error_warning'] = '';
         }
         
         if (isset($this->session->data['success'])) {
            $this->data['success'] = $this->session->data['success'];
         
            unset($this->session->data['success']);
         } else {
            $this->data['success'] = '';
         }
           
         $this->data['action'] = $this->url->link('checkout/cart');
                 
         if ($this->config->get('config_cart_weight')) {
            $this->data['weight'] = $this->weight->format($this->cart->getWeight(), $this->config->get('config_weight_class_id'), $this->language->get('decimal_point'), $this->language->get('thousand_point'));
         } else {
            $this->data['weight'] = false;
         }
                 
         $this->load->model('tool/image');
         
            $this->data['products'] = array();

         $products = $this->cart->getProducts();

            foreach ($products as $product) {
            $product_total = 0;
               
            foreach ($products as $product_2) {
               if ($product_2['product_id'] == $product['product_id']) {
                  $product_total += $product_2['quantity'];
               }
            }         
           
            if ($product['minimum'] > $product_total) {
               $this->data['error_warning'] = sprintf($this->language->get('error_minimum'), $product['name'], $product['minimum']);
            }           
               
            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') {
                  $option_data[] = array(
                     'name'  => $option['name'],
                     'value' => (strlen($option['option_value']) > 20 ? substr($option['option_value'], 0, 20) . '..' : $option['option_value'])
                  );
               } else {
                  $this->load->library('encryption');
                 
                  $encryption = new Encryption($this->config->get('config_encryption'));
                 
                  $file = substr($encryption->decrypt($option['option_value']), 0, strrpos($encryption->decrypt($option['option_value']), '.'));
                 
                  $option_data[] = array(
                     'name'  => $option['name'],
                     'value' => (strlen($file) > 20 ? substr($file, 0, 20) . '..' : $file)
                  );                 
               }
              }
           
            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;
            }

            if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
               $total = $this->currency->format($this->tax->calculate($product['total'], $product['tax_class_id'], $this->config->get('config_tax')));
            } else {
               $total = false;
            }
           
              $this->data['products'][] = array(
                   'key'      => $product['key'],
                   'thumb'    => $image,
               'name'     => $product['name'],
                   'model'    => $product['model'],
                   'option'   => $option_data,
                   'quantity' => $product['quantity'],
                   'stock'    => $product['stock'],
               'reward'   => ($product['reward'] ? sprintf($this->language->get('text_reward'), $product['reward']) : ''),
               'price'    => $price,
               'total'    => $total,
               'href'     => $this->url->link('product/product', 'product_id=' . $product['product_id'])
              );
            }
         
         // Gift Voucher
         $this->data['vouchers'] = array();
         
         if (isset($this->session->data['vouchers']) && $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'])
               );
            }
         }
                 
         $total_data = array();
         $total = 0;
         $taxes = $this->cart->getTaxes();
         
         if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {                 
            $this->load->model('setting/extension');
           
            $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_order, SORT_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_order, SORT_ASC, $total_data);
         }
         
         $this->data['totals'] = $total_data;
           
         // Modules
         $this->data['modules'] = array();
         
         if (isset($results)) {
            foreach ($results as $result) {
               if ($this->config->get($result['code'] . '_status') && file_exists(DIR_APPLICATION . 'controller/total/' . $result['code'] . '.php')) {
                  $this->data['modules'][] = $this->getChild('total/' . $result['code']);
               }
            }
         }
         
         if (isset($this->session->data['redirect'])) {
               $this->data['continue'] = $this->session->data['redirect'];
           
            unset($this->session->data['redirect']);
         } else {
            $this->data['continue'] = $this->url->link('common/home');
         }
                 
         $this->data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');

         if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/checkout/cart.tpl')) {
            $this->template = $this->config->get('config_template') . '/template/checkout/cart.tpl';
         } else {
            $this->template = 'default/template/checkout/cart.tpl';
         }
         
         $this->children = array(
            'common/column_left',
            'common/column_right',
            'common/content_top',
            'common/content_bottom',
            'common/footer',
            'common/header'   
         );
                 
         $this->response->setOutput($this->render());               
       } else {
            $this->data['heading_title'] = $this->language->get('heading_title');

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

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

            $this->data['continue'] = $this->url->link('common/home');

         if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
            $this->template = $this->config->get('config_template') . '/template/error/not_found.tpl';
         } else {
            $this->template = 'default/template/error/not_found.tpl';
         }
         
         $this->children = array(
            'common/column_left',
            'common/column_right',
            'common/content_top',
            'common/content_bottom',
            'common/footer',
            'common/header'   
         );
               
         $this->response->setOutput($this->render());         
       }
     }
   
   public function update() {
      $this->language->load('checkout/cart');
     
      $json = array();
     
      if (isset($this->request->post['product_id'])) {
         $this->load->model('catalog/product');
         
         $product_info = $this->model_catalog_product->getProduct($this->request->post['product_id']);
         
         if ($product_info) {                 
            if (isset($this->request->post['quantity'])) {
               $quantity = $this->request->post['quantity'];
            } else {
               $quantity = 1;
            }
           
            $product_total = 0;
           
            $products = $this->cart->getProducts();
           
            foreach ($products as $product_2) {
               if ($product_2['product_id'] == $this->request->post['product_id']) {
                  $product_total += $product_2['quantity'];
               }
            }
           
            if ($product_info['minimum'] > ($product_total + $quantity)) {
               $json['error']['warning'] = sprintf($this->language->get('error_minimum'), $product_info['name'], $product_info['minimum']);
            }
           
            if (isset($this->request->post['option'])) {
               $option = array_filter($this->request->post['option']);
            } else {
               $option = array();   
            }           
   
            $product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']);
           
            foreach ($product_options as $product_option) {
               if ($product_option['required'] && (!isset($this->request->post['option'][$product_option['product_option_id']]) || !$this->request->post['option'][$product_option['product_option_id']])) {
                  $json['error'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']);
               }
            }
         }
         
         if (!isset($json['error'])) {
            $this->cart->add($this->request->post['product_id'], $quantity, $option);
         
            $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));
         
            unset($this->session->data['shipping_methods']);
            unset($this->session->data['shipping_method']);
            unset($this->session->data['payment_methods']);
            unset($this->session->data['payment_method']);         
         } else {
            $json['redirect'] = str_replace('&amp;', '&', $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']));
         }
      }   
     
         if (isset($this->request->post['remove'])) {
           $this->cart->remove($this->request->post['remove']);
         
         unset($this->session->data['shipping_methods']);
         unset($this->session->data['shipping_method']);
         unset($this->session->data['payment_methods']);
         unset($this->session->data['payment_method']);           
         }

         if (isset($this->request->post['voucher'])) {
         if ($this->session->data['vouchers'][$this->request->post['voucher']]) {
            unset($this->session->data['vouchers'][$this->request->post['voucher']]);
         }
      }
               
      $this->load->model('tool/image');
     
      $this->data['text_empty'] = $this->language->get('text_empty');
     
      $this->data['button_checkout'] = $this->language->get('button_checkout');
      $this->data['button_remove'] = $this->language->get('button_remove');

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

      foreach ($this->cart->getProducts() as $result) {
         if ($result['image']) {
            $image = $this->model_tool_image->resize($result['image'], 40, 40);
         } else {
            $image = '';
         }         
         
         $option_data = array();

         foreach ($result['option'] as $option) {
            if ($option['type'] != 'file') {
               $option_data[] = array(
                  'name'  => $option['name'],
                  'value' => (strlen($option['option_value']) > 20 ? substr($option['option_value'], 0, 20) . '..' : $option['option_value'])
               );
            } else {
               $this->load->library('encryption');
               
               $encryption = new Encryption($this->config->get('config_encryption'));
               
               $file = substr($encryption->decrypt($option['option_value']), 0, strrpos($encryption->decrypt($option['option_value']), '.'));
               
               $option_data[] = array(
                  'name'  => $option['name'],
                  'value' => (strlen($file) > 20 ? substr($file, 0, 20) . '..' : $file)
               );               
            }
         }
           
         if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
            $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
         } else {
            $price = false;
         }

         if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
            $total = $this->currency->format($this->tax->calculate($result['total'], $result['tax_class_id'], $this->config->get('config_tax')));
         } else {
            $total = false;
         }
           
         $this->data['products'][] = array(
            'key'        => $result['key'],
            'product_id' => $result['product_id'],
            'thumb'      => $image,
            'name'       => $result['name'],
            'model'      => $result['model'],
            'option'     => $option_data,
            'quantity'   => $result['quantity'],
            'stock'      => $result['stock'],
            'price'      => $price,
            'total'      => $total,
            'href'       => $this->url->link('product/product', 'product_id=' . $result['product_id'])
         );
      }
     
      // Gift Voucher
      $this->data['vouchers'] = array();
     
      if (isset($this->session->data['vouchers']) && $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'])
            );
         }
      }
     
      // Calculate Totals
      $total_data = array();               
      $total = 0;
      $taxes = $this->cart->getTaxes();
     
      if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {                 
         $this->load->model('setting/extension');
         
         $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_order, SORT_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_order, SORT_ASC, $total_data);
      }
     
      $json['total'] = 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['totals'] = $total_data;
     
      $this->data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
     
      if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/cart.tpl')) {
         $this->template = $this->config->get('config_template') . '/template/common/cart.tpl';
      } else {
         $this->template = 'default/template/common/cart.tpl';
      }
     
      $json['output'] = $this->render();
     
      $this->response->setOutput(json_encode($json));
   }
}
?>


someone can find the error only with the French language, with English everything works fine, so the error may be a link (maybe) with the language
johans
I have use English language only, but try to add some automatic default tp English but you have choice in French language.
edicalgerie
johans wrote:
I have use English language only, but try to add some automatic default tp English but you have choice in French language.

I don't know programming
zimmer
edicalgerie wrote:
johans wrote:
I have use English language only, but try to add some automatic default tp English but you have choice in French language.

I don't know programming


open cart is a PHP language.
edicalgerie
zimmer wrote:
edicalgerie wrote:
johans wrote:
I have use English language only, but try to add some automatic default tp English but you have choice in French language.

I don't know programming


open cart is a PHP language.


yes i know , but i can't do it , not more knowledge about programmin with php
edicalgerie
you can't help me ?? maybe you need mony to do it ?
edicalgerie
without any answers ??
johans
Try upgrade your open cart to latest version 1.5.5 this is the latest and many bugs and errors is been address. If you need special assistance PM me.

Good luck!
edicalgerie
johans wrote:
Try upgrade your open cart to latest version 1.5.5 this is the latest and many bugs and errors is been address. If you need special assistance PM me.

Good luck!


i don't know yet that open cart have a new version , 1.5.5 maybe have more right use , may be it's resolve more problems , i will try it soon ,
thanks freinds Smile
edicalgerie
but how to replace the old version with the new one?
zimmer
To upgrade your old open cart procedure to new version visit opencart.org or you can also join there forum.

Ii suggest to create an account from there since its open source.

Johans mentioned a new version from opencart is the latest stable released. I guess you should try that.
edicalgerie
zimmer wrote:
To upgrade your old open cart procedure to new version visit opencart.org or you can also join there forum.

Ii suggest to create an account from there since its open source.

Johans mentioned a new version from opencart is the latest stable released. I guess you should try that.


thanks zimmer for your informations , but i think that you have give me the old link about opencart websit , the new one is www.opencart.com
Related topics
Reply to topic    Frihost Forum Index -> Support and Web Hosting -> Web Hosting Support

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2011 Frihost, forums powered by phpBB.