Merge pull request #1989 from rabuzarus/allfriends

template-rework: let common friends and allfriends use viewcontact_te…
This commit is contained in:
Michael Vogel 2015-11-03 23:27:24 +01:00
commit 3b11436b02
13 changed files with 139 additions and 69 deletions

View file

@ -245,7 +245,7 @@ function get_contact_details_by_url($url, $uid = -1) {
$profile["keywords"] = $r[0]["keywords"]; $profile["keywords"] = $r[0]["keywords"];
if (isset($r[0]["gender"]) AND $r[0]["gender"]) if (isset($r[0]["gender"]) AND $r[0]["gender"])
$profile["gender"] = $r[0]["gender"]; $profile["gender"] = $r[0]["gender"];
if (isset($r[0]["forum"]) AND isset($r[0]["prv"])) if (isset($r[0]["forum"]) OR isset($r[0]["prv"]))
$profile["community"] = ($r[0]["forum"] OR $r[0]["prv"]); $profile["community"] = ($r[0]["forum"] OR $r[0]["prv"]);
if (isset($r[0]["network"]) AND $r[0]["network"]) if (isset($r[0]["network"]) AND $r[0]["network"])
$profile["network"] = $r[0]["network"]; $profile["network"] = $r[0]["network"];

View file

@ -1,6 +1,8 @@
<?php <?php
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/Contact.php');
require_once('include/contact_selectors.php');
function allfriends_content(&$a) { function allfriends_content(&$a) {
@ -12,10 +14,13 @@ function allfriends_content(&$a) {
if($a->argc > 1) if($a->argc > 1)
$cid = intval($a->argv[1]); $cid = intval($a->argv[1]);
if(! $cid) if(! $cid)
return; return;
$c = q("select name, url, photo from contact where id = %d and uid = %d limit 1", $uid = $a->user[uid];
$c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($cid), intval($cid),
intval(local_user()) intval(local_user())
); );
@ -33,10 +38,6 @@ function allfriends_content(&$a) {
if(! count($c)) if(! count($c))
return; return;
$o .= replace_macros(get_markup_template("section_title.tpl"),array(
'$title' => sprintf( t('Friends of %s'), htmlentities($c[0]['name']))
));
$r = all_friends(local_user(),$cid); $r = all_friends(local_user(),$cid);
@ -45,19 +46,53 @@ function allfriends_content(&$a) {
return $o; return $o;
} }
$tpl = get_markup_template('common_friends.tpl'); $id = 0;
foreach($r as $rr) { foreach($r as $rr) {
$o .= replace_macros($tpl,array( //get further details of the contact
'$url' => $rr['url'], $contact_details = get_contact_details_by_url($rr['url'], $uid);
'$name' => htmlentities($rr['name']),
'$photo' => $rr['photo'], $photo_menu = '';
'$tags' => ''
)); // $rr[cid] is only available for common contacts. So if the contact is a common one, use contact_photo_menu to generate the photo_menu
// If the contact is not common to the user, Connect/Follow' will be added to the photo menu
if ($rr[cid]) {
$rr[id] = $rr[cid];
$photo_menu = contact_photo_menu ($rr);
}
else {
$connlnk = $a->get_baseurl() . '/follow/?url=' . $rr['url'];
$photo_menu = array(array(t("View Profile"), zrl($rr['url'])));
$photo_menu[] = array(t("Connect/Follow"), $connlnk);
}
$entry = array(
'url' => $rr['url'],
'itemurl' => $rr['url'],
'name' => htmlentities($rr['name']),
'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'img_hover' => htmlentities($rr['name']),
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'account_type' => (($contact_details['community']) ? t('Forum') : ''),
'network' => network_to_name($contact_details['network'], $contact_details['url']),
'photo_menu' => $photo_menu,
'conntxt' => t('Connect'),
'connlnk' => $connlnk,
'id' => ++$id,
);
$entries[] = $entry;
} }
$o .= cleardiv(); $tpl = get_markup_template('viewcontact_template.tpl');
$o .= replace_macros($tpl,array(
'$title' => sprintf( t('Friends of %s'), htmlentities($c[0]['name'])),
'$contacts' => $entries,
));
// $o .= paginate($a); // $o .= paginate($a);
return $o; return $o;
} }

View file

@ -1,6 +1,8 @@
<?php <?php
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/Contact.php');
require_once('include/contact_selectors.php');
function common_content(&$a) { function common_content(&$a) {
@ -11,19 +13,25 @@ function common_content(&$a) {
$cid = intval($a->argv[3]); $cid = intval($a->argv[3]);
$zcid = 0; $zcid = 0;
if (! local_user()) {
notice( t('Permission denied.') . EOL);
return;
}
if($cmd !== 'loc' && $cmd != 'rem') if($cmd !== 'loc' && $cmd != 'rem')
return; return;
if(! $uid) if(! $uid)
return; return;
if($cmd === 'loc' && $cid) { if($cmd === 'loc' && $cid) {
$c = q("select name, url, photo from contact where id = %d and uid = %d limit 1", $c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($cid), intval($cid),
intval($uid) intval($uid)
); );
} }
else { else {
$c = q("select name, url, photo from contact where self = 1 and uid = %d limit 1", $c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
intval($uid) intval($uid)
); );
} }
@ -41,21 +49,16 @@ function common_content(&$a) {
if(! count($c)) if(! count($c))
return; return;
$o .= replace_macros(get_markup_template("section_title.tpl"),array(
'$title' => t('Common Friends')
));
if(! $cid) { if(! $cid) {
if(get_my_url()) { if(get_my_url()) {
$r = q("select id from contact where nurl = '%s' and uid = %d limit 1", $r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1",
dbesc(normalise_link(get_my_url())), dbesc(normalise_link(get_my_url())),
intval($profile_uid) intval($profile_uid)
); );
if(count($r)) if(count($r))
$cid = $r[0]['id']; $cid = $r[0]['id'];
else { else {
$r = q("select id from gcontact where nurl = '%s' limit 1", $r = q("SELECT `id` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
dbesc(normalise_link(get_my_url())) dbesc(normalise_link(get_my_url()))
); );
if(count($r)) if(count($r))
@ -94,19 +97,43 @@ function common_content(&$a) {
return $o; return $o;
} }
$tpl = get_markup_template('common_friends.tpl'); $id = 0;
foreach($r as $rr) { foreach($r as $rr) {
$o .= replace_macros($tpl,array( //get further details of the contact
'$url' => $rr['url'], $contact_details = get_contact_details_by_url($rr['url'], $uid);
'$name' => htmlentities($rr['name']),
'$photo' => $rr['photo'], // $rr[id] is needed to use contact_photo_menu()
'$tags' => '' $rr[id] = $rr[cid];
));
$photo_menu = '';
$photo_menu = contact_photo_menu ($rr);
$entry = array(
'url' => $rr['url'],
'itemurl' => $rr['url'],
'name' => $rr['name'],
'thumb' => proxy_url($rr['photo'], false, PROXY_SIZE_THUMB),
'img_hover' => htmlentities($rr['name']),
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'account_type' => (($contact_details['community']) ? t('Forum') : ''),
'network' => network_to_name($contact_details['network'], $contact_details['url']),
'photo_menu' => $photo_menu,
'id' => ++$id,
);
$entries[] = $entry;
} }
$o .= cleardiv(); $tpl = get_markup_template('viewcontact_template.tpl');
$o .= replace_macros($tpl,array(
'$title' => t('Common Friends'),
'$contacts' => $entries,
));
// $o .= paginate($a); // $o .= paginate($a);
return $o; return $o;
} }

View file

@ -1,13 +0,0 @@
<div class="profile-match-wrapper">
<div class="profile-match-photo">
<a href="{{$url}}">
<img src="{{$photo}}" alt="{{$name}}" width="80" height="80" title="{{$name}} [{{$url}}]" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
<a href="{{$url}}" title="{{$name}}[{{$tags}}]">{{$name}}</a>
</div>
<div class="profile-match-end"></div>
</div>

View file

@ -30,11 +30,16 @@
</div> </div>
<div class="contact-entry-desc"> <div class="contact-entry-desc">
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div> <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >
{{$contact.name}}
{{if $contact.account_type}} <span class="contact-entry-details" id="contact-entry-accounttype-{{$contact.id}}">({{$contact.account_type}})</span>{{/if}}
</div>
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} {{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}} {{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}} {{if $contact.tags}}<div class="contact-entry-details" id="contact-entry-tags-{{$contact.id}}" >{{$contact.tags}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}} {{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
</div> </div>
<div class="contact-entry-end" ></div> <div class="contact-entry-end" ></div>

View file

@ -13,28 +13,32 @@
{{if $contact.photo_menu}} {{if $contact.photo_menu}}
{{*<!-- <span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span>-->*}} {{*<!-- <span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span>-->*}}
<div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}"> <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
<ul> <ul>
{{foreach $contact.photo_menu as $c}} {{foreach $contact.photo_menu as $c}}
{{if $c.2}} {{if $c.2}}
<li><a target="redir" href="{{$c.1}}">{{$c.0}}</a></li> <li><a target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
{{else}} {{else}}
<li><a href="{{$c.1}}">{{$c.0}}</a></li> <li><a href="{{$c.1}}">{{$c.0}}</a></li>
{{/if}} {{/if}}
{{/foreach}} {{/foreach}}
</ul> </ul>
</div> </div>
{{/if}} {{/if}}
</div> </div>
</div> </div>
<div class="contact-entry-desc"> <div class="contact-entry-desc">
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div> <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >
{{$contact.name}}
{{if $contact.account_type}} <span class="contact-entry-details" id="contact-entry-accounttype-{{$contact.id}}">({{$contact.account_type}})</span>{{/if}}
</div>
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} {{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}} {{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}} {{if $contact.tags}}<div class="contact-entry-details" id="contact-entry-tags-{{$contact.id}}" >{{$contact.tags}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}} {{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
</div> </div>
<div class="contact-entry-end" ></div> <div class="contact-entry-end" ></div>

View file

@ -27,11 +27,15 @@
</div> </div>
<div class="contact-entry-desc"> <div class="contact-entry-desc">
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div> <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >
{{$contact.name}}
{{if $contact.account_type}} <span class="contact-entry-details" id="contact-entry-accounttype-{{$contact.id}}">({{$contact.account_type}})</span>{{/if}}
</div>
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} {{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}} {{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}} {{if $contact.tags}}<div class="contact-entry-details" id="contact-entry-tags-{{$contact.id}}" >{{$contact.tags}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}} {{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-network" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
</div> </div>
<div class="contact-entry-end" ></div> <div class="contact-entry-end" ></div>

View file

@ -1583,7 +1583,7 @@ span[id^="showmore-wrap"] {
} }
.contact-name { .contact-name {
font-weight: bold; font-weight: bold;
padding-top: 15px; /* padding-top: 15px; */
} }
.contact-details { .contact-details {
color: #999999; color: #999999;

View file

@ -1583,7 +1583,7 @@ span[id^="showmore-wrap"] {
} }
.contact-name { .contact-name {
font-weight: bold; font-weight: bold;
padding-top: 15px; /* padding-top: 15px; */
} }
.contact-details { .contact-details {
color: #999999; color: #999999;

View file

@ -1583,7 +1583,7 @@ span[id^="showmore-wrap"] {
} }
.contact-name { .contact-name {
font-weight: bold; font-weight: bold;
padding-top: 15px; /* padding-top: 15px; */
} }
.contact-details { .contact-details {
color: #999999; color: #999999;

View file

@ -908,7 +908,7 @@ span[id^="showmore-wrap"] {
img { width: 175px; height: 175px; } img { width: 175px; height: 175px; }
} }
} }
.contact-name { font-weight: bold; padding-top: 15px; } .contact-name { font-weight: bold; /* padding-top: 15px; */}
.contact-details { .contact-details {
color: @Grey3; white-space: nowrap; color: @Grey3; white-space: nowrap;
overflow: hidden; overflow: hidden;

View file

@ -26,11 +26,15 @@
</div> </div>
</div> </div>
<div class="contact-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div> <div class="contact-name" id="contact-entry-name-{{$contact.id}}" >
{{$contact.name}}
{{if $contact.account_type}} <span class="contact-entry-details" id="contact-entry-accounttype-{{$contact.id}}">({{$contact.account_type}})</span>{{/if}}
</div>
{{if $contact.alt_text}}<div class="contact-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} {{if $contact.alt_text}}<div class="contact-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}} {{if $contact.itemurl}}<div class="contact-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}} {{if $contact.tags}}<div class="contact-details" id="contact-entry-tags-{{$contact.id}}" >{{$contact.tags}}</div>{{/if}}
{{if $contact.details}}<div class="contact-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}} {{if $contact.details}}<div class="contact-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
{{if $contact.network}}<div class="contact-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
{{if $contact.connlnk}} {{if $contact.connlnk}}
<div class="contact-entry-connect"><a href="{{$contact.connlnk}}" title="{{$contact.conntxt}}">{{$contact.conntxt}}</a></div> <div class="contact-entry-connect"><a href="{{$contact.connlnk}}" title="{{$contact.conntxt}}">{{$contact.conntxt}}</a></div>

View file

@ -31,11 +31,15 @@
<div class="contact-entry-photo-end" ></div> <div class="contact-entry-photo-end" ></div>
<div class="contact-entry-desc"> <div class="contact-entry-desc">
<div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div> <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >
{{$contact.name}}
{{if $contact.account_type}} <span class="contact-entry-details" id="contact-entry-accounttype-{{$contact.id}}">({{$contact.account_type}})</span>{{/if}}
</div>
{{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}} {{if $contact.alt_text}}<div class="contact-entry-details" id="contact-entry-rel-{{$contact.id}}" >{{$contact.alt_text}}</div>{{/if}}
{{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}} {{if $contact.itemurl}}<div class="contact-entry-details" id="contact-entry-url-{{$contact.id}}" >{{$contact.itemurl}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}} {{if $contact.tags}}<div class="contact-entry-details" id="contact-entry-tags-{{$contact.id}}" >{{$contact.tags}}</div>{{/if}}
{{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}} {{if $contact.details}}<div class="contact-entry-details" id="contact-entry-details-{{$contact.id}}" >{{$contact.details}}</div>{{/if}}
{{if $contact.network}}<div class="contact-entry-details" id="contact-entry-network-{{$contact.id}}" >{{$contact.network}}</div>{{/if}}
</div> </div>