public function blacklistAction() { if (!$this->getUser()->isAllowed("emails")) { throw new \Exception("Permission denied, user needs 'emails' permission."); } if ($this->getParam("data")) { $data = \Zend_Json::decode($this->getParam("data")); if (is_array($data)) { foreach ($data as &$value) { $value = trim($value); } } if ($this->getParam("xaction") == "destroy") { $address = Tool\Email\Blacklist::getByAddress($data); $address->delete(); $this->_helper->json(array("success" => true, "data" => array())); } elseif ($this->getParam("xaction") == "update") { $address = Tool\Email\Blacklist::getByAddress($data["address"]); $address->setValues($data); $address->save(); $this->_helper->json(array("data" => $address, "success" => true)); } elseif ($this->getParam("xaction") == "create") { unset($data["id"]); $address = new Tool\Email\Blacklist(); $address->setValues($data); $address->save(); $this->_helper->json(array("data" => $address, "success" => true)); } } else { // get list of routes $list = new Tool\Email\Blacklist\Listing(); $list->setLimit($this->getParam("limit")); $list->setOffset($this->getParam("start")); $sortingSettings = \Pimcore\Admin\Helper\QueryParams::extractSortingSettings($this->getAllParams()); if ($sortingSettings['orderKey']) { $orderKey = $sortingSettings['orderKey']; } if ($sortingSettings['order']) { $order = $sortingSettings['order']; } if ($this->getParam("filter")) { $list->setCondition("`address` LIKE " . $list->quote("%" . $this->getParam("filter") . "%")); } $data = $list->load(); $this->_helper->json(array("success" => true, "data" => $data, "total" => $list->getTotalCount())); } $this->_helper->json(false); }