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'];
     }
 }