Nouveau sujet Répondre Imprimer Syndication RSS 2.0

Les news du "site"

Etoile
Avatar de StyphaX
  • Age : 20 ans
  • Messages : 2636
  • Inscrit : 09 Octobre 2004
  Lien vers ce message 18 Novembre 2004, 14:50
J'aimerais essayer de comprendre comment vous gérez l'affichage des news sur votre site.
Je me suis penché sur le problème mais il y a tellement de choses à mettre pour lui dire de créer un nouveau tableau dans la page news.php, de faire que le lien sur l'accueil change et redirige vers la bonne news, etc...

Je suis devenu dingue en essayant de faire ça!!! :mdr:

Y a t-il une personne qui arriverais à me dire quel est ce satanné script^^"? :mdr:
Merci :=$


http://www.distribs-linux.info/
http://www.fire-soft-board.com/~wiki/lib/tpl/default/images/link_icon.gifArticles WIKI FSB: Créer/Configurer/Utiliser votre 1er forum || Guide de la bidouille
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 18 Novembre 2004, 15:35
Si ca peut t'aider, le code de news.php :)
<?php

define('FORUM', TRUE);
$racine = './fsb/';
include( $racine . 'demarrage.php' );

// On lance les sessions
$membre = recuperer_session('Regarde les news');

include( $racine . 'includes/functions/fonctions_message.php' );
include( $racine . 'cache/fichier_smiley.php' );

$page = intval($HTTP_GET_VARS['page']);
$page = ( $page < 1 ) ? 1 : $page;
$mode = ( isset($HTTP_GET_VARS['mode']) ) ? htmlSpecialChars($HTTP_GET_VARS['mode']) : htmlSpecialChars($HTTP_POST_VARS['mode']);;
$id = ( isset($HTTP_GET_VARS['id']) ) ? intval($HTTP_GET_VARS['id']) : intval($HTTP_POST_VARS['id']);

//
// Suppression de news
//
if ( $mode == 'supprimer' && $membre['membre_aut'] == ADMIN )
{
	$sql = 'DELETE FROM site_news WHERE news_id = \'' . $id . '\'';
	if ( ! $result = $bdd->requete($sql) )
	{
		die('Impossible de supprimer la news<br />' . mysql_error() . '<br /><b>' . $sql . '</b>');
	}

	redir('news.php');
}

//
// Edition/ajout de news
//
if ( isset($HTTP_POST_VARS['soum_news']) )
{
	$titre = trim($HTTP_POST_VARS['news_titre']);
	$message = trim($HTTP_POST_VARS['news_message']);
	if ( $titre == '' || $message == '' )
	{
		die('Merci de donner un titre et un message à  la news');
	}

	if ( $mode == 'ajouter' )
	{
		$sql = 'INSERT INTO site_news (membre_id, news_titre, news_message, news_temps) VALUES(\'' . $membre['membre_id'] . '\', \'' . $titre . '\', \'' . $message . '\', \'' . time() . '\')';
		if ( ! $bdd->requete($sql) )
		{
			die('Impossible d\'ajouter la news<br />' . mysql_error() . '<br /><b>' . $sql . '</b>');
		}
	}
	else
	{
		$sql = 'UPDATE site_news SET news_titre = \'' . $titre . '\', news_message = \'' . $message . '\' WHERE news_id = \'' . $id . '\'';
		if ( ! $bdd->requete($sql) )
		{
			die('Impossible d\'editer la news<br />' . mysql_error() . '<br /><b>' . $sql . '</b>');
		}
	}

	redir('news.php');
}


$liens = ' -> News';
$titre = 'News';
include('site_includes/header.php');

if ( ( $mode == 'editer' || $mode == 'ajouter' ) && $membre['membre_aut'] == ADMIN )
{
	if ( $mode == 'editer' )
	{
		$sql = 'SELECT news_id, news_titre, news_message FROM site_news WHERE news_id = \'' . $id . '\'';
		if ( ! $result = $bdd->requete($sql) )
		{
			die('Impossible de sélectionner la news<br />' . mysql_error() . '<br /><b>' . $sql . '</b>');
		}
		$news = $bdd->tableau($result);

		if ( $news['news_id'] == '' )
		{
			die('News inexistante');
		}

		$v_titre = $news['news_titre'];
		$v_message = $news['news_message'];
	}

	echo '
		<form action="' . ajout_sid('news.php?mode=' . $mode . '&id=' . $id) . '" method="post">
		<table class="tableau" width="100%" cellspacing="0" cellpadding="5">
			<tr>
				<td class="td_titre" align="center" colspan="2"><b>' . ( $mode == 'editer' ? 'Editer une news' : 'Ajouter une news' ) . '</b></td>
			</tr>
			<tr>
				<td class="td_profil" width="300"><b>Titre de la news:*</b></td>
				<td class="td_profil2"><input type="texte" name="news_titre" value="' . $v_titre . '" size="35" maxlength="250" /></td>
			</tr>
			<tr>
				<td class="td_profil" width="300" valign="top"><b>Texte de la news:*</b><br /><span class="petit">HTML, FScode et smiley activés</span></td>
				<td class="td_profil2"><textarea name="news_message" rows="10" cols="60">' . $v_message . '</textarea></td>
			</tr>
			<tr>
				<td class="td_titre2" align="center" colspan="2">
					<input type="hidden" name="mode" value="' . $mode . '" />
					<input type="hidden" name="id" value="' . $id . '" />
					<input type="submit" class="boutton" name="soum_news" value="Soumettre" />
				</td>
			</tr>
		</table>
		</form>
	';
}
else
{
	$sql = 'SELECT n.*, mem.membre_login FROM site_news n LEFT JOIN ' . MEMBRES_TABLE . ' mem ON n.membre_id = mem.membre_id ORDER BY news_temps DESC';
	if ( ! $result = $bdd->requete($sql) )
	{
		echo '<table class="tableau" cellspacing="0" cellpadding="3"><tr><td><br />Les news sont temporairement indisponibles<br />&nbsp;</td></tr></table>';
	}
		$news = array();
	while ( $news_tmp = $bdd->tableau($result) )
	{
		$news[] = $news_tmp;
	}
	$compte_news = count($news);

	$periode = 5;
	$nb_page = ceil($compte_news / $periode);
	$debut = ( $page * $periode ) - $periode;
	$debut = ( $page <= 1 || $page > $nb_page ) ? 0 : $debut;

	$pagination = ( $nb_page > 1 ) ? pagination('news.php', $nb_page, $page) : '';
	echo $pagination['code'];

	for ( $i = 0; $i < $compte_news; $i++ )
	{
		if ( $i >= $debut && $i < ( $debut + $periode ) )
		{
			$modere_news = ( $membre['membre_aut'] == ADMIN ) ? '<a href="' . ajout_sid('news.php?mode=editer&id=' . $news[$i]['news_id']) . '">' . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'edit.gif', '', 'Editer') . '</a>&nbsp;&nbsp;<a href="' . ajout_sid('news.php?mode=supprimer&id=' . $news[$i]['news_id']) . '">' . sprintf($theme['img'], $racine . 'themes/' . $membre['membre_theme'] . 'images/' . $membre['membre_langue'] . 'suppr.gif', '', 'Supprimer') . '</a>' : '';

			echo '
			<table class="tableau" width="100%" cellspacing="0" cellpadding="5">
				<tr>
					<td class="td_titre" align="center" colspan="2"><a name="' . $news[$i]['news_id'] . '"></a><b>News :: <i>' . $news[$i]['news_titre'] . '</i></b></td>
				</tr>
				<tr>
					<td class="td_forum" colspan="2">
						' . smileys(nl2br(fscode_parse($news[$i]['news_message'])), $smiley) . '<br /><br />
						<span class="petit">Posté le <b>' . aff_date($news[$i]['news_temps']) . '</b> par <b><a href="' . ajout_sid($racine . 'profil_public.php?id=' . $news[$i]['membre_id']) . '">' . $news[$i]['membre_login'] . '</a></b></span>
					</td>
				</tr>
				<tr>
					<td class="td_titre2">&nbsp;</td>
					<td class="td_titre2" width="150" align="right">&nbsp;' . $modere_news . '</td>
				</tr>
			</table><br />
			';
		}
	}

	echo '
		<table width="100%">
			<tr>
				<td>' . ( $membre['membre_aut'] == ADMIN ? '<a href="' . ajout_sid('news.php?mode=ajouter') . '"><b>-&gt; Ajouter une news</b></a>' : '' ) . '</td>
				<td width="400" align="right">' . $pagination['pagination'] . '</td>
			</tr>
		</table>
	';
}

include('site_includes/footer.php');

?>


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Etoile
Avatar de StyphaX
  • Age : 20 ans
  • Messages : 2636
  • Inscrit : 09 Octobre 2004
  Lien vers ce message 18 Novembre 2004, 15:39
Loool^^ J vais voir ça :lol:

Je dois retourenr en cours là pour une heure de math x)
Je verrais après :mdr:


http://www.distribs-linux.info/
http://www.fire-soft-board.com/~wiki/lib/tpl/default/images/link_icon.gifArticles WIKI FSB: Créer/Configurer/Utiliser votre 1er forum || Guide de la bidouille
 
Etoile
Avatar de StyphaX
  • Age : 20 ans
  • Messages : 2636
  • Inscrit : 09 Octobre 2004
  Lien vers ce message 18 Novembre 2004, 20:32
Ahhh^^ oui ok^^ Mais pour les affichier sur l'index comme "dernières news" je comprends pas comment le lie nest généré :$

J'essaie de prendre modèle sur un autre script mais impossible d'y arriver :mdr:

Arf, si tu pouvais me donner la solution mais aussi m'expliquer un petit peu parceque je déteste ne pas comprendre! :'(


http://www.distribs-linux.info/
http://www.fire-soft-board.com/~wiki/lib/tpl/default/images/link_icon.gifArticles WIKI FSB: Créer/Configurer/Utiliser votre 1er forum || Guide de la bidouille
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 18 Novembre 2004, 21:47
Bah disons que dans ce code ca te genere la page des news, il te sufit donc de reprendre la partie avec la requete qui recupere les nezs + la bucle FOR et de limiter a 5 resultat et d'afficher ensuite ce que tu veux :)


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Etoile
Avatar de StyphaX
  • Age : 20 ans
  • Messages : 2636
  • Inscrit : 09 Octobre 2004
  Lien vers ce message 18 Novembre 2004, 22:20
Okey merci, je vais voir celà ^^ :=$

Avec ma chance, ça m'étonnerais pas que je bousille mon code :mdr:

Mais je vois pas comment faire le lien qui dirige vers la bonne news.
J'essaye toujour en regardant un exemple mais ce satané truc foire! :mdr:

Tu aurais pas le code carément :lol:
(j'en demande beaucoups c'est vrai mais...je comrpends rien!!!)
Pour faire le lien, il faut pleins de variables et compagnie et j'arrive pas :s


http://www.distribs-linux.info/
http://www.fire-soft-board.com/~wiki/lib/tpl/default/images/link_icon.gifArticles WIKI FSB: Créer/Configurer/Utiliser votre 1er forum || Guide de la bidouille
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 19 Novembre 2004, 3:44
Je te le donne quand je rentre chez moi demain :) Je ne peux pas la.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Etoile
Avatar de StyphaX
  • Age : 20 ans
  • Messages : 2636
  • Inscrit : 09 Octobre 2004
  Lien vers ce message 20 Novembre 2004, 12:26
Ok, ok je ne suis pas pressé ;)
Déjà , je vais mettre un certain temps à comprendre comment ça marche donc... :mdr:

Merci pour le code^^ :lol:


http://www.distribs-linux.info/
http://www.fire-soft-board.com/~wiki/lib/tpl/default/images/link_icon.gifArticles WIKI FSB: Créer/Configurer/Utiliser votre 1er forum || Guide de la bidouille
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 20 Novembre 2004, 12:31
Pour la parti sur l'accueil la voici:
					<?php
					$sql = 'SELECT news_id, news_titre FROM site_news ORDER BY news_temps DESC LIMIT 5';
					if ( ! $result = $bdd->requete($sql) )
					{
						echo '<tr><td align=center" class="td_forum">News indisponibles</td></tr>';
					}
					while ( $news = $bdd->tableau($result) )
					{
						echo '<tr><td align="center" class="td_forum"><a href="' . ajout_sid('news.php?page=1') . '#' . $news['news_id'] . '">' . $news['news_titre'] . '</a></td></tr>';
					}	
					?>


Avec bien sur comme d'habitude a inclure en haut
define('FORUM', TRUE);
$racine = './fsb/';
include( $racine . 'demarrage.php' );

// On lance les sessions
$membre = recuperer_session('index du site');


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Etoile
Avatar de StyphaX
  • Age : 20 ans
  • Messages : 2636
  • Inscrit : 09 Octobre 2004
  Lien vers ce message 20 Novembre 2004, 12:35
Merci mais j'ai déjà la aprtie intégrée en haut lool
Je le fait sur toutesmes pages maintenant au moins c'est déjà prêt :mdr:

Mode COMPRENDRE LE SCRIPT= activé


http://www.distribs-linux.info/
http://www.fire-soft-board.com/~wiki/lib/tpl/default/images/link_icon.gifArticles WIKI FSB: Créer/Configurer/Utiliser votre 1er forum || Guide de la bidouille
 
Etoile
Avatar de StyphaX
  • Age : 20 ans
  • Messages : 2636
  • Inscrit : 09 Octobre 2004
  Lien vers ce message 20 Novembre 2004, 13:08
Re-Salut^^

Lorsque je voudrais ajouter une news, je remplis le titre et la description, je clique et je tombe sur
Warning: Cannot modify header information - headers already sent by (output started at /home/fsbsup/web/www/news.php:2) in /home/fsbsup/web/www/forum/includes/functions/fonctions.php on line 288


Mais la news est quand même ajoutée.
J'ai la même erreur pour supprimer mais la news est bien supprimmée :mdr:

Je vois pas d'ou ça peut venir. Je n'ai pas touché aux fichiers du forum et j'ai laissé ton script :s


http://www.distribs-linux.info/
http://www.fire-soft-board.com/~wiki/lib/tpl/default/images/link_icon.gifArticles WIKI FSB: Créer/Configurer/Utiliser votre 1er forum || Guide de la bidouille
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 20 Novembre 2004, 14:36
Tu ne dois pas envoyer de texte (pas de echo) avant d'avoir inclu le header ou avant d'envoyer des cookies ou autre ;)


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Répondre


.