Magento 每个商店都有自己的媒体文件夹吗?

Magento 每个商店都有自己的媒体文件夹吗?,magento,magento-1.7,Magento,Magento 1.7,我在magento中有一个需要覆盖的代码,代码可以在/app/code/core/Mage/core/Model/Config/Options.php中找到 代码是这样的: protected function _construct() { $appRoot= Mage::getRoot(); $root = dirname($appRoot); $this->_data['app_dir'] = $appRoot

我在magento中有一个需要覆盖的代码,代码可以在/app/code/core/Mage/core/Model/Config/Options.php中找到

代码是这样的:

protected function _construct()
    {



        $appRoot= Mage::getRoot();
        $root   = dirname($appRoot);

        $this->_data['app_dir']     = $appRoot;
        $this->_data['base_dir']    = $root;
        $this->_data['code_dir']    = $appRoot.DS.'code';
        $this->_data['design_dir']  = $appRoot.DS.'design';
        $this->_data['etc_dir']     = $appRoot.DS.'etc';
        $this->_data['lib_dir']     = $root.DS.'lib';
        $this->_data['locale_dir']  = $appRoot.DS.'locale';
        $this->_data['media_dir']   = $root.DS.'default_media';
        $this->_data['skin_dir']    = $root.DS.'skin';
        $this->_data['var_dir']     = $this->getVarDir();
        $this->_data['tmp_dir']     = $this->_data['var_dir'].DS.'tmp';
        $this->_data['cache_dir']   = $this->_data['var_dir'].DS.'cache';
        $this->_data['log_dir']     = $this->_data['var_dir'].DS.'log';
        $this->_data['session_dir'] = $this->_data['var_dir'].DS.'session';
        $this->_data['upload_dir']  = $this->_data['media_dir'].DS.'upload';
        $this->_data['export_dir']  = $this->_data['var_dir'].DS.'export';
       }
我需要更改默认媒体,每个商店都有自己的媒体文件夹。所以我做了一个函数

public function getMediaFromStore(){
    $fullMediaUrl=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
    $baseUrl = Mage::getBaseUrl();
    echo substr(Mage::getBaseUrl($fullMediaUrl, strlen($baseUrl));
}
而不是

$this->_data['media_dir']   = $root.DS.'default_media';
我把

我犯了一个奇怪的错误,就是这样

致命错误:对中的非对象调用成员函数getOptions() /home/cofamedia/www/magento/app/Mage.php,第328行


我被绊倒了,你们有谁能解释一下如何克服这个错误吗。并对Magento中的每个存储和每个媒体文件夹执行此操作。多谢各位

这是一个非常棘手的变化。如果需要在core类中实现此更改,最好将文件复制到app/code/local/Mage/core/Model/Config/Options.php,并在那里进行更改以防止升级时被覆盖

然而,我认为最好在CMS WYSIWYG建模中实现一个更改,以添加存储路径。我不确定你需要寻找的所有地方&可能改变行为和价值观,但你可以从中开始


请注意,写入存储器和读取存储器的路径(文件系统路径)与前端所需的路径(URL路径)不同。您当前的示例正在尝试将后者用于前者,除非您在文件操作和URL包装方面有一些疯狂的事情,否则将无法工作。

这有什么意义?所见即所得的文件分离…?@benmarks是的,这就是重点。我明白了,你在告诉我什么,谢谢,我现在就试试。它不起作用……:(但我不会放弃……你知道怎么做吗,请帮忙,谢谢。
$this->_data['media_dir']   = $root.DS.$this->getMediaFromStore();