Exemplo n.º 1
0
 public static function readFromDB()
 {
     $res = array();
     $i = 0;
     $rows = $GLOBALS['db']->ReadRows("SELECT name, version FROM {'dbprefix'}packages");
     if ($rows) {
         foreach ($rows as $row) {
             $package = new Plugin_Updater_Package();
             $package->setName($row->name);
             $package->setVersion($row->version);
             $res[] = $package;
             $i++;
         }
     }
     return $res;
 }
Exemplo n.º 2
0
 public function load()
 {
     $this->headline = "Updater";
     include_once 'interfaces/iupdateimporter.php';
     include_once 'interfaces/iupdatecommand.php';
     if (Cache::contains("packages", "all")) {
         $installedPackages = $this->content = Cache::getData("packages", "all");
     } else {
         $installedPackages = Plugin_Updater_Package::readFromDB();
         Cache::setData("packages", "all", $installedPackages);
     }
     $path = "http://connect.contentlion.org/update.php?format=xml";
     $i = 0;
     if (is_array($installedPackages)) {
         foreach ($installedPackages as $package) {
             $path .= "&" . $package->getUpdateToken($i);
             $i++;
         }
     }
     $importer = new Plugin_Updater_UpdateXmlImporter();
     $importer->importPath($path);
     if ($importer->areUpdatesAvailible()) {
         $host = Settings::getInstance()->get("host");
         foreach ($importer->getUpdates() as $update) {
             if (isset($_GET['update']) && $_GET['update'] == $update->getName()) {
                 $this->content .= "<br />" . Language::DirectTranslate("install_it") . " " . $update->getName() . "...";
                 $update->runUpdate();
                 Cache::clear();
                 $this->content .= "<br />" . htmlentities(Language::DirectTranslate("plugin_updater_install_complete"));
             } else {
                 $this->content .= "<br />" . $update->getName() . " - <a href='" . $host . "admin/home.html?update=" . $update->getName() . "'>" . Language::DirectTranslate("plugin_updater_install") . "</a>";
             }
         }
     } else {
         $this->content = Language::DirectTranslate("plugin_updater_no_updates");
     }
 }