private:koding:hostcms:modules:informacionnye_sistemy:paginacija_dlja_gruppy_is

Пагинация для группы ИС

Для реализации пагинации для групп ИС:

  1. Добавляем код в ТДС ИС
    $oInformationsystemGroups = $Informationsystem_Controller_Show->informationsystemGroups();
    $page = Core_Array::getGet('page',1);
    $limit = 5; //Лимит групп на странице
     
    $oInformationsystemGroups->getTableColums();
    $oInformationsystemGroups->queryBuilder()
    	->sqlCalcFoundRows()
    	->limit($limit)
      	->offset(($page - 1) * $limit);
    $aoInformationsystemGroups = $oInformationsystemGroups->findAll();
     
    $row = Core_QueryBuilder::select(array('FOUND_ROWS()', 'count'))
    	->execute()
    	->asAssoc()
    	->current();
    $total = $row['count'];//подсчитываем кол-во групп ис
     
    foreach ($aoInformationsystemGroups as $oInformationsystemGroup)
    {
    	$Informationsystem_Controller_Show
    		->addEntity($oInformationsystemGroup
    				->showXmlProperties(TRUE)
    		)
    		->addEntity(
    			Core::factory('Core_Xml_Entity')	//в xml записываем кол-во групп что бы потом
    				->name('gtotal')->value($total)  //можно было в xsl  воспользоваться этими данными
    		)
    		 ->addEntity(
    			Core::factory('Core_Xml_Entity')	// лимит групп
    				->name('glimit')->value($limit)
    		)
    		->addEntity(
    			Core::factory('Core_Xml_Entity')
    				->name('gpage')->value($page - 1)
    		);
    }
  2. В XSL шаблоне редактируем вывод ссылок пагинации.
    <xsl:if test="/informationsystem/group = 0"> //условие что бы не выводить пагинацию групп внутри группы.
    <xsl:call-template name="for">
          <xsl:with-param name="limit" select="glimit"/> //передаем параметры которые задали в тдс
          <xsl:with-param name="page" select="gpage"/>
          <xsl:with-param name="items_count" select="gtotal"/>
          <xsl:with-param name="i" select="$i"/>
          <xsl:with-param name="post_count_page" select="$post_count_page"/>
          <xsl:with-param name="pre_count_page" select="$pre_count_page"/>
          <xsl:with-param name="visible_pages" select="$real_visible_pages"/>
    </xsl:call-template>
    </xsl:if>
  3. Редактируем адрес ссылок пагинации page- на ?page= в <xsl:template name="for">

Страницу создал Вадим Гринев 07.09.16 в 16:18

private/koding/hostcms/modules/informacionnye_sistemy/paginacija_dlja_gruppy_is.txt · Last modified: 27.06.17 в 14:52 by maximzasorin_gmail.com