public function testResolveFinalOffsetForStickyList() { $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList(0, 10, 100); $this->assertEquals(0, $finalOffset); $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList(2, 10, 10); $this->assertEquals(0, $finalOffset); $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList(4, 10, 10); $this->assertEquals(0, $finalOffset); $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList(4, 10, 20); $this->assertEquals(0, $finalOffset); $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList(9, 10, 20); $this->assertEquals(4, $finalOffset); $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList(5, 10, 20); $this->assertEquals(0, $finalOffset); $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList(9, 10, 12); $this->assertEquals(1, $finalOffset); $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList(3, 10, 20); $this->assertEquals(0, $finalOffset); }
public function actionRenderStickyListBreadCrumbContent($stickyOffset, $stickyKey, $stickyModelId) { if ($stickyOffset == null) { Yii::app()->end(0, false); } $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('listPageSize', get_class($this->getModule())); $modelClassName = $this->getModule()->getPrimaryModelName(); $searchFormClassName = static::getSearchFormClassName(); $model = new $modelClassName(false); $searchForm = new $searchFormClassName($model); $dataProvider = $this->resolveSearchDataProvider($searchForm, $pageSize, null, $stickyKey, false); $totalCount = $dataProvider->calculateTotalItemCount(); $finalOffset = StickySearchUtil::resolveFinalOffsetForStickyList((int) $stickyOffset, (int) $pageSize, (int) $totalCount); $dataProvider->setOffset($finalOffset); $dataList = $dataProvider->getData(); if (count($dataList) > 0) { $menuItems = array('label' => '÷'); //char code is ÷ foreach ($dataList as $row => $data) { $url = Yii::app()->createUrl($this->getModule()->getId() . '/' . $this->getId() . '/details', array('id' => $data->id, 'stickyOffset' => $row + $finalOffset)); if ($data->id == $stickyModelId) { $menuItems['items'][] = array('label' => strval($data), 'url' => $url, 'itemOptions' => array('class' => 'strong')); } else { $menuItems['items'][] = array('label' => strval($data), 'url' => $url); } } $cClipWidget = new CClipWidget(); $cClipWidget->beginClip("StickyList"); $cClipWidget->widget('application.core.widgets.MbMenu', array('htmlOptions' => array('id' => 'StickyListMenu'), 'items' => array($menuItems))); $cClipWidget->endClip(); echo $cClipWidget->getController()->clips['StickyList']; } }