示例#1
0
function saveEdit()
{
    global $db, $util, $xoopsUser;
    foreach ($_POST as $k => $v) {
        ${$k} = $v;
    }
    if (!$util->validateToken()) {
        redirectMsg('edits.php?op=edit&id=' . $id, _AS_AH_SESSINVALID, 1);
        die;
    }
    if ($id <= 0) {
        redirectMsg('./edits.php', _AS_AH_NOID, 1);
        die;
    }
    $edit = new AHEdit($id);
    if ($edit->isNew()) {
        redirectMsg('./edits.php', _AS_AH_NOTEXISTS, 1);
        die;
    }
    $sec = new AHSection($edit->section());
    if ($sec->isNew()) {
        redirectMsg('./edits.php', _AS_AH_NOTEXISTSSEC, 1);
        die;
    }
    //Comprueba que el título de la sección no exista
    $sql = "SELECT COUNT(*) FROM " . $db->prefix('pa_sections') . " WHERE title='{$title}' AND id_res='" . $sec->resource() . "' AND id_sec<>'" . $sec->id() . "'";
    list($num) = $db->fetchRow($db->queryF($sql));
    if ($num > 0) {
        redirectMsg('./edits.php?op=edit&id=' . $edit->id(), _AS_AH_ERRTITLE, 1);
        die;
    }
    //Genera $nameid Nombre identificador
    $found = false;
    $i = 0;
    do {
        $nameid = $util->sweetstring($title) . ($found ? $i : '');
        $sql = "SELECT COUNT(*) FROM " . $db->prefix('pa_sections') . " WHERE nameid = '{$nameid}'";
        list($num) = $db->fetchRow($db->queryF($sql));
        if ($num > 0) {
            $found = true;
            $i++;
        } else {
            $found = false;
        }
    } while ($found == true);
    $sec->setTitle($title);
    $sec->setContent($content);
    $sec->setOrder($order);
    $sec->setNameId($nameid);
    $sec->setParent($parent);
    $sec->setVar('dohtml', isset($dohtml) ? 1 : 0);
    $sec->setVar('doxcode', isset($doxcode) ? 1 : 0);
    $sec->setVar('dobr', isset($dobr) ? 1 : 0);
    $sec->setVar('dosmiley', isset($dosmiley) ? 1 : 0);
    $sec->setVar('doimage', isset($dosmiley) ? 1 : 0);
    if (!isset($uid)) {
        $sec->setUid($xoopsUser->uid());
        $sec->setUname($xoopsUser->uname());
    } else {
        $xu = new XoopsUser($uid);
        if ($xu->isNew()) {
            $sec->setUid($xoopsUser->uid());
            $sec->setUname($xoopsUser->uname());
        } else {
            $sec->setUid($uid);
            $sec->setUname($xu->uname());
        }
    }
    $sec->setModified(time());
    if (!$sec->save()) {
        redirectMsg('edits.php', _AS_AH_DBERROR . '<br />' . $sec->errors(), 1);
        die;
    }
    $edit->delete();
    redirectMsg('edits.php', _AS_AH_DBOK, 0);
}