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

Статус
В этой теме нельзя размещать новые ответы.

rsrd

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

TextKit


В бесплатной версии есть нужный функционал + может заливать на разные движки (в частности WP)
 
  • Нравится
Реакции: rsrd
В фри версии вроде как можно разбить текст на страницы только руками используя nextpage?
 
Через функцию strlen в php попробуйте.
 
А на каком движке сейчас сайт?
 
TextKit
*** скрытое содержание ***
В бесплатной версии есть нужный функционал + может заливать на разные движки (в частности WP)

и все таки, как там автоматически разбивать?
не нашел я такой функции, может не там искал?
 
Через функцию strlen в php попробуйте.
В пхп не очень силен, поэтому если можно поконкретней..
А на каком движке сейчас сайт?
Желательно внимательно читать, прежде чем писать.
и все таки, как там автоматически разбивать?
не нашел я такой функции, может не там искал?
fuckthesystem, Для просмотра ссылки Войди или Зарегистрируйся..
 
Сам недавно искал такую прогу, надо было карту сайта разбить по 150 ссылок.
В общем вот ссылка, качайте там - Для просмотра ссылки Войди или Зарегистрируйся
 
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($body, 0, $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($teaser, 0, $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($teaser, 0, $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 / 2 );
		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 ( 1 == $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, на автомате разбивает посты
 
Сам недавно искал такую прогу, надо было карту сайта разбить по 150 ссылок.
В общем вот ссылка, качайте там - Для просмотра ссылки Войди или Зарегистрируйся
Что-то антивирь на нее ругается, говорит «Trojan.MulDrop.origin»..
Это плагин для wordpress, на автомате разбивает посты
Не этот ли это плагин: Для просмотра ссылки Войди или Зарегистрируйся ?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху