Example #1
0
    $page_title = elgg_echo('search:results', ["\"{$display_query}\""]);
}
$vars['page_title'] = $page_title;
// show loader or direct page
$loader = (int) get_input('loader', 0);
$search_with_loader = false;
if (elgg_get_plugin_setting('search_with_loader', 'search_advanced') == 'yes') {
    $search_with_loader = true;
}
if ($search_with_loader && !elgg_is_xhr()) {
    // show loader
    $page_data = elgg_view_layout('one_column', ['content' => elgg_view('search_advanced/loader')]);
    echo elgg_view_page($page_title, $page_data);
    return;
}
if (search_advanced_get_list_type() == 'compact') {
    $limit = $search_type == 'all' ? 5 : get_input('limit', 20);
} else {
    $limit = $search_type == 'all' ? 2 : get_input('limit', 10);
}
// set up search params
$params = array('query' => $query, 'offset' => $search_type == 'all' ? 0 : get_input('offset', 0), 'limit' => $limit, 'sort' => get_input('sort', 'relevance'), 'order' => get_input('order', 'desc'), 'search_type' => $search_type, 'type' => $entity_type, 'subtype' => get_input('entity_subtype'), 'owner_guid' => get_input('owner_guid'), 'container_guid' => get_input('container_guid'), 'pagination' => $search_type == 'all' ? false : true, 'search_filter' => (array) get_input('filter', []));
$params = elgg_trigger_plugin_hook('search_params', 'search', $params, $params);
// check and show error page
$error_vars = $vars;
$error_vars['params'] = $params;
$error_output = elgg_view('search_advanced/error', $error_vars);
if ($error_output) {
    echo $error_output;
    return;
}
Example #2
0
/**
 * Registers menu items related to search results listing
 *
 * @param string       $hook   name of hook
 * @param string       $type   type of hook
 * @param unknown_type $value  current value
 * @param array        $params parameters
 *
 * @return array
 */
function search_advanced_register_menu_list($hook, $type, $value, $params)
{
    $result = $value;
    $url = search_advanced_get_search_url();
    $current_list_type = search_advanced_get_list_type();
    $title = elgg_echo('search_advanced:menu:search_list:list:title');
    $result[] = ElggMenuItem::factory(['name' => 'list', 'text' => elgg_view_icon('list'), 'href' => '#', 'title' => $title, 'priority' => 999]);
    $result[] = ElggMenuItem::factory(['name' => 'list_entity', 'text' => elgg_echo('search_advanced:menu:search_list:entity'), 'href' => elgg_http_add_url_query_elements($url, ['list_type' => 'entity']), 'parent_name' => 'list', 'selected' => $current_list_type === 'entity', 'title' => $title]);
    $result[] = ElggMenuItem::factory(['name' => 'list_compact', 'text' => elgg_echo('search_advanced:menu:search_list:compact'), 'href' => elgg_http_add_url_query_elements($url, ['list_type' => 'compact']), 'parent_name' => 'list', 'selected' => $current_list_type === 'compact', 'title' => $title]);
    return $result;
}
Example #3
0
} elseif ($type) {
    $title = elgg_echo("item:{$type}");
} elseif (in_array('entities', [$type, $search_type])) {
    $title = elgg_echo("search_advanced:content:title");
} else {
    $title = elgg_echo('search:unknown_entity');
}
// allow overrides for titles
if (elgg_language_key_exists("search_types:{$search_type}")) {
    $title = elgg_echo("search_types:{$search_type}");
}
$list_items = '';
foreach ($entities as $entity) {
    $view = search_advanced_get_search_view(['type' => $entity->type, 'subtype' => $entity->getSubtype(), 'search_type' => $search_type], search_advanced_get_list_type());
    if (empty($view)) {
        continue;
    }
    $entity_params = ['entity' => $entity, 'params' => $vars['params'], 'results' => $vars['results']];
    $list_item = elgg_view('search_advanced/search/floating_tag', $entity_params);
    $list_item .= elgg_view($view, $entity_params);
    $list_items .= elgg_format_element('li', ['id' => "elgg-{$entity->getType()}-{$entity->getGUID()}", 'class' => 'elgg-item'], $list_item);
}
$header = elgg_format_element('h3', [], $title);
if ($show_more) {
    $url = search_advanced_get_search_url(['limit' => null, 'search_type' => $search_type, 'entity_type' => $type, 'entity_subtype' => $subtype]);
    $more_link = elgg_view('output/url', ['href' => $url, 'text' => elgg_echo('search:more', array($count, $title)), 'class' => 'search-more float-alt']);
    $header = $more_link . $header;
}
$body = elgg_format_element('ul', ['class' => 'elgg-list search-list search-list-type-' . search_advanced_get_list_type()], $list_items);
$body .= $nav;
echo elgg_view_module('info', '', $body, ['header' => $header]);
Example #4
0
/**
 * Passes results, and original params to the view functions for
 * search type.
 *
 * @param array $results
 * @param array $params
 * @param string $view_type = list, entity or layout
 * @return string
 */
function search_advanced_get_search_view($params, $view_type)
{
    if (in_array($view_type, ['entity', 'list', 'layout'])) {
        return search_get_search_view($params, $view_type);
    }
    $list_type = search_advanced_get_list_type();
    $view_order = [];
    if (isset($params['type']) && $params['type'] && isset($params['subtype']) && $params['subtype']) {
        $view_order[] = "search/{$params['type']}/{$params['subtype']}/{$list_type}";
    }
    // also check for the default type
    if (isset($params['type']) && $params['type']) {
        $view_order[] = "search/{$params['type']}/{$list_type}";
    }
    // check search types
    if (isset($params['search_type']) && $params['search_type']) {
        $view_order[] = "search/{$params['search_type']}/{$list_type}";
    }
    // finally default to a search list default
    $view_order[] = "search/{$list_type}";
    foreach ($view_order as $view) {
        if (elgg_view_exists($view)) {
            return $view;
        }
    }
    return search_get_search_view($params, 'entity');
}