Exemplo n.º 1
0
 public function getForm($iDesignBoxTemplate = BX_DB_PADDING_DEF, $sTitle = false)
 {
     if ($this->_sMetaType) {
         return '';
     }
     if (false === $sTitle) {
         $sTitle = _t("_Search");
     }
     $aValues = $this->getKeyTitlesPairs();
     $aValue = isset($_GET['type']) ? bx_process_input($_GET['type']) : array_keys($aValues);
     $sIdForm = $this->_sIdForm . ($this->_bLiveSearch ? $this->_sSuffixLiveSearch : '');
     $sIdResults = $this->_sIdResults . ($this->_bLiveSearch ? $this->_sSuffixLiveSearch : '');
     $sIdLoadingContainer = $this->_bLiveSearch ? $sIdResults : $sIdForm;
     $sJsParams = "5, '#{$sIdForm}', '#{$sIdResults}', '#{$sIdLoadingContainer}', '{$this->_bLiveSearch}'";
     $aForm = array('form_attrs' => array('id' => $sIdForm, 'action' => BX_DOL_URL_ROOT . 'searchKeyword.php', 'method' => 'post'), 'csrf' => array('disable' => true), 'inputs' => array('live_search' => array('type' => 'hidden', 'name' => 'live_search', 'value' => $this->_bLiveSearch ? 1 : 0), 'section' => array('type' => 'checkbox_set', 'name' => 'section', 'caption' => _t('_Section'), 'values' => $aValues, 'value' => $aValue), 'keyword' => array('type' => 'text', 'name' => 'keyword', 'caption' => _t('_Keyword'), 'value' => bx_get('keyword') ? bx_process_input(bx_get('keyword')) : ''), 'search' => array('type' => 'submit', 'name' => 'search', 'value' => _t('_Search'))));
     if ($this->_bLiveSearch) {
         unset($aForm['inputs']['section']);
         unset($aForm['inputs']['search']);
         unset($aForm['inputs']['keyword']['caption']);
         $aForm['inputs']['keyword']['attrs']['placeholder'] = _t('_sys_search_placeholder');
         $aForm['inputs']['keyword']['attrs']['onkeypress'] = "return bx_search_on_type(event, {$sJsParams});";
         $aForm['inputs']['keyword']['attrs']['onpaste'] = $aForm['inputs']['keyword']['attrs']['onkeypress'];
     }
     bx_import('BxTemplFormView');
     $oForm = new BxTemplFormView($aForm);
     $sForm = $oForm->getCode();
     if (!$this->_bLiveSearch) {
         bx_import('BxTemplPaginate');
         $o = new BxTemplPaginate(array());
         $o->addCssJs();
     }
     return DesignBoxContent($sTitle, $sForm, $iDesignBoxTemplate);
 }
Exemplo n.º 2
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.º 3
0
 public function serviceBrowseConnectionsQuick($iProfileId, $sObjectConnections = 'sys_profiles_friends', $sConnectionsType = 'content', $iMutual = false, $iProfileId2 = 0)
 {
     // get connections object
     $oConnection = BxDolConnection::getObjectInstance($sObjectConnections);
     if (!$oConnection) {
         return '';
     }
     // set some vars
     $iLimit = empty($this->_oConfig->CNF['PARAM_NUM_CONNECTIONS_QUICK']) ? 4 : getParam($this->_oConfig->CNF['PARAM_NUM_CONNECTIONS_QUICK']);
     if (!$iLimit) {
         $iLimit = 4;
     }
     $iStart = (int) bx_get('start');
     // get connections array
     bx_import('BxDolConnection');
     $a = $oConnection->getConnectionsAsArray($sConnectionsType, $iProfileId, $iProfileId2, $iMutual, (int) bx_get('start'), $iLimit + 1, BX_CONNECTIONS_ORDER_ADDED_DESC);
     if (!$a) {
         return '';
     }
     // get paginate object
     $oPaginate = new BxTemplPaginate(array('on_change_page' => "return !loadDynamicBlockAutoPaginate(this, '{start}', '{per_page}');", 'num' => count($a), 'per_page' => $iLimit, 'start' => $iStart));
     // remove last item from connection array, because we've got one more item for pagination calculations only
     if (count($a) > $iLimit) {
         array_pop($a);
     }
     // get profiles HTML
     $s = '';
     foreach ($a as $iProfileId) {
         if (!($o = BxDolProfile::getInstance($iProfileId))) {
             continue;
         }
         $s .= $o->getUnit();
     }
     // return profiles + paginate
     return $s . (!$iStart && $oPaginate->getNum() <= $iLimit ? '' : $oPaginate->getSimplePaginate());
 }
Exemplo n.º 4
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.º 5
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);
 }
Exemplo n.º 6
0
 function showPagination($bAdmin = false, $bChangePage = true, $bPageReload = true)
 {
     $oMain = $this->getMain();
     $sPageUrl = $this->getCurrentUrl(array(), false);
     $sOnClick = $this->getCurrentOnclick(array(), false);
     bx_import('BxTemplPaginate');
     $oPaginate = new BxTemplPaginate(array('page_url' => $sPageUrl, 'on_change_page' => $sOnClick, 'num' => $this->aCurrent['paginate']['num'], 'per_page' => $this->aCurrent['paginate']['perPage'], 'start' => $this->aCurrent['paginate']['start']));
     return $sOnClick ? $oPaginate->getSimplePaginate() : $oPaginate->getPaginate();
 }