Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2015, 06:55
maxtorplextor
 
Fecha de Ingreso: marzo-2008
Ubicación: España
Mensajes: 243
Antigüedad: 16 años, 2 meses
Puntos: 7
Rellenar columnas verticalmente con php

Hola,
Es un tema del que nunca he sabido encontrar información y por lo visto muchos programadores no saben solventar tampoco. Se trata de rellenar 4 columnas por ejemplo con entradas de una base de datos.

Mi código html de la plantilla estática sería:

Código HTML:
<div id="footer">

<div class="col-1-4">
<div class="box">
<ul>
<li><a href="#">Entrada A</a></li>
<li><a href="#">Entrada B</a></li>
</ul>
</div>
</div>

<div class="col-1-4">
<div class="box">
<ul>
<li><a href="#">Entrada C</a></li>
<li><a href="#">Entrada D</a></li>
</ul>
</div>
<div class="col-1-4">
<ul>
<li><a href="#">Entrada E</a></li>
<li><a href="#">Entrada F</a></li>
</ul>
</div>
</div>

<div class="col-1-4">
<div class="box">
<ul>
<li><a href="#">Entrada G</a></li>
<li><a href="#">Entrada H</a></li>
</ul>
</div>
</div>

</div> 
Lo que quiero conseguir es que por php se rellenen dinámicamente mis columnas, verticalmente A-Z y de izquierda a derecha por columnas para que queden como en la plantilla de arriba. El número de entradas va cambiando en función de la página en la que te encuentras entonces, lo que tiene que hacer el php imagino es:
-primero contar el número de entradas a mostrar
-dividir ese número por el número de columnas (4 en este caso), para saber así cuántas entradas van en cada columna para que queden uniformes (excepto la última que soportaría las desviaciones de una entrada más o menos).
-y empezar a rellenar A-Z empezando con la columna 1.

Una solución que me han dado pero que no es aceptable, es la siguiente. No es aceptable porque incluso mete todas las entradas/los enlaces dentro de un <div class="box"> cuando en la plantilla hay un sólo <div class="box"> por cada columna:

Código HTML:
<div class="col-1-4">
<div class="box">
<a href="{{ path('campo1_show',{'campo2Slug' : entity.campo2.slug, 'slug': entity.slug}) }}">Entrada {{ entity }}</a>
</div>
</div> 
El resultado de esto es que cada enlace está en un <div class="box"> cuando todos los enlaces de la columna tienen que estar juntos dentro de ese box. Y además no logra rellenarla como yo quiero, que es como he mencionado antes.

Espero que se entienda mi problematica y estaría agradecido de conocer vuestras opiniones al respecto, si alguna vez habéis tenido que hacer esto.

Última edición por maxtorplextor; 27/08/2015 a las 07:02