From 303324cdff3f7c8bc83fae89256a2133939944b2 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 12 Dec 2013 02:15:02 -0800 Subject: more htmlspecialchars sanitisation --- include/conversation.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index f5fc9da93..29fb8a163 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1108,7 +1108,7 @@ function status_editor($a,$x,$popup=false) { '$shortsetloc' => t('set location'), '$noloc' => t('Clear browser location'), '$shortnoloc' => t('clear location'), - '$title' => ((x($x,'title')) ? htmlspecialchars($x['title']) : ''), + '$title' => ((x($x,'title')) ? htmlspecialchars($x['title'], ENT_COMPAT,'UTF-8') : ''), '$placeholdertitle' => t('Set title'), '$catsenabled' => ((feature_enabled($x['profile_uid'],'categories') && (! $webpage)) ? 'categories' : ''), '$category' => "", @@ -1117,7 +1117,7 @@ function status_editor($a,$x,$popup=false) { '$permset' => t('Permission settings'), '$shortpermset' => t('permissions'), '$ptyp' => (($notes_cid) ? 'note' : 'wall'), - '$content' => ((x($x,'body')) ? htmlspecialchars($x['body']) : ''), + '$content' => ((x($x,'body')) ? htmlspecialchars($x['body'], ENT_COMPAT,'UTF-8') : ''), '$post_id' => '', '$baseurl' => $a->get_baseurl(true), '$defloc' => $x['default_location'], -- cgit v1.2.3 From 38fd8410eb5c66928cb24bb87ad38657f53aec3a Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 18 Dec 2013 01:00:08 -0800 Subject: split off mod_connections into mod_connections & mod_connedit - lots of links to fix --- include/conversation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index 29fb8a163..2ba3948bf 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -915,7 +915,7 @@ function item_photo_menu($item){ if($contact) { $poke_link = $a->get_baseurl($ssl_state) . '/poke/?f=&c=' . $contact['abook_id']; - $contact_url = $a->get_baseurl($ssl_state) . '/connections/' . $contact['abook_id']; + $contact_url = $a->get_baseurl($ssl_state) . '/connedit/' . $contact['abook_id']; $posts_link = $a->get_baseurl($ssl_state) . '/network/?cid=' . $contact['abook_id']; $clean_url = normalise_link($item['author-link']); -- cgit v1.2.3 From d32bbaf599c77aa415ee403a896b77f091f0e9fc Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 21 Dec 2013 23:47:44 -0800 Subject: split private messages into two modules - "message" is just for message lists, "mail" is for reading and writing conversations. This is so we can Comanchify it cleanly. --- include/conversation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index 2ba3948bf..0bb13a17e 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -908,7 +908,7 @@ function item_photo_menu($item){ } $profile_link = z_root() . "/chanview/?f=&hash=" . $item['author_xchan']; - $pm_url = $a->get_baseurl($ssl_state) . '/message/new/?f=&hash=' . $item['author_xchan']; + $pm_url = $a->get_baseurl($ssl_state) . '/mail/new/?f=&hash=' . $item['author_xchan']; if($a->contacts && array_key_exists($item['author_xchan'],$a->contacts)) $contact = $a->contacts[$item['author_xchan']]; -- cgit v1.2.3 From 25a533bd72c34e9775af71c010a39db6caf7b633 Mon Sep 17 00:00:00 2001 From: Christian Vogeley Date: Sun, 22 Dec 2013 14:21:57 +0100 Subject: New modal dialog for item expiry --- include/conversation.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index a2eeda25b..bb9440313 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1138,6 +1138,8 @@ function status_editor($a,$x,$popup=false) { '$feature_encrypt' => ((feature_enabled($x['profile_uid'],'content_encrypt') && (! $webpage)) ? 'block' : 'none'), '$encrypt' => t('Encrypt text'), '$cipher' => $cipher, + '$expiryModalOK' => t('OK'), + '$expiryModalCANCEL' => t('Cancel'), )); -- cgit v1.2.3 From 50e39c330d9a73f69ddfdecfb5769a772b75167d Mon Sep 17 00:00:00 2001 From: Thomas Willingham Date: Mon, 23 Dec 2013 18:41:41 +0000 Subject: Zidification of author links in webpages. --- include/conversation.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index d602174b0..99252027d 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1296,15 +1296,18 @@ function prepare_page($item) { $a = get_app(); $naked = ((get_pconfig($item['uid'],'system','nakedpage')) ? 1 : 0); + $observer = $a->get_observer(); + $zid = ($observer['xchan_addr']); + if(array_key_exists('webpage',$a->layout) && array_key_exists('authored',$a->layout['webpage'])) { if($a->layout['webpage']['authored'] === 'none') $naked = 1; // ... other possible options } - return replace_macros(get_markup_template('page_display.tpl'),array( '$author' => (($naked) ? '' : $item['author']['xchan_name']), '$auth_url' => (($naked) ? '' : $item['author']['xchan_url']), + '$zid' => $zid, '$date' => (($naked) ? '' : datetime_convert('UTC',date_default_timezone_get(),$item['created'],'Y-m-d H:i')), '$title' => smilies(bbcode($item['title'])), '$body' => prepare_body($item,true) -- cgit v1.2.3 From 79102218324e794bb7096e682d61841b570fc411 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 8 Jan 2014 15:20:12 -0800 Subject: preparatory work for supporting a "list view" mode for conversations. This would be useful for forum-like channels and/or block-oriented themes. --- include/conversation.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index 99252027d..62db34974 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -782,6 +782,9 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $ // $tx1 = dba_timer(); $item_object = new Item($item); $conv->add_thread($item_object); + if($page_mode === 'list') + $item_object->set_template('conv_list.tpl'); + // $tx2 = dba_timer(); // if($mode === 'network') // profiler($tx1,$tx2,'add thread ' . $item['id']); -- cgit v1.2.3 From a78d9b973d6391e3a15f8a3ff2fe586a4bffe08c Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 9 Jan 2014 16:23:58 -0800 Subject: simplify permalink selection logic --- include/conversation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index 62db34974..5977b65e8 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -692,7 +692,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $ 'owner_name' => $owner_name, 'owner_url' => $owner_url, 'owner_photo' => $owner_photo, - 'plink' => get_plink($item,$mode), + 'plink' => get_plink($item,false), 'edpost' => false, 'isstarred' => $isstarred, 'star' => $star, -- cgit v1.2.3 From 49882f2be4ef9d1b28c72f8101fe9b15d7176ff6 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 9 Jan 2014 19:00:06 -0800 Subject: add cloud link to profile_tabs and Comanchify the sucker --- include/conversation.php | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index 5977b65e8..a9bf69a3e 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1465,6 +1465,15 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){ 'title' => t('Photo Albums'), 'id' => 'photo-tab', ), + + array( + 'label' => t('Files'), + 'url' => $a->get_baseurl() . '/cloud/' . $nickname, + 'sel' => ((argv(0) == 'cloud') ? 'active' : ''), + 'title' => t('Files and Storage'), + 'id' => 'files-tab', + ), + ); -- cgit v1.2.3 From 3b375a3d3f6d0d7fef885edcc75097564a1f7987 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 21 Jan 2014 23:09:33 -0800 Subject: fix location of string file in Translations.md, fix some permissions and owner vagueness (potential bugs) in profile_tabs() --- include/conversation.php | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) (limited to 'include/conversation.php') diff --git a/include/conversation.php b/include/conversation.php index a9bf69a3e..708348ddd 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1431,7 +1431,8 @@ function network_tabs() { function profile_tabs($a, $is_owner=False, $nickname=Null){ //echo "
"; var_dump($a->user); killme();
-	
+
+		
 	$channel = $a->get_channel();
 
 	if (is_null($nickname))
@@ -1451,33 +1452,38 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
 			'title' => t('Status Messages and Posts'),
 			'id'    => 'status-tab',
 		),
-		array(
+	);
+
+	$p = get_all_perms($a->profile['profile_uid'],get_observer_hash());
+
+	if($p['view_profile']) {
+		$tabs[] = array(
 			'label' => t('About'),
 			'url' 	=> $pr,
 			'sel'	=> ((argv(0) == 'profile') ? 'active' : ''),
 			'title' => t('Profile Details'),
 			'id'    => 'profile-tab',
-		),
-		array(
+		);
+	}
+	if($p['view_photos']) {
+		$tabs[] = array(
 			'label' => t('Photos'),
 			'url'	=> $a->get_baseurl() . '/photos/' . $nickname,
 			'sel'	=> ((argv(0) == 'photos') ? 'active' : ''),
 			'title' => t('Photo Albums'),
 			'id'    => 'photo-tab',
-		),
-
-		array(
+		);
+	}
+	if($p['view_storage']) {
+		$tabs[] = array(
 			'label' => t('Files'),
 			'url'	=> $a->get_baseurl() . '/cloud/' . $nickname,
 			'sel'	=> ((argv(0) == 'cloud') ? 'active' : ''),
 			'title' => t('Files and Storage'),
 			'id'    => 'files-tab',
-		),
-
-	);
-
-
-	if ($is_owner){
+		);
+	}
+	if($is_owner) {
 		$tabs[] = array(
 			'label' => t('Events'),
 			'url'	=> $a->get_baseurl() . '/events',
@@ -1485,15 +1491,18 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
 			'title' => t('Events and Calendar'),
 			'id'    => 'events-tab',
 		);
-		if(feature_enabled(local_user(),'webpages')){
+	}
+
+	if($is_owner && feature_enabled($a->profile['profile_uid'],'webpages')) {
 		$tabs[] = array(
 			'label' => t('Webpages'),
 			'url'	=> $a->get_baseurl() . '/webpages/' . $nickname,
 			'sel' 	=> ((argv(0) == 'webpages') ? 'active' : ''),
 			'title' => t('Manage Webpages'),
 			'id'    => 'webpages-tab',
-		);}
+		);
 	}
+
 	else {
 		// FIXME
 		// we probably need a listing of events that were created by 
-- 
cgit v1.2.3


From eb868f6df8ce31497992bab1e8c4fd39bee8fe15 Mon Sep 17 00:00:00 2001
From: marijus 
Date: Wed, 22 Jan 2014 17:18:40 +0100
Subject: make network tabs regard selected group (collection) and vice versa

---
 include/conversation.php | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index 708348ddd..c0bed2a6b 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1374,13 +1374,13 @@ function network_tabs() {
 	$tabs = array(
 		array(
 			'label' => t('Commented Order'),
-			'url'=>$a->get_baseurl(true) . '/' . $cmd . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), 
+			'url'=>$a->get_baseurl(true) . '/' . $cmd . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''), 
 			'sel'=>$all_active,
 			'title'=> t('Sort by Comment Date'),
 		),
 		array(
 			'label' => t('Posted Order'),
-			'url'=>$a->get_baseurl(true) . '/' . $cmd . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''), 
+			'url'=>$a->get_baseurl(true) . '/' . $cmd . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''), 
 			'sel'=>$postord_active,
 			'title' => t('Sort by Post Date'),
 		),
@@ -1393,7 +1393,7 @@ function network_tabs() {
 		),
 		array(
 			'label' => t('New'),
-			'url' => $a->get_baseurl(true) . '/' . $cmd . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&new=1',
+			'url' => $a->get_baseurl(true) . '/' . $cmd . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&new=1' . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
 			'sel' => $new_active,
 			'title' => t('Activity Stream - by date'),
 		),
-- 
cgit v1.2.3


From 25f7a7fac975f9858b771f7bb57d4c06c5ab0daf Mon Sep 17 00:00:00 2001
From: Thomas Willingham 
Date: Wed, 22 Jan 2014 22:17:12 +0000
Subject: Give pages enough to construct a share button.

---
 include/conversation.php | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index 708348ddd..13f0d8970 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1301,7 +1301,8 @@ function prepare_page($item) {
 	$naked = ((get_pconfig($item['uid'],'system','nakedpage')) ? 1 : 0);
 	$observer = $a->get_observer();
 	$zid = ($observer['xchan_addr']);
-
+	$preview = substr(urlencode($item['body']), 0, 100);
+	$link = z_root() . '/' . $a->cmd;
 	if(array_key_exists('webpage',$a->layout) && array_key_exists('authored',$a->layout['webpage'])) {
 		if($a->layout['webpage']['authored'] === 'none')
 			$naked = 1;
@@ -1313,7 +1314,9 @@ function prepare_page($item) {
 		'$zid' => $zid,
 		'$date' => (($naked) ? '' : datetime_convert('UTC',date_default_timezone_get(),$item['created'],'Y-m-d H:i')),
 		'$title' => smilies(bbcode($item['title'])),
-		'$body' => prepare_body($item,true)
+		'$body' => prepare_body($item,true),
+		'$preview' => $preview,
+		'$link' => $link
 	));
 }
 
-- 
cgit v1.2.3


From 040d87c999c02df82dd3acad97db498d12f8580a Mon Sep 17 00:00:00 2001
From: marijus 
Date: Wed, 22 Jan 2014 23:24:09 +0100
Subject: update argument ?f=

---
 include/conversation.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index c0bed2a6b..ddcb12b07 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1387,13 +1387,13 @@ function network_tabs() {
 
 		array(
 			'label' => t('Personal'),
-			'url' => $a->get_baseurl(true) . '/' . $cmd . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
+			'url' => $a->get_baseurl(true) . '/' . $cmd . '?f=' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . '&conv=1',
 			'sel' => $conv_active,
 			'title' => t('Posts that mention or involve you'),
 		),
 		array(
 			'label' => t('New'),
-			'url' => $a->get_baseurl(true) . '/' . $cmd . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&new=1' . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
+			'url' => $a->get_baseurl(true) . '/' . $cmd . '?f=' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . '&new=1' . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
 			'sel' => $new_active,
 			'title' => t('Activity Stream - by date'),
 		),
-- 
cgit v1.2.3


From d57361ea4ace5d392623a316068fb5041d116ace Mon Sep 17 00:00:00 2001
From: Thomas Willingham 
Date: Fri, 24 Jan 2014 03:44:50 +0000
Subject: Make share previews a bit longer.  We can't go any longer than this
 without suhosin starting to break things for channels with long names  - this
 limit works with the channel with the longest name in the matrix today, but
 we may need to make this a pconfig anyway.

---
 include/conversation.php | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index 46a01d3c9..4b292ca4d 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1296,12 +1296,18 @@ function render_location_default($item) {
 
 
 function prepare_page($item) {
+$foo = $item['owner_xchan'];
 
 	$a = get_app();
+	$upstreamshare = '1';
+	if ($foo == 'njsQ2vWa65pH-kwIKfGINOqDT2k_05ZIAeQxP9Ozk16z1WLTxTNlly4_vQKx2huTPCQqMz8shvgB3f7JVPzkdw') {
+		$upstreamshare = '';
+	}
 	$naked = ((get_pconfig($item['uid'],'system','nakedpage')) ? 1 : 0);
 	$observer = $a->get_observer();
 	$zid = ($observer['xchan_addr']);
-	$preview = substr(urlencode($item['body']), 0, 100);
+	//240 chars is the longest we can have before we start hitting problems with suhosin sites
+	$preview = substr(urlencode($item['body']), 0, 240);
 	$link = z_root() . '/' . $a->cmd;
 	if(array_key_exists('webpage',$a->layout) && array_key_exists('authored',$a->layout['webpage'])) {
 		if($a->layout['webpage']['authored'] === 'none')
@@ -1316,7 +1322,8 @@ function prepare_page($item) {
 		'$title' => smilies(bbcode($item['title'])),
 		'$body' => prepare_body($item,true),
 		'$preview' => $preview,
-		'$link' => $link
+		'$link' => $link,
+		'$upstreamshare' => $upstreamshare
 	));
 }
 
-- 
cgit v1.2.3


From ad67d3e48332204128209feb164c308af96e0ce1 Mon Sep 17 00:00:00 2001
From: Thomas Willingham 
Date: Fri, 24 Jan 2014 03:48:54 +0000
Subject: Ooops, included site specific hack

---
 include/conversation.php | 6 ------
 1 file changed, 6 deletions(-)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index 4b292ca4d..cec5993b6 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1296,13 +1296,8 @@ function render_location_default($item) {
 
 
 function prepare_page($item) {
-$foo = $item['owner_xchan'];
 
 	$a = get_app();
-	$upstreamshare = '1';
-	if ($foo == 'njsQ2vWa65pH-kwIKfGINOqDT2k_05ZIAeQxP9Ozk16z1WLTxTNlly4_vQKx2huTPCQqMz8shvgB3f7JVPzkdw') {
-		$upstreamshare = '';
-	}
 	$naked = ((get_pconfig($item['uid'],'system','nakedpage')) ? 1 : 0);
 	$observer = $a->get_observer();
 	$zid = ($observer['xchan_addr']);
@@ -1323,7 +1318,6 @@ $foo = $item['owner_xchan'];
 		'$body' => prepare_body($item,true),
 		'$preview' => $preview,
 		'$link' => $link,
-		'$upstreamshare' => $upstreamshare
 	));
 }
 
-- 
cgit v1.2.3


From d296b02b0e522dbbd30ad7926e9f80f3c8c04328 Mon Sep 17 00:00:00 2001
From: friendica 
Date: Sun, 26 Jan 2014 14:15:57 -0800
Subject: The final piece of the DAV authentication puzzle. Provide a directory
 view to an un-auth'd person (without asking for a password) by adding a query
 parameter 'davguest=1'. This is a bit of a hack, but there was no response on
 the official forum about how to do this correctly so it will have to do. On
 the downside, if permission is denied, it won't ask for a password - but
 we're talking about unauthenticated folks who didn't go through magic auth so
 chances are even if they authenticate, permission will still be denied.

---
 include/conversation.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index cec5993b6..34d661004 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1481,7 +1481,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
 	if($p['view_storage']) {
 		$tabs[] = array(
 			'label' => t('Files'),
-			'url'	=> $a->get_baseurl() . '/cloud/' . $nickname,
+			'url'	=> $a->get_baseurl() . '/cloud/' . $nickname . ((get_observer_hash()) ? '' : '?f=&davguest=1'),
 			'sel'	=> ((argv(0) == 'cloud') ? 'active' : ''),
 			'title' => t('Files and Storage'),
 			'id'    => 'files-tab',
-- 
cgit v1.2.3


From f104b4dc275891785ec03abd779d8aafe5163815 Mon Sep 17 00:00:00 2001
From: friendica 
Date: Mon, 27 Jan 2014 23:49:42 -0800
Subject: preserve expiration when editing

---
 include/conversation.php | 1 +
 1 file changed, 1 insertion(+)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index 34d661004..316bc1612 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -687,6 +687,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
 					'isotime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'c'),
 					'localtime' => datetime_convert('UTC', date_default_timezone_get(), $item['created'], 'r'),
 					'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : ''),
+					'expiretime' => (($item['expires'] !== '0000-00-00 00:00:00') ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''),
 					'location' => $location,
 					'indent' => '',
 					'owner_name' => $owner_name,
-- 
cgit v1.2.3


From aede006970fb9124161b4732b9f44002a35d17ef Mon Sep 17 00:00:00 2001
From: friendica 
Date: Tue, 4 Feb 2014 17:12:13 -0800
Subject: bookmarks - mop up and go home

---
 include/conversation.php | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index 316bc1612..633435871 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1496,6 +1496,14 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
 			'title' => t('Events and Calendar'),
 			'id'    => 'events-tab',
 		);
+
+		$tabs[] = array(
+			'label' => t('Bookmarks'),
+			'url'	=> $a->get_baseurl() . '/bookmarks',
+			'sel' 	=> ((argv(0) == 'bookmarks') ? 'active' : ''),
+			'title' => t('Saved Bookmarks'),
+			'id'    => 'bookmarks-tab',
+		);
 	}
 
 	if($is_owner && feature_enabled($a->profile['profile_uid'],'webpages')) {
-- 
cgit v1.2.3


From 05a70a8760d705e80c548d96a9d083ab032dbd8b Mon Sep 17 00:00:00 2001
From: friendica 
Date: Wed, 5 Feb 2014 19:16:12 -0800
Subject: add chatroom links

---
 include/conversation.php | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index 633435871..77c7bac70 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1488,6 +1488,19 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
 			'id'    => 'files-tab',
 		);
 	}
+
+	require_once('include/chat.php');
+	$chats = chatroom_list($a->profile['profile_uid']);
+
+	$tabs[] = array(
+		'label' => t('Chatrooms') . '(' . count($chats) . ')',
+		'url'	=> $a->get_baseurl() . '/chat/' . $nickname,
+		'sel' 	=> ((argv(0) == 'chat') ? 'active' : ''),
+		'title' => t('Chatrooms'),
+		'id'    => 'chat-tab',
+	);
+
+
 	if($is_owner) {
 		$tabs[] = array(
 			'label' => t('Events'),
@@ -1506,6 +1519,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
 		);
 	}
 
+
 	if($is_owner && feature_enabled($a->profile['profile_uid'],'webpages')) {
 		$tabs[] = array(
 			'label' => t('Webpages'),
-- 
cgit v1.2.3


From 97739920ebfa0d7b0db95c61187d5820c0939f14 Mon Sep 17 00:00:00 2001
From: friendica 
Date: Sat, 8 Feb 2014 00:48:19 -0800
Subject: create a new "subdued" CSS class for things that shouldn't be in your
 face unless you want them and intentionally hover over them. Typically this
 would be accomplished via an opacity or colour change, but themes are free to
 use other methods. Also changed the channel_tabs "chatroom" link to use the
 subdued class if no rooms have been created rather than a count of chatrooms.
 Themse should probably create a .subdued and .subdued:hover definition
 because we'll probably take most of the stuff which is now hardwired to use
 opacity by id and change it to use the class definition instead.

---
 include/conversation.php | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'include/conversation.php')

diff --git a/include/conversation.php b/include/conversation.php
index 77c7bac70..16ac4e909 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1491,11 +1491,11 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
 
 	require_once('include/chat.php');
 	$chats = chatroom_list($a->profile['profile_uid']);
-
+	$subdued = ((count($chats)) ? '' : ' subdued');
 	$tabs[] = array(
-		'label' => t('Chatrooms') . '(' . count($chats) . ')',
+		'label' => t('Chatrooms'),
 		'url'	=> $a->get_baseurl() . '/chat/' . $nickname,
-		'sel' 	=> ((argv(0) == 'chat') ? 'active' : ''),
+		'sel' 	=> ((argv(0) == 'chat') ? 'active' . $subdued : '' . $subdued),
 		'title' => t('Chatrooms'),
 		'id'    => 'chat-tab',
 	);
-- 
cgit v1.2.3