comanchify all the simple cases - those that only load a profile. Rework permission checks for the profile sidebar so that it is all done internally. Remove crepair which we aren't using.

This commit is contained in:
friendica 2013-12-11 14:54:36 -08:00
parent 652959678f
commit 40e2900326
16 changed files with 74 additions and 325 deletions

View file

@ -655,6 +655,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true) {
}
}
if((x($profile,'address') == 1)
|| (x($profile,'locality') == 1)
|| (x($profile,'region') == 1)
@ -666,6 +667,10 @@ function profile_sidebar($profile, $block = 0, $show_connect = true) {
$marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
$homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
if(! perm_is_allowed($profile['uid'],((is_array($observer)) ? $observer['xchan_hash'] : ''),'view_profile')) {
$block = true;
}
if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
$location = $pdesc = $gender = $marital = $homepage = False;
}
@ -688,7 +693,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true) {
$channel_menu = menu_render($m);
}
$menublock = get_pconfig($profile['uid'],'system','channel_menublock');
if ($menublock) {
if ($menublock && (! $block)) {
require_once('include/comanche.php');
$channel_menu .= comanche_block($menublock);
}

View file

@ -21,14 +21,6 @@ function common_init(&$a) {
}
function common_aside(&$a) {
if(! $a->profile['profile_uid'])
return;
profile_create_sidebar($a);
}
function common_content(&$a) {
$o = '';

View file

@ -1,171 +0,0 @@
<?php
function crepair_init(&$a) {
if(! local_user())
return;
$contact_id = 0;
if(($a->argc == 2) && intval($a->argv[1])) {
$contact_id = intval($a->argv[1]);
$r = q("SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1",
intval(local_user()),
intval($contact_id)
);
if(! count($r)) {
$contact_id = 0;
}
}
if(! x($a->page,'aside'))
$a->page['aside'] = '';
if($contact_id) {
$a->data['contact'] = $r[0];
$o .= '<div class="vcard">';
$o .= '<div class="fn">' . $a->data['contact']['name'] . '</div>';
$o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->data['contact']['photo'] . '" alt="' . $a->data['contact']['name'] . '" /></div>';
$o .= '</div>';
$a->page['aside'] .= $o;
}
}
function crepair_post(&$a) {
if(! local_user())
return;
$cid = (($a->argc > 1) ? intval($a->argv[1]) : 0);
if($cid) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($cid),
intval(local_user())
);
}
if(! count($r))
return;
$contact = $r[0];
$name = ((x($_POST,'name')) ? $_POST['name'] : $contact['name']);
$nick = ((x($_POST,'nick')) ? $_POST['nick'] : '');
$url = ((x($_POST,'url')) ? $_POST['url'] : '');
$request = ((x($_POST,'request')) ? $_POST['request'] : '');
$confirm = ((x($_POST,'confirm')) ? $_POST['confirm'] : '');
$notify = ((x($_POST,'notify')) ? $_POST['notify'] : '');
$poll = ((x($_POST,'poll')) ? $_POST['poll'] : '');
$attag = ((x($_POST,'attag')) ? $_POST['attag'] : '');
$photo = ((x($_POST,'photo')) ? $_POST['photo'] : '');
$r = q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `url` = '%s', `request` = '%s', `confirm` = '%s', `notify` = '%s', `poll` = '%s', `attag` = '%s'
WHERE `id` = %d AND `uid` = %d LIMIT 1",
dbesc($name),
dbesc($nick),
dbesc($url),
dbesc($request),
dbesc($confirm),
dbesc($notify),
dbesc($poll),
dbesc($attag),
intval($contact['id']),
local_user()
);
if($photo) {
logger('mod-crepair: updating photo from ' . $photo);
require_once('include/photo/photo_driver.php');
$photos = import_profile_photo($photo,local_user(),$contact['id']);
$x = q("UPDATE `contact` SET `photo` = '%s',
`thumb` = '%s',
`micro` = '%s',
`name_date` = '%s',
`uri_date` = '%s',
`avatar_date` = '%s'
WHERE `id` = %d LIMIT 1
",
dbesc($photos[0]),
dbesc($photos[1]),
dbesc($photos[2]),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($contact['id'])
);
}
if($r)
info( t('Contact settings applied.') . EOL);
else
notice( t('Contact update failed.') . EOL);
return;
}
function crepair_content(&$a) {
if(! local_user()) {
notice( t('Permission denied.') . EOL);
return;
}
$cid = (($a->argc > 1) ? intval($a->argv[1]) : 0);
if($cid) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($cid),
intval(local_user())
);
}
if(! count($r)) {
notice( t('Contact not found.') . EOL);
return;
}
$contact = $r[0];
$msg1 = t('Repair Contact Settings');
$msg2 = t('<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working.');
$msg3 = t('Please use your browser \'Back\' button <strong>now</strong> if you are uncertain what to do on this page.');
$o .= '<h2>' . $msg1 . '</h2>';
$o .= '<div class="error-message">' . $msg2 . EOL . EOL. $msg3 . '</div>';
$o .= EOL . '<a href="contacts/' . $cid . '">' . t('Return to contact editor') . '</a>' . EOL;
$tpl = get_markup_template('crepair.tpl');
$o .= replace_macros($tpl, array(
'$label_name' => t('Name'),
'$label_nick' => t('Account Nickname'),
'$label_attag' => t('@Tagname - overrides Name/Nickname'),
'$label_url' => t('Account URL'),
'$label_request' => t('Friend Request URL'),
'$label_confirm' => t('Friend Confirm URL'),
'$label_notify' => t('Notification Endpoint URL'),
'$label_poll' => t('Poll/Feed URL'),
'$label_photo' => t('New photo from this URL'),
'$contact_name' => $contact['name'],
'$contact_nick' => $contact['nick'],
'$contact_id' => $contact['id'],
'$contact_url' => $contact['url'],
'$request' => $contact['request'],
'$confirm' => $contact['confirm'],
'$notify' => $contact['notify'],
'$poll' => $contact['poll'],
'$contact_attag' => $contact['attag'],
'$lbl_submit' => t('Submit')
));
return $o;
}

View file

@ -1,53 +0,0 @@
<?php
function hcard_init(&$a) {
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
if($a->argc > 1)
$which = $a->argv[1];
else {
notice( t('No profile') . EOL );
$a->error = 404;
return;
}
$profile = 0;
if((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) {
$which = $a->user['nickname'];
$profile = $a->argv[1];
}
profile_load($a,$which,$profile);
if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
$a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
}
if(x($a->profile,'openidserver'))
$a->page['htmlhead'] .= '<link rel="openid.server" href="' . $a->profile['openidserver'] . '" />' . "\r\n";
if(x($a->profile,'openid')) {
$delegate = ((strstr($a->profile['openid'],'://')) ? $a->profile['openid'] : 'http://' . $a->profile['openid']);
$a->page['htmlhead'] .= '<link rel="openid.delegate" href="' . $delegate . '" />' . "\r\n";
}
if(! $blocked) {
$keywords = ((x($a->profile,'keywords')) ? $a->profile['keywords'] : '');
$keywords = str_replace(array(',',' ',',,'),array(' ',',',','),$keywords);
if(strlen($keywords))
$a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\r\n" ;
}
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/dfrn_poll/' . $which .'" />' . "\r\n" ;
$uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : ''));
$a->page['htmlhead'] .= '<link rel="lrdd" type="application/xrd+xml" href="' . $a->get_baseurl() . '/xrd/?uri=' . $uri . '" />' . "\r\n";
header('Link: <' . $a->get_baseurl() . '/xrd/?uri=' . $uri . '>; rel="lrdd"; type="application/xrd+xml"', false);
$dfrn_pages = array('request', 'confirm', 'notify', 'poll');
foreach($dfrn_pages as $dfrn)
$a->page['htmlhead'] .= "<link rel=\"dfrn-{$dfrn}\" href=\"".$a->get_baseurl()."/dfrn_{$dfrn}/{$which}\" />\r\n";
}
function hcard_aside(&$a) {
profile_create_sidebar($a);
}

View file

@ -14,16 +14,6 @@ function profile_photo_init(&$a) {
}
function profile_photo_aside(&$a) {
if(! local_user()) {
return;
}
profile_create_sidebar($a);
}
function profile_photo_post(&$a) {
if(! local_user()) {

View file

@ -146,17 +146,6 @@ function profiles_init(&$a) {
}
}
function profiles_aside(&$a) {
if(! local_user()) {
return;
}
if((argc() > 1) && (intval(argv(1)))) {
profile_create_sidebar($a);
}
}
function profiles_post(&$a) {
if(! local_user()) {

View file

@ -13,15 +13,6 @@ function profperm_init(&$a) {
}
function profperm_aside(&$a) {
if(! local_user())
return;
profile_create_sidebar($a);
}
function profperm_content(&$a) {
if(! local_user()) {

View file

@ -11,17 +11,6 @@ function viewconnections_init(&$a) {
profile_load($a,argv(1));
}
function viewconnections_aside(&$a) {
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
return;
}
profile_create_sidebar($a);
}
function viewconnections_content(&$a) {
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {

View file

@ -1 +1 @@
2013-12-10.523
2013-12-11.524

View file

@ -38,56 +38,6 @@
margin-bottom: 20px;
}
.contact-entry-wrapper {
float: left;
width: 120px;
height: 120px;
padding: 10px;
}
#contacts-search {
font-size: 1em;
width: 300px;
}
#contacts-search-end {
margin-bottom: 10px;
}
.contact-entry-photo img {
border: none;
}
.contact-entry-photo-end {
clear: both;
}
.contact-entry-name {
float: left;
margin-left: 0px;
margin-right: 10px;
width: 120px;
overflow: hidden;
}
.contact-entry-edit-links {
margin-top: 6px;
margin-left: 10px;
width: 16px;
}
.contact-entry-nav-wrapper {
float: left;
margin-left: 10px;
}
.contact-entry-edit-links img {
border: none;
margin-right: 15px;
}
.contact-entry-photo {
float: left;
position: relative;
}
.contact-entry-end {
clear: both;
}
#contact-edit-wrapper {

3
view/pdl/mod_common.pdl Normal file
View file

@ -0,0 +1,3 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]

View file

@ -0,0 +1,3 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]

View file

@ -0,0 +1,3 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]

View file

@ -0,0 +1,3 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]

View file

@ -0,0 +1,3 @@
[region=aside]
[widget=fullprofile][/widget]
[/region]

View file

@ -2549,3 +2549,55 @@ img.mail-list-sender-photo {
#note-save { margin-top: 10px; }
/* need to put these back in the theme for now - used in more than one module */
.contact-entry-wrapper {
float: left;
width: 120px;
height: 120px;
padding: 10px;
}
#contacts-search {
font-size: 1em;
width: 300px;
}
#contacts-search-end {
margin-bottom: 10px;
}
.contact-entry-photo img {
border: none;
}
.contact-entry-photo-end {
clear: both;
}
.contact-entry-name {
float: left;
margin-left: 0px;
margin-right: 10px;
width: 120px;
overflow: hidden;
}
.contact-entry-edit-links {
margin-top: 6px;
margin-left: 10px;
width: 16px;
}
.contact-entry-nav-wrapper {
float: left;
margin-left: 10px;
}
.contact-entry-edit-links img {
border: none;
margin-right: 15px;
}
.contact-entry-photo {
float: left;
position: relative;
}
.contact-entry-end {
clear: both;
}