Updated Magento patch to allow Cache Refresh — Unirgy 2010/02/08 05:14
/magento-1.3.2.4
/magento-1.3.2.4
to /magento-latest
for easier future upgrades/magento-skel
with the following structure:/magento-skel/.htaccess - copy from /magento-latest/.htaccess /magento-skel/index.php - copy from /magento-latest/index.php and follow instructions below /magento-skel/js - symlink to /magento-latest/js (absolute path) /magento-skel/skin - symlink to /magento-latest/skin (absolute path) /magento-skel/etc - contains default configuration for new copies, copy from /magento-latest/app/etc /magento-skel/etc/modules - contains all modules' manifests, for later selective disabling for each copy /magento-skel/media - will contain media files, specific for each new copy /magento-skel/var - will contain temporary files, specific for each new copy
$mageFilename
points to absolute path of /magento-latest/app/Mage.php$dir = dirname(__FILE__); Mage::run('', 'store', array( 'etc_dir' => $dir.'/etc', 'media_dir' => $dir.'/media', 'upload_dir' => $dir.'/media/upload', 'var_dir' => $dir.'/var', 'tmp_dir' => $dir.'/var/tmp', 'cache_dir' => $dir.'/var/cache', 'log_dir' => $dir.'/var/log', 'session_dir' => $dir.'/var/session', 'export_dir' => $dir.'/var/export', ));
Now you have 1 copy of Magento core files, for unlimited number of installations and DBs, each with it's own DB, configuration, enabled extensions, sessions, temporary and media files.
Upgrade of Magento or extensions needs to be done only once.
Click on file name to download as file:
diff -rupbB magento/app/code/core/Mage/Core/Model/Config/Options.php magento-1.3.2.4/app/code/core/Mage/Core/Model/Config/Options.php --- magento/app/code/core/Mage/Core/Model/Config/Options.php 2009-09-23 14:52:55.000000000 -0400 +++ magento-1.3.2.4/app/code/core/Mage/Core/Model/Config/Options.php 2010-01-18 19:55:02.000000000 -0500 @@ -68,7 +68,7 @@ class Mage_Core_Model_Config_Options ext public function getDir($type) { - $this->_construct(); + #$this->_construct(); $method = 'get'.ucwords($type).'Dir'; $dir = $this->$method(); if (!$dir) { diff -rupbB magento/app/code/core/Mage/Core/Model/Config.php magento-1.3.2.4/app/code/core/Mage/Core/Model/Config.php --- magento/app/code/core/Mage/Core/Model/Config.php 2009-09-23 14:52:57.000000000 -0400 +++ magento-1.3.2.4/app/code/core/Mage/Core/Model/Config.php 2009-11-15 22:54:56.000000000 -0500 @@ -213,7 +213,7 @@ class Mage_Core_Model_Config extends Mag $localConfigLoaded = $this->loadFile($etcDir.DS.'local.xml'); - if (Mage::isInstalled()) { + if (Mage::isInstalled($options)) { if ($this->_canUseCacheForInit()) { Varien_Profiler::start('mage::app::init::config::load_cache'); $loaded = $this->loadCache(); @@ -286,6 +286,9 @@ class Mage_Core_Model_Config extends Mag { $this->_allowCacheForInit = false; $this->_useCache = false; + if (!$options) { + $options = Mage::registry('user_options'); + } return $this->init($options); } diff -rupbB magento/app/code/core/Mage/Install/etc/install.xml magento-1.3.2.4/app/code/core/Mage/Install/etc/install.xml --- magento/app/code/core/Mage/Install/etc/install.xml 2009-09-23 14:51:54.000000000 -0400 +++ magento-1.3.2.4/app/code/core/Mage/Install/etc/install.xml 2009-11-15 22:31:06.000000000 -0500 @@ -62,16 +62,19 @@ <path>/app/etc</path> <existence>1</existence> <recursive>0</recursive> + <option_dir>etc</option_dir> </app_etc> <var> <path>/var</path> <existence>1</existence> <recursive>1</recursive> + <option_dir>var</option_dir> </var> <media> <path>/media</path> <existence>1</existence> <recursive>1</recursive> + <option_dir>media</option_dir> </media> </writeable> </filesystem> diff -rupbB magento/app/code/core/Mage/Install/Model/Installer/Filesystem.php magento-1.3.2.4/app/code/core/Mage/Install/Model/Installer/Filesystem.php --- magento/app/code/core/Mage/Install/Model/Installer/Filesystem.php 2009-09-23 14:51:54.000000000 -0400 +++ magento-1.3.2.4/app/code/core/Mage/Install/Model/Installer/Filesystem.php 2009-11-15 22:51:44.000000000 -0500 @@ -66,7 +66,8 @@ class Mage_Install_Model_Installer_Files foreach ($config['writeable'] as $item) { $recursive = isset($item['recursive']) ? $item['recursive'] : false; $existence = isset($item['existence']) ? $item['existence'] : false; - $checkRes = $this->_checkPath($item['path'], $recursive, $existence, 'write'); + $path = isset($item['option_dir']) ? Mage::getConfig()->getOptions()->getDir($item['option_dir']) : $item['path']; + $checkRes = $this->_checkPath($path, $recursive, $existence, 'write'); $res = $res && $checkRes; } } @@ -85,7 +86,11 @@ class Mage_Install_Model_Installer_Files protected function _checkPath($path, $recursive, $existence, $mode) { $res = true; + if ($path[0]=='/' || $path[0]=='\\' || $path[1]==':') { + $fullPath = $path; + } else { $fullPath = dirname(Mage::getRoot()).$path; + } if ($mode == self::MODE_WRITE) { $setError = false; if ($existence) { diff -rupbB magento/app/Mage.php magento-1.3.2.4/app/Mage.php --- magento/app/Mage.php 2009-09-23 14:53:39.000000000 -0400 +++ magento-1.3.2.4/app/Mage.php 2010-01-18 19:55:28.000000000 -0500 @@ -452,6 +452,8 @@ final class Mage { Varien_Profiler::start('mage'); Varien_Profiler::start('mage::app'); + + self::register('user_options', is_string($options) ? array('etc_dir'=>$options) : (array)$options); self::app($code, $type, $options); Varien_Profiler::stop('mage::app'); @@ -518,10 +518,13 @@ final class Mage { if (!empty($options['etc_dir'])) { $etcDir = $options['etc_dir']; } + if ($etcDir[0]=='/' || $etcDir[0]=='\\' || $etcDir[1]==':') { + $localConfigFile = $etcDir . DS . 'local.xml'; + } else { $localConfigFile = self::getRoot() . DS . $etcDir . DS . 'local.xml'; + } $isInstalled = false; - if (is_readable($localConfigFile)) { $localConfig = simplexml_load_file($localConfigFile); date_default_timezone_set('UTC');