aboutsummaryrefslogtreecommitdiff
path: root/mod/search
diff options
context:
space:
mode:
Diffstat (limited to 'mod/search')
-rw-r--r--mod/search/start.php11
-rw-r--r--mod/search/views/default/search/comments/entity.php17
-rw-r--r--mod/search/views/default/search/css.php78
-rw-r--r--mod/search/views/default/search/entity.php22
-rw-r--r--mod/search/views/default/search/list.php44
5 files changed, 55 insertions, 117 deletions
diff --git a/mod/search/start.php b/mod/search/start.php
index 4f57a64c5..401bf84a5 100644
--- a/mod/search/start.php
+++ b/mod/search/start.php
@@ -249,8 +249,8 @@ function search_highlight_words($words, $string) {
$replace_html = array(
'strong' => rand(10000, 99999),
'class' => rand(10000, 99999),
- 'searchMatch' => rand(10000, 99999),
- 'searchMatchColor' => rand(10000, 99999)
+ 'search-highlight' => rand(10000, 99999),
+ 'search-highlight-color' => rand(10000, 99999)
);
foreach ($words as $word) {
@@ -262,16 +262,17 @@ function search_highlight_words($words, $string) {
$search = "/($word)/i";
+ // @todo
// must replace with placeholders in case one of the search terms is
// in the html string.
// later, will replace the placeholders with the actual html.
// Yeah this is hacky. I'm tired.
$strong = $replace_html['strong'];
$class = $replace_html['class'];
- $searchMatch = $replace_html['searchMatch'];
- $searchMatchColor = $replace_html['searchMatchColor'];
+ $highlight = $replace_html['search-highlight'];
+ $color = $replace_html['search-highlight-color'];
- $replace = "<$strong $class=\"$searchMatch $searchMatchColor{$i}\">$1</$strong>";
+ $replace = "<$strong $class=\"$highlight $color{$i}\">$1</$strong>";
$string = preg_replace($search, $replace, $string);
$i++;
}
diff --git a/mod/search/views/default/search/comments/entity.php b/mod/search/views/default/search/comments/entity.php
index eddb36547..005bb270c 100644
--- a/mod/search/views/default/search/comments/entity.php
+++ b/mod/search/views/default/search/comments/entity.php
@@ -1,6 +1,6 @@
<?php
/**
- * Default view for a comment
+ * Default search view for a comment
*
* @uses $vars['entity']
*/
@@ -46,14 +46,7 @@ $description = $entity->getVolatileData('search_matched_comment');
$tc = $entity->getVolatileData('search_matched_comment_time_created');;
$time = elgg_view_friendly_time($tc);
-echo <<<___END
- <div class="search_listing clearfix">
- <div class="search_listing_icon">$icon</div>
- <div class="search_listing_info">
- <p class="entity-title">$title</p>$description
- <p class="entity-subtext">$time</p>
- </div>
- </div>
-___END;
-
-?> \ No newline at end of file
+$body = "<p class=\"mbn\">$title</p>$description";
+$body .= "<p class=\"elgg-subtext\">$time</p>";
+
+echo elgg_view_image_block($icon, $body);
diff --git a/mod/search/views/default/search/css.php b/mod/search/views/default/search/css.php
index d6e905bf0..02e43bf8b 100644
--- a/mod/search/views/default/search/css.php
+++ b/mod/search/views/default/search/css.php
@@ -2,10 +2,12 @@
/**
* Elgg Search css
*
- * @package search
*/
?>
+/**********************************
+ Search plugin
+***********************************/
.elgg-page-header .elgg-search {
bottom: 5px;
height: 23px;
@@ -15,6 +17,9 @@
.elgg-page-header .elgg-search input[type=text] {
width: 198px;
}
+.elgg-page-header .elgg-search input[type=submit] {
+ display: none;
+}
.elgg-search input[type=text] {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
@@ -34,79 +39,30 @@
border: 1px solid white;
background-position: 2px -257px;
}
-.elgg-page-header .elgg-search input[type=submit] {
- display: none;
-}
-.search_listing {
- background:none;
- border-bottom:1px dotted #CCCCCC;
- clear:both;
- display:block;
- margin:0;
- padding:5px 0 7px;
- position:relative;
-}
-.search_listing_icon {
- float:left;
- margin-left:3px;
- margin-top:3px;
-}
-.search_listing_icon .avatar_menu_button img {
- width: 15px;
- margin:0;
-}
-.search_listing_info {
- float:left;
- margin-left:7px;
- min-height:28px;
- width:693px;
+.search-list li {
+ padding: 5px 0 0;
}
-.search_listing_info p {
- margin:0;
-}
-.search_listing_category_title {
- margin-top:20px;
-}
-.search_listing_category_title h2 {
- color:#666666;
-}
-.search_listing.more {
- display: block;
+.search-heading-category {
+ margin-top: 20px;
+ color: #666666;
}
-
-/* search matches */
-.searchtype {
- background: #FFFACD;
- color: black;
-}
-.searchtypes {
- border: 1px #EEEEEE solid;
- padding: 4px;
- margin: 6px;
-}
-.searchMatch {
+.search-highlight {
background-color: #bbdaf7;
}
-.searchMatchColor1 {
+.search-highlight-color1 {
background-color: #bbdaf7;
}
-.searchMatchColor2 {
+.search-highlight-color2 {
background-color: #A0FFFF;
}
-.searchMatchColor3 {
+.search-highlight-color3 {
background-color: #FDFFC3;
}
-.searchMatchColor4 {
+.search-highlight-color4 {
background-color: #cccccc;
}
-.searchMatchColor5 {
+.search-highlight-color5 {
background-color: #4690d6;
}
-
-/* formatting for the search results */
-
-.search_listing .item_timestamp {
- font-style: italic;
-}
diff --git a/mod/search/views/default/search/entity.php b/mod/search/views/default/search/entity.php
index ae3d43e01..2193a70d8 100644
--- a/mod/search/views/default/search/entity.php
+++ b/mod/search/views/default/search/entity.php
@@ -47,21 +47,11 @@ if (!$time) {
$tu = $entity->time_updated;
$time = elgg_view_friendly_time(($tu > $tc) ? $tu : $tc);
}
-?>
-<div class="search_listing clearfix">
- <div class="search_listing_icon">
- <?php echo $icon; ?>
- </div>
- <div class="search_listing_info">
- <p class="entity-title"><?php echo $title; ?></p>
- <?php echo $description; ?>
-<?php
+
+$body = "<p class=\"mbn\">$title</p>$description";
if ($extra_info) {
-?>
- <p class="entity-subtext"><?php echo $extra_info; ?></p>
-<?php
+ $body .= "<p class=\"elgg-subtext\">$extra_info</p>";
}
-?>
- <p class="entity-subtext"><?php echo $time; ?></p>
- </div>
-</div>
+$body .= "<p class=\"elgg-subtext\">$time</p>";
+
+echo elgg_view_image_block($icon, $body);
diff --git a/mod/search/views/default/search/list.php b/mod/search/views/default/search/list.php
index 27916a363..6f09ae521 100644
--- a/mod/search/views/default/search/list.php
+++ b/mod/search/views/default/search/list.php
@@ -10,8 +10,8 @@
* - 'type' Entity type
* - 'subtype' Entity subtype
* - 'search_type' Type of search: 'entities', 'comments', 'tags'
- * - 'offset'
- * - 'limit'
+ * - 'offset' Offset in search results
+ * - 'limit' Number of results per page
* - 'pagination' Display pagination?
*/
@@ -22,14 +22,13 @@ if (!is_array($entities) || !count($entities)) {
return FALSE;
}
-// @todo why are limit and offset pulled from input here and from $vars['params'] later
$query = http_build_query(
array(
'q' => $vars['params']['query'],
'entity_type' => $vars['params']['type'],
'entity_subtype' => $vars['params']['subtype'],
- 'limit' => get_input('limit', 10),
- 'offset' => get_input('offset', 0),
+ 'limit' => $vars['params']['limit'],
+ 'offset' => $vars['params']['offset'],
'search_type' => $vars['params']['search_type'],
//@todo include vars for sorting, order, and friend-only.
)
@@ -76,18 +75,6 @@ if (array_key_exists('search_type', $vars['params'])
$type_str = $search_type_str;
}
-// get pagination
-if (array_key_exists('pagination', $vars['params']) && $vars['params']['pagination']) {
- $nav .= elgg_view('navigation/pagination',array(
- 'baseurl' => $url,
- 'offset' => $vars['params']['offset'],
- 'count' => $vars['results']['count'],
- 'limit' => $vars['params']['limit'],
- ));
-} else {
- $nav = '';
-}
-
// get any more links.
$more_check = $vars['results']['count'] - ($vars['params']['offset'] + $vars['params']['limit']);
$more = ($more_check > 0) ? $more_check : 0;
@@ -95,22 +82,33 @@ $more = ($more_check > 0) ? $more_check : 0;
if ($more) {
$title_key = ($more == 1) ? 'comment' : 'comments';
$more_str = elgg_echo('search:more', array($count, $type_str));
- $more_link = "<div class='search_listing'><a href=\"$url\">$more_str</a></div>";
+ $more_link = "<li class='elgg-list-item'><a href=\"$url\">$more_str</a></li>";
} else {
$more_link = '';
}
-$body = "<div class='search_listing_category_title'>" . elgg_view_title($type_str) . "</div>";
-
-foreach ($entities as $entity) {
- if ($view = search_get_search_view($vars['params'], 'entity')) {
+// @todo once elgg_view_title() supports passing a $vars array use it
+$body = elgg_view('layout/elements/title', array(
+ 'title' => $type_str,
+ 'class' => 'search-heading-category',
+));
+
+$view = search_get_search_view($vars['params'], 'entity');
+if ($view) {
+ $body .= '<ul class="elgg-list search-list">';
+ foreach ($entities as $entity) {
+ $id = "elgg-{$entity->getType()}-{$entity->getGUID()}";
+ $body .= "<li id=\"$id\" class=\"elgg-list-item\">";
$body .= elgg_view($view, array(
'entity' => $entity,
'params' => $vars['params'],
'results' => $vars['results']
));
+ $body .= '</li>';
}
+ $body .= $more_link;
+ $body .= '</ul>';
}
+
echo $body;
-echo $more_link;
echo $nav;