Автоматически разбить контент на страницы

Тема в разделе "Вопросы новичков", создана пользователем rsrd, 29 янв 2010.

Статус темы:
Закрыта.
  1. rsrd

    rsrd

    Регистр.:
    21 апр 2007
    Сообщения:
    375
    Симпатии:
    34
    Есть контент (хх ххх символов), для одной страницы гс это слишком много. Как контент автоматически разбить на страницы?
    Может быть, в каком-то движке уже имеется такой функционал? Или есть какая-то прога, скрипт..?
     
  2. davy

    davy

    Регистр.:
    19 июл 2009
    Сообщения:
    162
    Симпатии:
    9
    TextKit
    http://textkit.ru/

    В бесплатной версии есть нужный функционал + может заливать на разные движки (в частности WP)
     
    rsrd нравится это.
  3. rsrd

    rsrd

    Регистр.:
    21 апр 2007
    Сообщения:
    375
    Симпатии:
    34
    В фри версии вроде как можно разбить текст на страницы только руками используя nextpage?
     
  4. hetolon

    hetolon Писатель

    Регистр.:
    23 сен 2009
    Сообщения:
    4
    Симпатии:
    0
    Через функцию strlen в php попробуйте.
     
  5. maxlibt

    maxlibt Создатель

    Регистр.:
    29 дек 2009
    Сообщения:
    33
    Симпатии:
    1
    А на каком движке сейчас сайт?
     
  6. fuckthesystem

    fuckthesystem Создатель

    Регистр.:
    29 дек 2007
    Сообщения:
    45
    Симпатии:
    6
    и все таки, как там автоматически разбивать?
    не нашел я такой функции, может не там искал?
     
  7. rsrd

    rsrd

    Регистр.:
    21 апр 2007
    Сообщения:
    375
    Симпатии:
    34
    В пхп не очень силен, поэтому если можно поконкретней..
    Желательно внимательно читать, прежде чем писать.
    fuckthesystem, Перейти по ссылке..
     
  8. fima32

    fima32

    Регистр.:
    25 дек 2007
    Сообщения:
    201
    Симпатии:
    13
    Сам недавно искал такую прогу, надо было карту сайта разбить по 150 ссылок.
    В общем вот ссылка, качайте там - Перейти по ссылке
     
  9. Grinder90

    Grinder90 Постоялец

    Регистр.:
    27 ноя 2009
    Сообщения:
    60
    Симпатии:
    3
    PHP:
    <?php
    /*
    Plugin Name: Auto paging mb
    Plugin URI: http://blog.portal.kharkov.ua/2008/01/24/paging-plugin-vozvrashhaetsya/
    Description: Automatic pagination for long posts. Use wp_link_pages() or link_pages() in template.
    Author: Yuri 'Bela' Belotitski
    Version: 1.3
    Author URI: http://www.portal.khakrov.ua/
    */ 
    /*  Copyright Yuri 'Bela' Belotitski
        Partial copyright Earl Miles.
    */
     

    function paging($posts) {

        
    $paging_number 3000### Максимальный размер страницы в символах

            
    if (!$posts[1] && (strpos($posts[0]->post_content,'<!--nextpage-->') === false)
                           && (
    strpos($posts[0]->post_content,'<!--nopage-->') === false)) {
              
    $body $posts[0]->post_content;
              
    $words_count mb_strlen($body,'UTF-8');
              if (
    $words_count $paging_number) {
                while (
    strlen(trim($body)) && ($i<1000)) {
                  
    $bodypart[$i] = paging_paragraph_split($body$paging_number);
                  
    $bodycount += mb_strlen($bodypart[$i],'UTF-8');
                  
    $body mb_substr($posts[0]->post_content$bodycount$paging_number'UTF-8');
                  
    $i++;
                }
                
    $posts[0]->post_content implode('<!--nextpage-->'$bodypart);
              }

        }
        return 
    $posts;
    }

    function 
    paging_paragraph_split($body$size) {
      
      if (
    mb_strlen($body,'UTF-8') < $size) {
        return 
    $body;
      }
      
      
    $teaser mb_substr($body0$size,'UTF-8');
      
    $position 0;
      
    $breakpoints = array('</p>','<br />','<br>',"\n");
      foreach (
    $breakpoints as $point) {
        
    $length_ mb_strrpos($teaser$point,'UTF-8');
        if (
    $length_ $length$length $length_;
      }

      if (
    $length) {
          
    $position $length;
          return (
    $position == 0) ? $teaser mb_substr($teaser0$position,'UTF-8');
      }

      
    $breakpoints = array('. ''!''?'' - ');
      
    $min_length mb_strlen($reversed,'UTF-8');
      foreach (
    $breakpoints as $point) {
        
    $length_ mb_strrpos($teaser$point,'UTF-8');
        if (
    $length_ $length$length $length_;
      }

      if (
    $length) {
          
    $position $length;
      }
      return (
    $position == 0) ? $teaser mb_substr($teaser0$position,'UTF-8');

    }

    if (!
    is_admin()) add_filter('the_posts''paging'10000);

    function 
    alt_link_pages($left=5$center=5$right=5) {
        global 
    $post$page$numpages$multipage;
        
    $output '';
    if ( 
    $multipage ) {
        if (
    $numpages <= $left $center $right) {
            for (
    $i 1$i <= $numpages$i++) {
                
    $output .= alt_link_pages_i($i);
            }
        } 
        elseif(
    $page $left $center) { 
            
    $lc $left $center;
            for(
    $i 1$i <= ($lc); $i ++) {
                
    $output .= alt_link_pages_i($i);
            }
            
    $output .= "... ";
            for(
    $i $numpages-$right+1$i <= $numpages$i++) {
                
    $output .= alt_link_pages_i($i);
            }
        }
        elseif((
    $page >= $left $center) && ($page $numpages $right $center 1)) {
            for(
    $i 1$i <= $left$i ++) {
                
    $output .= alt_link_pages_i($i);
            }
            
    $output .= "... ";
            
    $c floor $center );
            for(
    $i $page $c$i <= $page $c$i ++) {
                
    $output .= alt_link_pages_i($i);
            }
            
    $output .= "... \n";
            for(
    $i $numpages-$right+1$i <= $numpages$i++) {
                
    $output .= alt_link_pages_i($i);
            }
        }
        else {
            for(
    $i 1$i <= $left$i ++) {
                
    $output .= alt_link_pages_i($i);
            }
            
    $output .= "... ";
            for(
    $i $numpages $right $center$i <= $numpages$i ++) {
                
    $output .= alt_link_pages_i($i);
            }
        }
    }
    echo 
    $output;
    }

    function 
    alt_link_pages_i($i) {
        global 
    $page;
        if (
    $page == $i) {
            return 
    $i.' ';
        }
        elseif ( 
    == $i ) {
             return 
    '<a href="' get_permalink() . '">'.$i.'</a> ';
        } 
        else {
            if ( 
    '' == get_option('permalink_structure') || in_array($post->post_status, array('draft''pending')) )
                return 
    '<a href="' get_permalink() . '&amp;page=' $i '">'.$i.'</a> ';
            else
                return 
    '<a href="' trailingslashit(get_permalink()) . user_trailingslashit($i'single_paged') . '">'.$i.'</a> ';
        }
    }

    ?>

    Это плагин для wordpress, на автомате разбивает посты
     
  10. rsrd

    rsrd

    Регистр.:
    21 апр 2007
    Сообщения:
    375
    Симпатии:
    34
    Что-то антивирь на нее ругается, говорит «Trojan.MulDrop.origin»..
    Не этот ли это плагин: Перейти по ссылке ?
     
Статус темы:
Закрыта.