/**
  * Retrieve all of the available extensions
  *
  * @return array
  */
 protected function _getAllExtensions()
 {
     if (!is_null(self::$_extensions)) {
         return self::$_extensions;
     }
     $installedModules = array_keys((array) $this->_getConfig()->getNode('modules'));
     $config = (array) $this->_getConfig()->getNode('fishpig/extend')->asArray();
     self::$_extensions = array();
     foreach ($config as $code => $extension) {
         $extension['module'] = $code;
         $reqMultistore = isset($extension['require_multistore']) ? (int) $extension['require_multistore'] : null;
         if (!isset($_SERVER['IS_FISHPIG']) && in_array($code, $installedModules)) {
             continue;
         } else {
             if (!is_null($reqMultistore) && $reqMultistore === (int) Mage::app()->isSingleStoreMode()) {
                 continue;
             } else {
                 if (isset($extension['depends'])) {
                     $depends = array_keys((array) $extension['depends']);
                     if (count(array_diff($depends, $installedModules)) > 0) {
                         continue;
                     }
                 }
             }
         }
         self::$_extensions[$code] = (array) $extension;
     }
     if (count(self::$_extensions) === 0) {
         self::$_extensions = false;
     }
     return self::$_extensions;
 }
Esempio n. 2
0
 /**
  * Get a list of extensions for Extend
  *
  * @param int $count = 0
  * @param array $pref = array
  * @param bool $rand = false
  * @return array
  */
 public function getExtensions($count = 0, array $pref = array(), $rand = false)
 {
     return parent::getExtensions($count, $pref, true);
 }