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; }
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; }
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(); }
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; }
/** * 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; }