dポイントプレゼントキャンペーン実施中!

PHPのページ送りについて教えてください。
http://www.webitem.jp/page11.html
のquickwrite2を使用させて頂いているのですが、携帯版(top_i.php)ですと画像が多くて
要領不足になってしまうので、ページ送りをしたいと思い勉強してました。
ネットでPHPのページ送りは発見したのですが、smartyとの組み合わせがまったく判りません。
そのソースが
【top_i.tpl】
{%section name=what loop=$what max=$max_what%}
<p class="what">
{%assign var=img value=$what[what].6%}

{%$what[what].5|date_format:"%m月 %d日 "%}
{%if $what[what].5|date_format:"%w" eq 0%}(日){%/if%}
{%if $what[what].5|date_format:"%w" eq 1%}(月){%/if%}
{%if $what[what].5|date_format:"%w" eq 2%}(火){%/if%}
{%if $what[what].5|date_format:"%w" eq 3%}(水){%/if%}
{%if $what[what].5|date_format:"%w" eq 4%}(木){%/if%}
{%if $what[what].5|date_format:"%w" eq 5%}(金){%/if%}
{%if $what[what].5|date_format:"%w" eq 6%}(土){%/if%}

{%if $img eq ""%}
<a href="{%if $what[what].4%}{%$what[what].4%}{%else%}#{%/if%}" target="{%if $what[what].8 eq 1%}_blank{%else%}_top{%/if%}">
{%else%}
<a href="{%if $what[what].7 eq 1%}file/{%$img%}{%elseif $what[what].4%}{%$what[what].4%}{%else%}#{%/if%}" target="{%if $what[what].8 eq 1%}_blank{%else%}_top{%/if%}">
{%/if%}
<span style="font-size:10px;">{%$what[what].1%}</span></a>
<br />
{%if $what[what].6%}
{%if $img%}
<a href="{%if $what[what].7 eq 1%}file/{%$img%}{%elseif $what[what].4%}{%$what[what].4%}{%else%}#{%/if%}" target="{%if $what[what].8 eq 1%}_blank{%else%}_top{%/if%}">
<img src="{%thumb file="file/$img" hint="false" addgreytohint="false" link="false" offset_w="" longside="32" shortside=""%}" border="0" alt="" style="padding:1px;" /></a>
<br />
{%/if%}
{%/if%}
{%$what[what].2%}
<p style="clear:both; margin: 0;"></p>
</p>
{%/section%}

1ページに3件つづ表示させたいのですが…
ネットで下記のサイトを見つけたのですが、さっぱり動きません。
http://shain.blog.conextivo.com/2007/06/smarty.h …

申し訳ございませんが、ページ送りを教えてください。

A 回答 (2件)

ざっくりと



{%php%}//ループの前に記述
$limit = 3;// per page
$page = empty($_GET['page']) ? 1 : $_GET['page'];
$list = $this->_tpl_vars['what'];
$max_page = ceil(count($list) / $limit);
$list = array_slice($list, ($page-1)*$limit, $page*$limit);
$pagination = array('prev' => '', 'next' => '');
if ($page > 1) {
$pagination['prev'] = '<a href="?page=' . ($page - 1) . '">前へ</a>';
}
if ($page < $max_page) {
$pagination['next'] = '<a href="?page=' . ($page + 1) . '">次へ</a>';
}
$this->assign('what', $list);
$this->assign('pagination', $pagination);
{%/php%}

<div class="pagination">{%$pagination.prev%} {%$pagination.next%}</div>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。無事動きました。
ホントに感謝しています。感激です!!

GW中、ネットと本屋で調べて判らず、駄目もとでここに
投稿しました。

そしたらなんとコードまで記載して下さって感謝しております。

疑問なのですが、このコードのどこでCSVファイルの総数をしらべているのですか?
もしよろしければ、ご教授お願いします。

お礼日時:2011/05/11 17:15

中のソースは見てないのでCSVかどうかも知らないですが..



{section name=what loop=$what max=$max_what}
$whatを展開してたのでcount($what)で総数を取っています。
$max_whatでいいかもしれません。

currentPate, perPage, maxPage(or総数)が取れていれば
PEAR::Pagerとかでもっとちゃんとしたページングも作れます。

//しかし {% って見難いですね。。
    • good
    • 0
この回答へのお礼

さっそくの返事ありがとうございます。
今度Pagerにも挑戦したと思います。
本当にありがとうございました。

お礼日時:2011/05/12 02:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!