Question

Je suis dans le besoin d'une pointe dans la direction ici ...

J'ai un site avec un couple de différents types de contenu. Je veux afficher ce contenu dans une disposition en forme de livre. Le livre devrait être d'une largeur et une hauteur et les pages doivent être remplis avec autant de nœuds que forme de boîte. Il devrait être dans deux colonnes, avec la colonne de gauche étant rempli avant le droit.

Comment dois-je aborder ce sujet?

J'ai pensé à quelques solutions, ne savent pas qui sont possibles et que l'on est mieux ou que je peux combiner.

  1. Je pourrais créer une vue qui sélectionne plusieurs noeuds que ce qui est nécessaire. Ensuite, vérifiez combien de temps les noeuds est dans la couche de thématisation et de jeter les nœuds qui ne sont pas nécessaires. Téléavertisseurs doivent être fixés aussi.

  2. Utiliser des panneaux en combinaison avec des vues pour afficher une vue en deux colonnes, si cela est possible. Vous avez besoin d'un moyen de déterminer la quantité de noeuds qui est affiché sur chaque page, en fonction de la longueur du contenu.

  3. Ecrire un plugin / gestionnaire de vues de telle sorte que i peut choisir une quantité de noeuds qui a un maximum prédéterminé, la longueur du contenu max.

  4. Ecrire un nouveau style d'affichage pour les vues qui affiche le contenu en deux colonnes avec des hauteurs fixes.

  5. Ecrire un module personnalisé, des vues de congé et des panneaux hors de lui et tout faire moi-même avec db_queries.

apprécieraient et des conseils beaucoup. Vous ne cherchiez pas une solution finie, je ne suis pas peur de code et je contribuerai revenir si je crée quelque chose que quelqu'un d'autre peut utiliser (comme une vue plugin). quelqu'un juste besoin de me guider dans la bonne direction:)

Était-ce utile?

La solution

Le plus dur sera de trouver la quantité de contenu que vous devez remplir l'espace. Il n'y a pas vraiment une bonne façon de le faire soit depuis, elle dépendra à la fois le balisage et les styles.

La meilleure solution que je peux penser est de charger les nœuds avec javascript, ou peut-être ont juste les disponibles comme variables javascript. De cette façon, vous pouvez insérer les nœuds à votre page un par un. Vous pouvez ensuite dans les JS voir les hauteurs de tous les nœuds au total, et une fois que la hauteur est plus grand que x, il vous suffit de supprimer le dernier nœud Inséré.

Il est pas une solution parfaite, mais je pense que vous devriez regarder faire avec JavaScript. Le seul problème est qu'il wont très bien avec élégance se dégrade.

Autres conseils

Drupal vous aider à construire rapidement, et il semble que prometteur, mais ne parvient pas à subvenez aux besoins de client, concepteur également programmeur. Vous devez écrire une page du module, et certaines fonctions.

5ème solution que vous avez donné a peu de mal que d'autres. Écrivez une fonction d'avoir « teaser comme » le comportement, je vais revenir noeud formaté selon son type. Ne posez pas sur le système teaser de drupal. Si les teasers ont des hauteurs différentes, ajouter de la hauteur à la fonction teaser.

Je n'ai pas de réponse directe, mais ont quelques choses pour vous de réfléchir.

Il me semble que ce que vous recherchez est une combinaison d'un CSS3 Multicolumn mise en page (voir http://www.quirksmode.org/css/multicolumn.html par exemple) et de limiter le contenu affiché à une hauteur fixe.

Ma première pensée serait de créer une vue unique qui obtient plus que nécessaire, l'afficher en utilisant des colonnes CSS3, et le débordement de jeu: caché; pour le conteneur, de sorte que le texte supplémentaire est juste caché.

Si vous avez besoin pour obtenir plus particulièrement, vous devrez peut-être creuser pour les vues système de rendu pour limiter le nombre total de nœuds basés sur le nombre de caractères ont été rendus.

Mais puisque votre contrainte souhaitée est plus visuelle que les données axées sur, je pense que l'approche la plus pratique sera de javascript utiliser pour détecter la hauteur du texte et de l'état de débordement.

Il y a des choses qui ne sont pas claires à vos besoins. Quel est l'objectif des 2 types de contenu? Est-ce que un écran sur la gauche et l'autre à droite? Ou sont ces deux seulement différents types de contenu qui devraient se comporter de la même manière, mais nous ne voir un type de contenu à la fois sur une page donnée? Que faut-il le contenu débordés? Faut-il apparaître dynamiquement à la page 2, puis 3, puis 4, et ainsi de suite?

Une dernière réflexion: Peut-être charger tout le contenu que vous souhaitez parcourir, directement dans le navigateur. Peut-être faites-le commencer caché. Ensuite, utilisez javascript pour afficher, formaté en colonnes, et javascript utiliser pour gérer la pagination ainsi.

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