public static function addNode($typeModel, $type, $tree, $nodeTitle, $nodeName, $saveData, $errSql = false) { if (empty($nodeName) || empty($nodeTitle)) { return false; } $nodeId = K_Tree::add($tree, $type, strtolower(preg_replace("/[^a-z0-9-]/i", "", K_String::rus2lat(preg_replace('/\\s+/', '-', trim($nodeName))))), trim($nodeTitle), 1, 0); if ($nodeId) { $saveData['type_' . $type . '_id'] = $nodeId; K_Db_Adapter::$defaultAdapter->lastQueryError = false; $typeModel->save($saveData); // echo K_Db_Adapter::$defaultAdapter->lastSqlQuery; // K_cli::nbr(); if (K_Db_Adapter::$defaultAdapter->lastQueryError) { if ($errSql) { echo K_Db_Adapter::$defaultAdapter->lastSqlQuery; } K_Tree::delete($nodeId); } else { return $nodeId; } } return false; }
$nodeId = (int) $this->getParam('id'); $node = K_Tree::getNode($nodeId); if ($node['tree_bloked'] == '1' || $nodeId == '1') { echo 'Этот элемент заблокирован! <script type="text/javascript"> enableTree(); $.jstree._reference(\'#tree\').set_text( $(\'#node_{$nodeId}\') ,"{$updateValues[\'tree_title\']}"); $(".node_information-{$nodeId}").find("b").text("{$newTreeLink}"); </script>'; return; } $treeTable = new K_Tree_Model(); $updateValues = array(); if (isset($_POST['tree_title']) && !empty($_POST['tree_title'])) { $updateValues['tree_title'] = $_POST['tree_title']; } if (isset($_POST['tree_name']) && !empty($_POST['tree_name'])) { $updateValues['tree_name'] = preg_replace("/[^a-z0-9,-]/i", "", $_POST['tree_name']); $updateValues['tree_title'] = preg_replace("/[\"']/i", "", $_POST['tree_title']); if (strlen($updateValues['tree_name']) < 1) { throw new Exception('Название элемента не соответствует'); } $nodeData = K_Tree::getNode($nodeId); $partsOfLink = explode('/', substr($nodeData['tree_link'], 0, -1)); $newTreeLink = $nodeData['tree_link']; if ($partsOfLink) { $partsOfLink[sizeof($partsOfLink) - 1] = $updateValues['tree_name']; $newTreeLink = implode('/', $partsOfLink) . '/'; } $query = new K_Db_Query(); $query->q('UPDATE `tree` SET `tree_link` = CONCAT(REPLACE(LEFT(tree_link, ' . strlen($nodeData['tree_link']) . '), "' . $nodeData['tree_link'] . '", "' . $newTreeLink . '"), SUBSTRING(tree_link, ' . (strlen($nodeData['tree_link']) + 1) . ')) WHERE `tree_lkey`>=' . $nodeData['tree_lkey'] . ' AND `tree_rkey`<=' . $nodeData['tree_rkey']); } $treeTable->update($updateValues, '`tree_id` = ' . $nodeId); echo <<<HTML \t\tЭлемент успешно обновлён! <script type="text/javascript">\t \t\t enableTree(); \$.jstree._reference('#tree').set_text( \$('#node_{$nodeId}') ,"{$updateValues['tree_title']}"); \t//\t\$("#tree.node_{$nodeId}").find(".title:first").text("{$updateValues['tree_title']}"); \t\t\t\$(".node_information-{$nodeId}").find("b").text("{$newTreeLink}"); </script> HTML; } public function updateseoAction() { $this->disableRender = true; $nodeId = (int) $this->getParam('id'); $data = array('tree_meta_title' => trim($_POST['title']), 'tree_meta_description' => trim($_POST['description']), 'tree_meta_keywords' => trim($_POST['keywords']), 'tree_meta_canonical' => trim($_POST['canonical'])); $treeTable = new K_Tree_Model(); $treeTable->update($data, '`tree_id` = ' . $nodeId); echo 'Сео данные успешно обновлены!