Beispiel #1
0
function txPageEdit()
{
    global $DB, $C;
    VerifyAdministrator();
    CheckAccessList();
    $v = new Validator();
    $v->Register($_REQUEST['page_url'], V_URL, 'The Page URL field is not a properly formatted HTTP URL');
    $v->Register($_REQUEST['filename'], V_EMPTY, 'The Filename field must be filled in');
    $filename = $_REQUEST['filename'];
    $page_url = $_REQUEST['page_url'];
    // See if the filename is the TGPX index.php file
    if ($filename == "{$GLOBALS['BASE_DIR']}/index.php") {
        $v->SetError('The TGP page you are trying to add is the same as the TGPX index.php file');
    }
    // See if the same page already exists
    if ($DB->Count('SELECT COUNT(*) FROM `tx_pages` WHERE (`filename`=? OR `page_url`=?) AND `page_id`!=?', array($filename, $page_url, $_REQUEST['page_id']))) {
        $v->SetError('You are changing this TGP page to be the same as an already existing page');
    }
    // Check tags for proper format
    if (!IsEmptyString($_REQUEST['tags'])) {
        $_REQUEST['tags'] = FormatSpaceSeparated($_REQUEST['tags']);
        foreach (explode(' ', $_REQUEST['tags']) as $tag) {
            if (strlen($tag) < 4 || !preg_match('~^[a-z0-9_]+$~i', $tag)) {
                $v->SetError('All page tags must be at least 4 characters in length and contain only letters, numbers, and underscores');
                break;
            }
        }
    }
    if (!$v->Validate()) {
        return $v->ValidationError('txShPageEdit');
    }
    $page = $DB->Row('SELECT * FROM `tx_pages` WHERE `page_id`=?', array($_REQUEST['page_id']));
    // Use current build order if not supplied
    if (!is_numeric($_REQUEST['build_order'])) {
        $_REQUEST['build_order'] = $page['build_order'];
    }
    NullIfEmpty($_REQUEST['category_id']);
    // Update page settings
    $DB->Update('UPDATE `tx_pages` SET ' . '`filename`=?, ' . '`page_url`=?, ' . '`category_id`=?, ' . '`build_order`=?, ' . '`locked`=?, ' . '`tags`=? ' . 'WHERE `page_id`=?', array($filename, $page_url, $_REQUEST['category_id'], $_REQUEST['build_order'], intval($_REQUEST['locked']), $_REQUEST['tags'], $_REQUEST['page_id']));
    // Update build orders greater than or equal to the updated page's value
    if ($_REQUEST['build_order'] < $page['build_order']) {
        $DB->Update('UPDATE `tx_pages` SET `build_order`=`build_order`+1 WHERE `page_id`!=?', array($_REQUEST['page_id']));
    } else {
        if ($_REQUEST['build_order'] > $page['build_order']) {
            $DB->Update('UPDATE `tx_pages` SET `build_order`=`build_order`-1 WHERE `page_id`!=?', array($_REQUEST['page_id']));
        }
    }
    $GLOBALS['message'] = 'TGP page successfully updated';
    $GLOBALS['added'] = true;
    RenumberBuildOrder();
    txShPageEdit();
}
Beispiel #2
0
function tlxPageEdit()
{
    global $DB, $C;
    VerifyAdministrator();
    CheckAccessList();
    $v = new Validator();
    $v->Register($_REQUEST['filename'], V_EMPTY, 'The Page URL field must be filled in');
    $v->Register($_REQUEST['filename'], V_CONTAINS, 'For security purposes the Page URL may not contain the .. character sequence', '..');
    $filename = ResolvePath($C['document_root'] . '/' . $_REQUEST['page_url']);
    // See if the same page already exists
    if ($DB->Count('SELECT COUNT(*) FROM `tlx_pages` WHERE `filename`=? AND `page_id`!=?', array($filename, $_REQUEST['page_id']))) {
        $v->SetError('You are changing this ranking page to be the same as an already existing page');
    }
    // Check tags for proper format
    if (!IsEmptyString($_REQUEST['tags'])) {
        $_REQUEST['tags'] = FormatSpaceSeparated($_REQUEST['tags']);
        foreach (explode(' ', $_REQUEST['tags']) as $tag) {
            if (strlen($tag) < 4 || !preg_match('~^[a-z0-9_]+$~i', $tag)) {
                $v->SetError('All page tags must be at least 4 characters in length and contain only letters, numbers, and underscores');
                break;
            }
        }
    }
    if (!$v->Validate()) {
        return $v->ValidationError('tlxShPageEdit');
    }
    $page = $DB->Row('SELECT * FROM `tlx_pages` WHERE `page_id`=?', array($_REQUEST['page_id']));
    // Use current build order if not supplied
    if (!is_numeric($_REQUEST['build_order'])) {
        $_REQUEST['build_order'] = $page['build_order'];
    }
    NullIfEmpty($_REQUEST['category_id']);
    // Update page settings
    $DB->Update('UPDATE `tlx_pages` SET ' . '`filename`=?, ' . '`category_id`=?, ' . '`build_order`=?, ' . '`tags`=? ' . 'WHERE `page_id`=?', array($_REQUEST['filename'], $_REQUEST['category_id'], $_REQUEST['build_order'], $_REQUEST['tags'], $_REQUEST['page_id']));
    // Update build orders greater than or equal to the updated page's value
    if ($_REQUEST['build_order'] < $page['build_order']) {
        $DB->Update('UPDATE `tlx_pages` SET `build_order`=`build_order`+1 WHERE `page_id`!=?', array($_REQUEST['page_id']));
    } else {
        if ($_REQUEST['build_order'] > $page['build_order']) {
            $DB->Update('UPDATE `tlx_pages` SET `build_order`=`build_order`-1 WHERE `page_id`!=?', array($_REQUEST['page_id']));
        }
    }
    $GLOBALS['message'] = 'Ranking page successfully updated';
    $GLOBALS['added'] = true;
    RenumberBuildOrder();
    tlxShPageEdit();
}