Пример #1
0
function performEditLink($xLinkIn = '')
{
    global $editErrMsg, $razorArray;
    if ($xLinkIn == '') {
        $slab = $_GET['slab'];
    } else {
        $slab = $xLinkIn;
    }
    if (!in_array($slab, $razorArray['slabs'])) {
        MsgBox(lt('Invalid name'), 'redbox');
        return;
    }
    $addtErrMsg = array();
    $catlist = $razorArray['links_cats'];
    // get form signature //
    $random = false;
    if (isset($_POST['random'])) {
        $randomV = htmlspecialchars(stripslashes($_POST['random']), ENT_QUOTES);
        $randomVC = htmlspecialchars(stripslashes($_SESSION['random']), ENT_QUOTES);
        if ($randomV == $randomVC) {
            $random = true;
        }
    }
    // process form data if clicked //
    if (isset($_POST['save']) && $xLinkIn == '' && $random) {
        $newp = new SLAB();
        $newp->loadSlab($slab);
        $oldTitle = $newp->title;
        $oldSlab = $slab;
        $newSlab = cleanSlabTitle($_POST['title'], $newp->slabId);
        $externalLink = stripslashes($_POST['externallink']);
        $title = '';
        if (isset($_POST['title'])) {
            $title = stripslashes($_POST['title']);
        }
        if ($title == '') {
            $addtErrMsg[] = lt('Title cannot be empty');
        } else {
            $newp->catReset();
            foreach ($catlist as $cat => $cc) {
                if (isset($_POST['check_' . $cat])) {
                    $newp->addToCat($cat);
                }
            }
            $renameErr = false;
            // Fix for slab title renaming error (thanks to sguy) //
            if ($newSlab != $oldSlab || $title != $oldTitle) {
                if ($title != $oldTitle && in_array($title, $razorArray['titles'])) {
                    $addtErrMsg[] = lt('Cannot Rename Title, content with similar title already exists');
                    $renameErr = true;
                } else {
                    if ($newSlab != $oldSlab && in_array($newSlab, $razorArray['slabs'])) {
                        $addtErrMsg[] = lt('Cannot Rename Title, content with similar title already exists');
                        $renameErr = true;
                    } else {
                        $slab = $newSlab;
                    }
                }
                if (!$renameErr) {
                    $newp->editTitle($title);
                    unset($razorArray['ext_links'][$oldSlab]);
                }
            }
            // end fix //
            if (!$renameErr) {
                $razorArray['ext_links'][$slab] = $externalLink;
                if (isset($_POST['new-win'])) {
                    if ($_POST['new-win'] == 'show') {
                        $razorArray['ext_link_win'][$slab] = true;
                    } else {
                        if (isset($razorArray['ext_link_win'][$slab])) {
                            unset($razorArray['ext_link_win'][$slab]);
                        }
                    }
                } else {
                    if (isset($razorArray['ext_link_win'][$slab])) {
                        unset($razorArray['ext_link_win'][$slab]);
                    }
                }
            }
        }
    }
    // end //
    // output message if failed or save changes if worked //
    if (count($addtErrMsg) != 0) {
        $em = '';
        foreach ($addtErrMsg as $msg) {
            $em .= "<p>{$msg}</p>";
        }
        MsgBox(lt('Errors Occured') . $em, 'redbox');
    } elseif (isset($newp) && count($addtErrMsg) == 0) {
        BsocketB('admin-xpage-info-input', array($slab));
        $newp->commitChanges();
        saveRazorArray();
        $m = lt('Link Edited Successfully') . '<br />';
        $m .= lt('Title') . " <b>" . $title . '</b><br />';
        $m .= lt('XLink Edited') . " <b>" . $externalLink . "</b><br />";
        MsgBox($m, 'greenbox');
    }
    // end //
    // filter categories //
    $filteredCats = array();
    foreach ($razorArray['links_cats'] as $linksCats => $contents) {
        if ($linksCats != $razorArray['settings']['info-bar-cat']) {
            $filteredCats[$linksCats] = $linksCats;
        }
    }
    // end //
    // set up form data //
    $ep = new SLAB();
    $ep->loadSlab($slab);
    $externalLink = $razorArray['ext_links'][$slab];
    $title = $ep->title;
    $formAction = "?action=editextlink&slab={$slab}";
    $submitButton = lt('Edit Link');
    $pageTitleLabel = lt('External Link Title');
    $externalLinkTitle = lt('External Link');
    $urlLable = lt('URL');
    if (isset($razorArray['ext_link_win'])) {
        if (in_array($slab, $razorArray['ext_link_win'])) {
            if ($razorArray['ext_link_win'][$slab]) {
                $nwchecked = 'checked';
            }
        }
    }
    $newWinLabel = lt('Display in New Window');
    $newWinChkbox = "<input type='checkbox' name='new-win' value='show' {$nwchecked}>";
    $addnewpageLabel = lt('External Link Details');
    $chkboxs = checkBoxList($filteredCats, $ep->cats);
    $catsLabel = lt('Categories');
    $contentManager = lt('Content Manager');
    $editContent = lt('Edit External Link');
    // end //
    // sockets for extra ouput and add function //
    $extraInfo;
    BsocketB('admin-xlink-info-output', array(&$extraInfo));
    $addFunction;
    BsocketB('admin-add-link-function', array(&$addFunction, &$content));
    // end //
    // generate random signature for form //
    $random = rand();
    $_SESSION['random'] = $random;
    // output form for data input //Search...
    $te[1] = <<<TET
            <h1>{$editContent} {$ep->title}</h1>
            <div class='contentwh'>
            <form action='{$formAction}' method=post class='pagemod_form'>
            <input type='hidden' name='random' value='{$random}'>
                <h3>{$addnewpageLabel}</h3>
                {$extraInfo}
                <table class='tableEditItem'>
                    <tr class='tableFooter'><td class='twenty'></td><td class='auto'></td></tr>
                    <tr>
                        <td>{$pageTitleLabel}</td>
                        <td><input type='text' value='{$title}' name='title'></td>
                    </tr>
                    <tr>
                        <td>{$catsLabel}</td>
                        <td>{$chkboxs}</td>
                    </tr>
                    <tr>
                        <td>{$newWinLabel}</td>
                        <td>{$newWinChkbox}</td>
                    </tr>
                    <tr class='tableFooter'><td></td><td></td></tr>
                </table>
                <h3>{$externalLinkTitle}</h3>
                <table class='tableEditItem'>
                    <tr class='tableFooter'><td class='twenty'></td><td></td></tr>
        {$addFunction}
TET;
    $te[2] = "</tr><td>{$urlLable}</td><td>http:// <input type='externallink' value='{$externalLink}' name='externallink'></td></tr>";
    $te[3] = <<<TET
                    <tr class='tableFooter'><td></td><td></td></tr>
                </table>
                <input id='button' type='submit' value='{$submitButton}' name='save'>
            </form>
            </div>
TET;
    $te[4] = $content;
    echo $te[1];
    echo $te[2];
    echo $te[3];
    // end //
}