Here is line 26-27:Fatal error: Call to a member function escape() on a non-object in /home/username/public_html/ocart2/system/library/vie_front.php on line 27
Code: Select all
// Load skin options
$theme_id = $this->db->escape($this->getTheme());
Here is line 26-27:Fatal error: Call to a member function escape() on a non-object in /home/username/public_html/ocart2/system/library/vie_front.php on line 27
Code: Select all
// Load skin options
$theme_id = $this->db->escape($this->getTheme());
Don Bledsoe
Code: Select all
<?php
class Vie_Front {
const TABLE_THEME = 'vie_lte_theme';
const TABLE_SKIN = 'vie_lte_skin';
const TABLE_SKIN_OPTION = 'vie_lte_skin_option';
protected static $instance;
protected $registry;
protected $resources = array();
public $positions = array();
public $skin_options = array();
public $vie;
protected function __construct($registry) {
$this->registry = $registry;
$this->load->library('vie');
$this->vie = Vie::getInstance();
// Load skin options
$theme_id = $this->db->escape($this->getTheme());
$skin_id = $this->db->escape($this->getSkin());
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . self::TABLE_SKIN_OPTION . " WHERE theme_id = '$theme_id' AND skin_id = '$skin_id'");
$this->skin_options = array();
foreach ($query->rows as $row) {
$this->skin_options[$row['option']] = unserialize($row['value']);
}
// Load theme language
$this->language->load('vie/theme_' . $theme_id);
}
public function __get($key) {
return $this->registry->get($key);
}
public function __set($key, $value) {
$this->registry->set($key, $value);
}
public static function getInstance() {
if (empty(self::$instance)) {
global $registry;
self::$instance = new Vie_Front($registry);
}
return self::$instance;
}
public function init() {
$this->setPreview();
$this->initPositions();
}
public function getModules($position) {
return isset($this->positions[$position]) ? $this->positions[$position] : array();
}
protected function initPositions() {
$positions = $this->vie->getPositions();
$this->load->model('design/layout');
$this->load->model('extension/module');
if (isset($this->request->get['route'])) {
$route = (string)$this->request->get['route'];
} else {
$route = 'common/home';
}
$layout_id = 0;
if ($route == 'product/category' && isset($this->request->get['path'])) {
$this->load->model('catalog/category');
$path = explode('_', (string)$this->request->get['path']);
$layout_id = $this->model_catalog_category->getCategoryLayoutId(end($path));
}
if ($route == 'product/product' && isset($this->request->get['product_id'])) {
$this->load->model('catalog/product');
$layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
}
if ($route == 'information/information' && isset($this->request->get['information_id'])) {
$this->load->model('catalog/information');
$layout_id = $this->model_catalog_information->getInformationLayoutId($this->request->get['information_id']);
}
if (!$layout_id) {
$layout_id = $this->model_design_layout->getLayout($route);
}
if (!$layout_id) {
$layout_id = $this->config->get('config_layout_id');
}
foreach ($positions as $position => $name) {
$loaded_modules = array();
$modules = $this->model_design_layout->getLayoutModules($layout_id, $position);
foreach ($modules as $module) {
$part = explode('.', $module['code']);
if (isset($part[0]) && $this->config->get($part[0] . '_status')) {
$loaded_modules[] = $this->load->controller('module/' . $part[0]);
}
if (isset($part[1])) {
$setting_info = $this->model_extension_module->getModule($part[1]);
if ($setting_info && $setting_info['status']) {
$loaded_modules[] = $this->load->controller('module/' . $part[0], $setting_info);
}
}
}
$this->positions[$position] = $loaded_modules;
}
}
public function getTheme() {
return 'vie';
}
public function getSkins() {
}
public function getRootSkin() {
if (!empty($this->request->post['skin_id'])) {
return $this->request->post['skin_id'];
}
}
public function getSkin() {
return $this->config->get('vie_theme_editor_skin_id');
}
public function getSkinOption($option, $from_cache = true) {
$value = null;
if ($this->isPreview()) {
if (isset($this->session->data['vie_skin_options'][$option])) {
$value = $this->session->data['vie_skin_options'][$option];
}
} else {
if (isset($this->skin_options[$option])) {
$value = $this->skin_options[$option];
}
}
if (is_string($value)) {
$value = html_entity_decode($value, ENT_QUOTES, 'UTF-8');
}
return $value;
}
public function getThemeVersion() {
}
public function getFrameworkVersion() {
}
public function setPreview() {
if (!empty($this->request->get['vie_preview']) || !empty($this->session->data['vie_preview'])) {
$this->session->data['vie_preview'] = true;
} else {
$this->session->data['vie_preview'] = false;
}
if (!empty($this->request->post['vie_preview_data'])) {
$data = json_decode(htmlspecialchars_decode($this->request->post['vie_preview_data']), true);
$this->session->data['vie_skin_id'] = $data['skin_id'];
$this->session->data['vie_skin_options'] = $data['skin_options'];
}
}
public function isPreview() {
return !empty($this->request->get['vie_preview']) || !empty($this->session->data['vie_preview']);
}
public function clearPreview() {
// TODO: Clear preview
}
public function addResources($position, $resources, $meta) {
if (empty($this->resources[$position])) {
$this->resources[$position] = array(
'meta' => $meta,
'resources' => array()
);
}
if (!is_array($resources)) {
$resources = array($resources);
}
$this->resources[$position]['resources'] = array_merge($this->resources[$position]['resources'], $resources);
}
public function renderResources($position) {
$html = '';
if (!empty($this->resources[$position])) {
$resource_data = $this->resources[$position];
if ($resource_data['meta'] == 'script') {
foreach ($resource_data['resources'] as $resource) {
$html .= '<script src="'. $resource .'"></script>';
}
} else if ($resource_data['meta'] == 'style') {
foreach ($resource_data['resources'] as $resource) {
$html .= '<link rel="stylesheet" href="'. $resource .'" />';
}
}
}
if ($position == 'header_styles') {
$html = $this->processFonts($html);
}
if ($position == 'body_end_scripts' && $this->isPreview()) {
// Load skins
$skins_path = DIR_SYSTEM . 'vie/skins/';
$skin_files = glob($skins_path . '*.ejs');
foreach ($skin_files as $skin_file) {
$content = file_get_contents($skin_file);
$skin = basename($skin_file, '.ejs');
$html .= '<script type="text/ejs" id="skin-'. $skin .'">' . $content . '</script>';
}
// Insert Preview Scripts
$html .= '<script src="catalog/view/javascript/vie/theme_editor/ejs.js"></script>';
$html .= '<script src="catalog/view/javascript/vie/theme_editor/processor.js"></script>';
}
echo $html;
}
protected function processFonts($html) {
$google_fonts = array();
if (!empty($this->skin_options)) {
foreach ($this->skin_options as $option => $value) {
if (preg_match('/font$/', $option) && !empty($value)) {
$processed_font = $this->processFontFamily($value);
if ($processed_font) {
$google_fonts[] = $processed_font;
}
}
}
}
if (!empty($google_fonts)) {
$html = sprintf('<link href="%s" type="text/css" rel="stylesheet" />', '//fonts.googleapis.com/css?family=' . implode('|', $google_fonts) . '&subset=all') . $html;
}
return $html;
}
protected function processFontFamily($font) {
$fonts = $this->getGoogleFonts();
$variants = array();
$is_exist = false;
foreach ($fonts['items'] as $font_item) {
if ($font_item['family'] == $font) {
$is_exist = true;
if (!empty($font_item['variants'])) {
$variants = $font_item['variants'];
}
}
}
if (!$is_exist) {
return null;
}
$font_family = preg_replace('/(\w)\s+(\w)/', '$1+$2', $font);
if (!empty($variants)) {
$font_family .= ':' . implode(',', $variants);
}
return $font_family;
}
protected function getGoogleFonts() {
static $fonts;
if (!$fonts) {
$font_contents = file_get_contents(DIR_SYSTEM . 'vie/fonts.json');
$fonts = json_decode($font_contents, true);
}
return $fonts;
}
public function getBodyClass() {
}
public function getQuickviewUrl($product_id) {
return 'index.php?route=vie/quick_view&vie_pid=' . (int)$product_id;
}
public function getSaleBadge($product_id) {
$type = $this->getSkinOption('sale_badge_type');
$product = $this->model_catalog_product->getProduct($product_id);
if ((float)$product['special']) {
$special = $this->tax->calculate($product['special'], $product['tax_class_id'], $this->config->get('config_tax'));
} else {
$special = false;
}
if (!$special) {
return null;
}
if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax'));
} else {
$price = false;
}
if (!$price) {
return null;
}
$value = '';
if ($type == 'percent') {
$value = round($special / $price * 100) . '%';
} else {
$value = $this->language->get('text_vie_sale');
}
return $value;
}
public function translate($text) {
return $this->vie->translate($text);
}
}
Don Bledsoe
Code: Select all
protected function __construct($registry) {
$this->registry = $registry;
$this->load->library('vie');
$this->vie = Vie::getInstance();
$this->db = $registry->get('db');
....
Don Bledsoe
http://www.viethemes.com - OpenCart turtorials, news, tips and stricks, extension
Our extensions:
Visual Theme Editor - Powerful tool for customizing style of any theme visually
Live Theme Editor - Customize layout, colors, backgrounds, fonts of the default theme
Theme Animation - Animation Editor for any theme
Extra Positions PRO, Custom JavaScript, Custom CSS and others
Users browsing this forum: No registered users and 179 guests