Pergunta

Eu estou trabalhando em um site de armazenamento de informações para a prevenção do HIV. Lotes de colaboradores será publicar artigos através de um tinyMCE GUI.

Os designers gráficos, é claro, querem controle sobre comprimentos de página. Eles gostariam paginação automática com base na altura do conteúdo na página.

Alguém viu o código AJAX para gerenciar isso?

Exceto que alguém viu código PHP que pode fazer uma contagem de caracteres e um olhar-behind regex às palavras divisão evitar ou tags?

Todos os links muito apreciada!

Foi útil?

Solução

Se ele não precisa ser exato não há nenhuma razão você não pode usar uma função de contagem de palavras simples para determinar um local apropriado para quebrar a página (no parágrafo mais próximo suponho). Você poderia ir tão longe como para reduzir as palavras por página com base em se há imagens no post, mesmo tendo o tamanho das imagens em conta.

Isso poderia começar rápido feio, porém, eu acho que a melhor maneira de fazer isso é permitir-lhes para definir manualmente os divisores de página com uma tag no artigo que você pode analisar. Algo como [pagebreak] é bastante simples e você vai ter quebras de página muito mais lógica e legível do que qualquer solução automatizada iria conseguir.

Outras dicas

Você não só tem que se preocupar com a contagem de caracteres, você também tem que se preocupar com alturas imagem se há imagens ou qualquer outro tipo de objetos incorporados em suas páginas que pode levar até a altura. contagem de caracteres também não vai lhe dar uma idéia da estrutura parágrafo (parágrafo único longa com mais personagens do que uma página com muitos parágrafos pode ser mais curto).

Se você está disposto a usar JavaScript, que pode ser a solução ideal, publicar o artigo inteiro para o cliente e deixá JavaScript lidar com a paginação. A partir do cliente pode detectar imagem e objeto alturas. Você poderia usar o PHP para colocar marcadores sobre onde você acha que as páginas devem ser, em seguida, usar JavaScript para fazer isso acontecer. A menos que as páginas são muito tempo eu não acho que você vai precisar fazer várias XMLHttpRequests (AJAX).

Por apenas uma solução PHP direto também é simples, mas provavelmente não ideal como você não está lidando com uma questão de gestão de contagens de linha. Você poderia usar uma variável GET para determinar onde você está na página.

Embora isto possa não ser a resposta exata que você está procurando, mas você realmente deve se certificar que seu site não tem uma altura fixa. largura flexível de são realmente bom, mas não tão crítica como a altura.

Especialmente para uma causa como esta, e um site de conteúdo pesado; É justo exigir alturas flexíveis.

Como mencionado por apphacker, você não pode realmente detectar a altura de dentro PHP e você está tipo de preso com javascript. Se você está absolutamente preso com paginação, provavelmente é melhor deixar os seus autores de conteúdo decidir quando interromper a página, para que você quebrá-lo em uma seção real, em vez de meados de palavra, frase, etc.

Edit: usabilidade deve ditar design, não o contrário. Você está fazendo errado;)

Um bom paginação não é uma tarefa simples. Isso não é uma simples questão de codificação. A investigação científica por Plass (1981) provou que a quebra página ideal é em geral NP-hard. Você deve se preocupar com figuras flutuantes, quebras de linha, diferentes estilos de fonte, etc.

E a única coisa que um motor de HTML pode ajudá-lo é analisar uma página para uma árvore DOM. E quanto a tamanhos? Sim, você pode ter a largura da fonte e altura da fonte, margens e guarnição, tamanhos de imagem. Mas isso é tudo. Tudo o layout está em seus ombros. E fazê-lo em javascript ... meh ...

Assim, a única solução viável de automática pagination altura fixa seria um do lado do servidor. PrinceXML é atualmente o melhor conversor HTML2PDF. Mas custa muito.

Se você é bom com alturas diferentes de página, você pode usar a sugestão de epalla. Mas isso também não é tão simples como parece.

Algumas referências para pagination:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top