25. Magento 创建新闻模块(5)
来源:互联网 发布:现在淘宝什么最赚钱 编辑:程序博客网 时间:2024/04/25 09:00
在以上几节的Magento开发实例中,我们已经为新闻模块创建了后台应用,使我们可以在后台管理新闻数据,当我们向后台添加一些测试数据后,这一节中我们将在前台显示新闻列表。
1 前台控制器
修改/app/code/local/Www/News/controllers/IndexController.php的indexAction()方法:
<?phpclass Www_News_IndexController extends Mage_Core_Controller_Front_Action{ public function indexAction() { $this->loadLayout(); $this->renderLayout(); }}
2 添加Layout文件
添加/app/design/frontend/default/default/layout/news.xml
<?xml version="1.0"?><layout version="0.1.0"> <news_index_index> <reference name="root"> <action method="setTemplate"><template>page/1column.phtml</template></action> </reference> <reference name="content"> <block type="page/template_container" name="news.container" template="news/container.phtml"> <block type="page/html_pager" name="news.pager.top" as="pager_top" template="page/html/pager.phtml"/> <block type="page/html_pager" name="news.pager.bottom" as="pager_bottom" template="page/html/pager.phtml"/> <block type="news/list" name="news.list" as="news_list" template="news/list.phtml"> <action method="bindPager"><pager>news.pager.top</pager></action> <action method="bindPager"><pager>news.pager.bottom</pager></action> </block> </block> </reference> </news_index_index></layout>
并在config.xml文件中添加layout:
<config> <frontend> <layout> <updates> <news> <file>news.xml</file> </news> </updates> </layout> </frontend></config>
3 添加Container模板
在Layout中我们设置container的模板为”news/container.phtml”
添加/app/design/frontend/default/default/template/news/container.phtml
<div class="page-news"> <div class="page-title"><h1>News</h1></div> <?php echo $this->getChildHtml('pager_top') ?> <?php echo $this->getChildHtml('news_list') ?> <?php echo $this->getChildHtml('pager_bottom') ?></div>
4 添加List新闻列表Block
添加/app/code/local/Www/News/Block/List.php
<?phpclass Www_News_Block_List extends Mage_Core_Block_Template{ protected function _prepareLayout() { $collection = Mage::getModel('news/news')->getCollection(); $collection->addFieldToFilter('is_active', MagentoBoy_News_Model_News::STATUS_ENABLED); $collection->setOrder('created_at', 'DESC'); $this->setCollection($collection); return $this; } public function bindPager($pagerName) { $pager = $this->getLayout()->getBlock($pagerName); if ($pager) { $pager->setLimit(5); // 设置每页显示新闻的数量 $pager->setCollection($this->getCollection()); $pager->setShowPerPage(false); } }}
5 添加List新闻列表Template
添加/app/design/frontend/default/default/template/news/list.phtml
<?php $_items = $this->getCollection();?><?php if ($_items->getSize()):?> <ul class="news"> <?php foreach ($_items as $_item):?> <li style="margin:20px;"> <h3><?php echo $_item->getTitle();?></h3> <div>Posted on <?php echo $this->helper('core')->formatDate($_item->getCreatedAt());?></div> <div><?php echo nl2br($this->htmlEscape($_item->getContent()));?></div> </li> <?php endforeach;?> </ul><?php else:?> <p class="note-msg"> <?php echo $this->__('There are no news.'); ?> </p><?php endif;?>
打开http://www.example.com/news页面,我们将看到新闻页面,每页显示5条新闻,如果新闻数量超过5条,将显示分页栏。
0 0
- 25. Magento 创建新闻模块(5)
- 20. Magento 创建新闻模块(1)
- 21. Magento 创建新闻模块(2)
- 22. Magento 创建新闻模块(3)
- 24. Magento 创建新闻模块(4)
- Magento 新闻模块开发教程 (一) 创建骨架目录
- Magento 新闻模块开发教程 (三) 创建前后端控制器
- Magento 新闻模块开发教程 (五) 创建辅助类
- Magento 新闻模块开发教程 (六) 创建模型
- Magento 新闻模块开发教程 (四) 创建模块的xml配置文件
- magento中创建一个模块
- Magento 新闻模块开发教程 (二) 激活你的模块
- Magento 新闻模块开发教程 (七) 建立模块的SQL
- Magento 新闻模块开发教程 (八) 建立模板文件
- Magento 新闻模块开发教程 (九) 建立Block
- 创建一个新的模块在Magento
- Magento创建管理列表和后台模块
- Magento 如何创建自定义后台模块?
- foundation框架
- LESS学习笔记(下)
- Ubuntu 15.10使用——系统安装
- Pig_1. Pig 基础知识 -- 待完善
- 一个松鼠大战游戏实现
- 25. Magento 创建新闻模块(5)
- jQuery validate 和artDialog的兼容问题
- 技术学习链接
- 基于 Open vSwitch 的 OpenFlow 实践
- android 在 AndroidManifest.xml 里 Service 元素的常见选项
- python CGI 编程环境搭建
- JavaScript_DOM编程艺术第二版学习笔记-第5章
- C语言字符和字符串的比较
- Zookeeper简介