Exemple #1
0
 private function installJvrelatives()
 {
     $out = '';
     $ma_version = JvrelInstallerHelper::getVersionFromManifest();
     $db_version = JvrelInstallerHelper::getDbVersion();
     try {
         if (0 == $db_version) {
             $installer = JvrelInstallerHelper::getInstallerObject("0.0");
             $installer->execute();
             if ($installer->getErrorFlag()) {
                 throw new Exception($installer->getMessage());
             }
             JvrelInstallerHelper::updateVersionInDb($ma_version);
             $out .= '0|0|100|' . $installer->getMessage();
         } else {
             $sindex = $tindex = 0;
             $versions_to_upgrade = JvrelInstallerHelper::getVersionsUpgradeList($db_version, $sindex, $tindex);
             if (0 == count($versions_to_upgrade)) {
                 $out .= '0|0|100|Upgrade complete';
             } else {
                 $installer = JvrelInstallerHelper::getInstallerObject($versions_to_upgrade[0]);
                 $retval = $installer->execute();
                 if ($installer->getErrorFlag()) {
                     throw new Exception($installer->getMessage());
                 }
                 if ($retval == -99 || $retval == -1) {
                     JvrelInstallerHelper::updateVersionInDb($versions_to_upgrade[0]);
                     if (1 == count($versions_to_upgrade)) {
                         $out .= '0|0|100|' . $installer->getMessage();
                     } else {
                         $percent_complete = intval((1 + $sindex) * 100 / (1 + $tindex + 1));
                         $percent_complete = $percent_complete > 100 ? 100 : $percent_complete;
                         $out .= $versions_to_upgrade[1] . '|0|' . $percent_complete . '|' . $installer->getMessage();
                     }
                 } else {
                     $percent_complete = intval((1 + $sindex) * 100 / (1 + $tindex + 1));
                     $percent_complete = $percent_complete > 100 ? 100 : $percent_complete;
                     $out .= $versions_to_upgrade[0] . '|0|' . $percent_complete . '|' . $installer->getMessage();
                 }
             }
         }
     } catch (Exception $ex) {
         $out .= '0|1|100|<p class="alert alert-error">' . $ex->getMessage() . '</p>';
     }
     $out = JString::trim($out, "<br />");
     $out .= "<br />";
     echo $out;
     // {next_version_to_upgrade|error flag|percent complete|message}
 }