Yii Framework Forum: 关于page的Widget 一个建议 - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

关于page的Widget 一个建议 是否增加一个锚点连接 Rate Topic: -----

#1 User is offline   biner 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 23-August 09

Posted 21 December 2009 - 04:17 AM

Yii的widget都很实用。 :lol: 我是懒人,分页就直接用了CLinkPager。

不过在实际项目上,有些地方总需要对用户体验需要做定制,比如分页并不能加锚点。
比如说,现在我是一篇blog,对回复做了分页。

这个时候,我点击“下一页”,“上一页”。这个时候我希望是直接跳转到回复模块的内容。但是blog本身内容又太长了。。。所以需要加锚点。

我是这样解决的,修改了一下CLinkPager,在生成的Chtml::link的地方做判断,检测是否有那么name,有则加上‘#name’; :lol:
<?php $this->widget('CLinkPager',array('pages'=>$pages_review,'name'=>'div_main_content')); ?>


于是,不想每次更新框架都去修改.... :D
0

#2 User is offline   qiang 

  • Yii Project Lead
  • Yii
  • Group: Yii Dev Team
  • Posts: 5,875
  • Joined: 04-October 08
  • Location:DC, USA

Posted 21 December 2009 - 08:56 AM

不要去修改框架代码,这种情况最好是派生新的类,这也是OOP的精髓之一。
0

#3 User is offline   jackiesun 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 358
  • Joined: 04-January 09

Posted 21 December 2009 - 09:03 AM

我都是写个类来做的。。呵呵。
这样框架升级也方便,不需要担心。
分页也是的。
也很偷懒的。 ;D
0

#4 User is offline   terry39 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 24
  • Joined: 26-August 09

Posted 30 December 2009 - 10:46 AM

我不用CHTML,但是我知道 CUrlManager的 createUrl,是可以支持 '#' 的!

$params = array('userid' => 100, '#' => '锚名称');
$this->createUrl($route, $params);


我想 CLinkPager 如果里面如果可以传递自定义参数的话,你也可以试试
0

#5 User is offline   colee 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 30-September 12

Posted 10 October 2012 - 05:35 AM

CLinkPager 绝对路径怎么做?
0

#6 User is offline   yiqing95 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 586
  • Joined: 27-December 10
  • Location:china

Posted 11 October 2012 - 12:44 AM

View Postcolee, on 10 October 2012 - 05:35 AM, said:

CLinkPager 绝对路径怎么做?

追踪这个方法
createPageUrl

知道分页url调用的是当前控制器的createUrl方法 一种办法是复写当前控制器的该方法 但最好有一个变量能够切换是否使用底层的 createAbsoluteUrl(控制器都有该方法) 这样额外定义一个公共变量 在分页前调用这个公共变量类似如:

Yii::app()->controller->createUrlAsAbs = true ;(你自己定义这个变量 并复写createUrl方法 在其中判断这个变量的值 如果是true那么切换到底层的createAbsoluteUrl方法上就好)


以上只是我的实现思路 并没有实际操作 所以对错未知 :lol: 仅仅给你个参考而已
0

#7 User is offline   colee 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 12
  • Joined: 30-September 12

Posted 21 November 2012 - 11:38 AM

View Postyiqing95, on 11 October 2012 - 12:44 AM, said:

追踪这个方法
createPageUrl

知道分页url调用的是当前控制器的createUrl方法 一种办法是复写当前控制器的该方法 但最好有一个变量能够切换是否使用底层的 createAbsoluteUrl(控制器都有该方法) 这样额外定义一个公共变量 在分页前调用这个公共变量类似如:

Yii::app()->controller->createUrlAsAbs = true ;(你自己定义这个变量 并复写createUrl方法 在其中判断这个变量的值 如果是true那么切换到底层的createAbsoluteUrl方法上就好)


以上只是我的实现思路 并没有实际操作 所以对错未知 :lol: 仅仅给你个参考而已


嗯,首先谢谢回答,我看了源码,似乎是不可能通过配置的方式实现,所以我派生了一个子类来做,分页定制的地方多,所以还是不直接使用CLinkPager比较好。
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users