Пагинация длинной статьи - PullRequest
       1

Пагинация длинной статьи

1 голос
/ 12 декабря 2011

Пытаюсь разбить на страницы большую статью для просмотра на мобильном сайте, построенном на платформе codeigniter.Мне удалось определить количество страниц для статьи, но я заблудился о том, как создавать ссылки и передавать аргументы в URI для разбивки на страницы.Это мой код от моего контроллера

function view_post($alias)
      {
           $post = $this->post_model->load_post($alias);
           $data['title'] = $post->post_title;
           $data['logged'] = $this->ion_auth->logged;
           $data['user_id'] = $this->ion_auth->user;
           $data['username'] = $this->ion_auth->username;  
           $data['comments'] = $this->comment_model->count_post_comments($post->ID);
           $link = strtolower($post->name)."/".$post->alias;
           $data['post_link'] = "www.giggsmagazine.com/".$link;
           $data['post'] = $post;

           // Article Pagination for long articles
           $posts = explode("<!-- pagebreak -->",$post->post_content);
           $page_count = count($posts) - 1;
           $data['pages'] = $page_count;
           $data['posts'] = $posts;
           if($this->isMobile())
          {
              $device = $this->agent->mobile;
              switch($device)
              {
                  case "BlackBerry":
                  $this->load->view('mobile/bb/inc/bb_header',$data);
                  $this->load->view('mobile/bb/posts/view_post');
                  $this->load->view('mobile/bb/inc/bb_footer');
                  break;
                  case "Apple Iphone" || "Apple Ipod Touch":
                  $this->load->view('mobile/iphone/inc/iphone_header',$data);
                  $this->load->view('mobile/iphone/posts/view_post');
                  $this->load->view('mobile/iphone/inc/iphone_footer');
                  break;
                  default:
                  $this->load->view('mobile/generic/inc/generic_header',$data);
                  $this->load->view('mobile/generic/view_post');
                  $this->load->view('mobile/generic/inc/generic_footer');
                  break;
              }
           }else {
           $this->load->view('templates/site_header',$data);
           $this->load->view('posts/view_post');
           $this->load->view('templates/site_footer');
           }
      }

Пожалуйста, укажите мне в правильном направлении

Ответы [ 2 ]

0 голосов
/ 12 декабря 2011

CodeIgniter имеет свою собственную библиотеку пагинации - почему бы не использовать это?

0 голосов
/ 12 декабря 2011

Что вы пробовали до сих пор? Вы, вероятно, лучше бы разбили на страницы на стороне клиента с помощью javascript / jQuery (подойдет простая ссылка «читать дальше», ограничив данные до определенного предела символов), но если вы хотите сделать это на стороне сервера, используя код, который вы Вы уже написали, вы, вероятно, сделали бы что-то вроде этого:

Добавить новый параметр 'page' в view_post:

function view_post($alias, $page = 0)

Создайте новую переменную для содержимого вашего сообщения

$data['post_content'] = $posts[$page];

И чтобы отобразить нумерацию страниц, поместите что-то вроде этого:

for ($i = 0; $i <= $page_count; $i++) {
  echo "<a href='/path/to/view_post/{$alias}/{$i}'>{$i}</a>";
}

Это должно вывести вас на правильный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...