Ejemplo n.º 1
0
 public static function listDependencies()
 {
     $catalog = Package_Catalog::getCatalog();
     $dependencyList = array();
     foreach ($catalog as $id => $package) {
         $packageName = $package['packageName'];
         if (!array_key_exists($packageName, $dependencyList)) {
             $dependencyList[$packageName] = array();
         }
         foreach ($package['required'] as $requirement => $conditions) {
             switch ($requirement) {
                 case 'not':
                     continue;
                     break;
                 case 'or':
                     foreach ($conditions as $name => $condition) {
                         $dependencyList[$name][] = $packageName;
                     }
                     break;
                 default:
                     $dependencyList[$requirement][] = $packageName;
             }
         }
     }
     return $dependencyList;
 }
Ejemplo n.º 2
0
 public function createRepo()
 {
     Package_Catalog::disableRemote();
     $repoCatalog = Package_Catalog::getCatalog();
     foreach ($repoCatalog as $key => &$package) {
         unset($package['configure_class']);
         unset($package['directory']);
         unset($package['upgrades']);
         unset($package['downgrades']);
         unset($package['datastore_id']);
         unset($package['status']);
     }
     header('Content-type: text/xml');
     echo self::toXml($repoCatalog);
     flush();
     die;
 }
Ejemplo n.º 3
0
 public function index()
 {
     stylesheet::add('packagemanager');
     $messages = array('error' => NULL, 'warning' => NULL, 'notice' => NULL, 'ok' => NULL);
     $this->view->displayParameters = $this->displayParameters;
     $this->view->messages = $messages;
     $this->view->catalog = Package_Manager::getDisplayList();
     $messages = Package_Message::get();
     if (is_array($messages)) {
         $this->view->messages = $messages;
     } else {
         $this->view->messages = array();
     }
     foreach (Package_Catalog::getCatalog() as $identifier => $package) {
         kohana::log('debug', $identifier . ' => ' . $package['packageName'] . ' version ' . $package['version']);
     }
     Package_Message::clear();
 }
Ejemplo n.º 4
0
 protected static function listDependents($parentPackage)
 {
     $catalog = Package_Catalog::getCatalog();
     $dependents = array();
     foreach ($catalog as $id => $package) {
         if ($package['status'] == Package_Manager::STATUS_UNINSTALLED) {
             continue;
         }
         $dependent = $package['packageName'];
         foreach ($package['required'] as $requirement => $conditions) {
             switch ($requirement) {
                 case 'not':
                     continue;
                 case 'or':
                     foreach ($conditions as $name => $condition) {
                         if ($name == $parentPackage) {
                             if (!in_array($dependent, $dependents)) {
                                 $dependents[] = $dependent;
                             }
                         }
                     }
                     break;
                 default:
                     if ($requirement == $parentPackage) {
                         if (!in_array($dependent, $dependents)) {
                             $dependents[] = $dependent;
                         }
                     }
             }
         }
     }
     return $dependents;
 }
Ejemplo n.º 5
0
 /**
  * This step collects the data for the telephony configuration
  *
  * @return object
  */
 private function telephony()
 {
     $subview = new View('installer/telephony');
     $this->template->title = __('Telephony Engine');
     $drivers = array('none' => 'None');
     $packages = Package_Catalog::getCatalog();
     foreach ($packages as $package) {
         if ($package['type'] != Package_Manager::TYPE_DRIVER) {
             continue;
         }
         $this->session->set('installer.install_' . $package['packageName'], FALSE);
         $drivers[$package['packageName']] = $package['displayName'];
     }
     // Get the driver configured in telephony.php
     $defaultDriver = strtolower(Kohana::config('telephony.driver'));
     // If the driver in telephony doesnt exist on this system then just default to the first driver
     if (!isset($drivers[$defaultDriver])) {
         $defaultDriver = key($drivers);
     }
     $driver = $this->session->get('installer.tel_driver', $defaultDriver);
     $subview->driver = $driver;
     $subview->drivers = $drivers;
     // Add an event for this telephony driver exclusively
     $this->pluginEvents['driver'] = Router::$controller . '.' . $this->currentStep . '.' . $driver;
     return $subview;
 }