private function get_view()
 {
     global $Bread_crumb, $LANG, $encoded_title, $id_article, $article_infos, $id_cat;
     load_module_lang('wiki');
     include_once PATH_TO_ROOT . '/wiki/wiki_functions.php';
     $bread_crumb_key = 'wiki';
     require_once PATH_TO_ROOT . '/wiki/wiki_bread_crumb.php';
     $config = WikiConfig::load();
     $tpl = new FileTemplate('wiki/index.tpl');
     if ($config->get_number_articles_on_index() > 1) {
         $result = PersistenceContext::get_querier()->select("SELECT a.title, a.encoded_title, a.id\r\n\t\t\tFROM " . PREFIX . "wiki_articles a\r\n\t\t\tLEFT JOIN " . PREFIX . "wiki_contents c ON c.id_contents = a.id_contents\r\n\t\t\tWHERE a.redirect = 0\r\n\t\t\tORDER BY c.timestamp DESC\r\n\t\t\tLIMIT :number_articles_on_index OFFSET 0", array('number_articles_on_index' => $config->get_number_articles_on_index()));
         $tpl->assign_block_vars('last_articles', array('C_ARTICLES' => $result->get_rows_count(), 'L_ARTICLES' => $LANG['wiki_last_articles_list']));
         $i = 0;
         while ($row = $result->fetch()) {
             $tpl->assign_block_vars('last_articles.list', array('ARTICLE' => $row['title'], 'TR' => $i > 0 && $i % 2 == 0 ? '</tr><tr>' : '', 'U_ARTICLE' => url('wiki.php?title=' . $row['encoded_title'], $row['encoded_title'])));
             $i++;
         }
         $result->dispose();
         if ($i == 0) {
             $tpl->put_all(array('L_NO_ARTICLE' => '<td class="center" colspan="2">' . $LANG['wiki_no_article'] . '</td>'));
         }
     }
     //Affichage de toutes les catégories si c'est activé
     if ($config->are_categories_displayed_on_index()) {
         $tpl->assign_block_vars('cat_list', array('L_CATS' => $LANG['wiki_cats_list']));
         $i = 0;
         foreach (WikiCategoriesCache::load()->get_categories() as $id => $cat) {
             //Si c'est une catégorie mère
             if ($cat['id_parent'] == 0) {
                 $tpl->assign_block_vars('cat_list.list', array('CAT' => stripslashes($cat['title']), 'U_CAT' => url('wiki.php?title=' . $cat['encoded_title'], $cat['encoded_title'])));
                 $i++;
             }
         }
         if ($i == 0) {
             $tpl->put_all(array('L_NO_CAT' => $LANG['wiki_no_cat']));
         }
     }
     $tpl->put_all(array('TITLE' => $config->get_wiki_name() ? $config->get_wiki_name() : $LANG['wiki'], 'INDEX_TEXT' => $config->get_index_text() ? FormatingHelper::second_parse(wiki_no_rewrite($config->get_index_text())) : $LANG['wiki_empty_index'], 'L_EXPLORER' => $LANG['wiki_explorer'], 'U_EXPLORER' => url('explorer.php')));
     $page_type = 'index';
     include PATH_TO_ROOT . '/wiki/wiki_tools.php';
     $tpl->put('wiki_tools', $tools_tpl);
     return new StringTemplate($tpl->render());
 }
Пример #2
0
$new_id_cat = retrieve(POST, 'id_cat', 0);
$id_cat = $id_cat > 0 ? $id_cat : $new_id_cat;
$preview = !empty($_POST['preview']) ? true : false;
$id_edit_get = retrieve(GET, 'id', 0);
$id_edit = $id_edit > 0 ? $id_edit : $id_edit_get;
require_once '../kernel/header.php';
$error = '';
if (!empty($contents)) {
    include_once '../wiki/wiki_functions.php';
    $menu = '';
    if (preg_match('`[\\-]{2,6}`isU', $contents)) {
        $menu_list = wiki_explode_menu($contents);
        $menu = wiki_display_menu($menu_list);
    }
    if ($preview) {
        $Template->assign_block_vars('preview', array('CONTENTS' => second_parse(wiki_no_rewrite(stripslashes($contents))), 'TITLE' => stripslashes($title)));
        if (!empty($menu)) {
            $Template->assign_block_vars('preview.menu', array('MENU' => $menu));
        }
    } else {
        if ($id_edit > 0) {
            $article_infos = $Sql->query_array(PREFIX . "wiki_articles", "encoded_title", "auth", "WHERE id = '" . $id_edit . "'", __LINE__, __FILE__);
            $general_auth = empty($article_infos['auth']) ? true : false;
            $article_auth = !empty($article_infos['auth']) ? unserialize($article_infos['auth']) : array();
            if (!((!$general_auth || $User->check_auth($_WIKI_CONFIG['auth'], WIKI_EDIT)) && ($general_auth || $User->check_auth($article_auth, WIKI_EDIT)))) {
                $Errorh->handler('e_auth', E_USER_REDIRECT);
            }
            $previous_id_contents = $Sql->query("SELECT id_contents FROM " . PREFIX . "wiki_articles WHERE id = '" . $id_edit . "'", __LINE__, __FILE__);
            $Sql->query_inject("UPDATE " . PREFIX . "wiki_contents SET activ = 0 WHERE id_contents = '" . $previous_id_contents . "'", __LINE__, __FILE__);
            $Sql->query_inject("INSERT INTO " . PREFIX . "wiki_contents (id_article, menu, content, activ, user_id, user_ip, timestamp) VALUES ('" . $id_edit . "', '" . addslashes($menu) . "', '" . $contents . "', 1, " . $User->get_attribute('user_id') . ", '" . USER_IP . "', " . time() . ")", __LINE__, __FILE__);
            $id_contents = $Sql->insert_id("SELECT MAX(id_contents) FROM " . PREFIX . "wiki_contents");
Пример #3
0
 function get_home_page()
 {
     global $Sql, $User, $Template, $Cache, $Bread_crumb, $_WIKI_CONFIG, $_WIKI_CATS, $LANG;
     load_module_lang('wiki');
     include_once '../wiki/wiki_functions.php';
     $bread_crumb_key = 'wiki';
     require_once '../wiki/wiki_bread_crumb.php';
     unset($Template);
     $Template = new Template();
     $Template->set_filenames(array('wiki' => 'wiki/wiki.tpl', 'index' => 'wiki/index.tpl'));
     $Template->assign_vars(array('WIKI_PATH' => $Template->get_module_data_path('wiki')));
     if ($_WIKI_CONFIG['last_articles'] > 1) {
         $result = $Sql->query_while("SELECT a.title, a.encoded_title, a.id\n\t\t\tFROM " . PREFIX . "wiki_articles a\n\t\t\tLEFT JOIN " . PREFIX . "wiki_contents c ON c.id_contents = a.id_contents\n\t\t\tWHERE a.redirect = 0\n\t\t\tORDER BY c.timestamp DESC\n\t\t\tLIMIT 0, " . $_WIKI_CONFIG['last_articles'], __LINE__, __FILE__);
         $articles_number = $Sql->num_rows($result, "SELECT COUNT(*) FROM " . PREFIX . "wiki_articles WHERE encoded_title = '" . $encoded_title . "'", __LINE__, __FILE__);
         $Template->assign_block_vars('last_articles', array('L_ARTICLES' => $LANG['wiki_last_articles_list'], 'RSS' => $articles_number > 0 ? '<a href="{PATH_TO_ROOT}/syndication.php?m=wiki"><img src="../templates/' . get_utheme() . '/images/rss.png" alt="RSS" /></a>' : ''));
         $i = 0;
         while ($row = $Sql->fetch_assoc($result)) {
             $Template->assign_block_vars('last_articles.list', array('ARTICLE' => $row['title'], 'TR' => $i > 0 && $i % 2 == 0 ? '</tr><tr>' : '', 'U_ARTICLE' => url('wiki.php?title=' . $row['encoded_title'], $row['encoded_title'])));
             $i++;
         }
         if ($articles_number == 0) {
             $Template->assign_vars(array('L_NO_ARTICLE' => '<td style="text-align:center;" class="row2">' . $LANG['wiki_no_article'] . '</td>'));
         }
     }
     if ($_WIKI_CONFIG['display_cats'] != 0) {
         $Template->assign_block_vars('cat_list', array('L_CATS' => $LANG['wiki_cats_list']));
         $i = 0;
         foreach ($_WIKI_CATS as $id => $infos) {
             if ($infos['id_parent'] == 0) {
                 $Template->assign_block_vars('cat_list.list', array('CAT' => $infos['name'], 'U_CAT' => url('wiki.php?title=' . url_encode_rewrite($infos['name']), url_encode_rewrite($infos['name']))));
                 $i++;
             }
         }
         if ($i == 0) {
             $Template->assign_vars(array('L_NO_CAT' => $LANG['wiki_no_cat']));
         }
     }
     $Template->assign_vars(array('TITLE' => !empty($_WIKI_CONFIG['wiki_name']) ? $_WIKI_CONFIG['wiki_name'] : $LANG['wiki'], 'INDEX_TEXT' => !empty($_WIKI_CONFIG['index_text']) ? second_parse(wiki_no_rewrite($_WIKI_CONFIG['index_text'])) : $LANG['wiki_empty_index'], 'L_EXPLORER' => $LANG['wiki_explorer'], 'U_EXPLORER' => url('explorer.php'), 'WIKI_PATH' => $Template->get_module_data_path('wiki')));
     $page_type = 'index';
     include '../wiki/wiki_tools.php';
     $tmp = $Template->pparse('wiki', TRUE);
     return $tmp;
 }
Пример #4
0
$error = '';
$tpl = new FileTemplate('wiki/post.tpl');
$captcha = AppContext::get_captcha_service()->get_default_factory();
if (!empty($contents)) {
    include_once '../wiki/wiki_functions.php';
    //On crée le menu des paragraphes et on enregistre le menu
    $menu = '';
    //Si on détecte la syntaxe des menus alors on lance les fonctions, sinon le menu sera vide et non affiché
    if (preg_match('`[\\-]{2,6}`isU', $contents)) {
        $menu_list = wiki_explode_menu($contents);
        //On éclate le menu en tableaux
        $menu = wiki_display_menu($menu_list);
        //On affiche le menu
    }
    if ($preview) {
        $tpl->assign_block_vars('preview', array('CONTENTS' => FormatingHelper::second_parse(wiki_no_rewrite(stripslashes($contents))), 'TITLE' => stripslashes($title)));
        if (!empty($menu)) {
            $tpl->assign_block_vars('preview.menu', array('MENU' => $menu));
        }
    } else {
        if ($id_edit > 0) {
            try {
                $article_infos = PersistenceContext::get_querier()->select_single_row(PREFIX . "wiki_articles", array('encoded_title', 'auth'), 'WHERE id = :id', array('id' => $id_edit));
            } catch (RowNotFoundException $e) {
                $error_controller = PHPBoostErrors::unexisting_page();
                DispatchManager::redirect($error_controller);
            }
            //Autorisations
            $general_auth = empty($article_infos['auth']) ? true : false;
            $article_auth = !empty($article_infos['auth']) ? unserialize($article_infos['auth']) : array();
            if (!((!$general_auth || AppContext::get_current_user()->check_auth($config->get_authorizations(), WIKI_EDIT)) && ($general_auth || AppContext::get_current_user()->check_auth($article_auth, WIKI_EDIT)))) {
Пример #5
0
     	}
     }
     */
     //Cet article comporte un type
     if ($article_infos['defined_status'] != 0) {
         if ($article_infos['defined_status'] < 0 && !empty($article_infos['undefined_status'])) {
             $tpl->assign_block_vars('status', array('ARTICLE_STATUS' => FormatingHelper::second_parse(wiki_no_rewrite($article_infos['undefined_status']))));
         } elseif ($article_infos['defined_status'] > 0 && is_array($LANG['wiki_status_list'][$article_infos['defined_status'] - 1])) {
             $tpl->assign_block_vars('status', array('ARTICLE_STATUS' => $LANG['wiki_status_list'][$article_infos['defined_status'] - 1][1]));
         }
     }
 }
 if (!empty($article_infos['menu'])) {
     $tpl->assign_block_vars('menu', array('MENU' => $article_infos['menu']));
 }
 $tpl->put_all(array('ID' => $article_infos['id'], 'ID_CAT' => $article_infos['id_cat'], 'TITLE' => stripslashes($article_infos['title']), 'CONTENTS' => FormatingHelper::second_parse(wiki_no_rewrite($article_infos['content'])), 'HITS' => $config->is_hits_counter_enabled() && $id_contents == 0 ? sprintf($LANG['wiki_article_hits'], (int) $article_infos['hits']) : '', 'L_SUB_CATS' => $LANG['wiki_subcats'], 'L_SUB_ARTICLES' => $LANG['wiki_subarticles'], 'L_TABLE_OF_CONTENTS' => $LANG['wiki_table_of_contents']));
 if ($article_infos['is_cat'] == 1 && $id_contents == 0) {
     //On liste les articles de la catégorie et ses sous catégories
     $result = PersistenceContext::get_querier()->select("SELECT a.title, a.encoded_title, a.id\n\t\tFROM " . PREFIX . "wiki_articles a\n\t\tLEFT JOIN " . PREFIX . "wiki_contents c ON c.id_contents = a.id_contents\n\t\tWHERE a.id_cat = :id_cat AND a.id != :id AND a.redirect = 0\n\t\tORDER BY a.title", array('id_cat' => $article_infos['id_cat'], 'id' => $id_article));
     $num_articles = $result->get_rows_count();
     $tpl->assign_block_vars('cat', array());
     while ($row = $result->fetch()) {
         $tpl->assign_block_vars('cat.list_art', array('TITLE' => stripslashes($row['title']), 'U_ARTICLE' => url('wiki.php?title=' . $row['encoded_title'], $row['encoded_title'])));
     }
     $result->dispose();
     if ($num_articles == 0) {
         $tpl->assign_block_vars('cat.no_sub_article', array('NO_SUB_ARTICLE' => $LANG['wiki_no_sub_article']));
     }
     $i = 0;
     foreach (WikiCategoriesCache::load()->get_categories() as $key => $cat) {
         if ($cat['id_parent'] == $id_cat) {