Accueil > Forum > > > > Onglet Actualité en php
Onglet Actualité en php
mardi 30 août 2011 à 12:08:12 |
Onglet Actualité en php

bmounaj
|
Salut, j'aimerai faire un onglet "ACTUALITE" dans mon site en php, et on m'a dit qu'il y'avait une fonction ou un bout de code tout prêt pour m'afficher le "lire la suite", est ce vraI? parceque j'ai cherché je n'ai rien trouvé, je cherche aussi à savoir comment écrire sous le titre la 1ere phrase du paragraphe concerné, je suppose que pour ça aussi y'a une fonction qui affiche un certain nombre de caractères. Merci!
|
|
mardi 30 août 2011 à 13:27:05 |
Re : Onglet Actualité en php

Tonio_35
|
Bonjour,
Il n'existe pas de bout de code tout prêt en PHP pour afficher le texte "Lire la suite". Peut-être utilise tu un CMS ou autre framework PHP ?
Pour afficher une partie de texte tu peux regarder comment fonctionne la méthode substr.
Code PHP : <?php
echo substr('Bonjour', 0, 4).'[...]'; // Bonj[...]
?>
_________________________________
Min iPomme
|
|
mardi 30 août 2011 à 14:09:37 |
Re : Onglet Actualité en php

dvwyns
|
Salut,
Voici un tutoriel pour implémenter un lire la suite avec jquery
Enjoy
|
|
mardi 30 août 2011 à 14:10:43 |
Re : Onglet Actualité en php
|
mardi 30 août 2011 à 14:16:30 |
Re : Onglet Actualité en php

bmounaj
|
je viens de voir le tutoriel que tu m'as passé, enfait moi j'ai créé une table dans une base de données, et à chaque fois l'administrateur peut remplir un formulaire qui comprend le titre et le contenu de larticle, et je veux qu'à partir de ça ça s'affiche, le problème avec le tuto, c'est qu'il faut écrire le texte en entier et le reste du texte invisible entre les balises <span> </span>, moi je ne pourrai pas le faire dans mon cas.
|
|
mardi 30 août 2011 à 14:57:28 |
Re : Onglet Actualité en php

dvwyns
|
Avec du texte dynamique, c'est effectivement plus problematique.
En tout cas pour faire un effet (avec un regex qui coupe la phrase à un tel nombre de lettre (mais avec les retour à la ligne "br", c pas une bonne solution, si la personne n'arrête pas de faire des retour à la ligne, avant de cacher le texte, tu peux avoir une bonne hauteur).
En fait, pour ajouter des effets javascript je n'ai pas trouvé de solution de bonne qualité (calculer avec le line-height et la taille de la div qui contient le texte, a chaque "br", rajouter le nombre de pixel d'un line-height, fin en gros c pourri ^^).
Par contre sans effet, tu peux donner une hauteur à la balise qui contient ton texte (genre div, c très bien), et faire un "overflow:hidden" (tout ça en css, bien sur) sur cette meme balise, alors une partie de texte sera invisible. Après au moment ou tu clickes sur "lire la suite" tu appelles via "onclick" une fonction javascript contenant ce code :
Code Javascript : document.getElementbyId('idDeLaDivContenantLeTexte').style.overflow = 'visible';
ce qui affichera tout le contenu de la balise.
Par contre un problème persiste, lors d'un texte plus court que la hauteur que tu as fixée, il faut pouvoir cacher le texte "lire la suite".
Pour ce faire, lors du chargement de la page tu récupères la hauteur de la balise, puis tu la compares avec la hauteur que tu veux lui donner (oui à ce moment, il faut que tu fixes la hauteur via du javascript et plus via le css), s'il est plus petit en taille alors tu ne l'affiches pas.
Pt précision : avec cette dernière technique, tu te retrouves lors du chargement de la page à voir, un court instant, la hauteur initiale de la div contenant le texte puisque le javascript est chargé après l'html (en gros rien de grave, mais au moins j'ai tout dit lol)
Enjoy
|
|
mardi 30 août 2011 à 21:10:40 |
Re : Onglet Actualité en php

kohntark
|
Salut,
"Lire la suite ..." peut aussi être chargé dans une nouvelle page ^^
Simple (un lien), et souvent avantageux : lorsqu'il y a la possibilité d'ajouter des commentaires, que les articles sont longs et nombreux ça devient rapidement le bord** de tout charger sur la même page, sans compter la bande passante utilisée pour rien, les référencements complexes, etc ... etc ...
Dans ce cas tu peux utiliser directement la fonction SQL SUBSTR() pour ne retirer qu'une partie de l'article, éventuellement traiter par PHP avec wordwrap() avant envoi au navigateur. Suffit juste d'ajouter un lien "lire la suite ..." qui guide vers l'article complet.
S'il faut un affichage sur la même page il est possible de procéder de la même façon, mais au lieu d'un simple lien on peut faire appelle à une fonction Ajax qui se chargera d'afficher la totalité de l'article. On ne charge alors que le nécessaire et c'est bien plus simple côté gestion JS :
la fonction se contente de remplacer le texte du conteneur et de masquer le "lire la suite"
En fait, pour ajouter des effets javascript je n'ai pas trouvé de solution de bonne qualité
Je doute effectivement qu'il y en est une, tout simplement parce que le script ne saura jamais si la portion de texte qu'il affiche à du sens, ou non. C'est bien là le principal, présenter suffisamment (mais pas trop) de texte pour que l'internaute en saisisse le contenu.
Partant de là je ne me prendrais pas trop la tête avec des calculs de line-height, taille conteneurs et autres.
Suffit "juste" de compter le nombre de ligne, éventuellement accompagné d'un nombre mini de caractères, couper à la suite d'un mot, ajouter " ..." et rien de plus.
Cordialement,
Kohntark -
|
|
mardi 30 août 2011 à 22:17:05 |
Re : Onglet Actualité en php

dvwyns
|
Salut Kohntark,
utiliser directement la fonction SQL SUBSTR() pour ne retirer qu'une partie de l'article
on peut faire appelle à une fonction Ajax qui se chargera d'afficher la totalité de l'article
Effectivement, ça me paraît très sensé si il y a bcp d'article sur une même page ^^
Suffit "juste" de compter le nombre de ligne
Dites moi, comment faites vous ça en sachant que le texte est écris (via un back-end) dans un textarea et que l'affichage (front-end) se fait en utilisant nl2br() pour respecter les sauts à la ligne fait par l'utilisateur ?
En comptant le nombre de "br" me direz vous, mais en imaginant qu'une phrase peut passer à la ligne pcq la largeur de conteneur du texte est dépassée, comment s'en rendre compte et donc compter une ligne de plus ?
éventuellement accompagné d'un nombre mini de caractères
Je vous avoue ne pas avoir bien saisi cette phrase, c'est pour les "..." ?
Merci
Cordialement
|
|
mardi 30 août 2011 à 23:39:48 |
Re : Onglet Actualité en php

JulSoft
|
C'est pas un problème facile... Surtout si tu veux que ton aperçu ait du sens.
La solution que je choisirais, c'est celle que pratique wordpress. Il suffit d'ajouter dans ton texte un marqueur (eux utilisent un commentaire html, mais ça peut être n'importe quoi).
Ton texte prendrait alors la forme suivante:
Code :
Auxerunt haec vulgi sordidioris audaciam, quod cum ingravesceret penuria commeatuum, famis et furoris inpulsu Eubuli cuiusdam inter suos clari domum ambitiosam ignibus subditis inflammavit rectoremque ut sibi iudicio imperiali addictum calcibus incessens et pugnis conculcans seminecem laniatu miserando discerpsit. post cuius lacrimosum interitum in unius exitio quisque imaginem periculi sui considerans documento recenti similia formidabat.
#MARQUEUR#
Incenderat autem audaces usque ad insaniam homines ad haec, quae nefariis egere conatibus, Luscus quidam curator urbis subito visus: eosque ut heiulans baiolorum praecentor ad expediendum quod orsi sunt incitans vocibus crebris. qui haut longe postea ideo vivus exustus est.
Quid? qui se etiam nunc subsidiis patrimonii aut amicorum liberalitate sustentant, hos perire patiemur? An, si qui frui publico non potuit per hostem, hic tegitur ipsa lege censoria; quem is frui non sinit, qui est, etiamsi non appellatur, hostis, huic ferri auxilium non oportet? Retinete igitur in provincia diutius eum, qui de sociis cum hostibus, de civibus cum sociis faciat pactiones, qui hoc etiam se pluris esse quam collegam putet, quod ille vos tristia voltuque deceperit, ipse numquam se minus quam erat, nequam esse simularit. Piso autem alio quodam modo gloriatur se brevi tempore perfecisse, ne Gabinius unus omnium nequissimus existimaretur.
Où on utilise #MARQUEUR# comme marqueur de découpage.
Ensuite, tu peux faire un truc du genre (non testé)
Code PHP :
function decoupeTexte($texte, $apercu=false){
if($apercu && strpos($texte, '#MARQUEUR#')!==false){
return substr($texte, strpos($texte, '#MARQUEUR#')).'[...]';
}else{
return str_replace($texte, ''. '#MARQUEUR#');
}
}
|
|
mercredi 31 août 2011 à 09:00:15 |
Re : Onglet Actualité en php

kohntark
|
@JulSoft:
C'est clair, c'est la meilleure solution lorsqu'il s'agit de rédacteurs "avertis" (propriétaire du site par exemple), ce qui est le cas ici. Pour les commentaires d'utilisateurs lambda c'est une autre histoire.
En comptant le nombre de "br" me direz vous
Oui ^^
mais en imaginant qu'une phrase peut passer à la ligne pcq la largeur de conteneur du texte est dépassée, comment s'en rendre compte et donc compter une ligne de plus ?
Justement, pour moi le nombre de lignes n'est pas l'essentiel : qu'un début d'article soit sur 4 lignes, un autre sur 7, un autre sur 6 me parait d'ailleurs plus élégant qu'un conteneur de hauteur fixe avec des textes tronqués (coupure dans un mot par exemple)
Après, dans le cas que tu cites, je disais "accompagné d'un nombre mini de caractères" :
Dans la plupart des cas la largeur des conteneurs sera la même pour tous les articles, en comptant le nombre de caractères et le nombre de lignes on peut s'attendre à des hauteurs de conteneurs sensiblement identiques.
On peut également compter le nombre de mots et de paragraphes en appliquant des contraintes en nb de caractères, en réduisant le nombre de <br /> successifs, etc ...
Par ailleurs, comme je le disais on peut utiliser wordwrap(). Suffit alors de compter le nombre de retourne à la ligne après l'application de cette fonction pour connaitre le nb de lignes "exactes".
Je parlais simplement des 3 petits points à la fin du texte pour indiquer qu'il y a une suite :
texte d'origine :
Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris
texte "lire la suite" :
Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor ...
Menfin, une fois de plus il y a plein de façons de faire qui sont très dépendantes du contenu, du design, ... selon le cas telle ou telle méthode donnée ici sera meilleure que les autres.
Cordialement,
Kohntark -
|
|
Cette discussion est classée dans : fonction, php, onglet, aussi, actualité
Répondre à ce message
Sujets en rapport avec ce message
PHP et Javascript [ par romagnoli64 ]
Bonjour à tout le monde! J'espère que vous pourrez m'aider!! Voilà mon problème, j'ai un fichier "test.php3", dans lequel une fonction en Javascript e
Lien vers une fonction php [ par Daniel-J ]
Je cherche à faire un lien qui ne mène vers rien!!juste qui lance une fonction php!!!puis une autre question, savoir comment émuler le clic sur le bou
génération d'une page php par php [ par Vapula ]
Bonjour à tousJe souhaiterais générer une page php grâce à une fonction php , mais le problème est que la fonction envoie bien le code html, et php SA
Fonction PHP [ par jbrek ]
Y a t il un fonction PHP qui remplace les par des ???merci d'avance...
Syntaxe pour mettre une lettre en majuscule [ par Warwick ]
Bonjour à tous, j'ai une question, j'aimerais savoir quelle est la syntaxe pour mettre une lettre en majuscule en Php.Faut t-il écrireucfirst($variabl
SPLIT [ par fatNugly ]
y'a t'il une fonction en php qui fait la meme chose que la fonction split en vb soitune fonction a laquelle on donne le nom du string ansi que le cara
ajout fonction php [ par jym750 ]
Salut, j ai inseré un script de moteur de recherche du style :$url = "../repertoire/";$url = "../livres/";$url = "../tableau/";$ext = "php3";Une fois
probleme avec mes fonctions [ par ludlu ]
j'ai une fonction qui ne s'execute pas! si qq peut m'aider.voici le code source:function verif_session(){session_start();if(!session_is_registered("gc
Envoyer un mail() [ par amosc ]
Salut tout le monde;Je n arrive pas a envoyer un mail en php j ai ecrit la fonction de cette facon :mail("Amos93@lbn.com","sujet","test");et on me ren
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|