private function get_view() { global $Bread_crumb, $LANG, $pages; $pages_config = PagesConfig::load(); //Configuration des authorisations $config_authorizations = $pages_config->get_authorizations(); require_once PATH_TO_ROOT . '/pages/pages_begin.php'; $tpl = new FileTemplate('pages/index.tpl'); $num_pages = PersistenceContext::get_querier()->count(PREFIX . "pages", 'WHERE redirect = 0'); $num_coms = CommentsService::get_number_and_lang_comments('pages', $pages['id']); $tpl->put_all(array('NUM_PAGES' => sprintf($LANG['pages_num_pages'], $num_pages), 'NUM_COMS' => sprintf($LANG['pages_num_coms'], $num_coms, $num_pages > 0 ? $num_coms / $num_pages : 0), 'L_EXPLAIN_PAGES' => $LANG['pages_explain'], 'L_STATS' => $LANG['pages_stats'])); //Liste des dossiers de la racine $root = ''; foreach (PagesCategoriesCache::load()->get_categories() as $key => $cat) { if ($cat['id_parent'] == 0) { //Autorisation particulière ? $special_auth = !empty($cat['auth']); //Vérification de l'autorisation d'éditer la page if ($special_auth && AppContext::get_current_user()->check_auth($cat['auth'], READ_PAGE) || !$special_auth && AppContext::get_current_user()->check_auth($config_authorizations, READ_PAGE)) { $root .= '<li><a href="javascript:open_cat(' . $key . '); show_pages_cat_contents(' . $cat['id_parent'] . ', 0);"><i class="fa fa-folder"></i>' . stripslashes($cat['title']) . '</a></li>'; } } } //Liste des fichiers de la racine $result = PersistenceContext::get_querier()->select("SELECT title, id, encoded_title, auth\r\n\t\t\tFROM " . PREFIX . "pages\r\n\t\t\tWHERE id_cat = 0 AND is_cat = 0\r\n\t\t\tORDER BY is_cat DESC, title ASC"); while ($row = $result->fetch()) { //Autorisation particulière ? $special_auth = !empty($row['auth']); $array_auth = unserialize($row['auth']); //Vérification de l'autorisation d'éditer la page if ($special_auth && AppContext::get_current_user()->check_auth($array_auth, READ_PAGE) || !$special_auth && AppContext::get_current_user()->check_auth($config_authorizations, READ_PAGE)) { $root .= '<li><a href="' . PagesUrlBuilder::get_link_item($row['encoded_title']) . '"><i class="fa fa-file"></i>' . stripslashes($row['title']) . '</a></li>'; } } $result->dispose(); $tpl->put_all(array('TITLE' => $LANG['pages'], 'L_ROOT' => $LANG['pages_root'], 'ROOT_CONTENTS' => $root, 'L_CATS' => $LANG['pages_cats_tree'], 'L_EXPLORER' => $LANG['pages_explorer'], 'SELECTED_CAT' => 0, 'CAT_0' => 'selected', 'CAT_LIST' => '')); $contents = ''; $result = PersistenceContext::get_querier()->select("SELECT c.id, p.title, p.encoded_title\r\n\t\tFROM " . PREFIX . "pages_cats c\r\n\t\tLEFT JOIN " . PREFIX . "pages p ON p.id = c.id_page\r\n\t\tWHERE c.id_parent = 0\r\n\t\tORDER BY p.title ASC"); while ($row = $result->fetch()) { $sub_cats_number = PersistenceContext::get_querier()->count(PREFIX . "pages_cats", 'WHERE id_parent=:id_parent', array('id_parent' => $row['id'])); if ($sub_cats_number > 0) { $tpl->assign_block_vars('list', array('DIRECTORY' => '<li class="sub"><a class="parent" href="javascript:show_pages_cat_contents(' . $row['id'] . ', 0);"><i class="fa fa-plus-square-o" id="img2_' . $row['id'] . '"></i><i class="fa fa-folder" id ="img_' . $row['id'] . '"></i></a><a id="class_' . $row['id'] . '" href="javascript:open_cat(' . $row['id'] . ');">' . stripslashes($row['title']) . '</a><span id="cat_' . $row['id'] . '"></li>')); } else { $tpl->assign_block_vars('list', array('DIRECTORY' => '<li class="sub"><a id="class_' . $row['id'] . '" href="javascript:open_cat(' . $row['id'] . ');"><i class="fa fa-folder"></i>' . stripslashes($row['title']) . '</a><span id="cat_' . $row['id'] . '"></span></li>')); } } $result->dispose(); return $tpl; }
function get_feed_data_struct($idcat = 0, $name = '') { global $LANG; $querier = PersistenceContext::get_querier(); $pages_config = PagesConfig::load(); if (!defined('READ_PAGE')) { require_once PATH_TO_ROOT . '/pages/pages_defines.php'; } load_module_lang('pages'); $data = new FeedData(); $data->set_title($LANG['pages_rss_desc']); $data->set_date(new Date()); $data->set_link(SyndicationUrlBuilder::rss('pages', $idcat)); $data->set_host(HOST); $data->set_desc($LANG['pages_rss_desc']); $data->set_lang($LANG['xml_lang']); $data->set_auth_bit(READ_PAGE); $where_clause = !empty($idcat) ? ' WHERE p.id_cat = :idcat' : ''; $results = $querier->select('SELECT p.* FROM ' . PREFIX . 'pages p ' . $where_clause . ' ORDER BY p.timestamp DESC LIMIT :limit OFFSET 0', array('idcat' => $idcat, 'limit' => 10)); // Generation of the feed's items foreach ($results as $row) { $item = new FeedItem(); $link = new Url(PagesUrlBuilder::get_link_item($row['encoded_title'])); $item->set_title(stripslashes($row['title'])); $item->set_link($link); $item->set_guid($link); $item->set_desc(preg_replace('`\\[page\\](.+)\\[/page\\]`U', '<br /><strong>$1</strong><hr />', FormatingHelper::second_parse($row['contents']))); $item->set_date(new Date($row['timestamp'], Timezone::SERVER_TIMEZONE)); $item->set_auth(empty($row['auth']) ? $pages_config->get_authorizations() : unserialize($row['auth'])); $data->add_item($item); } $results->dispose(); return $data; }
if (AppContext::get_current_user()->check_auth($config_authorizations, EDIT_PAGE)) { $Bread_crumb->add($LANG['pages'], url('pages.php')); } //On renverse ce fil pour le mettre dans le bon ordre d'arborescence $Bread_crumb->reverse(); } elseif ($id_com > 0) { $result = PersistenceContext::get_querier()->select("SELECT id, title, encoded_title, auth, is_cat, id_cat, hits\n\t\tcount_hits, activ_com, contents\n\t\tFROM " . PREFIX . "pages\n\t\tWHERE id = :id", array('id' => $id_com)); $num_rows = $result->get_rows_count(); $page_infos = $result->fetch(); $result->dispose(); define('TITLE', sprintf($LANG['pages_page_com'], stripslashes($page_infos['title']))); $Bread_crumb->add($LANG['pages_com'], PagesUrlBuilder::get_link_item_com($id_com)); $id = $page_infos['id_cat']; while ($id > 0) { $cat = $categories_cache->get_category($id); $Bread_crumb->add(stripslashes($cat['title']), PagesUrlBuilder::get_link_item(Url::encode_rewrite(stripslashes($cat['title'])))); $id = (int) $cat['id_parent']; } if (AppContext::get_current_user()->check_auth($config_authorizations, EDIT_PAGE)) { $Bread_crumb->add($LANG['pages'], url('pages.php')); } $Bread_crumb->reverse(); } else { define('TITLE', $LANG['pages']); $auth_index = AppContext::get_current_user()->check_auth($config_authorizations, EDIT_PAGE); if ($auth_index) { $Bread_crumb->add($LANG['pages'], url('pages.php')); } elseif (!$auth_index) { $error_controller = PHPBoostErrors::user_not_authorized(); DispatchManager::redirect($error_controller); }