本文整理汇总了PHP中get_my_url函数的典型用法代码示例。如果您正苦于以下问题:PHP get_my_url函数的具体用法?PHP get_my_url怎么用?PHP get_my_url使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_my_url函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: wallmessage_content
function wallmessage_content(&$a)
{
if (!get_my_url()) {
notice(t('Permission denied.') . EOL);
return;
}
$recipient = $a->argc > 1 ? $a->argv[1] : '';
if (!$recipient) {
notice(t('No recipient.') . EOL);
return;
}
$r = q("select * from user where nickname = '%s' limit 1", dbesc($recipient));
if (!count($r)) {
notice(t('No recipient.') . EOL);
logger('wallmessage: no recipient');
return;
}
$user = $r[0];
if (!intval($user['unkmail'])) {
notice(t('Permission denied.') . EOL);
return;
}
$r = q("select count(*) as total from mail where uid = %d and created > UTC_TIMESTAMP() - INTERVAL 1 day and unknown = 1", intval($user['uid']));
if ($r[0]['total'] > $user['cntunkmail']) {
notice(sprintf(t('Number of daily wall messages for %s exceeded. Message failed.', $user['username'])));
return;
}
$tpl = get_markup_template('wallmsg-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true), '$editselect' => '/(profile-jot-text|prvmail-text)/', '$nickname' => $user['nickname'], '$linkurl' => t('Please enter a link URL:')));
$tpl = get_markup_template('wallmessage.tpl');
$o .= replace_macros($tpl, array('$header' => t('Send Private Message'), '$subheader' => sprintf(t('If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders.'), $user['username']), '$to' => t('To:'), '$subject' => t('Subject:'), '$recipname' => $user['username'], '$nickname' => $user['nickname'], '$subjtxt' => x($_REQUEST, 'subject') ? strip_tags($_REQUEST['subject']) : '', '$text' => x($_REQUEST, 'body') ? escape_tags(htmlspecialchars($_REQUEST['body'])) : '', '$readonly' => '', '$yourmessage' => t('Your message:'), '$select' => $select, '$parent' => '', '$upload' => t('Upload photo'), '$insert' => t('Insert web link'), '$wait' => t('Please wait')));
return $o;
}
示例2: zid
/**
* @brief Adds a zid parameter to a url.
*
* @param string $s
* The url to accept the zid
* @param boolean $address
* $address to use instead of session environment
* @return string
*
* @hooks 'zid'
* string url - url to accept zid
* string zid - urlencoded zid
* string result - the return string we calculated, change it if you want to return something else
*/
function zid($s, $address = '')
{
if (!strlen($s) || strpos($s, 'zid=')) {
return $s;
}
$has_params = strpos($s, '?') ? true : false;
$num_slashes = substr_count($s, '/');
if (!$has_params) {
$has_params = strpos($s, '&') ? true : false;
}
$achar = strpos($s, '?') ? '&' : '?';
$mine = get_my_url();
$myaddr = $address ? $address : get_my_address();
/** @FIXME checking against our own channel url is no longer reliable. We may have a lot
* of urls attached to out channel. Should probably match against our site, since we
* will not need to remote authenticate on our own site anyway.
*/
if ($mine && $myaddr && !link_compare($mine, $s)) {
$zurl = $s . ($num_slashes >= 3 ? '' : '/') . $achar . 'zid=' . urlencode($myaddr);
} else {
$zurl = $s;
}
$arr = array('url' => $s, 'zid' => urlencode($myaddr), 'result' => $zurl);
call_hooks('zid', $arr);
return $arr['result'];
}
示例3: nav
function nav(&$a)
{
/**
*
* Build page header and site navigation bars
*
*/
$ssl_state = local_user() ? true : false;
if (!x($a->page, 'nav')) {
$a->page['nav'] = '';
}
/**
* Placeholder div for popup panel
*/
$a->page['nav'] .= '<div id="panel" style="display: none;"></div>';
/**
*
* 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.
* Display the current site location as a navigation aid.
*
*/
$myident = is_array($a->user) && isset($a->user['nickname']) ? $a->user['nickname'] . '@' : '';
$sitelocation = $myident . substr($a->get_baseurl($ssl_state), strpos($a->get_baseurl($ssl_state), '//') + 2);
// nav links: array of array('href', 'text', 'extra css classes', 'title')
$nav = array();
/**
* Display login or logout
*/
$nav['usermenu'] = array();
$userinfo = null;
if (local_user()) {
$nav['logout'] = array('logout', t('Logout'), "", t('End this session'));
// user menu
$nav['usermenu'][] = array('profile/' . $a->user['nickname'], t('Status'), "", t('Your posts and conversations'));
$nav['usermenu'][] = array('profile/' . $a->user['nickname'] . '?tab=profile', t('Profile'), "", t('Your profile page'));
$nav['usermenu'][] = array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
$nav['usermenu'][] = array('events/', t('Events'), "", t('Your events'));
$nav['usermenu'][] = array('notes/', t('Personal notes'), "", t('Your personal photos'));
// user info
$r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
$userinfo = array('icon' => count($r) ? $r[0]['micro'] : $a->get_baseurl($ssl_state) . "/images/person-48.jpg", 'name' => $a->user['username']);
} else {
$nav['login'] = array('login', t('Login'), $a->module == 'login' ? 'selected' : '', t('Sign in'));
}
/**
* "Home" should also take you home from an authenticated remote profile connection
*/
$homelink = get_my_url();
if (!$homelink) {
$homelink = x($_SESSION, 'visitor_home') ? $_SESSION['visitor_home'] : '';
}
if ($a->module != 'home' && !local_user()) {
$nav['home'] = array($homelink, t('Home'), "", t('Home Page'));
}
if ($a->config['register_policy'] == REGISTER_OPEN && !local_user() && !remote_user()) {
$nav['register'] = array('register', t('Register'), "", t('Create an account'));
}
$help_url = $a->get_baseurl($ssl_state) . '/help';
if (!get_config('system', 'hide_help')) {
$nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'));
}
if (count($a->apps) > 0) {
$nav['apps'] = array('apps', t('Apps'), "", t('Addon applications, utilities, games'));
}
$nav['search'] = array('search', t('Search'), "", t('Search site content'));
$gdirpath = 'directory';
if (strlen(get_config('system', 'singleuser'))) {
$gdir = dirname(get_config('system', 'directory_submit_url'));
if (strlen($gdir)) {
$gdirpath = $gdir;
}
} elseif (!get_config('system', 'no_community_page')) {
$nav['community'] = array('community', t('Community'), "", t('Conversations on this site'));
}
$nav['directory'] = array($gdirpath, t('Directory'), "", t('People directory'));
/**
*
* The following nav links are only show to logged in users
*
*/
if (local_user()) {
$nav['network'] = array('network', t('Network'), "", t('Conversations from your friends'));
$nav['home'] = array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations'));
/* only show friend requests for normal pages. Other page types have automatic friendship. */
if ($_SESSION['page_flags'] == PAGE_NORMAL || $_SESSION['page_flags'] == PAGE_PRVGROUP) {
$nav['introductions'] = array('notifications/intros', t('Introductions'), "", t('Friend Requests'));
$nav['notifications'] = array('notifications', t('Notifications'), "", t('Notifications'));
$nav['notifications']['all'] = array('notifications/system', t('See all notifications'), "", "");
$nav['notifications']['mark'] = array('', t('Mark all system notifications seen'), '', '');
}
$nav['messages'] = array('message', t('Messages'), "", t('Private mail'));
$nav['messages']['inbox'] = array('message', t('Inbox'), "", t('Inbox'));
$nav['messages']['outbox'] = array('message/sent', t('Outbox'), "", t('Outbox'));
$nav['messages']['new'] = array('message/new', t('New Message'), "", t('New Message'));
if (is_array($a->identities) && count($a->identities) > 1) {
$nav['manage'] = array('manage', t('Manage'), "", t('Manage other pages'));
}
$nav['settings'] = array('settings', t('Settings'), "", t('Account settings'));
$nav['profiles'] = array('profiles', t('Profiles'), "", t('Manage/edit profiles'));
//.........这里部分代码省略.........
示例4: zrl
function zrl($s, $force = false)
{
if (!strlen($s)) {
return $s;
}
if (!strpos($s, '/profile/') && !$force) {
return $s;
}
if ($force && substr($s, -1, 1) !== '/') {
$s = $s . '/';
}
$achar = strpos($s, '?') ? '&' : '?';
$mine = get_my_url();
if ($mine and !link_compare($mine, $s)) {
return $s . $achar . 'zrl=' . urlencode($mine);
}
return $s;
}
示例5: common_content
function common_content(&$a)
{
$o = '';
$cmd = $a->argv[1];
$uid = intval($a->argv[2]);
$cid = intval($a->argv[3]);
$zcid = 0;
if (!local_user()) {
notice(t('Permission denied.') . EOL);
return;
}
if ($cmd !== 'loc' && $cmd != 'rem') {
return;
}
if (!$uid) {
return;
}
if ($cmd === 'loc' && $cid) {
$c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", intval($cid), intval($uid));
$a->page['aside'] = "";
profile_load($a, "", 0, get_contact_details_by_url($c[0]["url"]));
} else {
$c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", intval($uid));
$vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"), array('$name' => htmlentities($c[0]['name']), '$photo' => $c[0]['photo'], 'url' => z_root() . '/contacts/' . $cid));
if (!x($a->page, 'aside')) {
$a->page['aside'] = '';
}
$a->page['aside'] .= $vcard_widget;
}
if (!count($c)) {
return;
}
if (!$cid) {
if (get_my_url()) {
$r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1", dbesc(normalise_link(get_my_url())), intval($profile_uid));
if (count($r)) {
$cid = $r[0]['id'];
} else {
$r = q("SELECT `id` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1", dbesc(normalise_link(get_my_url())));
if (count($r)) {
$zcid = $r[0]['id'];
}
}
}
}
if ($cid == 0 && $zcid == 0) {
return;
}
if ($cid) {
$t = count_common_friends($uid, $cid);
} else {
$t = count_common_friends_zcid($uid, $zcid);
}
if (count($t)) {
$a->set_pager_total($t);
} else {
notice(t('No contacts in common.') . EOL);
return $o;
}
if ($cid) {
$r = common_friends($uid, $cid, $a->pager['start'], $a->pager['itemspage']);
} else {
$r = common_friends_zcid($uid, $zcid, $a->pager['start'], $a->pager['itemspage']);
}
if (!count($r)) {
return $o;
}
$id = 0;
foreach ($r as $rr) {
//get further details of the contact
$contact_details = get_contact_details_by_url($rr['url'], $uid);
// $rr[id] is needed to use contact_photo_menu()
$rr[id] = $rr[cid];
$photo_menu = '';
$photo_menu = contact_photo_menu($rr);
$entry = array('url' => $rr['url'], 'itemurl' => $contact_details['addr'] != "" ? $contact_details['addr'] : $rr['url'], 'name' => $rr['name'], 'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB), 'img_hover' => htmlentities($rr['name']), 'details' => $contact_details['location'], 'tags' => $contact_details['keywords'], 'about' => $contact_details['about'], 'account_type' => $contact_details['community'] ? t('Forum') : '', 'network' => network_to_name($contact_details['network'], $contact_details['url']), 'photo_menu' => $photo_menu, 'id' => ++$id);
$entries[] = $entry;
}
if ($cmd === 'loc' && $cid && $uid == local_user()) {
$tab_str = contacts_tab($a, $cid, 4);
} else {
$title = t('Common Friends');
}
$tpl = get_markup_template('viewcontact_template.tpl');
$o .= replace_macros($tpl, array('$title' => $title, '$tab_str' => $tab_str, '$contacts' => $entries, '$paginate' => paginate($a)));
return $o;
}
示例6: nav
/** @file */
function nav(&$a)
{
/**
*
* Build page header and site navigation bars
*
*/
if (!x($a->page, 'nav')) {
$a->page['nav'] = '';
}
$base = z_root();
$a->page['htmlhead'] .= <<<EOT
<script>\$(document).ready(function() {
\t\$("#nav-search-text").search_autocomplete('{$base}/acl');
});
</script>
EOT;
if (local_channel()) {
$channel = $a->get_channel();
$observer = $a->get_observer();
$prof = q("select id from profile where uid = %d and is_default = 1", intval($channel['channel_id']));
$chans = q("select channel_name, channel_id from channel where channel_account_id = %d and not ( channel_pageflags & %d )>0 order by channel_name ", intval(get_account_id()), intval(PAGE_REMOVED));
} elseif (remote_channel()) {
$observer = $a->get_observer();
}
$myident = $channel ? $channel['xchan_addr'] : '';
$sitelocation = $myident ? $myident : $a->get_hostname();
/**
*
* Provide a banner/logo/whatever
*
*/
$banner = get_config('system', 'banner');
if ($banner === false) {
$banner = get_config('system', 'sitename');
}
$a->page['header'] .= replace_macros(get_markup_template('hdr.tpl'), array('$baseurl' => $a->get_baseurl(), '$sitelocation' => $sitelocation, '$banner' => $banner));
// nav links: array of array('href', 'text', 'extra css classes', 'title')
$nav = array();
/**
* Display login or logout
*/
$nav['usermenu'] = array();
$userinfo = null;
$nav['loginmenu'] = array();
if (local_channel()) {
if ($chans && count($chans) > 1 && feature_enabled(local_channel(), 'nav_channel_select')) {
$nav['channels'] = $chans;
}
$nav['logout'] = array('logout', t('Logout'), "", t('End this session'), 'logout_nav_btn');
// user menu
$nav['usermenu'][] = array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'), 'channel_nav_btn');
$nav['usermenu'][] = array('profile/' . $channel['channel_address'], t('View Profile'), "", t('Your profile page'), 'profile_nav_btn');
if (feature_enabled(local_channel(), 'multi_profiles')) {
$nav['usermenu'][] = array('profiles', t('Edit Profiles'), "", t('Manage/Edit profiles'), 'profiles_nav_btn');
} else {
$nav['usermenu'][] = array('profiles/' . $prof[0]['id'], t('Edit Profile'), "", t('Edit your profile'), 'profiles_nav_btn');
}
$nav['usermenu'][] = array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos'), 'photos_nav_btn');
$nav['usermenu'][] = array('cloud/' . $channel['channel_address'], t('Files'), "", t('Your files'), 'cloud_nav_btn');
require_once 'include/chat.php';
$has_chats = chatroom_list_count(local_channel());
if ($has_chats) {
$nav['usermenu'][] = array('chat/' . $channel['channel_address'], t('Chat'), "", t('Your chatrooms'), 'chat_nav_btn');
}
require_once 'include/menu.php';
$has_bookmarks = menu_list_count(local_channel(), '', MENU_BOOKMARK) + menu_list_count(local_channel(), '', MENU_SYSTEM | MENU_BOOKMARK);
if ($has_bookmarks) {
$nav['usermenu'][] = array('bookmarks', t('Bookmarks'), "", t('Your bookmarks'), 'bookmarks_nav_btn');
}
if (feature_enabled($channel['channel_id'], 'webpages')) {
$nav['usermenu'][] = array('webpages/' . $channel['channel_address'], t('Webpages'), "", t('Your webpages'), 'webpages_nav_btn');
}
} else {
if (!get_account_id()) {
$nav['loginmenu'][] = array('login', t('Login'), '', t('Sign in'), 'login_nav_btn');
} else {
$nav['alogout'] = array('logout', t('Logout'), "", t('End this session'), 'logout_nav_btn');
}
}
if ($observer) {
$userinfo = array('icon' => $observer['xchan_photo_m'], 'name' => $observer['xchan_addr']);
}
if ($observer) {
$nav['lock'] = array('logout', '', 'lock', sprintf(t('%s - click to logout'), $observer['xchan_addr']));
} else {
$nav['loginmenu'][] = array('rmagic', t('Remote authentication'), '', t('Click to authenticate to your home hub'), 'rmagic_nav_btn');
}
/**
* "Home" should also take you home from an authenticated remote profile connection
*/
$homelink = get_my_url();
if (!$homelink) {
$observer = $a->get_observer();
$homelink = $observer ? $observer['xchan_url'] : '';
}
if ($a->module != 'home' && !local_channel()) {
//.........这里部分代码省略.........
示例7: common_friends_visitor_widget
function common_friends_visitor_widget($profile_uid)
{
$a = get_app();
if (local_user() == $profile_uid) {
return;
}
$cid = $zcid = 0;
if (is_array($_SESSION['remote'])) {
foreach ($_SESSION['remote'] as $visitor) {
if ($visitor['uid'] == $profile_uid) {
$cid = $visitor['cid'];
break;
}
}
}
if (!$cid) {
if (get_my_url()) {
$r = q("select id from contact where nurl = '%s' and uid = %d limit 1", dbesc(normalise_link(get_my_url())), intval($profile_uid));
if (count($r)) {
$cid = $r[0]['id'];
} else {
$r = q("select id from gcontact where nurl = '%s' limit 1", dbesc(normalise_link(get_my_url())));
if (count($r)) {
$zcid = $r[0]['id'];
}
}
}
}
if ($cid == 0 && $zcid == 0) {
return;
}
require_once 'include/socgraph.php';
if ($cid) {
$t = count_common_friends($profile_uid, $cid);
} else {
$t = count_common_friends_zcid($profile_uid, $zcid);
}
if (!$t) {
return;
}
if ($cid) {
$r = common_friends($profile_uid, $cid, 0, 5, true);
} else {
$r = common_friends_zcid($profile_uid, $zcid, 0, 5, true);
}
return replace_macros(get_markup_template('remote_friends_common.tpl'), array('$desc' => sprintf(tt("%d contact in common", "%d contacts in common", $t), $t), '$base' => $a->get_baseurl(), '$uid' => $profile_uid, '$cid' => $cid ? $cid : '0', '$linkmore' => $t > 5 ? 'true' : '', '$more' => t('show more'), '$items' => $r));
}
示例8: nav
/** @file */
function nav(&$a)
{
/**
*
* Build page header and site navigation bars
*
*/
if (!x($a->page, 'nav')) {
$a->page['nav'] = '';
}
$base = z_root();
$a->page['htmlhead'] .= <<<EOT
<script>\$(document).ready(function() {
var a;
a = \$("#nav-search-text").autocomplete({
serviceUrl: '{$base}/acl',
minChars: 2,
width: 250,
id: 'nav-search-text-ac',
});
a.setOptions({ autoSubmit: true, params: { type: 'x' }});
});
</script>
EOT;
if (local_user()) {
$channel = $a->get_channel();
$observer = $a->get_observer();
$prof = q("select id from profile where uid = %d and is_default = 1", intval($channel['channel_id']));
$chans = q("select channel_name, channel_id from channel where channel_account_id = %d and not ( channel_pageflags & %d ) order by channel_name ", intval(get_account_id()), intval(PAGE_REMOVED));
} elseif (remote_user()) {
$observer = $a->get_observer();
}
$myident = $channel ? $channel['xchan_addr'] : '';
$sitelocation = $myident ? $myident : $a->get_hostname();
/**
*
* Provide a banner/logo/whatever
*
*/
$banner = get_config('system', 'banner');
if ($banner === false) {
$banner = get_config('system', 'sitename');
}
$a->page['header'] .= replace_macros(get_markup_template('hdr.tpl'), array('$baseurl' => $a->get_baseurl(), '$sitelocation' => $sitelocation, '$banner' => $banner));
// nav links: array of array('href', 'text', 'extra css classes', 'title')
$nav = array();
/**
* Display login or logout
*/
$nav['usermenu'] = array();
$userinfo = null;
if (local_user()) {
if ($chans && count($chans) > 1 && feature_enabled(local_user(), 'nav_channel_select')) {
$nav['channels'] = $chans;
}
$nav['logout'] = array('logout', t('Logout'), "", t('End this session'));
// user menu
$nav['usermenu'][] = array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'));
$nav['usermenu'][] = array('profile/' . $channel['channel_address'], t('View Profile'), "", t('Your profile page'));
if (feature_enabled(local_user(), 'multi_profiles')) {
$nav['usermenu'][] = array('profiles', t('Edit Profiles'), "", t('Manage/Edit profiles'));
} else {
$nav['usermenu'][] = array('profiles/' . $prof[0]['id'], t('Edit Profile'), "", t('Edit your profile'));
}
$nav['usermenu'][] = array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos'));
$nav['usermenu'][] = array('cloud/' . $channel['channel_address'], t('Files'), "", t('Your files'));
require_once 'include/chat.php';
$chats = chatroom_list(local_user());
if (count($chats)) {
$nav['usermenu'][] = array('chat/' . $channel['channel_address'], t('Chat'), "", t('Your chatrooms'));
}
$nav['usermenu'][] = array('bookmarks', t('Bookmarks'), "", t('Your bookmarks'));
if (feature_enabled($channel['channel_id'], 'webpages')) {
$nav['usermenu'][] = array('webpages/' . $channel['channel_address'], t('Webpages'), "", t('Your webpages'));
}
} else {
if (!get_account_id()) {
$nav['login'] = array('login', t('Login'), $a->module == 'login' ? 'selected' : '', t('Sign in'));
} else {
$nav['alogout'] = array('logout', t('Logout'), "", t('End this session'));
}
}
if ($observer) {
$userinfo = array('icon' => $observer['xchan_photo_m'], 'name' => $observer['xchan_addr']);
}
if ($observer) {
$nav['locked'] = true;
$nav['lock'] = array('logout', '', 'lock', sprintf(t('%s - click to logout'), $observer['xchan_addr']));
} else {
$nav['locked'] = false;
$nav['lock'] = array('rmagic', '', 'unlock', t('Click to authenticate to your home hub'));
}
/**
* "Home" should also take you home from an authenticated remote profile connection
*/
$homelink = get_my_url();
//.........这里部分代码省略.........
示例9: nav_info
function nav_info(&$a)
{
$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.
* Display the current site location as a navigation aid.
*
*/
$myident = is_array($a->user) && isset($a->user['nickname']) ? $a->user['nickname'] . '@' : '';
$sitelocation = $myident . substr($a->get_baseurl($ssl_state), strpos($a->get_baseurl($ssl_state), '//') + 2);
// nav links: array of array('href', 'text', 'extra css classes', 'title')
$nav = array();
/**
* Display login or logout
*/
$nav['usermenu'] = array();
$userinfo = null;
if (local_user()) {
$nav['logout'] = array('logout', t('Logout'), "", t('End this session'));
// user menu
$nav['usermenu'][] = array('profile/' . $a->user['nickname'], t('Status'), "", t('Your posts and conversations'));
$nav['usermenu'][] = array('profile/' . $a->user['nickname'] . '?tab=profile', t('Profile'), "", t('Your profile page'));
$nav['usermenu'][] = array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
$nav['usermenu'][] = array('videos/' . $a->user['nickname'], t('Videos'), "", t('Your videos'));
$nav['usermenu'][] = array('events/', t('Events'), "", t('Your events'));
$nav['usermenu'][] = array('notes/', t('Personal notes'), "", t('Your personal notes'));
// user info
$r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
$userinfo = array('icon' => count($r) ? $a->get_cached_avatar_image($r[0]['micro']) : $a->get_baseurl($ssl_state) . "/images/person-48.jpg", 'name' => $a->user['username']);
} else {
$nav['login'] = array('login', t('Login'), $a->module == 'login' ? 'selected' : '', t('Sign in'));
}
/**
* "Home" should also take you home from an authenticated remote profile connection
*/
$homelink = get_my_url();
if (!$homelink) {
$homelink = x($_SESSION, 'visitor_home') ? $_SESSION['visitor_home'] : '';
}
if ($a->module != 'home' && !local_user()) {
$nav['home'] = array($homelink, t('Home'), "", t('Home Page'));
}
if ($a->config['register_policy'] == REGISTER_OPEN && !local_user() && !remote_user()) {
$nav['register'] = array('register', t('Register'), "", t('Create an account'));
}
$help_url = $a->get_baseurl($ssl_state) . '/help';
if (!get_config('system', 'hide_help')) {
$nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'));
}
if (count($a->apps) > 0) {
$nav['apps'] = array('apps', t('Apps'), "", t('Addon applications, utilities, games'));
}
$nav['search'] = array('search', t('Search'), "", t('Search site content'));
$nav['searchoption'] = array(t("Full Text"), t("Tags"), t("Contacts"));
if (get_config('system', 'poco_local_search')) {
$nav['searchoption'][] = t("Forums");
}
$gdirpath = 'directory';
if (strlen(get_config('system', 'singleuser'))) {
$gdir = get_config('system', 'directory');
if (strlen($gdir)) {
$gdirpath = $gdir;
}
} elseif (get_config('system', 'community_page_style') == CP_USERS_ON_SERVER) {
$nav['community'] = array('community', t('Community'), "", t('Conversations on this site'));
} elseif (get_config('system', 'community_page_style') == CP_GLOBAL_COMMUNITY) {
$nav['community'] = array('community', t('Community'), "", t('Conversations on the network'));
}
$nav['directory'] = array($gdirpath, t('Directory'), "", t('People directory'));
$nav['about'] = array('friendica', t('Information'), "", t('Information about this friendica instance'));
/**
*
* The following nav links are only show to logged in users
*
*/
if (local_user()) {
$nav['network'] = array('network', t('Network'), "", t('Conversations from your friends'));
$nav['net_reset'] = array('network/0?f=&order=comment&nets=all', t('Network Reset'), "", t('Load Network page with no filters'));
$nav['home'] = array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations'));
if (in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE, PAGE_PRVGROUP))) {
/* only show friend requests for normal pages. Other page types have automatic friendship. */
if (in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_PRVGROUP))) {
$nav['introductions'] = array('notifications/intros', t('Introductions'), "", t('Friend Requests'));
}
if (in_array($_SESSION['page_flags'], array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE))) {
$nav['notifications'] = array('notifications', t('Notifications'), "", t('Notifications'));
$nav['notifications']['all'] = array('notifications/system', t('See all notifications'), "", "");
$nav['notifications']['mark'] = array('', t('Mark all system notifications seen'), '', '');
}
}
$nav['messages'] = array('message', t('Messages'), "", t('Private mail'));
$nav['messages']['inbox'] = array('message', t('Inbox'), "", t('Inbox'));
$nav['messages']['outbox'] = array('message/sent', t('Outbox'), "", t('Outbox'));
$nav['messages']['new'] = array('message/new', t('New Message'), "", t('New Message'));
if (is_array($a->identities) && count($a->identities) > 1) {
$nav['manage'] = array('manage', t('Manage'), "", t('Manage other pages'));
}
$nav['delegations'] = array('delegate', t('Delegations'), "", t('Delegate Page Management'));
//.........这里部分代码省略.........
示例10: frio_remote_nav
/**
* @brief Construct remote nav menu
*
* It creates a remote baseurl form $_SESSION for remote users and friendica
* visitors. This url will be added to some of the nav links. With this behaviour
* the user will come back to her/his own pages on his/her friendica server.
* Not all possible links are available (notifications, administrator, manage,
* notes aren't available because we have no way the check remote permissions)..
* Some links will point to the local pages because the user would expect
* local page (these pages are: search, community, help, apps, directory).
*
* @param app $a The App class
* @param array $nav The original nav menu
*/
function frio_remote_nav($a, &$nav)
{
// get the homelink from $_XSESSION
$homelink = get_my_url();
if (!$homelink) {
$homelink = x($_SESSION, 'visitor_home') ? $_SESSION['visitor_home'] : '';
}
// split up the url in it's parts (protocol,domain/directory, /profile/, nickname
// I'm not familiar with regex, so someone might find a better solutionen
//
// E.g $homelink = 'https://friendica.domain.com/profile/mickey' should result in an array
// with 0 => 'https://friendica.domain.com/profile/mickey' 1 => 'https://',
// 2 => 'friendica.domain.com' 3 => '/profile/' 4 => 'mickey'
//
//$server_url = preg_match('/^(https?:\/\/.*?)\/profile\//2', $homelink);
preg_match('/^(https?:\\/\\/)?(.*?)(\\/profile\\/)(.*)/', $homelink, $url_parts);
// Construct the server url of the visitor. So we could link back to his/her own menu.
// And construct a webbie (e.g. mickey@friendica.domain.com for the search in gcontact
// We use the webbie for search in gcontact because we don't know if gcontact table stores
// the right value if its http or https protocol
if (count($url_parts)) {
$server_url = $url_parts[1] . $url_parts[2];
$webbie = $url_parts[4] . '@' . $url_parts[2];
}
// since $userinfo isn't available for the hook we write it to the nav array
// this isn't optimal because the contact query will be done now twice
if (local_user()) {
// empty the server url for local user because we won't need it
$server_url = '';
// user info
$r = q("SELECT `micro` FROM `contact` WHERE `uid` = %d AND `self` = 1", intval($a->user['uid']));
$r[0]['photo'] = count($r) ? $a->remove_baseurl($r[0]['micro']) : "images/person-48.jpg";
$r[0]['name'] = $a->user['username'];
} elseif (!local_user() && remote_user()) {
$r = q("SELECT `name`, `nick`, `micro` AS `photo` FROM `contact` WHERE `id` = %d", intval(remote_user()));
$nav['remote'] = t("Remote");
} elseif (get_my_url()) {
$r = q("SELECT `name`, `nick`, `photo` FROM `gcontact`\n\t\t\t\tWHERE `addr` = '%s' AND `network` = 'dfrn'", dbesc($webbie));
$nav['remote'] = t("Visitor");
}
if (count($r)) {
$nav['userinfo'] = array('icon' => count($r) ? $r[0]['photo'] : "images/person-48.jpg", 'name' => $r[0]['name']);
}
if (!local_user() && !empty($server_url)) {
$nav['logout'] = array($server_url . '/logout', t('Logout'), "", t('End this session'));
// user menu
$nav['usermenu'][] = array($server_url . '/profile/' . $a->user['nickname'], t('Status'), "", t('Your posts and conversations'));
$nav['usermenu'][] = array($server_url . '/profile/' . $a->user['nickname'] . '?tab=profile', t('Profile'), "", t('Your profile page'));
$nav['usermenu'][] = array($server_url . '/photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
$nav['usermenu'][] = array($server_url . '/videos/' . $a->user['nickname'], t('Videos'), "", t('Your videos'));
$nav['usermenu'][] = array($server_url . '/events/', t('Events'), "", t('Your events'));
// navbar links
$nav['network'] = array($server_url . '/network', t('Network'), "", t('Conversations from your friends'));
$nav['events'] = array($server_url . '/events', t('Events'), "", t('Events and Calendar'));
$nav['messages'] = array($server_url . '/message', t('Messages'), "", t('Private mail'));
$nav['settings'] = array($server_url . '/settings', t('Settings'), "", t('Account settings'));
$nav['contacts'] = array($server_url . '/contacts', t('Contacts'), "", t('Manage/edit friends and contacts'));
$nav['sitename'] = $a->config['sitename'];
}
}
示例11: dfrn_request_content
function dfrn_request_content(&$a)
{
if ($a->argc != 2 || !count($a->profile)) {
return "";
}
// "Homecoming". Make sure we're logged in to this site as the correct user. Then offer a confirm button
// to send us to the post section to record the introduction.
if (x($_GET, 'dfrn_url')) {
if (!local_user()) {
info(t("Please login to confirm introduction.") . EOL);
/* setup the return URL to come back to this page if they use openid */
$stripped = str_replace('q=', '', $a->query_string);
$_SESSION['return_url'] = trim($stripped, '/');
return login();
}
// Edge case, but can easily happen in the wild. This person is authenticated,
// but not as the person who needs to deal with this request.
if ($a->user['nickname'] != $a->argv[1]) {
notice(t("Incorrect identity currently logged in. Please login to <strong>this</strong> profile.") . EOL);
return login();
}
$dfrn_url = notags(trim(hex2bin($_GET['dfrn_url'])));
$aes_allow = x($_GET, 'aes_allow') && $_GET['aes_allow'] == 1 ? 1 : 0;
$confirm_key = x($_GET, 'confirm_key') ? $_GET['confirm_key'] : "";
$tpl = get_markup_template("dfrn_req_confirm.tpl");
$o = replace_macros($tpl, array('$dfrn_url' => $dfrn_url, '$aes_allow' => $aes_allow ? '<input type="hidden" name="aes_allow" value="1" />' : "", '$hidethem' => t('Hide this contact'), '$hidechecked' => '', '$confirm_key' => $confirm_key, '$welcome' => sprintf(t('Welcome home %s.'), $a->user['username']), '$please' => sprintf(t('Please confirm your introduction/connection request to %s.'), $dfrn_url), '$submit' => t('Confirm'), '$uid' => $_SESSION['uid'], '$nickname' => $a->user['nickname'], 'dfrn_rawurl' => $_GET['dfrn_url']));
return $o;
} elseif (x($_GET, 'confirm_key') && strlen($_GET['confirm_key'])) {
// we are the requestee and it is now safe to send our user their introduction,
// We could just unblock it, but first we have to jump through a few hoops to
// send an email, or even to find out if we need to send an email.
$intro = q("SELECT * FROM `intro` WHERE `hash` = '%s' LIMIT 1", dbesc($_GET['confirm_key']));
if (count($intro)) {
$r = q("SELECT `contact`.*, `user`.* FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`\n\t\t\t\tWHERE `contact`.`id` = %d LIMIT 1", intval($intro[0]['contact-id']));
$auto_confirm = false;
if (count($r)) {
if ($r[0]['page-flags'] != PAGE_NORMAL && $r[0]['page-flags'] != PAGE_PRVGROUP) {
$auto_confirm = true;
}
if (!$auto_confirm) {
notification(array('type' => NOTIFY_INTRO, 'notify_flags' => $r[0]['notify-flags'], 'language' => $r[0]['language'], 'to_name' => $r[0]['username'], 'to_email' => $r[0]['email'], 'uid' => $r[0]['uid'], 'link' => $a->get_baseurl() . '/notifications/intros', 'source_name' => strlen(stripslashes($r[0]['name'])) ? stripslashes($r[0]['name']) : t('[Name Withheld]'), 'source_link' => $r[0]['url'], 'source_photo' => $r[0]['photo'], 'verb' => ACTIVITY_REQ_FRIEND, 'otype' => 'intro'));
}
if ($auto_confirm) {
require_once 'mod/dfrn_confirm.php';
$handsfree = array('uid' => $r[0]['uid'], 'node' => $r[0]['nickname'], 'dfrn_id' => $r[0]['issued-id'], 'intro_id' => $intro[0]['id'], 'duplex' => $r[0]['page-flags'] == PAGE_FREELOVE ? 1 : 0, 'activity' => intval(get_pconfig($r[0]['uid'], 'system', 'post_newfriend')));
dfrn_confirm_post($a, $handsfree);
}
}
if (!$auto_confirm) {
// If we are auto_confirming, this record will have already been nuked
// in dfrn_confirm_post()
$r = q("UPDATE `intro` SET `blocked` = 0 WHERE `hash` = '%s'", dbesc($_GET['confirm_key']));
}
}
killme();
return;
// NOTREACHED
} else {
/**
* Normal web request. Display our user's introduction form.
*/
if (get_config('system', 'block_public') && !local_user() && !remote_user()) {
if (!get_config('system', 'local_block')) {
notice(t('Public access denied.') . EOL);
return;
}
}
/**
* Try to auto-fill the profile address
*/
// At first look if an address was provided
// Otherwise take the local address
if (x($_GET, 'addr') and $_GET['addr'] != "") {
$myaddr = hex2bin($_GET['addr']);
} elseif (x($_GET, 'address') and $_GET['address'] != "") {
$myaddr = $_GET['address'];
} elseif (local_user()) {
if (strlen($a->path)) {
$myaddr = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
} else {
$myaddr = $a->user['nickname'] . '@' . substr(z_root(), strpos(z_root(), '://') + 3);
}
} else {
// last, try a zrl
$myaddr = get_my_url();
}
$target_addr = $a->profile['nickname'] . '@' . substr(z_root(), strpos(z_root(), '://') + 3);
/**
*
* The auto_request form only has the profile address
* because nobody is going to read the comments and
* it doesn't matter if they know you or not.
*
*/
if ($a->profile['page-flags'] == PAGE_NORMAL) {
$tpl = get_markup_template('dfrn_request.tpl');
} else {
$tpl = get_markup_template('auto_request.tpl');
}
$page_desc .= t("Please enter your 'Identity Address' from one of the following supported communications networks:");
//.........这里部分代码省略.........
示例12: common_content
function common_content(&$a)
{
$o = '';
$cmd = $a->argv[1];
$uid = intval($a->argv[2]);
$cid = intval($a->argv[3]);
$zcid = 0;
if ($cmd !== 'loc' && $cmd != 'rem') {
return;
}
if (!$uid) {
return;
}
if ($cmd === 'loc' && $cid) {
$c = q("select name, url, photo from contact where id = %d and uid = %d limit 1", intval($cid), intval($uid));
} else {
$c = q("select name, url, photo from contact where self = 1 and uid = %d limit 1", intval($uid));
}
$a->page['aside'] .= '<div class="vcard">' . '<div class="fn label">' . $c[0]['name'] . '</div>' . '<div id="profile-photo-wrapper">' . '<img class="photo" width="175" height="175"
src="' . $c[0]['photo'] . '" alt="' . $c[0]['name'] . '" /></div>' . '</div>';
if (!count($c)) {
return;
}
$o .= '<h2>' . t('Common Friends') . '</h2>';
if (!$cid) {
if (get_my_url()) {
$r = q("select id from contact where nurl = '%s' and uid = %d limit 1", dbesc(normalise_link(get_my_url())), intval($profile_uid));
if (count($r)) {
$cid = $r[0]['id'];
} else {
$r = q("select id from gcontact where nurl = '%s' limit 1", dbesc(normalise_link(get_my_url())));
if (count($r)) {
$zcid = $r[0]['id'];
}
}
}
}
if ($cid == 0 && $zcid == 0) {
return;
}
if ($cid) {
$t = count_common_friends($uid, $cid);
} else {
$t = count_common_friends_zcid($uid, $zcid);
}
$a->set_pager_total($t);
if (!$t) {
notice(t('No contacts in common.') . EOL);
return $o;
}
if ($cid) {
$r = common_friends($uid, $cid);
} else {
$r = common_friends_zcid($uid, $zcid);
}
if (!count($r)) {
return $o;
}
$tpl = get_markup_template('common_friends.tpl');
foreach ($r as $rr) {
$o .= replace_macros($tpl, array('$url' => $rr['url'], '$name' => $rr['name'], '$photo' => $rr['photo'], '$tags' => ''));
}
$o .= cleardiv();
// $o .= paginate($a);
return $o;
}
示例13: common_content
function common_content(&$a)
{
$o = '';
$cmd = $a->argv[1];
$uid = intval($a->argv[2]);
$cid = intval($a->argv[3]);
$zcid = 0;
if ($cmd !== 'loc' && $cmd != 'rem') {
return;
}
if (!$uid) {
return;
}
if ($cmd === 'loc' && $cid) {
$c = q("select name, url, photo from contact where id = %d and uid = %d limit 1", intval($cid), intval($uid));
} else {
$c = q("select name, url, photo from contact where self = 1 and uid = %d limit 1", intval($uid));
}
$vcard_widget .= replace_macros(get_markup_template("vcard-widget.tpl"), array('$name' => $c[0]['name'], '$photo' => $c[0]['photo'], 'url' => z_root() . '/contacts/' . $cid));
if (!x($a->page, 'aside')) {
$a->page['aside'] = '';
}
$a->page['aside'] .= $vcard_widget;
if (!count($c)) {
return;
}
$o .= replace_macros(get_markup_template("section_title.tpl"), array('$title' => t('Common Friends')));
if (!$cid) {
if (get_my_url()) {
$r = q("select id from contact where nurl = '%s' and uid = %d limit 1", dbesc(normalise_link(get_my_url())), intval($profile_uid));
if (count($r)) {
$cid = $r[0]['id'];
} else {
$r = q("select id from gcontact where nurl = '%s' limit 1", dbesc(normalise_link(get_my_url())));
if (count($r)) {
$zcid = $r[0]['id'];
}
}
}
}
if ($cid == 0 && $zcid == 0) {
return;
}
if ($cid) {
$t = count_common_friends($uid, $cid);
} else {
$t = count_common_friends_zcid($uid, $zcid);
}
$a->set_pager_total($t);
if (!$t) {
notice(t('No contacts in common.') . EOL);
return $o;
}
if ($cid) {
$r = common_friends($uid, $cid);
} else {
$r = common_friends_zcid($uid, $zcid);
}
if (!count($r)) {
return $o;
}
$tpl = get_markup_template('common_friends.tpl');
foreach ($r as $rr) {
$o .= replace_macros($tpl, array('$url' => $rr['url'], '$name' => $rr['name'], '$photo' => $rr['photo'], '$tags' => ''));
}
$o .= cleardiv();
// $o .= paginate($a);
return $o;
}