예제 #1
0
 /**
  * Changing path for patched layouts
  */
 public function getLayoutFilename($file, array $params = array())
 {
     $filename = parent::getLayoutFilename($file, $params);
     $filenameNew = str_replace(Mage::getBaseDir('app'), Mage::getBaseDir('var') . DS . 'ait_patch', $filename);
     if (file_exists($filenameNew)) {
         $filename = $filenameNew;
     } else {
         $filenameNew = str_replace(DS . 'base' . DS, DS . 'default' . DS, $filenameNew);
         if (file_exists($filenameNew)) {
             $filename = $filenameNew;
         }
     }
     return $filename;
 }
예제 #2
0
 /**
  * Return list of files in layout
  *
  * @param Mage_Core_Model_Design_Package $designPackage
  * @param string $area
  * @param string $package
  * @param string $theme
  * @param string $storeId
  * @return string[]
  */
 public function getDesignLayoutFiles($designPackage, $area, $package, $theme, $storeId)
 {
     $layoutUpdates = $this->getConfig()->getNode(sprintf('%s/layout/updates', $area));
     $nodeFiles = array();
     if ($layoutUpdates) {
         Mage::dispatchEvent('core_layout_update_updates_get_after', array('updates' => $layoutUpdates));
         $nodeFiles = $layoutUpdates->asArray();
     }
     $themeUpdatePath = sprintf('%s/%s/%s/layout/updates', $area, $package, $theme);
     // Reproduce core functionality for theme based updates for 1.9.x only
     if ($this->getDesignConfig() && ($themeUpdates = $this->getDesignConfig()->getNode($themeUpdatePath)) && is_array($themeUpdates->asArray())) {
         $nodeFiles = array_merge($nodeFiles, array_values($themeUpdates->asArray()));
     }
     $fileNames = array();
     foreach ($nodeFiles as $file) {
         if (!empty($file['file'])) {
             $module = !empty($file['@']['module']) ? $file['@']['module'] : false;
             if ($module && Mage::getStoreConfigFlag(sprintf('advanced/modules_disable_output/%s', $module), $storeId)) {
                 continue;
             }
             $fileNames[] = $file['file'];
         }
     }
     $fileNames[] = 'local.xml';
     $files = array();
     foreach ($fileNames as $fileName) {
         $files[] = $designPackage->getLayoutFilename($fileName, array('_area' => $area, '_package' => $package, '_theme' => $theme));
     }
     return $files;
 }