Admin_SettingsController::tagManagementUpdateAction PHP Метод

tagManagementUpdateAction() публичный Метод

    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]);
    }