Example #1
0
            if (!AppContext::get_current_user()->check_auth($config_authorizations, EDIT_PAGE)) {
                AppContext::get_response()->redirect(HOST . DIR . url('/pages/pages.php?error=e_auth', '', '&'));
            }
            $encoded_title = Url::encode_rewrite($title);
            $is_already_page = PersistenceContext::get_querier()->count(PREFIX . "pages", 'WHERE encoded_title=:encoded_title', array('encoded_title' => $encoded_title));
            //Si l'article n'existe pas déjà, on enregistre
            if ($is_already_page == 0) {
                $result = PersistenceContext::get_querier()->insert(PREFIX . 'pages', array('title' => $title, 'encoded_title' => $encoded_title, 'contents' => pages_parse($contents), 'user_id' => AppContext::get_current_user()->get_id(), 'count_hits' => $count_hits, 'activ_com' => $enable_com, 'timestamp' => time(), 'auth' => $page_auth, 'is_cat' => $is_cat, 'id_cat' => $id_cat, 'display_print_link' => $display_print_link));
                //Si c'est une catégorie
                if ($is_cat > 0) {
                    $last_id_page = $result->get_last_inserted_id();
                    $result = PersistenceContext::get_querier()->insert(PREFIX . 'pages_cats', array('id_parent' => $id_cat, 'id_page' => $last_id_page));
                    $last_id_pages_cat = $result->get_last_inserted_id();
                    PersistenceContext::get_querier()->update(PREFIX . 'pages', array('id_cat' => $last_id_pages_cat), 'WHERE id = :id', array('id' => $last_id_page));
                    //Régénération du cache
                    PagesCategoriesCache::invalidate();
                }
                //On redirige vers la page mise à jour
                AppContext::get_response()->redirect('/pages/' . url('pages.php?title=' . $encoded_title, $encoded_title, '&'));
            } else {
                $error = 'page_already_exists';
            }
        }
    } else {
        $error = 'preview';
    }
} elseif ($del_article > 0) {
    //Vérification de la validité du jeton
    AppContext::get_session()->csrf_get_protect();
    try {
        $page_infos = PersistenceContext::get_querier()->select_single_row(PREFIX . 'pages', array('id', 'title', 'encoded_title', 'contents', 'auth', 'count_hits', 'activ_com', 'id_cat', 'is_cat', 'display_print_link'), 'WHERE id = :id', array('id' => $del_article));