由于1.51版本的程序,在新安装插件后,多加了一个注册机制,所谓注册,就是利用数据库中的admin_pages表,将插件文件和数据库中的配置信息联结起来,所以如果在编写过程中没有把插件注册到后台,后台是不会显示相关选项的。 解决这个问题的办法是在后台自己手动注册。 例如:我新安装了一个zencart新闻模块,可是安装完之后,后台不显示News Box Manager这个选项。那么该如何做呢? 1,打开文件admin\includes\boxes\extra_boxes文件夹,寻找类似news_box_manager_tools_dhtml.php的文件, 如果存在,则打开文件后可以看到 BOX_NEWS_BOX_MANAGER 和 FILENAME_NEWS_BOX_MANAGER 这两个常量 2,后台Admin Access Management(权限管理) --- Admin Page Registration(管理注册页面) ,接下来就填写一些东西。 Page Key(页面编码):这里只是填写注册页面的名称,随便取个名字,不过这个名字在数据表admin_pages中是唯一的,例如:mynewsbox Page Name(页面名称):这里填写上面所看到的的BOX_NEWS_BOX_MANAGER(该常量要以BOX_开头,易区分,用于命名插件名称,可以自己取名) Page Filename(页面文件名):这里填写上面所看到的FILENAME_NEWS_BOX_MANAGER(该常量要以FILENAME_开头,易区分,用于指定插件的文件,插件文件在admin\根目录中) Page Parameters(页面参数):留空 Menu(菜单):你想将新闻模块显示在哪个菜单下就选哪个 Display on Menu?(显示在该菜单下吗?):当然,这个选中 Sort Order(排序):该模块在下拉菜单中的排序,就填20吧 然后点击按钮就可以了。 3.如果admin\includes\boxes\extra_boxes文件夹中不存在上述的文件,
----------------------- zencart后台模块开发注意:
要在后台的指定栏目下加入一个模块,需要在几个位置加入文件: 例1: $za_contents[] = array('text' => BOX_CATALOG_NEWS_AUTHORS, 'link' => zen_href_link(FILENAME_NEWS_AUTHORS, '', 'NONSSL')); 上述常量BOX_CATALOG_NEWS_AUTHORS对应的页面链接文件是FILENAME_NEWS_AUTHORS常量指定的文件 $za_contents[] = array('text' => BOX_CONFIGURATION_NEWS_BOX_MANAGER, 'link' => zen_href_link(FILENAME_CONFIGURATION, '', 'NONSSL')); 上述常量BOX_CONFIGURATION_NEWS_BOX_MANAGER对应的页面链接文件是FILENAME_CONFIGURATION常量指定的文件,注意:FILENAME_CONFIGURATION常量对应的页面是configuration.php页面,系统自带常量,无需再定义,用于显示数据库表configuration中定义的插件配置选项。
文件二:/admin/includes/extra_datafiles/加入一个文件,此文件命名无限制(一般直接用模块名进行命名) 例2: define('BOX_CONFIGURATION_NEWS_BOX_MANAGER','News Manage'); 常量BOX_CONFIGURATION_NEWS_BOX_MANAGER定义的值是 News Manage,在菜单下面显示出来就是 News Manage 注意:在上述例1中的常量FILENAME_NEWS_AUTHORS不是系统自带常量,所以需要定义,该常量对应的是一个页面文件,定义如下: define('FILENAME_NEWS_AUTHORS', 'news_authors.php');定义在文件二中。 文件三:在/admin/加入一个文件,此文件是你的模块主文件 当然还可以在/admin/languages/下加入模块相应的语言文件,不过我个人开发的模块只是个人使用因此没使用语言文件,而是把语言文字直接写在模块主文件中 (责任编辑:好模板) |