144 lines
2.7 KiB
PHP
144 lines
2.7 KiB
PHP
<?php
|
|
/**
|
|
* Comment edit panel
|
|
*
|
|
* Type:
|
|
* Name:
|
|
* Date: 21.02.2024
|
|
* Purpose: Provides the option to edit comments
|
|
* Input:
|
|
*
|
|
* @author FlatPress
|
|
*
|
|
*/
|
|
class admin_entry_commedit extends AdminPanelActionValidated {
|
|
|
|
var $validators = array(
|
|
array(
|
|
'name',
|
|
'name',
|
|
'notEmpty',
|
|
false,
|
|
false,
|
|
'trim,stripslashes'
|
|
),
|
|
array(
|
|
'email',
|
|
'email',
|
|
'isEmail',
|
|
true,
|
|
false,
|
|
'trim,stripslashes'
|
|
),
|
|
array(
|
|
'url',
|
|
'url',
|
|
'isURL',
|
|
true,
|
|
false,
|
|
'trim,stripslashes'
|
|
),
|
|
array(
|
|
'content',
|
|
'content',
|
|
'notEmpty',
|
|
false,
|
|
false,
|
|
'stripslashes'
|
|
)
|
|
);
|
|
|
|
var $events = array(
|
|
'save'
|
|
);
|
|
|
|
var $args = array(
|
|
'entry',
|
|
'comment'
|
|
);
|
|
|
|
var $nosuchcomment = false;
|
|
|
|
function commedit_validate() {
|
|
$lerr = & $lang ['admin'] ['entry'] ['commedit'] ['error'];
|
|
$errors = array();
|
|
|
|
// check name
|
|
if (!$name) {
|
|
$errors ['name'] = $lerr ['name'];
|
|
}
|
|
|
|
// check email
|
|
if ($email) {
|
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
|
$errors ['email'] = $lerr ['email'];
|
|
}
|
|
}
|
|
|
|
// check url
|
|
if ($url) {
|
|
if (!filter_var($url, FILTER_VALIDATE_URL)) {
|
|
$errors ['url'] = $lerr ['url'];
|
|
}
|
|
}
|
|
|
|
// check content
|
|
if (!$content) {
|
|
$errors ['content'] = $lerr ['content'];
|
|
}
|
|
|
|
// assign error messages to template
|
|
if ($errors) {
|
|
$smarty->assign('error', $errors);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function setup() {
|
|
$this->nosuchcomment = !comment_exists($_REQUEST ['entry'], $_REQUEST ['comment']);
|
|
$this->smarty->assign('entryid', $_REQUEST ['entry']);
|
|
$this->smarty->assign('id', $_REQUEST ['comment']);
|
|
}
|
|
|
|
function main() {
|
|
global $lang;
|
|
if ($this->nosuchcomment) return PANEL_REDIRECT_DEFAULT;
|
|
|
|
$e = entry_parse($_REQUEST ['entry']);
|
|
if ($e) {
|
|
$this->smarty->assign('entrysubject', $e ['subject']);
|
|
} else return PANEL_REDIRECT_DEFAULT;
|
|
|
|
$comment = comment_parse($_REQUEST ['entry'], $_REQUEST ['comment']);
|
|
if ($comment) {
|
|
$this->smarty->assign('values', $comment);
|
|
$this->smarty->append('values', array('ip_address' => $comment ['ip-address']), true);
|
|
} else return PANEL_REDIRECT_DEFAULT;
|
|
}
|
|
|
|
function onsave($content) {
|
|
if ($this->nosuchcomment) return PANEL_REDIRECT_DEFAULT;
|
|
|
|
$comment = comment_parse($_REQUEST ['entry'], $_REQUEST ['comment']);
|
|
if (isset($comment ['loggedin']))
|
|
$content ['loggedin'] = $comment ['loggedin'];
|
|
$content ['ip-address'] = $comment ['ip-address'];
|
|
$content ['date'] = $comment ['date'];
|
|
$success = comment_save($_REQUEST ['entry'], $content);
|
|
$this->smarty->assign('success', $success ? 1 : -1);
|
|
|
|
if ($success < 0) {
|
|
$this->main();
|
|
return PANEL_NOREDIRECT;
|
|
}
|
|
|
|
return PANEL_REDIRECT_CURRENT;
|
|
}
|
|
|
|
function onerror() {
|
|
$this->main();
|
|
return 0;
|
|
}
|
|
}
|
|
?>
|