Jump to content

Fatal error: Class 'Media' not found


Recommended Posts

hi,

 

thanks for helping, i m not able to attach file so pasting code here.

 

 

<?php
/*
* 2007-2013 PrestaShop
*
* 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 http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2013 PrestaShop SA
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

/**
 * @since 1.5.0
 */
abstract class ControllerCore
{
    /**
     * @var Context
     */
    protected $context;

    /**
     * @var array list of css files
     */
    public $css_files = array();

    /**
     * @var array list of javascript files
     */
    public $js_files = array();

    /**
     * @var bool check if header will be displayed
     */
    protected $display_header;

    /**
     * @var string template name for page content
     */
    protected $template;

    /**
     * @var string check if footer will be displayed
     */
    protected $display_footer;

    /**
     * @var string check if only content will be displayed
     */
    protected $content_only = false;

    /**
     * @var bool If ajax parameter is detected in request, set this flag to true
     */
    public $ajax = false;
    protected $json = false;
    protected $status = '';

    protected $redirect_after = null;
    
    public $controller_type;
    
    /**
     * check that the controller is available for the current user/visitor
     */
    abstract public function checkAccess();

    /**
     * check that the current user/visitor has valid view permissions
     */
    abstract public function viewAccess();

    /**
     * Initialize the page
     */
    public function init()
    {
        if (!defined('_PS_BASE_URL_'))
            define('_PS_BASE_URL_', Tools::getShopDomain(true));
        if (!defined('_PS_BASE_URL_SSL_'))
            define('_PS_BASE_URL_SSL_', Tools::getShopDomainSsl(true));
    }

    /**
     * Do the page treatment : post process, ajax process, etc.
     */
    abstract public function postProcess();

    /**
     * Display page view
     */
    abstract public function display();

    /**
     * Redirect after process if no error
     */
    abstract protected function redirect();

    /**
     * Set default media list for controller
     */
    abstract public function setMedia();

    /**
     * Get an instance of a controller
     *
     * @param string $class_name
     * @param bool $auth
     * @param bool $ssl
     */
    public static function getController($class_name, $auth = false, $ssl = false)
    {
        return new $class_name($auth, $ssl);
    }

    public function __construct()
    {
        if (is_null($this->display_header))
            $this->display_header = true;

        if (is_null($this->display_footer))
            $this->display_footer = true;

        $this->context = Context::getContext();
        $this->context->controller = $this;
        // Usage of ajax parameter is deprecated
        $this->ajax = Tools::getValue('ajax') || Tools::isSubmit('ajax');
    }

    /**
     * Start controller process (this method shouldn't be overriden !)
     */
    public function run()
    {
        $this->init();
        if ($this->checkAccess())
        {
            // setMedia MUST be called before postProcess
            if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))
                $this->setMedia();

            // postProcess handles ajaxProcess
            $this->postProcess();

            if (!empty($this->redirect_after))
                $this->redirect();

            if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))
                $this->initHeader();

            if ($this->viewAccess())
                $this->initContent();
            else
                $this->errors[] = Tools::displayError('Access denied.');

            if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className)))
                $this->initFooter();

            // default behavior for ajax process is to use $_POST[action] or $_GET[action]
            // then using displayAjax[action]
            if ($this->ajax)
            {
                $action = Tools::toCamelCase(Tools::getValue('action'), true);
                if (!empty($action) && method_exists($this, 'displayAjax'.$action))
                    $this->{'displayAjax'.$action}();
                elseif (method_exists($this, 'displayAjax'))
                    $this->displayAjax();
            }
            else
                $this->display();
        }
        else
        {
            $this->initCursedPage();
            $this->smartyOutputContent($this->layout);
        }
    }

    public function displayHeader($display = true)
    {
        $this->display_header = $display;
    }

    public function displayFooter($display = true)
    {
        $this->display_footer = $display;
    }

    public function setTemplate($template)
    {
        $this->template = $template;
    }

    /**
     * Assign smarty variables for the page header
     */
    abstract public function initHeader();

    /**
     * Assign smarty variables for the page main content
     */
    abstract public function initContent();

    /**
     * Assign smarty variables when access is forbidden
     */
    abstract public function initCursedPage();

    /**
     * Assign smarty variables for the page footer
     */
    abstract public function initFooter();

    /**
     * Add a new stylesheet in page header.
     *
     * @param mixed $css_uri Path to css file, or list of css files like this : array(array(uri => media_type), ...)
     * @param string $css_media_type
     * @return true
     */
    public function addCSS($css_uri, $css_media_type = 'all')
    {
        if (is_array($css_uri))
            foreach ($css_uri as $css_file => $media)
            {
                if (is_string($css_file) && strlen($css_file) > 1)
                {
                    $css_path = Media::getCSSPath($css_file, $media);
                    if ($css_path && !in_array($css_path, $this->css_files))
                        $this->css_files = array_merge($this->css_files, $css_path);
                }
                else
                {
                    $css_path = Media::getCSSPath($media, $css_media_type);
                    if ($css_path && !in_array($css_path, $this->css_files))
                        $this->css_files = array_merge($this->css_files, $css_path);
                }
            }
        else if (is_string($css_uri) && strlen($css_uri) > 1)
        {
            $css_path = Media::getCSSPath($css_uri, $css_media_type);
            if ($css_path)
                $this->css_files = array_merge($this->css_files, $css_path);
        }
    }

    /**
     * Add a new javascript file in page header.
     *
     * @param mixed $js_uri
     * @return void
     */
    public function addJS($js_uri)
    {
        if (is_array($js_uri))
            foreach ($js_uri as $js_file)
            {
                $js_path = Media::getJSPath($js_file);
                if ($js_path && !in_array($js_path, $this->js_files))
                    $this->js_files[] = $js_path;
            }
        else
        {
            $js_path = Media::getJSPath($js_uri);
            if ($js_path)
                $this->js_files[] = $js_path;
        }
    }

    /**
     * Add a new javascript file in page header.
     *
     * @param mixed $js_uri
     * @return void
     */
    public function addJquery($version = null, $folder = null, $minifier = true)
    {
        $this->addJS(Media::getJqueryPath($version, $folder, $minifier));
    }

    /**
     * Add a new javascript file in page header.
     *
     * @param mixed $js_uri
     * @return void
     */
    public function addJqueryUI($component, $theme = 'base', $check_dependencies = true)
    {
        $ui_path = array();
        if (!is_array($component))
            $component = array($component);

        foreach ($component as $ui)
        {
            $ui_path = Media::getJqueryUIPath($ui, $theme, $check_dependencies);
            $this->addCSS($ui_path['css']);
            $this->addJS($ui_path['js']);
        }
    }

    /**
     * Add a new javascript file in page header.
     *
     * @param mixed $js_uri
     * @return void
     */
    public function addJqueryPlugin($name, $folder = null)
    {
        $plugin_path = array();
        if (is_array($name))
        {
            foreach ($name as $plugin)
            {
                $plugin_path = Media::getJqueryPluginPath($plugin, $folder);
                if(!empty($plugin_path['js']))
                    $this->addJS($plugin_path['js']);
                if(!empty($plugin_path['css']))        
                    $this->addCSS($plugin_path['css']);
            }
        }
        else
        {
            $plugin_path = Media::getJqueryPluginPath($name, $folder);

        if(!empty($plugin_path['css']))
            $this->addCSS($plugin_path['css']);
        if(!empty($plugin_path['js']))
            $this->addJS($plugin_path['js']);
        }
    }

    /**
     * @since 1.5
     * @return bool return true if Controller is called from XmlHttpRequest
     */
    public function isXmlHttpRequest()
    {
        return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
    }
    
    protected function smartyOutputContent($content)
    {
        $this->context->cookie->write();
        $this->context->smarty->display($content);
    }
}
 

 

 

thanks

prakriti

Link to comment
Share on other sites

Ok, step 1

 

can you make a copy of the file class_index.php which can be found in the cache folder in the root of your installation folder. then after securing the file in your computer, delete that file from your server and see what happens. if nothing happens restore the file and we will move to step 2

  • Like 1
Link to comment
Share on other sites

Good, I visited your site and I see it is working.

Mark the topic as solved please!

 

P.S: if you want to attach file you have to go to the "use full editor" if you are editing your post, and if you are replying click on the " more reply options".

 

P.S 2 : the names of users are the ones in the blue bar:) mine for example is walidon, prestashop apprentice is the status of the user according to his posts and other factors;)

 

All the best for the rest.

 

Yours Ever,

Edited by walidon (see edit history)
Link to comment
Share on other sites

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