aboutsummaryrefslogtreecommitdiff
path: root/mod/search/index.php
blob: c6283d2f3843708304bc1d397cda75dfe9c4a7a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php

  /** Main search page */

global $CONFIG;

$tag = get_input('tag');
$offset = get_input('offset', 0);
$limit = get_input('limit', 10);
$viewtype = get_input('search_viewtype','list');
$searchtype = get_input('searchtype', 'all');
$object_type = get_input('object_type', '');
$subtype = get_input('subtype', '');
$owner_guid = get_input('owner_guid', '');
$tagtype = get_input('tagtype', '');
$friends = (int)get_input('friends', 0);


$title = sprintf(elgg_echo('searchtitle'), $tag); 


if (substr_count($owner_guid,',')) {
    $owner_guid_array = explode(",",$owner_guid);
} else {
    $owner_guid_array = $owner_guid;
}
if ($friends > 0) {
    if ($friends = get_user_friends($friends,'',9999)) {
	$owner_guid_array = array();
	foreach($friends as $friend) {
	    $owner_guid_array[] = $friend->guid;
	}
    } else {
	$owner_guid = -1;
    }
}

// Set up submenus
if ($object_types = get_registered_entity_types()) {
    
    foreach($object_types as $ot => $subtype_array) {
	if (is_array($subtype_array) && sizeof($subtype_array))
	    foreach($subtype_array as $object_subtype) {
		$label = 'item:' . $ot;
		if (!empty($object_subtype)) $label .= ':' . $object_subtype;
		add_submenu_item(elgg_echo($label), $CONFIG->wwwroot . "pg/search/?tag=". urlencode($tag) ."&subtype=" . $object_subtype . "&object_type=". urlencode($ot) ."&tagtype=" . urlencode($md_type) . "&owner_guid=" . urlencode($owner_guid));
	    }
    }
    add_submenu_item(elgg_echo('all'), $CONFIG->wwwroot . "pg/search/?tag=". urlencode($tag) ."&owner_guid=" . urlencode($owner_guid));
    
}

$body = '';
if (!empty($tag)) {

    // blank the results to start off
    $results = new stdClass();
    $results->entities = array();
    $results->total = 0;

    $results = trigger_plugin_hook('search:entities', '', array('tag' => $tag,
								'offset' => $offset,
								'limit' => $limit,
								'searchtype' => $searchtype,
								'object_type' => $object_type,
								'subtype' => $subtype,
								'tagtype' => $tagtype,
								'owner_guid' => $owner_guid_array
								),
				   $results);

    /*
    $searchtypes = trigger_plugin_hook('search:types', '', NULL, array());
    add_submenu_item(elgg_echo('search:type:all'),
    $CONFIG->wwwroot . "pg/search/?tag=". urlencode($tag) ."&searchtype=all");
		     
     foreach ($searchtypes as $st) {
     add_submenu_item(elgg_echo('search:type:' . $st),
     $CONFIG->wwwroot . "pg/search/?tag=". urlencode($tag) ."&searchtype=" . $st);
    }
    */
    
		
    if (empty($objecttype) && empty($subtype)) {
	$title = sprintf(elgg_echo('searchtitle'),$tag); 
    } else {
	if (empty($objecttype)) $objecttype = 'object';
	$itemtitle = 'item:' . $objecttype;
	if (!empty($subtype)) $itemtitle .= ':' . $subtype;
	$itemtitle = elgg_echo($itemtitle);
	$title = sprintf(elgg_echo('advancedsearchtitle'),$itemtitle,$tag);
    }
		



    //print_r($results);

    $body .= elgg_view_title($title); // elgg_view_title(sprintf(elgg_echo('searchtitle'),$tag));
    $body .= elgg_view('search/startblurb',array('tag' => $tag));
    

    $body .= elgg_view('search/entity_list',array('entities' => $results->entities,
						  'count' => $results->total,
						  'offset' => $offset,
						  'limit' => $limit,
						  'baseurl' => $_SERVER['REQUEST_URI'],
						  'fullview' => false,
						  'context' => 'search', 
						  'viewtypetoggle' => true,
						  'viewtype' => $viewtype,
						  'pagination' => true
						  ));




elgg_view_entity_list($results->entities, count($results->entities), 0, count($results->entities), false);
} else {

    $body .= elgg_view_title(elgg_echo('search:enterterm'));
    $body .= elgg_view('page_elements/contentwrapper', array('body' => '<div>' . elgg_view('page_elements/searchbox') . '</div>'));


}
$layout = elgg_view_layout('two_column_left_sidebar','',$body);


page_draw($title, $layout);


?>