Foros del Web » Programando para Internet » PHP »

Sistema de paginacion de textos con php

Estas en el tema de Sistema de paginacion de textos con php en el foro de PHP en Foros del Web. Apreciados usuarios de forosdelweb: Estoy desarrollando una web sobre la segunda guerra mundial en la que me planteo introducir un sistema de paginacion de textos ...
  #1 (permalink)  
Antiguo 13/02/2003, 07:12
 
Fecha de Ingreso: febrero-2003
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
Sistema de paginacion de textos con php

Apreciados usuarios de forosdelweb:

Estoy desarrollando una web sobre la segunda guerra mundial en la que me planteo introducir un sistema de paginacion de textos por el cual introduciria los articulos en un formulario y este se introduciria en una base de datos y se mostraria en la web contando el numero de lineas del texto y paginandolo asi.

He probado a usar las funciones de php para contar caracteres pero me encuentro en el problema de que cuando se acaban los caracteres se cortan palabras o frases. Tambien he probado a hacerlo introduciendo un tag, por ejemplo <page> donde quiero cortar, pero eso le quita el automatismo que quiero darle, y para hacer eso lo hago a mano. Ante todo gracias.

PD: Me da igual base de datos que fichero de texto.
  #2 (permalink)  
Antiguo 13/02/2003, 08:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Hace un tiempo se discutión una interesante conversación sobre el tema de como almacenar tus artículos en tu Base de datos .. Se dieron varias alternativas que igual te interesan:

http://www.forosdelweb.com/showthrea...hreadid=107755

Sobre el caso específico de como cortar una frase y q no corte una palabra a medias .. revisa este mensaje:

http://www.forosdelweb.com/showthrea...hreadid=111171

(como veras .. es recomendable usar el buscador del foro .. La mayoría de temas comunos ya se han tratado en alguna ocasión.)

Un saludo,
  #3 (permalink)  
Antiguo 13/02/2003, 08:32
 
Fecha de Ingreso: febrero-2003
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
Apreciado Cluster, mil gracias por tu respuesta:

Me habia fijado en esos posts, ciertamente el buscador de estos foros es magnífico. El problema es que en el primer post realmente no se llega a un acuerdo sobre la forma de hacer el sistema, y en el segundo se estudia como eliminar la ultima palabra del texto, pero eso ya se hacerlo. Lo que pasa es que el texto no tiene pq acabar al final de una linea, pq entre medio pueden haber saltos de parrafo. Me explico con un ejemplo.

Aquel barco salio de puerto el dia 10 de diciembre de 1985 y se hundio el 11 de diciembre de es (aqui se podria cortar)

Si yo elimino la ultima palbra y la añado en la siguiente pagina, cosa que si se hacer, seguiria teniendo el problema de que me quedaria cortao en medio de la linea. Por esto yo habia pensado en la posibilidad de conseguir que el explode diferenciara lineas y no caracteres, de forma que yo podria decir cuantas lineas y no cuantos caracteres mostrar. A ver si entre todos conseguimos una forma de seleccionar lineas.

Muchas gracias por tu respuesta.
  #4 (permalink)  
Antiguo 13/02/2003, 08:46
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Alex... si realmente quieres hacer un sistema de Artículos Paginados, quizás lo mejor sea que tu mismo te gastes y desarrolles un poco mejor el sistema, digamos, algo un poquitin más avanzado que cubra tus espectativas.

A que voy ? Se que es muy sencillo pegar una chorrera de texto y hacer que el sistema solo te lo pagine... pero corres con problemas como este... Limitas por caracteres? por palabras? por párrafos ? La misma naturaleza del texto puede hacer que una página tuya sea enorme y otra corta...

Por eso, lo que te recomiendo que hagas, con un poco de paciencia y otro poco de programación un sistemita que en vez de cargar 1 artículo con el texto, te permita crear 1 artículo, y a ese artículo, irle agregando "páginas"... Un ejemplo puede ser lo que tenemos en nuestro sitio http://beta.zonaphp.com.

Esto se logra relativamente fácil. Es todo un juego de diseño de una buena base de datos y armar bien el administrador de notas ( lo más cómodo que te lo quieras hacer, me refiero, para la persona que edita los artículos ). Lo que necesitas, es una tabla con Artículos, que tenga datos como :
id_articulo
fecha_lanzamiento
autor
y demás campos que creas necesarios para tu articulo.

Luego, haces otra tabla, llamada Páginas, en la que pones:
id_pagina
id_articulo
texto
orden

Y así... cuando cargas un arṫiculo, vas a la base y recuperas la primera página de ese artículo (obviamente el campo "orden" indica en que orden secuencial esa página se muestra) y hasta puedes hacer una "barrá de navegacion" para que los usuarios puedan saltar de pagina en pagina mas facilmente.

En resumen, hacer lo que necesitas, y hacerlo bien, tan solo requiere un poco mas de trabajo, pero la diferencia para el usuario y el editor de las notas, puede ser considerable. Te invito a que lo intentes y verás que los resultados te serán beneficiosos.

Saludos.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #5 (permalink)  
Antiguo 13/02/2003, 08:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Suponiendo que tus textos esten escritos como parrafos y separador \n .. podrías buscar ese caracter para determinar donde acaba cada parrafo. (con explode() ..)

Creo q sería mejor cortar en "parrafos" y no en palabras o lineas para tu caso concreto.

Si piensas cortar en lineas .. mmm es dificil controlar eso . pues tendrias q definir como "linea" a X caracteres por LInea e implementar tu propio sistema para mostrar x caracteres por linea ..

Para esto último te puedes ayudar de:

wordwrap()
http://www.php.net/manual/en/function.wordwrap.php

(fijate en los comentarios de los usuarios de esta función .. tienes ejemplos)

Sobre el mensaje q te di sobre la discursión de como implementar tu sistema de "textos" .. No es q no se aclare una solución . sino que hay varias. Yo apostaba por paginar esos textos en campos de tu BD .. (con mas o menos complejidad y normalización de la base de datos segun quieras) .. Otros como josemi apostaban en un principio por usar caracterres de control propios para determinar donde "cortar" el texto ... Es cosa que veas diferentes posibles soluciones para q lo evalues y decidas por ti mismo ..

Un saludo,
  #6 (permalink)  
Antiguo 13/02/2003, 09:26
 
Fecha de Ingreso: febrero-2003
Mensajes: 9
Antigüedad: 14 años, 10 meses
Puntos: 0
A ver, primero sobre lo del sistema de zonaphp.com lo que pasa es que yo solo incluire texto en mis articulos, pq son sobre la segunda guerra mundial y me gustaria conseguir la utopia de que todas las paginas tengan el mismo largo. Esto solo lo puedo conseguir si todas las paginas tienen el mismo numero de lineas (contando ademas lineas blancas de cambio de parrafo, pq tb ocupan).

Por eso mi obsesion por contar lineas. Por ello tp quiero separar por parrafos. En serio, no es que quiera hacer un sistema de paginado y haya venido aqui a que me den el codigo hecho, he intentado mil codigos con ficheros, bases de datos etc... y no me sale, por eso buscaba aqui algunas pautas o ideas de como lograrlo. Gracias.
  #7 (permalink)  
Antiguo 13/02/2003, 10:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ya te lo comenté .. usa wordpad() .. con eso controlas el numero de caracteres por lineas y de ahí las lineas a mostrar .. tal vez si a su vez las gestionas en un array ..

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.