Fractionner un nœud en plusieurs pages [fermé]


14

Type de contenu - article. Je souhaite diviser les articles en plusieurs pages lorsque l'article lui-même devient trop long. Par exemple, si nous avons un article "comment fonctionne Drupal", ce serait énorme :), je veux le diviser en plusieurs pages et à un moment donné, vous obtenez "continuez à la page 2 de 10" puis "continuez à la page 3 de 10 " etc. J'espère que vous m'avez eu et pouvez partager quelques idées. Merci d'avance!


Connexes: créez un pager entre les champs . Quelques réponses vous seront probablement utiles. Si vous en adopterez un, publiez une réponse ici;)
Mołot

@Molot, connaissez-vous un moyen de remplacer la vue par défaut du nœud par Vues, ​​alors je peux utiliser le pager par défaut des vues. Ce serait la solution la plus propre pour moi.
Ivan Ivanov

/node/%Définissez simplement le chemin de la page de vues et utilisez des filtres contextuels (afair) pour obtenir le nœud approprié à partir de son nidchemin. En cas de doute, posez une nouvelle question, ne soyez pas surpris si quelqu'un découvre qu'elle a déjà été posée.
Mołot

Réponses:


9

Je suggère de diviser votre texte en une partie avec jquery et en faisant défiler vous ajoutez (peut avec un certain effet comme fadeIn ....) une autre partie à la partie principale.
Je vous propose de réaliser ce travail par jquery (solution côté client)


C'est ainsi que j'ai implémenté des onglets sur l'une des pages que j'avais l'habitude de maintenir. Je dois admettre - fonctionne assez bien. C'est vraiment une bonne idée de sortir toutes les pages et de masquer chacune sauf la première dans js. Et implémentez également #1dans l'URL pour déterminer à quelle page l'utilisateur est lié. (L'implémentation de mon onglet est en ligne ici , désolé mais je ne possède plus le copyright du code JS utilisé). AJAX peut également fonctionner, mais d'un autre côté, c'est généralement une surpuissance, ASCII se comprime bien et la plupart du temps est utilisé pour initier la connexion, pas le transfert réel, donc c'est un gaspillage.
Mołot

Utiliser ajax pour charger un travail simple comme extraire le contenu (corps) de la base de données du formulaire n'est pas un travail optimal et c'est une perte de charge sur le serveur, après cela, pas besoin d'être un développeur js très expert par le code de ligne maximom 50, nous pouvons implémenter ce que j'ai suggéré , à propos, je pense que la solution côté client est la meilleure solution pour ce travail .tnx pour vous commentez et discutez @ Mołot :)
Yusef

La bonne mise en œuvre de example.com/article/23#page-1prendra plus de 50 lignes. Et cela en vaut la peine, afin que les utilisateurs puissent avoir des permaliens directement sur la page de leur choix.
Mołot

Je préférerais également cette solution - elle est beaucoup plus utilisable pour les personnes qui en ont assez d'attendre que la pile Drupal entière charge chaque page. Il permet également à Google d'indexer l'article en tant qu'entité unique au lieu de résultats de recherche susceptibles de placer les gens au milieu d'un article. Je suggérerais cependant de vérifier l'accessibilité pour les lecteurs d'écran et similaires - cela pourrait rendre cette solution un peu plus compliquée (bien que toujours la meilleure solution IMO)
Nerdmaster

eh bien, je l'ai fait à l'extrémité avant avec plusieurs lignes de jquery. J'ai fait en sorte que le champ du corps accepte un nombre illimité de valeurs (simulant différentes pages). Ensuite, basculez simplement btw display none / block.
Ivan Ivanov

9

Vous recherchez un module Smart Paging

Fournit la division du long contenu Drupal en sous-pages par nombre de caractères / mots ou par une balise HTML d'espace réservé pour les entités de nœud, d'utilisateur et de terme de taxonomie.

Pour Drupal 6

Module de pagination , vous pouvez définir la limite de caractères et il se divisera automatiquement en sous-pages voir la capture d'écran ci-dessous

Divisez automatiquement les pages longues en pages plus petites par mots (ou caractères)

entrez la description de l'image ici


Merci pour votre réponse! Je travaille cependant sur Drupal 7. Existe-t-il une telle solution pour D7?
Ivan Ivanov

Eh bien, essayé le module Smart Paging, il semble faire le travail, mais il n'est pas compatible avec les téléavertisseurs Views AJAX et dans mon cas, j'utilise un tel.
Ivan Ivanov

0

Eh bien, une solution de contournement que j'utiliserais serait de le diviser en plusieurs articles et de les combiner avec une page d'affichage (qui a un pager) puisque vous travaillez déjà avec des vues. Filtrez simplement vos articles sur nid ou sur une balise (cachée). Si vous voulez qu'ils aient tous la même taille maximale, vous pouvez utiliser https://drupal.org/project/maxlength . Ajoutez la partie X au titre, de cette façon, il est également facile pour les lecteurs de distinguer les différentes pages.


0

Je ne vois pas ce que le pager Views AJAX (quelles pages consultent les lignes de résultats) doit avoir avec l'affichage de votre article (qui est en soi 1 résultat uniquement). Deux choses différentes à la page. Mais vous souhaiterez peut-être afficher votre "contenu d'article sous la forme d'un champ calculé". Commencez avec un champ calculé qui imprime uniquement les x premiers mots de votre champ de contenu d'article. (ou jusqu'au premier saut de page) Terminez-le avec un "lien supplémentaire" html généré automatiquement. Ce lien supplémentaire appelle votre point de vue avec un argument. Vous pouvez utiliser cet argument dans le PHP de votre champ calculé. Affichez la xième partie en fonction de votre argument reçu.


Merci pour votre réponse! Problème # 1103810, lorsque vous activez le module Smart Pagging, il décompose le module Views Load More (ou Views Ajax Pager), vous ne pouvez donc pas utiliser les deux. C'était ce que je voulais dire.
Ivan Ivanov
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.