Seditio Source
Root |
./othercms/dotclear-2.22/plugins/blogroll/edit.php
<?php
/**
 * @brief blogroll, a plugin for Dotclear 2
 *
 * @package Dotclear
 * @subpackage Plugins
 *
 * @copyright Olivier Meunier & Association Dotclear
 * @copyright GPL-2.0-only
 */
if (!defined('DC_CONTEXT_ADMIN')) {
    return;
}

$id = html::escapeHTML($_REQUEST['id']);

$rs = null;

try {
   
$rs = $blogroll->getLink($id);  // @phpstan-ignore-line
} catch (Exception $e) {
   
$core->error->add($e->getMessage());
}

if (!
$core->error->flag() && $rs->isEmpty()) {
   
$link_title = '';
   
$link_href  = '';
   
$link_desc  = '';
   
$link_lang  = '';
   
$link_xfn   = '';
   
$core->error->add(__('No such link or title'));
} else {
   
$link_title = $rs->link_title;
   
$link_href  = $rs->link_href;
   
$link_desc  = $rs->link_desc;
   
$link_lang  = $rs->link_lang;
   
$link_xfn   = $rs->link_xfn;
}

# Update a link
if (isset($rs) && !$rs->is_cat && !empty($_POST['edit_link'])) {
   
$link_title = html::escapeHTML($_POST['link_title']);
   
$link_href  = html::escapeHTML($_POST['link_href']);
   
$link_desc  = html::escapeHTML($_POST['link_desc']);
   
$link_lang  = html::escapeHTML($_POST['link_lang']);

   
$link_xfn = '';

    if (!empty(
$_POST['identity'])) {
       
$link_xfn .= $_POST['identity'];
    } else {
        if (!empty(
$_POST['friendship'])) {
           
$link_xfn .= ' ' . $_POST['friendship'];
        }
        if (!empty(
$_POST['physical'])) {
           
$link_xfn .= ' met';
        }
        if (!empty(
$_POST['professional'])) {
           
$link_xfn .= ' ' . implode(' ', $_POST['professional']);
        }
        if (!empty(
$_POST['geographical'])) {
           
$link_xfn .= ' ' . $_POST['geographical'];
        }
        if (!empty(
$_POST['family'])) {
           
$link_xfn .= ' ' . $_POST['family'];
        }
        if (!empty(
$_POST['romantic'])) {
           
$link_xfn .= ' ' . implode(' ', $_POST['romantic']);
        }
    }

    try {
       
$blogroll->updateLink($id, $link_title, $link_href, $link_desc, $link_lang, trim((string) $link_xfn));   // @phpstan-ignore-line
       
dcPage::addSuccessNotice(__('Link has been successfully updated'));
       
http::redirect($p_url . '&edit=1&id=' . $id);
    } catch (
Exception $e) {
       
$core->error->add($e->getMessage());
    }
}

# Update a category
if (isset($rs) && $rs->is_cat && !empty($_POST['edit_cat'])) {
   
$link_desc = html::escapeHTML($_POST['link_desc']);

    try {
       
$blogroll->updateCategory($id, $link_desc); // @phpstan-ignore-line
       
dcPage::addSuccessNotice(__('Category has been successfully updated'));
       
http::redirect($p_url . '&edit=1&id=' . $id);
    } catch (
Exception $e) {
       
$core->error->add($e->getMessage());
    }
}

# Languages combo
$links      = $blogroll->getLangs(['order' => 'asc']);  // @phpstan-ignore-line
$lang_combo = dcAdminCombos::getLangsCombo($links, true);

?>
<html>
<head>
  <title>Blogroll</title>
</head>

<body>
<?php
echo dcPage::breadcrumb(
    [
       
html::escapeHTML($core->blog->name) => '',
       
__('Blogroll')                      => $p_url,
    ]
) .
dcPage::notices();
?>

<?php echo '<p><a class="back" href="' . $p_url . '">' . __('Return to blogroll') . '</a></p>'; ?>

<?php
if (isset($rs) && $rs->is_cat) {
    echo
   
'<form action="' . $p_url . '" method="post">' .
   
'<h3>' . __('Edit category') . '</h3>' .

   
'<p><label for="link_desc" class="required classic"><abbr title="' . __('Required field') . '">*</abbr> ' . __('Title:') . '</label> ' .
   
form::field('link_desc', 30, 255, [
       
'default'    => html::escapeHTML($link_desc),
       
'extra_html' => 'required placeholder="' . __('Title') . '" lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"',
    ]) .

   
form::hidden('edit', 1) .
   
form::hidden('id', $id) .
   
$core->formNonce() .
   
'<input type="submit" name="edit_cat" value="' . __('Save') . '"/></p>' .
       
'</form>';
}
if (isset(
$rs) && !$rs->is_cat) {
    echo
   
'<form action="' . $core->adminurl->get('admin.plugin') . '" method="post" class="two-cols fieldset">' .

   
'<div class="col30 first-col">' .
   
'<h3>' . __('Edit link') . '</h3>' .

   
'<p><label for="link_title" class="required"><abbr title="' . __('Required field') . '">*</abbr> ' . __('Title:') . '</label> ' .
   
form::field('link_title', 30, 255, [
       
'default'    => html::escapeHTML($link_title),
       
'extra_html' => 'required placeholder="' . __('Title') . '" lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"',
    ]) .
   
'</p>' .

   
'<p><label for="link_href" class="required"><abbr title="' . __('Required field') . '">*</abbr> ' . __('URL:') . '</label> ' .
   
form::url('link_href', [
       
'size'       => 30,
       
'default'    => html::escapeHTML($link_href),
       
'extra_html' => 'required placeholder="' . __('URL') . '"',
    ]) .
   
'</p>' .

   
'<p><label for="link_desc">' . __('Description:') . '</label> ' .
   
form::field(
       
'link_desc',
       
30,
       
255,
        [
           
'default'    => html::escapeHTML($link_desc),
           
'extra_html' => 'lang="' . $core->auth->getInfo('user_lang') . '" spellcheck="true"',
        ]
    ) .
'</p>' .

   
'<p><label for="link_lang">' . __('Language:') . '</label> ' .
   
form::combo('link_lang', $lang_combo, $link_lang) .
   
'</p>' .

   
'</div>' .

   
# XFN nightmare
   
'<div class="col70 last-col">' .
   
'<h3>' . __('XFN information') . '</h3>' .
   
'<p class="clear form-note">' . __('More information on <a href="https://en.wikipedia.org/wiki/XHTML_Friends_Network">Wikipedia</a> website') . '</p>' .

   
'<div class="table-outer">' .
   
'<table class="noborder">' .

   
'<tr class="line">' .
   
'<th>' . __('_xfn_Me') . '</th>' .
   
'<td><p>' . '<label class="classic">' .
   
form::checkbox(['identity'], 'me', ($link_xfn == 'me')) . ' ' .
   
__('_xfn_Another link for myself') . '</label></p></td>' .
   
'</tr>' .

   
'<tr class="line">' .
   
'<th>' . __('_xfn_Friendship') . '</th>' .
   
'<td><p>' .
   
'<label class="classic">' . form::radio(
        [
'friendship'],
       
'contact',
       
strpos($link_xfn, 'contact') !== false
   
) . __('_xfn_Contact') . '</label> ' .
   
'<label class="classic">' . form::radio(
        [
'friendship'],
       
'acquaintance',
       
strpos($link_xfn, 'acquaintance') !== false
   
) . __('_xfn_Acquaintance') . '</label> ' .
   
'<label class="classic">' . form::radio(
        [
'friendship'],
       
'friend',
       
strpos($link_xfn, 'friend') !== false
   
) . __('_xfn_Friend') . '</label> ' .
   
'<label class="classic">' . form::radio(['friendship'], '') . __('None') . '</label>' .
   
'</p></td>' .
   
'</tr>' .

   
'<tr class="line">' .
   
'<th>' . __('_xfn_Physical') . '</th>' .
   
'<td><p>' .
   
'<label class="classic">' . form::checkbox(
        [
'physical'],
       
'met',
       
strpos($link_xfn, 'met') !== false
   
) . __('_xfn_Met') . '</label>' .
   
'</p></td>' .
   
'</tr>' .

   
'<tr class="line">' .
   
'<th>' . __('_xfn_Professional') . '</th>' .
   
'<td><p>' .
   
'<label class="classic">' . form::checkbox(
        [
'professional[]'],
       
'co-worker',
       
strpos($link_xfn, 'co-worker') !== false
   
) . __('_xfn_Co-worker') . '</label> ' .
   
'<label class="classic">' . form::checkbox(
        [
'professional[]'],
       
'colleague',
       
strpos($link_xfn, 'colleague') !== false
   
) . __('_xfn_Colleague') . '</label>' .
   
'</p></td>' .
   
'</tr>' .

   
'<tr class="line">' .
   
'<th>' . __('_xfn_Geographical') . '</th>' .
   
'<td><p>' .
   
'<label class="classic">' . form::radio(
        [
'geographical'],
       
'co-resident',
       
strpos($link_xfn, 'co-resident') !== false
   
) . __('_xfn_Co-resident') . '</label> ' .
   
'<label class="classic">' . form::radio(
        [
'geographical'],
       
'neighbor',
       
strpos($link_xfn, 'neighbor') !== false
   
) . __('_xfn_Neighbor') . '</label> ' .
   
'<label class="classic">' . form::radio(['geographical'], '') . __('None') . '</label>' .
   
'</p></td>' .
   
'</tr>' .

   
'<tr class="line">' .
   
'<th>' . __('_xfn_Family') . '</th>' .
   
'<td><p>' .
   
'<label class="classic">' . form::radio(
        [
'family'],
       
'child',
       
strpos($link_xfn, 'child') !== false
   
) . __('_xfn_Child') . '</label> ' .
   
'<label class="classic">' . form::radio(
        [
'family'],
       
'parent',
       
strpos($link_xfn, 'parent') !== false
   
) . __('_xfn_Parent') . '</label> ' .
   
'<label class="classic">' . form::radio(
        [
'family'],
       
'sibling',
       
strpos($link_xfn, 'sibling') !== false
   
) . __('_xfn_Sibling') . '</label> ' .
   
'<label class="classic">' . form::radio(
        [
'family'],
       
'spouse',
       
strpos($link_xfn, 'spouse') !== false
   
) . __('_xfn_Spouse') . '</label> ' .
   
'<label class="classic">' . form::radio(
        [
'family'],
       
'kin',
       
strpos($link_xfn, 'kin') !== false
   
) . __('_xfn_Kin') . '</label> ' .
   
'<label class="classic">' . form::radio(['family'], '') . __('None') . '</label>' .
   
'</p></td>' .
   
'</tr>' .

   
'<tr class="line">' .
   
'<th>' . __('_xfn_Romantic') . '</th>' .
   
'<td><p>' .
   
'<label class="classic">' . form::checkbox(
        [
'romantic[]'],
       
'muse',
       
strpos($link_xfn, 'muse') !== false
   
) . __('_xfn_Muse') . '</label> ' .
   
'<label class="classic">' . form::checkbox(
        [
'romantic[]'],
       
'crush',
       
strpos($link_xfn, 'crush') !== false
   
) . __('_xfn_Crush') . '</label> ' .
   
'<label class="classic">' . form::checkbox(
        [
'romantic[]'],
       
'date',
       
strpos($link_xfn, 'date') !== false
   
) . __('_xfn_Date') . '</label> ' .
   
'<label class="classic">' . form::checkbox(
        [
'romantic[]'],
       
'sweetheart',
       
strpos($link_xfn, 'sweetheart') !== false
   
) . __('_xfn_Sweetheart') . '</label> ' .
   
'</p></td>' .
   
'</tr>' .
   
'</table></div>' .

   
'</div>' .
   
'<p class="clear">' . form::hidden('p', 'blogroll') .
   
form::hidden('edit', 1) .
   
form::hidden('id', $id) .
   
$core->formNonce() .
   
'<input type="submit" name="edit_link" value="' . __('Save') . '"/></p>' .

       
'</form>';
}
?>
</body>
</html>