/** * This function checks for an update for a particular module at the lotuscms website. */ public function checkForModuleUpdate($req) { if (isset($_SESSION['MODUPDATE'])) { print $_SESSION['MODUPDATE']; exit; } else { include_once "core/lib/RemoteFiles.php"; include_once "core/lib/ModuleInfo.php"; //Get information on update status of each plugin. //Setup remote file requestor $rf = new RemoteFiles(); //Get site version $version = file_get_contents("data/config/site_version.dat"); $data = ""; if (isset($_SESSION['MOD_LCMS_ORG_RESPONSE_URL'])) { $data = $_SESSION['MOD_LCMS_ORG_RESPONSE_URL']; } if (file_exists("data/lcmscache/mod_update.dat") && empty($data)) { include_once "core/lib/io.php"; $io = new InputOutput(); $data = $io->openFile("data/lcmscache/mod_update.dat"); $_SESSION['MOD_LCMS_ORG_RESPONSE_URL'] = $data; //Finally delete the cache unlink("data/lcmscache/mod_update.dat"); } else { //Collect information on module updates. $data = $rf->getURL("http://cdn.modules.lotuscms.org/lcms-3-series/versioncontrol/allversioncheck.php?m={$req}&v={$version}"); } //Save response in session in case it is required later $_SESSION['MOD_LCMS_ORG_RESPONSE_URL'] = $data; //Output $out = ""; if (empty($data)) { print "<p class='msg error'><strong>Error:</strong> cannot connect to lotuscms.org</p>"; exit; } //Get list of plugins $m = explode("|", $data); $l = new Locale(); //Loop through each update response. for ($i = 0; $i < count($m); $i++) { //Split name & version number $getFull = explode(":", $m[$i]); //Get full number of plugin $nv = (double) $getFull[1]; //Get current version include_once "modules/" . $getFull[0] . "/" . $getFull[0] . "ModuleInfo.php"; $name = $getFull[0] . "ModuleInfo"; //Load info class $info = new $name(); //Load info $info->ModuleInfo(); //Get current version number $cv = (double) $info->getVersion(); //If new version is actually newer than installed. if ($cv < $nv) { $out .= '<p class="msg error">' . $l->localize("Module") . ': ' . $getFull[0] . ' ' . $l->localize("is out of date") . ' [' . $l->localize("version") . ': ' . $getFull[1] . ']. <a href="index.php?system=Modules&page=updateCheck&req=' . $getFull[0] . '">' . $l->localize("Update") . '</a></p>'; } } print $out; $_SESSION['MODUPDATE'] = $out; exit; } }
/** * Loads a jQuery based dashboard. */ private function loadDash() { //Get the Locale include_once "core/lib/Locale.php"; $l = new Locale(); //Checks for update $data = $this->checkForUpdate(); //If no update available. if (empty($data)) { $this->view->setErrorData("success", $l->localize("Welcome to the new LotusCMS 3 Series, visit the <a href='http://forum.lotuscms.org'>LotusCMS Forum</a> for help / questions")); } else { $this->view->setErrorData("error", $data); } //Buttons. $out = "<fieldset><table width='10%'><tr>"; //Count items $i = 0; if ($this->hasBlog()) { $i++; //Creates an icon for the blog $out .= $this->createIcon("index.php?system=Modules&page=admin&active=Blog", "modules/Blog/logo.png", $l->localize("Blog")); } if ($this->hasMenu()) { $i++; //Creates icon for the menu $out .= $this->createIcon("index.php?system=Modules&page=admin&active=Menu", "modules/Menu/logo.png", $l->localize("Menu")); } if ($this->hasBackup()) { $i++; //Creates icon for the menu $out .= $this->createIcon("index.php?system=Modules&page=admin&active=Backup", "modules/Backup/logo.png", $l->localize("Backup")); } //Adds an icon for the template if ($i < 6) { $i++; $out .= $this->createIcon("index.php?system=Template&page=change", "style/comps/admin/img/templates.png", $l->localize("Styles")); } $out .= "</tr></table></fieldset>"; //Working module update check. Takes Aggeeess to load - due to up to 8 HTTP requests sent to LotusCMS.org. $extra = '<script type="text/javascript"> <!-- $(document).ready(function() { $("#loadNews").load("index.php?system=Modules&page=admin&active=Dashboard&req=news"); $(window).load( function() {'; $plugs = $this->getPlugins(); if (!file_exists("data/modules/Dashboard/stopmodulecheck.dat")) { $requests = ""; for ($k = 0; $k < count($plugs); $k++) { if ($k != 0) { $requests .= "|"; } $requests .= $plugs[$k]; } $extra .= '$("#checkModules").load("index.php?system=Modules&page=admin&active=Dashboard&req=checkModules&id=' . $requests . '");'; $out .= "<div id='checkModules'><p style='border: 1px solid #e3e3e3; font-size:11px;'><img style='float:left;padding-top:3px;padding-left:4px;' src='modules/Dashboard/loading.gif' height='15px' width='15px'/> <span style='display:block;float:left;width: 400px;height:20px;margin-left:20px;'>" . $l->localize("Checking for module updates") . "…</span><span style='display:block;width:60px;height:20px;margin-right:6px;text-align:right;float:right'><a style='color:#b2b2b2;text-decoration:none;' href='index.php?system=Modules&page=admin&active=Dashboard&req=disableModCheck'><!--Disable--></a></span></p></div>"; } $this->getView()->getMeta()->appendExtra($extra . ' } );}); --></script>'); $out .= "<fieldset>"; $out .= "<p id='loadNews'><strong>" . $l->localize("Loading News...") . "</strong></p>"; $out .= "</fieldset>"; //Sets the content of the dashboard. $this->getView()->setContent($out); }