diff options
35 files changed, 327 insertions, 229 deletions
@@ -528,7 +528,7 @@ if(! class_exists('App')) { // unix style "homedir" if(substr($this->cmd,0,1) === '~') - $this->cmd = 'profile/' . substr($this->cmd,1); + $this->cmd = 'channel/' . substr($this->cmd,1); @@ -1772,27 +1772,28 @@ if(! function_exists('profile_tabs')){ if(x($_GET,'tab')) $tab = notags(trim($_GET['tab'])); - $url = $a->get_baseurl() . '/profile/' . $nickname; + $url = $a->get_baseurl() . '/channel/' . $nickname; + $pr = $a->get_baseurl() . '/profile/' . $nickname; $tabs = array( array( 'label'=>t('Status'), 'url' => $url, - 'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''), + 'sel' => ((argv(0)=='channel')?'active':''), 'title' => t('Status Messages and Posts'), 'id' => 'status-tab', ), array( 'label' => t('Profile'), - 'url' => $url.'?tab=profile', - 'sel' => ((isset($tab) && $tab=='profile')?'active':''), + 'url' => $pr, + 'sel' => ((argv(0)=='profile')?'active':''), 'title' => t('Profile Details'), 'id' => 'profile-tab', ), array( 'label' => t('Photos'), 'url' => $a->get_baseurl() . '/photos/' . $nickname, - 'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''), + 'sel' => ((argv(0)=='photos')?'active':''), 'title' => t('Photo Albums'), 'id' => 'photo-tab', ), @@ -1802,7 +1803,7 @@ if(! function_exists('profile_tabs')){ $tabs[] = array( 'label' => t('Events'), 'url' => $a->get_baseurl() . '/events', - 'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''), + 'sel' =>((argv(0)=='events')?'active':''), 'title' => t('Events and Calendar'), 'id' => 'events-tab', ); @@ -1836,7 +1837,7 @@ function zrl_init(&$a) { function zrl($s,$force = false) { if(! strlen($s)) return $s; - if((! strpos($s,'/profile/')) && (! $force)) + if((! strpos($s,'/channel/')) && (! $force)) return $s; if($force && substr($s,-1,1) !== '/') $s = $s . '/'; diff --git a/include/api.php b/include/api.php index 6b2fd008b..428c17957 100644 --- a/include/api.php +++ b/include/api.php @@ -1011,10 +1011,10 @@ //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); - $myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname']; + $myurl = $a->get_baseurl() . '/channel/'. $a->user['nickname']; $myurl = substr($myurl,strpos($myurl,'://')+3); $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); - $diasp_url = str_replace('/profile/','/u/',$myurl); + $diasp_url = str_replace('/channel/','/u/',$myurl); if (get_config('system','use_fulltext_engine')) $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ", @@ -1623,7 +1623,7 @@ $start = $page*$count; - $profile_url = $a->get_baseurl() . '/profile/' . $a->user['nickname']; + $profile_url = $a->get_baseurl() . '/channel/' . $a->user['nickname']; if ($box=="sentbox") { $sql_extra = "`from-url`='".dbesc( $profile_url )."'"; } diff --git a/include/conversation.php b/include/conversation.php index 4238ff586..3c0a0831d 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -397,7 +397,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr // $item_writeable = (($item['writable'] || $item['self']) ? true : false); $item_writeable = ((local_user() && $channel['channel_hash'] === $item['owner_xchan']) ? true : false); - if($visiting && $mode == 'profile') + if($visiting && $mode == 'channel') $item_writeable = true; $show_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); @@ -466,7 +466,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : ''); if($toplevelpost) { - if((! $item['self']) && ($mode !== 'profile')) { + if((! $item['self']) && ($mode !== 'channel')) { if($item['wall']) { // On the network page, I am the owner. On the display page it will be the profile owner. @@ -569,7 +569,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr '$return_path' => '', '$threaded' => $comments_threaded, '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), - '$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'), + '$type' => (($mode === 'channel') ? 'wall-comment' : 'net-comment'), '$id' => $item['item_id'], '$parent' => $item['item_id'], '$qcomment' => $qcomment, @@ -747,7 +747,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') { } - elseif($mode === 'profile') { + elseif($mode === 'channel') { $profile_owner = $a->profile['profile_uid']; $page_writeable = can_write_wall($a,$profile_owner); @@ -757,7 +757,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional') { // This is ugly, but we can't pass the profile_uid through the session to the ajax updater, // because browser prefetching might change it on us. We have to deliver it with the page. - $live_update_div = '<div id="live-profile"></div>' . "\r\n" + $live_update_div = '<div id="live-channel"></div>' . "\r\n" . "<script> var profile_uid = " . $a->profile['profile_uid'] . "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n"; } @@ -1156,7 +1156,7 @@ old code $osparkle = ''; - if(($toplevelpost) && (! $item['self']) && ($mode !== 'profile')) { + if(($toplevelpost) && (! $item['self']) && ($mode !== 'channel')) { if($item['wall']) { @@ -1227,7 +1227,7 @@ old code $comment = replace_macros($cmnt_tpl,array( '$return_path' => '', '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), - '$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'), + '$type' => (($mode === 'channel') ? 'wall-comment' : 'net-comment'), '$id' => $item['item_id'], '$parent' => $item['parent'], '$qcomment' => $qcomment, diff --git a/include/delivery.php b/include/delivery.php index 1c6b55164..ed624e79f 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -235,7 +235,7 @@ function delivery_run($argv, $argc){ $atom .= replace_macros($feed_template, array( '$version' => xmlify(FRIENDICA_VERSION), - '$feed_id' => xmlify($a->get_baseurl() . '/profile/' . $owner['nickname'] ), + '$feed_id' => xmlify($a->get_baseurl() . '/channel/' . $owner['nickname'] ), '$feed_title' => xmlify($owner['name']), '$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) , '$hub' => $hubxml, diff --git a/include/follow.php b/include/follow.php index 8b075c173..55b83820c 100644 --- a/include/follow.php +++ b/include/follow.php @@ -45,7 +45,7 @@ function new_contact($uid,$url,$interactive = false) { if($ret['network'] === NETWORK_DFRN) { if($interactive) { if(strlen($a->path)) - $myaddr = bin2hex($a->get_baseurl() . '/profile/' . $a->user['nickname']); + $myaddr = bin2hex($a->get_baseurl() . '/channel/' . $a->user['nickname']); else $myaddr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname()); diff --git a/include/gprobe.php b/include/gprobe.php index 5ca42729a..dd6f676bf 100644 --- a/include/gprobe.php +++ b/include/gprobe.php @@ -54,7 +54,7 @@ function gprobe_run($argv, $argc){ ); } if(count($r)) - poco_load(0,0,$r[0]['id'], str_replace('/profile/','/poco/',$r[0]['url'])); + poco_load(0,0,$r[0]['id'], str_replace('/channel/','/poco/',$r[0]['url'])); return; } diff --git a/include/html2plain.php b/include/html2plain.php index 5631e4954..e5615f8ba 100644 --- a/include/html2plain.php +++ b/include/html2plain.php @@ -83,7 +83,7 @@ function collecturls($message) { $urls = array(); foreach ($result as $treffer) { // A list of some links that should be ignored - $list = array("/user/", "/tag/", "/group/", "/profile/", "/search?search=", "/search?tag=", "mailto:", "/u/", "/node/", + $list = array("/user/", "/tag/", "/group/", "/profile/", "/channel/", "/search?search=", "/search?tag=", "mailto:", "/u/", "/node/", "//facebook.com/profile.php?id=", "//plus.google.com/"); foreach ($list as $listitem) if (strpos($treffer[1], $listitem) !== false) diff --git a/include/identity.php b/include/identity.php index e08314f50..196ceece5 100644 --- a/include/identity.php +++ b/include/identity.php @@ -119,7 +119,7 @@ function create_identity($arr) { dbesc($a->get_baseurl() . "/photo/profile/m/{$newuid}"), dbesc($a->get_baseurl() . "/photo/profile/s/{$newuid}"), dbesc($ret['channel']['channel_address'] . '@' . $a->get_hostname()), - dbesc(z_root() . '/profile/' . $ret['channel']['channel_address']), + dbesc(z_root() . '/channel/' . $ret['channel']['channel_address']), dbesc($ret['channel']['channel_name']), dbesc('zot'), dbesc(datetime_convert()), diff --git a/include/items.php b/include/items.php index 91320ff4e..c2bd69362 100755 --- a/include/items.php +++ b/include/items.php @@ -187,7 +187,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) $atom .= replace_macros($feed_template, array( '$version' => xmlify(FRIENDICA_VERSION), - '$feed_id' => xmlify($a->get_baseurl() . '/profile/' . $owner_nick), + '$feed_id' => xmlify($a->get_baseurl() . '/channel/' . $owner_nick), '$feed_title' => xmlify($owner['name']), '$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', 'now' , ATOM_TIME)) , '$hub' => $hubxml, @@ -1218,7 +1218,7 @@ function tag_deliver($uid,$item_id) { $item = $i[0]; - $link = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']); + $link = normalise_link($a->get_baseurl() . '/channel/' . $u[0]['nickname']); $body = preg_replace("/\[share\](.*?)\[\/share\]/ism", '', $item['body']); @@ -1332,7 +1332,7 @@ function tgroup_check($uid,$item) { $prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false); - $link = normalise_link($a->get_baseurl() . '/profile/' . $u[0]['nickname']); + $link = normalise_link($a->get_baseurl() . '/channel/' . $u[0]['nickname']); // Diaspora uses their own hardwired link URL in @-tags // instead of the one we supply with webfinger @@ -2940,7 +2940,7 @@ function local_delivery($importer,$data) { ); if(count($myconv)) { - $importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname']; + $importer_url = $a->get_baseurl() . '/channel/' . $importer['nickname']; // first make sure this isn't our own post coming back to us from a wall-to-wall event if(! link_compare($datarray['author-link'],$importer_url)) { @@ -3090,7 +3090,7 @@ function local_delivery($importer,$data) { break; } } - if($Blink && link_compare($Blink,$a->get_baseurl() . '/profile/' . $importer['nickname'])) { + if($Blink && link_compare($Blink,$a->get_baseurl() . '/channel/' . $importer['nickname'])) { // send a notification require_once('include/enotify.php'); diff --git a/include/nav.php b/include/nav.php index a71f97457..02a76b6b4 100644 --- a/include/nav.php +++ b/include/nav.php @@ -70,8 +70,8 @@ EOT; $nav['logout'] = Array('logout',t('Logout'), "", t('End this session')); // user menu - $nav['usermenu'][] = Array('profile/' . $channel['channel_address'], t('Status'), "", t('Your posts and conversations')); - $nav['usermenu'][] = Array('profile/' . $channel['channel_address']. '?tab=profile', t('Profile'), "", t('Your profile page')); + $nav['usermenu'][] = Array('channel/' . $channel['channel_address'], t('Status'), "", t('Your posts and conversations')); + $nav['usermenu'][] = Array('profile/' . $channel['channel_address'], t('Profile'), "", t('Your profile page')); $nav['usermenu'][] = Array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos')); $nav['usermenu'][] = Array('events/', t('Events'), "", t('Your events')); @@ -134,7 +134,7 @@ EOT; $nav['network'] = array('network', t('Network'), "", t('Conversations from your friends')); - $nav['home'] = array('profile/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations')); + $nav['home'] = array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations')); if($channel['channel_pageflags'] == PAGE_NORMAL) { $nav['introductions'] = array('notifications/intros', t('Introductions'), "", t('Friend Requests')); diff --git a/include/notifier.php b/include/notifier.php index e997861f3..460257ec0 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -335,7 +335,7 @@ function notifier_run($argv, $argc){ $atom .= replace_macros($feed_template, array( '$version' => xmlify(FRIENDICA_VERSION), - '$feed_id' => xmlify($a->get_baseurl() . '/profile/' . $owner['nickname'] ), + '$feed_id' => xmlify($a->get_baseurl() . '/channel/' . $owner['nickname'] ), '$feed_title' => xmlify($owner['name']), '$feed_updated' => xmlify(datetime_convert('UTC', 'UTC', $updated . '+00:00' , ATOM_TIME)) , '$hub' => $hubxml, diff --git a/include/oauth.php b/include/oauth.php index 103d4c2fa..99fc16eef 100644 --- a/include/oauth.php +++ b/include/oauth.php @@ -148,7 +148,7 @@ class FKOAuth1 extends OAuthServer { $_SESSION['mobile-theme'] = get_pconfig($record['uid'], 'system', 'mobile_theme'); $_SESSION['authenticated'] = 1; $_SESSION['page_flags'] = $record['page-flags']; - $_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $record['nickname']; + $_SESSION['my_url'] = $a->get_baseurl() . '/channel/' . $record['nickname']; $_SESSION['addr'] = $_SERVER['REMOTE_ADDR']; //notice( t("Welcome back ") . $record['username'] . EOL); diff --git a/include/onepoll.php b/include/onepoll.php index 467bb0f2c..617756953 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -173,7 +173,7 @@ function onepoll_run($argv, $argc){ if(((float) $res->dfrn_version > 2.21) && ($contact['poco'] == '')) { q("update contact set poco = '%s' where id = %d limit 1", - dbesc(str_replace('/profile/','/poco/', $contact['url'])), + dbesc(str_replace('/channel/','/poco/', $contact['url'])), intval($contact['id']) ); } diff --git a/include/security.php b/include/security.php index dbeeb9177..ea3df2511 100644 --- a/include/security.php +++ b/include/security.php @@ -40,7 +40,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive $_SESSION['theme'] = $user_record['theme']; $_SESSION['authenticated'] = 1; $_SESSION['page_flags'] = $user_record['page-flags']; - $_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $user_record['nickname']; + $_SESSION['my_url'] = $a->get_baseurl() . '/channel/' . $user_record['nickname']; $_SESSION['my_address'] = $user_record['nickname'] . '@' . substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3); $a->user = $user_record; diff --git a/include/user.php b/include/user.php index 99837e357..d71f024d1 100644 --- a/include/user.php +++ b/include/user.php @@ -242,8 +242,8 @@ function create_user($arr) { dbesc($a->get_baseurl() . "/photo/profile/{$newuid}"), dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}"), dbesc($a->get_baseurl() . "/photo/micro/{$newuid}"), - dbesc($a->get_baseurl() . "/profile/$nickname"), - dbesc(normalise_link($a->get_baseurl() . "/profile/$nickname")), + dbesc($a->get_baseurl() . "/channel/$nickname"), + dbesc(normalise_link($a->get_baseurl() . "/channel/$nickname")), dbesc($a->get_baseurl() . "/dfrn_request/$nickname"), dbesc($a->get_baseurl() . "/dfrn_notify/$nickname"), dbesc($a->get_baseurl() . "/dfrn_poll/$nickname"), @@ -309,7 +309,7 @@ if($a->module_loaded) { if(x($_SESSION,'visitor_home')) $homebase = $_SESSION['visitor_home']; elseif(local_user()) - $homebase = $a->get_baseurl() . '/profile/' . $a->user['nickname']; + $homebase = $a->get_baseurl() . '/channel/' . $a->user['nickname']; if(isset($homebase)) $a->page['content'] .= '<script>var homebase="' . $homebase . '" ; </script>'; diff --git a/js/main.js b/js/main.js index cda011c2e..8153a8b16 100644 --- a/js/main.js +++ b/js/main.js @@ -237,9 +237,8 @@ // start live update if($('#live-network').length) { src = 'network'; liveUpdate(); } - if($('#live-profile').length) { src = 'profile'; liveUpdate(); } + if($('#live-channel').length) { src = 'channel'; liveUpdate(); } if($('#live-community').length) { src = 'community'; liveUpdate(); } - if($('#live-notes').length) { src = 'notes'; liveUpdate(); } if($('#live-display').length) { if(liking) { liking = 0; diff --git a/mod/auth.php b/mod/auth.php index dae8a0e16..75d5fe545 100644 --- a/mod/auth.php +++ b/mod/auth.php @@ -76,7 +76,7 @@ function auth_init(&$a) { } } $profile = $r[0]['nickname']; - goaway((strlen($destination_url)) ? $destination_url : $a->get_baseurl() . '/profile/' . $profile); + goaway((strlen($destination_url)) ? $destination_url : $a->get_baseurl() . '/channel/' . $profile); } goaway(z_root()); @@ -451,14 +451,14 @@ function auth_content(&$a) { switch($destination_url) { case 'profile': - $dest = $a->get_baseurl() . '/profile/' . $profile . '?tab=profile'; + $dest = $a->get_baseurl() . '/profile/' . $profile ; break; case 'photos': $dest = $a->get_baseurl() . '/photos/' . $profile; break; case 'status': case '': - $dest = $a->get_baseurl() . '/profile/' . $profile; + $dest = $a->get_baseurl() . '/channel/' . $profile; break; default: $dest = $destination_url; diff --git a/mod/channel.php b/mod/channel.php new file mode 100644 index 000000000..b484f0f60 --- /dev/null +++ b/mod/channel.php @@ -0,0 +1,256 @@ +<?php + +function channel_init(&$a) { + + $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/feed/' . $which .'" />' . "\r\n" ; + +} + + +function channel_aside(&$a) { + + require_once('include/contact_widgets.php'); + require_once('include/items.php'); + + if(argc() > 1) + $which = argv(1); + else { + notice( t('Requested profile is not available.') . EOL ); + $a->error = 404; + return; + } + + $profile = 0; + $channel = $a->get_channel(); + + if((local_user()) && (argc() > 2) && (argv(2) === 'view')) { + $which = $channel['channel_address']; + $profile = argv(1); + } + + $cat = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat']) : ''); + + profile_load($a,$which,$profile); + + $a->set_widget('archive',posted_date_widget($a->get_baseurl(true) . '/channel/' . $a->profile['nickname'],$a->profile['profile_uid'],true)); + $a->set_widget('categories',categories_widget($a->get_baseurl(true) . '/channel/' . $a->profile['nickname'],$cat)); + +} + + +function channel_content(&$a, $update = 0) { + + $category = $datequery = $datequery2 = ''; + + if(argc() > 2) { + for($x = 2; $x < argc(); $x ++) { + if(is_a_date_arg(argv($x))) { + if($datequery) + $datequery2 = escape_tags(argv($x)); + else + $datequery = escape_tags(argv($x)); + } + } + } + + if(get_config('system','block_public') && (! get_account_id()) && (! remote_user())) { + return login(); + } + + + require_once("include/bbcode.php"); + require_once('include/security.php'); + require_once('include/conversation.php'); + require_once('include/acl_selectors.php'); + require_once('include/items.php'); + + $groups = array(); + + $tab = 'posts'; + $o = ''; + + if($update) { + // Ensure we've got a profile owner if updating. + $a->profile['profile_uid'] = $update; + } + else { + if($a->profile['profile_uid'] == local_user()) { + nav_set_selected('home'); + } + } + + + $contact = null; + $remote_contact = false; + + $contact_id = 0; + + if(is_array($_SESSION['remote'])) { + foreach($_SESSION['remote'] as $v) { + if($v['uid'] == $a->profile['profile_uid']) { + $contact_id = $v['cid']; + break; + } + } + } + + if($contact_id) { + $groups = init_groups_visitor($contact_id); + $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", + intval($contact_id), + intval($a->profile['profile_uid']) + ); + if(count($r)) { + $contact = $r[0]; + $remote_contact = true; + } + } + + if(! $remote_contact) { + if(local_user()) { + $contact_id = $_SESSION['cid']; + $contact = $a->contact; + } + } + + $is_owner = ((local_user()) && (local_user() == $a->profile['profile_uid']) ? true : false); + + if($a->profile['hidewall'] && (! $is_owner) && (! $remote_contact)) { + notice( t('Access to this profile has been restricted.') . EOL); + return; + } + + if(! $update) { + + + $o .= profile_tabs($a, $is_owner, $a->profile['channel_address']); + + $o .= common_friends_visitor_widget($a->profile['profile_uid']); + + + $commpage = (($a->profile['page-flags'] == PAGE_COMMUNITY) ? true : false); + $commvisitor = (($commpage && $remote_contact == true) ? true : false); + + $celeb = ((($a->profile['page-flags'] == PAGE_SOAPBOX) || ($a->profile['page-flags'] == PAGE_COMMUNITY)) ? true : false); + + if(can_write_wall($a,$a->profile['profile_uid'])) { + + $x = array( + 'is_owner' => $is_owner, + 'allow_location' => ((($is_owner || $commvisitor) && $a->profile['allow_location']) ? true : false), + 'default_location' => (($is_owner) ? $a->user['default-location'] : ''), + 'nickname' => $a->profile['channel_address'], + 'lockstate' => (((strlen($a->profile['channel_allow_cid'])) || (strlen($a->profile['channel_allow_gid'])) || (strlen($a->profile['channel_deny_cid'])) || (strlen($a->profile['channel_deny_gid']))) ? 'lock' : 'unlock'), + 'acl' => (($is_owner) ? populate_acl($channel, $celeb) : ''), + 'bang' => '', + 'visitor' => (($is_owner || $commvisitor) ? 'block' : 'none'), + 'profile_uid' => $a->profile['profile_uid'] + ); + + $o .= status_editor($a,$x); + } + + } + + + /** + * Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups + */ + + $sql_extra = item_permissions_sql($a->profile['profile_uid'],$remote_contact,$groups); + + + if($update) { + + $r = q("SELECT distinct(parent) AS `item_id` from item + WHERE uid = %d AND item_restrict = 0 + AND item_flags & %d + $sql_extra + ORDER BY created DESC", + intval($a->profile['profile_uid']), + intval(ITEM_WALL) + ); + + } + else { + + if(x($category)) { + $sql_extra .= protect_sprintf(file_tag_file_query('item',$category,'category')); + } + + if($datequery) { + $sql_extra2 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery)))); + } + if($datequery2) { + $sql_extra2 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2)))); + } + + + $a->set_pager_itemspage(40); + + $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage'])); + + $r = q("SELECT id AS item_id FROM item + WHERE uid = %d AND item_restrict = 0 + AND item_flags & %d + $sql_extra $sql_extra2 + ORDER BY created DESC $pager_sql ", + intval($a->profile['profile_uid']), + intval(ITEM_WALL|ITEM_THREAD_TOP) + + ); + + } + + if($r && count($r)) { + + $parents_str = ids_to_querystr($r,'item_id'); + + $items = q("SELECT `item`.*, `item`.`id` AS `item_id` + FROM `item` + WHERE `item`.`uid` = %d AND `item`.`item_restrict` = 0 + AND `item`.`parent` IN ( %s ) + $sql_extra ", + intval($a->profile['profile_uid']), + dbesc($parents_str) + ); + + xchan_query($items); + $items = fetch_post_tags($items); + $items = conv_sort($items,'created'); + + } else { + $items = array(); + } + + + if((! $update) && ($tab === 'posts')) { + + // This is ugly, but we can't pass the profile_uid through the session to the ajax updater, + // because browser prefetching might change it on us. We have to deliver it with the page. + + $o .= '<div id="live-profile"></div>' . "\r\n"; + $o .= "<script> var profile_uid = " . $a->profile['profile_uid'] + . "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n"; + } + + + + if($is_owner) { + $r = q("UPDATE item SET item_flags = (item_flags ^ %d) + WHERE (item_flags & %d) AND (item_flags & %d) AND uid = %d ", + intval(ITEM_UNSEEN), + intval(ITEM_UNSEEN), + intval(ITEM_WALL), + intval(local_user()) + ); + } + + + $o .= conversation($a,$items,'channel',$update); + + if(! $update) + $o .= alt_pager($a,count($items)); + + return $o; +} diff --git a/mod/delegate.php b/mod/delegate.php index 8c5031859..e582b9387 100644 --- a/mod/delegate.php +++ b/mod/delegate.php @@ -23,7 +23,7 @@ function delegate_content(&$a) { if(count($r)) { $r = q("select id from contact where uid = %d and nurl = '%s' limit 1", intval(local_user()), - dbesc(normalise_link($a->get_baseurl() . '/profile/' . $r[0]['nickname'])) + dbesc(normalise_link($a->get_baseurl() . '/channel/' . $r[0]['nickname'])) ); if(count($r)) { q("insert into manage ( uid, mid ) values ( %d , %d ) ", diff --git a/mod/directory.php b/mod/directory.php index 5744971db..1854a0e62 100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -84,7 +84,7 @@ function directory_content(&$a) { foreach($r as $rr) { - $profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']); + $profile_link = $a->get_baseurl() . '/channel/' . $rr['nickname']; $pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '<br />' : ''); diff --git a/mod/friendica.php b/mod/friendica.php index 28807b5b5..276e1c7f5 100644 --- a/mod/friendica.php +++ b/mod/friendica.php @@ -12,7 +12,7 @@ function friendica_init(&$a) { $r = q("SELECT username, nickname FROM user WHERE email='%s' $sql_extra", dbesc($a->config['admin_email'])); $admin = array( 'name' => $r[0]['username'], - 'profile'=> $a->get_baseurl().'/profile/'.$r[0]['nickname'], + 'profile'=> $a->get_baseurl().'/channel/'.$r[0]['nickname'], ); } else { $admin = false; diff --git a/mod/invite.php b/mod/invite.php index 2dbf93c59..f5cf090e0 100644 --- a/mod/invite.php +++ b/mod/invite.php @@ -114,7 +114,7 @@ function invite_content(&$a) { '$default_message' => t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n" . $linktxt . "\r\n" . "\r\n" . (($invonly) ? t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') .t('Once you have registered, please connect with me via my profile page at:') - . "\r\n" . "\r\n" . $a->get_baseurl() . '/profile/' . $a->user['nickname'] + . "\r\n" . "\r\n" . $a->get_baseurl() . '/channel/' . $a->user['nickname'] . "\r\n" . "\r\n" . t('For more information about the Friendica project and why we feel it is important, please visit http://friendica.com') . "\r\n" . "\r\n" , '$submit' => t('Submit') )); diff --git a/mod/message.php b/mod/message.php index 25b3b2813..d501f3b54 100644 --- a/mod/message.php +++ b/mod/message.php @@ -175,7 +175,7 @@ function message_content(&$a) { return; } - $myprofile = $a->get_baseurl(true) . '/profile/' . $a->user['nickname']; + $myprofile = $a->get_baseurl(true) . '/channel/' . $a->user['nickname']; $tpl = get_markup_template('mail_head.tpl'); $header = replace_macros($tpl, array( diff --git a/mod/msearch.php b/mod/msearch.php index e8e7d447b..9d587d1e4 100644 --- a/mod/msearch.php +++ b/mod/msearch.php @@ -27,7 +27,7 @@ function msearch_post(&$a) { foreach($r as $rr) $results[] = array( 'name' => $rr['name'], - 'url' => $a->get_baseurl() . '/profile/' . $rr['nickname'], + 'url' => $a->get_baseurl() . '/channel/' . $rr['nickname'], 'photo' => $a->get_baseurl() . '/photo/avatar/' . $rr['uid'], 'tags' => str_replace(array(',',' '),array(' ',' '),$rr['pub_keywords']) ); diff --git a/mod/network.php b/mod/network.php index 0d55438c1..b4b736e28 100644 --- a/mod/network.php +++ b/mod/network.php @@ -563,7 +563,7 @@ function network_content(&$a, $update = 0, $load = false) { if($conv) { // find a substring of my profile url that can be normalised - $myurl = $a->get_baseurl() . '/profile/' . $a->user['nickname']; + $myurl = $a->get_baseurl() . '/channel/' . $a->user['nickname']; $myurl = substr($myurl,strpos($myurl,'://')+3); $myurl = str_replace('www.','',$myurl); diff --git a/mod/notifications.php b/mod/notifications.php index 5bb85085f..8221dd7c3 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -338,10 +338,10 @@ function notifications_content(&$a) { $notif_tpl = get_markup_template('notifications.tpl'); - $myurl = $a->get_baseurl(true) . '/profile/'. $a->user['nickname']; + $myurl = $a->get_baseurl(true) . '/channel/'. $a->user['nickname']; $myurl = substr($myurl,strpos($myurl,'://')+3); $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); - $diasp_url = str_replace('/profile/','/u/',$myurl); + $diasp_url = str_replace('/channel/','/u/',$myurl); $sql_extra .= sprintf(" AND ( `item`.`author-link` regexp '%s' or `item`.`tag` regexp '%s' or `item`.`tag` regexp '%s' ) ", dbesc($myurl . '$'), dbesc($myurl . '\\]'), diff --git a/mod/ping.php b/mod/ping.php index a679c9342..342726ec1 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -170,7 +170,7 @@ function ping_init(&$a) { $t4 = dba_timer(); - $myurl = $a->get_baseurl() . '/profile/' . $a->user['nickname'] ; + $myurl = $a->get_baseurl() . '/channel/' . $a->user['nickname'] ; $mails = q("SELECT *, COUNT(*) AS `total` FROM `mail` WHERE `uid` = %d AND `seen` = 0 AND `from-url` != '%s' ", intval(local_user()), diff --git a/mod/profile.php b/mod/profile.php index 8fdd38ced..68cc53f56 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -28,31 +28,16 @@ function profile_aside(&$a) { $profile = argv(1); } - $cat = ((x($_REQUEST,'cat')) ? htmlspecialchars($_REQUEST['cat']) : ''); - profile_load($a,$which,$profile); - $a->set_widget('archive',posted_date_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],$a->profile['profile_uid'],true)); - $a->set_widget('categories',categories_widget($a->get_baseurl(true) . '/profile/' . $a->profile['nickname'],$cat)); + $a->set_widget('archive',posted_date_widget($a->get_baseurl(true) . '/channel/' . $a->profile['nickname'],$a->profile['profile_uid'],true)); + $a->set_widget('categories',categories_widget($a->get_baseurl(true) . '/channel/' . $a->profile['nickname'],$cat)); } function profile_content(&$a, $update = 0) { - $category = $datequery = $datequery2 = ''; - - if(argc() > 2) { - for($x = 2; $x < argc(); $x ++) { - if(is_a_date_arg(argv($x))) { - if($datequery) - $datequery2 = escape_tags(argv($x)); - else - $datequery = escape_tags(argv($x)); - } - } - } - if(get_config('system','block_public') && (! get_account_id()) && (! remote_user())) { return login(); } @@ -66,20 +51,13 @@ function profile_content(&$a, $update = 0) { $groups = array(); - $tab = 'posts'; + $tab = 'profile'; $o = ''; - if($update) { - // Ensure we've got a profile owner if updating. - $a->profile['profile_uid'] = $update; - } - else { - if($a->profile['profile_uid'] == local_user()) { - nav_set_selected('home'); - } + if($a->profile['profile_uid'] == local_user()) { + nav_set_selected('home'); } - $contact = null; $remote_contact = false; @@ -120,149 +98,13 @@ function profile_content(&$a, $update = 0) { return; } - if(! $update) { - - - if(x($_GET,'tab')) - $tab = notags(trim($_GET['tab'])); - - $o .= profile_tabs($a, $is_owner, $a->profile['channel_address']); - - - if($tab === 'profile') { - require_once('include/profile_advanced.php'); - $o .= advanced_profile($a); - call_hooks('profile_advanced',$o); - return $o; - } - - - $o .= common_friends_visitor_widget($a->profile['profile_uid']); - - - $commpage = (($a->profile['page-flags'] == PAGE_COMMUNITY) ? true : false); - $commvisitor = (($commpage && $remote_contact == true) ? true : false); - - $celeb = ((($a->profile['page-flags'] == PAGE_SOAPBOX) || ($a->profile['page-flags'] == PAGE_COMMUNITY)) ? true : false); - - if(can_write_wall($a,$a->profile['profile_uid'])) { - - $x = array( - 'is_owner' => $is_owner, - 'allow_location' => ((($is_owner || $commvisitor) && $a->profile['allow_location']) ? true : false), - 'default_location' => (($is_owner) ? $a->user['default-location'] : ''), - 'nickname' => $a->profile['channel_address'], - 'lockstate' => (((strlen($a->profile['channel_allow_cid'])) || (strlen($a->profile['channel_allow_gid'])) || (strlen($a->profile['channel_deny_cid'])) || (strlen($a->profile['channel_deny_gid']))) ? 'lock' : 'unlock'), - 'acl' => (($is_owner) ? populate_acl($channel, $celeb) : ''), - 'bang' => '', - 'visitor' => (($is_owner || $commvisitor) ? 'block' : 'none'), - 'profile_uid' => $a->profile['profile_uid'] - ); - - $o .= status_editor($a,$x); - } - - } - - - /** - * Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups - */ - - $sql_extra = item_permissions_sql($a->profile['profile_uid'],$remote_contact,$groups); + $o .= profile_tabs($a, $is_owner, $a->profile['channel_address']); - if($update) { - - $r = q("SELECT distinct(parent) AS `item_id` from item - WHERE uid = %d AND item_restrict = 0 - AND item_flags & %d - $sql_extra - ORDER BY created DESC", - intval($a->profile['profile_uid']), - intval(ITEM_WALL) - ); - - } - else { - - if(x($category)) { - $sql_extra .= protect_sprintf(file_tag_file_query('item',$category,'category')); - } - - if($datequery) { - $sql_extra2 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery)))); - } - if($datequery2) { - $sql_extra2 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2)))); - } - - - $a->set_pager_itemspage(40); - - $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage'])); - - $r = q("SELECT id AS item_id FROM item - WHERE uid = %d AND item_restrict = 0 - AND item_flags & %d - $sql_extra $sql_extra2 - ORDER BY created DESC $pager_sql ", - intval($a->profile['profile_uid']), - intval(ITEM_WALL|ITEM_THREAD_TOP) - - ); - - } - - if($r && count($r)) { - - $parents_str = ids_to_querystr($r,'item_id'); - - $items = q("SELECT `item`.*, `item`.`id` AS `item_id` - FROM `item` - WHERE `item`.`uid` = %d AND `item`.`item_restrict` = 0 - AND `item`.`parent` IN ( %s ) - $sql_extra ", - intval($a->profile['profile_uid']), - dbesc($parents_str) - ); - - xchan_query($items); - $items = fetch_post_tags($items); - $items = conv_sort($items,'created'); - - } else { - $items = array(); - } - - - if((! $update) && ($tab === 'posts')) { - - // This is ugly, but we can't pass the profile_uid through the session to the ajax updater, - // because browser prefetching might change it on us. We have to deliver it with the page. - - $o .= '<div id="live-profile"></div>' . "\r\n"; - $o .= "<script> var profile_uid = " . $a->profile['profile_uid'] - . "; var netargs = '?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n"; - } - - - - if($is_owner) { - $r = q("UPDATE item SET item_flags = (item_flags ^ %d) - WHERE (item_flags & %d) AND (item_flags & %d) AND uid = %d ", - intval(ITEM_UNSEEN), - intval(ITEM_UNSEEN), - intval(ITEM_WALL), - intval(local_user()) - ); - } - - - $o .= conversation($a,$items,'profile',$update); - - if(! $update) - $o .= alt_pager($a,count($items)); + require_once('include/profile_advanced.php'); + $o .= advanced_profile($a); + call_hooks('profile_advanced',$o); return $o; + } diff --git a/mod/profile_photo.php b/mod/profile_photo.php index ddefb69e5..e78d2ca6f 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -125,7 +125,7 @@ function profile_photo_post(&$a) { info( t('Shift-reload the page or clear browser cache if the new photo does not display immediately.') . EOL); // Update global directory in background - $url = $a->get_baseurl() . '/profile/' . $a->user['nickname']; + $url = $a->get_baseurl() . '/channel/' . $a->user['nickname']; if($url && strlen(get_config('system','directory_submit_url'))) proc_run('php',"include/directory.php","$url"); diff --git a/mod/settings.php b/mod/settings.php index 7cbe278a3..cfb0a3b26 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -769,7 +769,7 @@ function settings_content(&$a) { info( t('Profile is <strong>not published</strong>.') . EOL ); - $subdir = ((strlen($a->get_path())) ? '<br />' . t('or') . ' ' . $a->get_baseurl(true) . '/profile/' . $nickname : ''); + $subdir = ((strlen($a->get_path())) ? '<br />' . t('or') . ' ' . $a->get_baseurl(true) . '/channel/' . $nickname : ''); $tpl_addr = get_markup_template("settings_nick_set.tpl"); diff --git a/mod/update_profile.php b/mod/update_channel.php index c4884b30f..08b7bd5d7 100644 --- a/mod/update_profile.php +++ b/mod/update_channel.php @@ -7,9 +7,9 @@ */ -require_once('mod/profile.php'); +require_once('mod/channel.php'); -function update_profile_content(&$a) { +function update_channel_content(&$a) { $profile_uid = intval($_GET['p']); @@ -32,7 +32,7 @@ function update_profile_content(&$a) { * */ - $text = profile_content($a,$profile_uid); + $text = channel_content($a,$profile_uid); $pattern = "/<img([^>]*) src=\"([^\"]*)\"/"; $replace = "<img\${1} dst=\"\${2}\""; diff --git a/mod/wallmessage.php b/mod/wallmessage.php index cf349775c..8a1194104 100644 --- a/mod/wallmessage.php +++ b/mod/wallmessage.php @@ -68,7 +68,7 @@ function wallmessage_post(&$a) { info( t('Message sent.') . EOL ); } -// goaway($a->get_baseurl() . '/profile/' . $user['nickname']); +// goaway($a->get_baseurl() . '/channel/' . $user['nickname']); } diff --git a/mod/xrd.php b/mod/xrd.php index a718d623d..d22ff4699 100644 --- a/mod/xrd.php +++ b/mod/xrd.php @@ -34,7 +34,7 @@ function xrd_init(&$a) { $o = replace_macros($tpl, array( '$nick' => $r[0]['nickname'], '$accturi' => $uri, - '$profile_url' => $a->get_baseurl() . '/profile/' . $r[0]['nickname'], + '$profile_url' => $a->get_baseurl() . '/channel/' . $r[0]['nickname'], '$hcard_url' => $a->get_baseurl() . '/hcard/' . $r[0]['nickname'], '$atom' => $a->get_baseurl() . '/dfrn_poll/' . $r[0]['nickname'], '$zot_post' => $a->get_baseurl() . '/post/' . $r[0]['nickname'], diff --git a/version.inc b/version.inc index 860f87211..feff79e46 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2012-10-28.121 +2012-10-29.122 |