From b08d4cc1fe2b8dd45de7546f05cf9a9601aeca03 Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 23 Dec 2013 17:24:25 -0800 Subject: first cut at a directory popup. It's a bit annoying at the moment, so we'll have to make it less so. Also had second thoughts about the project homepage changes made yesterday. Just because a bunch of Reddit trolls can't get social networking out of their brain long enough to explore other technologies or even read the project page doesn't mean we should pander to them and explain how or why we either are or aren't a social network. --- assets/home.html | 3 - mod/directory.php | 3 +- mod/dirprofile.php | 151 ++++++++++++++++++++++++++++++++++++++++++++ mod/dirsearch.php | 18 +++++- view/css/conversation.css | 2 + view/js/mod_directory.js | 8 +++ view/tpl/direntry.tpl | 2 +- view/tpl/direntry_large.tpl | 16 +++++ view/tpl/jot.tpl | 2 +- 9 files changed, 196 insertions(+), 9 deletions(-) create mode 100644 mod/dirprofile.php create mode 100644 view/js/mod_directory.js create mode 100755 view/tpl/direntry_large.tpl diff --git a/assets/home.html b/assets/home.html index 3a3628748..3f018edfc 100644 --- a/assets/home.html +++ b/assets/home.html @@ -116,9 +116,6 @@ The internet is broken. We're fixing it. Now open your eyes. We've done some amazing things with decentralisation technology over the last few years and have created a different kind of network. We call it the Red Matrix. Forget the old internet - it's hopelessly broken and increasingly being choked off in order to take your money and spy on you. We're building tomorrow's internet today. And we're doing things a bit differently than what you may be used to. We could wait for this new internet to be built, but we don't really trust the typical corporations and governmental bodies to do it right. So we're building it on top of the old internet. And we're building privacy into its DNA. And it's here now.

-It seems that many people can only envision the internet through the distorted perception of social networking. So let's get a few things straight. Is the Red Matrix a social network? No. Is your car an air-conditioner? No. Your car may have an air conditioner, but that isn't its prime function. Its prime function is a transportation device. The Red Matrix has some very advanced communication technology embedded in it, (much more advanced than many so-called social networks), and one can do social network things with it (quite well in fact); but its prime function is a decentralised identity-aware web publishing platform. More on that in a minute. Decentralised privacy aware communications between channels is (like your car's air conditioner) just another feature the Red Matrix provides. It doesn't belong to a corporation; it's just an integral part of your new internet. -

-

The Red Matrix is a decentralised network where the people using it are in charge and the size of your server farm and wealth do not offer any comparable advantage. Anybody may participate on a level playing field. Cloud storage, file sharing, communications, content creation and management belong to everybody and can be shared with anybody (or somebody, or nobody). This is only a representative sample of the services we plan to offer. In an internet where creativity is allowed to flourish and corporate overlords have no power, the door is open to entirely new forms of expression and applications. The Red Matrix software is free and open source; created by volunteers and distributed under the MIT license.

diff --git a/mod/directory.php b/mod/directory.php index 9e4c37fae..53542db60 100644 --- a/mod/directory.php +++ b/mod/directory.php @@ -168,6 +168,7 @@ function directory_content(&$a) { 'id' => ++$t, 'profile_link' => $profile_link, 'photo' => $rr['photo'], + 'hash' => $rr['hash'], 'alttext' => $rr['name'] . ' ' . $rr['address'], 'name' => $rr['name'], 'details' => $pdesc . $details, @@ -186,7 +187,7 @@ function directory_content(&$a) { call_hooks('directory_item', $arr); - $entries[] = $entry; + $entries[] = $arr['entry']; unset($profile); unset($location); diff --git a/mod/dirprofile.php b/mod/dirprofile.php new file mode 100644 index 000000000..133089419 --- /dev/null +++ b/mod/dirprofile.php @@ -0,0 +1,151 @@ +' : ''); + $connect_link = ((local_user()) ? z_root() . '/follow?f=&url=' . urlencode($rr['address']) : ''); + + if(in_array($rr['hash'],$contacts)) + $connect_link = ''; + + $details = ''; + if(strlen($rr['locale'])) + $details .= $rr['locale']; + if(strlen($rr['region'])) { + if(strlen($rr['locale'])) + $details .= ', '; + $details .= $rr['region']; + } + if(strlen($rr['country'])) { + if(strlen($details)) + $details .= ', '; + $details .= $rr['country']; + } + if(strlen($rr['birthday'])) { + if(($years = age($rr['birthday'],'UTC','')) != 0) + $details .= '
' . t('Age: ') . $years ; + } + if(strlen($rr['gender'])) + $details .= '
' . t('Gender: ') . $rr['gender']; + + $page_type = ''; + + $profile = $rr; + + if ((x($profile,'locale') == 1) + || (x($profile,'region') == 1) + || (x($profile,'postcode') == 1) + || (x($profile,'country') == 1)) + $location = t('Location:'); + + $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False); + + $marital = ((x($profile,'marital') == 1) ? t('Status:') : False); + + $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False); + + $about = ((x($profile,'about') == 1) ? t('About:') : False); + + + + $entry = replace_macros(get_markup_template('direntry_large.tpl'), array( + '$id' => ++$t, + '$profile_link' => $profile_link, + '$photo' => $rr['photo_l'], + '$alttext' => $rr['name'] . ' ' . $rr['address'], + '$name' => $rr['name'], + '$details' => $pdesc . $details, + '$profile' => $profile, + '$location' => $location, + '$gender' => $gender, + '$pdesc' => $pdesc, + '$marital' => $marital, + '$homepage' => $homepage, + '$about' => $about, + '$conn_label' => t('Connect'), + '$connect' => $connect_link, + )); + + + echo $entry; + killme(); + + } + } + else { + info( t("Not found.") . EOL); + } + } + } + } + + + + +} \ No newline at end of file diff --git a/mod/dirsearch.php b/mod/dirsearch.php index 6315cae31..6490d59df 100644 --- a/mod/dirsearch.php +++ b/mod/dirsearch.php @@ -27,9 +27,10 @@ function dirsearch_content(&$a) { json_return_and_die($ret); } + $hash = ((x($_REQUEST['hash'])) ? $_REQUEST['hash'] : ''); $name = ((x($_REQUEST,'name')) ? $_REQUEST['name'] : ''); - $hub = ((x($_REQUEST,'hub')) ? $_REQUEST['hub'] : ''); + $hub = ((x($_REQUEST,'hub')) ? $_REQUEST['hub'] : ''); $address = ((x($_REQUEST,'address')) ? $_REQUEST['address'] : ''); $locale = ((x($_REQUEST,'locale')) ? $_REQUEST['locale'] : ''); $region = ((x($_REQUEST,'region')) ? $_REQUEST['region'] : ''); @@ -91,6 +92,13 @@ function dirsearch_content(&$a) { $sql_extra .= " AND xprof_age >= " . intval($agege) . ") "; } + + if($hash) { + $sql_extra = " AND xchan_hash = '" . dbesc($hash) . "' "; + } + + + $perpage = (($_REQUEST['n']) ? $_REQUEST['n'] : 80); $page = (($_REQUEST['p']) ? intval($_REQUEST['p'] - 1) : 0); $startrec = (($page+1) * $perpage) - $perpage; @@ -112,6 +120,9 @@ function dirsearch_content(&$a) { $logic = ((strlen($sql_extra)) ? 0 : 1); + if($hash) + $logic = 1; + $safesql = (($safe > 0) ? " and not ( xchan_flags & " . intval(XCHAN_FLAGS_CENSORED|XCHAN_FLAGS_SELFCENSORED) . " ) " : ''); if($safe < 0) $safesql = " and ( xchan_flags & " . intval(XCHAN_FLAGS_CENSORED|XCHAN_FLAGS_SELFCENSORED) . " ) "; @@ -161,13 +172,13 @@ function dirsearch_content(&$a) { json_return_and_die($spkt); } else { - +dbg(1); $r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where ( $logic $sql_extra ) and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) and not ( xchan_flags & %d ) $safesql $order $qlimit ", intval(XCHAN_FLAGS_HIDDEN), intval(XCHAN_FLAGS_ORPHAN), intval(XCHAN_FLAGS_DELETED) ); - +dbg(0); } $ret['page'] = $page + 1; @@ -187,6 +198,7 @@ function dirsearch_content(&$a) { // $entry['updated'] = (($rr['ud_date']) ? $rr['ud_date'] : '0000-00-00 00:00:00'); // $entry['update_guid'] = (($rr['ud_guid']) ? $rr['ud_guid'] : ''); $entry['url'] = $rr['xchan_url']; + $entry['photo_l'] = $rr['xchan_photo_l']; $entry['photo'] = $rr['xchan_photo_m']; $entry['address'] = $rr['xchan_addr']; $entry['description'] = $rr['xprof_desc']; diff --git a/view/css/conversation.css b/view/css/conversation.css index 8125b6278..493ce9cd5 100644 --- a/view/css/conversation.css +++ b/view/css/conversation.css @@ -55,6 +55,8 @@ #profile-expires, #profile-expires, #jot-perms-icon, +#jot-preview-link, +#profile-encrypt, .hover, .focus { cursor: pointer; } diff --git a/view/js/mod_directory.js b/view/js/mod_directory.js new file mode 100644 index 000000000..96a38a109 --- /dev/null +++ b/view/js/mod_directory.js @@ -0,0 +1,8 @@ +function dirdetails(hash) { + + $.get('dirprofile' + '?f=&hash=' + hash, function( data ) { + $.colorbox({ html: data }); + }); + +} + diff --git a/view/tpl/direntry.tpl b/view/tpl/direntry.tpl index 35bbbe0fd..ae2291d01 100755 --- a/view/tpl/direntry.tpl +++ b/view/tpl/direntry.tpl @@ -7,7 +7,7 @@ -

{{$entry.name}}
+
{{$entry.name}}
{{if $entry.connect}}
{{$entry.conn_label}}
{{/if}} diff --git a/view/tpl/direntry_large.tpl b/view/tpl/direntry_large.tpl new file mode 100755 index 000000000..cf45d8f48 --- /dev/null +++ b/view/tpl/direntry_large.tpl @@ -0,0 +1,16 @@ +
+
+ +
+
+{{$alttext}} +
+
+ +
{{$name}}
+{{if $entry.connect}} + +{{/if}} +
{{$details}}
+
+
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl index 9038155be..e1e1e3080 100755 --- a/view/tpl/jot.tpl +++ b/view/tpl/jot.tpl @@ -70,7 +70,7 @@ {{/if}} - {{if $preview}}{{/if}} + {{if $preview}}{{/if}}
-- cgit v1.2.3