function checkUpdateStatus() { global $LAYOUT, $SETTINGS; if (array_key_exists('last_update_time', $SETTINGS) && time() - $SETTINGS['last_update_time'] < 3600) { $LAYOUT->addWarning('Checking for new updates is only allowed once per hour. Last check was ' . getDateTimeISO($SETTINGS['last_update_time'])); return TRUE; } $SETTINGS['last_update_time'] = time(); debug(PSNG_URL_UPDATESTATUS, 'Grabbing update status'); $res = file(PSNG_URL_UPDATESTATUS); debug($res, 'Result of checkUpdateStatus'); if (count($res) == 0) { $LAYOUT->addError("Couldn't connect to check latest version"); return FALSE; } // current updatestatus only supports one line of response, upcoming might support more than one $stat = explode('---', trim($res[0])); $currentVersion = isset($stat[0]) ? trim($stat[0]) : ''; // this is all that's needed for version_compare() mk/2005-11-13 $latestRelease = isset($stat[1]) ? trim($stat[1]) : ''; $latestVersion = isset($stat[2]) ? trim($stat[2]) : ''; $comparison = version_compare($currentVersion, PSNG_VERSION); switch ($comparison) { case +1: // version online is lower than version of current script (should not happen!) $LAYOUT->addSuccess('', 'Your version (' . PSNG_VERSION . ') seems to be newer than the one online (' . $currentVersion . ') - better hold on to it!'); # ;-) mk/2005-11-13 break; case 0: // versions are identical $LAYOUT->addSuccess('', 'You have version ' . PSNG_VERSION . '. There is no newer version available.'); break; case -1: // version online is higher than version of current script $update_url = PSNG_URL_DOWNLOAD; $LAYOUT->addText('Please visit the download page at <a href="' . $update_url . '">' . $update_url . '</a>'); $LAYOUT->addWarning('Latest version of this release is ' . $currentVersion, 'New version available!'); } return TRUE; }
/** * returns a correct entry for a fileinfo with given information and settings */ function handleURL($url, $lastmod = '', $changefreq = '', $priority = '') { global $SETTINGS; $res = array(); $res[PSNG_FILE_URL] = $url; // default: file is enabled and will be handled $res[PSNG_FILE_ENABLED] = 'checked'; // handle lastmod if ($SETTINGS[PSNG_LASTMOD] == PSNG_LASTMOD_FILEDATE) { $res[PSNG_LASTMOD] = $lastmod; } elseif ($SETTINGS[PSNG_LASTMOD] == PSNG_LASTMOD_CURRENT) { $res[PSNG_LASTMOD] = time(); } elseif ($SETTINGS[PSNG_LASTMOD] == PSNG_LASTMOD_DISSABLED) { $res[PSNG_LASTMOD] = ''; } // format timestamp appropriate to settings if ($res[PSNG_LASTMOD] != '') { if ($SETTINGS[PSNG_LASTMOD_TIMEFORMAT] == PSNG_TIMEFORMAT_SHORT) { $res[PSNG_LASTMOD] = getDateTimeISO_short($res[PSNG_LASTMOD]); } elseif ($SETTINGS[PSNG_LASTMOD_TIMEFORMAT] == PSNG_TIMEFORMAT_LONG) { $res[PSNG_LASTMOD] = getDateTimeISO($res[PSNG_LASTMOD]); } } // handle changefreq if ($SETTINGS[PSNG_CHANGEFREQ] == PSNG_CHANGEFREQ_FIXED) { $res[PSNG_CHANGEFREQ] = $SETTINGS[PSNG_CHANGEFREQ_FIXED]; } elseif ($SETTINGS[PSNG_CHANGEFREQ] == PSNG_CHANGEFREQ_DYNAMIC) { if ($changefreq != '') { $res[PSNG_CHANGEFREQ] = $changefreq; } else { $res[PSNG_CHANGEFREQ] = getFrequency($lastmod); } } elseif ($SETTINGS[PSNG_CHANGEFREQ] == PSNG_CHANGEFREQ_DISSABLED) { $res[PSNG_CHANGEFREQ] = ''; } // handle priority if ($SETTINGS[PSNG_PRIORITY] == PSNG_PRIORITY_FIXED) { $res[PSNG_PRIORITY] = $SETTINGS[PSNG_PRIORITY_FIXED]; } elseif ($SETTINGS[PSNG_PRIORITY] == PSNG_PRIORITY_AUTOMATIC) { // TODO IMPLEMENTME!!! calculate priority depending on #links, hierachie level, ... $res[PSNG_PRIORITY] = $SETTINGS[PSNG_PRIORITY_FIXED]; } elseif ($SETTINGS[PSNG_PRIORITY] == PSNG_PRIORITY_DISSABLED) { $res[PSNG_PRIORITY] = ''; } return $res; }