public function tagManagementUpdateAction()
{
$this->checkPermission("tag_snippet_management");
$tag = Model\Tool\Tag\Config::getByName($this->getParam("name"));
$data = \Zend_Json::decode($this->getParam("configuration"));
$items = [];
foreach ($data as $key => $value) {
$setter = "set" . ucfirst($key);
if (method_exists($tag, $setter)) {
$tag->{$setter}($value);
}
if (strpos($key, "item.") === 0) {
$cleanKeyParts = explode(".", $key);
$items[$cleanKeyParts[1]][$cleanKeyParts[2]] = $value;
}
}
$tag->resetItems();
foreach ($items as $item) {
$tag->addItem($item);
}
// parameters get/post
$params = [];
for ($i = 0; $i < 5; $i++) {
$params[] = ["name" => $data["params.name" . $i], "value" => $data["params.value" . $i]];
}
$tag->setParams($params);
if ($this->getParam("name") != $data["name"]) {
$tag->setName($this->getParam("name"));
// set the old name again, so that the old file get's deleted
$tag->delete();
// delete the old config / file
$tag->setName($data["name"]);
}
$tag->save();
$this->_helper->json(["success" => true]);
}