Post by mikispace » Wed Sep 25, 2013 4:34 pm

Hi all,
I am in the middle of changing my opencart shop (1.5.5.1) from one host to another.
All files transferred & database uploaded to new server, but I get this error.

Parse error: syntax error, unexpected T_PUBLIC in /home/xxx/public_html/vqmod/vqcache/vq2-catalog_controller_common_seo_url.php on line 158

I guess there is an extra } somewhere in the code of vq2-catalog_controller_common_seo_url.php, but I cannot work out where .

Any help gratefully received !

Here is the code from that page

Code: Select all

<?php

class ControllerCommonSeoUrl extends Controller {

	public function index() {

		// Add rewrite to url class

		if ($this->config->get('config_seo_url')) {

			$this->url->addRewrite($this);

		}

		

		// Decode URL

		if (isset($this->request->get['_route_'])) {

			$parts = explode('/', $this->request->get['_route_']);

                        $this_route = $parts;
                        $this_route_multistore = $parts;
                        array_shift($this_route_multistore);
                        

			

			foreach ($parts as $part) {

				$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE keyword = '" . $this->db->escape($part) . "'");

				

				if ($query->num_rows) {

					$url = explode('=', $query->row['query']);

					

					if ($url[0] == 'product_id') {

						$this->request->get['product_id'] = $url[1];

					}

					

					if ($url[0] == 'category_id') {

						if (!isset($this->request->get['path'])) {

							$this->request->get['path'] = $url[1];

						} else {

							$this->request->get['path'] .= '_' . $url[1];

						}

					}	

					

					if ($url[0] == 'manufacturer_id') {

						$this->request->get['manufacturer_id'] = $url[1];

					}

					

					if ($url[0] == 'information_id') {

						$this->request->get['information_id'] = $url[1];

					}	

				} else {

					
                        if (is_file(DIR_APPLICATION . 'controller/' . implode("/", $this_route) . '.php'))  {
                        $this->request->get['route'] = implode("/", $this_route);
                        break;
                        } elseif (is_file(DIR_APPLICATION . 'controller/' . implode("/", $this_route_multistore) . '.php'))  {
                        $this->request->get['route'] = implode("/", $this_route_multistore);
                        break;
                        } else {
                        $this->request->get['route'] = 'error/not_found';
                        array_pop($this_route);
                        array_pop($this_route_multistore);
                        }
                        	

				}

			}

			

			
                        if (preg_match("/information\//", $this->request->get['_route_'])) {
				$this->request->get['route'] = $this->request->get['_route_'];
			} elseif (isset($this->request->get['information_id'])) {
				$this->request->get['route'] = 'information/information';
			} elseif (preg_match("/checkout\//", $this->request->get['_route_'])) {
				$this->request->get['route'] = $this->request->get['_route_'];
			} elseif (preg_match("/payment\//", $this->request->get['_route_'])) {
				$this->request->get['route'] = $this->request->get['_route_'];
			} elseif (preg_match("/feed\//", $this->request->get['_route_'])) {
				$this->request->get['route'] = $this->request->get['_route_'];
			} elseif (preg_match("/affiliate\//", $this->request->get['_route_'])) {
				$this->request->get['route'] = $this->request->get['_route_'];
			} elseif (preg_match("/account\//", $this->request->get['_route_'])) {
				$this->request->get['route'] = $this->request->get['_route_'];
			} elseif (preg_match("/total\//", $this->request->get['_route_'])) {
				$this->request->get['route'] = $this->request->get['_route_'];
			} elseif (isset($this->request->get['product_id'])) {
				$this->request->get['route'] = 'product/product';
			} elseif (isset($this->request->get['path'])) {
				$this->request->get['route'] = 'product/category';
			} elseif (isset($this->request->get['manufacturer_id'])) {
				$this->request->get['route'] = 'product/manufacturer/product';
			}
			









				$this->request->get['route'] = 'product/manufacturer/info';

			} elseif (isset($this->request->get['information_id'])) {

				$this->request->get['route'] = 'information/information';

			}

			

			if (isset($this->request->get['route'])) {

				return $this->forward($this->request->get['route']);

			}

		}

	}

	

	public function rewrite($link) {

		$url_info = parse_url(str_replace('&', '&', $link));

	

		$url = ''; 

		

		$data = array();

		

		parse_str($url_info['query'], $data);

		

		foreach ($data as $key => $value) {

			if (isset($data['route'])) {

				if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/info' || $data['route'] == 'product/product') && $key == 'manufacturer_id') || ($data['route'] == 'information/information' && $key == 'information_id')) {

					$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");

				

					if ($query->num_rows) {

						$url .= '/' . $query->row['keyword'];

						

						unset($data[$key]);

					}					

				} elseif ($key == 'path') {

					$categories = explode('_', $value);

					

					foreach ($categories as $category) {

						$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");

				

						if ($query->num_rows) {

							$url .= '/' . $query->row['keyword'];

						}							

					}

					

					unset($data[$key]);

				}

			}

		}

	

		if ($url) {

			unset($data['route']);

		

			$query = '';

		

			if ($data) {

				foreach ($data as $key => $value) {

					$query .= '&' . $key . '=' . $value;

				}

				

				if ($query) {

					$query = '?' . trim($query, '&');

				}

			}



			return $url_info['scheme'] . '://' . $url_info['host'] . (isset($url_info['port']) ? ':' . $url_info['port'] : '') . str_replace('/index.php', '', $url_info['path']) . $url . $query;

		} else {

			
                        return preg_replace("/(index\.php\?route=|common\/home)/", "", $link);
                        

		}

	}	

}

?>

Newbie

Posts

Joined
Tue May 21, 2013 12:06 am

User avatar
Guru Member

Posts

Joined
Wed Nov 16, 2011 11:53 am
Location - Singapore

Post by mikispace » Thu Sep 26, 2013 11:04 am

It all works ok on the old server, & the files are exactly the same on the new server, so I am confused as to what the problem is !

Newbie

Posts

Joined
Tue May 21, 2013 12:06 am

Post by Cleo » Thu Sep 26, 2013 11:24 am

Hi

I'm not a coder but I believe that there is no opening "{" for the last " }"

Code: Select all

          }

       }   

    }

    ?>
Cleo

Opencart v1.5.4.1 fr/en
Theme: Custom
vqmod-2.6.0
PHP: 7.3 (ea-php73)


User avatar
Active Member

Posts

Joined
Wed Mar 09, 2011 5:19 am
Who is online

Users browsing this forum: No registered users and 22 guests