Пример #1
0
 /**
  *
  *
  * @param array $Options
  * @throws Exception
  */
 public static function write($Options = array())
 {
     static $WriteCount = 0;
     if (!self::$_CurrentPager) {
         if (is_a($Options, 'Gdn_Controller')) {
             self::$_CurrentPager = new PagerModule($Options);
             $Options = array();
         } else {
             self::$_CurrentPager = new PagerModule(val('Sender', $Options, Gdn::controller()));
         }
     }
     $Pager = self::$_CurrentPager;
     $Pager->Wrapper = val('Wrapper', $Options, $Pager->Wrapper);
     $Pager->MoreCode = val('MoreCode', $Options, $Pager->MoreCode);
     $Pager->LessCode = val('LessCode', $Options, $Pager->LessCode);
     $Pager->ClientID = val('ClientID', $Options, $Pager->ClientID);
     $Pager->Limit = val('Limit', $Options, $Pager->Controller()->data('_Limit', $Pager->Limit));
     $Pager->HtmlBefore = val('HtmlBefore', $Options, val('HtmlBefore', $Pager, ''));
     $Pager->CurrentRecords = val('CurrentRecords', $Options, $Pager->Controller()->data('_CurrentRecords', $Pager->CurrentRecords));
     // Try and figure out the offset based on the parameters coming in to the controller.
     if (!$Pager->Offset) {
         $Page = $Pager->Controller()->Request->get('Page', false);
         if (!$Page) {
             $Page = 'p1';
             foreach ($Pager->Controller()->RequestArgs as $Arg) {
                 if (preg_match('`p\\d+`', $Arg)) {
                     $Page = $Arg;
                     break;
                 }
             }
         }
         list($Offset, $Limit) = offsetLimit($Page, $Pager->Limit);
         $TotalRecords = val('RecordCount', $Options, $Pager->Controller()->data('RecordCount', false));
         $Get = $Pager->Controller()->Request->get();
         unset($Get['Page'], $Get['DeliveryType'], $Get['DeliveryMethod']);
         $Url = val('Url', $Options, $Pager->Controller()->SelfUrl . '?Page={Page}&' . http_build_query($Get));
         $Pager->configure($Offset, $Limit, $TotalRecords, $Url);
     } elseif ($Url = val('Url', $Options)) {
         $Pager->Url = $Url;
     }
     echo $Pager->toString($WriteCount > 0 ? 'more' : 'less');
     $WriteCount++;
     //      list($Offset, $Limit) = offsetLimit(GetValue, 20);
     //		$Pager->configure(
     //			$Offset,
     //			$Limit,
     //			$TotalAddons,
     //			"/settings/addons/$Section?Page={Page}"
     //		);
     //		$Sender->setData('_Pager', $Pager);
 }