Webshoptime Posted June 3, 2017 Posted June 3, 2017 Hello, I have just installed the Magnium theme with Visual Composer. But sadly it doesn't work. How can i fix this?
0 Webshoptime Posted June 3, 2017 Author Posted June 3, 2017 i'm getting this on the front Strict Standards: Declaration of Media::cccCss() should be compatible with MediaCore::cccCss($cssFiles, $cachePath = NULL) in /home/asiafoodcenter/public_html/override/classes/Media.php on line 169
0 yaniv14 Posted June 3, 2017 Posted June 3, 2017 Look at your Media.php file in the override folder. The core Media:cccCss method needs to get 2 params and in your override you are not giving anything. I dont know what is inside the override cccCss(), but you can try add an empty array to it, just to see if its enough. Media::cccCss([], null). and dont forget to delete class_index.php
0 yaniv14 Posted June 3, 2017 Posted June 3, 2017 Sorry, I wasn't focus. your override should be: Media::cccCss($cssFiles, $cachePath = NULL)
0 Webshoptime Posted June 3, 2017 Author Posted June 3, 2017 Yes i have fix it. But VC not working. It's in a loop at vc.ShortcodesBuilder.buildFromContent (shortcodesbuilder.js:88) at Object.vc.build (build.js:47) at HTMLDocument. (vcpage_editable.js:268) at j (jquery-1.11.0.min.js:2) at Object.fireWith [as resolveWith] (jquery-1.11.0.min.js:2) at Function.ready (jquery-1.11.0.min.js:2) at HTMLDocument.K (jquery-1.11.0.min.js:2) css Failed to load resource: the server responded with a status of 400 ()
0 yaniv14 Posted June 3, 2017 Posted June 3, 2017 in your override you have: public static function cccCss() that needs to be changed to: public static function cccCss($cssfiles, $cachepath = null) p.s. every time you change something inside override folder, you need to delete class_index.php from cache
0 Webshoptime Posted June 4, 2017 Author Posted June 4, 2017 and another problem Parse error: syntax error, unexpected '*', expecting function (T_FUNCTION) in /home/asiafoodcenter/public_html/override/controllers/front/CategoryController.php on line 8
0 yaniv14 Posted June 4, 2017 Posted June 4, 2017 paste the content of this file override/controllers/front/CategoryController.php
0 Webshoptime Posted June 4, 2017 Author Posted June 4, 2017 ``` <?php /** * 2007-2016 PrestaShop * * Thirty Bees is an extension to the PrestaShop e-commerce software developed by PrestaShop SA * Copyright (C) 2017 Thirty Bees * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://www.thirtybees.com for more information. * * @author Thirty Bees contact@thirtybees.com * @author PrestaShop SA contact@prestashop.com * @copyright 2017 Thirty Bees * @copyright 2007-2016 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * PrestaShop is an internationally registered trademark & property of PrestaShop SA */ /** * Class CategoryControllerCore * * @since 1.0.0 */ class CategoryControllerCore extends FrontController { // @codingStandardsIgnoreStart /** string Internal controller name */ public $php_self = 'category'; /** @var bool If set to false, customer cannot view the current category. */ public $customer_access = true; /** @var Category Current category object */ protected $category; /** @var int Number of products in the current page. */ protected $nbProducts; /** @var array Products to be displayed in the current page . */ protected $cat_products; // @codingStandardsIgnoreEnd /** * Sets default media for this controller * * @return void * * @since 1.0.0 */ public function setMedia() { parent::setMedia(); if (!$this->useMobileTheme()) { //TODO : check why cluetip css is include without js file $this->addCSS( [ _THEME_CSS_DIR_.'scenes.css' => 'all', _THEME_CSS_DIR_.'category.css' => 'all', _THEME_CSS_DIR_.'product_list.css' => 'all', ] ); } $scenes = Scene::getScenes($this->category->id, $this->context->language->id, true, false); if ($scenes && count($scenes)) { $this->addJS(_THEME_JS_DIR_.'scenes.js'); $this->addJqueryPlugin(['scrollTo', 'serialScroll']); } $this->addJS(_THEME_JS_DIR_.'category.js'); } /** * Redirects to canonical or "Not Found" URL * * @param string $canonicalUrl * * @since 1.0.0 */ public function canonicalRedirection($canonicalUrl = '') { if (Tools::getValue('live_edit')) { return; } if (!Validate::isLoadedObject($this->category) || !$this->category->inShop() || !$this->category->isAssociatedToShop() || in_array($this->category->id, [Configuration::get('PS_HOME_CATEGORY'), Configuration::get('PS_ROOT_CATEGORY')])) { $this->redirect_after = '404'; $this->redirect(); } if (!Tools::getValue('noredirect') && Validate::isLoadedObject($this->category)) { parent::canonicalRedirection($this->context->link->getCategoryLink($this->category)); } } /** * Initializes controller * * @see FrontController::init() * @throws PrestaShopException * * @since 1.0.0 */ public function init() { // Get category ID $idCategory = (int) Tools::getValue('id_category'); if (!$idCategory || !Validate::isUnsignedId($idCategory)) { $this->errors[] = Tools::displayError('Missing category ID'); } // Instantiate category $this->category = new Category($idCategory, $this->context->language->id); parent::init(); // Check if the category is active and return 404 error if is disable. if (!$this->category->active) { header('HTTP/1.1 404 Not Found'); header('Status: 404 Not Found'); } // Check if category can be accessible by current customer and return 403 if not if (!$this->category->checkAccess($this->context->customer->id)) { header('HTTP/1.1 403 Forbidden'); header('Status: 403 Forbidden'); $this->errors[] = Tools::displayError('You do not have access to this category.'); $this->customer_access = false; } } /** * Initializes page content variables * * @since 1.0.0 */ public function initContent() { parent::initContent(); $this->setTemplate(_PS_THEME_DIR_.'category.tpl'); if (!$this->customer_access) { return; } if (isset($this->context->cookie->id_compare)) { $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) $this->context->cookie->id_compare)); } // Product sort must be called before assignProductList() $this->productSort(); $this->assignScenes(); $this->assignSubcategories(); $this->assignProductList(); $this->context->smarty->assign( [ 'category' => $this->category, 'description_short' => Tools::truncateString($this->category->description, 350), 'products' => (isset($this->cat_products) && $this->cat_products) ? $this->cat_products : null, 'id_category' => (int) $this->category->id, 'id_category_parent' => (int) $this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath($this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize(ImageType::getFormatedName('category')), 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 'thumbSceneSize' => Image::getSize(ImageType::getFormatedName('m_scene')), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers(), 'body_classes' => [$this->php_self.'-'.$this->category->id, $this->php_self.'-'.$this->category->link_rewrite], ] ); } /** * Assigns scenes template variables */ protected function assignScenes() { // Scenes (could be externalised to another controller if you need them) $scenes = Scene::getScenes($this->category->id, $this->context->language->id, true, false); $this->context->smarty->assign('scenes', $scenes); // Scenes images formats if ($scenes && ($sceneImageTypes = ImageType::getImagesTypes('scenes'))) { foreach ($sceneImageTypes as $sceneImageType) { if ($sceneImageType['name'] == ImageType::getFormatedName('m_scene')) { $thumbSceneImageType = $sceneImageType; } elseif ($sceneImageType['name'] == ImageType::getFormatedName('scene')) { $largeSceneImageType = $sceneImageType; } } $this->context->smarty->assign( [ 'thumbSceneImageType' => isset($thumbSceneImageType) ? $thumbSceneImageType : null, 'largeSceneImageType' => isset($largeSceneImageType) ? $largeSceneImageType : null, ] ); } } /** * Assigns subcategory templates variables * * @return void * * @since 1.0.0 */ protected function assignSubcategories() { if ($subCategories = $this->category->getSubCategories($this->context->language->id)) { $this->context->smarty->assign( [ 'subcategories' => $subCategories, 'subcategories_nb_total' => count($subCategories), 'subcategories_nb_half' => ceil(count($subCategories) / 2), ] ); } } /** * Assigns product list template variables * * @return void * * @since 1.0.0 */ public function assignProductList() { $hookExecuted = false; Hook::exec( 'actionProductListOverride', [ 'nbProducts' => &$this->nbProducts, 'catProducts' => &$this->cat_products, 'hookExecuted' => &$hookExecuted, ] ); // The hook was not executed, standard working if (!$hookExecuted) { $this->context->smarty->assign('categoryNameComplement', ''); $this->nbProducts = $this->category->getProducts(null, null, null, $this->orderBy, $this->orderWay, true); $this->pagination((int) $this->nbProducts); // Pagination must be call after "getProducts" $this->cat_products = $this->category->getProducts($this->context->language->id, (int) $this->p, (int) $this->n, $this->orderBy, $this->orderWay); } // Hook executed, use the override else { // Pagination must be call after "getProducts" $this->pagination($this->nbProducts); } $this->addColorsToProductList($this->cat_products); Hook::exec( 'actionProductListModifier', [ 'nb_products' => &$this->nbProducts, 'cat_products' => &$this->cat_products, ] ); foreach ($this->cat_products as &$product) { if (isset($product['id_product_attribute']) && $product['id_product_attribute'] && isset($product['product_attribute_minimal_quantity'])) { $product['minimal_quantity'] = $product['product_attribute_minimal_quantity']; } } $this->context->smarty->assign('nb_products', $this->nbProducts); } /** * Returns an instance of the current category * * @return Category * * @since 1.0.0 */ public function getCategory() { return $this->category; } } ```
0 yaniv14 Posted June 4, 2017 Posted June 4, 2017 Why are you extending FrontController with CategoryController. Aren't you looking to override CategoryController? which in this case you need to do: class CategoryController extends CategoryControllerCore
0 Webshoptime Posted June 4, 2017 Author Posted June 4, 2017 I think the theme is want to override it. How can i solve this. Prestashop 1.6 works fine.
0 roband7 Posted June 4, 2017 Posted June 4, 2017 @Webshoptime You didn't paste the file requested. The file you pasted is controllers/front/CategoryController.php The one we need in order to help you is override/controllers/front/CategoryController.php
0 Webshoptime Posted June 4, 2017 Author Posted June 4, 2017 ``` <?php class CategoryController extends CategoryControllerCore { /* * module: jscomposer * date: 2016-02-09 03:58:59 * version: 4.3.13 / * module: jscomposer * date: 2016-02-09 03:58:59 * version: 4.3.13 */ / * module: jscomposer * date: 2017-06-03 21:52:34 * version: 4.3.20 */ public function initContent() { $description = $this->category->description; parent::initContent(); if (Module::isInstalled('jscomposer') && (bool) Module::isEnabled('jscomposer')) { $this->context->smarty->assign( array( 'description_short' => JsComposer::do_shortcode($description), ) ); $this->category->description = JsComposer::do_shortcode($description); } if (Module::isInstalled('smartshortcode') && (bool) Module::isEnabled('smartshortcode')) { $this->context->smarty->assign( array( 'description_short' => smartshortcode::do_shortcode($description), ) ); $this->category->description = smartshortcode::do_shortcode($description); } } } ```
0 Webshoptime Posted June 4, 2017 Author Posted June 4, 2017 Ow sorry my mistake, i posted the good one ;)
0 roband7 Posted June 4, 2017 Posted June 4, 2017 Thanks, that's the right file. Are you really sure that this the file as it was received from the theme author? Because there's no way in hell that file can work. Sure you haven't edited it? Anyway, the fix is easy. Notice there are three lines there at the top like this: * module: jscomposer Notice that the first and third of these lines has a line before it containing: /* So you need to add this /* line also before the second!
0 roband7 Posted June 4, 2017 Posted June 4, 2017 Yeah, the file should end up starting like this: <?php class CategoryController extends CategoryControllerCore { /* * module: jscomposer * date: 2016-02-09 03:58:59 * version: 4.3.13 */ /* * module: jscomposer * date: 2016-02-09 03:58:59 * version: 4.3.13 */ /* * module: jscomposer * date: 2017-06-03 21:52:34 * version: 4.3.20 */
0 Webshoptime Posted June 4, 2017 Author Posted June 4, 2017 Great thx m8. Fixit. I will test it. I hope the template works flawless now
Question
Webshoptime
Hello,
I have just installed the Magnium theme with Visual Composer. But sadly it doesn't work. How can i fix this?
19 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now