Jump to content
thirty bees forum

Question

19 answers to this question

Recommended Posts

  • 0
Posted

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
Posted

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
Posted

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_1496525667082_20161003_171641.jpg

  • 0
Posted

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
Posted

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
Posted

``` <?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
Posted

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
Posted

@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
Posted

``` <?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
Posted

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
Posted

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
    */

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...