站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
ImpressPages/区域定制
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{ImpressPages top}} 本条目主要通过一个实例来讲解区域定制的操作过程。 在该实例中,我们通过自定义一个区域来显示从[[数据库]]中获得数据,我们将在站点中新建几个新的页面,然后完全控制他们。他们将不会在后台的'''Menu Management(菜单管理)'''中进行管理,而我们的自定义的区域将会告诉系统有多少页面以及页面的内容是什么。 在阅读本实例前,请先阅读下面两个条目: *[[ImpressPages/区域和页面|区域和页面]] *[[ImpressPages/插件开发|插件开发]] ==实例最终效果== 根据从数据库中获得的数据自动生成的页面: [[image:zonecustom1.jpg|ImpressPages区域定制|link=ImpressPages/区域定制]] [[image:zonecustom2.jpg|ImpressPages区域定制|link=ImpressPages/区域定制]] ==实例中用的源码== 请下载这个源码,然后在阅读本教程的过程中分析了解它,通过源码中的'''readme.txt'''来了解该源码的安装,然后通过下面的步骤来了解这些源码时怎样一步步被构建出来的。 [http://www.impresspages.org/file/ip_plugin_examples_address_book_zone_1_00.zip 源码] ==操作步骤== *'''第一步,安装“address book”示例插件''' 想要显示从数据库中获得的数据记录,首先数据库中需要具有这些记录。为了简化这一操作,我们使用了AddressBook这个插件。这个插件将会在数据库中创建一个表,以及读取、更新、删除等功能。 *'''第二步,创建“address book zone”插件sceleton''' 我们已经安装了'''AddressBook'''插件了,现在我们需要创建一个新的插件来将数据库中的记录注册成系统中的页面。我们将该插件称之为'''AddressBook zone'''。所以,我们首先需要为该插件创建一个基本的文件目录,然后安装它。这个与[[ImpressPages/插件开发|插件开发]]中的例子的操作时一直的,只要将其中的'''hello_world'''替换成'''address_book_zone'''即可。 *'''第三步,创建一个类,用来读取数据库''' '''AddressBook'''插件提供了管理数据库记录的界面,但我们仍然无法通过PHP代码来访问数据,所以我们在'''Address book zone'''中创建一个'''db.php'''类,该类有两个方法: :'''getContacts''' -读取所有记录 :'''getContact''' - 根据ID来读取某一条记录 该类中没有更新以及删除操作,因为我们并不需要通过[[PHP]]来进行这些操作。 [http://www.impresspages.org/file/db_php_1.zip db.php] *'''第四步,创建模板文件''' 我们需要两个视图: :所有联系地址的列表 :一个联系地址的详细信息 该模板类中包含两个函数,一个用来显示一个记录,里一个用来显示所有记录的列表。 [http://www.impresspages.org/file/template_php_1.zip template.php] *'''第五步,创建一个根元素类''' 在ImpressPages [[CMS]]的所有页面都应该扩展一般的“Element”类,因此我们创建一个'''RootElement'''类,主要用来负责打印所有记录的列表。可以在下面将要提到的'''zone'''类中了解'''RootElenment'''类是怎样被使用的。 [http://www.impresspages.org/file/root_element_php_1.zip root_element.php] *'''第六步,创建一个常用元素类''' 该类将会生成每个记录的类容,与'''RootElement'''类一样,也是一般的'''Element'''类的扩展,也可以在下面将要提到的'''zone'''类中了解'''RootElenment'''类是怎样被使用的。 [http://www.impresspages.org/file/element_php_1.zip element.php] *'''第七步,创建区域与类''' Zone类是本实例中主要的也是最重要的一个文件,区域也是根据该类来生成页面的的,每个页面就是'''elemnet'''类扩展而来的一个对象,我们具有两个这样的类: :'''RootElement'''--用来显示所有记录的列表; :'''Element'''--用来显示一个记录; 在这里我们的'''Zone'''类是一般的'''Zone'''类的扩展,具有三个函数: :'''getElemnets'''--通过具体的准则来获取一个元素数组,通常用来生成一个菜单; :'''getElement'''--通过具体的ID获取某一个元素; :'''findElement'''--通过具体的[[url]]来找到合适的元素以及获取变量; [http://www.impresspages.org/file/zone_php_1.zip zone.php] *'''第八步,向站点中的区域列表添加我们新建的类''' 目前我们已经具有了类“Zone”,可以从数据库中获取数据,也可以创建适当的“Element”对象,并且向站点提供这些信息。但是我们还需要告诉系统怎样使用这个类。 登录到管理员控制面板,来到'''Developer->Zones(开发人员->区域)'''标签页面,然后点击页面上的'''New Record(新建记录)''',填写下面信息: :'''Name'''--名称,也就是你新建的区域的名称,根据个人喜好或者需要来填写; :'''Key'''--关键字,一个将会在[[PHP]]代码中使用到的字符串,用来区别该区域(不能包含特殊字符); :'''Template'''--选择模板文件(默认的是main.php); :'''Associated module group'''--相关的模块组,填写'''example''' :'''Associated module'''--相关模块,填写'''address_book_zone''' 这一操作将会在系统中注册这个新的“zone”类,现在它就可以在代码中使用了,继续向下看。 *'''第九步,将我们自定义的区域集成到主题中''' 打开主题目录中的'''main.php'''模板文件,然后添加下行代码,可以根据个人喜好来决定代码的放置位置: <?php echo '<a href="'.$site->generateUrl(null, 'custom_zone').'">AddressBook records</a>'; ?> '''该行代码将会在我们新建的区域下生成一个链接。''' ==系统工作流程== 当我们点击上述第九步中生成的[[链接]]后,系统将执行下面这些操作: *[[ImpressPages]]将被请求一个新的页面; *ImpressPages检查被请求的页面[[url]],然后发现是属于区域'''custom_zone'''(即我们自定义的区域)的; *ImpressPages找到区域列表中的'''custom_zone'''区域,然后寻找与之相关的模块(在本例中就是example/address_book_zone); *ImpressPages通过文件'''examples/address_book_zone/zone.php'''来创建对象,然后他执行方法函数:'''findElement($urlVars, $getVars)''',该方法将会返回一个相应的'''RootElement'''类的页面对象; *ImpressPages执行RootElement对象中的'''generateContent '''函数,然后输出数据; 然后页面中就会显示如下: [[image:zonecustom1.jpg|ImpressPages区域定制|link=ImpressPages/区域定制]] 这个是显示一个记录列表的工作流程,当显示某一个记录的详细信息时,工作流程也是这样的,只不过将上面的'''RootElement'''类替换成了'''Element''',返回数据的方法也变成'''findElement'''。 ==参考来源== *http://www.impresspages.org/docs/working-with-plugins/custom-zone-example/ {{ImpressPages}} [[category:ImpressPages]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:ImpressPages
(
编辑
)
模板:ImpressPages top
(
编辑
)