]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
uiredesign
authorRobin Millette <millette@controlyourself.ca>
Fri, 23 Jan 2009 01:00:57 +0000 (01:00 +0000)
committerRobin Millette <millette@plantard.controlezvous.ca>
Fri, 23 Jan 2009 01:00:57 +0000 (01:00 +0000)
actions/peoplesearch.php
lib/searchaction.php

index 2b13b08128201115527b8c45ee57bca1f7f97311..3c672c9400450051eb1964c189ca099094ca51d7 100644 (file)
@@ -1,5 +1,16 @@
 <?php
-/*
+/**
+ * People search action class.
+ *
+ * PHP version 5
+ *
+ * @category Action
+ * @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/
+ *
  * Laconica - a distributed open-source microblogging tool
  * Copyright (C) 2008, Controlez-Vous, Inc.
  *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('LACONICA')) { exit(1); }
+if (!defined('LACONICA')) {
+    exit(1);
+}
 
-require_once(INSTALLDIR.'/lib/searchaction.php');
-require_once(INSTALLDIR.'/lib/profilelist.php');
+require_once INSTALLDIR.'/lib/searchaction.php';
+require_once INSTALLDIR.'/lib/profilelist.php';
 
+/**
+ * People search action class.
+ *
+ * @category Action
+ * @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/
+ */
 class PeoplesearchAction extends SearchAction
 {
-
-    function get_instructions()
+    function getInstructions()
     {
         return _('Search for people on %%site.name%% by their name, location, or interests. ' .
                   'Separate the terms by spaces; they must be 3 characters or more.');
     }
 
-    function get_title()
+    function title()
     {
         return _('People search');
     }
 
-    function show_results($q, $page)
+    function showResults($q, $page)
     {
 
         $profile = new Profile();
@@ -57,28 +79,27 @@ class PeoplesearchAction extends SearchAction
         }
         if ($cnt > 0) {
             $terms = preg_split('/[\s,]+/', $q);
-            $results = new PeopleSearchResults($profile, $terms);
-            $results->show_list();
+            $results = new PeopleSearchResults($profile, $terms, $this);
+            $results->show();
         } else {
             $this->element('p', 'error', _('No results'));
         }
 
         $profile->free();
         
-        common_pagination($page > 1, $cnt > PROFILES_PER_PAGE,
+        $this->pagination($page > 1, $cnt > PROFILES_PER_PAGE,
                           $page, 'peoplesearch', array('q' => $q));
     }
 }
 
 class PeopleSearchResults extends ProfileList
 {
-
     var $terms = null;
     var $pattern = null;
     
-    function __construct($profile, $terms)
+    function __construct($profile, $terms, $action)
     {
-        parent::__construct($profile);
+        parent::__construct($profile, $terms, $action);
         $this->terms = array_map('preg_quote', 
                                  array_map('htmlspecialchars', $terms));
         $this->pattern = '/('.implode('|',$terms).')/i';
@@ -89,3 +110,4 @@ class PeopleSearchResults extends ProfileList
         return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text));
     }
 }
+
index bc90fac1aac5530be8d31476630e011e127256f0..71ab3a6ef5f1ad100b0c68b7ebfd12eea0c261b4 100644 (file)
@@ -1,5 +1,16 @@
 <?php
-/*
+/**
+ * Base search action class.
+ *
+ * PHP version 5
+ *
+ * @category Action
+ * @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/
+ *
  * Laconica - a distributed open-source microblogging tool
  * Copyright (C) 2008, Controlez-Vous, Inc.
  *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('LACONICA')) { exit(1); }
+if (!defined('LACONICA')) {
+    exit(1);
+}
+
+require_once INSTALLDIR.'/lib/searchgroupnav.php';
 
+/**
+ * Base search action class.
+ *
+ * @category Action
+ * @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/
+ */
 class SearchAction extends Action
 {
-
-    function is_readonly()
+    /**
+     * Return true if read only.
+     *
+     * @return boolean true
+     */
+    function isReadOnly()
     {
         return true;
     }
@@ -30,27 +59,41 @@ class SearchAction extends Action
     function handle($args)
     {
         parent::handle($args);
-        $this->show_form();
+        $this->showPage();
     }
 
-    function show_top($arr=null)
+    /**
+     * Show tabset for this page
+     *
+     * Uses the SearchGroupNav widget
+     *
+     * @return void
+     * @see SearchGroupNav
+     */
+
+    function showLocalNav()
+    {
+        $nav = new SearchGroupNav($this);
+        $nav->show();
+    }
+
+    function showTop($arr=null)
     {
         if ($arr) {
             $error = $arr[1];
         }
         if ($error) {
-            common_element('p', 'error', $error);
+            $this->element('p', 'error', $error);
         } else {
-            $instr = $this->get_instructions();
+            $instr = $this->getInstructions();
             $output = common_markup_to_html($instr);
-            common_element_start('div', 'instructions');
-            common_raw($output);
-            common_element_end('div');
+            $this->elementStart('div', 'instructions');
+            $this->raw($output);
+            $this->elementEnd('div');
         }
-        $this->search_menu();
     }
 
-    function get_title()
+    function title()
     {
         return null;
     }
@@ -60,59 +103,37 @@ class SearchAction extends Action
         return;
     }
 
-    function show_form($error=null)
+    function showNoticeForm() {
+        // remote post notice form
+    }
+
+    function showContent() {
+        $this->showTop();
+        $this->showForm();
+    }
+
+    function showForm($error=null)
     {
         global $config;
 
         $q = $this->trimmed('q');
         $page = $this->trimmed('page', 1);
-
-        common_show_header($this->get_title(), array($this, 'show_header'), array($q, $error),
-                           array($this, 'show_top'));
-        common_element_start('form', array('method' => 'get',
+        $this->elementStart('form', array('method' => 'get',
                                            'id' => 'login',
                                            'action' => common_local_url($this->trimmed('action'))));
-        common_element_start('p');
+        $this->elementStart('p');
         if (!isset($config['site']['fancy']) || !$config['site']['fancy']) {
-            common_element('input', array('name' => 'action',
-                                          'type' => 'hidden',
-                                          'value' => $this->trimmed('action')));
+            $this->hidden('action', $this->trimmed('action'));
         }
-        common_element('input', array('name' => 'q',
-                                      'id' => 'q',
-                                      'type' => 'text',
-                                      'class' => 'input_text',
-                                      'value' => ($q) ? $q : ''));
-        common_text(' ');
-        common_element('input', array('type' => 'submit',
-                                      'id' => 'search',
-                                      'name' => 'search',
-                                      'class' => 'submit',
-                                      'value' => _('Search')));
+        $this->input('q', '', $q);
+        $this->text(' ');
+        $this->submit('search', 'Search');
 
-        common_element_end('p');
-        common_element_end('form');
+        $this->elementEnd('p');
+        $this->elementEnd('form');
         if ($q) {
-            $this->show_results($q, $page);
+            $this->showResults($q, $page);
         }
-        common_show_footer();
-    }
-
-    function search_menu()
-    {
-        # action => array('prompt', 'title', $args)
-        $action = $this->trimmed('action');
-        $menu =
-          array('peoplesearch' =>
-                array(
-                      _('People'),
-                      _('Find people on this site'),
-                      ($action != 'peoplesearch' && $this->trimmed('q')) ? array('q' => $this->trimmed('q')) : null),
-                'noticesearch' =>
-                array( _('Text'),
-                       _('Find content of notices'),
-                       ($action != 'noticesearch' && $this->trimmed('q')) ? array('q' => $this->trimmed('q')) : null)
-                );
-        $this->nav_menu($menu);
     }
 }
+