1.添加后台菜单

<?xml version="1.0"?><config><menu><cms><children><news translate="title" module="news"><title>news</title><sort_order>40</sort_order><action>news/adminhtml_news/test</action></news></children></cms></menu><acl><resources><admin><children><cms><children><news translate="title" module="news"><title>new_news</title></news></children></cms></children></admin></resources></acl>
</config>

记得添加 Data.php


2.添加Admin路由

<?phpclass Www_News_Adminhtml_NewsController extends Mage_Adminhtml_Controller_Action
{public function indexAction(){$this->_title($this->__('CMS'))->_title($this->__('News'));$this->loadLayout();$this->_setActiveMenu('cms/news');$this->_addBreadcrumb(Mage::helper('adminhtml')->__('News Manager'), Mage::helper('adminhtml')->__('News Manager'));$this->_addContent($this->getLayout()->createBlock('news/adminhtml_news')); //这里指的是Container block的路径$this->renderLayout();}
}


3.添加表格

1) 添加Grid Container

<?phpclass Www_News_Block_Adminhtml_News extends Mage_Adminhtml_Block_Widget_Grid_Container
{public function __construct(){$this->_controller = 'adminhtml_news';  // "$this->_blockGroup . $this->_controller . '_grid' " ;$this->_blockGroup = 'news'; // 其实是模块名$this->_headerText = Mage::helper('news')->__('News Manager');$this->_addButtonLabel = Mage::helper('news')->__('Add News');parent::__construct();}
}

2) 添加Grid

Grid 的目录是根据 Container 的__constructor() 初始化$this->_controller  , $this->_blockGroup 的值。


<?phpclass Www_News_Block_Adminhtml_News_Grid extends Mage_Adminhtml_Block_Widget_Grid
{public function __construct(){parent::__construct();$this->setId('newsGrid');$this->setDefaultSort('news_id');$this->setDefaultDir('ASC');$this->setSaveParametersInSession(true);}protected function _prepareCollection(){$collection = Mage::getModel('news/news')->getCollection();$this->setCollection($collection);return parent::_prepareCollection();}protected function _prepareColumns(){$this->addColumn('news_id', array('header' => Mage::helper('news')->__('ID'),'align' =>'right','width' => '50px','index' => 'news_id',));$this->addColumn('title', array('header' => Mage::helper('news')->__('Title'),'align' =>'left','index' => 'title',));$this->addColumn('is_active', array('header' => Mage::helper('news')->__('Status'),'align' => 'left','width' => '80px','index' => 'is_active','type' => 'options','options' => Mage::getSingleton('news/news')->getAvailableStatuses(),));$this->addColumn('created_at', array('header' => Mage::helper('news')->__('Created At'),'align' =>'left','width' => '180px','type' => 'datetime','index' => 'created_at',));$this->addColumn('updated_at', array('header' => Mage::helper('news')->__('Updated At'),'align' =>'left','width' => '180px','type' => 'datetime','index' => 'updated_at',));$this->addColumn('action',array('header' => Mage::helper('news')->__('Action'),'width' => '50px','type' => 'action','getter' => 'getId','actions' => array(array('caption' => Mage::helper('news')->__('Edit'),'url' => array('base'=>'*/*/edit'),'field' => 'id')),'filter' => false,'sortable' => false,'index' => 'stores',));return parent::_prepareColumns();}public function getRowUrl($row){return $this->getUrl('*/*/edit', array('id' => $row->getId()));} //设置 grid 里面 行的 url ,这样点击一整行内都会跳转到 edit url
}


在代码中我们使用了Mage::getSingleton('news/news')->getAvailableStatuses()获取可用的状态,我们在
/app/code/local/Www/News/Model/News.php中添加getAvailableStatuses()函数:
<?phpclass Www_News_Model_News extends Mage_Core_Model_Abstract
{//....const STATUS_ENABLED = 1;const STATUS_DISABLED = 0;public function getAvailableStatuses(){$statuses = new Varien_Object(array(self::STATUS_ENABLED => Mage::helper('news')->__('Enabled'),self::STATUS_DISABLED => Mage::helper('news')->__('Disabled'),));return $statuses->getData();}
}

刷新:

21. Magento 创建新闻模块(2)相关推荐

  1. Magento 2开发教程 - 创建新模块

    视频在youtube网站国内访问不了,可以使用翻墙软件查看. 视频地址:www.youtube.com/embed/682p52tFcmY@autoplay=1 下面是视频文字介绍: Magento ...

  2. magento创建模块

    Magento团队创建了一个更为抽象的MVC模式,大概的运行过程是, URL地址首先被一个PHP文件解析 该PHP文件会根据解析情况实例化一个Magento应用 这个Magento应用会实例化一个前端 ...

  3. 模块版网站与html网站,网站新闻模块代码html

    网站新闻模块代码html [2020-09-05 21:12:43]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...

  4. SpringCloud创建Gateway模块

    1.说明 本文详细介绍Spring Cloud创建Gateway模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 和已经创建好的Eureka ...

  5. Django博客搭建-新闻模块6-新闻搜索功能(Django+Haystack+elasticsearch)

    Blog项目--新闻模块 文章目录 Blog项目--新闻模块 一.需求分析 二.搜索引擎原理 三.Elasticsearch 特点 四.使用docker安装elasticsearch 五.后端代码实现 ...

  6. Magento微信登陆模块 / Magento微信联合登陆 / 支持Magento 1.9.X

    2019独角兽企业重金招聘Python工程师标准>>> 网站接入微信联合登陆的好处 通过接入微信登录功能,用户可使用微信帐号快速登录你的网站,降低注册门槛,提高用户留存.并可在用户授 ...

  7. 客快物流大数据项目(五十二):根据数据库表及字段创建公共模块

    根据数据库表及字段创建公共模块 根据数据库的表及表结构创建Bean对象 一.在公共模块创建包结构 在公共模块的java目录下,创建如下程序包:

  8. Django博客系统注册(创建用户模块应用)

    1. 创建用户模块应用 创建应用users $ python manage.py startapp users 2. 注册用户模块应用 INSTALLED_APPS = [...'users.apps ...

  9. maven 命令创建多模块工程

    2019独角兽企业重金招聘Python工程师标准>>> 1.创建simpleDemo,用来给各个子模块继承 1).进入命令行,输入以下命令: mvn archetype:genera ...

  10. 基于maven使用IDEA创建多模块项目

    原文地址:http://blog.csdn.net/williamhappy/article/details/54376855 鉴于最近学习一个分布式项目的开发,讲一下关于使用IntelliJ IDE ...

最新文章

  1. cisco路由器EIGRP配置实例
  2. 图像处理常用边缘检测算子总结
  3. matlab isinteger,MATLAB数据类型
  4. Prim 算法及其高效实现
  5. 知识图谱应用实战案例100篇(一)-阿里巴巴超大规模知识图谱预训练实践:商品分类
  6. 微信开发学习日记(六):weiphp框架
  7. 鸽主姓名查询成绩_鸽主姓名
  8. 数据科学 IPython 笔记本 7.14 处理时间序列
  9. LongAdder,AtomicIntegerFieldUpdater深入研究
  10. HBase 1.3(NOSQL) 发布,性能大幅提升
  11. 不要用面向对象编程分散新手程序员的注意力
  12. 西安电子科大2010年的硕士博士考试推荐书
  13. Science子刊:母亲的身体气味增强了婴儿和成人的脑-脑同步
  14. 微雪云进销存ERP功能很强大,你忍一下。
  15. EV SSL证书和其证书品牌
  16. Java网络象棋游戏(功能版)
  17. word2003,使用修订模式
  18. 解决win10系统搜索框无法使用
  19. Maven打包跳过单元测试
  20. linux下载pip

热门文章

  1. 《软件构架实践》阅读笔记4
  2. 实战案例:贷款分析之plotly VS ggplot2
  3. 【洛谷P4706】取石子
  4. spring boot区分生产环境和开发环境
  5. USB设备驱动理解(wds)
  6. XMPP聊天环境配置
  7. sqlserver 获取当前操作的数据库名称
  8. 用pathon实现计算器功能
  9. vue、react隐式实例化
  10. rabbitmq 安装 windows