forked from GNUsocial/gnu-social
		
	Merge branch 'master' of ../trunk
This commit is contained in:
		| @@ -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. | ||||
|  * | ||||
| @@ -17,26 +28,37 @@ | ||||
|  * 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)); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -21,12 +21,10 @@ if (!defined('LACONICA')) { exit(1); } | ||||
|  | ||||
| class SubeditAction extends Action | ||||
| { | ||||
|  | ||||
|     var $profile = null; | ||||
|  | ||||
|     function prepare($args) | ||||
|     { | ||||
|  | ||||
|         parent::prepare($args); | ||||
|  | ||||
|         if (!common_logged_in()) { | ||||
| @@ -37,8 +35,9 @@ class SubeditAction extends Action | ||||
|         $token = $this->trimmed('token'); | ||||
|  | ||||
|         if (!$token || $token != common_session_token()) { | ||||
|             $this->clientError(_('There was a problem with your session token. Try again, please.')); | ||||
|             return; | ||||
|             $this->clientError(_('There was a problem with your session token. '. | ||||
|                                  'Try again, please.')); | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         $id = $this->trimmed('profile'); | ||||
|   | ||||
| @@ -184,15 +184,13 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) | ||||
|         // Display an error if the form markup couldn't be generated; | ||||
|         // otherwise, render the HTML. | ||||
|         if (Auth_OpenID::isFailure($form_html)) { | ||||
|             $this->show_form(sprintf(_('Could not create OpenID form: %s'), $form_html->message)); | ||||
|             common_server_error(sprintf(_('Could not create OpenID form: %s'), $form_html->message)); | ||||
|         } else { | ||||
|             common_show_header(_('OpenID Auto-Submit'), null, null, '_oid_print_instructions'); | ||||
|             common_raw($form_html); | ||||
|             common_element('script', null, | ||||
|                            '$(document).ready(function() { ' . | ||||
|                            '    $("#'. $form_id .'").submit(); '. | ||||
|                            '});'); | ||||
|             common_show_footer(); | ||||
|             $action = new AutosubmitAction(); // see below | ||||
|             $action->form_html = $form_html; | ||||
|             $action->form_id = $form_id; | ||||
|             $action->prepare(array('action' => 'autosubmit')); | ||||
|             $action->handle(array('action' => 'autosubmit')); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -251,3 +249,29 @@ function oid_update_user(&$user, &$sreg) | ||||
|  | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| class AutosubmitAction extends Action | ||||
| { | ||||
|     var $form_html = null; | ||||
|     var $form_id = null; | ||||
|  | ||||
|     function handle($args) | ||||
|     { | ||||
|         parent::handle($args); | ||||
|         $this->showPage(); | ||||
|     } | ||||
|  | ||||
|     function title() | ||||
|     { | ||||
|         return _('OpenID Auto-Submit'); | ||||
|     } | ||||
|  | ||||
|     function showContent() | ||||
|     { | ||||
|         $this->raw($this->form_html); | ||||
|         $this->element('script', null, | ||||
|                        '$(document).ready(function() { ' . | ||||
|                        '    $(\'#'. $this->form_id .'\').submit(); '. | ||||
|                        '});'); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -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. | ||||
|  * | ||||
| @@ -17,12 +28,30 @@ | ||||
|  * 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); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user