diff --git a/boot.php b/boot.php index d7b51867f..c84924e32 100644 --- a/boot.php +++ b/boot.php @@ -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 = '
' . "\r\n" + $live_update_div = '' . "\r\n" . "\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"), diff --git a/index.php b/index.php index a0903fe63..8bf3621bf 100644 --- a/index.php +++ b/index.php @@ -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'] .= ''; 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 @@ +page['htmlhead'] .= '' . "\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 .= '' . "\r\n"; + $o .= "\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'] . '