[PBTV4.0] Créer une page index avec l'édito + les flux rss

Introduction:



Tout comme le tutoriel fait pour la V3, nous l'avons porté pour ceux utilisant la Version 4.0 de PHPBoost

1) Il est toujours basé sur le module news pour récupérer le css et donc la mise en forme.
2) On utilise un fichier php + un fichier edito.tpl
3) la suppression des colones de menus gauche & droit.
* Pour avoir de nouveau les colonnes: commentez les en début de ligne avec deux "slash" = //


Le visuel





Commençons ..



Ouvrez un document texte ou vous allez copier/coller le code ci-dessous, et que vous nommerez "index.php". A la racine de votre PBt, le fichier original, sera renommé : "old-index.php" ( fichier sauvegardé).

Si les fonctions RSS ne servent pas il suffit de les commenter, ou de les supprimer du fichier php, et de ne pas les utiliser en tpl.

Code PHP :
<?php
//Licence
/*##################################################
* index.php
* -------------------
*
* Date :  04/12/2014
* Auteur: Swan / Saturnin / EDN
* Site: http://easy-design.net/
*
###################################################
* Index personnalisé pour la V4.0 
* ATTENTION Ne pas utiliser avec la 4.1
* [PBTV4.0] Créer une page index avec l'édito + les flux rss
###################################################*/
define('PATH_TO_ROOT', '.');
//Début du chargement de l'environnement
include_once('./kernel/begin.php');
// Enlève les deux colonnes de menus gauche & droit. 
// Pour avoir de nouveau les colonnes: commentez les en début de ligne avec deux "slash" = //
define('NO_LEFT_COLUMN', true);
define('NO_RIGHT_COLUMN', true);
//Chargement d'un fichier css, ici le fichier css du module news
define('ALTERNATIVE_CSS', 'news');
//Titre de la page, ici Accueil
define('TITLE', 'Edito');
 //Chargement de l'environnement ( header )
require_once('./kernel/header.php');
 
//Chargement de la langue du module.
load_module_lang('news'); 
//*********************************************
 
function get_home_page()
{
global $User, $Sql, $Cache, $Bread_crumb, $CONFIG_NEWS, $LANG,$DOWNLOAD_LANG, $NEWS_LANG, $NEWS_CONFIG, $NEWS_CAT, $Session; 
require_once('./news/news_begin.php');
// Name of syndication file.
//define('./cache/syndication/news_master_0.php');
defined('FEED_URL') or define('FEED_URL', SyndicationUrlBuilder::rss('news')->rel());
$Cache->load('news');
// RSS
// Lang pour download
load_module_lang('download');
$dw_langs = array(
'L_READ' => $DOWNLOAD_LANG['read_feed'],
'L_POSTED_ON' => $LANG['on']
);
//Mise en variable des flux par cat
$contents_feed_wiki = Feed::get_parsed('wiki', Feed::DEFAULT_FEED_NAME, 0, false, 10);
$contents_feed_web = Feed::get_parsed('news', Feed::DEFAULT_FEED_NAME, 0, false, 10);
$contents_feed_download = Feed::get_parsed('download', Feed::DEFAULT_FEED_NAME, 0, false, 10);
$tpl = new FileTemplate('news/edito.tpl');
//Chargement de la langue du module.
$tpl ->assign_vars( array(
'C_EDITO' => true,
'CONTENTS' => FormatingHelper::second_parse($NEWS_CONFIG['edito']),
'TITLE' => $NEWS_CONFIG['edito_title'],
'PATH_TO_ROOT' => TPL_PATH_TO_ROOT,
'THEME' => get_utheme(),
'FEED_MENU' => Feed::get_feed_menu(FEED_URL),
'feed_web' => $contents_feed_web,
'feed_wiki' => $contents_feed_wiki,
'feed_download' => $contents_feed_download
 
));
 
return $tpl->display(TRUE);
}
// ---------------------------------------------------
        echo get_home_page();
include_once('./kernel/footer.php');
?>
 


le Tpl quant à lui est en grande partie basé sur le news.tpl, Il est à placer dans "../templates/VOTRE_THEME/modules/news/" sous le nom de "edito.tpl".

Et si vous ne trouvez pas ce cheminement dans votre thème, il vous faudra créer manuellement les dossiers.

Pourquoi là et pas à la racine de votre PHPBoost, directement dans le dossier "templates/news"? Simplement à cause de future mise à jour que vous pourriez effectuer sur le CMS.

Code TPL :
 
<div class="module_position edito">
<div class="module_top_l"></div>
<div class="module_top_r"></div>
<div class="module_top">
        <div class="module_top_title">
<a href="{U_SYNDICATION}" title="{L_SYNDICATION}" class="img_link">
<img class="valign_middle" src="{PATH_TO_ROOT}/templates/{THEME}/images/rss.png" alt="{L_SYNDICATION}" />
</a>
{TITLE}
</div>
        <div class="module_top_com">
# IF C_ADMIN #
<a href="{U_ADMIN}" title="{L_ADMIN}" class="img_link">
<img class="valign_middle" src="{PATH_TO_ROOT}/templates/{THEME}/images/{LANG}/edit.png" alt="{L_ADMIN}" />
</a>
# ENDIF #
</div>
<div class="spacer"></div>
    </div>
    <div class="module_contents">
        {CONTENTS}
    </div>
<div class="module_bottom_l"></div>
           <div class="module_bottom_r"></div>
           <div class="module_bottom"></div>
</div>
<br /><br /><br />
<div class="module_position">
<div class="module_top_l"></div>
<div class="module_top_r"></div>
<div class="module_top">
<div class="module_top_title">
<h3 class="title">&nbsp;&nbsp;Les actualités du site</h3>
</div>
</div>
            <div class="news_content">
                &nbsp;&nbsp;{feed_web}
</div>
<div class="module_bottom_l"></div>
           <div class="module_bottom_r"></div>
           <div class="module_bottom"></div>
</div>
<br /><br /><br />
<div class="module_position">
<div class="module_top_l"></div>
<div class="module_top_r"></div>
<div class="module_top">
<div class="module_top_title">
<h3 class="title">&nbsp;&nbsp;Derniers articles du Wiki</h3>
</div>
</div>
            <div class="news_content">
                &nbsp;&nbsp;{feed_wiki}
</div>
<div class="module_bottom_l"></div>
           <div class="module_bottom_r"></div>
           <div class="module_bottom"></div>
</div>
<br /><br /><br />
<div class="module_position">
<div class="module_top_l"></div>
<div class="module_top_r"></div>
<div class="module_top">
<div class="module_top_title">
<h3 class="title">&nbsp;&nbsp;Derniers Téléchargements</h3>
</div>
</div>
            <div class="news_content">
                &nbsp;&nbsp;{feed_download}
</div>
<div class="module_bottom_l"></div>
           <div class="module_bottom_r"></div>
           <div class="module_bottom"></div>
</div>
 


Le code pourrait être pas mal modifier et arranger. A vous de vous le personnaliser si vous le désirez :)

Important:

L'édito est modifiable / éditable par l'administration des news. Par ce biais vous pouvez ainsi (ou aussi) le désactiver du module news.


Si vous avez des questions, n'hésitez pas à les poser sur le forum :)


Créé le 04/12/2014, par Swan & Saturnin

Cette page a été consultée 1940 fois