Prévisualisation de news

florentin1994 Messages postés 28 Statut Membre -  
florentin1994 Messages postés 28 Statut Membre -
Bonjour,
Je suis en train de faire mon système de news mais j'aimerais savoir comment faire une Prévisualisation de celle-ci....
Quelqu'un saurait?
Merci d'avance
Florentin1994
A voir également:

9 réponses

Yoan Messages postés 11905 Statut Modérateur 2 332
 
Et bien tu copies le code qui habituellement va chercher les news dans la BdD et les affiche sur la page, et tu le modifies pour qu'il n'aille plus chercher les infos dans la base ... mais dans des variables transmises par POST.
0
florentin1994 Messages postés 28 Statut Membre 1
 
donc si je comprend bien je dis rajouter un champ dans ma bdd ?
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Non !
Tu as déjà tout ce qu'il faut pour afficher les news une fois qu'elles sont enregistrées dans la base ?
Donc la prévisualisation c'est le même code, sauf que les données ne proviennent plus de la base mais elles arrivent tout droit depuis le navigateur de l'internaute.
0
florentin1994 Messages postés 28 Statut Membre 1
 
merci, tu pourrais vite fait me faire un schema de code en php (je comprend mieux :p)
sinon je me debrouillerai ;)
merci
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Ben oui et non, ça dépend te tellement de choses !
Je veux bien te pondre un truc mais si les trois quarts des trucs sont à changer c'est pas la peine.

Tu as déjà un code qui va chercher les données dans la base et les affichent oui ou non ?
0
florentin1994 Messages postés 28 Statut Membre 1
 
oui j'ai une partie admin qui pour l'instant ne fait que afficher un formulaire et enregistrer dans la bdd sans previsualisation
et ma page d'accueil qui affiche les news ;)
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Bon et bien colle ici le code de la page d'accueil et le code du formulaire qui permet d'enregistrer de nouvelles news.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
florentin1994 Messages postés 28 Statut Membre 1
 
Voici la page avec le formulaire pour ajouter, supprimer ou modifier une new:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<ul>
<li><a href="accueil.php?url=gestion_news&action=ajout_news">Ajouter une news</a></li>
<li><a href="accueil.php?url=gestion_news&action=gerer_news">Gérer une news</a></li>
</ul>

<?php
if (@$_POST['titre'])
{
$time = time();
if(!isset($_FILES['image']) || empty($_FILES['image']['name']))
{
$titre = mysql_real_escape_string($_POST['titre']);
$contenu = mysql_real_escape_string($_POST['contenu']);
(@$_POST['jour']!='0' && @$_POST['mois']!='0' && @$_POST['annee']!='0') ? $time2 = mktime($_POST['heure'], $_POST['minute'], 0, $_POST['mois'], $_POST['jour'], $_POST['annee']) : $time2 = $time ;
mysql_query('INSERT INTO actus VALUES("", '. $time2 .', '. $time .', "'. $titre .'", "'. $contenu .'", "N")');
$resultat = 'News ajoutée avec succès' ;
}
else
{
$largeurMax = 100 ;
$hauteurMax = 140 ;
$nom = $_FILES['image']['name'] ; // Le nom original du fichier
$type = $_FILES['image']['type'] ; // Le type du fichier
$taille = $_FILES['image']['size'] ; // La taille du fichier en octets
$tmp = $_FILES['image']['tmp_name'] ; // L'adresse vers le fichier uploadé dans le répertoire temporaire
$resultat = $_FILES['image']['error'] ; // Le code d'resultat, qui permet de savoir si le fichier a bien été uploadé
$types_valides = array("image/jpeg", "image/pjpg", "image/pjpeg", "image/png") ; // Les types de fichier valides

if($resultat > 0) $resultat = 'Une erreur s\'est produite lors du transfert de l\'image.' ; // On vérifie s'il n'y a pas d'resultats
else
{
if($_POST['MAX_FILE_SIZE'] < $taille) $resultat = 'Votre image est trop volumineuse.' ; // On vérifie si le fichier n'est pas trop volumineux
else
{
if(!in_array($type, $types_valides)) $resultat = 'Les formats acceptés sont les suivants :<br />JPEG et PNG.' ; // On vérifie si le type est valide
else
{
list($largeur, $hauteur, $type, $attr) = getimagesize($tmp) ;
if($type=='image/png') { $monImage = imagecreatefrompng($tmp) ; $extension = '.png' ; }
else { $monImage = imagecreatefromjpeg($tmp) ; $extension = '.jpg' ; }

$nomImage = '../images/news/'. $time . $extension ; // On choisit le nom du fichier sur le serveur
$upload = move_uploaded_file($tmp, $nomImage);

if($largeur > $largeurMax && $hauteur > $hauteurMax)
{
// Traitement de la miniature //
$nomMini = '../images/news/'. $time .'_small'. $extension ; // On choisit le nom du fichier sur le serveur

if(($largeur/$largeurMax) > ($hauteur/$hauteurMax)) { $largeurMini = round(($hauteurMax*$largeur)/$hauteur, 0) ; $hauteurMini = $hauteurMax ; $dst_x = round(($largeurMax-$largeurMini)/2, 0) ; $dst_y = 0 ; }
else { $largeurMini = $largeurMax ; $hauteurMini = round(($largeurMax*$hauteur)/$largeur, 0) ; $dst_x = 0 ; $dst_y = round(($hauteurMax-$hauteurMini)/2, 0) ; }

$nouvelleImage = imagecreatetruecolor($largeurMax, $hauteurMax) or die("Erreur lors de la création de la miniature") ;
imagecopyresampled($nouvelleImage , $monImage, $dst_x, $dst_y, 0, 0, $largeurMini, $hauteurMini, $largeur, $hauteur);
if($type=='image/png') $mini = imagepng($nouvelleImage, $nomMini) ;
else $mini = imagejpeg($nouvelleImage, $nomMini, 100) ;

if($upload && $mini) {
$titre = mysql_real_escape_string($_POST['titre']);
$contenu = mysql_real_escape_string($_POST['contenu']);
(@$_POST['jour']!='0' && @$_POST['mois']!='0' && @$_POST['annee']!='0') ? $time2 = mktime($_POST['heure'], $_POST['minute'], 0, $_POST['mois'], $_POST['jour'], $_POST['annee']) : $time2 = $time ;
mysql_query('INSERT INTO actus VALUES("", '. $time2 .', '. $time .', "'. $titre .'", "'. $contenu .'", "N")');
$resultat = 'News ajoutée avec succès' ; }
else $resultat = 'Une erreur s\'est produite lors du transfert.' ;
}
else
{
if($upload) {
$titre = mysql_real_escape_string($_POST['titre']);
$contenu = mysql_real_escape_string($_POST['contenu']);
(@$_POST['jour']!='0' && @$_POST['mois']!='0' && @$_POST['annee']!='0') ? $time2 = mktime($_POST['heure'], $_POST['minute'], 0, $_POST['mois'], $_POST['jour'], $_POST['annee']) : $time2 = $time ;
mysql_query('INSERT INTO actus VALUES("", '. $time2 .', '. $time .', "'. $titre .'", "'. $contenu .'", "N")');
$resultat = 'News ajoutée avec succès' ; }
else $resultat = 'Une erreur s\'est produite lors du transfert.' ;
}
}
}
}
}

echo $resultat ;
}

if (@$_GET['action']=='ajout_news')
{
?>
<form action="#" method="post" enctype="multipart/form-data">
<table>
<tr>
<td colspan="2">Si vous souhaitez sortir une news à une date précise, veuillez remplir le champ suivant :</td>
</tr>
<tr>
<td style="width:70px;font-weight:bold;">Date :</td>
<td style="width:450px">
<select name="jour">
<option value="0">--</option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="mois">
<option value="0">--</option>
<option value="1">Janvier</option>
<option value="2">Février</option>
<option value="3">Mars</option>
<option value="4">Avril</option>
<option value="5">Mai</option>
<option value="6">Juin</option>
<option value="7">Juillet</option>
<option value="8">Août</option>
<option value="9">Septembre</option>
<option value="10">Octobre</option>
<option value="11">Novembre</option>
<option value="12">Décembre</option>
</select>
<select name="annee">
<option value="0">--</option>
<?php
$annee = date('Y');
echo ' <option value="', $annee ,'">', $annee ,'</option>' ;
$annee++ ;
echo ' <option value="', $annee ,'">', $annee ,'</option>' ;
?>
</select>
à
<select name="heure">
<option value="00">00</option>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
</select>
:
<select name="minute">
<option value="00">00</option>
<option value="05">05</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option>
<option value="35">35</option>
<option value="40">40</option>
<option value="40">45</option>
<option value="40">50</option>
<option value="40">55</option>
</select>
</td>
</tr>
<tr>
<td style="font-weight:bold;">Titre :</td>
<td><input type="text" name="titre" /></td>
</tr>
<tr>
<td style="font-weight:bold;" colspan="2">Contenu :</td>
</tr>
<tr>
<td colspan="2"><textarea name="contenu" style="width:500px;height:400px;"></textarea></td>
</tr>
<tr>
<td style="font-weight:bold;">Image :</td>
<td><input type="file" name="image" /><input type="hidden" name="MAX_FILE_SIZE" value="1572864" /> <!-- 1.5Mo --></td>
</tr>
</table>
<tr>
<td colspan="2"><input type="submit" value="Publier" /></td>
</tr>
</form>
<?php
}

if (@$_GET['action']=='gerer_news') {
?>
<table>
<tr style="font-weight:bold;">
<td>Titre News</td>
<td>Date News</td>
<td> </td>
<td> </td>
</tr>
<?php
$req_listNews = mysql_query('SELECT * FROM actus WHERE categorie="N" ORDER BY date DESC');
while ($don_listNews = mysql_fetch_assoc ($req_listNews)){
?>
<tr>
<td><?php echo stripslashes($don_listNews['titre']) ?></td>
<td><?php echo time('d-m-Y H:i', $don_listNews['date']); ?></td>
<td><a href="accueil.php?url=gestion_news&action=modif_news&id_news=<?php echo $don_listNews['id'] ?>">Modifier</a></td>
<td><a href="accueil.php?url=gestion_news&action=suppr_news&id_news=<?php echo $don_listNews['id'] ?>">Supprimer</a></td>
</tr>
<?php
}
?>
</table>
<?php
}

?>

<?php
// SUSPPRIMER UNE NEWS
if (@$_GET['action']=='suppr_news') {
mysql_query ('DELETE FROM actus WHERE id="'. $_GET['id_news'] .'"');
mysql_query ('DELETE FROM commentaires WHERE cor="'. $_GET['id_news'] .'"');
echo "Vous venez de supprimer la news n°" . $_GET['id_news'];
}

// MODIFICATION D'UNE NEWS
if (@$_POST['titre2']) {
$id = $_POST['id'];
$titre = mysql_real_escape_string($_POST['titre2']);
$contenu = mysql_real_escape_string($_POST['contenu']);

$ma_req = mysql_query("UPDATE actus SET titre='". $titre ."', contenu='". $contenu ."' WHERE id='". $id ."'");
if($ma_req) echo "La mise à jour de la news n°" . $_POST['id'] . " s'est bien déroulée." ;
else echo "Une erreur est survenue!" ;
}

if (@$_GET['action']=='modif_news') {
$req_news = mysql_query ('SELECT * FROM actus WHERE id="'. $_GET['id_news'] .'"');
$don_news = mysql_fetch_assoc($req_news);
?>
<form method="post" action="#">
<table>
<tr>
<td>Titre</td>
<td><input type="text" name="titre2" value="<?php echo stripslashes($don_news['titre']) ?>"/></td>
</tr>
<tr>
<td>Contenu</td>
<td><textarea name="contenu" style="width:500px;height:400px;"><?php echo stripslashes($don_news['contenu']) ?></textarea></td>
</tr>
</table>
<input type="hidden" name="id" value="<?php echo $_GET['id_news'] ?>" />
<input type="submit" name="Submit" value="Envoyer" />
</form>
<?php
}
?>
</body>
</html>

Et voici la partie de la page d'accueil pour les afficher:

<?php
$req_breve = mysql_query('SELECT * FROM actus WHERE date<='. time() .' AND categorie="B" ORDER BY date DESC LIMIT 0,11');
while($breve = mysql_fetch_assoc($req_breve))
{
echo '
<tr>
<td class="tab_dateBreve">'.date('d-m-Y', $breve['date']).'</td><td class="tab_titreBreve"><a href="lire.php?id='.$breve['id'].'">'.stripslashes($breve['titre']).'</a></td>
</tr>';
}
?>
</table>

Merci ;)
0
florentin1994 Messages postés 28 Statut Membre 1
 
Up
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Ajoute un bouton de prévisualisation dans le formulaire :
<input type="submit" name="Preview" value="Prévisualiser" /> 

Puis dans le code tu auras quelque-chose comme ça :
if(@$_POST['Preview']=='Prévisualiser')
  {
  //code pour afficher la news - à la différence près que les variables à afficher proviennent du formulaire (donc des variables $_POST['nom_variable']).
  echo '
  <tr>
  <td class="tab_dateBreve">'.date('d-m-Y', time()).'</td><td class="tab_titreBreve"><a href="lire.php?id='.$_POST['id'].'">'.stripslashes($breve['titre']).'</a></td>
  </tr>'; 
  // N'oublie pas ensuite d'afficher à nouveau le formulaire que tu rempliras avec ces mêmes variables POST que l'utilisateur peut ensuite modifier ou envoyer vers la base. Note : pour "remplir" un SELECT, tu as juste à ajouter selected sur la case à sélectionner. Par exemple : <option selected value="1">Janvier</option>, tous les autres option n'ont pas de selected.
  }
elseif(@$_POST['Sumbit']=='Envoyer')
  {
  // Ici il y a le code qui enregistre la news dans la base et que j'ai la flemme de décrypter ;-)
  }
0
florentin1994 Messages postés 28 Statut Membre 1
 
je n'ai pas compris :s
0
Yoan Messages postés 11905 Statut Modérateur 2 332
 
Que n'as tu pas compris, mon petit ?

C'est pas bien laborieux pourtant. Tu as déjà un code qui "sélectionne" des options à faire (les "if"), tu as juste à en ajouter une pour le cas ou l'utilisateur a cliqué sur "Prévisualiser", et le code qu'il y a à l'intérieur tu l'as déjà écrit, il s'agit du code qui affiche la news suivi de celui qui affiche le formulaire. Il te suffit donc de le copier/coller et de l'adapter. Pour afficher la news il faut modifier les variables à afficher. Pour afficher le formulaire il faut ajouter des echo pour le remplir.
0
florentin1994 Messages postés 28 Statut Membre 1
 
je vais essayer ce soir et je vous redis sa demain ;)
0