IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Implémenter un lien "Lire la suite"


Sujet :

jQuery

  1. #1
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut Implémenter un lien "Lire la suite"
    Bonjour,

    Je dois afficher seulement les 200 premiers caractères de messages et un lien "Lire la suite..." si le message est plus long, comme sur les CMS.

    m'a orienté vers ce billet qui parle du plugin jTruncate mais qui apparemment fixe la limite en mots.

    En connaissez-vous un autre ou auriez-vous un tuto pour implémenter ça ?

    PS je programme en PHP / Javascript / Jquery / MySQL.

    EDIT :
    En fait d'après la doc du plugin la limite est bien fixée en caractères et pas en mots.

    Ceci dit, je me demande s'il vaut mieux charger tous les messages en entier dans la page et mettre une ready function qui va tout "truncater", quitte à ce qu'aucun long message ne soit affiché, ou au contraire limiter le chargement aux 200 premiers caractères de chaque message par la requête SQL puis faire un chargement en Ajax sur demande de l'utilisateur du message qu'il veut voir en entier.

    Qu'en pensez-vous ?
    Avez-vous déjà eu à faire ce genre de choix ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Il ma semble que ce sujet à déja été abordé ici ...

    Le temps de retrouver le post ...

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    tu veux couper au nombre de caractères à la brutale ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <!DOCTYPE HTML>
    <html>
    <head>
    <title>Nouvelle page 1</title>
    <style type="text/css">
    .short{
     border: solid 1px silver;
     width : 400px;
     }
    .lien {cursor:pointer;}
    </style>
    <script type='text/javascript' src="http://code.jquery.com/jquery.js"></script>
    <script type='text/javascript'>
    function shorten(){
    	$(this).data('texte',$(this).text())
    	$(this).text($(this).text().substr(0,100)).append( $("<span>").text('... lire la suite').css( {'color':'navy','font-style':'italic', 'cursor':'pointer'} ) )
    	} 
     
    function full(){
    	$(this).text( $(this).data('texte') )
    }	
     
    $(function(){
    $(".short").each(  shorten ).toggle(full,shorten )
     
     
    })
    </script>
    </head>
    <body>
    <div class="short">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et velit 
    lorem. Sed at magna ut tortor varius luctus. In laoreet tristique sem at
     scelerisque. Nullam non varius nulla. Sed dapibus urna at dolor aliquam
     id commodo eros sollicitudin. Phasellus molestie ligula id enim 
    scelerisque laoreet. Curabitur ultrices nulla eget dui tempus molestie. 
    Phasellus quis purus nulla, at venenatis ipsum. Etiam consectetur 
    venenatis est eget scelerisque. Praesent sodales consequat nibh vel 
    mollis.
    </div>
    <div class="short">
    Nulla vehicula enim sed nulla lobortis a tincidunt tortor varius. Morbi 
    venenatis, arcu nec sagittis ultrices, nibh ante accumsan magna, eget 
    suscipit lacus tortor vitae urna. Fusce suscipit eros et erat dictum 
    mattis. Etiam felis justo, condimentum at lacinia et, dapibus non ipsum.
     Fusce luctus turpis sed augue viverra aliquet. Praesent ut tempor 
    turpis. Mauris blandit eros in libero luctus pulvinar. Vivamus ac enim 
    magna, eu sagittis libero.
    </div>
    <div class="short">
    Proin in tellus laoreet elit fermentum mollis. Quisque varius semper 
    lectus ac molestie. Vestibulum elementum nunc vitae sapien commodo non 
    vulputate eros placerat. Nam mollis malesuada eros a posuere. Donec et 
    metus quis ante vehicula accumsan. Integer id orci quis lacus tempor 
    aliquam. In consequat feugiat erat, id porta risus gravida eu. Ut ac 
    erat et nunc imperdiet placerat. Quisque vulputate interdum dui, eget 
    suscipit mi scelerisque non. Sed consectetur fringilla lectus, eget 
    hendrerit tellus sodales in. Sed fermentum rhoncus dui sit amet 
    vestibulum. Vivamus mattis, augue facilisis tristique adipiscing, odio 
    leo vehicula ligula, vitae scelerisque neque erat ac eros. Aenean 
    iaculis sagittis sem, vel gravida diam bibendum nec. In semper sagittis 
    odio at blandit. Nullam ultricies imperdiet lectus eu facilisis. 
    Pellentesque habitant morbi tristique senectus et netus et malesuada 
    fames ac turpis egestas.
    </div>
     
    </body>
    </html>

  4. #4
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Merci pour la réponse mais j'ai opté pour la solution Ajax.

    Je ne récupère de la BDD que les 200 premiers caractères du message et la longueur totale du message.
    Si la longueur est supérieure à 200, j'ajoute le lien "Lire la suite" (traduit selon la langue de l'utilisateur.
    Le lien lance un Ajax qui récupère la totalité du message et l'affiche avec un lien pour réduire le message.

    Je publierai peut-être un billet de blog avec ce truc.

  5. #5
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Voilà, billet publié et ouvert aux commentaires ici ou là-bas.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Donc un ajax a chaque click ...
    moi aucun ^^ j'epargne le reseau

  7. #7
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Et si la requête récupère des dizaines de textes longs tu ramènes un gros paquet d'octets pour rien.

    Dans mon cas, ça me semblait plus rationnel de faire ainsi car, bien sûr, la page est beaucoup plus complexe que ce simple affichage de textes !

    Je préfère ramener 1 texte long sur demande de l'utilisateur tous les X secondes, voire minutes, nécessaires au temps de lecture que de le voir se lasser d'attendre le chargement de la page dont il ne lira peut-être que quelques pourcents du contenu.

    Ça se discute comme disait quelqu'un qui vient de nous quitter !

  8. #8
    Membre régulier
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2011
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Guinée

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 112
    Points : 90
    Points
    90
    Par défaut implémenter dans un éditeur comme ckeditor ou tinymce
    Salut tout le monde,
    Sa fait un bon moment que je voulais faire la même chose avec un éditeur comme ckeditor ou tinymce! Donc, je voudrais savoir si la méthode de CinePhil pourrais m'aider ou celle proposer par SpaceFrog!?
    Bref, je voudrais un fonctionnement du lien Lire la suite semblable à celui de Joomla!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Drupal] Lien "lire la suite"
    Par mwane dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/05/2011, 14h58
  2. Réponses: 4
    Dernier message: 01/08/2006, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo