Exemplo n.º 1
0
 public function getPosts($aParams)
 {
     $sJsObject = $this->_oConfig->getJsObject('view');
     $aParamsDb = $aParams;
     $aParamsDb['per_page'] = $aParamsDb['per_page'] + 1;
     $aEvents = $this->_oDb->getEvents($aParamsDb);
     if (empty($aEvents)) {
         return $this->getEmpty();
     }
     $oPaginate = new BxTemplPaginate(array('start' => $aParams['start'], 'per_page' => $aParams['per_page'], 'page_url' => $this->_oConfig->getViewUrl(), 'on_change_page' => $sJsObject . ".changePage(this, {start}, {per_page})"));
     $oPaginate->setNumFromDataArray($aEvents);
     $sEvents = '';
     foreach ($aEvents as $aEvent) {
         $sEvent = $this->getPost($aEvent, $aParams);
         if (empty($sEvent)) {
             continue;
         }
         $sEvents .= $sEvent;
     }
     return $this->parseHtmlByName('events.html', array('style_prefix' => $this->_oConfig->getPrefix('style'), 'events' => $sEvents, 'paginate' => $oPaginate->getSimplePaginate()));
 }
Exemplo n.º 2
0
 protected function getTag($sTag, $bWrapInBlock = true)
 {
     $sJsObject = $this->getPageJsObject();
     $oTemplate = BxDolStudioTemplate::getInstance();
     $iStart = (int) bx_get('str_start');
     $iPerPage = (int) bx_get('str_per_page');
     if (empty($iPerPage)) {
         $iPerPage = $this->iPerPageDefault;
     }
     $aProducts = $this->loadTag($sTag, $iStart, $iPerPage + 1);
     bx_import('BxTemplPaginate');
     $oPaginate = new BxTemplPaginate(array('start' => $iStart, 'per_page' => $iPerPage, 'on_change_page' => $sJsObject . ".changePagePaginate(this, '" . $sTag . "', {start}, {per_page})"));
     $oPaginate->setNumFromDataArray($aProducts);
     $sContent = $oTemplate->parseHtmlByName('str_products.html', array('list' => $this->displayProducts($aProducts), 'paginate' => $oPaginate->getSimplePaginate()));
     if (!$bWrapInBlock) {
         return $sContent;
     }
     return $oTemplate->parseHtmlByName('store.html', array('js_object' => $sJsObject, 'bx_repeat:blocks' => array(array('caption' => $this->getBlockCaption(array('caption' => _t('_adm_block_cpt_' . $sTag), 'actions' => array())), 'panel_top' => '', 'items' => $sContent, 'panel_bottom' => ''))));
 }
Exemplo n.º 3
0
 public function getCode($isDisplayHeader = true)
 {
     $this->_replaceMarkers();
     if ($isDisplayHeader && empty($this->_aOptions['paginate_url'])) {
         // reset page query params if grid is just initialized and it uses AJAX paginate
         $this->resetQueryParams();
     }
     $sPaginate = '';
     $aData = array();
     $sIdWrapper = 'bx-grid-wrap-' . $this->_sObject;
     $sIdContainer = 'bx-grid-cont-' . $this->_sObject;
     $sIdTable = 'bx-grid-table-' . $this->_sObject;
     $sFilter = bx_unicode_urldecode(bx_process_input(bx_get('filter')));
     $sOrderField = bx_unicode_urldecode(bx_process_input(bx_get('order_field')));
     $sOrderDir = 0 == strcasecmp('desc', bx_get('order_dir')) ? 'DESC' : 'ASC';
     if ($this->_aOptions['paginate_get_start']) {
         $iStart = (int) bx_get($this->_aOptions['paginate_get_start']);
     } else {
         $iStart = 0;
     }
     if ($this->_aOptions['paginate_get_per_page'] && (int) bx_get($this->_aOptions['paginate_get_per_page']) > 0) {
         $iPerPage = (int) bx_get($this->_aOptions['paginate_get_per_page']);
     } elseif ($this->_aOptions['paginate_per_page']) {
         $iPerPage = (int) $this->_aOptions['paginate_per_page'];
     } else {
         $iPerPage = 10;
     }
     if ($this->_aOptions['paginate_get_start']) {
         $aData = $this->_getData($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage + 1);
         $sPageUrl = false;
         if (!empty($this->_aOptions['paginate_url'])) {
             $sPageUrl = $this->_aOptions['paginate_url'];
             $aParamsAppend = array();
             if ($sFilter) {
                 $aParamsAppend['filter'] = bx_process_input(bx_get('filter'));
             }
             if ($sOrderField) {
                 $aParamsAppend['order_field'] = bx_process_input(bx_get('order_field'));
                 $aParamsAppend['order_dir'] = bx_process_input(bx_get('order_dir'));
             }
             if ($aParamsAppend) {
                 $sPageUrl = bx_append_url_params($sPageUrl, $aParamsAppend);
             }
         }
         $aPaginateParams = array('start' => $iStart, 'per_page' => $iPerPage, 'page_url' => $sPageUrl ? $sPageUrl : "javascript:glGrids." . $this->_sObject . ".reload('{start}'); void(0);");
         bx_import('BxTemplPaginate');
         $oPaginate = new BxTemplPaginate($aPaginateParams, $this->_oTemplate);
         $oPaginate->setNumFromDataArray($aData);
         if (isset($this->_aOptions['paginate_simple']) && false !== $this->_aOptions['paginate_simple']) {
             $sPaginate = $oPaginate->getSimplePaginate($this->_aOptions['paginate_simple']);
         } else {
             $sPaginate = $oPaginate->getPaginate();
         }
     } else {
         $aData = $this->_getData($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage);
     }
     $sPopupOptions = '{}';
     if (!empty($this->_aPopupOptions) && is_array($this->_aPopupOptions)) {
         $sPopupOptions = json_encode($this->_aPopupOptions);
     }
     $aQueryAppend = array_merge(is_array($this->_aQueryAppend) ? $this->_aQueryAppend : array(), is_array($this->_aMarkers) ? $this->_aMarkers : array());
     $sQueryAppend = '{}';
     if (!empty($aQueryAppend) && is_array($aQueryAppend)) {
         $sQueryAppend = json_encode($aQueryAppend);
     }
     $sConfirmMessages = '{}';
     if (!empty($this->_aConfirmMessages) && is_array($this->_aConfirmMessages)) {
         $sConfirmMessages = json_encode($this->_aConfirmMessages);
     }
     $aVars = array('object' => $this->_sObject, 'id_table' => $sIdTable, 'id_cont' => $sIdContainer, 'id_wrap' => $sIdWrapper, 'sortable' => empty($this->_aOptions['field_order']) ? 0 : 1, 'sorting' => empty($this->_aOptions['sorting_fields']) ? 0 : 1, 'sorting_field' => $sOrderField, 'sorting_dir' => $sOrderDir, 'bx_repeat:row_header' => $this->_getRowHeader(), 'bx_repeat:rows_data' => $this->_getRowsDataDesign($aData), 'paginate' => $sPaginate, 'paginate_get_start' => $this->_aOptions['paginate_get_start'], 'paginate_get_per_page' => $this->_aOptions['paginate_get_per_page'], 'start' => $iStart, 'per_page' => $iPerPage, 'filter' => bx_js_string($sFilter, BX_ESCAPE_STR_APOS), 'order_field' => bx_js_string($sOrderField, BX_ESCAPE_STR_APOS), 'order_dir' => bx_js_string($sOrderDir, BX_ESCAPE_STR_APOS), 'popup_options' => $sPopupOptions, 'query_append' => $sQueryAppend, 'confirm_messages' => $sConfirmMessages, 'columns' => count($this->_aOptions['fields']), 'bx_if:actions_bulk' => array('condition' => !empty($this->_aOptions['actions_bulk']), 'content' => array('actions_bulk' => $this->_getActions('bulk'))), 'bx_if:display_header' => array('condition' => $isDisplayHeader, 'content' => array('bx_if:actions_independent' => array('condition' => !empty($this->_aOptions['actions_independent']), 'content' => array('actions_independent' => $this->_getActions('independent'))), 'bx_if:filter' => array('condition' => !empty($this->_aOptions['filter_fields']) || !empty($this->_aOptions['filter_fields_translatable']), 'content' => array('controls' => $this->_getFilterControls())))));
     $this->_addJsCss();
     return $this->_oTemplate->parseHtmlByName('grid.html', $aVars);
 }