本文整理汇总了PHP中ca_metadata_elements::getSortableElements方法的典型用法代码示例。如果您正苦于以下问题:PHP ca_metadata_elements::getSortableElements方法的具体用法?PHP ca_metadata_elements::getSortableElements怎么用?PHP ca_metadata_elements::getSortableElements使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ca_metadata_elements
的用法示例。
在下文中一共展示了ca_metadata_elements::getSortableElements方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct(&$po_request, &$po_response, $pa_view_paths = null)
{
parent::__construct($po_request, $po_response, $pa_view_paths);
if ($this->ops_tablename) {
if ($va_items_per_page_config = $po_request->config->get('items_per_page_options_for_' . $this->ops_tablename . '_browse')) {
$this->opa_items_per_page = $va_items_per_page_config;
}
if (($vn_items_per_page_default = (int) $po_request->config->get('items_per_page_default_for_' . $this->ops_tablename . '_browse')) > 0) {
$this->opn_items_per_page_default = $vn_items_per_page_default;
} else {
$this->opn_items_per_page_default = $this->opa_items_per_page[0];
}
// get configured result views, if specified
if ($va_result_views_for = $po_request->config->getAssoc('result_views_for_' . $this->ops_tablename)) {
$this->opa_views = $va_result_views_for;
}
$this->ops_view_default = null;
if ($vs_view_default = $po_request->config->get('view_default_for_' . $this->ops_tablename . '_browse')) {
$this->ops_view_default = $vs_view_default;
}
$va_sortable_elements = ca_metadata_elements::getSortableElements($this->ops_tablename, $this->opn_type_restriction_id);
$this->opa_sorts = array();
foreach ($va_sortable_elements as $vn_element_id => $va_sortable_element) {
$this->opa_sorts[$this->ops_tablename . '.' . $va_sortable_element['element_code']] = $va_sortable_element['display_label'];
}
}
}
示例2: __construct
public function __construct(&$po_request, &$po_response, $pa_view_paths = null)
{
parent::__construct($po_request, $po_response, $pa_view_paths);
$va_sortable_elements = ca_metadata_elements::getSortableElements($this->ops_tablename, $this->opn_type_restriction_id);
$this->opa_sorts = array();
foreach ($va_sortable_elements as $vn_element_id => $va_sortable_element) {
$this->opa_sorts[$this->ops_tablename . '.' . $va_sortable_element['element_code']] = $va_sortable_element['display_label'];
}
}
示例3: getPartialResult
/**
* Get part of result set for display in editable "spreadsheet"
*
*/
public function getPartialResult($pa_options = null)
{
$t = new Timer();
//self::Index($pa_options);
$vn_display_id = $this->opo_result_context->getCurrentBundleDisplay();
$t_model = $this->opo_datamodel->getInstanceByTableName($this->ops_tablename, true);
$va_display_list = array();
$t_display = $this->opo_datamodel->getInstanceByTableName('ca_bundle_displays', true);
$t_display->load($vn_display_id);
if ($vn_display_id && $t_display->haveAccessToDisplay($this->request->getUserID(), __CA_BUNDLE_DISPLAY_READ_ACCESS__)) {
$va_placements = $t_display->getPlacements(array('settingsOnly' => true));
foreach ($va_placements as $vn_placement_id => $va_display_item) {
$va_display_list[$vn_placement_id] = array('placement_id' => $vn_placement_id, 'bundle_name' => $va_display_item['bundle_name']);
}
}
//
// Default display list (if none are specifically defined)
//
if (!sizeof($va_display_list)) {
if ($vs_idno_fld = $t_model->getProperty('ID_NUMBERING_ID_FIELD')) {
$va_display_list[$this->ops_tablename . '.' . $vs_idno_fld] = array('placement_id' => $this->ops_tablename . '.' . $vs_idno_fld, 'bundle_name' => $this->ops_tablename . '.' . $vs_idno_fld);
}
if (method_exists($t_model, 'getLabelTableInstance')) {
$t_label = $t_model->getLabelTableInstance();
$va_display_list[$this->ops_tablename . '.preferred_labels'] = array('placement_id' => $this->ops_tablename . '.preferred_labels', 'bundle_name' => $this->ops_tablename . '.preferred_labels');
}
}
$po_search = isset($pa_options['search']) ? $pa_options['search'] : null;
$pn_start = $this->request->getParameter('start', pInteger);
if (!($vn_items_per_page = $this->request->getParameter('n', pInteger))) {
if (!($vn_items_per_page = $this->opo_result_context->getItemsPerPage())) {
$vn_items_per_page = $this->opn_items_per_page_default;
$this->opo_result_context->setItemsPerPage($vn_items_per_page);
}
}
$vs_search = $this->opo_result_context->getSearchExpression();
if (!($vs_sort = $this->opo_result_context->getCurrentSort())) {
$va_tmp = array_keys($this->opa_sorts);
$vs_sort = array_shift($va_tmp);
}
$vs_sort_direction = $this->opo_result_context->getCurrentSortDirection();
$vn_display_id = $this->opo_result_context->getCurrentBundleDisplay();
if (!$this->opn_type_restriction_id) {
$this->opn_type_restriction_id = '';
}
$this->view->setVar('type_id', $this->opn_type_restriction_id);
// Get attribute sorts
$va_sortable_elements = ca_metadata_elements::getSortableElements($this->ops_tablename, $this->opn_type_restriction_id);
if (!is_array($this->opa_sorts)) {
$this->opa_sorts = array();
}
foreach ($va_sortable_elements as $vn_element_id => $va_sortable_element) {
$this->opa_sorts[$this->ops_tablename . '.' . $va_sortable_element['element_code']] = $va_sortable_element['display_label'];
}
if ($pa_options['appendToSearch']) {
$vs_append_to_search .= " AND (" . $pa_options['appendToSearch'] . ")";
}
//
// Execute the search
//
if ($vs_search && $vs_search != "") {
/* any request? */
$va_search_opts = array('sort' => $vs_sort, 'sort_direction' => $vs_sort_direction, 'appendToSearch' => $vs_append_to_search, 'checkAccess' => $va_access_values, 'no_cache' => $vb_is_new_search, 'dontCheckFacetAvailability' => true, 'filterNonPrimaryRepresentations' => true);
if ($vb_is_new_search || isset($pa_options['saved_search']) || is_subclass_of($po_search, "BrowseEngine") && !$po_search->numCriteria()) {
$vs_browse_classname = get_class($po_search);
$po_search = new $vs_browse_classname();
if (is_subclass_of($po_search, "BrowseEngine")) {
$po_search->addCriteria('_search', $vs_search);
if (method_exists($this, "hookBeforeNewSearch")) {
$this->hookBeforeNewSearch($po_search);
}
}
$this->opo_result_context->setParameter('show_type_id', null);
}
if ($this->opn_type_restriction_id) {
$po_search->setTypeRestrictions(array($this->opn_type_restriction_id));
}
$vb_criteria_have_changed = false;
if (is_subclass_of($po_search, "BrowseEngine")) {
$vo_result = $po_search->getResults($va_search_opts);
} else {
$vo_result = $po_search->search($vs_search, $va_search_opts);
}
$this->opo_result_context->validateCache();
// Only prefetch what we need
$vo_result->setOption('prefetch', $vn_items_per_page);
$this->view->setVar('result', $vo_result);
}
$va_results = array();
$vo_result->seek($pn_start);
//$vo_result->registerElementsToPrefetch(array(15,4,1));
//print "[7] ". $t->getTime(4)."\n";
$vn_c = 0;
$vs_pk = $vo_result->primaryKey();
while ($vo_result->nextHit()) {
$va_result = array("item_id" => $vo_result->get($vs_pk));
//.........这里部分代码省略.........
示例4: Index
/**
* Options:
* appendToSearch = optional text to be AND'ed wuth current search expression
* output_format = determines format out search result output. "PDF" and "HTML" are currently supported; "HTML" is the default
* view = view with path relative to controller to use overriding default ("search/<table_name>_search_basic_html.php")
* vars = associative array with key value pairs to assign to the view
*
* Callbacks:
* hookBeforeNewSearch() is called just before executing a new search. The first parameter is the BrowseEngine object containing the search.
*/
public function Index($pa_options = null)
{
$po_search = isset($pa_options['search']) ? $pa_options['search'] : null;
if (isset($pa_options['saved_search']) && $pa_options['saved_search']) {
$this->opo_result_context->setSearchExpression($pa_options['saved_search']['search']);
$this->opo_result_context->isNewSearch(true);
}
parent::Index($pa_options);
AssetLoadManager::register('hierBrowser');
AssetLoadManager::register('browsable');
// need this to support browse panel when filtering/refining search results
$t_model = $this->opo_datamodel->getInstanceByTableName($this->ops_tablename, true);
$va_access_values = caGetUserAccessValues($this->request);
// Get elements of result context
$vn_page_num = $this->opo_result_context->getCurrentResultsPageNumber();
$vs_search = $this->opo_result_context->getSearchExpression();
$vb_is_new_search = $this->opo_result_context->isNewSearch();
if ((bool) $this->request->getParameter('reset', pString) && $this->request->getParameter('reset', pString) != 'save') {
$vs_search = '';
$vb_is_new_search = true;
}
if (!($vn_items_per_page = $this->opo_result_context->getItemsPerPage())) {
$vn_items_per_page = $this->opn_items_per_page_default;
$this->opo_result_context->setItemsPerPage($vn_items_per_page);
}
if (!($vs_view = $this->opo_result_context->getCurrentView())) {
$va_tmp = array_keys($this->opa_views);
$vs_view = $this->ops_view_default ? $this->ops_view_default : array_shift($va_tmp);
$this->opo_result_context->setCurrentView($vs_view);
}
if (!isset($this->opa_views[$vs_view])) {
$va_tmp = array_keys($this->opa_views);
$vs_view = array_shift($va_tmp);
}
if (!($vs_sort = $this->opo_result_context->getCurrentSort())) {
$va_tmp = array_keys($this->opa_sorts);
$vs_sort = array_shift($va_tmp);
}
$vs_sort_direction = $this->opo_result_context->getCurrentSortDirection();
$vb_sort_has_changed = $this->opo_result_context->sortHasChanged();
if (!$this->opn_type_restriction_id) {
$this->opn_type_restriction_id = '';
}
$this->view->setVar('type_id', $this->opn_type_restriction_id);
MetaTagManager::setWindowTitle(_t('%1 search', $this->searchName('plural')));
// Get attribute sorts
$va_sortable_elements = ca_metadata_elements::getSortableElements($this->ops_tablename, $this->opn_type_restriction_id);
if (!is_array($this->opa_sorts)) {
$this->opa_sorts = array();
}
foreach ($va_sortable_elements as $va_sortable_element) {
$this->opa_sorts[$this->ops_tablename . '.' . $va_sortable_element['element_code']] = $va_sortable_element['display_label'];
}
if ($pa_options['appendToSearch']) {
$vs_append_to_search .= " AND (" . $pa_options['appendToSearch'] . ")";
}
//
// Execute the search
//
if ($vs_search && $vs_search != "") {
/* any request? */
$va_search_opts = array('sort' => $vs_sort, 'sort_direction' => $vs_sort_direction, 'appendToSearch' => $vs_append_to_search, 'checkAccess' => $va_access_values, 'no_cache' => $vb_is_new_search, 'dontCheckFacetAvailability' => true, 'filterNonPrimaryRepresentations' => true);
if ($vb_is_new_search || isset($pa_options['saved_search']) || is_subclass_of($po_search, "BrowseEngine") && !$po_search->numCriteria()) {
$vs_browse_classname = get_class($po_search);
$po_search = new $vs_browse_classname();
if (is_subclass_of($po_search, "BrowseEngine")) {
$po_search->addCriteria('_search', $vs_search);
if (method_exists($this, "hookBeforeNewSearch")) {
$this->hookBeforeNewSearch($po_search);
}
}
$this->opo_result_context->setParameter('show_type_id', null);
}
if ($this->opn_type_restriction_id) {
$po_search->setTypeRestrictions(array($this->opn_type_restriction_id), array('includeSubtypes' => false));
}
$vb_criteria_have_changed = false;
if (is_subclass_of($po_search, "BrowseEngine")) {
//
// Restrict facets to specific group for main browse landing page (if set in app.conf config)
//
if ($vs_facet_group = $this->request->config->get($this->ops_tablename . '_search_refine_facet_group')) {
$po_search->setFacetGroup($vs_facet_group);
}
$vb_criteria_have_changed = $po_search->criteriaHaveChanged();
$po_search->execute($va_search_opts);
$this->opo_result_context->setParameter('browse_id', $po_search->getBrowseID());
if ($vs_group_name = $this->request->config->get('browse_facet_group_for_' . $this->ops_tablename)) {
$po_search->setFacetGroup($vs_group_name);
}
//.........这里部分代码省略.........
示例5: settingHTMLFormElement
//.........这里部分代码省略.........
$va_opts['values'] = $vs_value;
} else {
if (is_array($vs_value)) {
$va_opts['value'] = array_pop($vs_value);
} else {
if ($vs_value) {
$va_opts['value'] = $vs_value;
} else {
$va_opts['value'] = null;
}
}
}
if ($vs_list_code) {
$t_list = new ca_lists();
if (!isset($va_opts['value'])) {
$va_opts['value'] = -1;
}
// make sure default list item is never selected
$vs_select_element = $t_list->getListAsHTMLFormElement($vs_list_code, $vs_input_name, $va_attr, $va_opts);
} else {
if (!isset($va_opts['value'])) {
$va_opts['value'] = -1;
}
// make sure default list item is never selected
$vs_select_element = caHTMLSelect($vs_input_name, $va_rel_opts, $va_attr, $va_opts);
}
} else {
if (strlen($va_properties['showSortableBundlesFor']) > 0) {
require_once __CA_MODELS_DIR__ . '/ca_metadata_elements.php';
$o_dm = Datamodel::load();
if (!($t_rel = $o_dm->getInstanceByTableName($va_properties['showSortableBundlesFor'], true))) {
break;
}
$va_elements = ca_metadata_elements::getSortableElements($va_properties['showSortableBundlesFor']);
$va_select_opts = array(_t('User defined sort order') => '', _t('Order created') => 'relation_id', _t('Preferred label') => $va_properties['showSortableBundlesFor'] . ".preferred_labels." . $t_rel->getLabelDisplayField());
foreach ($va_elements as $vn_element_id => $va_element) {
if (!$va_element['display_label']) {
continue;
}
$va_select_opts[_t('Element: %1', $va_element['display_label'])] = $va_properties['showSortableBundlesFor'] . "." . $va_element['element_code'];
}
$va_opts = array('id' => $vs_input_id, 'width' => $vn_width, 'height' => $vn_height, 'value' => is_array($vs_value) ? $vs_value[0] : $vs_value, 'values' => is_array($vs_value) ? $vs_value : array($vs_value));
$vs_select_element = caHTMLSelect($vs_input_name, $va_select_opts, array(), $va_opts);
} elseif ((int) $va_properties['showSortableElementsFor'] > 0) {
require_once __CA_MODELS_DIR__ . '/ca_metadata_elements.php';
$t_element = new ca_metadata_elements($va_properties['showSortableElementsFor']);
if (!$t_element->getPrimaryKey()) {
return '';
}
$va_elements = $t_element->getElementsInSet();
$va_select_opts = array(_t('Order created') => '');
foreach ($va_elements as $vn_i => $va_element) {
if ((int) $va_element['element_id'] == (int) $va_properties['showSortableElementsFor']) {
continue;
}
if (!$va_element['display_label']) {
continue;
}
$va_select_opts[_t('Element: %1', $va_element['display_label'])] = $va_element['element_code'];
}
$va_opts = array('id' => $vs_input_id, 'width' => $vn_width, 'height' => $vn_height, 'value' => is_array($vs_value) ? $vs_value[0] : $vs_value, 'values' => is_array($vs_value) ? $vs_value : array($vs_value));
$vs_select_element = caHTMLSelect($vs_input_name, $va_select_opts, array(), $va_opts);
} elseif ((int) $va_properties['showMetadataElementsWithDataType'] > 0) {
require_once __CA_MODELS_DIR__ . '/ca_metadata_elements.php';
$va_rep_elements = ca_metadata_elements::getElementsAsList(true, $va_properties['table'], null, true, false, true, array($va_properties['showMetadataElementsWithDataType']));
if (is_array($va_rep_elements)) {