1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
<?php
class CommentsController extends ModulesController {
var $helpers = array('BeTree', 'BeToolbar');
var $components = array('BeTree', 'BeLangText', 'BeSecurity');
var $uses = array('Comment');
protected $moduleName = 'comments';
public function index($id = null, $order = "", $dir = true, $page = 1, $dim = 20) {
$conf = Configure::getInstance() ;
$filter["object_type_id"] = $this->getModuleObjectTypes("comments");
$filter["ref_object_details"] = "Comment";
$filter["Comment.email"] = (!empty($this->passedArgs["email"]))? $this->passedArgs["email"] : "";
if (!empty($this->passedArgs["ip_created"]))
$filter["ip_created"] = $this->passedArgs["ip_created"];
$this->paginatedList($id, $filter, $order, $dir, $page, $dim);
}
public function view($id = null) {
if($id != null) {
$beobj = ClassRegistry::init('BEObject');
$ot = $beobj->findObjectTypeId($id);
$o_types = $this->getModuleObjectTypes("comments");
if(in_array($ot,$o_types)) {
$modelClass = $this->loadModelByObjectTypeId($ot);
$this->viewObject($modelClass, $id);
}
$bannedIP = ClassRegistry::init("BannedIp");
if($bannedIP->isBanned($this->viewVars['object']['ip_created'])) {
$this->set('banned', true);
}
}
}
public function save() {
$this->checkWriteModulePermission();
if(empty($this->data))
throw new BeditaException( __("No data", true));
$new = (empty($this->data['id'])) ? true : false ;
$this->Transaction->begin() ;
if(!$this->Comment->save($this->data)) {
throw new BeditaException(__("Error saving comment", true), $this->Comment->validationErrors);
}
$this->Transaction->commit() ;
$this->userInfoMessage(__("Comment saved", true)." - ".$this->data["title"]);
$this->eventInfo("comment [". $this->data["title"]."] saved");
}
public function banIp() {
$this->checkWriteModulePermission();
if(empty($this->data))
throw new BeditaException( __("No data", true));
$ip = $this->data["ip_to_ban"];
$bannedIp = ClassRegistry::init("BannedIp");
$bannedIp->ban($ip, $this->data["ban_status"]);
if($this->data["ban_status"] === "ban") {
$this->userInfoMessage(__("IP banned", true)." - ".$ip);
$this->eventInfo("IP [". $ip."] banned");
} else {
$this->userInfoMessage(__("IP accepted", true)." - ".$ip);
$this->eventInfo("IP [". $ip."] accepted");
}
}
public function delete() {
$this->checkWriteModulePermission();
$objectsListDeleted = $this->deleteObjects("Comment");
$this->userInfoMessage(__("Comments deleted", true) . " - " . $objectsListDeleted);
$this->eventInfo("Comments $objectsListDeleted deleted");
}
public function deleteSelected() {
$this->checkWriteModulePermission();
$objectsListDeleted = $this->deleteObjects("Comment");
$this->userInfoMessage(__("Comments deleted", true) . " - " . $objectsListDeleted);
$this->eventInfo("Comments $objectsListDeleted deleted");
}
protected function forward($action, $result) {
$moduleRedirect = array(
'banIp' => array(
'OK' => "/comments/view/{$this->data['id']}",
'ERROR' => '/comments/view'
)
);
return $this->moduleForward($action, $result, $moduleRedirect);
}
}