我在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';
我放
$this->_data['media_dir'] = $root.DS.$this->getMediaFromStore();
我得到了可怕的错误,就像这样......
致命错误:在第 328 行的 /home/cofamedia/www/magento/app/Mage.php 中的非对象上调用成员函数 getOptions()
我被困住了,你们中的任何人都对如何解决这个错误有一些解释吗?并为 Magento 中的每个媒体文件夹执行每个存储。谢谢你。