免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3107 | 回复: 2
打印 上一主题 下一主题

openPNE常用方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-28 15:38 |只看该作者 |倒序浏览
openPNE常用方法
  1. <?php include_partial('sidemenu',array('form'=>'asdfgasgsad'));?>这句话意思是包含'_sidemenu.php'并往其页面传一系列参数,'_sidemenu.php'页即可直接使用$form变量中的值<?phpop_include_box('vote_question_create_box','<strong>asdfasdf</strong>',array('title'=>'创建问题','moreInfo'=>array('创建问题',link_to('创建问题2','@my_index'))));?><?phpop_include_box('vote_question_create_box',get_slot('pager'),array('title'=>'创建问题','moreInfo'=>array('创建问题',link_to('创建问题2','@my_index'))));?>'vote_question_create_box'只是一个标记,'<strong>asdfasdf</strong>'或 get_slot('pager')则是要输出到页面上标题下的信息(这个方法里要包含slot只能用get_slot()不能用include_slot(),而在页面中要包含slot则必须使用include_slot())第三个数组参数中的键值名称title是固定的,是该段'vote_question_create_box'显示的标题,后面的'moreInfo'键名也是固定键值对应的数组则是罗列显示的内容列表<?php slot('pager'); ?>设定一个slot段落<?php echo 'asdfasgsadfasdfaaaaaaaaaaaaaaaaaaaaaa' ?><?php end_slot() ?><?php include_slot('pager'); ?>包含指定的slot段落,设定的slot段落必须通过包含才能在页面上显示<?phpop_include_form('vote_question_from',$form,array('title'=>'编辑问题','url'=>url_for('@vote_update?id='.$form->getObject()->getId()),));?>包含一个表单对象,'vote_question_from'为标识名,$form为对应动作传来的表单对象,第三个数组参数title键值也url键值是固定的,分别对应显示的标题名和表单提交路径对应动作内容为<?phppublic function executeEdit(sfWebRequest $request){    $object = $this->getRoute()->getObject();    //如果不是作者屏幕上显示404    $this->forward404Unless($this->getUser()->getMemberId() == $object->getMemberId());//$object->getMemberId()为传递过来的id值对应的那条记录的member_id字段值    $this->form = new VoteQuestionForm($object);    //访问此动作路径http://localhost/openpne/web/vote/edit/1}?><?php op_include_pager_navigation($pager, '@tasks_list?page=%d'); ?>用于分页时前后翻页的超链接$pager来自动作里的 $this->pager = Doctrine::getTable('VoteQuestion')->getListPager($request->getParameter('page'));PluginVoteQuestionTable类getListPager()方法里的内容↓<?phpclass PluginVoteQuestionTable extends Doctrine_Table{  public function getListPager($page = 1,$size = 20)  {      $query = $this->createQuery()->orderBy('updated_at DESC');      $pager = new sfDoctrinePager('VoteQuestion',$size);//创建一个某表的分页对象,并传一个每页显示多少记录值    $pager->setQuery($query);//传一个查询语句对象      $pager->setPage($page);//设返回显示的页数      $pager->init();      return $pager;  }}?>对应前台页面对分页结果集的沥遍<?php foreach($pager->getResults() as $item): //利用openPNE分页机制获取指定分页结果集并沥遍每一条记录?><dl>    <dt><?php echo op_format_date($item->getUpdatedAt(),'f') //'f'代表一种显示格式?></dt><!--op_format_date()方法只是把2011-11-10各种中的‘-’换成汉字年月日-->    <dd><?php echo link_to(sprintf("%s(%d)",$item->getTitle(),count($item->getVoteAnswers())),'@vote_show?id='.$item->getId()) ?></dd><!--$item->getTitle()获取该条记录指定字段title值--></dl><?php endforeach; ?><?php echo link_to('sdsfg','@vote_show?id='.$item->getId()) ?>相当于<a href='vote/show?id=...'>sdsfg</a>表名是驼峰模式在数据库里以下划线表示,字段名也是如此链接的就算不用方法也可以直接在action="此可直接写web/后的====模块名/动作名====或路由中设定好的web后的路径"动作里的$this->tasksObject = $this->getRoute()->getObject();$this->getRoute()->getObject();//获取传过来的id参数值对应的表中的那条信息对象可通过get+字段名()获取字段值,如在页面中$tasksObject-getId();至于如何确定获取的是哪个表则是通过路由类设置该动作路由时确定的,如下例确定的是vote_question表例<?phpclass opVotePluginFrontendRouteCollection extends sfRouteCollection{  public function __construct(array $options)  {    parent::__construct($options);    $this->routes = array(      'vote_edit' => new sfDoctrineRoute(        '/vote/edit/:id',        array('module' => 'vote', 'action' => 'edit'),        array('id' => '\d+', 'sf_method' => array('get')),        array('model' => 'VoteQuestion', 'type' => 'object')      ),    );  }}?>
复制代码

论坛徽章:
0
2
发表于 2012-04-21 19:35
在公司用了款美~信CreCloud云网管,挺不错的,属于云计算技术理念和IT监控技术的完美结合,云网管的成功开发和应用,使云计算理念在IT监控领域落地,而且还是永久免费。http://www.mxsoft.com

论坛徽章:
0
3 [报告]
发表于 2012-05-23 22:19 |只看该作者
在公司用了款美~信CreCloud云网管,挺不错的,属于云计算技术理念和IT监控技术的完美结合,云网管的成功开发和应用,使云计算理念在IT监控领域落地,而且还是永久免费。http://www.mxsoft.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP