oFunctions = $oFunctions; } else { bx_import('BxTemplFunctions'); $this->oFunctions = BxTemplFunctions::getInstance(); } } function getMain() { // override this to return main module class } function displayResultBlock () { $sCode = ''; $aData = $this->getSearchData(); if ($this->aCurrent['paginate']['num'] > 0) { $sCode .= $this->addCustomParts(); foreach ($aData as $aValue) { $sCode .= $this->displaySearchUnit($aValue); } $sCode = '
' . $sCode . '
'; } return $sCode; } function displaySearchBox ($sCode, $sPaginate = '') { $sTitle = _t($this->aCurrent['title']); $sCode = $this->oFunctions->designBoxContent($sTitle, $sCode . $sPaginate, $this->iDesignBoxTemplate, $this->getDesignBoxMenu()); if (!isset($_GET['searchMode'])) $sCode = '
' . $sCode . '
'; return $sCode; } function displaySearchUnit ($aData) { $oMain = $this->getMain(); return $oMain->_oTemplate->unit($aData, $this->bProcessPrivateContent, $this->sUnitTemplate); } function getDesignBoxMenu () { if (!isset($this->aCurrent['rss']) || !$this->aCurrent['rss']['link']) return false; bx_import('BxDolPermalinks'); $oPermalinks = BxDolPermalinks::getInstance(); $sLink = BX_DOL_URL_ROOT . bx_append_url_params($oPermalinks->permalink($this->aCurrent['rss']['link']), 'rss=1'); return array( array('name' => 'rss', 'title' => _t('_sys_menu_title_rss'), 'link' => $sLink, 'icon' => 'rss') ); } function showAdminActionsPanel($sWrapperId, $aButtons, $sCheckboxName = 'entry', $bSelectAll = true, $bSelectAllChecked = false, $sCustomHtml = '') { $aBtns = array(); foreach ($aButtons as $k => $v) { if(is_array($v)) { $aBtns[] = $v; continue; } $aBtns[] = array( 'type' => 'submit', 'name' => $k, 'value' => '_' == $v[0] ? _t($v) : $v, 'onclick' => '', ); } $aUnit = array( 'bx_repeat:buttons' => $aBtns, 'bx_if:customHTML' => array( 'condition' => strlen($sCustomHtml) > 0, 'content' => array( 'custom_HTML' => $sCustomHtml, ) ), 'bx_if:selectAll' => array( 'condition' => $bSelectAll, 'content' => array( 'wrapperId' => $sWrapperId, 'checkboxName' => $sCheckboxName, 'checked' => ($bSelectAll && $bSelectAllChecked ? 'checked="checked"' : '') ) ), ); return BxDolTemplate::getInstance()->parseHtmlByName('adminActionsPanel.html', $aUnit, array('{','}')); } function showAdminFilterPanel($sFilterValue, $sInputId = 'filter_input_id', $sCheckboxId = 'filter_checkbox_id', $sFilterName = 'filter', $sOnApply = '') { $sFilter = _t('_sys_admin_filter'); $sApply = _t('_sys_admin_apply'); $sFilterValue = bx_html_attribute($sFilterValue); $isChecked = $sFilterValue ? ' checked="checked" ' : ''; $sJsContent = ""; if(empty($sOnApply)) { $sOnApply = 'on_filter_apply(this)'; ob_start(); ?>
{$sFilter}
 
EOF; } function showPagination($bAdmin = false, $bChangePage = true, $bPageReload = true) { $oMain = $this->getMain(); $oConfig = $oMain->_oConfig; $sUrlStart = $this->getCurrentUrl(array(), false); bx_import('BxTemplPaginate'); $oPaginate = new BxTemplPaginate(array( 'page_url' => $sUrlStart, 'num' => $this->aCurrent['paginate']['num'], 'per_page' => $this->aCurrent['paginate']['perPage'], 'start' => $this->aCurrent['paginate']['start'], )); return $oPaginate->getPaginate(); } /** * Get current browse URL with current page and additional params * @param $aAdditionalParams set custom additional params as key value pair * @param $bReplacePagesParams replace paginate params with current values or leave markers for use in paginate class * @return ready to use URL string with BX_DOL_URL_ROOT added in the beginning */ protected function getCurrentUrl($aAdditionalParams = array(), $bReplacePagesParams = true) { bx_import('BxDolPermalinks'); $oPermalinks = BxDolPermalinks::getInstance(); // base url $sUrlStart = BX_DOL_URL_ROOT . $oPermalinks->permalink($this->sBrowseUrl); // add pages params $sUrlStart = bx_append_url_params($sUrlStart, array ( 'start' => $bReplacePagesParams ? (int)$this->aCurrent['paginate']['start'] : '{start}', 'per_page' => $bReplacePagesParams ? (int)$this->aCurrent['paginate']['perPage'] : '{per_page}', )); // add additional params foreach ($this->aGetParams as $sGetParam) { $sValue = false; if (isset($aAdditionalParams[$sGetParam])) $sValue = $aAdditionalParams[$sGetParam]; elseif (false !== bx_get($sGetParam)) $sValue = bx_get($sGetParam); if (false !== $sValue) $sUrlStart = bx_append_url_params($sUrlStart, $sGetParam . '=' . rawurlencode($sValue)); } return $sUrlStart; } function showPaginationAjax($sBlockId) { bx_import('BxTemplPaginate'); $oPaginate = new BxTemplPaginate(array( 'page_url' => 'javascript:void(0);', 'num' => $this->aCurrent['paginate']['num'], 'per_page' => $this->aCurrent['paginate']['perPage'], 'start' => $this->aCurrent['paginate']['start'], )); return $oPaginate->getSimplePaginate(false, -1, -1, false); } function clearFilters ($aPassParams = array(), $aPassJoins = array()) { //clear sorting $this->aCurrent['sorting'] = 'last'; //clear restrictions foreach ($this->aCurrent['restriction'] as $sKey => $aValue) { if (!in_array($sKey, $aPassParams)) $this->aCurrent['restriction'][$sKey]['value'] = ''; } //clear unnecessary joins (remains only profile join) $aPassJoins[] = 'profile'; $aTemp = array(); foreach ($aPassJoins as $sValue) { if (isset($this->aCurrent['join'][$sValue]) && is_array($this->aCurrent['join'][$sValue])) $aTemp[$sValue] = $this->aCurrent['join'][$sValue]; } $this->aCurrent['join'] = $aTemp; } function fillFilters ($aParams) { // transform all given values to fields values if (is_array($aParams)) { foreach ($aParams as $sKey => $mixedValue) { if (isset($this->aCurrent['restriction'][$sKey])) $this->aCurrent['restriction'][$sKey]['value'] = $mixedValue; } } } /** * Set design box template id to use to wrap search results in */ function setDesignBoxTemplateId ($i) { $this->iDesignBoxTemplate = $i; } } /** @} */