Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
/**
 * 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;
}