smarty產生靜態頁問題,值得思考?

來源:互聯網
上載者:User
我現在想使用smarty產生列表頁,是真靜態。
如:
分類:新聞
共有50條資料。
一個列表頁為10條資料。
共有5個分頁。

如dedecms產生欄目頁一樣。
請教下大牛們,如何??勞煩寫個小例子。


回複討論(解決方案)

php 怎麼做,smarty 還是一樣的沒啥區別

把產生的內容5個頁要做成一定格式的頁面,應該需要在smarty中專門寫個方法

http://bbs.php100.com/read-htm-tid-308311.html

版主發的連結,代碼不具體,模板也不好實現。

痛點在於,
列表頁模板如何寫?
背景程式,如何分頁產生不同的頁面,調用不同的文章。

我已經做成功了,分享代碼給大家,希望以後有人用得著。

public function tplmakelist(&$tpl){$pageSize=1;$_field=array('a.id','a.title','b.typedir','b.templist','b.keywords','b.description');$this->_tables=array(DB_FREFIX.'article a',DB_FREFIX.'article_category b');$data=parent::select($_field,array('where'=>array("a.catid=b.id AND b.id={$this->_R['typeid']}")));$total=count($data);//分類下的所有文章$pageTotal=ceil($total/$pageSize);//共有多少個分頁$tpl->template_dir=SMARTY_TEMPLATE_DIR;for ($i=1;$i<=$pageTotal;$i++){//產生的頁數$file_name=ROOT_PATH.$data[0]->typedir."/list_{$this->_R['typeid']}_$i.html";$this->_tables=array(DB_FREFIX.'article a',DB_FREFIX.'article_category b');$firstPage = ($i-1)*$pageSize;$datas=parent::select($_field,array('where'=>array("a.catid=b.id AND b.id={$this->_R['typeid']}"),'limit'=>"$firstPage,$pageSize"));$tpl->assign('findlist',$data[0]);$tpl->assign('pagelist',$datas);$content=$tpl->fetch($data[0]->templist);$this->MakeHtmlFile($file_name, $content);}}private function MakeHtmlFile($file_name, $content)     {     //目錄不存在就建立         if (!file_exists (dirname($file_name))) {              if (!@mkdir (dirname($file_name), 0777)) {                      die($file_name."目錄建立失敗!");              }          }     if(!$fp = fopen($file_name, "w")){              echo "檔案開啟失敗!";              return false;          }          if(!fwrite($fp, $content)){              echo "檔案寫入失敗!";             fclose($fp);              return false;          }      fclose($fp);       chmod($file_name,0666);      }


{foreach from=$pagelist item=list}{$list->title}{/foreach}

以後如果你要用的話,把資料庫的欄位換下,串連資料庫根據你自己的引擎來寫,當然還有待擴充,剛寫完的。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.