Beispiel #1
0
    function nodeAction()
    {
        $node = NodeModel::init();
        //-------------------------------//
        //--------AJAX REQUEST-----------//
        //------------------------------//
        if (@$_GET['ajax_change_modul_position']) {
            if (is_numeric(@$_GET['id_node_ajax']) and is_numeric($_GET['position'])) {
                dibi::query("UPDATE node SET position=%i", $_GET['position'], " WHERE id_node=%i", $_GET['id_node_ajax']);
                $node->invalidateCache();
            }
            exit;
        }
        if (@$_GET['ajax_change_modul_visible']) {
            if (is_numeric(@$_GET['id_node_ajax']) and is_numeric($_GET['modul_visible'])) {
                dibi::query("UPDATE node SET visible=%s", $_GET['modul_visible'], " WHERE id_node=%i", $_GET['id_node_ajax']);
            }
            $node->invalidateCache();
            //      	echo dibi::$sql;
            exit;
        }
        //------SITE MAP pre premiestnenie modulu
        if (isset($_GET['ajax_show_site_map_for_modul'])) {
            $m = new MenuItem();
            $m->doTreeSelectMoveModul(0, 0, $_GET['id_menu_item'], $_GET['id_type_modul']);
            echo '<form action="" method="post">
        		<select name="id_menu_item_for_change">';
            echo $m->doTreeSelectMoveModulText;
            echo '<input type="hidden" name="id_type_modul" value="' . htmlspecialchars($_GET['id_type_modul']) . '" />
		       <input type="hidden" name="id_node" value="' . htmlspecialchars($_GET['id_node']) . '" />
		       <input type="submit" name="changeModulParent" value="Ulož" /> 
      		</form>';
            exit;
        }
        if (isset($_POST['changeModulParent'])) {
            $this->changeModulParent();
            $node->invalidateCache();
            header("Location: ?id_menu_item=" . $_POST['id_menu_item_for_change'] . "&showModulsOnPage=1");
            exit;
        }
        if (isset($_GET['id_menu_item']) and isset($_GET['id_type_modul']) and isset($_GET['id_modul'])) {
            if (!dibi::fetchSingle("SELECT COUNT(*) FROM node WHERE id_menu_item=%i", $_GET['id_menu_item'], " AND id_type_modul=%i", $_GET['id_type_modul'], " AND id_node=%i", $_GET['id_modul'])) {
                header("Location:admin.php");
                exit;
            }
        }
        if (isset($_GET['addnode']) and isset($_GET['id_type_modul']) or isset($_POST['addModulToMenu'])) {
            if (isset($_POST['addModulToMenu'])) {
                $id_type_modul = $_POST['id_type_modul'];
            } else {
                $id_type_modul = $_GET['id_type_modul'];
            }
            $sequence = dibi::fetchSingle("SELECT MAX(sequence) FROM node WHERE id_menu_item=%i", $_GET['id_menu_item']) + 1;
            $session = NEnvironment::getSession('Authentication');
            $config = NEnvironment::getConfig();
            $arr = array('id_user' => NEnvironment::getUser()->getIdentity()->id, 'id_menu_item' => $_GET['id_menu_item'], 'sequence' => $sequence, 'id_type_modul' => $id_type_modul, 'visible' => $config['NODE_VISIBLE']);
            dibi::query("INSERT INTO node ", $arr);
            $this->addModul(dibi::insertId(), $id_type_modul);
            $node->invalidateCache();
        }
        //zmenenie poradia
        if (isset($_GET['modul_id_up']) or isset($_GET['modul_id_down'])) {
            $this->changeOrderNode();
            $node->invalidateCache();
            header("Location: admin.php?id_menu_item=" . $_GET['id_menu_item'] . "&showModulsOnPage=1");
            exit;
        }
        //ak je iba jeden modul, hned sa zobrazi ale iba ak nieje setnuta section a showModulsOnPage
        if (isset($_GET['id_menu_item']) and !isset($_GET['id_type_modul']) and !isset($_GET['section']) and !isset($_GET['showModulsOnPage']) and !isset($_GET['changeMenuItem'])) {
            $l = dibi::fetch("SELECT *, COUNT(*) as node_count FROM node WHERE id_menu_item=%i", $_GET['id_menu_item'], " ORDER BY sequence");
            if ($l['node_count'] == 1) {
                header("Location: admin.php?id_menu_item=" . $_GET['id_menu_item'] . "&id_type_modul=" . $l['id_type_modul'] . "&id_modul=" . $l['id_node']);
                exit;
            }
        }
        //pridanie do premenej activeModul instanciu objektu
        if (isset($_GET['id_type_modul']) and isset($_GET['id_modul'])) {
            $this->activeModul = $this->nodeFactory($_GET['id_type_modul']);
            $this->activeModul->action();
        }
        if (isset($_GET['id_modul_del']) and is_numeric($_GET['id_modul_del'])) {
            $this->deleteNode(NULL, $_GET['id_modul_del']);
            $node->invalidateCache();
            header("Location: admin.php?id_menu_item=" . $_GET['id_menu_item']);
            exit;
        }
    }