Easy-Design.Net forum




Aide générale [Réglé] [ BETA ] Tuto, page index.php avec récupération BDD des news

m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 26/02/2011 à 13h53
Bonjour à tous.

Je propose un petit tutoriel pour insérer une page index.php à la racine de son site, avec la récupération sur la BDD des news, dont l'affichage est pratiquement identique au module news lui même.

Je tiens à préciser que le "codage" vient de Saturnin. Je fais juste le tutoriel, car sur le sujet en question, il y a des codes de partout :D.

A noter également, que cet index.php et edito.tpl a été testé sur le thème Cappuccino. Il se peut que des choses soient à modifier pour les autres thèmes.

Commençons donc.

Le fichier index.php à mettre à la racine de votre site

Code PHP :
<?php
/*##################################################
 *                               index.php
 *                             aditif au module news
 *                            -------------------
 *    Largement récupéré du module news & pages
 *    Il reste sous le © de news.php & pages.php
 *    Copyright          : (C) 2005 Viarre Régis
 *    Modification       : SaTurNin
 ###################################################
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
###################################################*/
 
// definition de la racine du site pour etre poser a la base(index.php)
define('PATH_TO_ROOT', './');
 
//Css alternatif.
define('ALTERNATIVE_CSS', 'news');
 
require_once('./kernel/begin.php');
 
// definition du tite de la page manuel
define('TITLE', 'Edito');
require_once('./kernel/header.php');
 
// pompé l'édito de news, meme si désactivé
// permet de garder le module admin d'édition 
function get_home_page()
{
global $User, $Sql, $Cache, $Bread_crumb, $CONFIG_NEWS, $LANG, $Session;
require_once('./news/news_begin.php');
// recup rss
import('content/syndication/feed');
    require_once PATH_TO_ROOT . 'poll/poll_mini.php';
$contents_feed_wiki = Feed::get_parsed("wiki", DEFAULT_FEED_NAME, 0, FALSE, 5, 0);
$contents_feed_news = Feed::get_parsed("news", DEFAULT_FEED_NAME, 0, FALSE, 5, 0);
$contents_feed_download = Feed::get_parsed("download", DEFAULT_FEED_NAME, 0, FALSE, 5, 0);
//mise en variable pour tpl et position du tpl
$tpl_news = new Template('news/edito.tpl');
$tpl_news->assign_vars( array(
'C_NEWS_EDITO' => true,
'CONTENTS' => second_parse($CONFIG_NEWS['edito']),
'TITLE' => $CONFIG_NEWS['edito_title'],
        'PATH_TO_ROOT' => TPL_PATH_TO_ROOT,
     'THEME' => get_utheme(),
'FEED_MENU' => Feed::get_feed_menu(FEED_URL),
'feed_news' => $contents_feed_news,
'feed_wiki' => $contents_feed_wiki,
'feed_download' => $contents_feed_download,
//'MON_MENU' => poll_mini(0, BLOCK_POSITION__TOP_CENTRAL),
 
));
return $tpl_news->parse(TRUE);
}
  echo get_home_page();
 //Envoi de la page
 
  ///////////////////
 // Derniere news //
///////////////////
 
global $User, $Sql, $Cache, $Bread_crumb, $CONFIG_NEWS, $LANG, $Session;
require_once('./news/news_begin.php');
$tpl_news = new Template('news/edito.tpl');
$n = 1; //pour le compteur
$resultn = $Sql->query_while("SELECT id, idcat, title, contents, timestamp, img, alt, visible, user_id  
FROM " . PREFIX . "news
WHERE visible = 1
ORDER BY timestamp DESC
" . $Sql->limit(0,6), __LINE__, __FILE__); // limit compteur (depart,fin)
while ($rown = $Sql->fetch_assoc($resultn))
{
$pseudo_id_sql=$Sql->query_while("SELECT * FROM " . PREFIX . "member WHERE user_id ='".$rown['user_id']."'", __LINE__, __FILE__);
$pseudo_id = $Sql->fetch_assoc($pseudo_id_sql);
 
$idcat_icon = $Sql->query_array(PREFIX . "news_cat", "icon", "id", "WHERE id = '" . $rown['idcat'] . "' " . $Sql->limit(0, 1), __LINE__, __FILE__); // <====ici
 
$tpl_news->assign_block_vars('l_news', array(
'N_ID' => $n,
'N_IDCAT' => $rown['idcat'] ,
'N_LINK' => url('news/news.php?id=' . $rown['id'] . '&cat=' . $rown['idcat'], 'news/news-0-' . $rown['id'] . '+' . url_encode_rewrite($rown['title']) . '.php'),
'N_TITLE' => $rown['title'],
'N_TIMESTAMP' => gmdate_format('date_format_short', $rown['timestamp']),
'N_CONTENT' => (strlen( second_parse($rown['contents']) ) > 800 ) ? substr(second_parse($rown['contents']), 0, 800).' ... ' : $rown['contents'], 
'N_IMG'=> (!empty($rown['img'])) ? second_parse_url($rown['img']) : '',
'N_ALT'=> $rown['alt'],
'N_USER_ID'=> $rown['user_id'],
'N_P_USER_ID'=> $pseudo_id['login'] ,
'N_ICON_CAT'=> url("news/".$idcat_icon['icon']) , // <===ici
'N_ALT'=> $rown['alt'], 
 ));
$n++ ; // pas utile mais on sait jamais
}
$Sql->query_close($resultn);
$Sql->query_close($pseudo_id);
$tpl_news->parse();
 
 
 
require_once('./kernel/footer.php');
?>
 
 


Dans le fichier index.php vous pouvez changer le nombre de news à afficher sur cette ligne (Ligne 84) :

Code PHP :
" . $Sql->limit(0,6), __LINE__, __FILE__); // limit compteur (depart,fin)


Il suffit de changer le "6" par le nombre de votre choix.

Toujours dans le fichier index.php, vous pouvez changer le nombre de caractère à afficher avant la news étendue sur cette ligne (Ligne 98) :

Code PHP :
'N_CONTENT' => (strlen( second_parse($rown['contents']) ) > 800 ) ? substr(second_parse($rown['contents']), 0, 800).' ... ' : $rown['contents'], 


Il est obligatoire de changer le chiffre deux fois .. "800" sur le fichier actuel.

Passons maintenant sur le edito.tpl à insérer dans ./news/templates/

Voici le code HTML :

Code HTML :
# START l_news #
 
        <div class="news_container">
            <div class="news_top_l"></div>
            <div class="news_top_r"></div>
            <div class="news_top">
 
            <span style="float:left;"><a class="news_title" href="{l_news.N_LINK}">{l_news.N_TITLE}</a></span></div><br>
            <div class="news_content">Le, {l_news.N_TIMESTAMP} Par <a href="/member/member.php?id={l_news.N_USER_ID}">{l_news.N_P_USER_ID}</a></div><br>
            <img src="{l_news.N_ICON_CAT}"><br>
            <br>
            <div class="news_content">{l_news.N_CONTENT}</div><br /><br />
            <div class="spacer"></div>
            <div><a href='{l_news.N_LINK}' >[ Lire la suite ]</a></div>
            <br>
            <br>
            <div class="news_bottom_l"></div>
            <div class="news_bottom_r"></div>
            <div class="news_bottom">
            </div>
        </div>
<br />
# END l_news #


L'affichage peut varier selon vos autres modifications précédentes.

Voila le tutoriel en version BETA, et en attente de correction, ou complément :) Edité par m-ickael Le 26/02/2011 à 16h56
Swan Membre non connecté

Administrateur

Rang

Avatar

Inscrit le : 01/08/2009 à 22h53

Messages: 8431

Le 26/02/2011 à 14h02
Nikel Mickael ;) Je le passerais aussi dans les extras pbt ^^


swan_signature

Site web    
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 26/02/2011 à 14h16
N'ai pas peur de corriger les citations en cas .. J'ai tenté de reprendre ce que m'a appris Saturnin :)
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 26/02/2011 à 16h29
c'est pas un flux, mais une récupération directe a la db.

c'est ce qui permet de faire les manip librement sur les contenu récupéré :)

bien jouer m-ickael :)


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
m-ickael Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 23/02/2010 à 09h15

Messages: 2296

Le 26/02/2011 à 16h55
D'accord. J'édite le message de suite :)
Swan Membre non connecté

Administrateur

Rang

Avatar

Inscrit le : 01/08/2009 à 22h53

Messages: 8431

Le 21/06/2011 à 09h43
Maj faites dans la section des extras pbt.


swan_signature

Site web    
Keyral Membre non connecté

EDN actif(ve)

Rang

Avatar

Inscrit le : 08/01/2011 à 12h51

Messages: 19

Le 06/10/2011 à 15h48
Salut salut encor merci pour ce petit bijoux
Mais une question me tarode qui ce trouve etre :
Peux t'on faire un appel de la BDD mais seulement des news contenu dans
une seul categories ?


Cordalement ,Keyral
Site web    
pegasetkc Membre non connecté

EDN Maitre-Sage

Rang

Avatar

Inscrit le : 15/04/2010 à 19h37

Messages: 1940

Le 06/10/2011 à 17h59
il me semble que le sujet a était abordé dans le forum mais impossible de remettre la main dessus


Citation made in pegasetkc : "Sauvez un arbre mangez un castor"
Depuis que je connais Saturnin mon humour ressemble a cela : j'ai un string dans l'array
Site web    
Keyral Membre non connecté

EDN actif(ve)

Rang

Avatar

Inscrit le : 08/01/2011 à 12h51

Messages: 19

Le 06/10/2011 à 19h21
Suite a ta reponse j'ai longement cherché sur le forum mais je n'es rien trouvé du tous !

Es que sa c'es perdu ou ????

Cordialement , Keyral
Site web    
saturnin Membre non connecté

Administrateur

Rang

Avatar

Administrateur

Inscrit le : 08/08/2009 à 22h19

Messages: 3963

Le 06/10/2011 à 21h23
bonsoir,

oui c'est possible par la methode de ce sujet.
Il y a deja une restriction de la sorte pour ne ressortir que les news visible, il suffit de compléter la requette :
Code PHP :
WHERE visible = 1 AND idcat = 1


ou ta cat = 1 (pour idcat = 1 )

C'était bien la question ?


signaturesaturnin


Accroche toi au clavier, je retire le shell...
Site web    
Kurita Membre non connecté

EDN actif(ve)

Rang

Avatar

Inscrit le : 07/02/2013 à 14h56

Messages: 5

Le 08/02/2013 à 15h03
Est-ce normal si je n'ai pas le fichier edito.tpl ?
   
Swan Membre non connecté

Administrateur

Rang

Avatar

Inscrit le : 01/08/2009 à 22h53

Messages: 8431

Le 09/02/2013 à 11h13
Tu as du mal lire ^^

Car il est écrit :

Passons maintenant sur le edito.tpl à insérer dans ./news/templates/

Voici le code HTML :

Code HTML :
# START l_news #
 
        <div class="news_container">
            <div class="news_top_l"></div>
            <div class="news_top_r"></div>
            <div class="news_top">
 
            <span style="float:left;"><a class="news_title" href="{l_news.N_LINK}">{l_news.N_TITLE}</a></span></div><br>
            <div class="news_content">Le, {l_news.N_TIMESTAMP} Par <a href="/member/member.php?id={l_news.N_USER_ID}">{l_news.N_P_USER_ID}</a></div><br>
            <img src="{l_news.N_ICON_CAT}"><br>
            <br>
            <div class="news_content">{l_news.N_CONTENT}</div><br /><br />
            <div class="spacer"></div>
            <div><a href='{l_news.N_LINK}' >[ Lire la suite ]</a></div>
            <br>
            <br>
            <div class="news_bottom_l"></div>
            <div class="news_bottom_r"></div>
            <div class="news_bottom">
            </div>
        </div>
<br />
# END l_news #


Donc c'est à toi de la créer ^^


swan_signature

Site web    
Kurita Membre non connecté

EDN actif(ve)

Rang

Avatar

Inscrit le : 07/02/2013 à 14h56

Messages: 5

Le 11/02/2013 à 10h43
Ah ok merci :)
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie