8791 sujets

Développement web côté serveur, CMS

Bonjour et bonne année à tous, je suis nouveau sur ce forum et j'espère que quelqu'un pourra m'aider a résoudre mon problème qui pour un graphiste comme moi et qui ne connait rien au php s'arrache les cheveux Smiley smile

voici mon soucis:

J'ai créer un site sur lequel j'ai une barre de navigation sur la droite afin d'afficher des news avec date et qq lignes de teasing (genre les 60 premiers caractères) dans le bloc noir. voici 1 première image pour illustrer mon propos
upload/18866-Homenews2.jpg .

le principe est de cliquer sur le txt et d'afficher la page au milieu comme sur l'image, ce que je fait déja en include php mais ma page est faite en dur sous dreamweaver ce qui est assez fastidieux quand on a beaucoup de news a faire

Ensuite, si on clique sur le lien actualité de la barre grise à gauche
(pavé rubrique), je souhaiterais affiché une page comme ceci :

upload/18866-Homenews.jpg .

ce que je voudrais donc pouvoir faire c'est d'abord pouvoir créer une table sql avec des parametre d'id, de date et de txt de l'article et d'image (si c'est possible) a afficher sur cette page et si on clique sur le lien "lire la suite>>", pouvoir afficher la news au milieu de la page comme c'est le cas sur la 1ere image.

Voila, pour résumer, 2 barres qui affichent un teaser des news et en cliquant sur un lien "lire la suite>>" que la news s'affiche au milieux de mon site.

j'espère qu'une âme charitable pourra m'aider car vraiment je galère sévère.

merci d'avance.
Modifié par sykes (07 Jan 2009 - 18:50)
Administrateur
Bonjour et bienvenue sykes, Smiley smile

tu veux créer un système de news/actualités donc? Pourquoi ne pas utiliser un CMS (gestionnaire de contenu) existant? Il gèrera l'affichage, la rédaction pour les auteurs, les liens, etc

Note sur l'horreur des liens "Lire la suite": d'un point de vue accessibilité il est TRÈS préférable que ta page n'ait pas des intitulés de liens identiques menant vers du contenu différent, par exemple 40 liens "Lire la suite" (variante: "Cliquez ici")
Tu peux t'inspirer des liens qu'il y a sur le blog : "Lire -la suite de- {le titre de ton article}" ou choisir toute autre solution qui permette au visiteur de deviner la destination du lien en n'ayant que l'intitulé du lien sans son contexte (cas typique: un non-voyant utilisant un lecteur d'écran et navigant à partir de la liste de liens)
Dans le cas où tu voudrais le faire, en respectant les conseils de Felipe, voici une fonction qui pourra t'être utile :

function coupeChaine($chaine, $nbMaxCaracteres = 300) {
	if (strlen($chaine) > $nbMaxCaracteres) {
		while ($chaine{$nbMaxCaracteres} != ' ') {
			$nbMaxCaracteres++;
		}
		return substr($chaine, 0, $nbMaxCaracteres);
	}
	else {
		return $chaine;
	}
}


Elle reçoit un paramètre obligatoire et un paramètre facultatif :
La chaine de caractère : donc le contenu de ta news
Le nombre de caractères à afficher (facultatif) par défaut il limite l'affichage à 300 caractères.

Cette fonction ne tronque pas n'importe comment, si ça tombe en plein milieu d'un mot, elle l'affichera complètement et coupera après.

Utilisation :
$requete = mysql_query(' ... ');
$donnees = mysql_fetch_array($requete);
echo coupeChaine($donnees['contenu']);


Tu affiches ensuite le lien "lire la suite de ..." menant vers l'article où tu afficheras le contenu complet.
Modifié par Noix de Coco (07 Jan 2009 - 21:25)
Bonjour, merci a tous les 2 pour vos réponses éclairées. Felipe, ce que tu dit est certainement très juste a propos des liens lire la suite, je vais donc y réfléchir sérieusement, effectivement p-e que pour faciliter le référencement, il préférable de ne pas avoir 100 liens avec le même nom.

Quand au CMS, genre spip ou joomla, je ne suis pas très sur, cela me parait un peu trop pour ce que je veux faire, non ?

Qu'en penses-tu ? Vu que tu plus semble être plus au fait que moi, tu pourrais peut être m'orienter sur un de ces gestionnaire simple à implanter

Pour Noix de coco, merci de ton script, je vais l'essayer voir si j'arrive a m'en sortir.

pour infos j'avais déja trouvé un script qui faisait ce que je voulais mais je n'arrive pas a l'implanter pour qu'il s'affiche dans ma page au milieux, le voici, il vient de ce site :
http://streetsmartingit.blogspot.com/2008/04/how-to-make-read-more-links-very-simple.html


<?php
/*
MySQL Connection, Replace with your own values
*/
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());

/* 
Gets $_REQUEST['task'] and assigns it to $task, 
*/
if (isset($_REQUEST['task'])) {
	$task = $_REQUEST['task'];
} else {
	$task = "Summary";
}

switch($task){
	//For Summary View
	case 'Summary':
		$result = mysql_query("select * from article_table");
		while ($row = mysql_fetch_object($result)) {
			echo $row->title.'<br />';
			echo 'Posted On: '.$row->created. '<br />';
			//Echo the first 60 Characters only as Summary
    			echo substr($row->article, 0, 60).'...<br />';
			//This is the ReadMore Link, Take a note of the URL
			//It passes $row->id so the script knows which Article to Display in Full
			echo '<a href=readmore.php?task=Full&id='.$row->id.'>Read More!</a>';
			echo '<br /><br />';
		}
		mysql_free_result($result);
	break;

	//For Full View
	case 'Full':
		//This MySQL Query gets the ID value as passed by the Summary Page Read More link
		$result = mysql_query('SELECT * FROM article_table WHERE id = \''.intval($_REQUEST['id']).'\'');
		if (!$result) {
			echo 'Could not run query: ' . mysql_error();
			exit;
		}
		$row = mysql_fetch_row($result);
		echo $row[1].'<br />';	//Title
		echo $row[3].'<br />';	//Date
		echo $row[2].'<br />';	//Article
		echo '<a href=readmore.php>Go Back</a>';
	break;
}
?>



j'ai évidemment creer une base sql qui va chercher les paramètres
et cela s'affiche mais pas dans ma page...

merci de me dire comment éventuellement l'implanter car le lien ne s'affiche pas dans ma page qui est du type: index.php?=page

mais lorsque je mets : index.php?page=readmore.php?task=Full&id=2

j'ai un message qui me dit que la page n'est pas correcte, je suppose qu'il manque un paramètre mais je ne saurais dire lequel


merci pour votre aide.
Smiley lol
Modifié par sykes (08 Jan 2009 - 09:06)
Salut sykes, oubli joomla et spip qui comme tu le dis sont peut être trop complexe. Dirige toi vers Wordpress qui est à la base un CMS orienté blog mais qui se prête très bien au reste (il suffit juste de virer l'affichage des commentaires dans le code). De plus il est vraiment très simple d'installation et sa communauté est très importante. Tu peux trouver plus de détail sur le site officiel.
Modifié par erehcab (08 Jan 2009 - 09:21)
Salut erehcab, je connias bien wordpress puisque mon blog pro est
fait avec wordpress, par contre je ne sais pas comment implanter des modules wordpress sur un site, pourrais-tu m'aiguiller ?

je me suis permis de t'ajouter dans mes contacts MSN, p-e que l'on pourra en aprler si cela te convient.

merci à toi Smiley smile
Modifié par sykes (08 Jan 2009 - 11:00)