Файл: system/classes/comments.php
Строк: 90
<?php
/**********************************
* @package: PerfCMS *
* @year: 2012 *
* @author: Artas *
* @link: http://perfcms.ru *
**********************************/
class Comments {
protected $module;
protected $module_id;
protected $params;
protected $ret;
protected $mod;
public function __construct($module = '', $module_id = '', $params = '', $ret='', $mod='') {
if($module != '' && $module_id != '') {
$this->module = $module;
$this->module_id = abs(intval($module_id));
$this->params = $params;
$this->ret = $ret;
$this->mod = $mod;
}
else {
echo "<b>Undefined Comments module or comments parameter id!</b>n<br/>
Change string $module and $module_idn";
}
}
public function view() {
global $db;
global $user;
global $ames;
global $start;
global $lang;
global $tpl;
global $settings;
$comments_r = $db->query("SELECT * FROM `". $this->module ."_comms` WHERE `". $this->module ."_id` = '".$this->module_id ."' ". ($this->params != "" ? $this->params : NULL) ."")->rowCount();
$pages = new Paginator($comments_r, $ames);
if($comments_r == 0) {
echo $tpl->div('menu', $lang->word('no_posts'));
}
else {
$comments_q = $db->query("SELECT * FROM `". $this->module ."_comms` WHERE `". $this->module ."_id` = '".$this->module_id ."' ". ($this->params != "" ? $this->params : NULL) ." ORDER BY time DESC LIMIT $start, $ames");
while($comments = $comments_q->fetch()) {
echo '<div class="post">'. nick($comments['user_id']) . ' <span style="float:right">'.($comments['user_id'] != $user['id'] && $user['id'] != $comments['user_id'] && $commentst['closed'] == 0 ? '<a href="/'.$this->module.'/'.(isset($user) && $settings['fast_mess'] == 'yes' ? 'comments/' : 'add_comment/'). $comments['comments_id'] .'?'. $this->module .'_id='.$this->module_id.'&reply_to='.tnick($comments['user_id']).'" title="'. $lang->word('reply') .'">'.img('reply_11.png').'</a>': NULL) .' '.($user['level'] >=5 || $comments['user_id'] == $user['id'] ? '<a href="/'. $this->module .'/delete_comment/'. abs(intval($_GET[$this->module .'_id'])) .'/?post_id='. $comments['id'] .'" title="'. $lang->word('delete') .'">'. img('delete_11.png') .'</a> <a href="?act=edit&id='. $comments['id'] .'" title="'. $lang->word('edit') .'">'. img('edit_11.png') .'</a>' : NULL) .'</span><br/>
'. output($comments['text']) .'<br/>
<small>('.rtime($comments['time']).')</small></div>';
}
$pages->view('/'. $this->module .'/'. abs(intval($_GET[$this->module .'_id'])) .'/comments/?');
}
if($settings['fast_mess'] == 'yes') {
$tpl->div('post', '<form action="/'.$this->module.'/add_comment/?act=create&'. $this->module .'_id='. $this->module_id .'" method="post">
<textarea name="text" rows="5" cols="26">'.(isset($_GET['reply_to']) ? '[b]'.input($_GET['reply_to']).'[/b], ' : NULL).'</textarea>
<br/>
[ <a href="/pages/smiles.php">'. $lang->word('smiles') .'</a> | <a href="/pages/tags.php">'. $lang->word('tags') .'</a> ]<br/><input type="submit" name="create" value="'. $lang->word('send') .'" /><br/>
</form>');
}
}
public function add($text) {
global $db;
global $user;
if(!empty($text) && !empty($this->module_id)) {
$text = substr(input($text), 0, 3000);
$module_id = abs(intval($this->module_id));
if($db->query("SELECT * FROM `". $this->module ."` WHERE `id` = '". $module_id ."' LIMIT 1")->rowCount() != 0) {
$db->query("INSERT INTO `". (!empty($this->ret) ? $this->ret ."_comms`":$this->module."_comms`")." (`". (!empty($this->ret) ? $this->ret ."_id`":$this->module."_id`").", `text`, `time`, `user_id`) VALUES('".$module_id ."', '". $text ."', '". time() ."', '". $user['id'] ."')");
// print_r($db->errorInfo());
if(!empty($this->ret)) { $this->module = $this->ret; }
header("Location: /". $this->module ."/".$module_id ."/comments");
} else {
header("Location: /". $this->module ."/".$module_id ."");
}
} else {
header("Location: /". $this->module ."/".$module_id ."");
}
}
public function delete($post_ids) {
global $db;
$post_id = abs(intval($post_ids));
if(!empty($this->ret)) { $this->module = $this->ret; }
$db->query("DELETE FROM `".$this->module."_comms` WHERE `id` = '". $post_id ."'");
// print_r($db->errorInfo());
header('Location: /'. $this->module .'/'. $this->module_id .'/comments/');
}
}