summaryrefslogtreecommitdiff
path: root/actions/peoplesearch.php
diff options
context:
space:
mode:
authorZach Copley <zach@controlyourself.ca>2009-07-03 15:42:55 -0700
committerZach Copley <zach@controlyourself.ca>2009-07-03 15:42:55 -0700
commit2881b553fec5167c8252f7c55247345e1af11be5 (patch)
tree60e215fb1e5eaa4e566f7b197f6ae10ffc3e4345 /actions/peoplesearch.php
parentc02acd7341cc3104b75a56e0b8dfd4811e77e278 (diff)
parent088fa6befcf93607020fa2c77fcfdc952239efb8 (diff)
Merge branch '0.8.x' of git@gitorious.org:laconica/dev into 0.8.x
* '0.8.x' of git@gitorious.org:laconica/dev: null for both args in conversation no limit on conversation stream fixed limit for conversations only show subscribe button in profile list for local users move peoplesearchresults class to action/peoplesearch only show subscription controls to owner
Diffstat (limited to 'actions/peoplesearch.php')
-rw-r--r--actions/peoplesearch.php44
1 files changed, 44 insertions, 0 deletions
diff --git a/actions/peoplesearch.php b/actions/peoplesearch.php
index c61e0e273..60ddb6a82 100644
--- a/actions/peoplesearch.php
+++ b/actions/peoplesearch.php
@@ -87,3 +87,47 @@ class PeoplesearchAction extends SearchAction
}
}
+/**
+ * People search results class
+ *
+ * Derivative of ProfileList with specialization for highlighting search terms.
+ *
+ * @category Widget
+ * @package Laconica
+ * @author Evan Prodromou <evan@controlyourself.ca>
+ * @author Robin Millette <millette@controlyourself.ca>
+ * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link http://laconi.ca/
+ *
+ * @see PeoplesearchAction
+ */
+
+class PeopleSearchResults extends ProfileList
+{
+ var $terms = null;
+ var $pattern = null;
+
+ function __construct($profile, $terms, $action)
+ {
+ parent::__construct($profile, $action);
+
+ $this->terms = array_map('preg_quote',
+ array_map('htmlspecialchars', $terms));
+
+ $this->pattern = '/('.implode('|',$terms).')/i';
+ }
+
+ function newProfileItem($profile)
+ {
+ return new PeopleSearchResultItem($profile, $this->action);
+ }
+}
+
+class PeopleSearchResultItem extends ProfileListItem
+{
+ function highlight($text)
+ {
+ return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text));
+ }
+}
+