Question

Je travaille sur un site d’entreposage d’informations sur la prévention du VIH. De nombreux collaborateurs publieront des articles via une interface graphique tinyMCE.

Les graphistes veulent bien sûr contrôler la longueur des pages. Ils souhaitent une pagination automatique basée sur la hauteur du contenu de la page.

Quelqu'un a vu le code AJAX pour gérer cela?

Si vous avez vu du code PHP capable de générer un nombre de caractères et une expression rationnelle en évitant de séparer des mots ou des balises?

Tous les liens sont très appréciés!

Était-ce utile?

La solution

Si cela n’est pas nécessaire, il n’ya aucune raison que vous ne puissiez pas utiliser une simple fonction de comptage de mots pour déterminer le lieu approprié pour ouvrir la page (au paragraphe le plus proche, je suppose). Vous pouvez même aller jusqu'à réduire le nombre de mots par page en fonction de la présence éventuelle d'images dans la publication, même en tenant compte de la taille des images.

Cela pourrait devenir très rapide, cependant, je pense que la meilleure façon de le faire est de leur permettre de définir manuellement les séparateurs de page avec une balise dans l'article que vous pouvez analyser. Quelque chose comme [saut de page] est assez simple et vous obtiendrez des sauts de page beaucoup plus logiques et lisibles que n’aurait une solution automatisée.

Autres conseils

Vous n'avez pas seulement à vous soucier du nombre de caractères, vous devez également vous soucier de la hauteur des images s'il y a des images ou tout autre type d'objets incorporés dans vos pages qui peuvent prendre de la hauteur. Le nombre de caractères ne vous donnera pas non plus une idée de la structure des paragraphes (un seul long paragraphe avec plus de caractères qu'une page avec plusieurs paragraphes peut être plus court).

Si vous souhaitez utiliser JavaScript, c'est peut-être la solution idéale. Envoyez l'intégralité de l'article au client et laissez JavaScript gérer la pagination. Depuis le client, vous pouvez détecter les hauteurs d’image et d’objet. Vous pouvez utiliser PHP pour placer des marqueurs indiquant l'emplacement des pages, puis utiliser JavaScript pour que cela se produise. À moins que les pages ne soient très longues, je ne pense pas que vous deviez utiliser plusieurs requêtes xmlHttpRequests (AJAX).

Une solution PHP simple est également simple, mais probablement pas idéale car vous ne devez pas gérer le nombre de lignes. Vous pouvez utiliser une variable GET pour déterminer votre position dans la page.

Bien que cela ne soit peut-être pas la réponse exacte que vous cherchez, vous devez toutefois vous assurer que votre site n'a pas une hauteur fixe. Les largeurs flexibles sont vraiment agréables, mais pas aussi critiques que la hauteur.

Surtout pour une cause comme celle-ci et pour un site à contenu important; il est juste d'exiger des hauteurs flexibles.

Comme mentionné par apphacker, vous ne pouvez pas vraiment détecter la hauteur depuis PHP et vous êtes un peu coincé avec javascript. Si vous êtes absolument coincé dans la pagination, il est probablement préférable de laisser vos auteurs de contenu décider quand rompre la page, de sorte que vous divisez la page en une vraie section, au lieu d'un mot, d'une phrase, etc.

Modifier: la convivialité devrait dicter la conception, et non l’inverse. Vous le faites mal;)

Une bonne pagination n’est pas une tâche simple. Ce n'est pas une simple question de codage. Les recherches scientifiques menées par Plass (1981) ont montré que la rupture de page optimale est en général NP-difficile. Vous devriez vous préoccuper des chiffres flottants, des sauts de ligne, des styles de police différents, etc.

Et la seule chose qu'un moteur HTML peut vous aider, c'est d'analyser une page dans une arborescence DOM. Qu'en est-il des tailles? Oui, vous pourriez avoir la largeur et la hauteur de police, les marges et les marges, la taille des images. Mais c'est tout. Toute la mise en page est sur vos épaules. Et le faire en javascript ... meh ...

La pagination automatique en hauteur fixe serait donc la seule solution envisageable côté serveur. PrinceXML est actuellement le meilleur convertisseur HTML2PDF. Mais cela coûte cher.

Si vous maîtrisez différentes hauteurs de page, vous pouvez utiliser la suggestion d'epalla. Mais ce n’est pas aussi simple qu’il le semble.

Quelques références pour la pagination:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top