Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
421d484839
15 changed files with 89 additions and 18 deletions
|
@ -3644,9 +3644,13 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function fix_private_photos($s, $uid, $item = null, $cid = 0) {
|
function fix_private_photos($s, $uid, $item = null, $cid = 0) {
|
||||||
|
|
||||||
|
if(get_config('system','disable_embedded'))
|
||||||
|
return $s;
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
logger('fix_private_photos', LOGGER_DEBUG);
|
logger('fix_private_photos: check for photos', LOGGER_DEBUG);
|
||||||
$site = substr($a->get_baseurl(),strpos($a->get_baseurl(),'://'));
|
$site = substr($a->get_baseurl(),strpos($a->get_baseurl(),'://'));
|
||||||
|
|
||||||
$orig_body = $s;
|
$orig_body = $s;
|
||||||
|
|
|
@ -1047,10 +1047,34 @@ function link_compare($a,$b) {
|
||||||
return false;
|
return false;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
// Find any non-embedded images in private items and add redir links to them
|
||||||
|
|
||||||
|
if(! function_exists('redir_private_images')) {
|
||||||
|
function redir_private_images($a, &$item) {
|
||||||
|
|
||||||
|
$matches = false;
|
||||||
|
$cnt = preg_match_all('|\[img\](http[^\[]*?/photo/[a-fA-F0-9]+?(-[0-9]\.[\w]+?)?)\[\/img\]|', $item['body'], $matches, PREG_SET_ORDER);
|
||||||
|
if($cnt) {
|
||||||
|
//logger("redir_private_images: matches = " . print_r($matches, true));
|
||||||
|
foreach($matches as $mtch) {
|
||||||
|
if(strpos($mtch[1], '/redir') !== false)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if((local_user() == $item['uid']) && ($item['private'] != 0) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN)) {
|
||||||
|
//logger("redir_private_images: redir");
|
||||||
|
$img_url = $a->get_baseurl() . '/redir?f=1&quiet=1&url=' . $mtch[1] . '&conurl=' . $item['author-link'];
|
||||||
|
$item['body'] = str_replace($mtch[0], "[img]".$img_url."[/img]", $item['body']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
|
||||||
// Given an item array, convert the body element from bbcode to html and add smilie icons.
|
// Given an item array, convert the body element from bbcode to html and add smilie icons.
|
||||||
// If attach is true, also add icons for item attachments
|
// If attach is true, also add icons for item attachments
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('prepare_body')) {
|
if(! function_exists('prepare_body')) {
|
||||||
function prepare_body($item,$attach = false) {
|
function prepare_body($item,$attach = false) {
|
||||||
|
|
||||||
|
@ -1066,14 +1090,19 @@ function prepare_body($item,$attach = false) {
|
||||||
$s = file_get_contents($cachefile);
|
$s = file_get_contents($cachefile);
|
||||||
$a->save_timestamp($stamp1, "file");
|
$a->save_timestamp($stamp1, "file");
|
||||||
} else {
|
} else {
|
||||||
|
redir_private_images($a, $item);
|
||||||
$s = prepare_text($item['body']);
|
$s = prepare_text($item['body']);
|
||||||
|
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
file_put_contents($cachefile, $s);
|
file_put_contents($cachefile, $s);
|
||||||
$a->save_timestamp($stamp1, "file");
|
$a->save_timestamp($stamp1, "file");
|
||||||
|
|
||||||
logger('prepare_body: put item '.$item["id"].' into cachefile '.$cachefile);
|
logger('prepare_body: put item '.$item["id"].' into cachefile '.$cachefile);
|
||||||
}
|
}
|
||||||
} else
|
} else {
|
||||||
|
redir_private_images($a, $item);
|
||||||
$s = prepare_text($item['body']);
|
$s = prepare_text($item['body']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$prep_arr = array('item' => $item, 'html' => $s);
|
$prep_arr = array('item' => $item, 'html' => $s);
|
||||||
|
|
|
@ -3040,6 +3040,10 @@ class HTML5_TreeBuilder {
|
||||||
|
|
||||||
private function insertElement($token, $append = true) {
|
private function insertElement($token, $append = true) {
|
||||||
$el = $this->dom->createElementNS(self::NS_HTML, $token['name']);
|
$el = $this->dom->createElementNS(self::NS_HTML, $token['name']);
|
||||||
|
if ($el == false) {
|
||||||
|
logger('insertElement(): ignoring invalid token='.$token['name']);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($token['attr'])) {
|
if (!empty($token['attr'])) {
|
||||||
foreach($token['attr'] as $attr) {
|
foreach($token['attr'] as $attr) {
|
||||||
|
|
|
@ -257,6 +257,7 @@ function admin_page_site_post(&$a){
|
||||||
$newuser_private = ((x($_POST,'newuser_private')) ? True : False);
|
$newuser_private = ((x($_POST,'newuser_private')) ? True : False);
|
||||||
$enotify_no_content = ((x($_POST,'enotify_no_content')) ? True : False);
|
$enotify_no_content = ((x($_POST,'enotify_no_content')) ? True : False);
|
||||||
$private_addons = ((x($_POST,'private_addons')) ? True : False);
|
$private_addons = ((x($_POST,'private_addons')) ? True : False);
|
||||||
|
$disable_embedded = ((x($_POST,'disable_embedded')) ? True : False);
|
||||||
|
|
||||||
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
|
$no_multi_reg = ((x($_POST,'no_multi_reg')) ? True : False);
|
||||||
$no_openid = !((x($_POST,'no_openid')) ? True : False);
|
$no_openid = !((x($_POST,'no_openid')) ? True : False);
|
||||||
|
@ -374,6 +375,7 @@ function admin_page_site_post(&$a){
|
||||||
set_config('system','thread_allow', $thread_allow);
|
set_config('system','thread_allow', $thread_allow);
|
||||||
set_config('system','newuser_private', $newuser_private);
|
set_config('system','newuser_private', $newuser_private);
|
||||||
set_config('system','enotify_no_content', $enotify_no_content);
|
set_config('system','enotify_no_content', $enotify_no_content);
|
||||||
|
set_config('system','disable_embedded', $disable_embedded);
|
||||||
|
|
||||||
set_config('system','block_extended_register', $no_multi_reg);
|
set_config('system','block_extended_register', $no_multi_reg);
|
||||||
set_config('system','no_openid', $no_openid);
|
set_config('system','no_openid', $no_openid);
|
||||||
|
@ -510,6 +512,7 @@ function admin_page_site(&$a) {
|
||||||
'$newuser_private' => array('newuser_private', t("Private posts by default for new users"), get_config('system','newuser_private'), t("Set default post permissions for all new members to the default privacy group rather than public.")),
|
'$newuser_private' => array('newuser_private', t("Private posts by default for new users"), get_config('system','newuser_private'), t("Set default post permissions for all new members to the default privacy group rather than public.")),
|
||||||
'$enotify_no_content' => array('enotify_no_content', t("Don't include post content in email notifications"), get_config('system','enotify_no_content'), t("Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure.")),
|
'$enotify_no_content' => array('enotify_no_content', t("Don't include post content in email notifications"), get_config('system','enotify_no_content'), t("Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure.")),
|
||||||
'$private_addons' => array('private_addons', t("Disallow public access to addons listed in the apps menu."), get_config('config','private_addons'), t("Checking this box will restrict addons listed in the apps menu to members only.")),
|
'$private_addons' => array('private_addons', t("Disallow public access to addons listed in the apps menu."), get_config('config','private_addons'), t("Checking this box will restrict addons listed in the apps menu to members only.")),
|
||||||
|
'$disable_embedded' => array('disable_embedded', t("Don't embed private images in posts"), get_config('system','disable_embedded'), t("Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos won't be able to see them unless they first visit the owner's profile page, or unless they have the redir_private_img plugin enabled.")),
|
||||||
|
|
||||||
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
|
'$no_multi_reg' => array('no_multi_reg', t("Block multiple registrations"), get_config('system','block_extended_register'), t("Disallow users to register additional accounts for use as pages.")),
|
||||||
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
|
'$no_openid' => array('no_openid', t("OpenID support"), !get_config('system','no_openid'), t("OpenID support for registration and logins.")),
|
||||||
|
|
|
@ -309,6 +309,7 @@ function check_add(&$checks, $title, $status, $required, $help){
|
||||||
}
|
}
|
||||||
|
|
||||||
function check_php(&$phpath, &$checks) {
|
function check_php(&$phpath, &$checks) {
|
||||||
|
$passed = $passed2 = $passed3 = false;
|
||||||
if (strlen($phpath)){
|
if (strlen($phpath)){
|
||||||
$passed = file_exists($phpath);
|
$passed = file_exists($phpath);
|
||||||
} else {
|
} else {
|
||||||
|
@ -330,16 +331,30 @@ function check_php(&$phpath, &$checks) {
|
||||||
check_add($checks, t('Command line PHP').($passed?" (<tt>$phpath</tt>)":""), $passed, false, $help);
|
check_add($checks, t('Command line PHP').($passed?" (<tt>$phpath</tt>)":""), $passed, false, $help);
|
||||||
|
|
||||||
if($passed) {
|
if($passed) {
|
||||||
|
$cmd = "$phpath -v";
|
||||||
|
$result = trim(shell_exec($cmd));
|
||||||
|
$passed2 = ( strpos($result, "(cli)") !== false );
|
||||||
|
list($result) = explode("\n", $result);
|
||||||
|
$help = "";
|
||||||
|
if(!$passed2) {
|
||||||
|
$help .= t('PHP executable is not the php cli binary (could be cgi-fgci version)'). EOL;
|
||||||
|
$help .= t('Found PHP version: ')."<tt>$result</tt>";
|
||||||
|
}
|
||||||
|
check_add($checks, t('PHP cli binary'), $passed2, true, $help);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if($passed2) {
|
||||||
$str = autoname(8);
|
$str = autoname(8);
|
||||||
$cmd = "$phpath testargs.php $str";
|
$cmd = "$phpath testargs.php $str";
|
||||||
$result = trim(shell_exec($cmd));
|
$result = trim(shell_exec($cmd));
|
||||||
$passed2 = $result == $str;
|
$passed3 = $result == $str;
|
||||||
$help = "";
|
$help = "";
|
||||||
if(!$passed2) {
|
if(!$passed3) {
|
||||||
$help .= t('The command line version of PHP on your system does not have "register_argc_argv" enabled.'). EOL;
|
$help .= t('The command line version of PHP on your system does not have "register_argc_argv" enabled.'). EOL;
|
||||||
$help .= t('This is required for message delivery to work.');
|
$help .= t('This is required for message delivery to work.');
|
||||||
}
|
}
|
||||||
check_add($checks, t('PHP register_argc_argv'), $passed, true, $help);
|
check_add($checks, t('PHP register_argc_argv'), $passed3, true, $help);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -233,7 +233,7 @@ function notifications_content(&$a) {
|
||||||
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`,
|
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`,
|
||||||
`pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
|
`pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
|
||||||
FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
|
FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
|
||||||
WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND `pitem`.`parent` != 0
|
WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND `pitem`.`parent` != 0 AND
|
||||||
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" ,
|
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" ,
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
|
@ -86,7 +86,14 @@ class Item extends BaseObject {
|
||||||
$a = $this->get_app();
|
$a = $this->get_app();
|
||||||
|
|
||||||
$item = $this->get_data();
|
$item = $this->get_data();
|
||||||
|
$edited = false;
|
||||||
|
if (strcmp($item['created'], $item['edited'])<>0) {
|
||||||
|
$edited = array(
|
||||||
|
'label' => t('This entry was edited'),
|
||||||
|
'date' => datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r'),
|
||||||
|
'relative' => relative_date($item['edited'])
|
||||||
|
);
|
||||||
|
}
|
||||||
$commentww = '';
|
$commentww = '';
|
||||||
$sparkle = '';
|
$sparkle = '';
|
||||||
$buttons = '';
|
$buttons = '';
|
||||||
|
@ -331,7 +338,8 @@ class Item extends BaseObject {
|
||||||
'previewing' => ($conv->is_preview() ? ' preview ' : ''),
|
'previewing' => ($conv->is_preview() ? ' preview ' : ''),
|
||||||
'wait' => t('Please wait'),
|
'wait' => t('Please wait'),
|
||||||
'thread_level' => $thread_level,
|
'thread_level' => $thread_level,
|
||||||
'postopts' => $langstr
|
'postopts' => $langstr,
|
||||||
|
'edited' => $edited
|
||||||
);
|
);
|
||||||
|
|
||||||
$arr = array('item' => $item, 'output' => $tmp_item);
|
$arr = array('item' => $item, 'output' => $tmp_item);
|
||||||
|
|
|
@ -86,6 +86,7 @@
|
||||||
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$enotify_no_content }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$enotify_no_content }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$private_addons }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$private_addons }}{{ endinc }}
|
||||||
|
{{ inc field_checkbox.tpl with $field=$disable_embedded }}{{ endinc }}
|
||||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||||
|
|
||||||
<h3>$advanced</h3>
|
<h3>$advanced</h3>
|
||||||
|
|
|
@ -91,6 +91,7 @@
|
||||||
{{include file="field_checkbox.tpl" field=$newuser_private}}
|
{{include file="field_checkbox.tpl" field=$newuser_private}}
|
||||||
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
||||||
{{include file="field_checkbox.tpl" field=$private_addons}}
|
{{include file="field_checkbox.tpl" field=$private_addons}}
|
||||||
|
{{include file="field_checkbox.tpl" field=$disable_embedded}}
|
||||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||||
|
|
||||||
<h3>{{$advanced}}</h3>
|
<h3>{{$advanced}}</h3>
|
||||||
|
|
|
@ -42,7 +42,8 @@
|
||||||
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$enotify_no_content }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$enotify_no_content }}{{ endinc }}
|
||||||
|
{{ inc field_checkbox.tpl with $field=$private_addons }}{{ endinc }}
|
||||||
|
{{ inc field_checkbox.tpl with $field=$disable_embedded }}{{ endinc }}
|
||||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||||
|
|
||||||
<h3>$advanced</h3>
|
<h3>$advanced</h3>
|
||||||
|
|
|
@ -47,7 +47,8 @@
|
||||||
{{include file="field_checkbox.tpl" field=$thread_allow}}
|
{{include file="field_checkbox.tpl" field=$thread_allow}}
|
||||||
{{include file="field_checkbox.tpl" field=$newuser_private}}
|
{{include file="field_checkbox.tpl" field=$newuser_private}}
|
||||||
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
||||||
|
{{include file="field_checkbox.tpl" field=$private_addons}}
|
||||||
|
{{include file="field_checkbox.tpl" field=$disable_embedded}}
|
||||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||||
|
|
||||||
<h3>{{$advanced}}</h3>
|
<h3>{{$advanced}}</h3>
|
||||||
|
|
|
@ -42,7 +42,8 @@
|
||||||
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$enotify_no_content }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$enotify_no_content }}{{ endinc }}
|
||||||
|
{{ inc field_checkbox.tpl with $field=$private_addons }}{{ endinc }}
|
||||||
|
{{ inc field_checkbox.tpl with $field=$disable_embedded }}{{ endinc }}
|
||||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||||
|
|
||||||
<h3>$advanced</h3>
|
<h3>$advanced</h3>
|
||||||
|
|
|
@ -47,7 +47,8 @@
|
||||||
{{include file="field_checkbox.tpl" field=$thread_allow}}
|
{{include file="field_checkbox.tpl" field=$thread_allow}}
|
||||||
{{include file="field_checkbox.tpl" field=$newuser_private}}
|
{{include file="field_checkbox.tpl" field=$newuser_private}}
|
||||||
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
||||||
|
{{include file="field_checkbox.tpl" field=$private_addons}}
|
||||||
|
{{include file="field_checkbox.tpl" field=$disable_embedded}}
|
||||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||||
|
|
||||||
<h3>{{$advanced}}</h3>
|
<h3>{{$advanced}}</h3>
|
||||||
|
|
|
@ -44,7 +44,8 @@
|
||||||
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$thread_allow }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$newuser_private }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$enotify_no_content }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$enotify_no_content }}{{ endinc }}
|
||||||
|
{{ inc field_checkbox.tpl with $field=$private_addons }}{{ endinc }}
|
||||||
|
{{ inc field_checkbox.tpl with $field=$disable_embedded }}{{ endinc }}
|
||||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||||
|
|
||||||
<h3>$advanced</h3>
|
<h3>$advanced</h3>
|
||||||
|
|
|
@ -49,7 +49,8 @@
|
||||||
{{include file="field_checkbox.tpl" field=$thread_allow}}
|
{{include file="field_checkbox.tpl" field=$thread_allow}}
|
||||||
{{include file="field_checkbox.tpl" field=$newuser_private}}
|
{{include file="field_checkbox.tpl" field=$newuser_private}}
|
||||||
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
{{include file="field_checkbox.tpl" field=$enotify_no_content}}
|
||||||
|
{{include file="field_checkbox.tpl" field=$private_addons}}
|
||||||
|
{{include file="field_checkbox.tpl" field=$disable_embedded}}
|
||||||
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
|
||||||
|
|
||||||
<h3>{{$advanced}}</h3>
|
<h3>{{$advanced}}</h3>
|
||||||
|
|
Loading…
Reference in a new issue