<?php
+/**
+ * @file include/acl_selectors.php
+ */
+
require_once("include/contact_selectors.php");
require_once("include/contact_widgets.php");
+require_once("include/dir_fns.php");
require_once("include/features.php");
require_once("mod/proxy.php");
-/**
- *
- */
/**
* @package acl_selectors
killme();
}
-
+/**
+ * @brief Searching for global contacts for autocompletion
+ *
+ * @param App $a
+ * @return type
+ */
function navbar_complete(&$a) {
// logger('navbar_complete');
return;
}
- $local = get_config('system','poco_local_search');
- $local = true;
+ // check if searching in the local global contact table is enabled
+ $localsearch = get_config('system','poco_local_search');
$search = $prefix.notags(trim($_REQUEST['search']));
+
+ // don't search if search term has less than 2 characters
if(! $search || mb_strlen($search) < 2)
return array();
- $star = false;
- $address = false;
-
if(substr($search,0,1) === '@')
$search = substr($search,1);
- if(substr($search,0,1) === '*') {
- $star = true;
- $search = substr($search,1);
- }
-
- if(strpos($search,'@') !== false) {
- $address = true;
- }
-
- if($local) {
- require_once("include/dir_fns.php");
- $x = dirsearch_autocomplete($search);
+ if($localsearch) {
+ $x = dirsearch_global_by_name($search);
return $x;
}
- if(! $local) {
- require_once("include/dir_fns.php");
- $url = $directory['url'] . '/dirsearch';
-
-
+ if(! $localsearch) {
$p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
-
$x = z_fetch_url(get_server().'/lsearch?f=' . $p . '&search=' . urlencode($search));
if($x['success']) {
<?php
+/**
+ * @file include/dir_fns.php
+ * @brief Functions for directory
+ */
-
-function dirsearch_autocomplete($search) {
+/**
+ * @brief Search global contact table by nick or name
+ * *
+ * @param string $search
+ * @return array
+ */
+function dirsearch_global_by_name($search) {
if($search) {
-
+ // check supported networks
if (get_config('system','diaspora_enabled'))
$diaspora = NETWORK_DIASPORA;
else
else
$ostatus = NETWORK_DFRN;
- $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`nick`, `gcontact`.`photo`, `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr`
+ $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`nick`, `gcontact`.`photo`,
+ `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr`
FROM `gcontact`
LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
function nav(&$a) {
- /**
+ /*
*
* Build page header and site navigation bars
*
if(!(x($a->page,'nav')))
$a->page['nav'] = '';
- $base = z_root();
- /**
+ $a->page['htmlhead'] .= replace_macros(get_markup_template('nav_head.tpl'), array());
+
+ /*
* Placeholder div for popup panel
*/
- $a->page['htmlhead'] .= <<< EOT
-
-<script>$(document).ready(function() {
- $("#search-text").search_autocomplete('$base/acl');
-});
-</script>
-EOT;
$a->page['nav'] .= '<div id="panel" style="display: none;"></div>' ;
$nav_info = nav_info($a);
- /**
+ /*
* Build the page
*/
'$baseurl' => $a->get_baseurl(),
'$sitelocation' => $nav_info['sitelocation'],
'$nav' => $nav_info['nav'],
- '$banner' => $nav_info['banner'],
+ '$banner' => $nav_info['banner'],
'$emptynotifications' => t('Nothing new here'),
'$userinfo' => $nav_info['userinfo'],
- '$sel' => $a->nav_sel,
+ '$sel' => $a->nav_sel,
'$apps' => $a->apps,
- '$clear_notifs' => t('Clear notifications')
+ '$clear_notifs' => t('Clear notifications'),
+ '$search_hint' => t('@name, !forum, #tags, content')
));
call_hooks('page_header', $a->page['nav']);
$ssl_state = ((local_user()) ? true : false);
- /**
+ /*
*
* Our network is distributed, and as you visit friends some of the
* sites look exactly the same - it isn't always easy to know where you are.
// nav links: array of array('href', 'text', 'extra css classes', 'title')
$nav = Array();
- /**
+ /*
* Display login or logout
*/
}
- /**
+ /*
* "Home" should also take you home from an authenticated remote profile connection
*/
$nav['about'] = Array('friendica', t('Information'), "", t('Information about this friendica instance'));
- /**
+ /*
*
* The following nav links are only show to logged in users
*
$nav['contacts'] = array('contacts', t('Contacts'),"", t('Manage/edit friends and contacts'));
}
- /**
+ /*
* Admin page
*/
if (is_site_admin()){
$nav['navigation'] = array('navigation/', t('Navigation'), "", t('Site map'));
- /**
+ /*
*
* Provide a banner/logo/whatever
*
}
-/*
+/**
* Set a menu item in navbar as selected
*
*/
function nav_set_selected($item){
$a = get_app();
- $a->nav_sel = array(
+ $a->nav_sel = array(
'community' => null,
- 'network' => null,
- 'home' => null,
- 'profiles' => null,
+ 'network' => null,
+ 'home' => null,
+ 'profiles' => null,
'introductions' => null,
'notifications' => null,
- 'messages' => null,
- 'directory' => null,
- 'settings' => null,
- 'contacts' => null,
- 'manage' => null,
- 'events' => null,
- 'register' => null,
+ 'messages' => null,
+ 'directory' => null,
+ 'settings' => null,
+ 'contacts' => null,
+ 'manage' => null,
+ 'events' => null,
+ 'register' => null,
);
$a->nav_sel[$item] = 'selected';
}
.notify-unseen { background-color: #cceeFF; }
/* autocomplete popup */
-
ul.acpopup {
list-style: none;
float: left;
}
nav .acpopup {
width: 290px;
- margin-left: -35px;
max-height: 450px;
max-width: 300px;
overflow-y: auto;
<script>
$(document).ready(function() {
- $("#recip").name_autocomplete(baseurl + '/acl', '', false, function(data) {
+ $("#recip").name_autocomplete(baseurl + '/acl', 'm', false, function(data) {
$("#recip-complete").val(data.id);
});
});
color: #737373;
}
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
border-radius: 5px;
}
right: 0px;
}
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
width: 100px;
}
top: 44px;
}
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
background-color: initial;
border-style: solid;
border-width: 1px;
padding: 1px 3px;
border-radius: 5px 5px 5px 5px;
}
-// -----
+
nav .nav-menu-icon .nav-notify {
top: 0px;
}
top: 44px;
}
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
background-color: initial;
border-style: solid;
border-width: 1px;
}
#pending-update {
- float:right;
- color: #ffffff;
- font-weight: bold;
- background-color: #FF0000;
- padding: 0em 0.3em;
+ float:right;
+ color: #ffffff;
+ font-weight: bold;
+ background-color: #FF0000;
+ padding: 0em 0.3em;
}
.admin.linklist {
- border: 0px;
+ border: 0px;
padding: 0px;
list-style: none;
margin-top: 0px;
}
.admin.link {
- list-style-position: inside;
- font-size: 1em;
+ list-style-position: inside;
+ font-size: 1em;
/* padding-left: 5px;
- margin: 5px; */
+ margin: 5px; */
}
#adminpage dl {
- clear: left;
- margin-bottom: 2px;
- padding-bottom: 2px;
- border-bottom: 1px solid black;
+ clear: left;
+ margin-bottom: 2px;
+ padding-bottom: 2px;
+ border-bottom: 1px solid black;
}
#adminpage dt {
- width: 200px;
- float: left;
- font-weight: bold;
+ width: 200px;
+ float: left;
+ font-weight: bold;
}
#adminpage dd {
- margin-left: 200px;
+ margin-left: 200px;
}
#adminpage h3 {
- border-bottom: 1px solid #898989;
- margin-bottom: 5px;
- margin-top: 10px;
+ border-bottom: 1px solid #898989;
+ margin-bottom: 5px;
+ margin-top: 10px;
}
#adminpage .submit {
- clear:left;
+ clear:left;
}
#adminpage #pluginslist {
- margin: 0px; padding: 0px;
+ margin: 0px; padding: 0px;
}
#adminpage .plugin {
- list-style: none;
- display: block;
+ list-style: none;
+ display: block;
/* border: 1px solid #888888; */
- padding: 1em;
- margin-bottom: 5px;
- clear: left;
+ padding: 1em;
+ margin-bottom: 5px;
+ clear: left;
}
#adminpage .toggleplugin {
- float:left;
- margin-right: 1em;
+ float:left;
+ margin-right: 1em;
}
#adminpage table {width:100%; border-bottom: 1p solid #000000; margin: 5px 0px;}
right: auto;
}
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
/*background-image: url('icons/lupe.png');
background-repeat:no-repeat; */
padding-left:0px;
color: #2d2d2d;
max-height: 150px;
}
+nav .acpopup {
+ top: 31px !important;
+ margin-left: -23px
+}
.acpopupitem {
color: #2d2d2d;
padding: 4px;
{{/if}}
{{if $nav.search}}
- <li role="search" id="search-box">
+ <li role="search" id="nav-search-box">
<form method="get" action="{{$nav.search.0}}">
- <input accesskey="s" id="search-text" class="nav-menu-search" type="text" value="" name="search">
+ <input accesskey="s" id="nav-search-text" class="nav-menu-search" type="text" value="" name="search" placeholder=" {{$search_hint}}">
<select name="search-option">
<option value="fulltext">{{$nav.searchoption.0}}</option>
<option value="tags">{{$nav.searchoption.1}}</option>
--- /dev/null
+
+<script>
+$(document).ready(function() {
+ $("#nav-search-text").search_autocomplete(baseurl + '/acl');
+});
+</script>