added spaces + some curly braces + some usage of dbm::is_result()

Signed-off-by: Roland Haeder <roland@mxchange.org>
This commit is contained in:
Roland Häder 2017-04-04 19:48:25 +02:00 committed by Roland Häder
parent 347803fd5c
commit 635b26353c
No known key found for this signature in database
GPG key ID: B72F8185C6C7BD78
8 changed files with 329 additions and 265 deletions

View file

@ -6,13 +6,13 @@ function auto_redir(App $a, $contact_nick) {
// prevent looping // prevent looping
if(x($_REQUEST,'redir') && intval($_REQUEST['redir'])) if (x($_REQUEST,'redir') && intval($_REQUEST['redir']))
return; return;
if((! $contact_nick) || ($contact_nick === $a->user['nickname'])) if ((! $contact_nick) || ($contact_nick === $a->user['nickname']))
return; return;
if(local_user()) { if (local_user()) {
// We need to find out if $contact_nick is a user on this hub, and if so, if I // We need to find out if $contact_nick is a user on this hub, and if so, if I
// am a contact of that user. However, that user may have other contacts with the // am a contact of that user. However, that user may have other contacts with the
@ -24,7 +24,7 @@ function auto_redir(App $a, $contact_nick) {
$baseurl = App::get_baseurl(); $baseurl = App::get_baseurl();
$domain_st = strpos($baseurl, "://"); $domain_st = strpos($baseurl, "://");
if($domain_st === false) if ($domain_st === false)
return; return;
$baseurl = substr($baseurl, $domain_st + 3); $baseurl = substr($baseurl, $domain_st + 3);
$nurl = normalise_link($baseurl); $nurl = normalise_link($baseurl);
@ -58,11 +58,11 @@ function auto_redir(App $a, $contact_nick) {
$dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']); $dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']);
if($r[0]['duplex'] && $r[0]['issued-id']) { if ($r[0]['duplex'] && $r[0]['issued-id']) {
$orig_id = $r[0]['issued-id']; $orig_id = $r[0]['issued-id'];
$dfrn_id = '1:' . $orig_id; $dfrn_id = '1:' . $orig_id;
} }
if($r[0]['duplex'] && $r[0]['dfrn-id']) { if ($r[0]['duplex'] && $r[0]['dfrn-id']) {
$orig_id = $r[0]['dfrn-id']; $orig_id = $r[0]['dfrn-id'];
$dfrn_id = '0:' . $orig_id; $dfrn_id = '0:' . $orig_id;
} }
@ -70,7 +70,7 @@ function auto_redir(App $a, $contact_nick) {
// ensure that we've got a valid ID. There may be some edge cases with forums and non-duplex mode // ensure that we've got a valid ID. There may be some edge cases with forums and non-duplex mode
// that may have triggered some of the "went to {profile/intro} and got an RSS feed" issues // that may have triggered some of the "went to {profile/intro} and got an RSS feed" issues
if(strlen($dfrn_id) < 3) if (strlen($dfrn_id) < 3)
return; return;
$sec = random_string(); $sec = random_string();

View file

@ -170,11 +170,14 @@ function slapper($owner, $url, $slap) {
} }
logger('slapper for '.$url.' returned ' . $return_code); logger('slapper for '.$url.' returned ' . $return_code);
if (! $return_code) { if (! $return_code) {
return(-1); return -1;
} }
if (($return_code == 503) && (stristr($a->get_curl_headers(), 'retry-after'))) { if (($return_code == 503) && (stristr($a->get_curl_headers(), 'retry-after'))) {
return(-1); return -1;
} }
return ((($return_code >= 200) && ($return_code < 300)) ? 0 : 1); return ((($return_code >= 200) && ($return_code < 300)) ? 0 : 1);
} }

View file

@ -56,58 +56,65 @@ function authenticate_success($user_record, $login_initial = false, $interactive
$a->user = $user_record; $a->user = $user_record;
if($interactive) { if ($interactive) {
if ($a->user['login_date'] <= NULL_DATE) { if ($a->user['login_date'] <= NULL_DATE) {
$_SESSION['return_url'] = 'profile_photo/new'; $_SESSION['return_url'] = 'profile_photo/new';
$a->module = 'profile_photo'; $a->module = 'profile_photo';
info( t("Welcome ") . $a->user['username'] . EOL); info( t("Welcome ") . $a->user['username'] . EOL);
info( t('Please upload a profile photo.') . EOL); info( t('Please upload a profile photo.') . EOL);
} } else {
else
info( t("Welcome back ") . $a->user['username'] . EOL); info( t("Welcome back ") . $a->user['username'] . EOL);
} }
}
$member_since = strtotime($a->user['register_date']); $member_since = strtotime($a->user['register_date']);
if(time() < ($member_since + ( 60 * 60 * 24 * 14))) if (time() < ($member_since + ( 60 * 60 * 24 * 14))) {
$_SESSION['new_member'] = true; $_SESSION['new_member'] = true;
else } else {
$_SESSION['new_member'] = false; $_SESSION['new_member'] = false;
if(strlen($a->user['timezone'])) { }
if (strlen($a->user['timezone'])) {
date_default_timezone_set($a->user['timezone']); date_default_timezone_set($a->user['timezone']);
$a->timezone = $a->user['timezone']; $a->timezone = $a->user['timezone'];
} }
$master_record = $a->user; $master_record = $a->user;
if((x($_SESSION,'submanage')) && intval($_SESSION['submanage'])) { if ((x($_SESSION,'submanage')) && intval($_SESSION['submanage'])) {
$r = q("select * from user where uid = %d limit 1", $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
intval($_SESSION['submanage']) intval($_SESSION['submanage'])
); );
if (dbm::is_result($r)) if (dbm::is_result($r)) {
$master_record = $r[0]; $master_record = $r[0];
} }
}
$r = q("SELECT `uid`,`username`,`nickname` FROM `user` WHERE `password` = '%s' AND `email` = '%s' AND `account_removed` = 0 ", $r = q("SELECT `uid`,`username`,`nickname` FROM `user` WHERE `password` = '%s' AND `email` = '%s' AND `account_removed` = 0 ",
dbesc($master_record['password']), dbesc($master_record['password']),
dbesc($master_record['email']) dbesc($master_record['email'])
); );
if (dbm::is_result($r)) if (dbm::is_result($r)) {
$a->identities = $r; $a->identities = $r;
else } else {
$a->identities = array(); $a->identities = array();
}
$r = q("select `user`.`uid`, `user`.`username`, `user`.`nickname` $r = q("SELECT `user`.`uid`, `user`.`username`, `user`.`nickname`
from manage INNER JOIN user on manage.mid = user.uid where `user`.`account_removed` = 0 FROM `manage`
and `manage`.`uid` = %d", INNER JOIN `user` ON `manage`.`mid` = `user`.`uid`
WHERE `user`.`account_removed` = 0 AND `manage`.`uid` = %d",
intval($master_record['uid']) intval($master_record['uid'])
); );
if (dbm::is_result($r)) if (dbm::is_result($r)) {
$a->identities = array_merge($a->identities,$r); $a->identities = array_merge($a->identities,$r);
}
if($login_initial) if ($login_initial) {
logger('auth_identities: ' . print_r($a->identities,true), LOGGER_DEBUG); logger('auth_identities: ' . print_r($a->identities,true), LOGGER_DEBUG);
if($login_refresh) }
if ($login_refresh) {
logger('auth_identities refresh: ' . print_r($a->identities,true), LOGGER_DEBUG); logger('auth_identities refresh: ' . print_r($a->identities,true), LOGGER_DEBUG);
}
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1", $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
intval($_SESSION['uid'])); intval($_SESSION['uid']));
@ -119,7 +126,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive
header('X-Account-Management-Status: active; name="' . $a->user['username'] . '"; id="' . $a->user['nickname'] .'"'); header('X-Account-Management-Status: active; name="' . $a->user['username'] . '"; id="' . $a->user['nickname'] .'"');
if($login_initial || $login_refresh) { if ($login_initial || $login_refresh) {
q("UPDATE `user` SET `login_date` = '%s' WHERE `uid` = %d", q("UPDATE `user` SET `login_date` = '%s' WHERE `uid` = %d",
dbesc(datetime_convert()), dbesc(datetime_convert()),
@ -249,7 +256,7 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
* Profile owner - everything is visible * Profile owner - everything is visible
*/ */
if(($local_user) && ($local_user == $owner_id)) { if (($local_user) && ($local_user == $owner_id)) {
$sql = ''; $sql = '';
} }
@ -261,9 +268,9 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
* done this and passed the groups into this function. * done this and passed the groups into this function.
*/ */
elseif($remote_user) { elseif ($remote_user) {
if(! $remote_verified) { if (! $remote_verified) {
$r = q("SELECT id FROM contact WHERE id = %d AND uid = %d AND blocked = 0 LIMIT 1", $r = q("SELECT id FROM contact WHERE id = %d AND uid = %d AND blocked = 0 LIMIT 1",
intval($remote_user), intval($remote_user),
intval($owner_id) intval($owner_id)
@ -273,12 +280,12 @@ function permissions_sql($owner_id,$remote_verified = false,$groups = null) {
$groups = init_groups_visitor($remote_user); $groups = init_groups_visitor($remote_user);
} }
} }
if($remote_verified) { if ($remote_verified) {
$gs = '<<>>'; // should be impossible to match $gs = '<<>>'; // should be impossible to match
if(is_array($groups) && count($groups)) { if (is_array($groups) && count($groups)) {
foreach($groups as $g) foreach ($groups as $g)
$gs .= '|<' . intval($g) . '>'; $gs .= '|<' . intval($g) . '>';
} }
@ -331,7 +338,7 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
* Profile owner - everything is visible * Profile owner - everything is visible
*/ */
if($local_user && ($local_user == $owner_id)) { if ($local_user && ($local_user == $owner_id)) {
$sql = ''; $sql = '';
} }
@ -343,9 +350,9 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
* done this and passed the groups into this function. * done this and passed the groups into this function.
*/ */
elseif($remote_user) { elseif ($remote_user) {
if(! $remote_verified) { if (! $remote_verified) {
$r = q("SELECT id FROM contact WHERE id = %d AND uid = %d AND blocked = 0 LIMIT 1", $r = q("SELECT id FROM contact WHERE id = %d AND uid = %d AND blocked = 0 LIMIT 1",
intval($remote_user), intval($remote_user),
intval($owner_id) intval($owner_id)
@ -355,12 +362,12 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
$groups = init_groups_visitor($remote_user); $groups = init_groups_visitor($remote_user);
} }
} }
if($remote_verified) { if ($remote_verified) {
$gs = '<<>>'; // should be impossible to match $gs = '<<>>'; // should be impossible to match
if(is_array($groups) && count($groups)) { if (is_array($groups) && count($groups)) {
foreach($groups as $g) foreach ($groups as $g)
$gs .= '|<' . intval($g) . '>'; $gs .= '|<' . intval($g) . '>';
} }
@ -454,7 +461,7 @@ function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'f
// DFRN contact. They are *not* neccessarily unique across the entire site. // DFRN contact. They are *not* neccessarily unique across the entire site.
if(! function_exists('init_groups_visitor')) { if (! function_exists('init_groups_visitor')) {
function init_groups_visitor($contact_id) { function init_groups_visitor($contact_id) {
$groups = array(); $groups = array();
$r = q("SELECT `gid` FROM `group_member` $r = q("SELECT `gid` FROM `group_member`
@ -462,9 +469,8 @@ function init_groups_visitor($contact_id) {
intval($contact_id) intval($contact_id)
); );
if (dbm::is_result($r)) { if (dbm::is_result($r)) {
foreach($r as $rr) foreach ($r as $rr)
$groups[] = $rr['gid']; $groups[] = $rr['gid'];
} }
return $groups; return $groups;
}} }}

View file

@ -53,8 +53,8 @@ function poco_load($cid, $uid = 0, $zcid = 0, $url = null) {
function poco_load_worker($cid, $uid, $zcid, $url) { function poco_load_worker($cid, $uid, $zcid, $url) {
$a = get_app(); $a = get_app();
if($cid) { if ($cid) {
if((! $url) || (! $uid)) { if ((! $url) || (! $uid)) {
$r = q("select `poco`, `uid` from `contact` where `id` = %d limit 1", $r = q("select `poco`, `uid` from `contact` where `id` = %d limit 1",
intval($cid) intval($cid)
); );
@ -63,11 +63,11 @@ function poco_load_worker($cid, $uid, $zcid, $url) {
$uid = $r[0]['uid']; $uid = $r[0]['uid'];
} }
} }
if(! $uid) if (! $uid)
return; return;
} }
if(! $url) if (! $url)
return; return;
$url = $url . (($uid) ? '/@me/@all?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation' : '?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation') ; $url = $url . (($uid) ? '/@me/@all?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation' : '?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation') ;
@ -80,18 +80,18 @@ function poco_load_worker($cid, $uid, $zcid, $url) {
logger('poco_load: return code: ' . $a->get_curl_code(), LOGGER_DEBUG); logger('poco_load: return code: ' . $a->get_curl_code(), LOGGER_DEBUG);
if(($a->get_curl_code() > 299) || (! $s)) if (($a->get_curl_code() > 299) || (! $s))
return; return;
$j = json_decode($s); $j = json_decode($s);
logger('poco_load: json: ' . print_r($j,true),LOGGER_DATA); logger('poco_load: json: ' . print_r($j,true),LOGGER_DATA);
if(! isset($j->entry)) if (! isset($j->entry))
return; return;
$total = 0; $total = 0;
foreach($j->entry as $entry) { foreach ($j->entry as $entry) {
$total ++; $total ++;
$profile_url = ''; $profile_url = '';
@ -155,7 +155,7 @@ function poco_load_worker($cid, $uid, $zcid, $url) {
} }
if (isset($entry->tags)) { if (isset($entry->tags)) {
foreach($entry->tags as $tag) { foreach ($entry->tags as $tag) {
$keywords = implode(", ", $tag); $keywords = implode(", ", $tag);
} }
} }
@ -374,11 +374,13 @@ function link_gcontact($gcid, $uid = 0, $cid = 0, $zcid = 0) {
function poco_reachable($profile, $server = "", $network = "", $force = false) { function poco_reachable($profile, $server = "", $network = "", $force = false) {
if ($server == "") if ($server == "") {
$server = poco_detect_server($profile); $server = poco_detect_server($profile);
}
if ($server == "") if ($server == "") {
return true; return true;
}
return poco_check_server($server, $network, $force); return poco_check_server($server, $network, $force);
} }
@ -1083,10 +1085,10 @@ function poco_check_server($server_url, $network = "", $force = false) {
} }
$lines = explode("\n",$serverret["header"]); $lines = explode("\n",$serverret["header"]);
if(count($lines)) { if (count($lines)) {
foreach($lines as $line) { foreach($lines as $line) {
$line = trim($line); $line = trim($line);
if(stristr($line,'X-Diaspora-Version:')) { if (stristr($line,'X-Diaspora-Version:')) {
$platform = "Diaspora"; $platform = "Diaspora";
$version = trim(str_replace("X-Diaspora-Version:", "", $line)); $version = trim(str_replace("X-Diaspora-Version:", "", $line));
$version = trim(str_replace("x-diaspora-version:", "", $version)); $version = trim(str_replace("x-diaspora-version:", "", $version));
@ -1095,7 +1097,7 @@ function poco_check_server($server_url, $network = "", $force = false) {
$version = $versionparts[0]; $version = $versionparts[0];
} }
if(stristr($line,'Server: Mastodon')) { if (stristr($line,'Server: Mastodon')) {
$platform = "Mastodon"; $platform = "Mastodon";
$network = NETWORK_OSTATUS; $network = NETWORK_OSTATUS;
} }
@ -1165,10 +1167,11 @@ function poco_check_server($server_url, $network = "", $force = false) {
$network = NETWORK_DIASPORA; $network = NETWORK_DIASPORA;
} }
if (isset($data->site->redmatrix)) { if (isset($data->site->redmatrix)) {
if (isset($data->site->redmatrix->PLATFORM_NAME)) if (isset($data->site->redmatrix->PLATFORM_NAME)) {
$platform = $data->site->redmatrix->PLATFORM_NAME; $platform = $data->site->redmatrix->PLATFORM_NAME;
elseif (isset($data->site->redmatrix->RED_PLATFORM)) } elseif (isset($data->site->redmatrix->RED_PLATFORM)) {
$platform = $data->site->redmatrix->RED_PLATFORM; $platform = $data->site->redmatrix->RED_PLATFORM;
}
$version = $data->site->redmatrix->RED_VERSION; $version = $data->site->redmatrix->RED_VERSION;
$network = NETWORK_DIASPORA; $network = NETWORK_DIASPORA;
@ -1185,15 +1188,16 @@ function poco_check_server($server_url, $network = "", $force = false) {
$data->site->private = poco_to_boolean($data->site->private); $data->site->private = poco_to_boolean($data->site->private);
$data->site->inviteonly = poco_to_boolean($data->site->inviteonly); $data->site->inviteonly = poco_to_boolean($data->site->inviteonly);
if (!$data->site->closed AND !$data->site->private and $data->site->inviteonly) if (!$data->site->closed AND !$data->site->private and $data->site->inviteonly) {
$register_policy = REGISTER_APPROVE; $register_policy = REGISTER_APPROVE;
elseif (!$data->site->closed AND !$data->site->private) } elseif (!$data->site->closed AND !$data->site->private) {
$register_policy = REGISTER_OPEN; $register_policy = REGISTER_OPEN;
else } else {
$register_policy = REGISTER_CLOSED; $register_policy = REGISTER_CLOSED;
} }
} }
} }
}
// Query statistics.json. Optional package for Diaspora, Friendica and Redmatrix // Query statistics.json. Optional package for Diaspora, Friendica and Redmatrix
if (!$failure) { if (!$failure) {
@ -1254,8 +1258,9 @@ function poco_check_server($server_url, $network = "", $force = false) {
if (!$failure AND in_array($network, array(NETWORK_DFRN, NETWORK_OSTATUS))) { if (!$failure AND in_array($network, array(NETWORK_DFRN, NETWORK_OSTATUS))) {
$serverret = z_fetch_url($server_url."/friendica/json"); $serverret = z_fetch_url($server_url."/friendica/json");
if (!$serverret["success"]) if (!$serverret["success"]) {
$serverret = z_fetch_url($server_url."/friendika/json"); $serverret = z_fetch_url($server_url."/friendika/json");
}
if ($serverret["success"]) { if ($serverret["success"]) {
$data = json_decode($serverret["body"]); $data = json_decode($serverret["body"]);
@ -1299,7 +1304,7 @@ function poco_check_server($server_url, $network = "", $force = false) {
if (($last_contact <= $last_failure) AND !$failure) { if (($last_contact <= $last_failure) AND !$failure) {
logger("Server ".$server_url." seems to be alive, but last contact wasn't set - could be a bug", LOGGER_DEBUG); logger("Server ".$server_url." seems to be alive, but last contact wasn't set - could be a bug", LOGGER_DEBUG);
} else if (($last_contact >= $last_failure) AND $failure) { } elseif (($last_contact >= $last_failure) AND $failure) {
logger("Server ".$server_url." seems to be dead, but last failure wasn't set - could be a bug", LOGGER_DEBUG); logger("Server ".$server_url." seems to be dead, but last failure wasn't set - could be a bug", LOGGER_DEBUG);
} }
@ -1374,10 +1379,11 @@ function count_common_friends($uid,$cid) {
function common_friends($uid,$cid,$start = 0,$limit=9999,$shuffle = false) { function common_friends($uid,$cid,$start = 0,$limit=9999,$shuffle = false) {
if($shuffle) if ($shuffle) {
$sql_extra = " order by rand() "; $sql_extra = " order by rand() ";
else } else {
$sql_extra = " order by `gcontact`.`name` asc "; $sql_extra = " order by `gcontact`.`name` asc ";
}
$r = q("SELECT `gcontact`.*, `contact`.`id` AS `cid` $r = q("SELECT `gcontact`.*, `contact`.`id` AS `cid`
FROM `glink` FROM `glink`
@ -1396,6 +1402,7 @@ function common_friends($uid,$cid,$start = 0,$limit=9999,$shuffle = false) {
intval($limit) intval($limit)
); );
/// @TODO Check all calling-findings of this function if they properly use dbm::is_result()
return $r; return $r;
} }
@ -1419,7 +1426,7 @@ function count_common_friends_zcid($uid,$zcid) {
function common_friends_zcid($uid,$zcid,$start = 0, $limit = 9999,$shuffle = false) { function common_friends_zcid($uid,$zcid,$start = 0, $limit = 9999,$shuffle = false) {
if($shuffle) if ($shuffle)
$sql_extra = " order by rand() "; $sql_extra = " order by rand() ";
else else
$sql_extra = " order by `gcontact`.`name` asc "; $sql_extra = " order by `gcontact`.`name` asc ";
@ -1435,6 +1442,7 @@ function common_friends_zcid($uid,$zcid,$start = 0, $limit = 9999,$shuffle = fal
intval($limit) intval($limit)
); );
/// @TODO Check all calling-findings of this function if they properly use dbm::is_result()
return $r; return $r;
} }
@ -1450,8 +1458,9 @@ function count_all_friends($uid,$cid) {
intval($uid) intval($uid)
); );
if (dbm::is_result($r)) if (dbm::is_result($r)) {
return $r[0]['total']; return $r[0]['total'];
}
return 0; return 0;
} }
@ -1473,6 +1482,7 @@ function all_friends($uid,$cid,$start = 0, $limit = 80) {
intval($limit) intval($limit)
); );
/// @TODO Check all calling-findings of this function if they properly use dbm::is_result()
return $r; return $r;
} }
@ -1493,11 +1503,13 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
$network = array(NETWORK_DFRN); $network = array(NETWORK_DFRN);
if (get_config('system','diaspora_enabled')) if (get_config('system','diaspora_enabled')) {
$network[] = NETWORK_DIASPORA; $network[] = NETWORK_DIASPORA;
}
if (!get_config('system','ostatus_disabled')) if (!get_config('system','ostatus_disabled')) {
$network[] = NETWORK_OSTATUS; $network[] = NETWORK_OSTATUS;
}
$sql_network = implode("', '", $network); $sql_network = implode("', '", $network);
$sql_network = "'".$sql_network."'"; $sql_network = "'".$sql_network."'";
@ -1550,14 +1562,17 @@ function suggestion_query($uid, $start = 0, $limit = 80) {
); );
$list = array(); $list = array();
foreach ($r2 AS $suggestion) foreach ($r2 AS $suggestion) {
$list[$suggestion["nurl"]] = $suggestion; $list[$suggestion["nurl"]] = $suggestion;
}
foreach ($r AS $suggestion) foreach ($r AS $suggestion) {
$list[$suggestion["nurl"]] = $suggestion; $list[$suggestion["nurl"]] = $suggestion;
}
while (sizeof($list) > ($limit)) while (sizeof($list) > ($limit)) {
array_pop($list); array_pop($list);
}
// Uncommented because the result of the queries are to big to store it in the cache. // Uncommented because the result of the queries are to big to store it in the cache.
// We need to decide if we want to change the db column type or if we want to delete it. // We need to decide if we want to change the db column type or if we want to delete it.
@ -1602,10 +1617,11 @@ function update_suggestions() {
if (dbm::is_result($r)) { if (dbm::is_result($r)) {
foreach ($r as $rr) { foreach ($r as $rr) {
$base = substr($rr['poco'],0,strrpos($rr['poco'],'/')); $base = substr($rr['poco'],0,strrpos($rr['poco'],'/'));
if(! in_array($base,$done)) if (! in_array($base,$done)) {
poco_load(0,0,0,$base); poco_load(0,0,0,$base);
} }
} }
}
} }
/** /**
@ -1640,9 +1656,10 @@ function poco_discover_federation() {
if ($last) { if ($last) {
$next = $last + (24 * 60 * 60); $next = $last + (24 * 60 * 60);
if($next > time()) if ($next > time()) {
return; return;
} }
}
// Discover Friendica, Hubzilla and Diaspora servers // Discover Friendica, Hubzilla and Diaspora servers
$serverdata = fetch_url("http://the-federation.info/pods.json"); $serverdata = fetch_url("http://the-federation.info/pods.json");
@ -1785,19 +1802,21 @@ function poco_discover($complete = false) {
function poco_discover_server_users($data, $server) { function poco_discover_server_users($data, $server) {
if (!isset($data->entry)) if (!isset($data->entry)) {
return; return;
}
foreach ($data->entry AS $entry) { foreach ($data->entry AS $entry) {
$username = ""; $username = "";
if (isset($entry->urls)) { if (isset($entry->urls)) {
foreach($entry->urls as $url) foreach ($entry->urls as $url) {
if ($url->type == 'profile') { if ($url->type == 'profile') {
$profile_url = $url->value; $profile_url = $url->value;
$urlparts = parse_url($profile_url); $urlparts = parse_url($profile_url);
$username = end(explode("/", $urlparts["path"])); $username = end(explode("/", $urlparts["path"]));
} }
} }
}
if ($username != "") { if ($username != "") {
logger("Fetch contacts for the user ".$username." from the server ".$server["nurl"], LOGGER_DEBUG); logger("Fetch contacts for the user ".$username." from the server ".$server["nurl"], LOGGER_DEBUG);
@ -1805,16 +1824,18 @@ function poco_discover_server_users($data, $server) {
$url = $server["poco"]."/".$username."/?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation"; $url = $server["poco"]."/".$username."/?fields=displayName,urls,photos,updated,network,aboutMe,currentLocation,tags,gender,contactType,generation";
$retdata = z_fetch_url($url); $retdata = z_fetch_url($url);
if ($retdata["success"]) if ($retdata["success"]) {
poco_discover_server(json_decode($retdata["body"]), 3); poco_discover_server(json_decode($retdata["body"]), 3);
} }
} }
}
} }
function poco_discover_server($data, $default_generation = 0) { function poco_discover_server($data, $default_generation = 0) {
if (!isset($data->entry) OR !count($data->entry)) if (!isset($data->entry) OR !count($data->entry)) {
return false; return false;
}
$success = false; $success = false;
@ -1835,7 +1856,7 @@ function poco_discover_server($data, $default_generation = 0) {
$name = $entry->displayName; $name = $entry->displayName;
if (isset($entry->urls)) { if (isset($entry->urls)) {
foreach($entry->urls as $url) { foreach ($entry->urls as $url) {
if ($url->type == 'profile') { if ($url->type == 'profile') {
$profile_url = $url->value; $profile_url = $url->value;
continue; continue;
@ -1860,31 +1881,31 @@ function poco_discover_server($data, $default_generation = 0) {
$updated = date("Y-m-d H:i:s", strtotime($entry->updated)); $updated = date("Y-m-d H:i:s", strtotime($entry->updated));
} }
if(isset($entry->network)) { if (isset($entry->network)) {
$network = $entry->network; $network = $entry->network;
} }
if(isset($entry->currentLocation)) { if (isset($entry->currentLocation)) {
$location = $entry->currentLocation; $location = $entry->currentLocation;
} }
if(isset($entry->aboutMe)) { if (isset($entry->aboutMe)) {
$about = html2bbcode($entry->aboutMe); $about = html2bbcode($entry->aboutMe);
} }
if(isset($entry->gender)) { if (isset($entry->gender)) {
$gender = $entry->gender; $gender = $entry->gender;
} }
if(isset($entry->generation) AND ($entry->generation > 0)) { if (isset($entry->generation) AND ($entry->generation > 0)) {
$generation = ++$entry->generation; $generation = ++$entry->generation;
} }
if(isset($entry->contactType) AND ($entry->contactType >= 0)) { if (isset($entry->contactType) AND ($entry->contactType >= 0)) {
$contact_type = $entry->contactType; $contact_type = $entry->contactType;
} }
if(isset($entry->tags)) { if (isset($entry->tags)) {
foreach ($entry->tags as $tag) { foreach ($entry->tags as $tag) {
$keywords = implode(", ", $tag); $keywords = implode(", ", $tag);
} }
@ -1930,19 +1951,23 @@ function poco_discover_server($data, $default_generation = 0) {
function clean_contact_url($url) { function clean_contact_url($url) {
$parts = parse_url($url); $parts = parse_url($url);
if (!isset($parts["scheme"]) OR !isset($parts["host"])) if (!isset($parts["scheme"]) OR !isset($parts["host"])) {
return $url; return $url;
}
$new_url = $parts["scheme"]."://".$parts["host"]; $new_url = $parts["scheme"]."://".$parts["host"];
if (isset($parts["port"])) if (isset($parts["port"])) {
$new_url .= ":".$parts["port"]; $new_url .= ":".$parts["port"];
}
if (isset($parts["path"])) if (isset($parts["path"])) {
$new_url .= $parts["path"]; $new_url .= $parts["path"];
}
if ($new_url != $url) if ($new_url != $url) {
logger("Cleaned contact url ".$url." to ".$new_url." - Called by: ".App::callstack(), LOGGER_DEBUG); logger("Cleaned contact url ".$url." to ".$new_url." - Called by: ".App::callstack(), LOGGER_DEBUG);
}
return $new_url; return $new_url;
} }
@ -1981,24 +2006,28 @@ function get_gcontact_id($contact) {
return false; return false;
} }
if ($contact["network"] == NETWORK_STATUSNET) /// @TODO backward-compatibility or old-lost code?
if ($contact["network"] == NETWORK_STATUSNET) {
$contact["network"] = NETWORK_OSTATUS; $contact["network"] = NETWORK_OSTATUS;
}
// All new contacts are hidden by default // All new contacts are hidden by default
if (!isset($contact["hide"])) if (!isset($contact["hide"])) {
$contact["hide"] = true; $contact["hide"] = true;
}
// Replace alternate OStatus user format with the primary one // Replace alternate OStatus user format with the primary one
fix_alternate_contact_address($contact); fix_alternate_contact_address($contact);
// Remove unwanted parts from the contact url (e.g. "?zrl=...") // Remove unwanted parts from the contact url (e.g. "?zrl=...")
if (in_array($contact["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) if (in_array($contact["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) {
$contact["url"] = clean_contact_url($contact["url"]); $contact["url"] = clean_contact_url($contact["url"]);
}
$r = q("SELECT `id`, `last_contact`, `last_failure`, `network` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 2", $r = q("SELECT `id`, `last_contact`, `last_failure`, `network` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 2",
dbesc(normalise_link($contact["url"]))); dbesc(normalise_link($contact["url"])));
if ($r) { if (dbm::is_result($r)) {
$gcontact_id = $r[0]["id"]; $gcontact_id = $r[0]["id"];
// Update every 90 days // Update every 90 days
@ -2030,7 +2059,7 @@ function get_gcontact_id($contact) {
$r = q("SELECT `id`, `network` FROM `gcontact` WHERE `nurl` = '%s' ORDER BY `id` LIMIT 2", $r = q("SELECT `id`, `network` FROM `gcontact` WHERE `nurl` = '%s' ORDER BY `id` LIMIT 2",
dbesc(normalise_link($contact["url"]))); dbesc(normalise_link($contact["url"])));
if ($r) { if (dbm::is_result($r)) {
$gcontact_id = $r[0]["id"]; $gcontact_id = $r[0]["id"];
$doprobing = in_array($r[0]["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS, "")); $doprobing = in_array($r[0]["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS, ""));
@ -2042,10 +2071,11 @@ function get_gcontact_id($contact) {
proc_run(PRIORITY_LOW, 'include/gprobe.php', bin2hex($contact["url"])); proc_run(PRIORITY_LOW, 'include/gprobe.php', bin2hex($contact["url"]));
} }
if ((dbm::is_result($r)) AND (count($r) > 1) AND ($gcontact_id > 0) AND ($contact["url"] != "")) if ((dbm::is_result($r)) AND (count($r) > 1) AND ($gcontact_id > 0) AND ($contact["url"] != "")) {
q("DELETE FROM `gcontact` WHERE `nurl` = '%s' AND `id` != %d", q("DELETE FROM `gcontact` WHERE `nurl` = '%s' AND `id` != %d",
dbesc(normalise_link($contact["url"])), dbesc(normalise_link($contact["url"])),
intval($gcontact_id)); intval($gcontact_id));
}
return $gcontact_id; return $gcontact_id;
} }
@ -2067,8 +2097,9 @@ function update_gcontact($contact) {
$gcontact_id = get_gcontact_id($contact); $gcontact_id = get_gcontact_id($contact);
if (!$gcontact_id) if (!$gcontact_id) {
return false; return false;
}
$r = q("SELECT `name`, `nick`, `photo`, `location`, `about`, `addr`, `generation`, `birthday`, `gender`, `keywords`, $r = q("SELECT `name`, `nick`, `photo`, `location`, `about`, `addr`, `generation`, `birthday`, `gender`, `keywords`,
`contact-type`, `hide`, `nsfw`, `network`, `alias`, `notify`, `server_url`, `connect`, `updated`, `url` `contact-type`, `hide`, `nsfw`, `network`, `alias`, `notify`, `server_url`, `connect`, `updated`, `url`
@ -2077,8 +2108,9 @@ function update_gcontact($contact) {
// Get all field names // Get all field names
$fields = array(); $fields = array();
foreach ($r[0] AS $field => $data) foreach ($r[0] AS $field => $data) {
$fields[$field] = $data; $fields[$field] = $data;
}
unset($fields["url"]); unset($fields["url"]);
unset($fields["updated"]); unset($fields["updated"]);
@ -2086,47 +2118,59 @@ function update_gcontact($contact) {
// Bugfix: We had an error in the storing of keywords which lead to the "0" // Bugfix: We had an error in the storing of keywords which lead to the "0"
// This value is still transmitted via poco. // This value is still transmitted via poco.
if ($contact["keywords"] == "0") if ($contact["keywords"] == "0") {
unset($contact["keywords"]); unset($contact["keywords"]);
}
if ($r[0]["keywords"] == "0") if ($r[0]["keywords"] == "0") {
$r[0]["keywords"] = ""; $r[0]["keywords"] = "";
}
// assign all unassigned fields from the database entry // assign all unassigned fields from the database entry
foreach ($fields AS $field => $data) foreach ($fields AS $field => $data) {
if (!isset($contact[$field]) OR ($contact[$field] == "")) if (!isset($contact[$field]) OR ($contact[$field] == "")) {
$contact[$field] = $r[0][$field]; $contact[$field] = $r[0][$field];
}
}
if (!isset($contact["hide"])) if (!isset($contact["hide"])) {
$contact["hide"] = $r[0]["hide"]; $contact["hide"] = $r[0]["hide"];
}
$fields["hide"] = $r[0]["hide"]; $fields["hide"] = $r[0]["hide"];
if ($contact["network"] == NETWORK_STATUSNET) /// @TODO backward-compatibility or old-lost code?
if ($contact["network"] == NETWORK_STATUSNET) {
$contact["network"] = NETWORK_OSTATUS; $contact["network"] = NETWORK_OSTATUS;
}
// Replace alternate OStatus user format with the primary one // Replace alternate OStatus user format with the primary one
fix_alternate_contact_address($contact); fix_alternate_contact_address($contact);
if (!isset($contact["updated"])) if (!isset($contact["updated"])) {
$contact["updated"] = dbm::date(); $contact["updated"] = dbm::date();
}
if ($contact["server_url"] == "") { if ($contact["server_url"] == "") {
$server_url = $contact["url"]; $server_url = $contact["url"];
$server_url = matching_url($server_url, $contact["alias"]); $server_url = matching_url($server_url, $contact["alias"]);
if ($server_url != "") if ($server_url != "") {
$contact["server_url"] = $server_url; $contact["server_url"] = $server_url;
}
$server_url = matching_url($server_url, $contact["photo"]); $server_url = matching_url($server_url, $contact["photo"]);
if ($server_url != "") if ($server_url != "") {
$contact["server_url"] = $server_url; $contact["server_url"] = $server_url;
}
$server_url = matching_url($server_url, $contact["notify"]); $server_url = matching_url($server_url, $contact["notify"]);
if ($server_url != "") if ($server_url != "") {
$contact["server_url"] = $server_url; $contact["server_url"] = $server_url;
} else }
} else {
$contact["server_url"] = normalise_link($contact["server_url"]); $contact["server_url"] = normalise_link($contact["server_url"]);
}
if (($contact["addr"] == "") AND ($contact["server_url"] != "") AND ($contact["nick"] != "")) { if (($contact["addr"] == "") AND ($contact["server_url"] != "") AND ($contact["nick"] != "")) {
$hostname = str_replace("http://", "", $contact["server_url"]); $hostname = str_replace("http://", "", $contact["server_url"]);
@ -2138,11 +2182,12 @@ function update_gcontact($contact) {
unset($fields["generation"]); unset($fields["generation"]);
if ((($contact["generation"] > 0) AND ($contact["generation"] <= $r[0]["generation"])) OR ($r[0]["generation"] == 0)) { if ((($contact["generation"] > 0) AND ($contact["generation"] <= $r[0]["generation"])) OR ($r[0]["generation"] == 0)) {
foreach ($fields AS $field => $data) foreach ($fields AS $field => $data) {
if ($contact[$field] != $r[0][$field]) { if ($contact[$field] != $r[0][$field]) {
logger("Difference for contact ".$contact["url"]." in field '".$field."'. New value: '".$contact[$field]."', old value '".$r[0][$field]."'", LOGGER_DEBUG); logger("Difference for contact ".$contact["url"]." in field '".$field."'. New value: '".$contact[$field]."', old value '".$r[0][$field]."'", LOGGER_DEBUG);
$update = true; $update = true;
} }
}
if ($contact["generation"] < $r[0]["generation"]) { if ($contact["generation"] < $r[0]["generation"]) {
logger("Difference for contact ".$contact["url"]." in field 'generation'. new value: '".$contact["generation"]."', old value '".$r[0]["generation"]."'", LOGGER_DEBUG); logger("Difference for contact ".$contact["url"]." in field 'generation'. new value: '".$contact["generation"]."', old value '".$r[0]["generation"]."'", LOGGER_DEBUG);
@ -2174,7 +2219,7 @@ function update_gcontact($contact) {
$r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0 ORDER BY `id` LIMIT 1", $r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0 ORDER BY `id` LIMIT 1",
dbesc(normalise_link($contact["url"]))); dbesc(normalise_link($contact["url"])));
if ($r) { if (dbm::is_result($r)) {
logger("Update shadow contact ".$r[0]["id"], LOGGER_DEBUG); logger("Update shadow contact ".$r[0]["id"], LOGGER_DEBUG);
update_contact_avatar($contact["photo"], 0, $r[0]["id"]); update_contact_avatar($contact["photo"], 0, $r[0]["id"]);

View file

@ -58,10 +58,10 @@ function create_tags_from_item($itemid) {
if (substr(trim($tag), 0, 1) == "#") { if (substr(trim($tag), 0, 1) == "#") {
// try to ignore #039 or #1 or anything like that // try to ignore #039 or #1 or anything like that
if(ctype_digit(substr(trim($tag),1))) if (ctype_digit(substr(trim($tag),1)))
continue; continue;
// try to ignore html hex escapes, e.g. #x2317 // try to ignore html hex escapes, e.g. #x2317
if((substr(trim($tag),1,1) == 'x' || substr(trim($tag),1,1) == 'X') && ctype_digit(substr(trim($tag),2))) if ((substr(trim($tag),1,1) == 'x' || substr(trim($tag),1,1) == 'X') && ctype_digit(substr(trim($tag),2)))
continue; continue;
$type = TERM_HASHTAG; $type = TERM_HASHTAG;
$term = substr($tag, 1); $term = substr($tag, 1);
@ -107,10 +107,11 @@ function create_tags_from_item($itemid) {
function create_tags_from_itemuri($itemuri, $uid) { function create_tags_from_itemuri($itemuri, $uid) {
$messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid)); $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid));
if(count($messages)) { if (count($messages)) {
foreach ($messages as $message) foreach ($messages as $message) {
create_tags_from_item($message["id"]); create_tags_from_item($message["id"]);
} }
}
} }
function update_items() { function update_items() {

View file

@ -69,7 +69,7 @@ class Template implements ITemplateEngine {
* {{ if <$var>==<val|$var> }}...[{{ else }} ...]{{ endif }} * {{ if <$var>==<val|$var> }}...[{{ else }} ...]{{ endif }}
* {{ if <$var>!=<val|$var> }}...[{{ else }} ...]{{ endif }} * {{ if <$var>!=<val|$var> }}...[{{ else }} ...]{{ endif }}
*/ */
private function _replcb_if($args) { private function _replcb_if ($args) {
if (strpos($args[2], "==") > 0) { if (strpos($args[2], "==") > 0) {
list($a, $b) = array_map("trim", explode("==", $args[2])); list($a, $b) = array_map("trim", explode("==", $args[2]));
$a = $this->_get_var($a); $a = $this->_get_var($a);
@ -95,7 +95,7 @@ class Template implements ITemplateEngine {
* {{ for <$var> as $name }}...{{ endfor }} * {{ for <$var> as $name }}...{{ endfor }}
* {{ for <$var> as $key=>$name }}...{{ endfor }} * {{ for <$var> as $key=>$name }}...{{ endfor }}
*/ */
private function _replcb_for($args) { private function _replcb_for ($args) {
$m = array_map('trim', explode(" as ", $args[2])); $m = array_map('trim', explode(" as ", $args[2]));
$x = explode("=>", $m[1]); $x = explode("=>", $m[1]);
if (count($x) == 1) { if (count($x) == 1) {
@ -109,14 +109,16 @@ class Template implements ITemplateEngine {
//$vals = $this->r[$m[0]]; //$vals = $this->r[$m[0]];
$vals = $this->_get_var($m[0]); $vals = $this->_get_var($m[0]);
$ret = ""; $ret = "";
if (!is_array($vals)) if (!is_array($vals)) {
return $ret; return $ret;
}
foreach ($vals as $k => $v) { foreach ($vals as $k => $v) {
$this->_push_stack(); $this->_push_stack();
$r = $this->r; $r = $this->r;
$r[$varname] = $v; $r[$varname] = $v;
if ($keyname != '') if ($keyname != '') {
$r[$keyname] = (($k === 0) ? '0' : $k); $r[$keyname] = (($k === 0) ? '0' : $k);
}
$ret .= $this->replace($args[3], $r); $ret .= $this->replace($args[3], $r);
$this->_pop_stack(); $this->_pop_stack();
} }

View file

@ -8,7 +8,7 @@ require_once("include/Smilies.php");
require_once("include/map.php"); require_once("include/map.php");
require_once("mod/proxy.php"); require_once("mod/proxy.php");
if(! function_exists('replace_macros')) { if (! function_exists('replace_macros')) {
/** /**
* This is our template processor * This is our template processor
* *
@ -46,7 +46,7 @@ function replace_macros($s,$r) {
define('RANDOM_STRING_HEX', 0x00 ); define('RANDOM_STRING_HEX', 0x00 );
define('RANDOM_STRING_TEXT', 0x01 ); define('RANDOM_STRING_TEXT', 0x01 );
if(! function_exists('random_string')) { if (! function_exists('random_string')) {
function random_string($size = 64,$type = RANDOM_STRING_HEX) { function random_string($size = 64,$type = RANDOM_STRING_HEX) {
// generate a bit of entropy and run it through the whirlpool // generate a bit of entropy and run it through the whirlpool
$s = hash('whirlpool', (string) rand() . uniqid(rand(),true) . (string) rand(),(($type == RANDOM_STRING_TEXT) ? true : false)); $s = hash('whirlpool', (string) rand() . uniqid(rand(),true) . (string) rand(),(($type == RANDOM_STRING_TEXT) ? true : false));
@ -54,7 +54,7 @@ function random_string($size = 64,$type = RANDOM_STRING_HEX) {
return(substr($s,0,$size)); return(substr($s,0,$size));
}} }}
if(! function_exists('notags')) { if (! function_exists('notags')) {
/** /**
* This is our primary input filter. * This is our primary input filter.
* *
@ -82,7 +82,7 @@ function notags($string) {
if(! function_exists('escape_tags')) { if (! function_exists('escape_tags')) {
/** /**
* use this on "body" or "content" input where angle chars shouldn't be removed, * use this on "body" or "content" input where angle chars shouldn't be removed,
* and allow them to be safely displayed. * and allow them to be safely displayed.
@ -98,7 +98,7 @@ function escape_tags($string) {
// generate a string that's random, but usually pronounceable. // generate a string that's random, but usually pronounceable.
// used to generate initial passwords // used to generate initial passwords
if(! function_exists('autoname')) { if (! function_exists('autoname')) {
/** /**
* generate a string that's random, but usually pronounceable. * generate a string that's random, but usually pronounceable.
* used to generate initial passwords * used to generate initial passwords
@ -107,11 +107,11 @@ if(! function_exists('autoname')) {
*/ */
function autoname($len) { function autoname($len) {
if($len <= 0) if ($len <= 0)
return ''; return '';
$vowels = array('a','a','ai','au','e','e','e','ee','ea','i','ie','o','ou','u'); $vowels = array('a','a','ai','au','e','e','e','ee','ea','i','ie','o','ou','u');
if(mt_rand(0,5) == 4) if (mt_rand(0,5) == 4)
$vowels[] = 'y'; $vowels[] = 'y';
$cons = array( $cons = array(
@ -144,7 +144,7 @@ function autoname($len) {
'kh', 'kl','kr','mn','pl','pr','rh','tr','qu','wh'); 'kh', 'kl','kr','mn','pl','pr','rh','tr','qu','wh');
$start = mt_rand(0,2); $start = mt_rand(0,2);
if($start == 0) if ($start == 0)
$table = $vowels; $table = $vowels;
else else
$table = $cons; $table = $cons;
@ -155,7 +155,7 @@ function autoname($len) {
$r = mt_rand(0,count($table) - 1); $r = mt_rand(0,count($table) - 1);
$word .= $table[$r]; $word .= $table[$r];
if($table == $vowels) if ($table == $vowels)
$table = array_merge($cons,$midcons); $table = array_merge($cons,$midcons);
else else
$table = $vowels; $table = $vowels;
@ -164,13 +164,13 @@ function autoname($len) {
$word = substr($word,0,$len); $word = substr($word,0,$len);
foreach($noend as $noe) { foreach ($noend as $noe) {
if((strlen($word) > 2) && (substr($word,-2) == $noe)) { if ((strlen($word) > 2) && (substr($word,-2) == $noe)) {
$word = substr($word,0,-1); $word = substr($word,0,-1);
break; break;
} }
} }
if(substr($word,-1) == 'q') if (substr($word,-1) == 'q')
$word = substr($word,0,-1); $word = substr($word,0,-1);
return $word; return $word;
}} }}
@ -179,7 +179,7 @@ function autoname($len) {
// escape text ($str) for XML transport // escape text ($str) for XML transport
// returns escaped text. // returns escaped text.
if(! function_exists('xmlify')) { if (! function_exists('xmlify')) {
/** /**
* escape text ($str) for XML transport * escape text ($str) for XML transport
* @param string $str * @param string $str
@ -189,7 +189,7 @@ function xmlify($str) {
/* $buffer = ''; /* $buffer = '';
$len = mb_strlen($str); $len = mb_strlen($str);
for($x = 0; $x < $len; $x ++) { for ($x = 0; $x < $len; $x ++) {
$char = mb_substr($str,$x,1); $char = mb_substr($str,$x,1);
switch( $char ) { switch( $char ) {
@ -232,7 +232,7 @@ function xmlify($str) {
return($buffer); return($buffer);
}} }}
if(! function_exists('unxmlify')) { if (! function_exists('unxmlify')) {
/** /**
* undo an xmlify * undo an xmlify
* @param string $s xml escaped text * @param string $s xml escaped text
@ -251,17 +251,17 @@ function unxmlify($s) {
return $ret; return $ret;
}} }}
if(! function_exists('hex2bin')) { if (! function_exists('hex2bin')) {
/** /**
* convenience wrapper, reverse the operation "bin2hex" * convenience wrapper, reverse the operation "bin2hex"
* @param string $s * @param string $s
* @return number * @return number
*/ */
function hex2bin($s) { function hex2bin($s) {
if(! (is_string($s) && strlen($s))) if (! (is_string($s) && strlen($s)))
return ''; return '';
if(! ctype_xdigit($s)) { if (! ctype_xdigit($s)) {
return($s); return($s);
} }
@ -354,7 +354,7 @@ function paginate_data(App $a, $count = null) {
return $data; return $data;
} }
if(! function_exists('paginate')) { if (! function_exists('paginate')) {
/** /**
* Automatic pagination. * Automatic pagination.
* *
@ -378,7 +378,7 @@ function paginate(App $a) {
}} }}
if(! function_exists('alt_pager')) { if (! function_exists('alt_pager')) {
/** /**
* Alternative pager * Alternative pager
* @param App $a App instance * @param App $a App instance
@ -393,7 +393,7 @@ function alt_pager(App $a, $i) {
}} }}
if(! function_exists('scroll_loader')) { if (! function_exists('scroll_loader')) {
/** /**
* Loader for infinite scrolling * Loader for infinite scrolling
* @return string html for loader * @return string html for loader
@ -406,7 +406,7 @@ function scroll_loader() {
)); ));
}} }}
if(! function_exists('expand_acl')) { if (! function_exists('expand_acl')) {
/** /**
* Turn user/group ACLs stored as angle bracketed text into arrays * Turn user/group ACLs stored as angle bracketed text into arrays
* *
@ -418,31 +418,31 @@ function expand_acl($s) {
// e.g. "<1><2><3>" => array(1,2,3); // e.g. "<1><2><3>" => array(1,2,3);
$ret = array(); $ret = array();
if(strlen($s)) { if (strlen($s)) {
$t = str_replace('<','',$s); $t = str_replace('<','',$s);
$a = explode('>',$t); $a = explode('>',$t);
foreach($a as $aa) { foreach ($a as $aa) {
if(intval($aa)) if (intval($aa))
$ret[] = intval($aa); $ret[] = intval($aa);
} }
} }
return $ret; return $ret;
}} }}
if(! function_exists('sanitise_acl')) { if (! function_exists('sanitise_acl')) {
/** /**
* Wrap ACL elements in angle brackets for storage * Wrap ACL elements in angle brackets for storage
* @param string $item * @param string $item
*/ */
function sanitise_acl(&$item) { function sanitise_acl(&$item) {
if(intval($item)) if (intval($item))
$item = '<' . intval(notags(trim($item))) . '>'; $item = '<' . intval(notags(trim($item))) . '>';
else else
unset($item); unset($item);
}} }}
if(! function_exists('perms2str')) { if (! function_exists('perms2str')) {
/** /**
* Convert an ACL array to a storable string * Convert an ACL array to a storable string
* *
@ -454,12 +454,12 @@ if(! function_exists('perms2str')) {
*/ */
function perms2str($p) { function perms2str($p) {
$ret = ''; $ret = '';
if(is_array($p)) if (is_array($p))
$tmp = $p; $tmp = $p;
else else
$tmp = explode(',',$p); $tmp = explode(',',$p);
if(is_array($tmp)) { if (is_array($tmp)) {
array_walk($tmp,'sanitise_acl'); array_walk($tmp,'sanitise_acl');
$ret = implode('',$tmp); $ret = implode('',$tmp);
} }
@ -467,7 +467,7 @@ function perms2str($p) {
}} }}
if(! function_exists('item_new_uri')) { if (! function_exists('item_new_uri')) {
/** /**
* generate a guaranteed unique (for this domain) item ID for ATOM * generate a guaranteed unique (for this domain) item ID for ATOM
* safe from birthday paradox * safe from birthday paradox
@ -494,14 +494,14 @@ function item_new_uri($hostname,$uid, $guid = "") {
dbesc($uri)); dbesc($uri));
if (dbm::is_result($r)) if (dbm::is_result($r))
$dups = true; $dups = true;
} while($dups == true); } while ($dups == true);
return $uri; return $uri;
}} }}
// Generate a guaranteed unique photo ID. // Generate a guaranteed unique photo ID.
// safe from birthday paradox // safe from birthday paradox
if(! function_exists('photo_new_resource')) { if (! function_exists('photo_new_resource')) {
/** /**
* Generate a guaranteed unique photo ID. * Generate a guaranteed unique photo ID.
* safe from birthday paradox * safe from birthday paradox
@ -518,12 +518,12 @@ function photo_new_resource() {
); );
if (dbm::is_result($r)) if (dbm::is_result($r))
$found = true; $found = true;
} while($found == true); } while ($found == true);
return $resource; return $resource;
}} }}
if(! function_exists('load_view_file')) { if (! function_exists('load_view_file')) {
/** /**
* @deprecated * @deprecated
* wrapper to load a view template, checking for alternate * wrapper to load a view template, checking for alternate
@ -536,11 +536,11 @@ if(! function_exists('load_view_file')) {
*/ */
function load_view_file($s) { function load_view_file($s) {
global $lang, $a; global $lang, $a;
if(! isset($lang)) if (! isset($lang))
$lang = 'en'; $lang = 'en';
$b = basename($s); $b = basename($s);
$d = dirname($s); $d = dirname($s);
if(file_exists("$d/$lang/$b")) { if (file_exists("$d/$lang/$b")) {
$stamp1 = microtime(true); $stamp1 = microtime(true);
$content = file_get_contents("$d/$lang/$b"); $content = file_get_contents("$d/$lang/$b");
$a->save_timestamp($stamp1, "file"); $a->save_timestamp($stamp1, "file");
@ -549,7 +549,7 @@ function load_view_file($s) {
$theme = current_theme(); $theme = current_theme();
if(file_exists("$d/theme/$theme/$b")) { if (file_exists("$d/theme/$theme/$b")) {
$stamp1 = microtime(true); $stamp1 = microtime(true);
$content = file_get_contents("$d/theme/$theme/$b"); $content = file_get_contents("$d/theme/$theme/$b");
$a->save_timestamp($stamp1, "file"); $a->save_timestamp($stamp1, "file");
@ -562,7 +562,7 @@ function load_view_file($s) {
return $content; return $content;
}} }}
if(! function_exists('get_intltext_template')) { if (! function_exists('get_intltext_template')) {
/** /**
* load a view template, checking for alternate * load a view template, checking for alternate
* languages before falling back to the default * languages before falling back to the default
@ -576,18 +576,18 @@ function get_intltext_template($s) {
$a = get_app(); $a = get_app();
$engine = ''; $engine = '';
if($a->theme['template_engine'] === 'smarty3') if ($a->theme['template_engine'] === 'smarty3')
$engine = "/smarty3"; $engine = "/smarty3";
if(! isset($lang)) if (! isset($lang))
$lang = 'en'; $lang = 'en';
if(file_exists("view/lang/$lang$engine/$s")) { if (file_exists("view/lang/$lang$engine/$s")) {
$stamp1 = microtime(true); $stamp1 = microtime(true);
$content = file_get_contents("view/lang/$lang$engine/$s"); $content = file_get_contents("view/lang/$lang$engine/$s");
$a->save_timestamp($stamp1, "file"); $a->save_timestamp($stamp1, "file");
return $content; return $content;
} elseif(file_exists("view/lang/en$engine/$s")) { } elseif (file_exists("view/lang/en$engine/$s")) {
$stamp1 = microtime(true); $stamp1 = microtime(true);
$content = file_get_contents("view/lang/en$engine/$s"); $content = file_get_contents("view/lang/en$engine/$s");
$a->save_timestamp($stamp1, "file"); $a->save_timestamp($stamp1, "file");
@ -600,7 +600,7 @@ function get_intltext_template($s) {
} }
}} }}
if(! function_exists('get_markup_template')) { if (! function_exists('get_markup_template')) {
/** /**
* load template $s * load template $s
* *
@ -624,7 +624,7 @@ function get_markup_template($s, $root = '') {
return $template; return $template;
}} }}
if(! function_exists("get_template_file")) { if (! function_exists("get_template_file")) {
/** /**
* *
* @param App $a * @param App $a
@ -636,10 +636,10 @@ function get_template_file($a, $filename, $root = '') {
$theme = current_theme(); $theme = current_theme();
// Make sure $root ends with a slash / // Make sure $root ends with a slash /
if($root !== '' && $root[strlen($root)-1] !== '/') if ($root !== '' && $root[strlen($root)-1] !== '/')
$root = $root . '/'; $root = $root . '/';
if(file_exists("{$root}view/theme/$theme/$filename")) if (file_exists("{$root}view/theme/$theme/$filename"))
$template_file = "{$root}view/theme/$theme/$filename"; $template_file = "{$root}view/theme/$theme/$filename";
elseif (x($a->theme_info,"extends") && file_exists("{$root}view/theme/{$a->theme_info["extends"]}/$filename")) elseif (x($a->theme_info,"extends") && file_exists("{$root}view/theme/{$a->theme_info["extends"]}/$filename"))
$template_file = "{$root}view/theme/{$a->theme_info["extends"]}/$filename"; $template_file = "{$root}view/theme/{$a->theme_info["extends"]}/$filename";
@ -657,7 +657,7 @@ function get_template_file($a, $filename, $root = '') {
if(! function_exists('attribute_contains')) { if (! function_exists('attribute_contains')) {
/** /**
* for html,xml parsing - let's say you've got * for html,xml parsing - let's say you've got
* an attribute foobar="class1 class2 class3" * an attribute foobar="class1 class2 class3"
@ -674,7 +674,7 @@ if(! function_exists('attribute_contains')) {
*/ */
function attribute_contains($attr,$s) { function attribute_contains($attr,$s) {
$a = explode(' ', $attr); $a = explode(' ', $attr);
if(count($a) && in_array($s,$a)) if (count($a) && in_array($s,$a))
return true; return true;
return false; return false;
}} }}
@ -821,7 +821,7 @@ function dlogger($msg, $level = 0) {
$a->save_timestamp($stamp1, "file"); $a->save_timestamp($stamp1, "file");
} }
if(! function_exists('activity_match')) { if (! function_exists('activity_match')) {
/** /**
* Compare activity uri. Knows about activity namespace. * Compare activity uri. Knows about activity namespace.
* *
@ -830,7 +830,7 @@ if(! function_exists('activity_match')) {
* @return boolean * @return boolean
*/ */
function activity_match($haystack,$needle) { function activity_match($haystack,$needle) {
if(($haystack === $needle) || ((basename($needle) === $haystack) && strstr($needle,NAMESPACE_ACTIVITY_SCHEMA))) if (($haystack === $needle) || ((basename($needle) === $haystack) && strstr($needle,NAMESPACE_ACTIVITY_SCHEMA)))
return true; return true;
return false; return false;
}} }}
@ -884,7 +884,7 @@ function get_tags($string) {
// and #hash tags. // and #hash tags.
if (preg_match_all('/([!#@][^\^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/', $string, $matches)) { if (preg_match_all('/([!#@][^\^ \x0D\x0A,;:?]+)([ \x0D\x0A,;:?]|$)/', $string, $matches)) {
foreach($matches[1] as $match) { foreach ($matches[1] as $match) {
if (strstr($match, ']')) { if (strstr($match, ']')) {
// we might be inside a bbcode color tag - leave it alone // we might be inside a bbcode color tag - leave it alone
continue; continue;
@ -909,7 +909,7 @@ function get_tags($string) {
// //
if(! function_exists('qp')) { if (! function_exists('qp')) {
/** /**
* quick and dirty quoted_printable encoding * quick and dirty quoted_printable encoding
* *
@ -920,7 +920,7 @@ function qp($s) {
return str_replace ("%","=",rawurlencode($s)); return str_replace ("%","=",rawurlencode($s));
}} }}
if(! function_exists('contact_block')) { if (! function_exists('contact_block')) {
/** /**
* Get html for contact block. * Get html for contact block.
* *
@ -933,12 +933,12 @@ function contact_block() {
$a = get_app(); $a = get_app();
$shown = get_pconfig($a->profile['uid'],'system','display_friend_count'); $shown = get_pconfig($a->profile['uid'],'system','display_friend_count');
if($shown === false) if ($shown === false)
$shown = 24; $shown = 24;
if($shown == 0) if ($shown == 0)
return; return;
if((! is_array($a->profile)) || ($a->profile['hide-friends'])) if ((! is_array($a->profile)) || ($a->profile['hide-friends']))
return $o; return $o;
$r = q("SELECT COUNT(*) AS `total` FROM `contact` $r = q("SELECT COUNT(*) AS `total` FROM `contact`
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` WHERE `uid` = %d AND NOT `self` AND NOT `blocked`
@ -952,7 +952,7 @@ function contact_block() {
if (dbm::is_result($r)) { if (dbm::is_result($r)) {
$total = intval($r[0]['total']); $total = intval($r[0]['total']);
} }
if(! $total) { if (! $total) {
$contacts = t('No contacts'); $contacts = t('No contacts');
$micropro = Null; $micropro = Null;
@ -1031,10 +1031,10 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
$sparkle = ''; $sparkle = '';
$redir = false; $redir = false;
if($redirect) { if ($redirect) {
$a = get_app(); $a = get_app();
$redirect_url = 'redir/' . $contact['id']; $redirect_url = 'redir/' . $contact['id'];
if(local_user() && ($contact['uid'] == local_user()) && ($contact['network'] === NETWORK_DFRN)) { if (local_user() && ($contact['uid'] == local_user()) && ($contact['network'] === NETWORK_DFRN)) {
$redir = true; $redir = true;
$url = $redirect_url; $url = $redirect_url;
$sparkle = ' sparkle'; $sparkle = ' sparkle';
@ -1044,7 +1044,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
} }
// If there is some js available we don't need the url // If there is some js available we don't need the url
if(x($contact,'click')) if (x($contact,'click'))
$url = ''; $url = '';
return replace_macros(get_markup_template(($textmode)?'micropro_txt.tpl':'micropro_img.tpl'),array( return replace_macros(get_markup_template(($textmode)?'micropro_txt.tpl':'micropro_img.tpl'),array(
@ -1062,7 +1062,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
if(! function_exists('search')) { if (! function_exists('search')) {
/** /**
* search box * search box
* *
@ -1097,7 +1097,7 @@ function search($s,$id='search-box',$url='search',$save = false, $aside = true)
return replace_macros(get_markup_template('searchbox.tpl'), $values); return replace_macros(get_markup_template('searchbox.tpl'), $values);
}} }}
if(! function_exists('valid_email')) { if (! function_exists('valid_email')) {
/** /**
* Check if $x is a valid email string * Check if $x is a valid email string
* *
@ -1107,16 +1107,16 @@ if(! function_exists('valid_email')) {
function valid_email($x){ function valid_email($x){
// Removed because Fabio told me so. // Removed because Fabio told me so.
//if(get_config('system','disable_email_validation')) //if (get_config('system','disable_email_validation'))
// return true; // return true;
if(preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x)) if (preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x))
return true; return true;
return false; return false;
}} }}
if(! function_exists('linkify')) { if (! function_exists('linkify')) {
/** /**
* Replace naked text hyperlink with HTML formatted hyperlink * Replace naked text hyperlink with HTML formatted hyperlink
* *
@ -1187,7 +1187,7 @@ function get_mood_verbs() {
return $arr; return $arr;
} }
if(! function_exists('day_translate')) { if (! function_exists('day_translate')) {
/** /**
* Translate days and months names * Translate days and months names
* *
@ -1207,7 +1207,7 @@ function day_translate($s) {
}} }}
if(! function_exists('normalise_link')) { if (! function_exists('normalise_link')) {
/** /**
* Normalize url * Normalize url
* *
@ -1221,7 +1221,7 @@ function normalise_link($url) {
if(! function_exists('link_compare')) { if (! function_exists('link_compare')) {
/** /**
* Compare two URLs to see if they are the same, but ignore * Compare two URLs to see if they are the same, but ignore
* slight but hopefully insignificant differences such as if one * slight but hopefully insignificant differences such as if one
@ -1234,7 +1234,7 @@ if(! function_exists('link_compare')) {
* *
*/ */
function link_compare($a,$b) { function link_compare($a,$b) {
if(strcasecmp(normalise_link($a),normalise_link($b)) === 0) if (strcasecmp(normalise_link($a),normalise_link($b)) === 0)
return true; return true;
return false; return false;
}} }}
@ -1289,7 +1289,7 @@ function put_item_in_cache(&$item, $update = false) {
// 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')) {
/** /**
* 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
@ -1316,7 +1316,7 @@ function prepare_body(&$item,$attach = false, $preview = false) {
$taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`", $taglist = q("SELECT `type`, `term`, `url` FROM `term` WHERE `otype` = %d AND `oid` = %d AND `type` IN (%d, %d) ORDER BY `tid`",
intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION)); intval(TERM_OBJ_POST), intval($item['id']), intval(TERM_HASHTAG), intval(TERM_MENTION));
foreach($taglist as $tag) { foreach ($taglist as $tag) {
if ($tag["url"] == "") if ($tag["url"] == "")
$tag["url"] = $searchpath.strtolower($tag["term"]); $tag["url"] = $searchpath.strtolower($tag["term"]);
@ -1350,7 +1350,7 @@ function prepare_body(&$item,$attach = false, $preview = false) {
call_hooks('prepare_body', $prep_arr); call_hooks('prepare_body', $prep_arr);
$s = $prep_arr['html']; $s = $prep_arr['html'];
if(! $attach) { if (! $attach) {
// Replace the blockquotes with quotes that are used in mails // Replace the blockquotes with quotes that are used in mails
$mailquote = '<blockquote type="cite" class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">'; $mailquote = '<blockquote type="cite" class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">';
$s = str_replace(array('<blockquote>', '<blockquote class="spoiler">', '<blockquote class="author">'), array($mailquote, $mailquote, $mailquote), $s); $s = str_replace(array('<blockquote>', '<blockquote class="spoiler">', '<blockquote class="author">'), array($mailquote, $mailquote, $mailquote), $s);
@ -1360,23 +1360,23 @@ function prepare_body(&$item,$attach = false, $preview = false) {
$as = ''; $as = '';
$vhead = false; $vhead = false;
$arr = explode('[/attach],',$item['attach']); $arr = explode('[/attach],',$item['attach']);
if(count($arr)) { if (count($arr)) {
$as .= '<div class="body-attach">'; $as .= '<div class="body-attach">';
foreach($arr as $r) { foreach ($arr as $r) {
$matches = false; $matches = false;
$icon = ''; $icon = '';
$cnt = preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches, PREG_SET_ORDER); $cnt = preg_match_all('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches, PREG_SET_ORDER);
if($cnt) { if ($cnt) {
foreach($matches as $mtch) { foreach ($matches as $mtch) {
$mime = $mtch[3]; $mime = $mtch[3];
if((local_user() == $item['uid']) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN)) if ((local_user() == $item['uid']) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN))
$the_url = 'redir/' . $item['contact-id'] . '?f=1&url=' . $mtch[1]; $the_url = 'redir/' . $item['contact-id'] . '?f=1&url=' . $mtch[1];
else else
$the_url = $mtch[1]; $the_url = $mtch[1];
if(strpos($mime, 'video') !== false) { if (strpos($mime, 'video') !== false) {
if(!$vhead) { if (!$vhead) {
$vhead = true; $vhead = true;
$a->page['htmlhead'] .= replace_macros(get_markup_template('videos_head.tpl'), array( $a->page['htmlhead'] .= replace_macros(get_markup_template('videos_head.tpl'), array(
'$baseurl' => z_root(), '$baseurl' => z_root(),
@ -1398,7 +1398,7 @@ function prepare_body(&$item,$attach = false, $preview = false) {
} }
$filetype = strtolower(substr( $mime, 0, strpos($mime,'/') )); $filetype = strtolower(substr( $mime, 0, strpos($mime,'/') ));
if($filetype) { if ($filetype) {
$filesubtype = strtolower(substr( $mime, strpos($mime,'/') + 1 )); $filesubtype = strtolower(substr( $mime, strpos($mime,'/') + 1 ));
$filesubtype = str_replace('.', '-', $filesubtype); $filesubtype = str_replace('.', '-', $filesubtype);
} }
@ -1433,7 +1433,7 @@ function prepare_body(&$item,$attach = false, $preview = false) {
$s = $s . $as; $s = $s . $as;
// map // map
if(strpos($s,'<div class="map">') !== false && $item['coord']) { if (strpos($s,'<div class="map">') !== false && $item['coord']) {
$x = generate_map(trim($item['coord'])); $x = generate_map(trim($item['coord']));
if ($x) { if ($x) {
$s = preg_replace('/\<div class\=\"map\"\>/','$0' . $x,$s); $s = preg_replace('/\<div class\=\"map\"\>/','$0' . $x,$s);
@ -1485,7 +1485,7 @@ function prepare_body(&$item,$attach = false, $preview = false) {
}} }}
if(! function_exists('prepare_text')) { if (! function_exists('prepare_text')) {
/** /**
* Given a text string, convert from bbcode to html and add smilie icons. * Given a text string, convert from bbcode to html and add smilie icons.
* *
@ -1496,7 +1496,7 @@ function prepare_text($text) {
require_once('include/bbcode.php'); require_once('include/bbcode.php');
if(stristr($text,'[nosmile]')) if (stristr($text,'[nosmile]'))
$s = bbcode($text); $s = bbcode($text);
else else
$s = Smilies::replace(bbcode($text)); $s = Smilies::replace(bbcode($text));
@ -1541,8 +1541,8 @@ function get_cats_and_terms($item) {
$matches = false; $first = true; $matches = false; $first = true;
$cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER); $cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) { if ($cnt) {
foreach($matches as $mtch) { foreach ($matches as $mtch) {
$categories[] = array( $categories[] = array(
'name' => xmlify(file_tag_decode($mtch[1])), 'name' => xmlify(file_tag_decode($mtch[1])),
'url' => "#", 'url' => "#",
@ -1556,11 +1556,11 @@ function get_cats_and_terms($item) {
if (count($categories)) $categories[count($categories)-1]['last'] = true; if (count($categories)) $categories[count($categories)-1]['last'] = true;
if(local_user() == $item['uid']) { if (local_user() == $item['uid']) {
$matches = false; $first = true; $matches = false; $first = true;
$cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER); $cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) { if ($cnt) {
foreach($matches as $mtch) { foreach ($matches as $mtch) {
$folders[] = array( $folders[] = array(
'name' => xmlify(file_tag_decode($mtch[1])), 'name' => xmlify(file_tag_decode($mtch[1])),
'url' => "#", 'url' => "#",
@ -1578,7 +1578,7 @@ function get_cats_and_terms($item) {
return array($categories, $folders); return array($categories, $folders);
} }
if(! function_exists('get_plink')) { if (! function_exists('get_plink')) {
/** /**
* get private link for item * get private link for item
* @param array $item * @param array $item
@ -1615,7 +1615,7 @@ function get_plink($item) {
return($ret); return($ret);
}} }}
if(! function_exists('unamp')) { if (! function_exists('unamp')) {
/** /**
* replace html amp entity with amp char * replace html amp entity with amp char
* @param string $s * @param string $s
@ -1626,7 +1626,7 @@ function unamp($s) {
}} }}
if(! function_exists('return_bytes')) { if (! function_exists('return_bytes')) {
/** /**
* return number of bytes in size (K, M, G) * return number of bytes in size (K, M, G)
* @param string $size_str * @param string $size_str
@ -1651,7 +1651,7 @@ function generate_user_guid() {
$x = q("SELECT `uid` FROM `user` WHERE `guid` = '%s' LIMIT 1", $x = q("SELECT `uid` FROM `user` WHERE `guid` = '%s' LIMIT 1",
dbesc($guid) dbesc($guid)
); );
if(! count($x)) if (! count($x))
$found = false; $found = false;
} while ($found == true ); } while ($found == true );
return $guid; return $guid;
@ -1667,7 +1667,7 @@ function base64url_encode($s, $strip_padding = false) {
$s = strtr(base64_encode($s),'+/','-_'); $s = strtr(base64_encode($s),'+/','-_');
if($strip_padding) if ($strip_padding)
$s = str_replace('=','',$s); $s = str_replace('=','',$s);
return $s; return $s;
@ -1679,7 +1679,7 @@ function base64url_encode($s, $strip_padding = false) {
*/ */
function base64url_decode($s) { function base64url_decode($s) {
if(is_array($s)) { if (is_array($s)) {
logger('base64url_decode: illegal input: ' . print_r(debug_backtrace(), true)); logger('base64url_decode: illegal input: ' . print_r(debug_backtrace(), true));
return $s; return $s;
} }
@ -1690,11 +1690,11 @@ function base64url_decode($s) {
* // Uncomment if you find you need it. * // Uncomment if you find you need it.
* *
* $l = strlen($s); * $l = strlen($s);
* if(! strpos($s,'=')) { * if (! strpos($s,'=')) {
* $m = $l % 4; * $m = $l % 4;
* if($m == 2) * if ($m == 2)
* $s .= '=='; * $s .= '==';
* if($m == 3) * if ($m == 3)
* $s .= '='; * $s .= '=';
* } * }
* *
@ -1786,10 +1786,10 @@ function bb_translate_video($s) {
$matches = null; $matches = null;
$r = preg_match_all("/\[video\](.*?)\[\/video\]/ism",$s,$matches,PREG_SET_ORDER); $r = preg_match_all("/\[video\](.*?)\[\/video\]/ism",$s,$matches,PREG_SET_ORDER);
if ($r) { if ($r) {
foreach($matches as $mtch) { foreach ($matches as $mtch) {
if((stristr($mtch[1],'youtube')) || (stristr($mtch[1],'youtu.be'))) if ((stristr($mtch[1],'youtube')) || (stristr($mtch[1],'youtu.be')))
$s = str_replace($mtch[0],'[youtube]' . $mtch[1] . '[/youtube]',$s); $s = str_replace($mtch[0],'[youtube]' . $mtch[1] . '[/youtube]',$s);
elseif(stristr($mtch[1],'vimeo')) elseif (stristr($mtch[1],'vimeo'))
$s = str_replace($mtch[0],'[vimeo]' . $mtch[1] . '[/vimeo]',$s); $s = str_replace($mtch[0],'[vimeo]' . $mtch[1] . '[/vimeo]',$s);
} }
} }
@ -1867,13 +1867,13 @@ function reltoabs($text, $base) {
* @return string * @return string
*/ */
function item_post_type($item) { function item_post_type($item) {
if(intval($item['event-id'])) if (intval($item['event-id']))
return t('event'); return t('event');
if(strlen($item['resource-id'])) if (strlen($item['resource-id']))
return t('photo'); return t('photo');
if(strlen($item['verb']) && $item['verb'] !== ACTIVITY_POST) if (strlen($item['verb']) && $item['verb'] !== ACTIVITY_POST)
return t('activity'); return t('activity');
if($item['id'] != $item['parent']) if ($item['id'] != $item['parent'])
return t('comment'); return t('comment');
return t('post'); return t('post');
} }
@ -1893,7 +1893,7 @@ function file_tag_decode($s) {
function file_tag_file_query($table,$s,$type = 'file') { function file_tag_file_query($table,$s,$type = 'file') {
if($type == 'file') if ($type == 'file')
$str = preg_quote( '[' . str_replace('%','%%',file_tag_encode($s)) . ']' ); $str = preg_quote( '[' . str_replace('%','%%',file_tag_encode($s)) . ']' );
else else
$str = preg_quote( '<' . str_replace('%','%%',file_tag_encode($s)) . '>' ); $str = preg_quote( '<' . str_replace('%','%%',file_tag_encode($s)) . '>' );
@ -1903,9 +1903,9 @@ function file_tag_file_query($table,$s,$type = 'file') {
// ex. given music,video return <music><video> or [music][video] // ex. given music,video return <music><video> or [music][video]
function file_tag_list_to_file($list,$type = 'file') { function file_tag_list_to_file($list,$type = 'file') {
$tag_list = ''; $tag_list = '';
if(strlen($list)) { if (strlen($list)) {
$list_array = explode(",",$list); $list_array = explode(",",$list);
if($type == 'file') { if ($type == 'file') {
$lbracket = '['; $lbracket = '[';
$rbracket = ']'; $rbracket = ']';
} }
@ -1914,8 +1914,8 @@ function file_tag_list_to_file($list,$type = 'file') {
$rbracket = '>'; $rbracket = '>';
} }
foreach($list_array as $item) { foreach ($list_array as $item) {
if(strlen($item)) { if (strlen($item)) {
$tag_list .= $lbracket . file_tag_encode(trim($item)) . $rbracket; $tag_list .= $lbracket . file_tag_encode(trim($item)) . $rbracket;
} }
} }
@ -1927,15 +1927,15 @@ function file_tag_list_to_file($list,$type = 'file') {
function file_tag_file_to_list($file,$type = 'file') { function file_tag_file_to_list($file,$type = 'file') {
$matches = false; $matches = false;
$list = ''; $list = '';
if($type == 'file') { if ($type == 'file') {
$cnt = preg_match_all('/\[(.*?)\]/',$file,$matches,PREG_SET_ORDER); $cnt = preg_match_all('/\[(.*?)\]/',$file,$matches,PREG_SET_ORDER);
} }
else { else {
$cnt = preg_match_all('/<(.*?)>/',$file,$matches,PREG_SET_ORDER); $cnt = preg_match_all('/<(.*?)>/',$file,$matches,PREG_SET_ORDER);
} }
if($cnt) { if ($cnt) {
foreach($matches as $mtch) { foreach ($matches as $mtch) {
if(strlen($list)) if (strlen($list))
$list .= ','; $list .= ',';
$list .= file_tag_decode($mtch[1]); $list .= file_tag_decode($mtch[1]);
} }
@ -1948,15 +1948,15 @@ function file_tag_update_pconfig($uid,$file_old,$file_new,$type = 'file') {
// $file_old - categories previously associated with an item // $file_old - categories previously associated with an item
// $file_new - new list of categories for an item // $file_new - new list of categories for an item
if(! intval($uid)) if (! intval($uid))
return false; return false;
if($file_old == $file_new) if ($file_old == $file_new)
return true; return true;
$saved = get_pconfig($uid,'system','filetags'); $saved = get_pconfig($uid,'system','filetags');
if(strlen($saved)) { if (strlen($saved)) {
if($type == 'file') { if ($type == 'file') {
$lbracket = '['; $lbracket = '[';
$rbracket = ']'; $rbracket = ']';
$termtype = TERM_FILE; $termtype = TERM_FILE;
@ -1973,8 +1973,8 @@ function file_tag_update_pconfig($uid,$file_old,$file_new,$type = 'file') {
$new_tags = array(); $new_tags = array();
$check_new_tags = explode(",",file_tag_file_to_list($file_new,$type)); $check_new_tags = explode(",",file_tag_file_to_list($file_new,$type));
foreach($check_new_tags as $tag) { foreach ($check_new_tags as $tag) {
if(! stristr($saved,$lbracket . file_tag_encode($tag) . $rbracket)) if (! stristr($saved,$lbracket . file_tag_encode($tag) . $rbracket))
$new_tags[] = $tag; $new_tags[] = $tag;
} }
@ -1984,12 +1984,12 @@ function file_tag_update_pconfig($uid,$file_old,$file_new,$type = 'file') {
$deleted_tags = array(); $deleted_tags = array();
$check_deleted_tags = explode(",",file_tag_file_to_list($file_old,$type)); $check_deleted_tags = explode(",",file_tag_file_to_list($file_old,$type));
foreach($check_deleted_tags as $tag) { foreach ($check_deleted_tags as $tag) {
if(! stristr($file_new,$lbracket . file_tag_encode($tag) . $rbracket)) if (! stristr($file_new,$lbracket . file_tag_encode($tag) . $rbracket))
$deleted_tags[] = $tag; $deleted_tags[] = $tag;
} }
foreach($deleted_tags as $key => $tag) { foreach ($deleted_tags as $key => $tag) {
$r = q("SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d", $r = q("SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d",
dbesc($tag), dbesc($tag),
intval(TERM_OBJ_POST), intval(TERM_OBJ_POST),
@ -2008,13 +2008,13 @@ function file_tag_update_pconfig($uid,$file_old,$file_new,$type = 'file') {
} }
} }
if($saved != $filetags_updated) { if ($saved != $filetags_updated) {
set_pconfig($uid,'system','filetags', $filetags_updated); set_pconfig($uid,'system','filetags', $filetags_updated);
} }
return true; return true;
} }
else else
if(strlen($file_new)) { if (strlen($file_new)) {
set_pconfig($uid,'system','filetags', $file_new); set_pconfig($uid,'system','filetags', $file_new);
} }
return true; return true;
@ -2024,14 +2024,14 @@ function file_tag_save_file($uid,$item,$file) {
require_once("include/files.php"); require_once("include/files.php");
$result = false; $result = false;
if(! intval($uid)) if (! intval($uid))
return false; return false;
$r = q("SELECT `file` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1", $r = q("SELECT `file` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($item), intval($item),
intval($uid) intval($uid)
); );
if (dbm::is_result($r)) { if (dbm::is_result($r)) {
if(! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']')) if (! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']'))
q("UPDATE `item` SET `file` = '%s' WHERE `id` = %d AND `uid` = %d", q("UPDATE `item` SET `file` = '%s' WHERE `id` = %d AND `uid` = %d",
dbesc($r[0]['file'] . '[' . file_tag_encode($file) . ']'), dbesc($r[0]['file'] . '[' . file_tag_encode($file) . ']'),
intval($item), intval($item),
@ -2041,7 +2041,7 @@ function file_tag_save_file($uid,$item,$file) {
create_files_from_item($item); create_files_from_item($item);
$saved = get_pconfig($uid,'system','filetags'); $saved = get_pconfig($uid,'system','filetags');
if((! strlen($saved)) || (! stristr($saved,'[' . file_tag_encode($file) . ']'))) if ((! strlen($saved)) || (! stristr($saved,'[' . file_tag_encode($file) . ']')))
set_pconfig($uid,'system','filetags',$saved . '[' . file_tag_encode($file) . ']'); set_pconfig($uid,'system','filetags',$saved . '[' . file_tag_encode($file) . ']');
info( t('Item filed') ); info( t('Item filed') );
} }
@ -2052,10 +2052,10 @@ function file_tag_unsave_file($uid,$item,$file,$cat = false) {
require_once("include/files.php"); require_once("include/files.php");
$result = false; $result = false;
if(! intval($uid)) if (! intval($uid))
return false; return false;
if($cat == true) { if ($cat == true) {
$pattern = '<' . file_tag_encode($file) . '>' ; $pattern = '<' . file_tag_encode($file) . '>' ;
$termtype = TERM_CATEGORY; $termtype = TERM_CATEGORY;
} else { } else {
@ -2105,8 +2105,8 @@ function normalise_openid($s) {
function undo_post_tagging($s) { function undo_post_tagging($s) {
$matches = null; $matches = null;
$cnt = preg_match_all('/([!#@])\[url=(.*?)\](.*?)\[\/url\]/ism',$s,$matches,PREG_SET_ORDER); $cnt = preg_match_all('/([!#@])\[url=(.*?)\](.*?)\[\/url\]/ism',$s,$matches,PREG_SET_ORDER);
if($cnt) { if ($cnt) {
foreach($matches as $mtch) { foreach ($matches as $mtch) {
$s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s); $s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s);
} }
} }
@ -2120,11 +2120,11 @@ function protect_sprintf($s) {
function is_a_date_arg($s) { function is_a_date_arg($s) {
$i = intval($s); $i = intval($s);
if($i > 1900) { if ($i > 1900) {
$y = date('Y'); $y = date('Y');
if($i <= $y+1 && strpos($s,'-') == 4) { if ($i <= $y+1 && strpos($s,'-') == 4) {
$m = intval(substr($s,5)); $m = intval(substr($s,5));
if($m > 0 && $m <= 12) if ($m > 0 && $m <= 12)
return true; return true;
} }
} }
@ -2228,7 +2228,6 @@ function text_highlight($s, $lang) {
$o = $hl->highlight($s); $o = $hl->highlight($s);
$o = str_replace("\n", '', $o); $o = str_replace("\n", '', $o);
if ($tag_added) { if ($tag_added) {
$b = substr($o, 0, strpos($o, '<li>')); $b = substr($o, 0, strpos($o, '<li>'));
$e = substr($o, strpos($o, '</li>')); $e = substr($o, strpos($o, '</li>'));

View file

@ -177,29 +177,34 @@ function add_shadow_entry($itemid) {
function update_thread_uri($itemuri, $uid) { function update_thread_uri($itemuri, $uid) {
$messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid)); $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid));
if (dbm::is_result($messages)) if (dbm::is_result($messages)) {
foreach ($messages as $message) foreach ($messages as $message) {
update_thread($message["id"]); update_thread($message["id"]);
}
}
} }
function update_thread($itemid, $setmention = false) { function update_thread($itemid, $setmention = false) {
$items = q("SELECT `uid`, `guid`, `title`, `body`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, `moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`, `gcontact-id`, $items = q("SELECT `uid`, `guid`, `title`, `body`, `created`, `edited`, `commented`, `received`, `changed`, `wall`, `private`, `pubmail`, `moderated`, `visible`, `spam`, `starred`, `bookmark`, `contact-id`, `gcontact-id`,
`deleted`, `origin`, `forum_mode`, `network`, `rendered-html`, `rendered-hash` FROM `item` WHERE `id` = %d AND (`parent` = %d OR `parent` = 0) LIMIT 1", intval($itemid), intval($itemid)); `deleted`, `origin`, `forum_mode`, `network`, `rendered-html`, `rendered-hash` FROM `item` WHERE `id` = %d AND (`parent` = %d OR `parent` = 0) LIMIT 1", intval($itemid), intval($itemid));
if (!dbm::is_result($items)) if (!dbm::is_result($items)) {
return; return;
}
$item = $items[0]; $item = $items[0];
if ($setmention) if ($setmention) {
$item["mention"] = 1; $item["mention"] = 1;
}
$sql = ""; $sql = "";
foreach ($item AS $field => $data) foreach ($item AS $field => $data)
if (!in_array($field, array("guid", "title", "body", "rendered-html", "rendered-hash"))) { if (!in_array($field, array("guid", "title", "body", "rendered-html", "rendered-hash"))) {
if ($sql != "") if ($sql != "") {
$sql .= ", "; $sql .= ", ";
}
$sql .= "`".$field."` = '".dbesc($data)."'"; $sql .= "`".$field."` = '".dbesc($data)."'";
} }
@ -211,8 +216,9 @@ function update_thread($itemid, $setmention = false) {
// Updating a shadow item entry // Updating a shadow item entry
$items = q("SELECT `id` FROM `item` WHERE `guid` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item["guid"])); $items = q("SELECT `id` FROM `item` WHERE `guid` = '%s' AND `uid` = 0 LIMIT 1", dbesc($item["guid"]));
if (!$items) if (!dbm::is_result($items)) {
return; return;
}
$result = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `rendered-html` = '%s', `rendered-hash` = '%s' WHERE `id` = %d", $result = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `rendered-html` = '%s', `rendered-hash` = '%s' WHERE `id` = %d",
dbesc($item["title"]), dbesc($item["title"]),
@ -227,9 +233,11 @@ function update_thread($itemid, $setmention = false) {
function delete_thread_uri($itemuri, $uid) { function delete_thread_uri($itemuri, $uid) {
$messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid)); $messages = q("SELECT `id` FROM `item` WHERE uri ='%s' AND uid=%d", dbesc($itemuri), intval($uid));
if(count($messages)) if (dbm::is_result($messages)) {
foreach ($messages as $message) foreach ($messages as $message) {
delete_thread($message["id"], $itemuri); delete_thread($message["id"], $itemuri);
}
}
} }
function delete_thread($itemid, $itemuri = "") { function delete_thread($itemid, $itemuri = "") {