Revert "Coding convention applied - part 1"
This commit is contained in:
parent
9c2c483996
commit
7b352f3f74
181 changed files with 3507 additions and 4338 deletions
457
boot.php
457
boot.php
|
|
@ -560,12 +560,12 @@ class App {
|
||||||
* beyond are used.
|
* beyond are used.
|
||||||
*/
|
*/
|
||||||
public $theme = array(
|
public $theme = array(
|
||||||
'sourcename' => '',
|
'sourcename' => '',
|
||||||
'videowidth' => 425,
|
'videowidth' => 425,
|
||||||
'videoheight' => 350,
|
'videoheight' => 350,
|
||||||
'force_max_items' => 0,
|
'force_max_items' => 0,
|
||||||
'thread_allow' => true,
|
'thread_allow' => true,
|
||||||
'stylesheet' => '',
|
'stylesheet' => '',
|
||||||
'template_engine' => 'smarty3',
|
'template_engine' => 'smarty3',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -654,7 +654,7 @@ class App {
|
||||||
|
|
||||||
|
|
||||||
$this->scheme = 'http';
|
$this->scheme = 'http';
|
||||||
if ((x($_SERVER,'HTTPS') && $_SERVER['HTTPS']) ||
|
if((x($_SERVER,'HTTPS') && $_SERVER['HTTPS']) ||
|
||||||
(x($_SERVER['HTTP_FORWARDED']) && preg_match("/proto=https/", $_SERVER['HTTP_FORWARDED'])) ||
|
(x($_SERVER['HTTP_FORWARDED']) && preg_match("/proto=https/", $_SERVER['HTTP_FORWARDED'])) ||
|
||||||
(x($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') ||
|
(x($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') ||
|
||||||
(x($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') ||
|
(x($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') ||
|
||||||
|
|
@ -662,12 +662,12 @@ class App {
|
||||||
(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) // XXX: reasonable assumption, but isn't this hardcoding too much?
|
(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443)) // XXX: reasonable assumption, but isn't this hardcoding too much?
|
||||||
) {
|
) {
|
||||||
$this->scheme = 'https';
|
$this->scheme = 'https';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_SERVER,'SERVER_NAME')) {
|
if(x($_SERVER,'SERVER_NAME')) {
|
||||||
$this->hostname = $_SERVER['SERVER_NAME'];
|
$this->hostname = $_SERVER['SERVER_NAME'];
|
||||||
|
|
||||||
if (x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
|
if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
|
||||||
$this->hostname .= ':' . $_SERVER['SERVER_PORT'];
|
$this->hostname .= ':' . $_SERVER['SERVER_PORT'];
|
||||||
/*
|
/*
|
||||||
* Figure out if we are running at the top of a domain
|
* Figure out if we are running at the top of a domain
|
||||||
|
|
@ -675,7 +675,7 @@ class App {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
|
$path = trim(dirname($_SERVER['SCRIPT_NAME']),'/\\');
|
||||||
if (isset($path) && strlen($path) && ($path != $this->path))
|
if(isset($path) && strlen($path) && ($path != $this->path))
|
||||||
$this->path = $path;
|
$this->path = $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -711,6 +711,7 @@ class App {
|
||||||
// fix query_string
|
// fix query_string
|
||||||
$this->query_string = str_replace($this->cmd."&",$this->cmd."?", $this->query_string);
|
$this->query_string = str_replace($this->cmd."&",$this->cmd."?", $this->query_string);
|
||||||
|
|
||||||
|
|
||||||
// unix style "homedir"
|
// unix style "homedir"
|
||||||
|
|
||||||
if (substr($this->cmd,0,1) === '~') {
|
if (substr($this->cmd,0,1) === '~') {
|
||||||
|
|
@ -741,10 +742,11 @@ class App {
|
||||||
|
|
||||||
$this->argv = explode('/',$this->cmd);
|
$this->argv = explode('/',$this->cmd);
|
||||||
$this->argc = count($this->argv);
|
$this->argc = count($this->argv);
|
||||||
if ((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
|
if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
|
||||||
$this->module = str_replace(".", "_", $this->argv[0]);
|
$this->module = str_replace(".", "_", $this->argv[0]);
|
||||||
$this->module = str_replace("-", "_", $this->module);
|
$this->module = str_replace("-", "_", $this->module);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$this->argc = 1;
|
$this->argc = 1;
|
||||||
$this->argv = array('home');
|
$this->argv = array('home');
|
||||||
$this->module = 'home';
|
$this->module = 'home';
|
||||||
|
|
@ -758,9 +760,8 @@ class App {
|
||||||
$this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
|
$this->pager['page'] = ((x($_GET,'page') && intval($_GET['page']) > 0) ? intval($_GET['page']) : 1);
|
||||||
$this->pager['itemspage'] = 50;
|
$this->pager['itemspage'] = 50;
|
||||||
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
|
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
|
||||||
if ($this->pager['start'] < 0) {
|
if($this->pager['start'] < 0)
|
||||||
$this->pager['start'] = 0;
|
$this->pager['start'] = 0;
|
||||||
}
|
|
||||||
$this->pager['total'] = 0;
|
$this->pager['total'] = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -792,17 +793,14 @@ class App {
|
||||||
|
|
||||||
$basepath = get_config("system", "basepath");
|
$basepath = get_config("system", "basepath");
|
||||||
|
|
||||||
if ($basepath == "") {
|
if ($basepath == "")
|
||||||
$basepath = dirname(__FILE__);
|
$basepath = dirname(__FILE__);
|
||||||
}
|
|
||||||
|
|
||||||
if ($basepath == "") {
|
if ($basepath == "")
|
||||||
$basepath = $_SERVER["DOCUMENT_ROOT"];
|
$basepath = $_SERVER["DOCUMENT_ROOT"];
|
||||||
}
|
|
||||||
|
|
||||||
if ($basepath == "") {
|
if ($basepath == "")
|
||||||
$basepath = $_SERVER["PWD"];
|
$basepath = $_SERVER["PWD"];
|
||||||
}
|
|
||||||
|
|
||||||
return($basepath);
|
return($basepath);
|
||||||
}
|
}
|
||||||
|
|
@ -866,7 +864,7 @@ class App {
|
||||||
function set_baseurl($url) {
|
function set_baseurl($url) {
|
||||||
$parsed = @parse_url($url);
|
$parsed = @parse_url($url);
|
||||||
|
|
||||||
if ($parsed) {
|
if($parsed) {
|
||||||
$this->scheme = $parsed['scheme'];
|
$this->scheme = $parsed['scheme'];
|
||||||
|
|
||||||
$hostname = $parsed['host'];
|
$hostname = $parsed['host'];
|
||||||
|
|
@ -878,7 +876,7 @@ class App {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file_exists(".htpreconfig.php")) {
|
if (file_exists(".htpreconfig.php")) {
|
||||||
include(".htpreconfig.php");
|
@include(".htpreconfig.php");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_config('config', 'hostname') != '') {
|
if (get_config('config', 'hostname') != '') {
|
||||||
|
|
@ -892,9 +890,8 @@ class App {
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_hostname() {
|
function get_hostname() {
|
||||||
if (get_config('config','hostname') != "") {
|
if (get_config('config','hostname') != "")
|
||||||
$this->hostname = get_config('config','hostname');
|
$this->hostname = get_config('config','hostname');
|
||||||
}
|
|
||||||
|
|
||||||
return $this->hostname;
|
return $this->hostname;
|
||||||
}
|
}
|
||||||
|
|
@ -929,49 +926,44 @@ class App {
|
||||||
$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
|
$interval = ((local_user()) ? get_pconfig(local_user(),'system','update_interval') : 40000);
|
||||||
|
|
||||||
// If the update is "deactivated" set it to the highest integer number (~24 days)
|
// If the update is "deactivated" set it to the highest integer number (~24 days)
|
||||||
if ($interval < 0) {
|
if ($interval < 0)
|
||||||
$interval = 2147483647;
|
$interval = 2147483647;
|
||||||
}
|
|
||||||
|
|
||||||
if ($interval < 10000) {
|
if($interval < 10000)
|
||||||
$interval = 40000;
|
$interval = 40000;
|
||||||
}
|
|
||||||
|
|
||||||
// compose the page title from the sitename and the
|
// compose the page title from the sitename and the
|
||||||
// current module called
|
// current module called
|
||||||
if (!$this->module=='') {
|
if (!$this->module=='')
|
||||||
$this->page['title'] = $this->config['sitename'].' ('.$this->module.')';
|
{
|
||||||
|
$this->page['title'] = $this->config['sitename'].' ('.$this->module.')';
|
||||||
} else {
|
} else {
|
||||||
$this->page['title'] = $this->config['sitename'];
|
$this->page['title'] = $this->config['sitename'];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* put the head template at the beginning of page['htmlhead']
|
/* put the head template at the beginning of page['htmlhead']
|
||||||
* since the code added by the modules frequently depends on it
|
* since the code added by the modules frequently depends on it
|
||||||
* being first
|
* being first
|
||||||
*/
|
*/
|
||||||
if (!isset($this->page['htmlhead'])) {
|
if(!isset($this->page['htmlhead']))
|
||||||
$this->page['htmlhead'] = '';
|
$this->page['htmlhead'] = '';
|
||||||
}
|
|
||||||
|
|
||||||
// If we're using Smarty, then doing replace_macros() will replace
|
// If we're using Smarty, then doing replace_macros() will replace
|
||||||
// any unrecognized variables with a blank string. Since we delay
|
// any unrecognized variables with a blank string. Since we delay
|
||||||
// replacing $stylesheet until later, we need to replace it now
|
// replacing $stylesheet until later, we need to replace it now
|
||||||
// with another variable name
|
// with another variable name
|
||||||
if ($this->theme['template_engine'] === 'smarty3') {
|
if($this->theme['template_engine'] === 'smarty3')
|
||||||
$stylesheet = $this->get_template_ldelim('smarty3') . '$stylesheet' . $this->get_template_rdelim('smarty3');
|
$stylesheet = $this->get_template_ldelim('smarty3') . '$stylesheet' . $this->get_template_rdelim('smarty3');
|
||||||
} else {
|
else
|
||||||
$stylesheet = '$stylesheet';
|
$stylesheet = '$stylesheet';
|
||||||
}
|
|
||||||
|
|
||||||
$shortcut_icon = get_config("system", "shortcut_icon");
|
$shortcut_icon = get_config("system", "shortcut_icon");
|
||||||
if ($shortcut_icon == "") {
|
if ($shortcut_icon == "")
|
||||||
$shortcut_icon = "images/friendica-32.png";
|
$shortcut_icon = "images/friendica-32.png";
|
||||||
}
|
|
||||||
|
|
||||||
$touch_icon = get_config("system", "touch_icon");
|
$touch_icon = get_config("system", "touch_icon");
|
||||||
if ($touch_icon == "") {
|
if ($touch_icon == "")
|
||||||
$touch_icon = "images/friendica-128.png";
|
$touch_icon = "images/friendica-128.png";
|
||||||
}
|
|
||||||
|
|
||||||
// get data wich is needed for infinite scroll on the network page
|
// get data wich is needed for infinite scroll on the network page
|
||||||
$invinite_scroll = infinite_scroll_data($this->module);
|
$invinite_scroll = infinite_scroll_data($this->module);
|
||||||
|
|
@ -993,9 +985,8 @@ class App {
|
||||||
}
|
}
|
||||||
|
|
||||||
function init_page_end() {
|
function init_page_end() {
|
||||||
if (!isset($this->page['end'])) {
|
if(!isset($this->page['end']))
|
||||||
$this->page['end'] = '';
|
$this->page['end'] = '';
|
||||||
}
|
|
||||||
$tpl = get_markup_template('end.tpl');
|
$tpl = get_markup_template('end.tpl');
|
||||||
$this->page['end'] = replace_macros($tpl,array(
|
$this->page['end'] = replace_macros($tpl,array(
|
||||||
'$baseurl' => $this->get_baseurl() // FIXME for z_path!!!!
|
'$baseurl' => $this->get_baseurl() // FIXME for z_path!!!!
|
||||||
|
|
@ -1031,13 +1022,13 @@ class App {
|
||||||
|
|
||||||
// The following code is deactivated. It doesn't seem to make any sense and it slows down the system.
|
// The following code is deactivated. It doesn't seem to make any sense and it slows down the system.
|
||||||
/*
|
/*
|
||||||
if ($this->cached_profile_image[$avatar_image])
|
if($this->cached_profile_image[$avatar_image])
|
||||||
return $this->cached_profile_image[$avatar_image];
|
return $this->cached_profile_image[$avatar_image];
|
||||||
|
|
||||||
$path_parts = explode("/",$avatar_image);
|
$path_parts = explode("/",$avatar_image);
|
||||||
$common_filename = $path_parts[count($path_parts)-1];
|
$common_filename = $path_parts[count($path_parts)-1];
|
||||||
|
|
||||||
if ($this->cached_profile_picdate[$common_filename]){
|
if($this->cached_profile_picdate[$common_filename]){
|
||||||
$this->cached_profile_image[$avatar_image] = $avatar_image . $this->cached_profile_picdate[$common_filename];
|
$this->cached_profile_image[$avatar_image] = $avatar_image . $this->cached_profile_picdate[$common_filename];
|
||||||
} else {
|
} else {
|
||||||
$r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'",
|
$r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'",
|
||||||
|
|
@ -1092,7 +1083,7 @@ class App {
|
||||||
function register_template_engine($class, $name = '') {
|
function register_template_engine($class, $name = '') {
|
||||||
if ($name===""){
|
if ($name===""){
|
||||||
$v = get_class_vars( $class );
|
$v = get_class_vars( $class );
|
||||||
if (x($v,"name")) $name = $v['name'];
|
if(x($v,"name")) $name = $v['name'];
|
||||||
}
|
}
|
||||||
if ($name===""){
|
if ($name===""){
|
||||||
echo "template engine <tt>$class</tt> cannot be registered without a name.\n";
|
echo "template engine <tt>$class</tt> cannot be registered without a name.\n";
|
||||||
|
|
@ -1121,7 +1112,7 @@ class App {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($this->template_engines[$template_engine])){
|
if (isset($this->template_engines[$template_engine])){
|
||||||
if (isset($this->template_engine_instance[$template_engine])){
|
if(isset($this->template_engine_instance[$template_engine])){
|
||||||
return $this->template_engine_instance[$template_engine];
|
return $this->template_engine_instance[$template_engine];
|
||||||
} else {
|
} else {
|
||||||
$class = $this->template_engines[$template_engine];
|
$class = $this->template_engines[$template_engine];
|
||||||
|
|
@ -1150,7 +1141,7 @@ class App {
|
||||||
|
|
||||||
switch($engine) {
|
switch($engine) {
|
||||||
case 'smarty3':
|
case 'smarty3':
|
||||||
if (is_writable('view/smarty3/'))
|
if(is_writable('view/smarty3/'))
|
||||||
$this->theme['template_engine'] = 'smarty3';
|
$this->theme['template_engine'] = 'smarty3';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
@ -1168,9 +1159,8 @@ class App {
|
||||||
}
|
}
|
||||||
|
|
||||||
function save_timestamp($stamp, $value) {
|
function save_timestamp($stamp, $value) {
|
||||||
if (!isset($this->config['system']['profiler']) || !$this->config['system']['profiler']) {
|
if (!isset($this->config['system']['profiler']) || !$this->config['system']['profiler'])
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$duration = (float)(microtime(true)-$stamp);
|
$duration = (float)(microtime(true)-$stamp);
|
||||||
|
|
||||||
|
|
@ -1252,9 +1242,8 @@ class App {
|
||||||
array_shift($trace);
|
array_shift($trace);
|
||||||
|
|
||||||
$callstack = array();
|
$callstack = array();
|
||||||
foreach ($trace AS $func) {
|
foreach ($trace AS $func)
|
||||||
$callstack[] = $func["function"];
|
$callstack[] = $func["function"];
|
||||||
}
|
|
||||||
|
|
||||||
return implode(", ", $callstack);
|
return implode(", ", $callstack);
|
||||||
}
|
}
|
||||||
|
|
@ -1276,33 +1265,31 @@ class App {
|
||||||
* @return bool Is it a known backend?
|
* @return bool Is it a known backend?
|
||||||
*/
|
*/
|
||||||
function is_backend() {
|
function is_backend() {
|
||||||
static $backend = array(
|
$backend = array();
|
||||||
"_well_known",
|
$backend[] = "_well_known";
|
||||||
"api",
|
$backend[] = "api";
|
||||||
"dfrn_notify",
|
$backend[] = "dfrn_notify";
|
||||||
"fetch",
|
$backend[] = "fetch";
|
||||||
"hcard",
|
$backend[] = "hcard";
|
||||||
"hostxrd",
|
$backend[] = "hostxrd";
|
||||||
"nodeinfo",
|
$backend[] = "nodeinfo";
|
||||||
"noscrape",
|
$backend[] = "noscrape";
|
||||||
"p",
|
$backend[] = "p";
|
||||||
"poco",
|
$backend[] = "poco";
|
||||||
"post",
|
$backend[] = "post";
|
||||||
"proxy",
|
$backend[] = "proxy";
|
||||||
"pubsub",
|
$backend[] = "pubsub";
|
||||||
"pubsubhubbub",
|
$backend[] = "pubsubhubbub";
|
||||||
"receive",
|
$backend[] = "receive";
|
||||||
"rsd_xml",
|
$backend[] = "rsd_xml";
|
||||||
"salmon",
|
$backend[] = "salmon";
|
||||||
"statistics_json",
|
$backend[] = "statistics_json";
|
||||||
"xrd",
|
$backend[] = "xrd";
|
||||||
);
|
|
||||||
|
|
||||||
if (in_array($this->module, $backend)) {
|
if (in_array($this->module, $backend))
|
||||||
return(true);
|
return(true);
|
||||||
} else {
|
else
|
||||||
return($this->backend);
|
return($this->backend);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1315,15 +1302,13 @@ class App {
|
||||||
if ($this->is_backend()) {
|
if ($this->is_backend()) {
|
||||||
$process = "backend";
|
$process = "backend";
|
||||||
$max_processes = get_config('system', 'max_processes_backend');
|
$max_processes = get_config('system', 'max_processes_backend');
|
||||||
if (intval($max_processes) == 0) {
|
if (intval($max_processes) == 0)
|
||||||
$max_processes = 5;
|
$max_processes = 5;
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$process = "frontend";
|
$process = "frontend";
|
||||||
$max_processes = get_config('system', 'max_processes_frontend');
|
$max_processes = get_config('system', 'max_processes_frontend');
|
||||||
if (intval($max_processes) == 0) {
|
if (intval($max_processes) == 0)
|
||||||
$max_processes = 20;
|
$max_processes = 20;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$processlist = dbm::processlist();
|
$processlist = dbm::processlist();
|
||||||
|
|
@ -1348,15 +1333,13 @@ class App {
|
||||||
if ($this->is_backend()) {
|
if ($this->is_backend()) {
|
||||||
$process = "backend";
|
$process = "backend";
|
||||||
$maxsysload = intval(get_config('system', 'maxloadavg'));
|
$maxsysload = intval(get_config('system', 'maxloadavg'));
|
||||||
if ($maxsysload < 1) {
|
if ($maxsysload < 1)
|
||||||
$maxsysload = 50;
|
$maxsysload = 50;
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$process = "frontend";
|
$process = "frontend";
|
||||||
$maxsysload = intval(get_config('system','maxloadavg_frontend'));
|
$maxsysload = intval(get_config('system','maxloadavg_frontend'));
|
||||||
if ($maxsysload < 1) {
|
if ($maxsysload < 1)
|
||||||
$maxsysload = 50;
|
$maxsysload = 50;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$load = current_load();
|
$load = current_load();
|
||||||
|
|
@ -1392,17 +1375,16 @@ class App {
|
||||||
// add baseurl to args. cli scripts can't construct it
|
// add baseurl to args. cli scripts can't construct it
|
||||||
$args[] = $this->get_baseurl();
|
$args[] = $this->get_baseurl();
|
||||||
|
|
||||||
for ($x = 0; $x < count($args); $x ++) {
|
for($x = 0; $x < count($args); $x ++)
|
||||||
$args[$x] = escapeshellarg($args[$x]);
|
$args[$x] = escapeshellarg($args[$x]);
|
||||||
}
|
|
||||||
|
|
||||||
$cmdline = implode($args," ");
|
$cmdline = implode($args," ");
|
||||||
|
|
||||||
if (get_config('system','proc_windows')) {
|
if(get_config('system','proc_windows'))
|
||||||
proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo,dirname(__FILE__)));
|
proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo,dirname(__FILE__)));
|
||||||
} else {
|
else
|
||||||
proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__)));
|
proc_close(proc_open($cmdline." &",array(),$foo,dirname(__FILE__)));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1479,17 +1461,17 @@ function get_app() {
|
||||||
* @return bool|int
|
* @return bool|int
|
||||||
*/
|
*/
|
||||||
function x($s,$k = NULL) {
|
function x($s,$k = NULL) {
|
||||||
if ($k != NULL) {
|
if($k != NULL) {
|
||||||
if ((is_array($s)) && (array_key_exists($k,$s))) {
|
if((is_array($s)) && (array_key_exists($k,$s))) {
|
||||||
if ($s[$k]) {
|
if($s[$k])
|
||||||
return (int) 1;
|
return (int) 1;
|
||||||
}
|
|
||||||
return (int) 0;
|
return (int) 0;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} else {
|
}
|
||||||
if (isset($s)) {
|
else {
|
||||||
if ($s) {
|
if(isset($s)) {
|
||||||
|
if($s) {
|
||||||
return (int) 1;
|
return (int) 1;
|
||||||
}
|
}
|
||||||
return (int) 0;
|
return (int) 0;
|
||||||
|
|
@ -1517,9 +1499,8 @@ function clean_urls() {
|
||||||
function z_path() {
|
function z_path() {
|
||||||
$base = App::get_baseurl();
|
$base = App::get_baseurl();
|
||||||
|
|
||||||
if (! clean_urls()) {
|
if(! clean_urls())
|
||||||
$base .= '/?q=';
|
$base .= '/?q=';
|
||||||
}
|
|
||||||
|
|
||||||
return $base;
|
return $base;
|
||||||
}
|
}
|
||||||
|
|
@ -1544,9 +1525,8 @@ function z_root() {
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function absurl($path) {
|
function absurl($path) {
|
||||||
if (strpos($path,'/') === 0) {
|
if(strpos($path,'/') === 0)
|
||||||
return z_path() . $path;
|
return z_path() . $path;
|
||||||
}
|
|
||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1562,13 +1542,12 @@ function is_ajax() {
|
||||||
function check_db() {
|
function check_db() {
|
||||||
|
|
||||||
$build = get_config('system','build');
|
$build = get_config('system','build');
|
||||||
if (! x($build)) {
|
if(! x($build)) {
|
||||||
set_config('system','build',DB_UPDATE_VERSION);
|
set_config('system','build',DB_UPDATE_VERSION);
|
||||||
$build = DB_UPDATE_VERSION;
|
$build = DB_UPDATE_VERSION;
|
||||||
}
|
}
|
||||||
if ($build != DB_UPDATE_VERSION) {
|
if($build != DB_UPDATE_VERSION)
|
||||||
proc_run(PRIORITY_CRITICAL, 'include/dbupdate.php');
|
proc_run(PRIORITY_CRITICAL, 'include/dbupdate.php');
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1587,12 +1566,10 @@ function check_url(App $a) {
|
||||||
// and www.example.com vs example.com.
|
// and www.example.com vs example.com.
|
||||||
// We will only change the url to an ip address if there is no existing setting
|
// We will only change the url to an ip address if there is no existing setting
|
||||||
|
|
||||||
if (! x($url)) {
|
if(! x($url))
|
||||||
$url = set_config('system','url',App::get_baseurl());
|
$url = set_config('system','url',App::get_baseurl());
|
||||||
}
|
if((! link_compare($url,App::get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname)))
|
||||||
if ((! link_compare($url,App::get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname))) {
|
|
||||||
$url = set_config('system','url',App::get_baseurl());
|
$url = set_config('system','url',App::get_baseurl());
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1603,14 +1580,13 @@ function check_url(App $a) {
|
||||||
*/
|
*/
|
||||||
function update_db(App $a) {
|
function update_db(App $a) {
|
||||||
$build = get_config('system','build');
|
$build = get_config('system','build');
|
||||||
if (! x($build)) {
|
if(! x($build))
|
||||||
$build = set_config('system','build',DB_UPDATE_VERSION);
|
$build = set_config('system','build',DB_UPDATE_VERSION);
|
||||||
}
|
|
||||||
|
|
||||||
if ($build != DB_UPDATE_VERSION) {
|
if($build != DB_UPDATE_VERSION) {
|
||||||
$stored = intval($build);
|
$stored = intval($build);
|
||||||
$current = intval(DB_UPDATE_VERSION);
|
$current = intval(DB_UPDATE_VERSION);
|
||||||
if ($stored < $current) {
|
if($stored < $current) {
|
||||||
Config::load('database');
|
Config::load('database');
|
||||||
|
|
||||||
// We're reporting a different version than what is currently installed.
|
// We're reporting a different version than what is currently installed.
|
||||||
|
|
@ -1620,13 +1596,12 @@ function update_db(App $a) {
|
||||||
// updating right this very second and the correct version of the update.php
|
// updating right this very second and the correct version of the update.php
|
||||||
// file may not be here yet. This can happen on a very busy site.
|
// file may not be here yet. This can happen on a very busy site.
|
||||||
|
|
||||||
if (DB_UPDATE_VERSION == UPDATE_VERSION) {
|
if(DB_UPDATE_VERSION == UPDATE_VERSION) {
|
||||||
// Compare the current structure with the defined structure
|
// Compare the current structure with the defined structure
|
||||||
|
|
||||||
$t = get_config('database','dbupdate_'.DB_UPDATE_VERSION);
|
$t = get_config('database','dbupdate_'.DB_UPDATE_VERSION);
|
||||||
if ($t !== false) {
|
if($t !== false)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
set_config('database','dbupdate_'.DB_UPDATE_VERSION, time());
|
set_config('database','dbupdate_'.DB_UPDATE_VERSION, time());
|
||||||
|
|
||||||
|
|
@ -1634,18 +1609,15 @@ function update_db(App $a) {
|
||||||
// conflits with new routine)
|
// conflits with new routine)
|
||||||
for ($x = $stored; $x < NEW_UPDATE_ROUTINE_VERSION; $x++) {
|
for ($x = $stored; $x < NEW_UPDATE_ROUTINE_VERSION; $x++) {
|
||||||
$r = run_update_function($x);
|
$r = run_update_function($x);
|
||||||
if (!$r) {
|
if (!$r) break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($stored < NEW_UPDATE_ROUTINE_VERSION) {
|
|
||||||
$stored = NEW_UPDATE_ROUTINE_VERSION;
|
|
||||||
}
|
}
|
||||||
|
if ($stored < NEW_UPDATE_ROUTINE_VERSION) $stored = NEW_UPDATE_ROUTINE_VERSION;
|
||||||
|
|
||||||
|
|
||||||
// run new update routine
|
// run new update routine
|
||||||
// it update the structure in one call
|
// it update the structure in one call
|
||||||
$retval = update_structure(false, true);
|
$retval = update_structure(false, true);
|
||||||
if ($retval) {
|
if($retval) {
|
||||||
update_fail(
|
update_fail(
|
||||||
DB_UPDATE_VERSION,
|
DB_UPDATE_VERSION,
|
||||||
$retval
|
$retval
|
||||||
|
|
@ -1656,11 +1628,9 @@ function update_db(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// run any left update_nnnn functions in update.php
|
// run any left update_nnnn functions in update.php
|
||||||
for ($x = $stored; $x < $current; $x ++) {
|
for($x = $stored; $x < $current; $x ++) {
|
||||||
$r = run_update_function($x);
|
$r = run_update_function($x);
|
||||||
if (!$r) {
|
if (!$r) break;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1670,7 +1640,7 @@ function update_db(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function run_update_function($x) {
|
function run_update_function($x) {
|
||||||
if (function_exists('update_' . $x)) {
|
if(function_exists('update_' . $x)) {
|
||||||
|
|
||||||
// There could be a lot of processes running or about to run.
|
// There could be a lot of processes running or about to run.
|
||||||
// We want exactly one process to run the update command.
|
// We want exactly one process to run the update command.
|
||||||
|
|
@ -1681,9 +1651,8 @@ function run_update_function($x) {
|
||||||
// delete the config entry to try again.
|
// delete the config entry to try again.
|
||||||
|
|
||||||
$t = get_config('database','update_' . $x);
|
$t = get_config('database','update_' . $x);
|
||||||
if ($t !== false) {
|
if($t !== false)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
set_config('database','update_' . $x, time());
|
set_config('database','update_' . $x, time());
|
||||||
|
|
||||||
// call the specific update
|
// call the specific update
|
||||||
|
|
@ -1691,7 +1660,7 @@ function run_update_function($x) {
|
||||||
$func = 'update_' . $x;
|
$func = 'update_' . $x;
|
||||||
$retval = $func();
|
$retval = $func();
|
||||||
|
|
||||||
if ($retval) {
|
if($retval) {
|
||||||
//send the administrator an e-mail
|
//send the administrator an e-mail
|
||||||
update_fail(
|
update_fail(
|
||||||
$x,
|
$x,
|
||||||
|
|
@ -1724,40 +1693,39 @@ function run_update_function($x) {
|
||||||
*
|
*
|
||||||
* @param App $a
|
* @param App $a
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
function check_plugins(App $a) {
|
function check_plugins(App $a) {
|
||||||
|
|
||||||
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
|
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$installed = $r;
|
$installed = $r;
|
||||||
} else {
|
else
|
||||||
$installed = array();
|
$installed = array();
|
||||||
}
|
|
||||||
|
|
||||||
$plugins = get_config('system','addon');
|
$plugins = get_config('system','addon');
|
||||||
$plugins_arr = array();
|
$plugins_arr = array();
|
||||||
|
|
||||||
if ($plugins) {
|
if($plugins)
|
||||||
$plugins_arr = explode(',',str_replace(' ', '',$plugins));
|
$plugins_arr = explode(',',str_replace(' ', '',$plugins));
|
||||||
}
|
|
||||||
|
|
||||||
$a->plugins = $plugins_arr;
|
$a->plugins = $plugins_arr;
|
||||||
|
|
||||||
$installed_arr = array();
|
$installed_arr = array();
|
||||||
|
|
||||||
if (count($installed)) {
|
if(count($installed)) {
|
||||||
foreach ($installed as $i) {
|
foreach($installed as $i) {
|
||||||
if (! in_array($i['name'],$plugins_arr)) {
|
if(! in_array($i['name'],$plugins_arr)) {
|
||||||
uninstall_plugin($i['name']);
|
uninstall_plugin($i['name']);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$installed_arr[] = $i['name'];
|
$installed_arr[] = $i['name'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($plugins_arr)) {
|
if(count($plugins_arr)) {
|
||||||
foreach ($plugins_arr as $p) {
|
foreach($plugins_arr as $p) {
|
||||||
if (! in_array($p,$installed_arr)) {
|
if(! in_array($p,$installed_arr)) {
|
||||||
install_plugin($p);
|
install_plugin($p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1817,9 +1785,10 @@ function login($register = false, $hiddens=false) {
|
||||||
|
|
||||||
$dest_url = $a->query_string;
|
$dest_url = $a->query_string;
|
||||||
|
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
$tpl = get_markup_template("logout.tpl");
|
$tpl = get_markup_template("logout.tpl");
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"),array(
|
$a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"),array(
|
||||||
'$baseurl' => $a->get_baseurl(true)
|
'$baseurl' => $a->get_baseurl(true)
|
||||||
));
|
));
|
||||||
|
|
@ -1831,29 +1800,29 @@ function login($register = false, $hiddens=false) {
|
||||||
|
|
||||||
$o .= replace_macros($tpl, array(
|
$o .= replace_macros($tpl, array(
|
||||||
|
|
||||||
'$dest_url' => $dest_url,
|
'$dest_url' => $dest_url,
|
||||||
'$logout' => t('Logout'),
|
'$logout' => t('Logout'),
|
||||||
'$login' => t('Login'),
|
'$login' => t('Login'),
|
||||||
|
|
||||||
'$lname' => array('username', t('Nickname or Email: ') , '', ''),
|
'$lname' => array('username', t('Nickname or Email: ') , '', ''),
|
||||||
'$lpassword' => array('password', t('Password: '), '', ''),
|
'$lpassword' => array('password', t('Password: '), '', ''),
|
||||||
'$lremember' => array('remember', t('Remember me'), 0, ''),
|
'$lremember' => array('remember', t('Remember me'), 0, ''),
|
||||||
|
|
||||||
'$openid' => !$noid,
|
'$openid' => !$noid,
|
||||||
'$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''),
|
'$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''),
|
||||||
|
|
||||||
'$hiddens' => $hiddens,
|
'$hiddens' => $hiddens,
|
||||||
|
|
||||||
'$register' => $reg,
|
'$register' => $reg,
|
||||||
|
|
||||||
'$lostpass' => t('Forgot your password?'),
|
'$lostpass' => t('Forgot your password?'),
|
||||||
'$lostlink' => t('Password Reset'),
|
'$lostlink' => t('Password Reset'),
|
||||||
|
|
||||||
'$tostitle' => t('Website Terms of Service'),
|
'$tostitle' => t('Website Terms of Service'),
|
||||||
'$toslink' => t('terms of service'),
|
'$toslink' => t('terms of service'),
|
||||||
|
|
||||||
'$privacytitle' => t('Website Privacy Policy'),
|
'$privacytitle' => t('Website Privacy Policy'),
|
||||||
'$privacylink' => t('privacy policy'),
|
'$privacylink' => t('privacy policy'),
|
||||||
|
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
@ -1867,9 +1836,8 @@ function login($register = false, $hiddens=false) {
|
||||||
*/
|
*/
|
||||||
function killme() {
|
function killme() {
|
||||||
|
|
||||||
if (!get_app()->is_backend()) {
|
if (!get_app()->is_backend())
|
||||||
session_write_close();
|
session_write_close();
|
||||||
}
|
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
@ -1878,9 +1846,8 @@ function killme() {
|
||||||
* @brief Redirect to another URL and terminate this process.
|
* @brief Redirect to another URL and terminate this process.
|
||||||
*/
|
*/
|
||||||
function goaway($s) {
|
function goaway($s) {
|
||||||
if (!strstr(normalise_link($s), "http://")) {
|
if (!strstr(normalise_link($s), "http://"))
|
||||||
$s = App::get_baseurl()."/".$s;
|
$s = App::get_baseurl()."/".$s;
|
||||||
}
|
|
||||||
|
|
||||||
header("Location: $s");
|
header("Location: $s");
|
||||||
killme();
|
killme();
|
||||||
|
|
@ -1928,9 +1895,8 @@ function public_contact() {
|
||||||
* @return int|bool visitor_id or false
|
* @return int|bool visitor_id or false
|
||||||
*/
|
*/
|
||||||
function remote_user() {
|
function remote_user() {
|
||||||
if ((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id'))) {
|
if((x($_SESSION,'authenticated')) && (x($_SESSION,'visitor_id')))
|
||||||
return intval($_SESSION['visitor_id']);
|
return intval($_SESSION['visitor_id']);
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1943,12 +1909,9 @@ function remote_user() {
|
||||||
*/
|
*/
|
||||||
function notice($s) {
|
function notice($s) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
if (! x($_SESSION,'sysmsg')) {
|
if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array();
|
||||||
$_SESSION['sysmsg'] = array();
|
if($a->interactive)
|
||||||
}
|
|
||||||
if ($a->interactive) {
|
|
||||||
$_SESSION['sysmsg'][] = $s;
|
$_SESSION['sysmsg'][] = $s;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1961,16 +1924,12 @@ function notice($s) {
|
||||||
function info($s) {
|
function info($s) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (local_user() AND get_pconfig(local_user(),'system','ignore_info')) {
|
if (local_user() AND get_pconfig(local_user(),'system','ignore_info'))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if (! x($_SESSION,'sysmsg_info')) {
|
if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
|
||||||
$_SESSION['sysmsg_info'] = array();
|
if($a->interactive)
|
||||||
}
|
|
||||||
if ($a->interactive) {
|
|
||||||
$_SESSION['sysmsg_info'][] = $s;
|
$_SESSION['sysmsg_info'][] = $s;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2032,9 +1991,8 @@ function proc_run($cmd){
|
||||||
$arr = array('args' => $args, 'run_cmd' => true);
|
$arr = array('args' => $args, 'run_cmd' => true);
|
||||||
|
|
||||||
call_hooks("proc_run", $arr);
|
call_hooks("proc_run", $arr);
|
||||||
if (!$arr['run_cmd'] OR !count($args)) {
|
if (!$arr['run_cmd'] OR !count($args))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$priority = PRIORITY_MEDIUM;
|
$priority = PRIORITY_MEDIUM;
|
||||||
$dont_fork = get_config("system", "worker_dont_fork");
|
$dont_fork = get_config("system", "worker_dont_fork");
|
||||||
|
|
@ -2057,13 +2015,12 @@ function proc_run($cmd){
|
||||||
$found = q("SELECT `id` FROM `workerqueue` WHERE `parameter` = '%s'",
|
$found = q("SELECT `id` FROM `workerqueue` WHERE `parameter` = '%s'",
|
||||||
dbesc($parameters));
|
dbesc($parameters));
|
||||||
|
|
||||||
if (!dbm::is_result($found)) {
|
if (!$found)
|
||||||
q("INSERT INTO `workerqueue` (`parameter`, `created`, `priority`)
|
q("INSERT INTO `workerqueue` (`parameter`, `created`, `priority`)
|
||||||
VALUES ('%s', '%s', %d)",
|
VALUES ('%s', '%s', %d)",
|
||||||
dbesc($parameters),
|
dbesc($parameters),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
intval($priority));
|
intval($priority));
|
||||||
}
|
|
||||||
|
|
||||||
// Should we quit and wait for the poller to be called as a cronjob?
|
// Should we quit and wait for the poller to be called as a cronjob?
|
||||||
if ($dont_fork) {
|
if ($dont_fork) {
|
||||||
|
|
@ -2076,14 +2033,12 @@ function proc_run($cmd){
|
||||||
// Get number of allowed number of worker threads
|
// Get number of allowed number of worker threads
|
||||||
$queues = intval(get_config("system", "worker_queues"));
|
$queues = intval(get_config("system", "worker_queues"));
|
||||||
|
|
||||||
if ($queues == 0) {
|
if ($queues == 0)
|
||||||
$queues = 4;
|
$queues = 4;
|
||||||
}
|
|
||||||
|
|
||||||
// If there are already enough workers running, don't fork another one
|
// If there are already enough workers running, don't fork another one
|
||||||
if ($workers[0]["workers"] >= $queues) {
|
if ($workers[0]["workers"] >= $queues)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// Now call the poller to execute the jobs that we just added to the queue
|
// Now call the poller to execute the jobs that we just added to the queue
|
||||||
$args = array("include/poller.php", "no_cron");
|
$args = array("include/poller.php", "no_cron");
|
||||||
|
|
@ -2100,22 +2055,20 @@ function current_theme(){
|
||||||
|
|
||||||
// Find the theme that belongs to the user whose stuff we are looking at
|
// Find the theme that belongs to the user whose stuff we are looking at
|
||||||
|
|
||||||
if ($a->profile_uid && ($a->profile_uid != local_user())) {
|
if($a->profile_uid && ($a->profile_uid != local_user())) {
|
||||||
$r = q("select theme from user where uid = %d limit 1",
|
$r = q("select theme from user where uid = %d limit 1",
|
||||||
intval($a->profile_uid)
|
intval($a->profile_uid)
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$page_theme = $r[0]['theme'];
|
$page_theme = $r[0]['theme'];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Allow folks to over-rule user themes and always use their own on their own site.
|
// Allow folks to over-rule user themes and always use their own on their own site.
|
||||||
// This works only if the user is on the same server
|
// This works only if the user is on the same server
|
||||||
|
|
||||||
if ($page_theme && local_user() && (local_user() != $a->profile_uid)) {
|
if($page_theme && local_user() && (local_user() != $a->profile_uid)) {
|
||||||
if (get_pconfig(local_user(),'system','always_my_theme')) {
|
if(get_pconfig(local_user(),'system','always_my_theme'))
|
||||||
$page_theme = null;
|
$page_theme = null;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// $mobile_detect = new Mobile_Detect();
|
// $mobile_detect = new Mobile_Detect();
|
||||||
|
|
@ -2136,44 +2089,38 @@ function current_theme(){
|
||||||
}
|
}
|
||||||
$theme_name = ((isset($_SESSION) && x($_SESSION,'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme);
|
$theme_name = ((isset($_SESSION) && x($_SESSION,'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme);
|
||||||
|
|
||||||
if ($theme_name === '---') {
|
if($theme_name === '---') {
|
||||||
// user has selected to have the mobile theme be the same as the normal one
|
// user has selected to have the mobile theme be the same as the normal one
|
||||||
$system_theme = $standard_system_theme;
|
$system_theme = $standard_system_theme;
|
||||||
$theme_name = $standard_theme_name;
|
$theme_name = $standard_theme_name;
|
||||||
|
|
||||||
if ($page_theme) {
|
if($page_theme)
|
||||||
$theme_name = $page_theme;
|
$theme_name = $page_theme;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$system_theme = $standard_system_theme;
|
$system_theme = $standard_system_theme;
|
||||||
$theme_name = $standard_theme_name;
|
$theme_name = $standard_theme_name;
|
||||||
|
|
||||||
if ($page_theme) {
|
if($page_theme)
|
||||||
$theme_name = $page_theme;
|
$theme_name = $page_theme;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($theme_name &&
|
if($theme_name &&
|
||||||
(file_exists('view/theme/' . $theme_name . '/style.css') ||
|
(file_exists('view/theme/' . $theme_name . '/style.css') ||
|
||||||
file_exists('view/theme/' . $theme_name . '/style.php'))) {
|
file_exists('view/theme/' . $theme_name . '/style.php')))
|
||||||
return($theme_name);
|
return($theme_name);
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($app_base_themes as $t) {
|
foreach($app_base_themes as $t) {
|
||||||
if (file_exists('view/theme/' . $t . '/style.css') ||
|
if(file_exists('view/theme/' . $t . '/style.css')||
|
||||||
file_exists('view/theme/' . $t . '/style.php')) {
|
file_exists('view/theme/' . $t . '/style.php'))
|
||||||
return($t);
|
return($t);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$fallback = array_merge(glob('view/theme/*/style.css'),glob('view/theme/*/style.php'));
|
$fallback = array_merge(glob('view/theme/*/style.css'),glob('view/theme/*/style.php'));
|
||||||
if (count($fallback)) {
|
if(count($fallback))
|
||||||
return (str_replace('view/theme/','', substr($fallback[0],0,-10)));
|
return (str_replace('view/theme/','', substr($fallback[0],0,-10)));
|
||||||
}
|
|
||||||
|
|
||||||
/// @TODO No final return statement?
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2190,9 +2137,8 @@ function current_theme_url() {
|
||||||
$t = current_theme();
|
$t = current_theme();
|
||||||
|
|
||||||
$opts = (($a->profile_uid) ? '?f=&puid=' . $a->profile_uid : '');
|
$opts = (($a->profile_uid) ? '?f=&puid=' . $a->profile_uid : '');
|
||||||
if (file_exists('view/theme/' . $t . '/style.php')) {
|
if (file_exists('view/theme/' . $t . '/style.php'))
|
||||||
return('view/theme/'.$t.'/style.pcss'.$opts);
|
return('view/theme/'.$t.'/style.pcss'.$opts);
|
||||||
}
|
|
||||||
|
|
||||||
return('view/theme/'.$t.'/style.css');
|
return('view/theme/'.$t.'/style.css');
|
||||||
}
|
}
|
||||||
|
|
@ -2221,9 +2167,8 @@ function feed_birthday($uid,$tz) {
|
||||||
|
|
||||||
$birthday = '';
|
$birthday = '';
|
||||||
|
|
||||||
if (! strlen($tz)) {
|
if(! strlen($tz))
|
||||||
$tz = 'UTC';
|
$tz = 'UTC';
|
||||||
}
|
|
||||||
|
|
||||||
$p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
|
$p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
|
||||||
intval($uid)
|
intval($uid)
|
||||||
|
|
@ -2231,14 +2176,13 @@ function feed_birthday($uid,$tz) {
|
||||||
|
|
||||||
if (dbm::is_result($p)) {
|
if (dbm::is_result($p)) {
|
||||||
$tmp_dob = substr($p[0]['dob'],5);
|
$tmp_dob = substr($p[0]['dob'],5);
|
||||||
if (intval($tmp_dob)) {
|
if(intval($tmp_dob)) {
|
||||||
$y = datetime_convert($tz,$tz,'now','Y');
|
$y = datetime_convert($tz,$tz,'now','Y');
|
||||||
$bd = $y . '-' . $tmp_dob . ' 00:00';
|
$bd = $y . '-' . $tmp_dob . ' 00:00';
|
||||||
$t_dob = strtotime($bd);
|
$t_dob = strtotime($bd);
|
||||||
$now = strtotime(datetime_convert($tz,$tz,'now'));
|
$now = strtotime(datetime_convert($tz,$tz,'now'));
|
||||||
if ($t_dob < $now) {
|
if($t_dob < $now)
|
||||||
$bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
|
$bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
|
||||||
}
|
|
||||||
$birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME);
|
$birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2256,8 +2200,8 @@ function is_site_admin() {
|
||||||
|
|
||||||
$adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
|
$adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
|
||||||
|
|
||||||
//if (local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
|
//if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && ($a->user['email'] === $a->config['admin_email']))
|
||||||
if (local_user() && x($a->user,'email') && x($a->config,'admin_email') && in_array($a->user['email'], $adminlist))
|
if(local_user() && x($a->user,'email') && x($a->config,'admin_email') && in_array($a->user['email'], $adminlist))
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -2272,16 +2216,16 @@ function is_site_admin() {
|
||||||
*/
|
*/
|
||||||
function build_querystring($params, $name=null) {
|
function build_querystring($params, $name=null) {
|
||||||
$ret = "";
|
$ret = "";
|
||||||
foreach ($params as $key=>$val) {
|
foreach($params as $key=>$val) {
|
||||||
if (is_array($val)) {
|
if(is_array($val)) {
|
||||||
if ($name==null) {
|
if($name==null) {
|
||||||
$ret .= build_querystring($val, $key);
|
$ret .= build_querystring($val, $key);
|
||||||
} else {
|
} else {
|
||||||
$ret .= build_querystring($val, $name."[$key]");
|
$ret .= build_querystring($val, $name."[$key]");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$val = urlencode($val);
|
$val = urlencode($val);
|
||||||
if ($name!=null) {
|
if($name!=null) {
|
||||||
$ret.=$name."[$key]"."=$val&";
|
$ret.=$name."[$key]"."=$val&";
|
||||||
} else {
|
} else {
|
||||||
$ret.= "$key=$val&";
|
$ret.= "$key=$val&";
|
||||||
|
|
@ -2293,7 +2237,7 @@ function build_querystring($params, $name=null) {
|
||||||
|
|
||||||
function explode_querystring($query) {
|
function explode_querystring($query) {
|
||||||
$arg_st = strpos($query, '?');
|
$arg_st = strpos($query, '?');
|
||||||
if ($arg_st !== false) {
|
if($arg_st !== false) {
|
||||||
$base = substr($query, 0, $arg_st);
|
$base = substr($query, 0, $arg_st);
|
||||||
$arg_st += 1;
|
$arg_st += 1;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -2302,14 +2246,13 @@ function explode_querystring($query) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$args = explode('&', substr($query, $arg_st));
|
$args = explode('&', substr($query, $arg_st));
|
||||||
foreach ($args as $k=>$arg) {
|
foreach($args as $k=>$arg) {
|
||||||
if ($arg === '') {
|
if($arg === '')
|
||||||
unset($args[$k]);
|
unset($args[$k]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$args = array_values($args);
|
$args = array_values($args);
|
||||||
|
|
||||||
if (!$base) {
|
if(!$base) {
|
||||||
$base = $args[0];
|
$base = $args[0];
|
||||||
unset($args[0]);
|
unset($args[0]);
|
||||||
$args = array_values($args);
|
$args = array_values($args);
|
||||||
|
|
@ -2328,9 +2271,7 @@ function explode_querystring($query) {
|
||||||
*/
|
*/
|
||||||
function curPageURL() {
|
function curPageURL() {
|
||||||
$pageURL = 'http';
|
$pageURL = 'http';
|
||||||
if ($_SERVER["HTTPS"] == "on") {
|
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
|
||||||
$pageURL .= "s";
|
|
||||||
}
|
|
||||||
$pageURL .= "://";
|
$pageURL .= "://";
|
||||||
if ($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") {
|
if ($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") {
|
||||||
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
|
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
|
||||||
|
|
@ -2342,7 +2283,7 @@ function curPageURL() {
|
||||||
|
|
||||||
function random_digits($digits) {
|
function random_digits($digits) {
|
||||||
$rn = '';
|
$rn = '';
|
||||||
for ($i = 0; $i < $digits; $i++) {
|
for($i = 0; $i < $digits; $i++) {
|
||||||
$rn .= rand(0,9);
|
$rn .= rand(0,9);
|
||||||
}
|
}
|
||||||
return $rn;
|
return $rn;
|
||||||
|
|
@ -2351,9 +2292,8 @@ function random_digits($digits) {
|
||||||
function get_server() {
|
function get_server() {
|
||||||
$server = get_config("system", "directory");
|
$server = get_config("system", "directory");
|
||||||
|
|
||||||
if ($server == "") {
|
if ($server == "")
|
||||||
$server = "http://dir.friendi.ca";
|
$server = "http://dir.friendi.ca";
|
||||||
}
|
|
||||||
|
|
||||||
return($server);
|
return($server);
|
||||||
}
|
}
|
||||||
|
|
@ -2361,9 +2301,8 @@ function get_server() {
|
||||||
function get_cachefile($file, $writemode = true) {
|
function get_cachefile($file, $writemode = true) {
|
||||||
$cache = get_itemcachepath();
|
$cache = get_itemcachepath();
|
||||||
|
|
||||||
if ((! $cache) || (! is_dir($cache))) {
|
if ((! $cache) || (! is_dir($cache)))
|
||||||
return("");
|
return("");
|
||||||
}
|
|
||||||
|
|
||||||
$subfolder = $cache."/".substr($file, 0, 2);
|
$subfolder = $cache."/".substr($file, 0, 2);
|
||||||
|
|
||||||
|
|
@ -2385,29 +2324,24 @@ function clear_cache($basepath = "", $path = "") {
|
||||||
$path = $basepath;
|
$path = $basepath;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($path == "") OR (!is_dir($path))) {
|
if (($path == "") OR (!is_dir($path)))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if (substr(realpath($path), 0, strlen($basepath)) != $basepath) {
|
if (substr(realpath($path), 0, strlen($basepath)) != $basepath)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$cachetime = (int)get_config('system','itemcache_duration');
|
$cachetime = (int)get_config('system','itemcache_duration');
|
||||||
if ($cachetime == 0) {
|
if ($cachetime == 0)
|
||||||
$cachetime = 86400;
|
$cachetime = 86400;
|
||||||
}
|
|
||||||
|
|
||||||
if (is_writable($path)){
|
if (is_writable($path)){
|
||||||
if ($dh = opendir($path)) {
|
if ($dh = opendir($path)) {
|
||||||
while (($file = readdir($dh)) !== false) {
|
while (($file = readdir($dh)) !== false) {
|
||||||
$fullpath = $path."/".$file;
|
$fullpath = $path."/".$file;
|
||||||
if ((filetype($fullpath) == "dir") and ($file != ".") and ($file != "..")) {
|
if ((filetype($fullpath) == "dir") and ($file != ".") and ($file != ".."))
|
||||||
clear_cache($basepath, $fullpath);
|
clear_cache($basepath, $fullpath);
|
||||||
}
|
if ((filetype($fullpath) == "file") and (filectime($fullpath) < (time() - $cachetime)))
|
||||||
if ((filetype($fullpath) == "file") and (filectime($fullpath) < (time() - $cachetime))) {
|
|
||||||
unlink($fullpath);
|
unlink($fullpath);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
closedir($dh);
|
closedir($dh);
|
||||||
}
|
}
|
||||||
|
|
@ -2417,9 +2351,8 @@ function clear_cache($basepath = "", $path = "") {
|
||||||
function get_itemcachepath() {
|
function get_itemcachepath() {
|
||||||
// Checking, if the cache is deactivated
|
// Checking, if the cache is deactivated
|
||||||
$cachetime = (int)get_config('system','itemcache_duration');
|
$cachetime = (int)get_config('system','itemcache_duration');
|
||||||
if ($cachetime < 0) {
|
if ($cachetime < 0)
|
||||||
return "";
|
return "";
|
||||||
}
|
|
||||||
|
|
||||||
$itemcache = get_config('system','itemcache');
|
$itemcache = get_config('system','itemcache');
|
||||||
if (($itemcache != "") AND App::directory_usable($itemcache)) {
|
if (($itemcache != "") AND App::directory_usable($itemcache)) {
|
||||||
|
|
@ -2430,7 +2363,7 @@ function get_itemcachepath() {
|
||||||
|
|
||||||
if ($temppath != "") {
|
if ($temppath != "") {
|
||||||
$itemcache = $temppath."/itemcache";
|
$itemcache = $temppath."/itemcache";
|
||||||
if (!file_exists($itemcache) && !is_dir($itemcache)) {
|
if(!file_exists($itemcache) && !is_dir($itemcache)) {
|
||||||
mkdir($itemcache);
|
mkdir($itemcache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2522,7 +2455,7 @@ function set_template_engine(App $a, $engine = 'internal') {
|
||||||
$a->set_template_engine($engine);
|
$a->set_template_engine($engine);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!function_exists('exif_imagetype')) {
|
if(!function_exists('exif_imagetype')) {
|
||||||
function exif_imagetype($file) {
|
function exif_imagetype($file) {
|
||||||
$size = getimagesize($file);
|
$size = getimagesize($file);
|
||||||
return($size[2]);
|
return($size[2]);
|
||||||
|
|
@ -2534,42 +2467,37 @@ function validate_include(&$file) {
|
||||||
|
|
||||||
$file = realpath($file);
|
$file = realpath($file);
|
||||||
|
|
||||||
if (strpos($file, getcwd()) !== 0) {
|
if (strpos($file, getcwd()) !== 0)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$file = str_replace(getcwd()."/", "", $file, $count);
|
$file = str_replace(getcwd()."/", "", $file, $count);
|
||||||
if ($count != 1) {
|
if ($count != 1)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
if ($orig_file !== $file) {
|
if ($orig_file !== $file)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$valid = false;
|
$valid = false;
|
||||||
if (strpos($file, "include/") === 0) {
|
if (strpos($file, "include/") === 0)
|
||||||
$valid = true;
|
$valid = true;
|
||||||
}
|
|
||||||
|
|
||||||
if (strpos($file, "addon/") === 0) {
|
if (strpos($file, "addon/") === 0)
|
||||||
$valid = true;
|
$valid = true;
|
||||||
}
|
|
||||||
|
|
||||||
// Simply return flag
|
if (!$valid)
|
||||||
return ($valid);
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function current_load() {
|
function current_load() {
|
||||||
if (!function_exists('sys_getloadavg')) {
|
if (!function_exists('sys_getloadavg'))
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$load_arr = sys_getloadavg();
|
$load_arr = sys_getloadavg();
|
||||||
|
|
||||||
if (!is_array($load_arr)) {
|
if (!is_array($load_arr))
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
return max($load_arr[0], $load_arr[1]);
|
return max($load_arr[0], $load_arr[1]);
|
||||||
}
|
}
|
||||||
|
|
@ -2590,9 +2518,8 @@ function argc() {
|
||||||
* @return string Value of the argv key
|
* @return string Value of the argv key
|
||||||
*/
|
*/
|
||||||
function argv($x) {
|
function argv($x) {
|
||||||
if (array_key_exists($x,get_app()->argv)) {
|
if(array_key_exists($x,get_app()->argv))
|
||||||
return get_app()->argv[$x];
|
return get_app()->argv[$x];
|
||||||
}
|
|
||||||
|
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
// authorisation to do this.
|
// authorisation to do this.
|
||||||
|
|
||||||
function user_remove($uid) {
|
function user_remove($uid) {
|
||||||
if (! $uid)
|
if(! $uid)
|
||||||
return;
|
return;
|
||||||
logger('Removing user: ' . $uid);
|
logger('Removing user: ' . $uid);
|
||||||
|
|
||||||
|
|
@ -49,7 +49,7 @@ function user_remove($uid) {
|
||||||
// Send an update to the directory
|
// Send an update to the directory
|
||||||
proc_run(PRIORITY_LOW, "include/directory.php", $r[0]['url']);
|
proc_run(PRIORITY_LOW, "include/directory.php", $r[0]['url']);
|
||||||
|
|
||||||
if ($uid == local_user()) {
|
if($uid == local_user()) {
|
||||||
unset($_SESSION['authenticated']);
|
unset($_SESSION['authenticated']);
|
||||||
unset($_SESSION['uid']);
|
unset($_SESSION['uid']);
|
||||||
goaway(App::get_baseurl());
|
goaway(App::get_baseurl());
|
||||||
|
|
@ -122,13 +122,11 @@ function terminate_friendship($user,$self,$contact) {
|
||||||
// This provides for the possibility that their database is temporarily messed
|
// This provides for the possibility that their database is temporarily messed
|
||||||
// up or some other transient event and that there's a possibility we could recover from it.
|
// up or some other transient event and that there's a possibility we could recover from it.
|
||||||
|
|
||||||
function mark_for_death(array $contact) {
|
function mark_for_death($contact) {
|
||||||
|
|
||||||
if ($contact['archive']) {
|
if($contact['archive'])
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
/// @TODO Comparison of strings this way may lead to bugs/incompatibility, better switch to DateTime
|
|
||||||
if ($contact['term-date'] <= NULL_DATE) {
|
if ($contact['term-date'] <= NULL_DATE) {
|
||||||
q("UPDATE `contact` SET `term-date` = '%s' WHERE `id` = %d",
|
q("UPDATE `contact` SET `term-date` = '%s' WHERE `id` = %d",
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
|
|
@ -153,7 +151,7 @@ function mark_for_death(array $contact) {
|
||||||
/// Check for contact vitality via probing
|
/// Check for contact vitality via probing
|
||||||
|
|
||||||
$expiry = $contact['term-date'] . ' + 32 days ';
|
$expiry = $contact['term-date'] . ' + 32 days ';
|
||||||
if (datetime_convert() > datetime_convert('UTC','UTC',$expiry)) {
|
if(datetime_convert() > datetime_convert('UTC','UTC',$expiry)) {
|
||||||
|
|
||||||
// relationship is really truly dead.
|
// relationship is really truly dead.
|
||||||
// archive them rather than delete
|
// archive them rather than delete
|
||||||
|
|
@ -485,7 +483,7 @@ function random_profile() {
|
||||||
|
|
||||||
function contacts_not_grouped($uid,$start = 0,$count = 0) {
|
function contacts_not_grouped($uid,$start = 0,$count = 0) {
|
||||||
|
|
||||||
if (! $count) {
|
if(! $count) {
|
||||||
$r = q("select count(*) as total from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) ",
|
$r = q("select count(*) as total from contact where uid = %d and self = 0 and id not in (select distinct(`contact-id`) from group_member where uid = %d) ",
|
||||||
intval($uid),
|
intval($uid),
|
||||||
intval($uid)
|
intval($uid)
|
||||||
|
|
@ -777,18 +775,18 @@ function posts_from_contact_url(App $a, $contact_url) {
|
||||||
function formatted_location($profile) {
|
function formatted_location($profile) {
|
||||||
$location = '';
|
$location = '';
|
||||||
|
|
||||||
if ($profile['locality'])
|
if($profile['locality'])
|
||||||
$location .= $profile['locality'];
|
$location .= $profile['locality'];
|
||||||
|
|
||||||
if ($profile['region'] AND ($profile['locality'] != $profile['region'])) {
|
if($profile['region'] AND ($profile['locality'] != $profile['region'])) {
|
||||||
if ($location)
|
if($location)
|
||||||
$location .= ', ';
|
$location .= ', ';
|
||||||
|
|
||||||
$location .= $profile['region'];
|
$location .= $profile['region'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($profile['country-name']) {
|
if($profile['country-name']) {
|
||||||
if ($location)
|
if($location)
|
||||||
$location .= ', ';
|
$location .= ', ';
|
||||||
|
|
||||||
$location .= $profile['country-name'];
|
$location .= $profile['country-name'];
|
||||||
|
|
@ -810,7 +808,7 @@ function account_type($contact) {
|
||||||
// "page-flags" is a field in the user table,
|
// "page-flags" is a field in the user table,
|
||||||
// "forum" and "prv" are used in the contact table. They stand for PAGE_COMMUNITY and PAGE_PRVGROUP.
|
// "forum" and "prv" are used in the contact table. They stand for PAGE_COMMUNITY and PAGE_PRVGROUP.
|
||||||
// "community" is used in the gcontact table and is true if the contact is PAGE_COMMUNITY or PAGE_PRVGROUP.
|
// "community" is used in the gcontact table and is true if the contact is PAGE_COMMUNITY or PAGE_PRVGROUP.
|
||||||
if ((isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_COMMUNITY))
|
if((isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_COMMUNITY))
|
||||||
|| (isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_PRVGROUP))
|
|| (isset($contact['page-flags']) && (intval($contact['page-flags']) == PAGE_PRVGROUP))
|
||||||
|| (isset($contact['forum']) && intval($contact['forum']))
|
|| (isset($contact['forum']) && intval($contact['forum']))
|
||||||
|| (isset($contact['prv']) && intval($contact['prv']))
|
|| (isset($contact['prv']) && intval($contact['prv']))
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ class PConfig {
|
||||||
$a->config[$uid][$family][$k] = $rr['v'];
|
$a->config[$uid][$family][$k] = $rr['v'];
|
||||||
self::$in_db[$uid][$family][$k] = true;
|
self::$in_db[$uid][$family][$k] = true;
|
||||||
}
|
}
|
||||||
} elseif ($family != 'config') {
|
} else if ($family != 'config') {
|
||||||
// Negative caching
|
// Negative caching
|
||||||
$a->config[$uid][$family] = "!<unset>!";
|
$a->config[$uid][$family] = "!<unset>!";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class DirSearch {
|
||||||
*/
|
*/
|
||||||
public static function global_search_by_name($search, $mode = '') {
|
public static function global_search_by_name($search, $mode = '') {
|
||||||
|
|
||||||
if ($search) {
|
if($search) {
|
||||||
// check supported networks
|
// check supported networks
|
||||||
if (get_config('system','diaspora_enabled'))
|
if (get_config('system','diaspora_enabled'))
|
||||||
$diaspora = NETWORK_DIASPORA;
|
$diaspora = NETWORK_DIASPORA;
|
||||||
|
|
@ -33,11 +33,10 @@ class DirSearch {
|
||||||
$ostatus = NETWORK_DFRN;
|
$ostatus = NETWORK_DFRN;
|
||||||
|
|
||||||
// check if we search only communities or every contact
|
// check if we search only communities or every contact
|
||||||
if ($mode === "community") {
|
if($mode === "community")
|
||||||
$extra_sql = " AND `community`";
|
$extra_sql = " AND `community`";
|
||||||
} else {
|
else
|
||||||
$extra_sql = "";
|
$extra_sql = "";
|
||||||
}
|
|
||||||
|
|
||||||
$search .= "%";
|
$search .= "%";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ class ForumManager {
|
||||||
if (!$contacts)
|
if (!$contacts)
|
||||||
return($forumlist);
|
return($forumlist);
|
||||||
|
|
||||||
foreach ($contacts as $contact) {
|
foreach($contacts as $contact) {
|
||||||
$forumlist[] = array(
|
$forumlist[] = array(
|
||||||
'url' => $contact['url'],
|
'url' => $contact['url'],
|
||||||
'name' => $contact['name'],
|
'name' => $contact['name'],
|
||||||
|
|
@ -76,7 +76,7 @@ class ForumManager {
|
||||||
*/
|
*/
|
||||||
public static function widget($uid,$cid = 0) {
|
public static function widget($uid,$cid = 0) {
|
||||||
|
|
||||||
if (! intval(feature_enabled(local_user(),'forumlist_widget')))
|
if(! intval(feature_enabled(local_user(),'forumlist_widget')))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
@ -92,7 +92,7 @@ class ForumManager {
|
||||||
|
|
||||||
$id = 0;
|
$id = 0;
|
||||||
|
|
||||||
foreach ($contacts as $contact) {
|
foreach($contacts as $contact) {
|
||||||
|
|
||||||
$selected = (($cid == $contact['id']) ? ' forum-selected' : '');
|
$selected = (($cid == $contact['id']) ? ' forum-selected' : '');
|
||||||
|
|
||||||
|
|
@ -136,7 +136,7 @@ class ForumManager {
|
||||||
public static function profile_advanced($uid) {
|
public static function profile_advanced($uid) {
|
||||||
|
|
||||||
$profile = intval(feature_enabled($uid,'forumlist_profile'));
|
$profile = intval(feature_enabled($uid,'forumlist_profile'));
|
||||||
if (! $profile)
|
if(! $profile)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
@ -151,20 +151,16 @@ class ForumManager {
|
||||||
|
|
||||||
$total_shown = 0;
|
$total_shown = 0;
|
||||||
|
|
||||||
foreach ($contacts as $contact) {
|
foreach($contacts as $contact) {
|
||||||
$forumlist .= micropro($contact,false,'forumlist-profile-advanced');
|
$forumlist .= micropro($contact,false,'forumlist-profile-advanced');
|
||||||
$total_shown ++;
|
$total_shown ++;
|
||||||
|
if($total_shown == $show_total)
|
||||||
if ($total_shown == $show_total) {
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($contacts) > 0) {
|
if(count($contacts) > 0)
|
||||||
$o .= $forumlist;
|
$o .= $forumlist;
|
||||||
}
|
return $o;
|
||||||
|
|
||||||
return $o;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ class NotificationsManager {
|
||||||
*/
|
*/
|
||||||
private function _set_extra($notes) {
|
private function _set_extra($notes) {
|
||||||
$rets = array();
|
$rets = array();
|
||||||
foreach ($notes as $n) {
|
foreach($notes as $n) {
|
||||||
$local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']);
|
$local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']);
|
||||||
$n['timestamp'] = strtotime($local_time);
|
$n['timestamp'] = strtotime($local_time);
|
||||||
$n['date_rel'] = relative_date($n['date']);
|
$n['date_rel'] = relative_date($n['date']);
|
||||||
|
|
@ -58,7 +58,7 @@ class NotificationsManager {
|
||||||
public function getAll($filter = array(), $order="-date", $limit="") {
|
public function getAll($filter = array(), $order="-date", $limit="") {
|
||||||
$filter_str = array();
|
$filter_str = array();
|
||||||
$filter_sql = "";
|
$filter_sql = "";
|
||||||
foreach ($filter as $column => $value) {
|
foreach($filter as $column => $value) {
|
||||||
$filter_str[] = sprintf("`%s` = '%s'", $column, dbesc($value));
|
$filter_str[] = sprintf("`%s` = '%s'", $column, dbesc($value));
|
||||||
}
|
}
|
||||||
if (count($filter_str)>0) {
|
if (count($filter_str)>0) {
|
||||||
|
|
@ -67,7 +67,7 @@ class NotificationsManager {
|
||||||
|
|
||||||
$aOrder = explode(" ", $order);
|
$aOrder = explode(" ", $order);
|
||||||
$asOrder = array();
|
$asOrder = array();
|
||||||
foreach ($aOrder as $o) {
|
foreach($aOrder as $o) {
|
||||||
$dir = "asc";
|
$dir = "asc";
|
||||||
if ($o[0]==="-") {
|
if ($o[0]==="-") {
|
||||||
$dir = "desc";
|
$dir = "desc";
|
||||||
|
|
@ -81,7 +81,7 @@ class NotificationsManager {
|
||||||
}
|
}
|
||||||
$order_sql = implode(", ", $asOrder);
|
$order_sql = implode(", ", $asOrder);
|
||||||
|
|
||||||
if ($limit!="")
|
if($limit!="")
|
||||||
$limit = " LIMIT ".$limit;
|
$limit = " LIMIT ".$limit;
|
||||||
|
|
||||||
$r = q("SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit",
|
$r = q("SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit",
|
||||||
|
|
@ -369,7 +369,7 @@ class NotificationsManager {
|
||||||
private function networkTotal($seen = 0) {
|
private function networkTotal($seen = 0) {
|
||||||
$sql_seen = "";
|
$sql_seen = "";
|
||||||
|
|
||||||
if ($seen === 0)
|
if($seen === 0)
|
||||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total`
|
$r = q("SELECT COUNT(*) AS `total`
|
||||||
|
|
@ -406,7 +406,7 @@ class NotificationsManager {
|
||||||
$notifs = array();
|
$notifs = array();
|
||||||
$sql_seen = "";
|
$sql_seen = "";
|
||||||
|
|
||||||
if ($seen === 0)
|
if($seen === 0)
|
||||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -445,7 +445,7 @@ class NotificationsManager {
|
||||||
private function systemTotal($seen = 0) {
|
private function systemTotal($seen = 0) {
|
||||||
$sql_seen = "";
|
$sql_seen = "";
|
||||||
|
|
||||||
if ($seen === 0)
|
if($seen === 0)
|
||||||
$sql_seen = " AND `seen` = 0 ";
|
$sql_seen = " AND `seen` = 0 ";
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `notify` WHERE `uid` = %d $sql_seen",
|
$r = q("SELECT COUNT(*) AS `total` FROM `notify` WHERE `uid` = %d $sql_seen",
|
||||||
|
|
@ -478,7 +478,7 @@ class NotificationsManager {
|
||||||
$notifs = array();
|
$notifs = array();
|
||||||
$sql_seen = "";
|
$sql_seen = "";
|
||||||
|
|
||||||
if ($seen === 0)
|
if($seen === 0)
|
||||||
$sql_seen = " AND `seen` = 0 ";
|
$sql_seen = " AND `seen` = 0 ";
|
||||||
|
|
||||||
$r = q("SELECT `id`, `url`, `photo`, `msg`, `date`, `seen` FROM `notify`
|
$r = q("SELECT `id`, `url`, `photo`, `msg`, `date`, `seen` FROM `notify`
|
||||||
|
|
@ -530,7 +530,7 @@ class NotificationsManager {
|
||||||
$sql_seen = "";
|
$sql_seen = "";
|
||||||
$sql_extra = $this->_personal_sql_extra();
|
$sql_extra = $this->_personal_sql_extra();
|
||||||
|
|
||||||
if ($seen === 0)
|
if($seen === 0)
|
||||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total`
|
$r = q("SELECT COUNT(*) AS `total`
|
||||||
|
|
@ -569,7 +569,7 @@ class NotificationsManager {
|
||||||
$notifs = array();
|
$notifs = array();
|
||||||
$sql_seen = "";
|
$sql_seen = "";
|
||||||
|
|
||||||
if ($seen === 0)
|
if($seen === 0)
|
||||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||||
|
|
||||||
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
|
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
|
||||||
|
|
@ -608,7 +608,7 @@ class NotificationsManager {
|
||||||
private function homeTotal($seen = 0) {
|
private function homeTotal($seen = 0) {
|
||||||
$sql_seen = "";
|
$sql_seen = "";
|
||||||
|
|
||||||
if ($seen === 0)
|
if($seen === 0)
|
||||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `item`
|
$r = q("SELECT COUNT(*) AS `total` FROM `item`
|
||||||
|
|
@ -644,7 +644,7 @@ class NotificationsManager {
|
||||||
$notifs = array();
|
$notifs = array();
|
||||||
$sql_seen = "";
|
$sql_seen = "";
|
||||||
|
|
||||||
if ($seen === 0)
|
if($seen === 0)
|
||||||
$sql_seen = " AND `item`.`unseen` = 1 ";
|
$sql_seen = " AND `item`.`unseen` = 1 ";
|
||||||
|
|
||||||
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
|
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
|
||||||
|
|
@ -682,7 +682,7 @@ class NotificationsManager {
|
||||||
private function introTotal($all = false) {
|
private function introTotal($all = false) {
|
||||||
$sql_extra = "";
|
$sql_extra = "";
|
||||||
|
|
||||||
if (!$all)
|
if(!$all)
|
||||||
$sql_extra = " AND `ignore` = 0 ";
|
$sql_extra = " AND `ignore` = 0 ";
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `intro`
|
$r = q("SELECT COUNT(*) AS `total` FROM `intro`
|
||||||
|
|
@ -716,7 +716,7 @@ class NotificationsManager {
|
||||||
$notifs = array();
|
$notifs = array();
|
||||||
$sql_extra = "";
|
$sql_extra = "";
|
||||||
|
|
||||||
if (!$all)
|
if(!$all)
|
||||||
$sql_extra = " AND `ignore` = 0 ";
|
$sql_extra = " AND `ignore` = 0 ";
|
||||||
|
|
||||||
/// @todo Fetch contact details by "get_contact_details_by_url" instead of queries to contact, fcontact and gcontact
|
/// @todo Fetch contact details by "get_contact_details_by_url" instead of queries to contact, fcontact and gcontact
|
||||||
|
|
@ -756,12 +756,12 @@ class NotificationsManager {
|
||||||
private function formatIntros($intros) {
|
private function formatIntros($intros) {
|
||||||
$knowyou = '';
|
$knowyou = '';
|
||||||
|
|
||||||
foreach ($intros as $it) {
|
foreach($intros as $it) {
|
||||||
// There are two kind of introduction. Contacts suggested by other contacts and normal connection requests.
|
// There are two kind of introduction. Contacts suggested by other contacts and normal connection requests.
|
||||||
// We have to distinguish between these two because they use different data.
|
// We have to distinguish between these two because they use different data.
|
||||||
|
|
||||||
// Contact suggestions
|
// Contact suggestions
|
||||||
if ($it['fid']) {
|
if($it['fid']) {
|
||||||
|
|
||||||
$return_addr = bin2hex($this->a->user['nickname'] . '@' . $this->a->get_hostname() . (($this->a->path) ? '/' . $this->a->path : ''));
|
$return_addr = bin2hex($this->a->user['nickname'] . '@' . $this->a->get_hostname() . (($this->a->path) ? '/' . $this->a->path : ''));
|
||||||
|
|
||||||
|
|
@ -793,7 +793,7 @@ class NotificationsManager {
|
||||||
$it['gnetwork'] = $ret["network"];
|
$it['gnetwork'] = $ret["network"];
|
||||||
|
|
||||||
// Don't show these data until you are connected. Diaspora is doing the same.
|
// Don't show these data until you are connected. Diaspora is doing the same.
|
||||||
if ($it['gnetwork'] === NETWORK_DIASPORA) {
|
if($it['gnetwork'] === NETWORK_DIASPORA) {
|
||||||
$it['glocation'] = "";
|
$it['glocation'] = "";
|
||||||
$it['gabout'] = "";
|
$it['gabout'] = "";
|
||||||
$it['ggender'] = "";
|
$it['ggender'] = "";
|
||||||
|
|
|
||||||
|
|
@ -564,15 +564,15 @@ class Probe {
|
||||||
*/
|
*/
|
||||||
public static function valid_dfrn($data) {
|
public static function valid_dfrn($data) {
|
||||||
$errors = 0;
|
$errors = 0;
|
||||||
if (!isset($data['key']))
|
if(!isset($data['key']))
|
||||||
$errors ++;
|
$errors ++;
|
||||||
if (!isset($data['dfrn-request']))
|
if(!isset($data['dfrn-request']))
|
||||||
$errors ++;
|
$errors ++;
|
||||||
if (!isset($data['dfrn-confirm']))
|
if(!isset($data['dfrn-confirm']))
|
||||||
$errors ++;
|
$errors ++;
|
||||||
if (!isset($data['dfrn-notify']))
|
if(!isset($data['dfrn-notify']))
|
||||||
$errors ++;
|
$errors ++;
|
||||||
if (!isset($data['dfrn-poll']))
|
if(!isset($data['dfrn-poll']))
|
||||||
$errors ++;
|
$errors ++;
|
||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
|
@ -858,7 +858,7 @@ class Probe {
|
||||||
|
|
||||||
$data = array();
|
$data = array();
|
||||||
if (is_array($webfinger["aliases"]))
|
if (is_array($webfinger["aliases"]))
|
||||||
foreach ($webfinger["aliases"] AS $alias)
|
foreach($webfinger["aliases"] AS $alias)
|
||||||
if (strstr($alias, "@"))
|
if (strstr($alias, "@"))
|
||||||
$data["addr"] = str_replace('acct:', '', $alias);
|
$data["addr"] = str_replace('acct:', '', $alias);
|
||||||
|
|
||||||
|
|
@ -1133,17 +1133,15 @@ class Probe {
|
||||||
$password = '';
|
$password = '';
|
||||||
openssl_private_decrypt(hex2bin($r[0]['pass']), $password,$x[0]['prvkey']);
|
openssl_private_decrypt(hex2bin($r[0]['pass']), $password,$x[0]['prvkey']);
|
||||||
$mbox = email_connect($mailbox,$r[0]['user'], $password);
|
$mbox = email_connect($mailbox,$r[0]['user'], $password);
|
||||||
if (!$mbox) {
|
if(!mbox)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$msgs = email_poll($mbox, $uri);
|
$msgs = email_poll($mbox, $uri);
|
||||||
logger('searching '.$uri.', '.count($msgs).' messages found.', LOGGER_DEBUG);
|
logger('searching '.$uri.', '.count($msgs).' messages found.', LOGGER_DEBUG);
|
||||||
|
|
||||||
if (!count($msgs)) {
|
if (!count($msgs))
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$data = array();
|
$data = array();
|
||||||
|
|
||||||
|
|
@ -1159,26 +1157,23 @@ class Probe {
|
||||||
$data["poll"] = 'email '.random_string();
|
$data["poll"] = 'email '.random_string();
|
||||||
|
|
||||||
$x = email_msg_meta($mbox, $msgs[0]);
|
$x = email_msg_meta($mbox, $msgs[0]);
|
||||||
if (stristr($x[0]->from, $uri)) {
|
if(stristr($x[0]->from, $uri))
|
||||||
$adr = imap_rfc822_parse_adrlist($x[0]->from, '');
|
$adr = imap_rfc822_parse_adrlist($x[0]->from, '');
|
||||||
} elseif (stristr($x[0]->to, $uri)) {
|
elseif(stristr($x[0]->to, $uri))
|
||||||
$adr = imap_rfc822_parse_adrlist($x[0]->to, '');
|
$adr = imap_rfc822_parse_adrlist($x[0]->to, '');
|
||||||
}
|
if(isset($adr)) {
|
||||||
if (isset($adr)) {
|
foreach($adr as $feadr) {
|
||||||
foreach ($adr as $feadr) {
|
if((strcasecmp($feadr->mailbox, $data["name"]) == 0)
|
||||||
if ((strcasecmp($feadr->mailbox, $data["name"]) == 0)
|
|
||||||
&&(strcasecmp($feadr->host, $phost) == 0)
|
&&(strcasecmp($feadr->host, $phost) == 0)
|
||||||
&& (strlen($feadr->personal))) {
|
&& (strlen($feadr->personal))) {
|
||||||
|
|
||||||
$personal = imap_mime_header_decode($feadr->personal);
|
$personal = imap_mime_header_decode($feadr->personal);
|
||||||
$data["name"] = "";
|
$data["name"] = "";
|
||||||
foreach ($personal as $perspart) {
|
foreach($personal as $perspart)
|
||||||
if ($perspart->charset != "default") {
|
if ($perspart->charset != "default")
|
||||||
$data["name"] .= iconv($perspart->charset, 'UTF-8//IGNORE', $perspart->text);
|
$data["name"] .= iconv($perspart->charset, 'UTF-8//IGNORE', $perspart->text);
|
||||||
} else {
|
else
|
||||||
$data["name"] .= $perspart->text;
|
$data["name"] .= $perspart->text;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$data["name"] = notags($data["name"]);
|
$data["name"] = notags($data["name"]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,7 @@ class Smilies {
|
||||||
* @return string HML Output of the Smilie
|
* @return string HML Output of the Smilie
|
||||||
*/
|
*/
|
||||||
public static function replace($s, $sample = false) {
|
public static function replace($s, $sample = false) {
|
||||||
if (intval(get_config('system','no_smilies'))
|
if(intval(get_config('system','no_smilies'))
|
||||||
|| (local_user() && intval(get_pconfig(local_user(),'system','no_smilies'))))
|
|| (local_user() && intval(get_pconfig(local_user(),'system','no_smilies'))))
|
||||||
return $s;
|
return $s;
|
||||||
|
|
||||||
|
|
@ -135,9 +135,9 @@ class Smilies {
|
||||||
$params = self::get_list();
|
$params = self::get_list();
|
||||||
$params['string'] = $s;
|
$params['string'] = $s;
|
||||||
|
|
||||||
if ($sample) {
|
if($sample) {
|
||||||
$s = '<div class="smiley-sample">';
|
$s = '<div class="smiley-sample">';
|
||||||
for ($x = 0; $x < count($params['texts']); $x ++) {
|
for($x = 0; $x < count($params['texts']); $x ++) {
|
||||||
$s .= '<dl><dt>' . $params['texts'][$x] . '</dt><dd>' . $params['icons'][$x] . '</dd></dl>';
|
$s .= '<dl><dt>' . $params['texts'][$x] . '</dt><dd>' . $params['icons'][$x] . '</dd></dl>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -170,13 +170,11 @@ class Smilies {
|
||||||
* @todo: Rework because it doesn't work correctly
|
* @todo: Rework because it doesn't work correctly
|
||||||
*/
|
*/
|
||||||
private function preg_heart($x) {
|
private function preg_heart($x) {
|
||||||
if (strlen($x[1]) == 1) {
|
if(strlen($x[1]) == 1)
|
||||||
return $x[0];
|
return $x[0];
|
||||||
}
|
|
||||||
$t = '';
|
$t = '';
|
||||||
for ($cnt = 0; $cnt < strlen($x[1]); $cnt ++) {
|
for($cnt = 0; $cnt < strlen($x[1]); $cnt ++)
|
||||||
$t .= '<img class="smiley" src="' . app::get_baseurl() . '/images/smiley-heart.gif" alt="<3" />';
|
$t .= '<img class="smiley" src="' . app::get_baseurl() . '/images/smiley-heart.gif" alt="<3" />';
|
||||||
}
|
|
||||||
$r = str_replace($x[0],$t,$x[0]);
|
$r = str_replace($x[0],$t,$x[0]);
|
||||||
return $r;
|
return $r;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) {
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if ((is_array($preselected)) && in_array($rr['id'], $preselected))
|
if((is_array($preselected)) && in_array($rr['id'], $preselected))
|
||||||
$selected = " selected=\"selected\" ";
|
$selected = " selected=\"selected\" ";
|
||||||
else
|
else
|
||||||
$selected = '';
|
$selected = '';
|
||||||
|
|
@ -88,13 +88,13 @@ function contact_selector($selname, $selclass, $preselected = false, $options) {
|
||||||
$networks = array(NETWORK_DFRN);
|
$networks = array(NETWORK_DFRN);
|
||||||
break;
|
break;
|
||||||
case 'PRIVATE':
|
case 'PRIVATE':
|
||||||
if (is_array($a->user) && $a->user['prvnets'])
|
if(is_array($a->user) && $a->user['prvnets'])
|
||||||
$networks = array(NETWORK_DFRN,NETWORK_MAIL,NETWORK_DIASPORA);
|
$networks = array(NETWORK_DFRN,NETWORK_MAIL,NETWORK_DIASPORA);
|
||||||
else
|
else
|
||||||
$networks = array(NETWORK_DFRN,NETWORK_FACEBOOK,NETWORK_MAIL, NETWORK_DIASPORA);
|
$networks = array(NETWORK_DFRN,NETWORK_FACEBOOK,NETWORK_MAIL, NETWORK_DIASPORA);
|
||||||
break;
|
break;
|
||||||
case 'TWO_WAY':
|
case 'TWO_WAY':
|
||||||
if (is_array($a->user) && $a->user['prvnets'])
|
if(is_array($a->user) && $a->user['prvnets'])
|
||||||
$networks = array(NETWORK_DFRN,NETWORK_MAIL,NETWORK_DIASPORA);
|
$networks = array(NETWORK_DFRN,NETWORK_MAIL,NETWORK_DIASPORA);
|
||||||
else
|
else
|
||||||
$networks = array(NETWORK_DFRN,NETWORK_FACEBOOK,NETWORK_MAIL,NETWORK_DIASPORA,NETWORK_OSTATUS);
|
$networks = array(NETWORK_DFRN,NETWORK_FACEBOOK,NETWORK_MAIL,NETWORK_DIASPORA,NETWORK_OSTATUS);
|
||||||
|
|
@ -113,24 +113,23 @@ function contact_selector($selname, $selclass, $preselected = false, $options) {
|
||||||
|
|
||||||
$sql_extra = '';
|
$sql_extra = '';
|
||||||
|
|
||||||
if ($x['mutual']) {
|
if($x['mutual']) {
|
||||||
$sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND));
|
$sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intval($x['exclude']))
|
if(intval($x['exclude']))
|
||||||
$sql_extra .= sprintf(" AND `id` != %d ", intval($x['exclude']));
|
$sql_extra .= sprintf(" AND `id` != %d ", intval($x['exclude']));
|
||||||
|
|
||||||
if (is_array($x['networks']) && count($x['networks'])) {
|
if(is_array($x['networks']) && count($x['networks'])) {
|
||||||
for ($y = 0; $y < count($x['networks']) ; $y ++) {
|
for($y = 0; $y < count($x['networks']) ; $y ++)
|
||||||
$x['networks'][$y] = "'" . dbesc($x['networks'][$y]) . "'";
|
$x['networks'][$y] = "'" . dbesc($x['networks'][$y]) . "'";
|
||||||
}
|
|
||||||
$str_nets = implode(',',$x['networks']);
|
$str_nets = implode(',',$x['networks']);
|
||||||
$sql_extra .= " AND `network` IN ( $str_nets ) ";
|
$sql_extra .= " AND `network` IN ( $str_nets ) ";
|
||||||
}
|
}
|
||||||
|
|
||||||
$tabindex = (x($options, 'tabindex') ? "tabindex=\"" . $options["tabindex"] . "\"" : "");
|
$tabindex = (x($options, 'tabindex') ? "tabindex=\"" . $options["tabindex"] . "\"" : "");
|
||||||
|
|
||||||
if ($x['single'])
|
if($x['single'])
|
||||||
$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"" . $x['size'] . "\" $tabindex >\r\n";
|
$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"" . $x['size'] . "\" $tabindex >\r\n";
|
||||||
else
|
else
|
||||||
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"" . $x['size'] . "$\" $tabindex >\r\n";
|
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"" . $x['size'] . "$\" $tabindex >\r\n";
|
||||||
|
|
@ -186,14 +185,14 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
|
||||||
|
|
||||||
$sql_extra = '';
|
$sql_extra = '';
|
||||||
|
|
||||||
if ($privmail || $celeb) {
|
if($privmail || $celeb) {
|
||||||
$sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND));
|
$sql_extra .= sprintf(" AND `rel` = %d ", intval(CONTACT_IS_FRIEND));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($privmail)
|
if($privmail)
|
||||||
$sql_extra .= sprintf(" AND `network` IN ('%s' , '%s') ",
|
$sql_extra .= sprintf(" AND `network` IN ('%s' , '%s') ",
|
||||||
NETWORK_DFRN, NETWORK_DIASPORA);
|
NETWORK_DFRN, NETWORK_DIASPORA);
|
||||||
elseif ($privatenet)
|
elseif($privatenet)
|
||||||
$sql_extra .= sprintf(" AND `network` IN ('%s' , '%s', '%s', '%s') ",
|
$sql_extra .= sprintf(" AND `network` IN ('%s' , '%s', '%s', '%s') ",
|
||||||
NETWORK_DFRN, NETWORK_MAIL, NETWORK_FACEBOOK, NETWORK_DIASPORA);
|
NETWORK_DFRN, NETWORK_MAIL, NETWORK_FACEBOOK, NETWORK_DIASPORA);
|
||||||
|
|
||||||
|
|
@ -205,7 +204,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
|
||||||
} else
|
} else
|
||||||
$hidepreselected = "";
|
$hidepreselected = "";
|
||||||
|
|
||||||
if ($privmail)
|
if($privmail)
|
||||||
$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"$size\" $tabindex $hidepreselected>\r\n";
|
$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"$size\" $tabindex $hidepreselected>\r\n";
|
||||||
else
|
else
|
||||||
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" $tabindex >\r\n";
|
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" $tabindex >\r\n";
|
||||||
|
|
@ -288,7 +287,7 @@ function prune_deadguys($arr) {
|
||||||
function get_acl_permissions($user = null) {
|
function get_acl_permissions($user = null) {
|
||||||
$allow_cid = $allow_gid = $deny_cid = $deny_gid = false;
|
$allow_cid = $allow_gid = $deny_cid = $deny_gid = false;
|
||||||
|
|
||||||
if (is_array($user)) {
|
if(is_array($user)) {
|
||||||
$allow_cid = ((strlen($user['allow_cid']))
|
$allow_cid = ((strlen($user['allow_cid']))
|
||||||
? explode('><', $user['allow_cid']) : array() );
|
? explode('><', $user['allow_cid']) : array() );
|
||||||
$allow_gid = ((strlen($user['allow_gid']))
|
$allow_gid = ((strlen($user['allow_gid']))
|
||||||
|
|
@ -319,25 +318,25 @@ function populate_acl($user = null, $show_jotnets = false) {
|
||||||
$perms = get_acl_permissions($user);
|
$perms = get_acl_permissions($user);
|
||||||
|
|
||||||
$jotnets = '';
|
$jotnets = '';
|
||||||
if ($show_jotnets) {
|
if($show_jotnets) {
|
||||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||||
|
|
||||||
$mail_enabled = false;
|
$mail_enabled = false;
|
||||||
$pubmail_enabled = false;
|
$pubmail_enabled = false;
|
||||||
|
|
||||||
if (! $mail_disabled) {
|
if(! $mail_disabled) {
|
||||||
$r = q("SELECT `pubmail` FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1",
|
$r = q("SELECT `pubmail` FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1",
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$mail_enabled = true;
|
$mail_enabled = true;
|
||||||
if (intval($r[0]['pubmail']))
|
if(intval($r[0]['pubmail']))
|
||||||
$pubmail_enabled = true;
|
$pubmail_enabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$user['hidewall']) {
|
if (!$user['hidewall']) {
|
||||||
if ($mail_enabled) {
|
if($mail_enabled) {
|
||||||
$selected = (($pubmail_enabled) ? ' checked="checked" ' : '');
|
$selected = (($pubmail_enabled) ? ' checked="checked" ' : '');
|
||||||
$jotnets .= '<div class="profile-jot-net"><input type="checkbox" name="pubmail_enable"' . $selected . ' value="1" /> ' . t("Post to Email") . '</div>';
|
$jotnets .= '<div class="profile-jot-net"><input type="checkbox" name="pubmail_enable"' . $selected . ' value="1" /> ' . t("Post to Email") . '</div>';
|
||||||
}
|
}
|
||||||
|
|
@ -380,20 +379,20 @@ function construct_acl_data(App $a, $user) {
|
||||||
|
|
||||||
$user_defaults = get_acl_permissions($user);
|
$user_defaults = get_acl_permissions($user);
|
||||||
|
|
||||||
if ($acl_data['groups']) {
|
if($acl_data['groups']) {
|
||||||
foreach ($acl_data['groups'] as $key=>$group) {
|
foreach($acl_data['groups'] as $key=>$group) {
|
||||||
// Add a "selected" flag to groups that are posted to by default
|
// Add a "selected" flag to groups that are posted to by default
|
||||||
if ($user_defaults['allow_gid'] &&
|
if($user_defaults['allow_gid'] &&
|
||||||
in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) )
|
in_array($group['id'], $user_defaults['allow_gid']) && !in_array($group['id'], $user_defaults['deny_gid']) )
|
||||||
$acl_data['groups'][$key]['selected'] = 1;
|
$acl_data['groups'][$key]['selected'] = 1;
|
||||||
else
|
else
|
||||||
$acl_data['groups'][$key]['selected'] = 0;
|
$acl_data['groups'][$key]['selected'] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($acl_data['contacts']) {
|
if($acl_data['contacts']) {
|
||||||
foreach ($acl_data['contacts'] as $key=>$contact) {
|
foreach($acl_data['contacts'] as $key=>$contact) {
|
||||||
// Add a "selected" flag to groups that are posted to by default
|
// Add a "selected" flag to groups that are posted to by default
|
||||||
if ($user_defaults['allow_cid'] &&
|
if($user_defaults['allow_cid'] &&
|
||||||
in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) )
|
in_array($contact['id'], $user_defaults['allow_cid']) && !in_array($contact['id'], $user_defaults['deny_cid']) )
|
||||||
$acl_data['contacts'][$key]['selected'] = 1;
|
$acl_data['contacts'][$key]['selected'] = 1;
|
||||||
else
|
else
|
||||||
|
|
@ -420,8 +419,8 @@ function acl_lookup(App $a, $out_type = 'json') {
|
||||||
|
|
||||||
// For use with jquery.textcomplete for private mail completion
|
// For use with jquery.textcomplete for private mail completion
|
||||||
|
|
||||||
if (x($_REQUEST,'query') && strlen($_REQUEST['query'])) {
|
if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) {
|
||||||
if (! $type)
|
if(! $type)
|
||||||
$type = 'm';
|
$type = 'm';
|
||||||
$search = $_REQUEST['query'];
|
$search = $_REQUEST['query'];
|
||||||
}
|
}
|
||||||
|
|
@ -511,7 +510,7 @@ function acl_lookup(App $a, $out_type = 'json') {
|
||||||
intval($count)
|
intval($count)
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($r as $g){
|
foreach($r as $g){
|
||||||
// logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']);
|
// logger('acl: group: ' . $g['name'] . ' members: ' . $g['uids']);
|
||||||
$groups[] = array(
|
$groups[] = array(
|
||||||
"type" => "g",
|
"type" => "g",
|
||||||
|
|
@ -547,7 +546,7 @@ function acl_lookup(App $a, $out_type = 'json') {
|
||||||
dbesc(NETWORK_STATUSNET)
|
dbesc(NETWORK_STATUSNET)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
elseif ($type == 'm') {
|
elseif($type == 'm') {
|
||||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive`
|
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive`
|
||||||
AND `network` IN ('%s','%s','%s')
|
AND `network` IN ('%s','%s','%s')
|
||||||
|
|
@ -666,7 +665,7 @@ function acl_lookup(App $a, $out_type = 'json') {
|
||||||
|
|
||||||
call_hooks('acl_lookup_end', $results);
|
call_hooks('acl_lookup_end', $results);
|
||||||
|
|
||||||
if ($out_type === 'html') {
|
if($out_type === 'html') {
|
||||||
$o = array(
|
$o = array(
|
||||||
'tot' => $results['tot'],
|
'tot' => $results['tot'],
|
||||||
'start' => $results['start'],
|
'start' => $results['start'],
|
||||||
|
|
|
||||||
|
|
@ -154,9 +154,9 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
|
|
||||||
// workaround for HTTP-auth in CGI mode
|
// workaround for HTTP-auth in CGI mode
|
||||||
if (x($_SERVER,'REDIRECT_REMOTE_USER')) {
|
if(x($_SERVER,'REDIRECT_REMOTE_USER')) {
|
||||||
$userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ;
|
$userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"],6)) ;
|
||||||
if (strlen($userpass)) {
|
if(strlen($userpass)) {
|
||||||
list($name, $password) = explode(':', $userpass);
|
list($name, $password) = explode(':', $userpass);
|
||||||
$_SERVER['PHP_AUTH_USER'] = $name;
|
$_SERVER['PHP_AUTH_USER'] = $name;
|
||||||
$_SERVER['PHP_AUTH_PW'] = $password;
|
$_SERVER['PHP_AUTH_PW'] = $password;
|
||||||
|
|
@ -199,7 +199,7 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
call_hooks('authenticate', $addon_auth);
|
call_hooks('authenticate', $addon_auth);
|
||||||
|
|
||||||
if (($addon_auth['authenticated']) && (count($addon_auth['user_record']))) {
|
if(($addon_auth['authenticated']) && (count($addon_auth['user_record']))) {
|
||||||
$record = $addon_auth['user_record'];
|
$record = $addon_auth['user_record'];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -215,7 +215,7 @@ use \Friendica\Core\Config;
|
||||||
$record = $r[0];
|
$record = $r[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((! $record) || (! count($record))) {
|
if((! $record) || (! count($record))) {
|
||||||
logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
|
logger('API_login failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
|
||||||
header('WWW-Authenticate: Basic realm="Friendica"');
|
header('WWW-Authenticate: Basic realm="Friendica"');
|
||||||
#header('HTTP/1.0 401 Unauthorized');
|
#header('HTTP/1.0 401 Unauthorized');
|
||||||
|
|
@ -334,7 +334,7 @@ use \Friendica\Core\Config;
|
||||||
break;
|
break;
|
||||||
case "json":
|
case "json":
|
||||||
header ("Content-Type: application/json");
|
header ("Content-Type: application/json");
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
$json = json_encode($rr);
|
$json = json_encode($rr);
|
||||||
if ($_GET['callback'])
|
if ($_GET['callback'])
|
||||||
$json = $_GET['callback']."(".$json.")";
|
$json = $_GET['callback']."(".$json.")";
|
||||||
|
|
@ -457,7 +457,7 @@ use \Friendica\Core\Config;
|
||||||
logger("api_get_user: Fetching user data for user ".$contact_id, LOGGER_DEBUG);
|
logger("api_get_user: Fetching user data for user ".$contact_id, LOGGER_DEBUG);
|
||||||
|
|
||||||
// Searching for contact URL
|
// Searching for contact URL
|
||||||
if (!is_null($contact_id) AND (intval($contact_id) == 0)){
|
if(!is_null($contact_id) AND (intval($contact_id) == 0)){
|
||||||
$user = dbesc(normalise_link($contact_id));
|
$user = dbesc(normalise_link($contact_id));
|
||||||
$url = $user;
|
$url = $user;
|
||||||
$extra_query = "AND `contact`.`nurl` = '%s' ";
|
$extra_query = "AND `contact`.`nurl` = '%s' ";
|
||||||
|
|
@ -465,7 +465,7 @@ use \Friendica\Core\Config;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Searching for contact id with uid = 0
|
// Searching for contact id with uid = 0
|
||||||
if (!is_null($contact_id) AND (intval($contact_id) != 0)){
|
if(!is_null($contact_id) AND (intval($contact_id) != 0)){
|
||||||
$user = dbesc(api_unique_id_to_url($contact_id));
|
$user = dbesc(api_unique_id_to_url($contact_id));
|
||||||
|
|
||||||
if ($user == "")
|
if ($user == "")
|
||||||
|
|
@ -476,7 +476,7 @@ use \Friendica\Core\Config;
|
||||||
if (api_user()!==false) $extra_query .= "AND `contact`.`uid`=".intval(api_user());
|
if (api_user()!==false) $extra_query .= "AND `contact`.`uid`=".intval(api_user());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_null($user) && x($_GET, 'user_id')) {
|
if(is_null($user) && x($_GET, 'user_id')) {
|
||||||
$user = dbesc(api_unique_id_to_url($_GET['user_id']));
|
$user = dbesc(api_unique_id_to_url($_GET['user_id']));
|
||||||
|
|
||||||
if ($user == "")
|
if ($user == "")
|
||||||
|
|
@ -486,7 +486,7 @@ use \Friendica\Core\Config;
|
||||||
$extra_query = "AND `contact`.`nurl` = '%s' ";
|
$extra_query = "AND `contact`.`nurl` = '%s' ";
|
||||||
if (api_user()!==false) $extra_query .= "AND `contact`.`uid`=".intval(api_user());
|
if (api_user()!==false) $extra_query .= "AND `contact`.`uid`=".intval(api_user());
|
||||||
}
|
}
|
||||||
if (is_null($user) && x($_GET, 'screen_name')) {
|
if(is_null($user) && x($_GET, 'screen_name')) {
|
||||||
$user = dbesc($_GET['screen_name']);
|
$user = dbesc($_GET['screen_name']);
|
||||||
$nick = $user;
|
$nick = $user;
|
||||||
$extra_query = "AND `contact`.`nick` = '%s' ";
|
$extra_query = "AND `contact`.`nick` = '%s' ";
|
||||||
|
|
@ -496,7 +496,7 @@ use \Friendica\Core\Config;
|
||||||
if (is_null($user) AND ($a->argc > (count($called_api)-1)) AND (count($called_api) > 0)){
|
if (is_null($user) AND ($a->argc > (count($called_api)-1)) AND (count($called_api) > 0)){
|
||||||
$argid = count($called_api);
|
$argid = count($called_api);
|
||||||
list($user, $null) = explode(".",$a->argv[$argid]);
|
list($user, $null) = explode(".",$a->argv[$argid]);
|
||||||
if (is_numeric($user)){
|
if(is_numeric($user)){
|
||||||
$user = dbesc(api_unique_id_to_url($user));
|
$user = dbesc(api_unique_id_to_url($user));
|
||||||
|
|
||||||
if ($user == "")
|
if ($user == "")
|
||||||
|
|
@ -593,7 +593,7 @@ use \Friendica\Core\Config;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($uinfo[0]['self']) {
|
if($uinfo[0]['self']) {
|
||||||
|
|
||||||
if ($uinfo[0]['network'] == "")
|
if ($uinfo[0]['network'] == "")
|
||||||
$uinfo[0]['network'] = NETWORK_DFRN;
|
$uinfo[0]['network'] = NETWORK_DFRN;
|
||||||
|
|
@ -648,7 +648,7 @@ use \Friendica\Core\Config;
|
||||||
$starred = $r[0]['count'];
|
$starred = $r[0]['count'];
|
||||||
|
|
||||||
|
|
||||||
if (! $uinfo[0]['self']) {
|
if(! $uinfo[0]['self']) {
|
||||||
$countfriends = 0;
|
$countfriends = 0;
|
||||||
$countfollowers = 0;
|
$countfollowers = 0;
|
||||||
$starred = 0;
|
$starred = 0;
|
||||||
|
|
@ -923,7 +923,7 @@ use \Friendica\Core\Config;
|
||||||
$txt = requestdata('status');
|
$txt = requestdata('status');
|
||||||
//$txt = urldecode(requestdata('status'));
|
//$txt = urldecode(requestdata('status'));
|
||||||
|
|
||||||
if ((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
|
if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
|
||||||
|
|
||||||
$txt = html2bb_video($txt);
|
$txt = html2bb_video($txt);
|
||||||
$config = HTMLPurifier_Config::createDefault();
|
$config = HTMLPurifier_Config::createDefault();
|
||||||
|
|
@ -964,9 +964,9 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
// logger('api_post: ' . print_r($_POST,true));
|
// logger('api_post: ' . print_r($_POST,true));
|
||||||
|
|
||||||
if (requestdata('htmlstatus')) {
|
if(requestdata('htmlstatus')) {
|
||||||
$txt = requestdata('htmlstatus');
|
$txt = requestdata('htmlstatus');
|
||||||
if ((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
|
if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
|
||||||
$txt = html2bb_video($txt);
|
$txt = html2bb_video($txt);
|
||||||
|
|
||||||
$config = HTMLPurifier_Config::createDefault();
|
$config = HTMLPurifier_Config::createDefault();
|
||||||
|
|
@ -989,16 +989,16 @@ use \Friendica\Core\Config;
|
||||||
if ($parent == -1)
|
if ($parent == -1)
|
||||||
$parent = "";
|
$parent = "";
|
||||||
|
|
||||||
if (ctype_digit($parent))
|
if(ctype_digit($parent))
|
||||||
$_REQUEST['parent'] = $parent;
|
$_REQUEST['parent'] = $parent;
|
||||||
else
|
else
|
||||||
$_REQUEST['parent_uri'] = $parent;
|
$_REQUEST['parent_uri'] = $parent;
|
||||||
|
|
||||||
if (requestdata('lat') && requestdata('long'))
|
if(requestdata('lat') && requestdata('long'))
|
||||||
$_REQUEST['coord'] = sprintf("%s %s",requestdata('lat'),requestdata('long'));
|
$_REQUEST['coord'] = sprintf("%s %s",requestdata('lat'),requestdata('long'));
|
||||||
$_REQUEST['profile_uid'] = api_user();
|
$_REQUEST['profile_uid'] = api_user();
|
||||||
|
|
||||||
if ($parent)
|
if($parent)
|
||||||
$_REQUEST['type'] = 'net-comment';
|
$_REQUEST['type'] = 'net-comment';
|
||||||
else {
|
else {
|
||||||
// Check for throttling (maximum posts per day, week and month)
|
// Check for throttling (maximum posts per day, week and month)
|
||||||
|
|
@ -1066,11 +1066,11 @@ use \Friendica\Core\Config;
|
||||||
$_REQUEST['type'] = 'wall';
|
$_REQUEST['type'] = 'wall';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_FILES,'media')) {
|
if(x($_FILES,'media')) {
|
||||||
// upload the image if we have one
|
// upload the image if we have one
|
||||||
$_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo
|
$_REQUEST['hush']='yeah'; //tell wall_upload function to return img info instead of echo
|
||||||
$media = wall_upload_post($a);
|
$media = wall_upload_post($a);
|
||||||
if (strlen($media)>0)
|
if(strlen($media)>0)
|
||||||
$_REQUEST['body'] .= "\n\n".$media;
|
$_REQUEST['body'] .= "\n\n".$media;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1115,13 +1115,13 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
$user_info = api_get_user($a);
|
$user_info = api_get_user($a);
|
||||||
|
|
||||||
if (!x($_FILES,'media')) {
|
if(!x($_FILES,'media')) {
|
||||||
// Output error
|
// Output error
|
||||||
throw new BadRequestException("No media.");
|
throw new BadRequestException("No media.");
|
||||||
}
|
}
|
||||||
|
|
||||||
$media = wall_upload_post($a, false);
|
$media = wall_upload_post($a, false);
|
||||||
if (!$media) {
|
if(!$media) {
|
||||||
// Output error
|
// Output error
|
||||||
throw new InternalServerErrorException();
|
throw new InternalServerErrorException();
|
||||||
}
|
}
|
||||||
|
|
@ -2469,7 +2469,7 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
$ret = Array();
|
$ret = Array();
|
||||||
|
|
||||||
foreach ($r as $item) {
|
foreach($r as $item) {
|
||||||
|
|
||||||
localize_item($item);
|
localize_item($item);
|
||||||
list($status_user, $owner_user) = api_item_get_user($a,$item);
|
list($status_user, $owner_user) = api_item_get_user($a,$item);
|
||||||
|
|
@ -2641,9 +2641,9 @@ use \Friendica\Core\Config;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($qtype == 'friends')
|
if($qtype == 'friends')
|
||||||
$sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND));
|
$sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND));
|
||||||
if ($qtype == 'followers')
|
if($qtype == 'followers')
|
||||||
$sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_FOLLOWER), intval(CONTACT_IS_FRIEND));
|
$sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_FOLLOWER), intval(CONTACT_IS_FRIEND));
|
||||||
|
|
||||||
// friends and followers only for self
|
// friends and followers only for self
|
||||||
|
|
@ -2655,7 +2655,7 @@ use \Friendica\Core\Config;
|
||||||
);
|
);
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
foreach ($r as $cid){
|
foreach($r as $cid){
|
||||||
$user = api_get_user($a, $cid['nurl']);
|
$user = api_get_user($a, $cid['nurl']);
|
||||||
// "uid" and "self" are only needed for some internal stuff, so remove it from here
|
// "uid" and "self" are only needed for some internal stuff, so remove it from here
|
||||||
unset($user["uid"]);
|
unset($user["uid"]);
|
||||||
|
|
@ -2697,7 +2697,7 @@ use \Friendica\Core\Config;
|
||||||
$closed = (($a->config['register_policy'] == REGISTER_CLOSED) ? 'true' : 'false');
|
$closed = (($a->config['register_policy'] == REGISTER_CLOSED) ? 'true' : 'false');
|
||||||
$private = ((Config::get('system', 'block_public')) ? 'true' : 'false');
|
$private = ((Config::get('system', 'block_public')) ? 'true' : 'false');
|
||||||
$textlimit = (string) (($a->config['max_import_size']) ? $a->config['max_import_size'] : 200000);
|
$textlimit = (string) (($a->config['max_import_size']) ? $a->config['max_import_size'] : 200000);
|
||||||
if ($a->config['api_import_size'])
|
if($a->config['api_import_size'])
|
||||||
$texlimit = string($a->config['api_import_size']);
|
$texlimit = string($a->config['api_import_size']);
|
||||||
$ssl = ((Config::get('system', 'have_ssl')) ? 'true' : 'false');
|
$ssl = ((Config::get('system', 'have_ssl')) ? 'true' : 'false');
|
||||||
$sslserver = (($ssl === 'true') ? str_replace('http:','https:',App::get_baseurl()) : '');
|
$sslserver = (($ssl === 'true') ? str_replace('http:','https:',App::get_baseurl()) : '');
|
||||||
|
|
@ -2737,13 +2737,13 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (! api_user()) throw new ForbiddenException();
|
if(! api_user()) throw new ForbiddenException();
|
||||||
|
|
||||||
$user_info = api_get_user($a);
|
$user_info = api_get_user($a);
|
||||||
|
|
||||||
if ($qtype == 'friends')
|
if($qtype == 'friends')
|
||||||
$sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND));
|
$sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND));
|
||||||
if ($qtype == 'followers')
|
if($qtype == 'followers')
|
||||||
$sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_FOLLOWER), intval(CONTACT_IS_FRIEND));
|
$sql_extra = sprintf(" AND ( `rel` = %d OR `rel` = %d ) ", intval(CONTACT_IS_FOLLOWER), intval(CONTACT_IS_FRIEND));
|
||||||
|
|
||||||
if (!$user_info["self"])
|
if (!$user_info["self"])
|
||||||
|
|
@ -2761,7 +2761,7 @@ use \Friendica\Core\Config;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$ids = array();
|
$ids = array();
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
if ($stringify_ids)
|
if ($stringify_ids)
|
||||||
$ids[] = $rr['id'];
|
$ids[] = $rr['id'];
|
||||||
else
|
else
|
||||||
|
|
@ -2967,7 +2967,7 @@ use \Friendica\Core\Config;
|
||||||
if ($user_id !="") {
|
if ($user_id !="") {
|
||||||
$sql_extra .= ' AND `mail`.`contact-id` = ' . intval($user_id);
|
$sql_extra .= ' AND `mail`.`contact-id` = ' . intval($user_id);
|
||||||
}
|
}
|
||||||
elseif ($screen_name !=""){
|
elseif($screen_name !=""){
|
||||||
$sql_extra .= " AND `contact`.`nick` = '" . dbesc($screen_name). "'";
|
$sql_extra .= " AND `contact`.`nick` = '" . dbesc($screen_name). "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2978,14 +2978,14 @@ use \Friendica\Core\Config;
|
||||||
);
|
);
|
||||||
if ($verbose == "true") {
|
if ($verbose == "true") {
|
||||||
// stop execution and return error message if no mails available
|
// stop execution and return error message if no mails available
|
||||||
if ($r == null) {
|
if($r == null) {
|
||||||
$answer = array('result' => 'error', 'message' => 'no mails available');
|
$answer = array('result' => 'error', 'message' => 'no mails available');
|
||||||
return api_format_data("direct_messages_all", $type, array('$result' => $answer));
|
return api_format_data("direct_messages_all", $type, array('$result' => $answer));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret = Array();
|
$ret = Array();
|
||||||
foreach ($r as $item) {
|
foreach($r as $item) {
|
||||||
if ($box == "inbox" || $item['from-url'] != $profile_url){
|
if ($box == "inbox" || $item['from-url'] != $profile_url){
|
||||||
$recipient = $user_info;
|
$recipient = $user_info;
|
||||||
$sender = api_get_user($a,normalise_link($item['contact-url']));
|
$sender = api_get_user($a,normalise_link($item['contact-url']));
|
||||||
|
|
@ -3092,7 +3092,7 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
function api_fr_photo_detail($type) {
|
function api_fr_photo_detail($type) {
|
||||||
if (api_user()===false) throw new ForbiddenException();
|
if (api_user()===false) throw new ForbiddenException();
|
||||||
if (!x($_REQUEST,'photo_id')) throw new BadRequestException("No photo id.");
|
if(!x($_REQUEST,'photo_id')) throw new BadRequestException("No photo id.");
|
||||||
|
|
||||||
$scale = (x($_REQUEST, 'scale') ? intval($_REQUEST['scale']) : false);
|
$scale = (x($_REQUEST, 'scale') ? intval($_REQUEST['scale']) : false);
|
||||||
$scale_sql = ($scale === false ? "" : sprintf("and scale=%d",intval($scale)));
|
$scale_sql = ($scale === false ? "" : sprintf("and scale=%d",intval($scale)));
|
||||||
|
|
@ -3183,11 +3183,11 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
$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;
|
||||||
}
|
}
|
||||||
|
|
@ -3927,7 +3927,7 @@ use \Friendica\Core\Config;
|
||||||
$success = array('success' => false, 'search_results' => 'nothing found');
|
$success = array('success' => false, 'search_results' => 'nothing found');
|
||||||
else {
|
else {
|
||||||
$ret = Array();
|
$ret = Array();
|
||||||
foreach ($r as $item) {
|
foreach($r as $item) {
|
||||||
if ($box == "inbox" || $item['from-url'] != $profile_url){
|
if ($box == "inbox" || $item['from-url'] != $profile_url){
|
||||||
$recipient = $user_info;
|
$recipient = $user_info;
|
||||||
$sender = api_get_user($a,normalise_link($item['contact-url']));
|
$sender = api_get_user($a,normalise_link($item['contact-url']));
|
||||||
|
|
|
||||||
|
|
@ -1061,7 +1061,7 @@ function z_mime_content_type($filename) {
|
||||||
);
|
);
|
||||||
|
|
||||||
$dot = strpos($filename,'.');
|
$dot = strpos($filename,'.');
|
||||||
if ($dot !== false) {
|
if($dot !== false) {
|
||||||
$ext = strtolower(substr($filename,$dot+1));
|
$ext = strtolower(substr($filename,$dot+1));
|
||||||
if (array_key_exists($ext, $mime_types)) {
|
if (array_key_exists($ext, $mime_types)) {
|
||||||
return $mime_types[$ext];
|
return $mime_types[$ext];
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
|
||||||
// Add all tags that maybe were removed
|
// Add all tags that maybe were removed
|
||||||
if (preg_match_all("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",$OriginalText, $tags)) {
|
if (preg_match_all("/#\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",$OriginalText, $tags)) {
|
||||||
$tagline = "";
|
$tagline = "";
|
||||||
foreach ($tags[2] as $tag) {
|
foreach($tags[2] as $tag) {
|
||||||
$tag = html_entity_decode($tag, ENT_QUOTES, 'UTF-8');
|
$tag = html_entity_decode($tag, ENT_QUOTES, 'UTF-8');
|
||||||
if (!strpos(html_entity_decode($Text, ENT_QUOTES, 'UTF-8'), "#".$tag))
|
if (!strpos(html_entity_decode($Text, ENT_QUOTES, 'UTF-8'), "#".$tag))
|
||||||
$tagline .= "#".$tag." ";
|
$tagline .= "#".$tag." ";
|
||||||
|
|
@ -193,7 +193,7 @@ function unescape_underscores_in_links($m) {
|
||||||
|
|
||||||
function format_event_diaspora($ev) {
|
function format_event_diaspora($ev) {
|
||||||
|
|
||||||
if (! ((is_array($ev)) && count($ev)))
|
if(! ((is_array($ev)) && count($ev)))
|
||||||
return '';
|
return '';
|
||||||
|
|
||||||
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
|
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
|
||||||
|
|
@ -209,7 +209,7 @@ function format_event_diaspora($ev) {
|
||||||
$ev['start'] , $bd_format)))
|
$ev['start'] , $bd_format)))
|
||||||
. '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n";
|
. '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n";
|
||||||
|
|
||||||
if (! $ev['nofinish'])
|
if(! $ev['nofinish'])
|
||||||
$o .= t('Finishes:') . ' ' . '['
|
$o .= t('Finishes:') . ' ' . '['
|
||||||
. (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC',
|
. (($ev['adjust']) ? day_translate(datetime_convert('UTC', 'UTC',
|
||||||
$ev['finish'] , $bd_format ))
|
$ev['finish'] , $bd_format ))
|
||||||
|
|
@ -217,7 +217,7 @@ function format_event_diaspora($ev) {
|
||||||
$ev['finish'] , $bd_format )))
|
$ev['finish'] , $bd_format )))
|
||||||
. '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n";
|
. '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n";
|
||||||
|
|
||||||
if (strlen($ev['location']))
|
if(strlen($ev['location']))
|
||||||
$o .= t('Location:') . bb2diaspora($ev['location'])
|
$o .= t('Location:') . bb2diaspora($ev['location'])
|
||||||
. "\n";
|
. "\n";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -206,33 +206,30 @@ function bb_spacefy($st) {
|
||||||
// returning [i]italic[/i]
|
// returning [i]italic[/i]
|
||||||
|
|
||||||
function bb_unspacefy_and_trim($st) {
|
function bb_unspacefy_and_trim($st) {
|
||||||
$whole_match = $st[0];
|
$whole_match = $st[0];
|
||||||
$captured = $st[1];
|
$captured = $st[1];
|
||||||
$unspacefied = preg_replace("/\[ (.*?)\ ]/", "[$1]", $captured);
|
$unspacefied = preg_replace("/\[ (.*?)\ ]/", "[$1]", $captured);
|
||||||
return $unspacefied;
|
return $unspacefied;
|
||||||
}
|
}
|
||||||
|
|
||||||
function bb_find_open_close($s, $open, $close, $occurance = 1) {
|
function bb_find_open_close($s, $open, $close, $occurance = 1) {
|
||||||
|
|
||||||
if ($occurance < 1)
|
if($occurance < 1)
|
||||||
$occurance = 1;
|
$occurance = 1;
|
||||||
|
|
||||||
$start_pos = -1;
|
$start_pos = -1;
|
||||||
for ($i = 1; $i <= $occurance; $i++) {
|
for($i = 1; $i <= $occurance; $i++) {
|
||||||
if ( $start_pos !== false) {
|
if( $start_pos !== false)
|
||||||
$start_pos = strpos($s, $open, $start_pos + 1);
|
$start_pos = strpos($s, $open, $start_pos + 1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $start_pos === false) {
|
if( $start_pos === false)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$end_pos = strpos($s, $close, $start_pos);
|
$end_pos = strpos($s, $close, $start_pos);
|
||||||
|
|
||||||
if ( $end_pos === false) {
|
if( $end_pos === false)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$res = array( 'start' => $start_pos, 'end' => $end_pos );
|
$res = array( 'start' => $start_pos, 'end' => $end_pos );
|
||||||
|
|
||||||
|
|
@ -241,35 +238,34 @@ function bb_find_open_close($s, $open, $close, $occurance = 1) {
|
||||||
|
|
||||||
function get_bb_tag_pos($s, $name, $occurance = 1) {
|
function get_bb_tag_pos($s, $name, $occurance = 1) {
|
||||||
|
|
||||||
if ($occurance < 1)
|
if($occurance < 1)
|
||||||
$occurance = 1;
|
$occurance = 1;
|
||||||
|
|
||||||
$start_open = -1;
|
$start_open = -1;
|
||||||
for ($i = 1; $i <= $occurance; $i++) {
|
for($i = 1; $i <= $occurance; $i++) {
|
||||||
if ( $start_open !== false) {
|
if( $start_open !== false)
|
||||||
$start_open = strpos($s, '[' . $name, $start_open + 1); // allow [name= type tags
|
$start_open = strpos($s, '[' . $name, $start_open + 1); // allow [name= type tags
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $start_open === false)
|
if( $start_open === false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$start_equal = strpos($s, '=', $start_open);
|
$start_equal = strpos($s, '=', $start_open);
|
||||||
$start_close = strpos($s, ']', $start_open);
|
$start_close = strpos($s, ']', $start_open);
|
||||||
|
|
||||||
if ( $start_close === false)
|
if( $start_close === false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$start_close++;
|
$start_close++;
|
||||||
|
|
||||||
$end_open = strpos($s, '[/' . $name . ']', $start_close);
|
$end_open = strpos($s, '[/' . $name . ']', $start_close);
|
||||||
|
|
||||||
if ( $end_open === false)
|
if( $end_open === false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$res = array( 'start' => array('open' => $start_open, 'close' => $start_close),
|
$res = array( 'start' => array('open' => $start_open, 'close' => $start_close),
|
||||||
'end' => array('open' => $end_open, 'close' => $end_open + strlen('[/' . $name . ']')) );
|
'end' => array('open' => $end_open, 'close' => $end_open + strlen('[/' . $name . ']')) );
|
||||||
if ( $start_equal !== false)
|
if( $start_equal !== false)
|
||||||
$res['start']['equal'] = $start_equal + 1;
|
$res['start']['equal'] = $start_equal + 1;
|
||||||
|
|
||||||
return $res;
|
return $res;
|
||||||
|
|
@ -281,12 +277,12 @@ function bb_tag_preg_replace($pattern, $replace, $name, $s) {
|
||||||
|
|
||||||
$occurance = 1;
|
$occurance = 1;
|
||||||
$pos = get_bb_tag_pos($string, $name, $occurance);
|
$pos = get_bb_tag_pos($string, $name, $occurance);
|
||||||
while ($pos !== false && $occurance < 1000) {
|
while($pos !== false && $occurance < 1000) {
|
||||||
|
|
||||||
$start = substr($string, 0, $pos['start']['open']);
|
$start = substr($string, 0, $pos['start']['open']);
|
||||||
$subject = substr($string, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']);
|
$subject = substr($string, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']);
|
||||||
$end = substr($string, $pos['end']['close']);
|
$end = substr($string, $pos['end']['close']);
|
||||||
if ($end === false)
|
if($end === false)
|
||||||
$end = '';
|
$end = '';
|
||||||
|
|
||||||
$subject = preg_replace($pattern, $replace, $subject);
|
$subject = preg_replace($pattern, $replace, $subject);
|
||||||
|
|
@ -299,7 +295,7 @@ function bb_tag_preg_replace($pattern, $replace, $name, $s) {
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! function_exists('bb_extract_images')) {
|
if(! function_exists('bb_extract_images')) {
|
||||||
function bb_extract_images($body) {
|
function bb_extract_images($body) {
|
||||||
|
|
||||||
$saved_image = array();
|
$saved_image = array();
|
||||||
|
|
@ -310,12 +306,12 @@ function bb_extract_images($body) {
|
||||||
$img_start = strpos($orig_body, '[img');
|
$img_start = strpos($orig_body, '[img');
|
||||||
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
||||||
$img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
|
$img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
|
||||||
while (($img_st_close !== false) && ($img_end !== false)) {
|
while(($img_st_close !== false) && ($img_end !== false)) {
|
||||||
|
|
||||||
$img_st_close++; // make it point to AFTER the closing bracket
|
$img_st_close++; // make it point to AFTER the closing bracket
|
||||||
$img_end += $img_start;
|
$img_end += $img_start;
|
||||||
|
|
||||||
if (! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
|
if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
|
||||||
// This is an embedded image
|
// This is an embedded image
|
||||||
|
|
||||||
$saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
|
$saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
|
||||||
|
|
@ -328,7 +324,7 @@ function bb_extract_images($body) {
|
||||||
|
|
||||||
$orig_body = substr($orig_body, $img_end + strlen('[/img]'));
|
$orig_body = substr($orig_body, $img_end + strlen('[/img]'));
|
||||||
|
|
||||||
if ($orig_body === false) // in case the body ends on a closing image tag
|
if($orig_body === false) // in case the body ends on a closing image tag
|
||||||
$orig_body = '';
|
$orig_body = '';
|
||||||
|
|
||||||
$img_start = strpos($orig_body, '[img');
|
$img_start = strpos($orig_body, '[img');
|
||||||
|
|
@ -341,7 +337,7 @@ function bb_extract_images($body) {
|
||||||
return array('body' => $new_body, 'images' => $saved_image);
|
return array('body' => $new_body, 'images' => $saved_image);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if (! function_exists('bb_replace_images')) {
|
if(! function_exists('bb_replace_images')) {
|
||||||
function bb_replace_images($body, $images) {
|
function bb_replace_images($body, $images) {
|
||||||
|
|
||||||
$newbody = $body;
|
$newbody = $body;
|
||||||
|
|
@ -623,7 +619,7 @@ function bb_DiasporaLinks($match) {
|
||||||
function bb_RemovePictureLinks($match) {
|
function bb_RemovePictureLinks($match) {
|
||||||
$text = Cache::get($match[1]);
|
$text = Cache::get($match[1]);
|
||||||
|
|
||||||
if (is_null($text)){
|
if(is_null($text)){
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
|
|
@ -677,7 +673,7 @@ function bb_expand_links($match) {
|
||||||
function bb_CleanPictureLinksSub($match) {
|
function bb_CleanPictureLinksSub($match) {
|
||||||
$text = Cache::get($match[1]);
|
$text = Cache::get($match[1]);
|
||||||
|
|
||||||
if (is_null($text)){
|
if(is_null($text)){
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
|
|
@ -728,7 +724,7 @@ function bb_CleanPictureLinks($text) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function bb_highlight($match) {
|
function bb_highlight($match) {
|
||||||
if (in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby',
|
if(in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby',
|
||||||
'vbscript','avrc','dtd','java','xml','cpp','python','javascript','js','sh']))
|
'vbscript','avrc','dtd','java','xml','cpp','python','javascript','js','sh']))
|
||||||
return text_highlight($match[2],strtolower($match[1]));
|
return text_highlight($match[2],strtolower($match[1]));
|
||||||
return $match[0];
|
return $match[0];
|
||||||
|
|
@ -818,7 +814,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
|
|
||||||
$Text = str_replace(array("\r","\n"), array('<br />','<br />'), $Text);
|
$Text = str_replace(array("\r","\n"), array('<br />','<br />'), $Text);
|
||||||
|
|
||||||
if ($preserve_nl)
|
if($preserve_nl)
|
||||||
$Text = str_replace(array("\n","\r"), array('',''),$Text);
|
$Text = str_replace(array("\n","\r"), array('',''),$Text);
|
||||||
|
|
||||||
// Set up the parameters for a URL search string
|
// Set up the parameters for a URL search string
|
||||||
|
|
@ -1136,7 +1132,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
// Summary (e.g. title) is required, earlier revisions only required description (in addition to
|
// Summary (e.g. title) is required, earlier revisions only required description (in addition to
|
||||||
// start which is always required). Allow desc with a missing summary for compatibility.
|
// start which is always required). Allow desc with a missing summary for compatibility.
|
||||||
|
|
||||||
if ((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) {
|
if((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) {
|
||||||
$sub = format_event_html($ev, $simplehtml);
|
$sub = format_event_html($ev, $simplehtml);
|
||||||
|
|
||||||
$Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism",'',$Text);
|
$Text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism",'',$Text);
|
||||||
|
|
@ -1182,7 +1178,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
|
||||||
$regex = '#<([^>]*?)(href)="(?!' . implode('|', $allowed_link_protocols) . ')(.*?)"(.*?)>#ism';
|
$regex = '#<([^>]*?)(href)="(?!' . implode('|', $allowed_link_protocols) . ')(.*?)"(.*?)>#ism';
|
||||||
$Text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 class="invalid-href" title="' . t('Invalid link protocol') . '">', $Text);
|
$Text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 class="invalid-href" title="' . t('Invalid link protocol') . '">', $Text);
|
||||||
|
|
||||||
if ($saved_image) {
|
if($saved_image) {
|
||||||
$Text = bb_replace_images($Text, $saved_image);
|
$Text = bb_replace_images($Text, $saved_image);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ function cli_startup() {
|
||||||
require_once("dba.php");
|
require_once("dba.php");
|
||||||
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
||||||
unset($db_host, $db_user, $db_pass, $db_data);
|
unset($db_host, $db_user, $db_pass, $db_data);
|
||||||
};
|
};
|
||||||
|
|
||||||
require_once('include/session.php');
|
require_once('include/session.php');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ function contact_reputation($current) {
|
||||||
5 => t('Reputable, has my trust')
|
5 => t('Reputable, has my trust')
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($rep as $k => $v) {
|
foreach($rep as $k => $v) {
|
||||||
$selected = (($k == $current) ? " selected=\"selected\" " : "");
|
$selected = (($k == $current) ? " selected=\"selected\" " : "");
|
||||||
$o .= "<option value=\"$k\" $selected >$v</option>\r\n";
|
$o .= "<option value=\"$k\" $selected >$v</option>\r\n";
|
||||||
}
|
}
|
||||||
|
|
@ -61,7 +61,7 @@ function contact_poll_interval($current, $disabled = false) {
|
||||||
5 => t('Monthly')
|
5 => t('Monthly')
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($rep as $k => $v) {
|
foreach($rep as $k => $v) {
|
||||||
$selected = (($k == $current) ? " selected=\"selected\" " : "");
|
$selected = (($k == $current) ? " selected=\"selected\" " : "");
|
||||||
$o .= "<option value=\"$k\" $selected >$v</option>\r\n";
|
$o .= "<option value=\"$k\" $selected >$v</option>\r\n";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,9 @@ function findpeople_widget() {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (get_config('system','invitation_only')) {
|
if(get_config('system','invitation_only')) {
|
||||||
$x = get_pconfig(local_user(),'system','invites_remaining');
|
$x = get_pconfig(local_user(),'system','invites_remaining');
|
||||||
if ($x || is_site_admin()) {
|
if($x || is_site_admin()) {
|
||||||
$a->page['aside'] .= '<div class="side-link" id="side-invite-remain">'
|
$a->page['aside'] .= '<div class="side-link" id="side-invite-remain">'
|
||||||
. sprintf( tt('%d invitation available','%d invitations available',$x), $x)
|
. sprintf( tt('%d invitation available','%d invitations available',$x), $x)
|
||||||
. '</div>' . $inv;
|
. '</div>' . $inv;
|
||||||
|
|
@ -108,7 +108,7 @@ function networks_widget($baseurl,$selected = '') {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($nets) < 2)
|
if(count($nets) < 2)
|
||||||
return '';
|
return '';
|
||||||
|
|
||||||
return replace_macros(get_markup_template('nets.tpl'),array(
|
return replace_macros(get_markup_template('nets.tpl'),array(
|
||||||
|
|
@ -140,7 +140,7 @@ function fileas_widget($baseurl,$selected = '') {
|
||||||
$terms = array();
|
$terms = array();
|
||||||
$cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
|
$cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
|
||||||
if ($cnt) {
|
if ($cnt) {
|
||||||
foreach ($matches as $mtch) {
|
foreach($matches as $mtch) {
|
||||||
$unescaped = xmlify(file_tag_decode($mtch[1]));
|
$unescaped = xmlify(file_tag_decode($mtch[1]));
|
||||||
$terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
|
$terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
|
||||||
}
|
}
|
||||||
|
|
@ -172,11 +172,10 @@ function categories_widget($baseurl,$selected = '') {
|
||||||
|
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$terms = array();
|
$terms = array();
|
||||||
$cnt = preg_match_all('/<(.*?)>/',$saved,$matches,PREG_SET_ORDER);
|
$cnt = preg_match_all('/<(.*?)>/',$saved,$matches,PREG_SET_ORDER);
|
||||||
|
if($cnt) {
|
||||||
if ($cnt) {
|
foreach($matches as $mtch) {
|
||||||
foreach ($matches as $mtch) {
|
$unescaped = xmlify(file_tag_decode($mtch[1]));
|
||||||
$unescaped = xmlify(file_tag_decode($mtch[1]));
|
|
||||||
$terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
|
$terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -196,29 +195,29 @@ function common_friends_visitor_widget($profile_uid) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (local_user() == $profile_uid)
|
if(local_user() == $profile_uid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$cid = $zcid = 0;
|
$cid = $zcid = 0;
|
||||||
|
|
||||||
if (is_array($_SESSION['remote'])) {
|
if(is_array($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $visitor) {
|
foreach($_SESSION['remote'] as $visitor) {
|
||||||
if ($visitor['uid'] == $profile_uid) {
|
if($visitor['uid'] == $profile_uid) {
|
||||||
$cid = $visitor['cid'];
|
$cid = $visitor['cid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $cid) {
|
if(! $cid) {
|
||||||
if (get_my_url()) {
|
if(get_my_url()) {
|
||||||
$r = q("select id from contact where nurl = '%s' and uid = %d limit 1",
|
$r = q("select id from contact where nurl = '%s' and uid = %d limit 1",
|
||||||
dbesc(normalise_link(get_my_url())),
|
dbesc(normalise_link(get_my_url())),
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$cid = $r[0]['id'];
|
$cid = $r[0]['id'];
|
||||||
} else {
|
else {
|
||||||
$r = q("select id from gcontact where nurl = '%s' limit 1",
|
$r = q("select id from gcontact where nurl = '%s' limit 1",
|
||||||
dbesc(normalise_link(get_my_url()))
|
dbesc(normalise_link(get_my_url()))
|
||||||
);
|
);
|
||||||
|
|
@ -228,26 +227,22 @@ function common_friends_visitor_widget($profile_uid) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cid == 0 && $zcid == 0) {
|
if($cid == 0 && $zcid == 0)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
require_once('include/socgraph.php');
|
require_once('include/socgraph.php');
|
||||||
|
|
||||||
if ($cid) {
|
if($cid)
|
||||||
$t = count_common_friends($profile_uid,$cid);
|
$t = count_common_friends($profile_uid,$cid);
|
||||||
} else {
|
else
|
||||||
$t = count_common_friends_zcid($profile_uid,$zcid);
|
$t = count_common_friends_zcid($profile_uid,$zcid);
|
||||||
}
|
if(! $t)
|
||||||
if (! $t) {
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if ($cid) {
|
if($cid)
|
||||||
$r = common_friends($profile_uid,$cid,0,5,true);
|
$r = common_friends($profile_uid,$cid,0,5,true);
|
||||||
} else {
|
else
|
||||||
$r = common_friends_zcid($profile_uid,$zcid,0,5,true);
|
$r = common_friends_zcid($profile_uid,$zcid,0,5,true);
|
||||||
}
|
|
||||||
|
|
||||||
return replace_macros(get_markup_template('remote_friends_common.tpl'), array(
|
return replace_macros(get_markup_template('remote_friends_common.tpl'), array(
|
||||||
'$desc' => sprintf( tt("%d contact in common", "%d contacts in common", $t), $t),
|
'$desc' => sprintf( tt("%d contact in common", "%d contacts in common", $t), $t),
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ require_once("include/acl_selectors.php");
|
||||||
// Note: the code in 'item_extract_images' and 'item_redir_and_replace_images'
|
// Note: the code in 'item_extract_images' and 'item_redir_and_replace_images'
|
||||||
// is identical to the code in mod/message.php for 'item_extract_images' and
|
// is identical to the code in mod/message.php for 'item_extract_images' and
|
||||||
// 'item_redir_and_replace_images'
|
// 'item_redir_and_replace_images'
|
||||||
if (! function_exists('item_extract_images')) {
|
if(! function_exists('item_extract_images')) {
|
||||||
function item_extract_images($body) {
|
function item_extract_images($body) {
|
||||||
|
|
||||||
$saved_image = array();
|
$saved_image = array();
|
||||||
|
|
@ -18,12 +18,12 @@ function item_extract_images($body) {
|
||||||
$img_start = strpos($orig_body, '[img');
|
$img_start = strpos($orig_body, '[img');
|
||||||
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
||||||
$img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
|
$img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
|
||||||
while (($img_st_close !== false) && ($img_end !== false)) {
|
while(($img_st_close !== false) && ($img_end !== false)) {
|
||||||
|
|
||||||
$img_st_close++; // make it point to AFTER the closing bracket
|
$img_st_close++; // make it point to AFTER the closing bracket
|
||||||
$img_end += $img_start;
|
$img_end += $img_start;
|
||||||
|
|
||||||
if (! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
|
if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
|
||||||
// This is an embedded image
|
// This is an embedded image
|
||||||
|
|
||||||
$saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
|
$saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
|
||||||
|
|
@ -36,7 +36,7 @@ function item_extract_images($body) {
|
||||||
|
|
||||||
$orig_body = substr($orig_body, $img_end + strlen('[/img]'));
|
$orig_body = substr($orig_body, $img_end + strlen('[/img]'));
|
||||||
|
|
||||||
if ($orig_body === false) // in case the body ends on a closing image tag
|
if($orig_body === false) // in case the body ends on a closing image tag
|
||||||
$orig_body = '';
|
$orig_body = '';
|
||||||
|
|
||||||
$img_start = strpos($orig_body, '[img');
|
$img_start = strpos($orig_body, '[img');
|
||||||
|
|
@ -49,7 +49,7 @@ function item_extract_images($body) {
|
||||||
return array('body' => $new_body, 'images' => $saved_image);
|
return array('body' => $new_body, 'images' => $saved_image);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if (! function_exists('item_redir_and_replace_images')) {
|
if(! function_exists('item_redir_and_replace_images')) {
|
||||||
function item_redir_and_replace_images($body, $images, $cid) {
|
function item_redir_and_replace_images($body, $images, $cid) {
|
||||||
|
|
||||||
$origbody = $body;
|
$origbody = $body;
|
||||||
|
|
@ -57,7 +57,7 @@ function item_redir_and_replace_images($body, $images, $cid) {
|
||||||
|
|
||||||
$cnt = 1;
|
$cnt = 1;
|
||||||
$pos = get_bb_tag_pos($origbody, 'url', 1);
|
$pos = get_bb_tag_pos($origbody, 'url', 1);
|
||||||
while ($pos !== false && $cnt < 1000) {
|
while($pos !== false && $cnt < 1000) {
|
||||||
|
|
||||||
$search = '/\[url\=(.*?)\]\[!#saved_image([0-9]*)#!\]\[\/url\]' . '/is';
|
$search = '/\[url\=(.*?)\]\[!#saved_image([0-9]*)#!\]\[\/url\]' . '/is';
|
||||||
$replace = '[url=' . z_path() . '/redir/' . $cid
|
$replace = '[url=' . z_path() . '/redir/' . $cid
|
||||||
|
|
@ -66,7 +66,7 @@ function item_redir_and_replace_images($body, $images, $cid) {
|
||||||
$newbody .= substr($origbody, 0, $pos['start']['open']);
|
$newbody .= substr($origbody, 0, $pos['start']['open']);
|
||||||
$subject = substr($origbody, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']);
|
$subject = substr($origbody, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']);
|
||||||
$origbody = substr($origbody, $pos['end']['close']);
|
$origbody = substr($origbody, $pos['end']['close']);
|
||||||
if ($origbody === false)
|
if($origbody === false)
|
||||||
$origbody = '';
|
$origbody = '';
|
||||||
|
|
||||||
$subject = preg_replace($search, $replace, $subject);
|
$subject = preg_replace($search, $replace, $subject);
|
||||||
|
|
@ -96,7 +96,7 @@ function item_redir_and_replace_images($body, $images, $cid) {
|
||||||
function localize_item(&$item){
|
function localize_item(&$item){
|
||||||
|
|
||||||
$extracted = item_extract_images($item['body']);
|
$extracted = item_extract_images($item['body']);
|
||||||
if ($extracted['images'])
|
if($extracted['images'])
|
||||||
$item['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $item['contact-id']);
|
$item['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $item['contact-id']);
|
||||||
|
|
||||||
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
|
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
|
||||||
|
|
@ -126,7 +126,7 @@ function localize_item(&$item){
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ($obj['resource-id']){
|
if($obj['resource-id']){
|
||||||
$post_type = t('photo');
|
$post_type = t('photo');
|
||||||
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
|
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
|
||||||
$rr['plink'] = $m[1];
|
$rr['plink'] = $m[1];
|
||||||
|
|
@ -137,19 +137,19 @@ function localize_item(&$item){
|
||||||
|
|
||||||
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
|
$plink = '[url=' . $obj['plink'] . ']' . $post_type . '[/url]';
|
||||||
|
|
||||||
if (activity_match($item['verb'],ACTIVITY_LIKE)) {
|
if(activity_match($item['verb'],ACTIVITY_LIKE)) {
|
||||||
$bodyverb = t('%1$s likes %2$s\'s %3$s');
|
$bodyverb = t('%1$s likes %2$s\'s %3$s');
|
||||||
}
|
}
|
||||||
elseif (activity_match($item['verb'],ACTIVITY_DISLIKE)) {
|
elseif(activity_match($item['verb'],ACTIVITY_DISLIKE)) {
|
||||||
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
|
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
|
||||||
}
|
}
|
||||||
elseif (activity_match($item['verb'],ACTIVITY_ATTEND)) {
|
elseif(activity_match($item['verb'],ACTIVITY_ATTEND)) {
|
||||||
$bodyverb = t('%1$s attends %2$s\'s %3$s');
|
$bodyverb = t('%1$s attends %2$s\'s %3$s');
|
||||||
}
|
}
|
||||||
elseif (activity_match($item['verb'],ACTIVITY_ATTENDNO)) {
|
elseif(activity_match($item['verb'],ACTIVITY_ATTENDNO)) {
|
||||||
$bodyverb = t('%1$s doesn\'t attend %2$s\'s %3$s');
|
$bodyverb = t('%1$s doesn\'t attend %2$s\'s %3$s');
|
||||||
}
|
}
|
||||||
elseif (activity_match($item['verb'],ACTIVITY_ATTENDMAYBE)) {
|
elseif(activity_match($item['verb'],ACTIVITY_ATTENDMAYBE)) {
|
||||||
$bodyverb = t('%1$s attends maybe %2$s\'s %3$s');
|
$bodyverb = t('%1$s attends maybe %2$s\'s %3$s');
|
||||||
}
|
}
|
||||||
$item['body'] = sprintf($bodyverb, $author, $objauthor, $plink);
|
$item['body'] = sprintf($bodyverb, $author, $objauthor, $plink);
|
||||||
|
|
@ -187,7 +187,7 @@ function localize_item(&$item){
|
||||||
}
|
}
|
||||||
if (stristr($item['verb'],ACTIVITY_POKE)) {
|
if (stristr($item['verb'],ACTIVITY_POKE)) {
|
||||||
$verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1));
|
$verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1));
|
||||||
if (! $verb)
|
if(! $verb)
|
||||||
return;
|
return;
|
||||||
if ($item['object-type']=="" || $item['object-type']!== ACTIVITY_OBJ_PERSON) return;
|
if ($item['object-type']=="" || $item['object-type']!== ACTIVITY_OBJ_PERSON) return;
|
||||||
|
|
||||||
|
|
@ -229,7 +229,7 @@ function localize_item(&$item){
|
||||||
}
|
}
|
||||||
if (stristr($item['verb'],ACTIVITY_MOOD)) {
|
if (stristr($item['verb'],ACTIVITY_MOOD)) {
|
||||||
$verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1));
|
$verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1));
|
||||||
if (! $verb)
|
if(! $verb)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$Aname = $item['author-name'];
|
$Aname = $item['author-name'];
|
||||||
|
|
@ -262,7 +262,7 @@ function localize_item(&$item){
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if ($obj['resource-id']){
|
if($obj['resource-id']){
|
||||||
$post_type = t('photo');
|
$post_type = t('photo');
|
||||||
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
|
$m=array(); preg_match("/\[url=([^]]*)\]/", $obj['body'], $m);
|
||||||
$rr['plink'] = $m[1];
|
$rr['plink'] = $m[1];
|
||||||
|
|
@ -289,7 +289,7 @@ function localize_item(&$item){
|
||||||
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
|
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
|
||||||
|
|
||||||
$obj = parse_xml_string($xmlhead.$item['object']);
|
$obj = parse_xml_string($xmlhead.$item['object']);
|
||||||
if (strlen($obj->id)) {
|
if(strlen($obj->id)) {
|
||||||
$r = q("select * from item where uri = '%s' and uid = %d limit 1",
|
$r = q("select * from item where uri = '%s' and uid = %d limit 1",
|
||||||
dbesc($obj->id),
|
dbesc($obj->id),
|
||||||
intval($item['uid'])
|
intval($item['uid'])
|
||||||
|
|
@ -307,17 +307,16 @@ function localize_item(&$item){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$matches = null;
|
$matches = null;
|
||||||
if (preg_match_all('/@\[url=(.*?)\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
|
if(preg_match_all('/@\[url=(.*?)\]/is',$item['body'],$matches,PREG_SET_ORDER)) {
|
||||||
foreach ($matches as $mtch) {
|
foreach($matches as $mtch) {
|
||||||
if (! strpos($mtch[1],'zrl=')) {
|
if(! strpos($mtch[1],'zrl='))
|
||||||
$item['body'] = str_replace($mtch[0],'@[url=' . zrl($mtch[1]). ']',$item['body']);
|
$item['body'] = str_replace($mtch[0],'@[url=' . zrl($mtch[1]). ']',$item['body']);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// add zrl's to public images
|
// add zrl's to public images
|
||||||
$photo_pattern = "/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is";
|
$photo_pattern = "/\[url=(.*?)\/photos\/(.*?)\/image\/(.*?)\]\[img(.*?)\]h(.*?)\[\/img\]\[\/url\]/is";
|
||||||
if (preg_match($photo_pattern,$item['body'])) {
|
if(preg_match($photo_pattern,$item['body'])) {
|
||||||
$photo_replace = '[url=' . zrl('$1' . '/photos/' . '$2' . '/image/' . '$3' ,true) . '][img' . '$4' . ']h' . '$5' . '[/img][/url]';
|
$photo_replace = '[url=' . zrl('$1' . '/photos/' . '$2' . '/image/' . '$3' ,true) . '][img' . '$4' . ']h' . '$5' . '[/img][/url]';
|
||||||
$item['body'] = bb_tag_preg_replace($photo_pattern, $photo_replace, 'url', $item['body']);
|
$item['body'] = bb_tag_preg_replace($photo_pattern, $photo_replace, 'url', $item['body']);
|
||||||
}
|
}
|
||||||
|
|
@ -344,9 +343,9 @@ function localize_item(&$item){
|
||||||
function count_descendants($item) {
|
function count_descendants($item) {
|
||||||
$total = count($item['children']);
|
$total = count($item['children']);
|
||||||
|
|
||||||
if ($total > 0) {
|
if($total > 0) {
|
||||||
foreach ($item['children'] as $child) {
|
foreach($item['children'] as $child) {
|
||||||
if (! visible_activity($child))
|
if(! visible_activity($child))
|
||||||
$total --;
|
$total --;
|
||||||
$total += count_descendants($child);
|
$total += count_descendants($child);
|
||||||
}
|
}
|
||||||
|
|
@ -361,14 +360,14 @@ function visible_activity($item) {
|
||||||
// in which case we handle them specially
|
// in which case we handle them specially
|
||||||
|
|
||||||
$hidden_activities = array(ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE);
|
$hidden_activities = array(ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE);
|
||||||
foreach ($hidden_activities as $act) {
|
foreach($hidden_activities as $act) {
|
||||||
if (activity_match($item['verb'],$act)) {
|
if(activity_match($item['verb'],$act)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (activity_match($item['verb'],ACTIVITY_FOLLOW) && $item['object-type'] === ACTIVITY_OBJ_NOTE) {
|
if(activity_match($item['verb'],ACTIVITY_FOLLOW) && $item['object-type'] === ACTIVITY_OBJ_NOTE) {
|
||||||
if (! (($item['self']) && ($item['uid'] == local_user()))) {
|
if(! (($item['self']) && ($item['uid'] == local_user()))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -466,7 +465,7 @@ function item_condition() {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!function_exists('conversation')) {
|
if(!function_exists('conversation')) {
|
||||||
function conversation(App $a, $items, $mode, $update, $preview = false) {
|
function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
require_once('include/bbcode.php');
|
require_once('include/bbcode.php');
|
||||||
|
|
@ -481,23 +480,22 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$arr_blocked = null;
|
$arr_blocked = null;
|
||||||
|
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
$str_blocked = get_pconfig(local_user(),'system','blocked');
|
$str_blocked = get_pconfig(local_user(),'system','blocked');
|
||||||
if ($str_blocked) {
|
if($str_blocked) {
|
||||||
$arr_blocked = explode(',',$str_blocked);
|
$arr_blocked = explode(',',$str_blocked);
|
||||||
for ($x = 0; $x < count($arr_blocked); $x ++) {
|
for($x = 0; $x < count($arr_blocked); $x ++)
|
||||||
$arr_blocked[$x] = trim($arr_blocked[$x]);
|
$arr_blocked[$x] = trim($arr_blocked[$x]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$previewing = (($preview) ? ' preview ' : '');
|
$previewing = (($preview) ? ' preview ' : '');
|
||||||
|
|
||||||
if ($mode === 'network') {
|
if($mode === 'network') {
|
||||||
$profile_owner = local_user();
|
$profile_owner = local_user();
|
||||||
$page_writeable = true;
|
$page_writeable = true;
|
||||||
if (!$update) {
|
if(!$update) {
|
||||||
// The special div is needed for liveUpdate to kick in for this page.
|
// The special div is needed for liveUpdate to kick in for this page.
|
||||||
// We only launch liveUpdate if you aren't filtering in some incompatible
|
// We only launch liveUpdate if you aren't filtering in some incompatible
|
||||||
// way and also you aren't writing a comment (discovered in javascript).
|
// way and also you aren't writing a comment (discovered in javascript).
|
||||||
|
|
@ -522,14 +520,14 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($mode === 'profile') {
|
else if($mode === 'profile') {
|
||||||
$profile_owner = $a->profile['profile_uid'];
|
$profile_owner = $a->profile['profile_uid'];
|
||||||
$page_writeable = can_write_wall($a,$profile_owner);
|
$page_writeable = can_write_wall($a,$profile_owner);
|
||||||
|
|
||||||
if (!$update) {
|
if(!$update) {
|
||||||
$tab = notags(trim($_GET['tab']));
|
$tab = notags(trim($_GET['tab']));
|
||||||
$tab = ( $tab ? $tab : 'posts' );
|
$tab = ( $tab ? $tab : 'posts' );
|
||||||
if ($tab === 'posts') {
|
if($tab === 'posts') {
|
||||||
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
|
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
|
||||||
// because browser prefetching might change it on us. We have to deliver it with the page.
|
// because browser prefetching might change it on us. We have to deliver it with the page.
|
||||||
|
|
||||||
|
|
@ -539,40 +537,40 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($mode === 'notes') {
|
else if($mode === 'notes') {
|
||||||
$profile_owner = local_user();
|
$profile_owner = local_user();
|
||||||
$page_writeable = true;
|
$page_writeable = true;
|
||||||
if (!$update) {
|
if(!$update) {
|
||||||
$live_update_div = '<div id="live-notes"></div>' . "\r\n"
|
$live_update_div = '<div id="live-notes"></div>' . "\r\n"
|
||||||
. "<script> var profile_uid = " . local_user()
|
. "<script> var profile_uid = " . local_user()
|
||||||
. "; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
. "; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($mode === 'display') {
|
else if($mode === 'display') {
|
||||||
$profile_owner = $a->profile['uid'];
|
$profile_owner = $a->profile['uid'];
|
||||||
$page_writeable = can_write_wall($a,$profile_owner);
|
$page_writeable = can_write_wall($a,$profile_owner);
|
||||||
if (!$update) {
|
if(!$update) {
|
||||||
$live_update_div = '<div id="live-display"></div>' . "\r\n"
|
$live_update_div = '<div id="live-display"></div>' . "\r\n"
|
||||||
. "<script> var profile_uid = " . $_SESSION['uid'] . ";"
|
. "<script> var profile_uid = " . $_SESSION['uid'] . ";"
|
||||||
. " var profile_page = 1; </script>";
|
. " var profile_page = 1; </script>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($mode === 'community') {
|
else if($mode === 'community') {
|
||||||
$profile_owner = 0;
|
$profile_owner = 0;
|
||||||
$page_writeable = false;
|
$page_writeable = false;
|
||||||
if (!$update) {
|
if(!$update) {
|
||||||
$live_update_div = '<div id="live-community"></div>' . "\r\n"
|
$live_update_div = '<div id="live-community"></div>' . "\r\n"
|
||||||
. "<script> var profile_uid = -1; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
. "<script> var profile_uid = -1; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($mode === 'search') {
|
else if($mode === 'search') {
|
||||||
$live_update_div = '<div id="live-search"></div>' . "\r\n";
|
$live_update_div = '<div id="live-search"></div>' . "\r\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false);
|
$page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false);
|
||||||
|
|
||||||
|
|
||||||
if ($update)
|
if($update)
|
||||||
$return_url = $_SESSION['return_url'];
|
$return_url = $_SESSION['return_url'];
|
||||||
else
|
else
|
||||||
$return_url = $_SESSION['return_url'] = $a->query_string;
|
$return_url = $_SESSION['return_url'] = $a->query_string;
|
||||||
|
|
@ -596,9 +594,9 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$page_template = get_markup_template("conversation.tpl");
|
$page_template = get_markup_template("conversation.tpl");
|
||||||
|
|
||||||
if ($items && count($items)) {
|
if($items && count($items)) {
|
||||||
|
|
||||||
if ($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
|
if($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
|
||||||
|
|
||||||
// "New Item View" on network page or search page results
|
// "New Item View" on network page or search page results
|
||||||
// - just loop through the items and format them minimally for display
|
// - just loop through the items and format them minimally for display
|
||||||
|
|
@ -606,17 +604,17 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
// $tpl = get_markup_template('search_item.tpl');
|
// $tpl = get_markup_template('search_item.tpl');
|
||||||
$tpl = 'search_item.tpl';
|
$tpl = 'search_item.tpl';
|
||||||
|
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
|
|
||||||
if ($arr_blocked) {
|
if($arr_blocked) {
|
||||||
$blocked = false;
|
$blocked = false;
|
||||||
foreach ($arr_blocked as $b) {
|
foreach($arr_blocked as $b) {
|
||||||
if ($b && link_compare($item['author-link'],$b)) {
|
if($b && link_compare($item['author-link'],$b)) {
|
||||||
$blocked = true;
|
$blocked = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($blocked)
|
if($blocked)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -628,8 +626,8 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$owner_name = '';
|
$owner_name = '';
|
||||||
$sparkle = '';
|
$sparkle = '';
|
||||||
|
|
||||||
if ($mode === 'search' || $mode === 'community') {
|
if($mode === 'search' || $mode === 'community') {
|
||||||
if (((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE)))
|
if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE)))
|
||||||
&& ($item['id'] != $item['parent']))
|
&& ($item['id'] != $item['parent']))
|
||||||
continue;
|
continue;
|
||||||
$nickname = $item['nickname'];
|
$nickname = $item['nickname'];
|
||||||
|
|
@ -638,11 +636,11 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$nickname = $a->user['nickname'];
|
$nickname = $a->user['nickname'];
|
||||||
|
|
||||||
// prevent private email from leaking.
|
// prevent private email from leaking.
|
||||||
if ($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
|
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
$profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']);
|
$profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']);
|
||||||
if ($item['author-link'] && (! $item['author-name']))
|
if($item['author-link'] && (! $item['author-name']))
|
||||||
$profile_name = $item['author-link'];
|
$profile_name = $item['author-link'];
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -654,7 +652,7 @@ function conversation(App $a, $items, $mode, $update, $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"]);
|
||||||
|
|
@ -671,9 +669,9 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$sp = false;
|
$sp = false;
|
||||||
$profile_link = best_link_url($item,$sp);
|
$profile_link = best_link_url($item,$sp);
|
||||||
if ($profile_link === 'mailbox')
|
if($profile_link === 'mailbox')
|
||||||
$profile_link = '';
|
$profile_link = '';
|
||||||
if ($sp)
|
if($sp)
|
||||||
$sparkle = ' sparkle';
|
$sparkle = ' sparkle';
|
||||||
else
|
else
|
||||||
$profile_link = zrl($profile_link);
|
$profile_link = zrl($profile_link);
|
||||||
|
|
@ -700,7 +698,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate));
|
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate));
|
||||||
|
|
||||||
localize_item($item);
|
localize_item($item);
|
||||||
if ($mode === 'network-new')
|
if($mode === 'network-new')
|
||||||
$dropping = true;
|
$dropping = true;
|
||||||
else
|
else
|
||||||
$dropping = false;
|
$dropping = false;
|
||||||
|
|
@ -725,7 +723,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
list($categories, $folders) = get_cats_and_terms($item);
|
list($categories, $folders) = get_cats_and_terms($item);
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal') {
|
if($a->theme['template_engine'] === 'internal') {
|
||||||
$profile_name_e = template_escape($profile_name);
|
$profile_name_e = template_escape($profile_name);
|
||||||
$item['title_e'] = template_escape($item['title']);
|
$item['title_e'] = template_escape($item['title']);
|
||||||
$body_e = template_escape($body);
|
$body_e = template_escape($body);
|
||||||
|
|
@ -820,18 +818,18 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
// But for now, this array respects the old style, just in case
|
// But for now, this array respects the old style, just in case
|
||||||
|
|
||||||
$threads = array();
|
$threads = array();
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
|
|
||||||
if ($arr_blocked) {
|
if($arr_blocked) {
|
||||||
$blocked = false;
|
$blocked = false;
|
||||||
foreach ($arr_blocked as $b) {
|
foreach($arr_blocked as $b) {
|
||||||
|
|
||||||
if ($b && link_compare($item['author-link'],$b)) {
|
if($b && link_compare($item['author-link'],$b)) {
|
||||||
$blocked = true;
|
$blocked = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($blocked)
|
if($blocked)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -841,10 +839,10 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
builtin_activity_puller($item, $conv_responses);
|
builtin_activity_puller($item, $conv_responses);
|
||||||
|
|
||||||
// Only add what is visible
|
// Only add what is visible
|
||||||
if ($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) {
|
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (! visible_activity($item)) {
|
if(! visible_activity($item)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -852,7 +850,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$item['pagedrop'] = $page_dropping;
|
$item['pagedrop'] = $page_dropping;
|
||||||
|
|
||||||
if ($item['id'] == $item['parent']) {
|
if($item['id'] == $item['parent']) {
|
||||||
$item_object = new Item($item);
|
$item_object = new Item($item);
|
||||||
$conv->add_thread($item_object);
|
$conv->add_thread($item_object);
|
||||||
}
|
}
|
||||||
|
|
@ -860,7 +858,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$threads = $conv->get_template_data($conv_responses);
|
$threads = $conv->get_template_data($conv_responses);
|
||||||
|
|
||||||
if (!$threads) {
|
if(!$threads) {
|
||||||
logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG);
|
logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG);
|
||||||
$threads = array();
|
$threads = array();
|
||||||
}
|
}
|
||||||
|
|
@ -896,8 +894,8 @@ function best_link_url($item,&$sparkle,$ssl_state = false) {
|
||||||
$sparkle = true;
|
$sparkle = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $best_url) {
|
if(! $best_url) {
|
||||||
if (strlen($item['author-link']))
|
if(strlen($item['author-link']))
|
||||||
$best_url = $item['author-link'];
|
$best_url = $item['author-link'];
|
||||||
else
|
else
|
||||||
$best_url = $item['url'];
|
$best_url = $item['url'];
|
||||||
|
|
@ -912,7 +910,7 @@ function item_photo_menu($item)
|
||||||
{
|
{
|
||||||
$ssl_state = false;
|
$ssl_state = false;
|
||||||
|
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
$ssl_state = true;
|
$ssl_state = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -946,7 +944,7 @@ function item_photo_menu($item)
|
||||||
$rel = $r[0]['rel'];
|
$rel = $r[0]['rel'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($sparkle) {
|
if($sparkle) {
|
||||||
$status_link = $profile_link . '?url=status';
|
$status_link = $profile_link . '?url=status';
|
||||||
$photos_link = $profile_link . '?url=photos';
|
$photos_link = $profile_link . '?url=photos';
|
||||||
$profile_link = $profile_link . '?url=profile';
|
$profile_link = $profile_link . '?url=profile';
|
||||||
|
|
@ -1014,9 +1012,9 @@ function item_photo_menu($item)
|
||||||
* @param array &$conv_responses (already created with builtin activity structure)
|
* @param array &$conv_responses (already created with builtin activity structure)
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
if (! function_exists('builtin_activity_puller')) {
|
if(! function_exists('builtin_activity_puller')) {
|
||||||
function builtin_activity_puller($item, &$conv_responses) {
|
function builtin_activity_puller($item, &$conv_responses) {
|
||||||
foreach ($conv_responses as $mode => $v) {
|
foreach($conv_responses as $mode => $v) {
|
||||||
$url = '';
|
$url = '';
|
||||||
$sparkle = '';
|
$sparkle = '';
|
||||||
|
|
||||||
|
|
@ -1041,9 +1039,9 @@ function builtin_activity_puller($item, &$conv_responses) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
|
if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
|
||||||
$url = $item['author-link'];
|
$url = $item['author-link'];
|
||||||
if ((local_user()) && (local_user() == $item['uid']) && ($item['network'] === NETWORK_DFRN) && (! $item['self']) && (link_compare($item['author-link'],$item['url']))) {
|
if((local_user()) && (local_user() == $item['uid']) && ($item['network'] === NETWORK_DFRN) && (! $item['self']) && (link_compare($item['author-link'],$item['url']))) {
|
||||||
$url = 'redir/' . $item['contact-id'];
|
$url = 'redir/' . $item['contact-id'];
|
||||||
$sparkle = ' class="sparkle" ';
|
$sparkle = ' class="sparkle" ';
|
||||||
}
|
}
|
||||||
|
|
@ -1052,18 +1050,18 @@ function builtin_activity_puller($item, &$conv_responses) {
|
||||||
|
|
||||||
$url = '<a href="'. $url . '"'. $sparkle .'>' . htmlentities($item['author-name']) . '</a>';
|
$url = '<a href="'. $url . '"'. $sparkle .'>' . htmlentities($item['author-name']) . '</a>';
|
||||||
|
|
||||||
if (! $item['thr-parent'])
|
if(! $item['thr-parent'])
|
||||||
$item['thr-parent'] = $item['parent-uri'];
|
$item['thr-parent'] = $item['parent-uri'];
|
||||||
|
|
||||||
if (! ((isset($conv_responses[$mode][$item['thr-parent'] . '-l']))
|
if(! ((isset($conv_responses[$mode][$item['thr-parent'] . '-l']))
|
||||||
&& (is_array($conv_responses[$mode][$item['thr-parent'] . '-l']))))
|
&& (is_array($conv_responses[$mode][$item['thr-parent'] . '-l']))))
|
||||||
$conv_responses[$mode][$item['thr-parent'] . '-l'] = array();
|
$conv_responses[$mode][$item['thr-parent'] . '-l'] = array();
|
||||||
|
|
||||||
// only list each unique author once
|
// only list each unique author once
|
||||||
if (in_array($url,$conv_responses[$mode][$item['thr-parent'] . '-l']))
|
if(in_array($url,$conv_responses[$mode][$item['thr-parent'] . '-l']))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (! isset($conv_responses[$mode][$item['thr-parent']]))
|
if(! isset($conv_responses[$mode][$item['thr-parent']]))
|
||||||
$conv_responses[$mode][$item['thr-parent']] = 1;
|
$conv_responses[$mode][$item['thr-parent']] = 1;
|
||||||
else
|
else
|
||||||
$conv_responses[$mode][$item['thr-parent']] ++;
|
$conv_responses[$mode][$item['thr-parent']] ++;
|
||||||
|
|
@ -1087,12 +1085,12 @@ function builtin_activity_puller($item, &$conv_responses) {
|
||||||
// $id = item id
|
// $id = item id
|
||||||
// returns formatted text
|
// returns formatted text
|
||||||
|
|
||||||
if (! function_exists('format_like')) {
|
if(! function_exists('format_like')) {
|
||||||
function format_like($cnt,$arr,$type,$id) {
|
function format_like($cnt,$arr,$type,$id) {
|
||||||
$o = '';
|
$o = '';
|
||||||
$expanded = '';
|
$expanded = '';
|
||||||
|
|
||||||
if ($cnt == 1) {
|
if($cnt == 1) {
|
||||||
$likers = $arr[0];
|
$likers = $arr[0];
|
||||||
|
|
||||||
// Phrase if there is only one liker. In other cases it will be uses for the expanded
|
// Phrase if there is only one liker. In other cases it will be uses for the expanded
|
||||||
|
|
@ -1116,16 +1114,16 @@ function format_like($cnt,$arr,$type,$id) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cnt > 1) {
|
if($cnt > 1) {
|
||||||
$total = count($arr);
|
$total = count($arr);
|
||||||
if ($total >= MAX_LIKERS)
|
if($total >= MAX_LIKERS)
|
||||||
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
|
$arr = array_slice($arr, 0, MAX_LIKERS - 1);
|
||||||
if ($total < MAX_LIKERS) {
|
if($total < MAX_LIKERS) {
|
||||||
$last = t('and') . ' ' . $arr[count($arr)-1];
|
$last = t('and') . ' ' . $arr[count($arr)-1];
|
||||||
$arr2 = array_slice($arr, 0, -1);
|
$arr2 = array_slice($arr, 0, -1);
|
||||||
$str = implode(', ', $arr2) . ' ' . $last;
|
$str = implode(', ', $arr2) . ' ' . $last;
|
||||||
}
|
}
|
||||||
if ($total >= MAX_LIKERS) {
|
if($total >= MAX_LIKERS) {
|
||||||
$str = implode(', ', $arr);
|
$str = implode(', ', $arr);
|
||||||
$str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS );
|
$str .= sprintf( t(', and %d other people'), $total - MAX_LIKERS );
|
||||||
}
|
}
|
||||||
|
|
@ -1213,17 +1211,17 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
|
||||||
|
|
||||||
// Private/public post links for the non-JS ACL form
|
// Private/public post links for the non-JS ACL form
|
||||||
$private_post = 1;
|
$private_post = 1;
|
||||||
if ($_REQUEST['public'])
|
if($_REQUEST['public'])
|
||||||
$private_post = 0;
|
$private_post = 0;
|
||||||
|
|
||||||
$query_str = $a->query_string;
|
$query_str = $a->query_string;
|
||||||
if (strpos($query_str, 'public=1') !== false)
|
if(strpos($query_str, 'public=1') !== false)
|
||||||
$query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str);
|
$query_str = str_replace(array('?public=1', '&public=1'), array('', ''), $query_str);
|
||||||
|
|
||||||
// I think $a->query_string may never have ? in it, but I could be wrong
|
// I think $a->query_string may never have ? in it, but I could be wrong
|
||||||
// It looks like it's from the index.php?q=[etc] rewrite that the web
|
// It looks like it's from the index.php?q=[etc] rewrite that the web
|
||||||
// server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61
|
// server does, which converts any ? to &, e.g. suggest&ignore=61 for suggest?ignore=61
|
||||||
if (strpos($query_str, '?') === false)
|
if(strpos($query_str, '?') === false)
|
||||||
$public_post_link = '?public=1';
|
$public_post_link = '?public=1';
|
||||||
else
|
else
|
||||||
$public_post_link = '&public=1';
|
$public_post_link = '&public=1';
|
||||||
|
|
@ -1304,20 +1302,20 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
|
||||||
function get_item_children($arr, $parent) {
|
function get_item_children($arr, $parent) {
|
||||||
$children = array();
|
$children = array();
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
foreach ($arr as $item) {
|
foreach($arr as $item) {
|
||||||
if ($item['id'] != $item['parent']) {
|
if($item['id'] != $item['parent']) {
|
||||||
if (get_config('system','thread_allow') && $a->theme_thread_allow) {
|
if(get_config('system','thread_allow') && $a->theme_thread_allow) {
|
||||||
// Fallback to parent-uri if thr-parent is not set
|
// Fallback to parent-uri if thr-parent is not set
|
||||||
$thr_parent = $item['thr-parent'];
|
$thr_parent = $item['thr-parent'];
|
||||||
if ($thr_parent == '')
|
if($thr_parent == '')
|
||||||
$thr_parent = $item['parent-uri'];
|
$thr_parent = $item['parent-uri'];
|
||||||
|
|
||||||
if ($thr_parent == $parent['uri']) {
|
if($thr_parent == $parent['uri']) {
|
||||||
$item['children'] = get_item_children($arr, $item);
|
$item['children'] = get_item_children($arr, $item);
|
||||||
$children[] = $item;
|
$children[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ($item['parent'] == $parent['id']) {
|
else if($item['parent'] == $parent['id']) {
|
||||||
$children[] = $item;
|
$children[] = $item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1328,8 +1326,8 @@ function get_item_children($arr, $parent) {
|
||||||
function sort_item_children($items) {
|
function sort_item_children($items) {
|
||||||
$result = $items;
|
$result = $items;
|
||||||
usort($result,'sort_thr_created_rev');
|
usort($result,'sort_thr_created_rev');
|
||||||
foreach ($result as $k => $i) {
|
foreach($result as $k => $i) {
|
||||||
if (count($result[$k]['children'])) {
|
if(count($result[$k]['children'])) {
|
||||||
$result[$k]['children'] = sort_item_children($result[$k]['children']);
|
$result[$k]['children'] = sort_item_children($result[$k]['children']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1337,16 +1335,16 @@ function sort_item_children($items) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_children_to_list($children, &$arr) {
|
function add_children_to_list($children, &$arr) {
|
||||||
foreach ($children as $y) {
|
foreach($children as $y) {
|
||||||
$arr[] = $y;
|
$arr[] = $y;
|
||||||
if (count($y['children']))
|
if(count($y['children']))
|
||||||
add_children_to_list($y['children'], $arr);
|
add_children_to_list($y['children'], $arr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function conv_sort($arr,$order) {
|
function conv_sort($arr,$order) {
|
||||||
|
|
||||||
if ((!(is_array($arr) && count($arr))))
|
if((!(is_array($arr) && count($arr))))
|
||||||
return array();
|
return array();
|
||||||
|
|
||||||
$parents = array();
|
$parents = array();
|
||||||
|
|
@ -1355,40 +1353,35 @@ function conv_sort($arr,$order) {
|
||||||
|
|
||||||
// This is a preparation for having two different items with the same uri in one thread
|
// This is a preparation for having two different items with the same uri in one thread
|
||||||
// This will otherwise lead to an endless loop.
|
// This will otherwise lead to an endless loop.
|
||||||
foreach ($arr as $x)
|
foreach($arr as $x)
|
||||||
if (!isset($newarr[$x['uri']]))
|
if (!isset($newarr[$x['uri']]))
|
||||||
$newarr[$x['uri']] = $x;
|
$newarr[$x['uri']] = $x;
|
||||||
|
|
||||||
$arr = $newarr;
|
$arr = $newarr;
|
||||||
|
|
||||||
foreach ($arr as $x) {
|
foreach($arr as $x)
|
||||||
if ($x['id'] == $x['parent']) {
|
if($x['id'] == $x['parent'])
|
||||||
$parents[] = $x;
|
$parents[] = $x;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stristr($order,'created')) {
|
if(stristr($order,'created'))
|
||||||
usort($parents,'sort_thr_created');
|
usort($parents,'sort_thr_created');
|
||||||
} elseif (stristr($order,'commented')) {
|
elseif(stristr($order,'commented'))
|
||||||
usort($parents,'sort_thr_commented');
|
usort($parents,'sort_thr_commented');
|
||||||
}
|
|
||||||
|
|
||||||
if (count($parents)) {
|
if(count($parents))
|
||||||
foreach($parents as $i=>$_x) {
|
foreach($parents as $i=>$_x)
|
||||||
$parents[$i]['children'] = get_item_children($arr, $_x);
|
$parents[$i]['children'] = get_item_children($arr, $_x);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*foreach ($arr as $x) {
|
/*foreach($arr as $x) {
|
||||||
if ($x['id'] != $x['parent']) {
|
if($x['id'] != $x['parent']) {
|
||||||
$p = find_thread_parent_index($parents,$x);
|
$p = find_thread_parent_index($parents,$x);
|
||||||
if ($p !== false)
|
if($p !== false)
|
||||||
$parents[$p]['children'][] = $x;
|
$parents[$p]['children'][] = $x;
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
if (count($parents)) {
|
if(count($parents)) {
|
||||||
foreach ($parents as $k => $v) {
|
foreach($parents as $k => $v) {
|
||||||
if (count($parents[$k]['children'])) {
|
if(count($parents[$k]['children'])) {
|
||||||
$parents[$k]['children'] = sort_item_children($parents[$k]['children']);
|
$parents[$k]['children'] = sort_item_children($parents[$k]['children']);
|
||||||
/*$y = $parents[$k]['children'];
|
/*$y = $parents[$k]['children'];
|
||||||
usort($y,'sort_thr_created_rev');
|
usort($y,'sort_thr_created_rev');
|
||||||
|
|
@ -1398,12 +1391,12 @@ function conv_sort($arr,$order) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
if (count($parents)) {
|
if(count($parents)) {
|
||||||
foreach ($parents as $x) {
|
foreach($parents as $x) {
|
||||||
$ret[] = $x;
|
$ret[] = $x;
|
||||||
if (count($x['children']))
|
if(count($x['children']))
|
||||||
add_children_to_list($x['children'], $ret);
|
add_children_to_list($x['children'], $ret);
|
||||||
/*foreach ($x['children'] as $y)
|
/*foreach($x['children'] as $y)
|
||||||
$ret[] = $y;*/
|
$ret[] = $y;*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1425,11 +1418,9 @@ function sort_thr_commented($a,$b) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function find_thread_parent_index($arr,$x) {
|
function find_thread_parent_index($arr,$x) {
|
||||||
foreach ($arr as $k => $v) {
|
foreach($arr as $k => $v)
|
||||||
if ($v['id'] == $x['parent']) {
|
if($v['id'] == $x['parent'])
|
||||||
return $k;
|
return $k;
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1443,16 +1434,17 @@ function render_location_dummy($item) {
|
||||||
|
|
||||||
function get_responses($conv_responses,$response_verbs,$ob,$item) {
|
function get_responses($conv_responses,$response_verbs,$ob,$item) {
|
||||||
$ret = array();
|
$ret = array();
|
||||||
foreach ($response_verbs as $v) {
|
foreach($response_verbs as $v) {
|
||||||
$ret[$v] = array();
|
$ret[$v] = array();
|
||||||
$ret[$v]['count'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri']] : '');
|
$ret[$v]['count'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri']] : '');
|
||||||
$ret[$v]['list'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri'] . '-l'] : '');
|
$ret[$v]['list'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri'] . '-l'] : '');
|
||||||
$ret[$v]['self'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri'] . '-self'] : '0');
|
$ret[$v]['self'] = ((x($conv_responses[$v],$item['uri'])) ? $conv_responses[$v][$item['uri'] . '-self'] : '0');
|
||||||
if (count($ret[$v]['list']) > MAX_LIKERS) {
|
if(count($ret[$v]['list']) > MAX_LIKERS) {
|
||||||
$ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS);
|
$ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS);
|
||||||
array_push($ret[$v]['list_part'], '<a href="#" data-toggle="modal" data-target="#' . $v . 'Modal-'
|
array_push($ret[$v]['list_part'], '<a href="#" data-toggle="modal" data-target="#' . $v . 'Modal-'
|
||||||
. (($ob) ? $ob->get_id() : $item['id']) . '"><b>' . t('View all') . '</b></a>');
|
. (($ob) ? $ob->get_id() : $item['id']) . '"><b>' . t('View all') . '</b></a>');
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$ret[$v]['list_part'] = '';
|
$ret[$v]['list_part'] = '';
|
||||||
}
|
}
|
||||||
$ret[$v]['button'] = get_response_button_text($v,$ret[$v]['count']);
|
$ret[$v]['button'] = get_response_button_text($v,$ret[$v]['count']);
|
||||||
|
|
@ -1460,10 +1452,9 @@ function get_responses($conv_responses,$response_verbs,$ob,$item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$count = 0;
|
$count = 0;
|
||||||
foreach ($ret as $key) {
|
foreach($ret as $key) {
|
||||||
if ($key['count'] == true) {
|
if ($key['count'] == true)
|
||||||
$count++;
|
$count++;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$ret['count'] = $count;
|
$ret['count'] = $count;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,12 @@ function cron_run(&$argv, &$argc){
|
||||||
$last = get_config('system','last_cron');
|
$last = get_config('system','last_cron');
|
||||||
|
|
||||||
$poll_interval = intval(get_config('system','cron_interval'));
|
$poll_interval = intval(get_config('system','cron_interval'));
|
||||||
if (! $poll_interval)
|
if(! $poll_interval)
|
||||||
$poll_interval = 10;
|
$poll_interval = 10;
|
||||||
|
|
||||||
if ($last) {
|
if($last) {
|
||||||
$next = $last + ($poll_interval * 60);
|
$next = $last + ($poll_interval * 60);
|
||||||
if ($next > time()) {
|
if($next > time()) {
|
||||||
logger('cron intervall not reached');
|
logger('cron intervall not reached');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -64,7 +64,7 @@ function cron_run(&$argv, &$argc){
|
||||||
$d1 = get_config('system','last_expire_day');
|
$d1 = get_config('system','last_expire_day');
|
||||||
$d2 = intval(datetime_convert('UTC','UTC','now','d'));
|
$d2 = intval(datetime_convert('UTC','UTC','now','d'));
|
||||||
|
|
||||||
if ($d2 != intval($d1)) {
|
if($d2 != intval($d1)) {
|
||||||
|
|
||||||
update_contact_birthdays();
|
update_contact_birthdays();
|
||||||
|
|
||||||
|
|
@ -126,7 +126,7 @@ function cron_expire_and_remove_users() {
|
||||||
// delete user and contact records for recently removed accounts
|
// delete user and contact records for recently removed accounts
|
||||||
$r = q("SELECT * FROM `user` WHERE `account_removed` AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
|
$r = q("SELECT * FROM `user` WHERE `account_removed` AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
|
||||||
if ($r) {
|
if ($r) {
|
||||||
foreach ($r as $user) {
|
foreach($r as $user) {
|
||||||
q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid']));
|
q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid']));
|
||||||
q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid']));
|
q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid']));
|
||||||
}
|
}
|
||||||
|
|
@ -171,7 +171,7 @@ function cron_poll_contacts($argc, $argv) {
|
||||||
// we are unable to match those posts with a Diaspora GUID and prevent duplicates.
|
// we are unable to match those posts with a Diaspora GUID and prevent duplicates.
|
||||||
|
|
||||||
$abandon_days = intval(get_config('system','account_abandon_days'));
|
$abandon_days = intval(get_config('system','account_abandon_days'));
|
||||||
if ($abandon_days < 1)
|
if($abandon_days < 1)
|
||||||
$abandon_days = 0;
|
$abandon_days = 0;
|
||||||
|
|
||||||
$abandon_sql = (($abandon_days)
|
$abandon_sql = (($abandon_days)
|
||||||
|
|
@ -210,7 +210,7 @@ function cron_poll_contacts($argc, $argv) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($res as $contact) {
|
foreach($res as $contact) {
|
||||||
|
|
||||||
$xml = false;
|
$xml = false;
|
||||||
|
|
||||||
|
|
@ -232,7 +232,7 @@ function cron_poll_contacts($argc, $argv) {
|
||||||
$contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3);
|
$contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($contact['priority'] AND !$force) {
|
if($contact['priority'] AND !$force) {
|
||||||
|
|
||||||
$update = false;
|
$update = false;
|
||||||
|
|
||||||
|
|
@ -244,24 +244,24 @@ function cron_poll_contacts($argc, $argv) {
|
||||||
|
|
||||||
switch ($contact['priority']) {
|
switch ($contact['priority']) {
|
||||||
case 5:
|
case 5:
|
||||||
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 month"))
|
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 month"))
|
||||||
$update = true;
|
$update = true;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 week"))
|
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 week"))
|
||||||
$update = true;
|
$update = true;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
|
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
|
||||||
$update = true;
|
$update = true;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 12 hour"))
|
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 12 hour"))
|
||||||
$update = true;
|
$update = true;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
default:
|
default:
|
||||||
if (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 hour"))
|
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 hour"))
|
||||||
$update = true;
|
$update = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -289,16 +289,14 @@ function cron_clear_cache(App $a) {
|
||||||
|
|
||||||
$last = get_config('system','cache_last_cleared');
|
$last = get_config('system','cache_last_cleared');
|
||||||
|
|
||||||
if ($last) {
|
if($last) {
|
||||||
$next = $last + (3600); // Once per hour
|
$next = $last + (3600); // Once per hour
|
||||||
$clear_cache = ($next <= time());
|
$clear_cache = ($next <= time());
|
||||||
} else {
|
} else
|
||||||
$clear_cache = true;
|
$clear_cache = true;
|
||||||
}
|
|
||||||
|
|
||||||
if (!$clear_cache) {
|
if (!$clear_cache)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
// clear old cache
|
// clear old cache
|
||||||
Cache::clear();
|
Cache::clear();
|
||||||
|
|
@ -317,9 +315,7 @@ function cron_clear_cache(App $a) {
|
||||||
clear_cache($a->get_basepath(), $a->get_basepath()."/proxy");
|
clear_cache($a->get_basepath(), $a->get_basepath()."/proxy");
|
||||||
|
|
||||||
$cachetime = get_config('system','proxy_cache_time');
|
$cachetime = get_config('system','proxy_cache_time');
|
||||||
if (!$cachetime) {
|
if (!$cachetime) $cachetime = PROXY_DEFAULT_TIME;
|
||||||
$cachetime = PROXY_DEFAULT_TIME;
|
|
||||||
}
|
|
||||||
|
|
||||||
q('DELETE FROM `photo` WHERE `uid` = 0 AND `resource-id` LIKE "pic:%%" AND `created` < NOW() - INTERVAL %d SECOND', $cachetime);
|
q('DELETE FROM `photo` WHERE `uid` = 0 AND `resource-id` LIKE "pic:%%" AND `created` < NOW() - INTERVAL %d SECOND', $cachetime);
|
||||||
}
|
}
|
||||||
|
|
@ -332,30 +328,26 @@ function cron_clear_cache(App $a) {
|
||||||
|
|
||||||
// Maximum table size in megabyte
|
// Maximum table size in megabyte
|
||||||
$max_tablesize = intval(get_config('system','optimize_max_tablesize')) * 1000000;
|
$max_tablesize = intval(get_config('system','optimize_max_tablesize')) * 1000000;
|
||||||
if ($max_tablesize == 0) {
|
if ($max_tablesize == 0)
|
||||||
$max_tablesize = 100 * 1000000; // Default are 100 MB
|
$max_tablesize = 100 * 1000000; // Default are 100 MB
|
||||||
}
|
|
||||||
|
|
||||||
if ($max_tablesize > 0) {
|
if ($max_tablesize > 0) {
|
||||||
// Minimum fragmentation level in percent
|
// Minimum fragmentation level in percent
|
||||||
$fragmentation_level = intval(get_config('system','optimize_fragmentation')) / 100;
|
$fragmentation_level = intval(get_config('system','optimize_fragmentation')) / 100;
|
||||||
if ($fragmentation_level == 0) {
|
if ($fragmentation_level == 0)
|
||||||
$fragmentation_level = 0.3; // Default value is 30%
|
$fragmentation_level = 0.3; // Default value is 30%
|
||||||
}
|
|
||||||
|
|
||||||
// Optimize some tables that need to be optimized
|
// Optimize some tables that need to be optimized
|
||||||
$r = q("SHOW TABLE STATUS");
|
$r = q("SHOW TABLE STATUS");
|
||||||
foreach ($r as $table) {
|
foreach($r as $table) {
|
||||||
|
|
||||||
// Don't optimize tables that are too large
|
// Don't optimize tables that are too large
|
||||||
if ($table["Data_length"] > $max_tablesize) {
|
if ($table["Data_length"] > $max_tablesize)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
// Don't optimize empty tables
|
// Don't optimize empty tables
|
||||||
if ($table["Data_length"] == 0) {
|
if ($table["Data_length"] == 0)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate fragmentation
|
// Calculate fragmentation
|
||||||
$fragmentation = $table["Data_free"] / ($table["Data_length"] + $table["Index_length"]);
|
$fragmentation = $table["Data_free"] / ($table["Data_length"] + $table["Index_length"]);
|
||||||
|
|
@ -363,9 +355,8 @@ function cron_clear_cache(App $a) {
|
||||||
logger("Table ".$table["Name"]." - Fragmentation level: ".round($fragmentation * 100, 2), LOGGER_DEBUG);
|
logger("Table ".$table["Name"]." - Fragmentation level: ".round($fragmentation * 100, 2), LOGGER_DEBUG);
|
||||||
|
|
||||||
// Don't optimize tables that needn't to be optimized
|
// Don't optimize tables that needn't to be optimized
|
||||||
if ($fragmentation < $fragmentation_level) {
|
if ($fragmentation < $fragmentation_level)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
// So optimize it
|
// So optimize it
|
||||||
logger("Optimize Table ".$table["Name"], LOGGER_DEBUG);
|
logger("Optimize Table ".$table["Name"], LOGGER_DEBUG);
|
||||||
|
|
@ -425,11 +416,9 @@ function cron_repair_database() {
|
||||||
|
|
||||||
// Update the global contacts for local users
|
// Update the global contacts for local users
|
||||||
$r = q("SELECT `uid` FROM `user` WHERE `verified` AND NOT `blocked` AND NOT `account_removed` AND NOT `account_expired`");
|
$r = q("SELECT `uid` FROM `user` WHERE `verified` AND NOT `blocked` AND NOT `account_removed` AND NOT `account_expired`");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
foreach ($r AS $user) {
|
foreach ($r AS $user)
|
||||||
update_gcontact_for_user($user["uid"]);
|
update_gcontact_for_user($user["uid"]);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @todo
|
/// @todo
|
||||||
/// - remove thread entries without item
|
/// - remove thread entries without item
|
||||||
|
|
|
||||||
|
|
@ -8,25 +8,23 @@ function cronhooks_run(&$argv, &$argc){
|
||||||
require_once('include/datetime.php');
|
require_once('include/datetime.php');
|
||||||
|
|
||||||
if (($argc == 2) AND is_array($a->hooks) AND array_key_exists("cron", $a->hooks)) {
|
if (($argc == 2) AND is_array($a->hooks) AND array_key_exists("cron", $a->hooks)) {
|
||||||
foreach ($a->hooks["cron"] as $hook) {
|
foreach ($a->hooks["cron"] as $hook)
|
||||||
if ($hook[1] == $argv[1]) {
|
if ($hook[1] == $argv[1]) {
|
||||||
logger("Calling cron hook '".$hook[1]."'", LOGGER_DEBUG);
|
logger("Calling cron hook '".$hook[1]."'", LOGGER_DEBUG);
|
||||||
call_single_hook($a, $name, $hook, $data);
|
call_single_hook($a, $name, $hook, $data);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$last = get_config('system', 'last_cronhook');
|
$last = get_config('system', 'last_cronhook');
|
||||||
|
|
||||||
$poll_interval = intval(get_config('system','cronhook_interval'));
|
$poll_interval = intval(get_config('system','cronhook_interval'));
|
||||||
if (! $poll_interval) {
|
if(! $poll_interval)
|
||||||
$poll_interval = 9;
|
$poll_interval = 9;
|
||||||
}
|
|
||||||
|
|
||||||
if ($last) {
|
if($last) {
|
||||||
$next = $last + ($poll_interval * 60);
|
$next = $last + ($poll_interval * 60);
|
||||||
if ($next > time()) {
|
if($next > time()) {
|
||||||
logger('cronhook intervall not reached');
|
logger('cronhook intervall not reached');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ function rsa_sign($data,$key,$alg = 'sha256') {
|
||||||
openssl_sign($data,$sig,$key,(($alg == 'sha1') ? OPENSSL_ALGO_SHA1 : $alg));
|
openssl_sign($data,$sig,$key,(($alg == 'sha1') ? OPENSSL_ALGO_SHA1 : $alg));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (strlen($key) < 1024 || extension_loaded('gmp')) {
|
if(strlen($key) < 1024 || extension_loaded('gmp')) {
|
||||||
require_once('library/phpsec/Crypt/RSA.php');
|
require_once('library/phpsec/Crypt/RSA.php');
|
||||||
$rsa = new CRYPT_RSA();
|
$rsa = new CRYPT_RSA();
|
||||||
$rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1;
|
$rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1;
|
||||||
|
|
@ -34,7 +34,7 @@ function rsa_verify($data,$sig,$key,$alg = 'sha256') {
|
||||||
$verify = openssl_verify($data,$sig,$key,(($alg == 'sha1') ? OPENSSL_ALGO_SHA1 : $alg));
|
$verify = openssl_verify($data,$sig,$key,(($alg == 'sha1') ? OPENSSL_ALGO_SHA1 : $alg));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (strlen($key) <= 300 || extension_loaded('gmp')) {
|
if(strlen($key) <= 300 || extension_loaded('gmp')) {
|
||||||
require_once('library/phpsec/Crypt/RSA.php');
|
require_once('library/phpsec/Crypt/RSA.php');
|
||||||
$rsa = new CRYPT_RSA();
|
$rsa = new CRYPT_RSA();
|
||||||
$rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1;
|
$rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1;
|
||||||
|
|
@ -186,12 +186,12 @@ function salmon_key($pubkey) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('aes_decrypt')) {
|
if(! function_exists('aes_decrypt')) {
|
||||||
// DEPRECATED IN 3.4.1
|
// DEPRECATED IN 3.4.1
|
||||||
function aes_decrypt($val,$ky)
|
function aes_decrypt($val,$ky)
|
||||||
{
|
{
|
||||||
$key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
|
$key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
|
||||||
for ($a=0;$a<strlen($ky);$a++)
|
for($a=0;$a<strlen($ky);$a++)
|
||||||
$key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a]));
|
$key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a]));
|
||||||
$mode = MCRYPT_MODE_ECB;
|
$mode = MCRYPT_MODE_ECB;
|
||||||
$enc = MCRYPT_RIJNDAEL_128;
|
$enc = MCRYPT_RIJNDAEL_128;
|
||||||
|
|
@ -200,12 +200,12 @@ function aes_decrypt($val,$ky)
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('aes_encrypt')) {
|
if(! function_exists('aes_encrypt')) {
|
||||||
// DEPRECATED IN 3.4.1
|
// DEPRECATED IN 3.4.1
|
||||||
function aes_encrypt($val,$ky)
|
function aes_encrypt($val,$ky)
|
||||||
{
|
{
|
||||||
$key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
|
$key="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
|
||||||
for ($a=0;$a<strlen($ky);$a++)
|
for($a=0;$a<strlen($ky);$a++)
|
||||||
$key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a]));
|
$key[$a%16]=chr(ord($key[$a%16]) ^ ord($ky[$a]));
|
||||||
$mode=MCRYPT_MODE_ECB;
|
$mode=MCRYPT_MODE_ECB;
|
||||||
$enc=MCRYPT_RIJNDAEL_128;
|
$enc=MCRYPT_RIJNDAEL_128;
|
||||||
|
|
@ -237,12 +237,12 @@ function new_keypair($bits) {
|
||||||
);
|
);
|
||||||
|
|
||||||
$conf = get_config('system','openssl_conf_file');
|
$conf = get_config('system','openssl_conf_file');
|
||||||
if ($conf)
|
if($conf)
|
||||||
$openssl_options['config'] = $conf;
|
$openssl_options['config'] = $conf;
|
||||||
|
|
||||||
$result = openssl_pkey_new($openssl_options);
|
$result = openssl_pkey_new($openssl_options);
|
||||||
|
|
||||||
if (empty($result)) {
|
if(empty($result)) {
|
||||||
logger('new_keypair: failed');
|
logger('new_keypair: failed');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,12 +14,12 @@ use \Friendica\Core\Config;
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
function timezone_cmp($a, $b) {
|
function timezone_cmp($a, $b) {
|
||||||
if (strstr($a,'/') && strstr($b,'/')) {
|
if(strstr($a,'/') && strstr($b,'/')) {
|
||||||
if ( t($a) == t($b)) return 0;
|
if ( t($a) == t($b)) return 0;
|
||||||
return ( t($a) < t($b)) ? -1 : 1;
|
return ( t($a) < t($b)) ? -1 : 1;
|
||||||
}
|
}
|
||||||
if (strstr($a,'/')) return -1;
|
if(strstr($a,'/')) return -1;
|
||||||
if (strstr($b,'/')) return 1;
|
if(strstr($b,'/')) return 1;
|
||||||
if ( t($a) == t($b)) return 0;
|
if ( t($a) == t($b)) return 0;
|
||||||
|
|
||||||
return ( t($a) < t($b)) ? -1 : 1;
|
return ( t($a) < t($b)) ? -1 : 1;
|
||||||
|
|
@ -39,23 +39,23 @@ function select_timezone($current = 'America/Los_Angeles') {
|
||||||
|
|
||||||
usort($timezone_identifiers, 'timezone_cmp');
|
usort($timezone_identifiers, 'timezone_cmp');
|
||||||
$continent = '';
|
$continent = '';
|
||||||
foreach ($timezone_identifiers as $value) {
|
foreach($timezone_identifiers as $value) {
|
||||||
$ex = explode("/", $value);
|
$ex = explode("/", $value);
|
||||||
if (count($ex) > 1) {
|
if(count($ex) > 1) {
|
||||||
if ($ex[0] != $continent) {
|
if($ex[0] != $continent) {
|
||||||
if ($continent != '')
|
if($continent != '')
|
||||||
$o .= '</optgroup>';
|
$o .= '</optgroup>';
|
||||||
$continent = $ex[0];
|
$continent = $ex[0];
|
||||||
$o .= '<optgroup label="' . t($continent) . '">';
|
$o .= '<optgroup label="' . t($continent) . '">';
|
||||||
}
|
}
|
||||||
if (count($ex) > 2) {
|
if(count($ex) > 2)
|
||||||
$city = substr($value,strpos($value,'/')+1);
|
$city = substr($value,strpos($value,'/')+1);
|
||||||
} else {
|
else
|
||||||
$city = $ex[1];
|
$city = $ex[1];
|
||||||
}
|
}
|
||||||
} else {
|
else {
|
||||||
$city = $ex[0];
|
$city = $ex[0];
|
||||||
if ($continent != t('Miscellaneous')) {
|
if($continent != t('Miscellaneous')) {
|
||||||
$o .= '</optgroup>';
|
$o .= '</optgroup>';
|
||||||
$continent = t('Miscellaneous');
|
$continent = t('Miscellaneous');
|
||||||
$o .= '<optgroup label="' . t($continent) . '">';
|
$o .= '<optgroup label="' . t($continent) . '">';
|
||||||
|
|
@ -114,11 +114,11 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
|
||||||
// Defaults to UTC if nothing is set, but throws an exception if set to empty string.
|
// Defaults to UTC if nothing is set, but throws an exception if set to empty string.
|
||||||
// Provide some sane defaults regardless.
|
// Provide some sane defaults regardless.
|
||||||
|
|
||||||
if ($from === '')
|
if($from === '')
|
||||||
$from = 'UTC';
|
$from = 'UTC';
|
||||||
if ($to === '')
|
if($to === '')
|
||||||
$to = 'UTC';
|
$to = 'UTC';
|
||||||
if ( ($s === '') || (! is_string($s)) )
|
if( ($s === '') || (! is_string($s)) )
|
||||||
$s = 'now';
|
$s = 'now';
|
||||||
|
|
||||||
// Slight hackish adjustment so that 'zero' datetime actually returns what is intended
|
// Slight hackish adjustment so that 'zero' datetime actually returns what is intended
|
||||||
|
|
@ -126,7 +126,7 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
|
||||||
// add 32 days so that we at least get year 00, and then hack around the fact that
|
// add 32 days so that we at least get year 00, and then hack around the fact that
|
||||||
// months and days always start with 1.
|
// months and days always start with 1.
|
||||||
|
|
||||||
if (substr($s,0,10) == '0000-00-00') {
|
if(substr($s,0,10) == '0000-00-00') {
|
||||||
$d = new DateTime($s . ' + 32 days', new DateTimeZone('UTC'));
|
$d = new DateTime($s . ' + 32 days', new DateTimeZone('UTC'));
|
||||||
return str_replace('1','0',$d->format($fmt));
|
return str_replace('1','0',$d->format($fmt));
|
||||||
}
|
}
|
||||||
|
|
@ -169,9 +169,9 @@ function dob($dob) {
|
||||||
list($year,$month,$day) = sscanf($dob,'%4d-%2d-%2d');
|
list($year,$month,$day) = sscanf($dob,'%4d-%2d-%2d');
|
||||||
|
|
||||||
$f = get_config('system','birthday_input_format');
|
$f = get_config('system','birthday_input_format');
|
||||||
if (! $f)
|
if(! $f)
|
||||||
$f = 'ymd';
|
$f = 'ymd';
|
||||||
if ($dob === '0000-00-00')
|
if($dob === '0000-00-00')
|
||||||
$value = '';
|
$value = '';
|
||||||
else
|
else
|
||||||
$value = (($year) ? datetime_convert('UTC','UTC',$dob,'Y-m-d') : datetime_convert('UTC','UTC',$dob,'m-d'));
|
$value = (($year) ? datetime_convert('UTC','UTC',$dob,'Y-m-d') : datetime_convert('UTC','UTC',$dob,'m-d'));
|
||||||
|
|
@ -279,9 +279,9 @@ function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicke
|
||||||
$o = '';
|
$o = '';
|
||||||
$dateformat = '';
|
$dateformat = '';
|
||||||
|
|
||||||
if ($pickdate) $dateformat .= 'Y-m-d';
|
if($pickdate) $dateformat .= 'Y-m-d';
|
||||||
if ($pickdate && $picktime) $dateformat .= ' ';
|
if($pickdate && $picktime) $dateformat .= ' ';
|
||||||
if ($picktime) $dateformat .= 'H:i';
|
if($picktime) $dateformat .= 'H:i';
|
||||||
|
|
||||||
$minjs = $min ? ",minDate: new Date({$min->getTimestamp()}*1000), yearStart: " . $min->format('Y') : '';
|
$minjs = $min ? ",minDate: new Date({$min->getTimestamp()}*1000), yearStart: " . $min->format('Y') : '';
|
||||||
$maxjs = $max ? ",maxDate: new Date({$max->getTimestamp()}*1000), yearEnd: " . $max->format('Y') : '';
|
$maxjs = $max ? ",maxDate: new Date({$max->getTimestamp()}*1000), yearEnd: " . $max->format('Y') : '';
|
||||||
|
|
@ -290,14 +290,14 @@ function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicke
|
||||||
$defaultdatejs = $default ? ",defaultDate: new Date({$default->getTimestamp()}*1000)" : '';
|
$defaultdatejs = $default ? ",defaultDate: new Date({$default->getTimestamp()}*1000)" : '';
|
||||||
|
|
||||||
$pickers = '';
|
$pickers = '';
|
||||||
if (!$pickdate) $pickers .= ',datepicker: false';
|
if(!$pickdate) $pickers .= ',datepicker: false';
|
||||||
if (!$picktime) $pickers .= ',timepicker: false';
|
if(!$picktime) $pickers .= ',timepicker: false';
|
||||||
|
|
||||||
$extra_js = '';
|
$extra_js = '';
|
||||||
$pickers .= ",dayOfWeekStart: ".$firstDay.",lang:'".$lang."'";
|
$pickers .= ",dayOfWeekStart: ".$firstDay.",lang:'".$lang."'";
|
||||||
if ($minfrom != '')
|
if($minfrom != '')
|
||||||
$extra_js .= "\$('#id_$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})";
|
$extra_js .= "\$('#id_$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})";
|
||||||
if ($maxfrom != '')
|
if($maxfrom != '')
|
||||||
$extra_js .= "\$('#id_$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})";
|
$extra_js .= "\$('#id_$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})";
|
||||||
|
|
||||||
$readable_format = $dateformat;
|
$readable_format = $dateformat;
|
||||||
|
|
@ -394,11 +394,11 @@ function relative_date($posted_date, $format = null) {
|
||||||
* @return int Age in years
|
* @return int Age in years
|
||||||
*/
|
*/
|
||||||
function age($dob,$owner_tz = '',$viewer_tz = '') {
|
function age($dob,$owner_tz = '',$viewer_tz = '') {
|
||||||
if (! intval($dob))
|
if(! intval($dob))
|
||||||
return 0;
|
return 0;
|
||||||
if (! $owner_tz)
|
if(! $owner_tz)
|
||||||
$owner_tz = date_default_timezone_get();
|
$owner_tz = date_default_timezone_get();
|
||||||
if (! $viewer_tz)
|
if(! $viewer_tz)
|
||||||
$viewer_tz = date_default_timezone_get();
|
$viewer_tz = date_default_timezone_get();
|
||||||
|
|
||||||
$birthdate = datetime_convert('UTC',$owner_tz,$dob . ' 00:00:00+00:00','Y-m-d');
|
$birthdate = datetime_convert('UTC',$owner_tz,$dob . ' 00:00:00+00:00','Y-m-d');
|
||||||
|
|
@ -407,7 +407,7 @@ function age($dob,$owner_tz = '',$viewer_tz = '') {
|
||||||
$curr_month = datetime_convert('UTC',$viewer_tz,'now','m');
|
$curr_month = datetime_convert('UTC',$viewer_tz,'now','m');
|
||||||
$curr_day = datetime_convert('UTC',$viewer_tz,'now','d');
|
$curr_day = datetime_convert('UTC',$viewer_tz,'now','d');
|
||||||
|
|
||||||
if (($curr_month < $month) || (($curr_month == $month) && ($curr_day < $day)))
|
if(($curr_month < $month) || (($curr_month == $month) && ($curr_day < $day)))
|
||||||
$year_diff--;
|
$year_diff--;
|
||||||
|
|
||||||
return $year_diff;
|
return $year_diff;
|
||||||
|
|
@ -430,10 +430,10 @@ function get_dim($y,$m) {
|
||||||
31, 28, 31, 30, 31, 30,
|
31, 28, 31, 30, 31, 30,
|
||||||
31, 31, 30, 31, 30, 31);
|
31, 31, 30, 31, 30, 31);
|
||||||
|
|
||||||
if ($m != 2)
|
if($m != 2)
|
||||||
return $dim[$m];
|
return $dim[$m];
|
||||||
|
|
||||||
if (((($y % 4) == 0) && (($y % 100) != 0)) || (($y % 400) == 0))
|
if(((($y % 4) == 0) && (($y % 100) != 0)) || (($y % 400) == 0))
|
||||||
return 29;
|
return 29;
|
||||||
|
|
||||||
return $dim[2];
|
return $dim[2];
|
||||||
|
|
@ -486,12 +486,10 @@ function cal($y = 0,$m = 0, $links = false, $class='') {
|
||||||
|
|
||||||
$thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
|
$thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
|
||||||
$thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
|
$thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
|
||||||
if (! $y) {
|
if(! $y)
|
||||||
$y = $thisyear;
|
$y = $thisyear;
|
||||||
}
|
if(! $m)
|
||||||
if (! $m) {
|
|
||||||
$m = intval($thismonth);
|
$m = intval($thismonth);
|
||||||
}
|
|
||||||
|
|
||||||
$dn = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
|
$dn = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
|
||||||
$f = get_first_dim($y,$m);
|
$f = get_first_dim($y,$m);
|
||||||
|
|
@ -500,33 +498,29 @@ function cal($y = 0,$m = 0, $links = false, $class='') {
|
||||||
$dow = 0;
|
$dow = 0;
|
||||||
$started = false;
|
$started = false;
|
||||||
|
|
||||||
if (($y == $thisyear) && ($m == $thismonth)) {
|
if(($y == $thisyear) && ($m == $thismonth))
|
||||||
$tddate = intval(datetime_convert('UTC',date_default_timezone_get(),'now','j'));
|
$tddate = intval(datetime_convert('UTC',date_default_timezone_get(),'now','j'));
|
||||||
}
|
|
||||||
|
|
||||||
$str_month = day_translate($mtab[$m]);
|
$str_month = day_translate($mtab[$m]);
|
||||||
$o = '<table class="calendar' . $class . '">';
|
$o = '<table class="calendar' . $class . '">';
|
||||||
$o .= "<caption>$str_month $y</caption><tr>";
|
$o .= "<caption>$str_month $y</caption><tr>";
|
||||||
for ($a = 0; $a < 7; $a ++) {
|
for($a = 0; $a < 7; $a ++)
|
||||||
$o .= '<th>' . mb_substr(day_translate($dn[$a]),0,3,'UTF-8') . '</th>';
|
$o .= '<th>' . mb_substr(day_translate($dn[$a]),0,3,'UTF-8') . '</th>';
|
||||||
}
|
|
||||||
|
|
||||||
$o .= '</tr><tr>';
|
$o .= '</tr><tr>';
|
||||||
|
|
||||||
while ($d <= $l) {
|
while($d <= $l) {
|
||||||
if (($dow == $f) && (! $started)) {
|
if(($dow == $f) && (! $started))
|
||||||
$started = true;
|
$started = true;
|
||||||
}
|
|
||||||
|
|
||||||
$today = (((isset($tddate)) && ($tddate == $d)) ? "class=\"today\" " : '');
|
$today = (((isset($tddate)) && ($tddate == $d)) ? "class=\"today\" " : '');
|
||||||
$o .= "<td $today>";
|
$o .= "<td $today>";
|
||||||
$day = str_replace(' ',' ',sprintf('%2.2d', $d));
|
$day = str_replace(' ',' ',sprintf('%2.2d', $d));
|
||||||
if ($started) {
|
if($started) {
|
||||||
if (is_array($links) && isset($links[$d])) {
|
if(is_array($links) && isset($links[$d]))
|
||||||
$o .= "<a href=\"{$links[$d]}\">$day</a>";
|
$o .= "<a href=\"{$links[$d]}\">$day</a>";
|
||||||
} else {
|
else
|
||||||
$o .= $day;
|
$o .= $day;
|
||||||
}
|
|
||||||
|
|
||||||
$d ++;
|
$d ++;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -535,16 +529,14 @@ function cal($y = 0,$m = 0, $links = false, $class='') {
|
||||||
|
|
||||||
$o .= '</td>';
|
$o .= '</td>';
|
||||||
$dow ++;
|
$dow ++;
|
||||||
if (($dow == 7) && ($d <= $l)) {
|
if(($dow == 7) && ($d <= $l)) {
|
||||||
$dow = 0;
|
$dow = 0;
|
||||||
$o .= '</tr><tr>';
|
$o .= '</tr><tr>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($dow) {
|
if($dow)
|
||||||
for ($a = $dow; $a < 7; $a ++) {
|
for($a = $dow; $a < 7; $a ++)
|
||||||
$o .= '<td> </td>';
|
$o .= '<td> </td>';
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$o .= '</tr></table>'."\r\n";
|
$o .= '</tr></table>'."\r\n";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ $objDDDBLResultHandler->add('PDOStatement', array('HANDLER' => $cloPDOStatementR
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! class_exists('dba')) {
|
if(! class_exists('dba')) {
|
||||||
class dba {
|
class dba {
|
||||||
|
|
||||||
private $debug = 0;
|
private $debug = 0;
|
||||||
|
|
@ -66,9 +66,9 @@ class dba {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($install) {
|
if($install) {
|
||||||
if (strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
|
if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
|
||||||
if (! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
|
if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
|
||||||
$this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server);
|
$this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server);
|
||||||
$this->connected = false;
|
$this->connected = false;
|
||||||
$this->db = null;
|
$this->db = null;
|
||||||
|
|
@ -81,13 +81,13 @@ class dba {
|
||||||
\DDDBL\connect();
|
\DDDBL\connect();
|
||||||
$this->db = \DDDBL\getDB();
|
$this->db = \DDDBL\getDB();
|
||||||
|
|
||||||
if (\DDDBL\isConnected()) {
|
if(\DDDBL\isConnected()) {
|
||||||
$this->connected = true;
|
$this->connected = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $this->connected) {
|
if(! $this->connected) {
|
||||||
$this->db = null;
|
$this->db = null;
|
||||||
if (! $install)
|
if(! $install)
|
||||||
system_unavailable();
|
system_unavailable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,11 +109,11 @@ class dba {
|
||||||
$objPreparedQueryPool = new \DDDBL\DataObjectPool('Query-Definition');
|
$objPreparedQueryPool = new \DDDBL\DataObjectPool('Query-Definition');
|
||||||
|
|
||||||
# check if query do not exists till now, if so create its definition
|
# check if query do not exists till now, if so create its definition
|
||||||
if (!$objPreparedQueryPool->exists($strQueryAlias))
|
if(!$objPreparedQueryPool->exists($strQueryAlias))
|
||||||
$objPreparedQueryPool->add($strQueryAlias, array('QUERY' => $sql,
|
$objPreparedQueryPool->add($strQueryAlias, array('QUERY' => $sql,
|
||||||
'HANDLER' => $strHandler));
|
'HANDLER' => $strHandler));
|
||||||
|
|
||||||
if ((! $this->db) || (! $this->connected))
|
if((! $this->db) || (! $this->connected))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$this->error = '';
|
$this->error = '';
|
||||||
|
|
@ -124,7 +124,7 @@ class dba {
|
||||||
$r = \DDDBL\get($strQueryAlias);
|
$r = \DDDBL\get($strQueryAlias);
|
||||||
|
|
||||||
# bad workaround to emulate the bizzare behavior of mysql_query
|
# bad workaround to emulate the bizzare behavior of mysql_query
|
||||||
if (in_array($strSQLType, array('INSERT', 'UPDATE', 'DELETE', 'CREATE', 'DROP', 'SET')))
|
if(in_array($strSQLType, array('INSERT', 'UPDATE', 'DELETE', 'CREATE', 'DROP', 'SET')))
|
||||||
$result = true;
|
$result = true;
|
||||||
$intErrorCode = false;
|
$intErrorCode = false;
|
||||||
|
|
||||||
|
|
@ -138,7 +138,7 @@ class dba {
|
||||||
|
|
||||||
$a->save_timestamp($stamp1, "database");
|
$a->save_timestamp($stamp1, "database");
|
||||||
|
|
||||||
if (x($a->config,'system') && x($a->config['system'],'db_log')) {
|
if(x($a->config,'system') && x($a->config['system'],'db_log')) {
|
||||||
if (($duration > $a->config["system"]["db_loglimit"])) {
|
if (($duration > $a->config["system"]["db_loglimit"])) {
|
||||||
$duration = round($duration, 3);
|
$duration = round($duration, 3);
|
||||||
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
|
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
|
||||||
|
|
@ -149,20 +149,20 @@ class dba {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($intErrorCode)
|
if($intErrorCode)
|
||||||
$this->error = $intErrorCode;
|
$this->error = $intErrorCode;
|
||||||
|
|
||||||
if (strlen($this->error)) {
|
if(strlen($this->error)) {
|
||||||
logger('dba: ' . $this->error);
|
logger('dba: ' . $this->error);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->debug) {
|
if($this->debug) {
|
||||||
|
|
||||||
$mesg = '';
|
$mesg = '';
|
||||||
|
|
||||||
if ($result === false)
|
if($result === false)
|
||||||
$mesg = 'false';
|
$mesg = 'false';
|
||||||
elseif ($result === true)
|
elseif($result === true)
|
||||||
$mesg = 'true';
|
$mesg = 'true';
|
||||||
else {
|
else {
|
||||||
# this needs fixing, but is a bug itself
|
# this needs fixing, but is a bug itself
|
||||||
|
|
@ -182,13 +182,13 @@ class dba {
|
||||||
* These usually indicate SQL syntax errors that need to be resolved.
|
* These usually indicate SQL syntax errors that need to be resolved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (isset($result) AND ($result === false)) {
|
if(isset($result) AND ($result === false)) {
|
||||||
logger('dba: ' . printable($sql) . ' returned false.' . "\n" . $this->error);
|
logger('dba: ' . printable($sql) . ' returned false.' . "\n" . $this->error);
|
||||||
if (file_exists('dbfail.out'))
|
if(file_exists('dbfail.out'))
|
||||||
file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND);
|
file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($result) AND (($result === true) || ($result === false)))
|
if(isset($result) AND (($result === true) || ($result === false)))
|
||||||
return $result;
|
return $result;
|
||||||
|
|
||||||
if ($onlyquery) {
|
if ($onlyquery) {
|
||||||
|
|
@ -199,7 +199,7 @@ class dba {
|
||||||
|
|
||||||
//$a->save_timestamp($stamp1, "database");
|
//$a->save_timestamp($stamp1, "database");
|
||||||
|
|
||||||
if ($this->debug)
|
if($this->debug)
|
||||||
logger('dba: ' . printable(print_r($r, true)));
|
logger('dba: ' . printable(print_r($r, true)));
|
||||||
return($r);
|
return($r);
|
||||||
}
|
}
|
||||||
|
|
@ -223,7 +223,7 @@ class dba {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function escape($str) {
|
public function escape($str) {
|
||||||
if ($this->db && $this->connected) {
|
if($this->db && $this->connected) {
|
||||||
$strQuoted = $this->db->quote($str);
|
$strQuoted = $this->db->quote($str);
|
||||||
# this workaround is needed, because quote creates "'" and the beginning and the end
|
# this workaround is needed, because quote creates "'" and the beginning and the end
|
||||||
# of the string, which is correct. but until now the queries set this delimiter manually,
|
# of the string, which is correct. but until now the queries set this delimiter manually,
|
||||||
|
|
@ -238,27 +238,27 @@ class dba {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if (! function_exists('printable')) {
|
if(! function_exists('printable')) {
|
||||||
function printable($s) {
|
function printable($s) {
|
||||||
$s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
|
$s = preg_replace("~([\x01-\x08\x0E-\x0F\x10-\x1F\x7F-\xFF])~",".", $s);
|
||||||
$s = str_replace("\x00",'.',$s);
|
$s = str_replace("\x00",'.',$s);
|
||||||
if (x($_SERVER,'SERVER_NAME'))
|
if(x($_SERVER,'SERVER_NAME'))
|
||||||
$s = escape_tags($s);
|
$s = escape_tags($s);
|
||||||
return $s;
|
return $s;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
// Procedural functions
|
// Procedural functions
|
||||||
if (! function_exists('dbg')) {
|
if(! function_exists('dbg')) {
|
||||||
function dbg($state) {
|
function dbg($state) {
|
||||||
global $db;
|
global $db;
|
||||||
if ($db)
|
if($db)
|
||||||
$db->dbg($state);
|
$db->dbg($state);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if (! function_exists('dbesc')) {
|
if(! function_exists('dbesc')) {
|
||||||
function dbesc($str) {
|
function dbesc($str) {
|
||||||
global $db;
|
global $db;
|
||||||
if ($db && $db->connected)
|
if($db && $db->connected)
|
||||||
return($db->escape($str));
|
return($db->escape($str));
|
||||||
else
|
else
|
||||||
return(str_replace("'","\\'",$str));
|
return(str_replace("'","\\'",$str));
|
||||||
|
|
@ -271,17 +271,17 @@ function dbesc($str) {
|
||||||
// Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
|
// Example: $r = q("SELECT * FROM `%s` WHERE `uid` = %d",
|
||||||
// 'user', 1);
|
// 'user', 1);
|
||||||
|
|
||||||
if (! function_exists('q')) {
|
if(! function_exists('q')) {
|
||||||
function q($sql) {
|
function q($sql) {
|
||||||
|
|
||||||
global $db;
|
global $db;
|
||||||
$args = func_get_args();
|
$args = func_get_args();
|
||||||
unset($args[0]);
|
unset($args[0]);
|
||||||
|
|
||||||
if ($db && $db->connected) {
|
if($db && $db->connected) {
|
||||||
$stmt = @vsprintf($sql,$args); // Disabled warnings
|
$stmt = @vsprintf($sql,$args); // Disabled warnings
|
||||||
//logger("dba: q: $stmt", LOGGER_ALL);
|
//logger("dba: q: $stmt", LOGGER_ALL);
|
||||||
if ($stmt === false)
|
if($stmt === false)
|
||||||
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true), LOGGER_DEBUG);
|
logger('dba: vsprintf error: ' . print_r(debug_backtrace(),true), LOGGER_DEBUG);
|
||||||
return $db->q($stmt);
|
return $db->q($stmt);
|
||||||
}
|
}
|
||||||
|
|
@ -303,11 +303,11 @@ function q($sql) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! function_exists('dbq')) {
|
if(! function_exists('dbq')) {
|
||||||
function dbq($sql) {
|
function dbq($sql) {
|
||||||
|
|
||||||
global $db;
|
global $db;
|
||||||
if ($db && $db->connected)
|
if($db && $db->connected)
|
||||||
$ret = $db->q($sql);
|
$ret = $db->q($sql);
|
||||||
else
|
else
|
||||||
$ret = false;
|
$ret = false;
|
||||||
|
|
@ -321,21 +321,21 @@ function dbq($sql) {
|
||||||
// cast to int to avoid trouble.
|
// cast to int to avoid trouble.
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('dbesc_array_cb')) {
|
if(! function_exists('dbesc_array_cb')) {
|
||||||
function dbesc_array_cb(&$item, $key) {
|
function dbesc_array_cb(&$item, $key) {
|
||||||
if (is_string($item))
|
if(is_string($item))
|
||||||
$item = dbesc($item);
|
$item = dbesc($item);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('dbesc_array')) {
|
if(! function_exists('dbesc_array')) {
|
||||||
function dbesc_array(&$arr) {
|
function dbesc_array(&$arr) {
|
||||||
if (is_array($arr) && count($arr)) {
|
if(is_array($arr) && count($arr)) {
|
||||||
array_walk($arr,'dbesc_array_cb');
|
array_walk($arr,'dbesc_array_cb');
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if (! function_exists('dba_timer')) {
|
if(! function_exists('dba_timer')) {
|
||||||
function dba_timer() {
|
function dba_timer() {
|
||||||
return microtime(true);
|
return microtime(true);
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -404,7 +404,7 @@ function db_create_table($name, $fields, $charset, $verbose, $action, $indexes=n
|
||||||
|
|
||||||
$sql_rows = array();
|
$sql_rows = array();
|
||||||
$primary_keys = array();
|
$primary_keys = array();
|
||||||
foreach ($fields AS $fieldname => $field) {
|
foreach($fields AS $fieldname => $field) {
|
||||||
$sql_rows[] = "`".dbesc($fieldname)."` ".db_field_command($field);
|
$sql_rows[] = "`".dbesc($fieldname)."` ".db_field_command($field);
|
||||||
if (x($field,'primary') and $field['primary']!=''){
|
if (x($field,'primary') and $field['primary']!=''){
|
||||||
$primary_keys[] = $fieldname;
|
$primary_keys[] = $fieldname;
|
||||||
|
|
@ -1621,11 +1621,11 @@ function db_definition($charset) {
|
||||||
function dbstructure_run(&$argv, &$argc) {
|
function dbstructure_run(&$argv, &$argc) {
|
||||||
global $a, $db;
|
global $a, $db;
|
||||||
|
|
||||||
if (is_null($a)){
|
if(is_null($a)){
|
||||||
$a = new App;
|
$a = new App;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_null($db)) {
|
if(is_null($db)) {
|
||||||
@include(".htconfig.php");
|
@include(".htconfig.php");
|
||||||
require_once("include/dba.php");
|
require_once("include/dba.php");
|
||||||
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
|
@ -1650,7 +1650,7 @@ function dbstructure_run(&$argv, &$argc) {
|
||||||
$current = intval(DB_UPDATE_VERSION);
|
$current = intval(DB_UPDATE_VERSION);
|
||||||
|
|
||||||
// run any left update_nnnn functions in update.php
|
// run any left update_nnnn functions in update.php
|
||||||
for ($x = $stored; $x < $current; $x ++) {
|
for($x = $stored; $x < $current; $x ++) {
|
||||||
$r = run_update_function($x);
|
$r = run_update_function($x);
|
||||||
if (!$r) break;
|
if (!$r) break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
709
include/dfrn.php
709
include/dfrn.php
|
|
@ -41,7 +41,6 @@ class dfrn {
|
||||||
* @param array $owner Owner record
|
* @param array $owner Owner record
|
||||||
*
|
*
|
||||||
* @return string DFRN entries
|
* @return string DFRN entries
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
public static function entries($items,$owner) {
|
public static function entries($items,$owner) {
|
||||||
|
|
||||||
|
|
@ -50,11 +49,10 @@ class dfrn {
|
||||||
|
|
||||||
$root = self::add_header($doc, $owner, "dfrn:owner", "", false);
|
$root = self::add_header($doc, $owner, "dfrn:owner", "", false);
|
||||||
|
|
||||||
if (! count($items)) {
|
if(! count($items))
|
||||||
return trim($doc->saveXML());
|
return trim($doc->saveXML());
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
$entry = self::entry($doc, "text", $item, $owner, $item["entry:comment-allow"], $item["entry:cid"]);
|
$entry = self::entry($doc, "text", $item, $owner, $item["entry:comment-allow"], $item["entry:cid"]);
|
||||||
$root->appendChild($entry);
|
$root->appendChild($entry);
|
||||||
}
|
}
|
||||||
|
|
@ -84,17 +82,14 @@ class dfrn {
|
||||||
$starred = false; // not yet implemented, possible security issues
|
$starred = false; // not yet implemented, possible security issues
|
||||||
$converse = false;
|
$converse = false;
|
||||||
|
|
||||||
if ($public_feed && $a->argc > 2) {
|
if($public_feed && $a->argc > 2) {
|
||||||
for ($x = 2; $x < $a->argc; $x++) {
|
for($x = 2; $x < $a->argc; $x++) {
|
||||||
if ($a->argv[$x] == 'converse') {
|
if($a->argv[$x] == 'converse')
|
||||||
$converse = true;
|
$converse = true;
|
||||||
}
|
if($a->argv[$x] == 'starred')
|
||||||
if ($a->argv[$x] == 'starred') {
|
|
||||||
$starred = true;
|
$starred = true;
|
||||||
}
|
if($a->argv[$x] == 'category' && $a->argc > ($x + 1) && strlen($a->argv[$x+1]))
|
||||||
if ($a->argv[$x] == 'category' && $a->argc > ($x + 1) && strlen($a->argv[$x+1])) {
|
|
||||||
$category = $a->argv[$x+1];
|
$category = $a->argv[$x+1];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -120,7 +115,7 @@ class dfrn {
|
||||||
|
|
||||||
$sql_post_table = "";
|
$sql_post_table = "";
|
||||||
|
|
||||||
if (! $public_feed) {
|
if(! $public_feed) {
|
||||||
|
|
||||||
$sql_extra = '';
|
$sql_extra = '';
|
||||||
switch($direction) {
|
switch($direction) {
|
||||||
|
|
@ -153,13 +148,12 @@ class dfrn {
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
$groups = init_groups_visitor($contact['id']);
|
$groups = init_groups_visitor($contact['id']);
|
||||||
|
|
||||||
if (count($groups)) {
|
if(count($groups)) {
|
||||||
for ($x = 0; $x < count($groups); $x ++)
|
for($x = 0; $x < count($groups); $x ++)
|
||||||
$groups[$x] = '<' . intval($groups[$x]) . '>' ;
|
$groups[$x] = '<' . intval($groups[$x]) . '>' ;
|
||||||
$gs = implode('|', $groups);
|
$gs = implode('|', $groups);
|
||||||
} else {
|
} else
|
||||||
$gs = '<<>>' ; // Impossible to match
|
$gs = '<<>>' ; // Impossible to match
|
||||||
}
|
|
||||||
|
|
||||||
$sql_extra = sprintf("
|
$sql_extra = sprintf("
|
||||||
AND ( `allow_cid` = '' OR `allow_cid` REGEXP '<%d>' )
|
AND ( `allow_cid` = '' OR `allow_cid` REGEXP '<%d>' )
|
||||||
|
|
@ -174,26 +168,23 @@ class dfrn {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($public_feed) {
|
if($public_feed)
|
||||||
$sort = 'DESC';
|
$sort = 'DESC';
|
||||||
} else {
|
else
|
||||||
$sort = 'ASC';
|
$sort = 'ASC';
|
||||||
}
|
|
||||||
|
|
||||||
if (! strlen($last_update)) {
|
if(! strlen($last_update))
|
||||||
$last_update = 'now -30 days';
|
$last_update = 'now -30 days';
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($category)) {
|
if(isset($category)) {
|
||||||
$sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ",
|
$sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ",
|
||||||
dbesc(protect_sprintf($category)), intval(TERM_OBJ_POST), intval(TERM_CATEGORY), intval($owner_id));
|
dbesc(protect_sprintf($category)), intval(TERM_OBJ_POST), intval(TERM_CATEGORY), intval($owner_id));
|
||||||
//$sql_extra .= file_tag_file_query('item',$category,'category');
|
//$sql_extra .= file_tag_file_query('item',$category,'category');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($public_feed) {
|
if($public_feed) {
|
||||||
if (! $converse) {
|
if(! $converse)
|
||||||
$sql_extra .= " AND `contact`.`self` = 1 ";
|
$sql_extra .= " AND `contact`.`self` = 1 ";
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s');
|
$check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s');
|
||||||
|
|
@ -216,11 +207,6 @@ class dfrn {
|
||||||
dbesc($sort)
|
dbesc($sort)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!dbm::is_result($r)) {
|
|
||||||
logger("Query failed to execute, no result returned in " . __FUNCTION__);
|
|
||||||
killme();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Will check further below if this actually returned results.
|
// Will check further below if this actually returned results.
|
||||||
// We will provide an empty feed if that is the case.
|
// We will provide an empty feed if that is the case.
|
||||||
|
|
||||||
|
|
@ -231,15 +217,13 @@ class dfrn {
|
||||||
|
|
||||||
$alternatelink = $owner['url'];
|
$alternatelink = $owner['url'];
|
||||||
|
|
||||||
if (isset($category)) {
|
if(isset($category))
|
||||||
$alternatelink .= "/category/".$category;
|
$alternatelink .= "/category/".$category;
|
||||||
}
|
|
||||||
|
|
||||||
if ($public_feed) {
|
if ($public_feed)
|
||||||
$author = "dfrn:owner";
|
$author = "dfrn:owner";
|
||||||
} else {
|
else
|
||||||
$author = "author";
|
$author = "author";
|
||||||
}
|
|
||||||
|
|
||||||
$root = self::add_header($doc, $owner, $author, $alternatelink, true);
|
$root = self::add_header($doc, $owner, $author, $alternatelink, true);
|
||||||
|
|
||||||
|
|
@ -254,24 +238,21 @@ class dfrn {
|
||||||
return $atom;
|
return $atom;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
|
|
||||||
// prevent private email from leaking.
|
// prevent private email from leaking.
|
||||||
if ($item['network'] == NETWORK_MAIL) {
|
if($item['network'] == NETWORK_MAIL)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
// public feeds get html, our own nodes use bbcode
|
// public feeds get html, our own nodes use bbcode
|
||||||
|
|
||||||
if ($public_feed) {
|
if($public_feed) {
|
||||||
$type = 'html';
|
$type = 'html';
|
||||||
// catch any email that's in a public conversation and make sure it doesn't leak
|
// catch any email that's in a public conversation and make sure it doesn't leak
|
||||||
if ($item['private']) {
|
if($item['private'])
|
||||||
continue;
|
continue;
|
||||||
}
|
} else
|
||||||
} else {
|
|
||||||
$type = 'text';
|
$type = 'text';
|
||||||
}
|
|
||||||
|
|
||||||
$entry = self::entry($doc, $type, $item, $owner, true);
|
$entry = self::entry($doc, $type, $item, $owner, true);
|
||||||
$root->appendChild($entry);
|
$root->appendChild($entry);
|
||||||
|
|
@ -292,7 +273,6 @@ class dfrn {
|
||||||
* @param array $owner Owner record
|
* @param array $owner Owner record
|
||||||
*
|
*
|
||||||
* @return string DFRN mail
|
* @return string DFRN mail
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
public static function mail($item, $owner) {
|
public static function mail($item, $owner) {
|
||||||
$doc = new DOMDocument('1.0', 'utf-8');
|
$doc = new DOMDocument('1.0', 'utf-8');
|
||||||
|
|
@ -327,7 +307,6 @@ class dfrn {
|
||||||
* @param array $owner Owner record
|
* @param array $owner Owner record
|
||||||
*
|
*
|
||||||
* @return string DFRN suggestions
|
* @return string DFRN suggestions
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
public static function fsuggest($item, $owner) {
|
public static function fsuggest($item, $owner) {
|
||||||
$doc = new DOMDocument('1.0', 'utf-8');
|
$doc = new DOMDocument('1.0', 'utf-8');
|
||||||
|
|
@ -355,13 +334,12 @@ class dfrn {
|
||||||
* @param int $uid User ID
|
* @param int $uid User ID
|
||||||
*
|
*
|
||||||
* @return string DFRN relocations
|
* @return string DFRN relocations
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
public static function relocate($owner, $uid) {
|
public static function relocate($owner, $uid) {
|
||||||
|
|
||||||
/* get site pubkey. this could be a new installation with no site keys*/
|
/* get site pubkey. this could be a new installation with no site keys*/
|
||||||
$pubkey = get_config('system','site_pubkey');
|
$pubkey = get_config('system','site_pubkey');
|
||||||
if (! $pubkey) {
|
if(! $pubkey) {
|
||||||
$res = new_keypair(1024);
|
$res = new_keypair(1024);
|
||||||
set_config('system','site_prvkey', $res['prvkey']);
|
set_config('system','site_prvkey', $res['prvkey']);
|
||||||
set_config('system','site_pubkey', $res['pubkey']);
|
set_config('system','site_pubkey', $res['pubkey']);
|
||||||
|
|
@ -372,9 +350,8 @@ class dfrn {
|
||||||
$photos = array();
|
$photos = array();
|
||||||
$ext = Photo::supportedTypes();
|
$ext = Photo::supportedTypes();
|
||||||
|
|
||||||
foreach ($rp as $p) {
|
foreach($rp as $p)
|
||||||
$photos[$p['scale']] = app::get_baseurl().'/photo/'.$p['resource-id'].'-'.$p['scale'].'.'.$ext[$p['type']];
|
$photos[$p['scale']] = app::get_baseurl().'/photo/'.$p['resource-id'].'-'.$p['scale'].'.'.$ext[$p['type']];
|
||||||
}
|
|
||||||
|
|
||||||
unset($rp, $ext);
|
unset($rp, $ext);
|
||||||
|
|
||||||
|
|
@ -413,13 +390,11 @@ class dfrn {
|
||||||
* @param bool $public Is it a header for public posts?
|
* @param bool $public Is it a header for public posts?
|
||||||
*
|
*
|
||||||
* @return object XML root object
|
* @return object XML root object
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private static function add_header($doc, $owner, $authorelement, $alternatelink = "", $public = false) {
|
private static function add_header($doc, $owner, $authorelement, $alternatelink = "", $public = false) {
|
||||||
|
|
||||||
if ($alternatelink == "") {
|
if ($alternatelink == "")
|
||||||
$alternatelink = $owner['url'];
|
$alternatelink = $owner['url'];
|
||||||
}
|
|
||||||
|
|
||||||
$root = $doc->createElementNS(NAMESPACE_ATOM1, 'feed');
|
$root = $doc->createElementNS(NAMESPACE_ATOM1, 'feed');
|
||||||
$doc->appendChild($root);
|
$doc->appendChild($root);
|
||||||
|
|
@ -462,9 +437,8 @@ class dfrn {
|
||||||
}
|
}
|
||||||
|
|
||||||
// For backward compatibility we keep this element
|
// For backward compatibility we keep this element
|
||||||
if ($owner['page-flags'] == PAGE_COMMUNITY) {
|
if ($owner['page-flags'] == PAGE_COMMUNITY)
|
||||||
xml::add_element($doc, $root, "dfrn:community", 1);
|
xml::add_element($doc, $root, "dfrn:community", 1);
|
||||||
}
|
|
||||||
|
|
||||||
// The former element is replaced by this one
|
// The former element is replaced by this one
|
||||||
xml::add_element($doc, $root, "dfrn:account_type", $owner["account-type"]);
|
xml::add_element($doc, $root, "dfrn:account_type", $owner["account-type"]);
|
||||||
|
|
@ -487,7 +461,6 @@ class dfrn {
|
||||||
* @param string $authorelement Element name for the author
|
* @param string $authorelement Element name for the author
|
||||||
*
|
*
|
||||||
* @return object XML author object
|
* @return object XML author object
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private static function add_author($doc, $owner, $authorelement, $public) {
|
private static function add_author($doc, $owner, $authorelement, $public) {
|
||||||
|
|
||||||
|
|
@ -495,11 +468,10 @@ class dfrn {
|
||||||
$r = q("SELECT `id` FROM `profile` INNER JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
$r = q("SELECT `id` FROM `profile` INNER JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
||||||
WHERE (`hidewall` OR NOT `net-publish`) AND `user`.`uid` = %d",
|
WHERE (`hidewall` OR NOT `net-publish`) AND `user`.`uid` = %d",
|
||||||
intval($owner['uid']));
|
intval($owner['uid']));
|
||||||
if (dbm::is_result($r)) {
|
if ($r)
|
||||||
$hidewall = true;
|
$hidewall = true;
|
||||||
} else {
|
else
|
||||||
$hidewall = false;
|
$hidewall = false;
|
||||||
}
|
|
||||||
|
|
||||||
$author = $doc->createElement($authorelement);
|
$author = $doc->createElement($authorelement);
|
||||||
|
|
||||||
|
|
@ -507,11 +479,10 @@ class dfrn {
|
||||||
$uridate = datetime_convert('UTC', 'UTC', $owner['uri-date'].'+00:00', ATOM_TIME);
|
$uridate = datetime_convert('UTC', 'UTC', $owner['uri-date'].'+00:00', ATOM_TIME);
|
||||||
$picdate = datetime_convert('UTC', 'UTC', $owner['avatar-date'].'+00:00', ATOM_TIME);
|
$picdate = datetime_convert('UTC', 'UTC', $owner['avatar-date'].'+00:00', ATOM_TIME);
|
||||||
|
|
||||||
$attributes = array();
|
if (!$public OR !$hidewall)
|
||||||
|
|
||||||
if (!$public OR !$hidewall) {
|
|
||||||
$attributes = array("dfrn:updated" => $namdate);
|
$attributes = array("dfrn:updated" => $namdate);
|
||||||
}
|
else
|
||||||
|
$attributes = array();
|
||||||
|
|
||||||
xml::add_element($doc, $author, "name", $owner["name"], $attributes);
|
xml::add_element($doc, $author, "name", $owner["name"], $attributes);
|
||||||
xml::add_element($doc, $author, "uri", app::get_baseurl().'/profile/'.$owner["nickname"], $attributes);
|
xml::add_element($doc, $author, "uri", app::get_baseurl().'/profile/'.$owner["nickname"], $attributes);
|
||||||
|
|
@ -520,23 +491,20 @@ class dfrn {
|
||||||
$attributes = array("rel" => "photo", "type" => "image/jpeg",
|
$attributes = array("rel" => "photo", "type" => "image/jpeg",
|
||||||
"media:width" => 175, "media:height" => 175, "href" => $owner['photo']);
|
"media:width" => 175, "media:height" => 175, "href" => $owner['photo']);
|
||||||
|
|
||||||
if (!$public OR !$hidewall) {
|
if (!$public OR !$hidewall)
|
||||||
$attributes["dfrn:updated"] = $picdate;
|
$attributes["dfrn:updated"] = $picdate;
|
||||||
}
|
|
||||||
|
|
||||||
xml::add_element($doc, $author, "link", "", $attributes);
|
xml::add_element($doc, $author, "link", "", $attributes);
|
||||||
|
|
||||||
$attributes["rel"] = "avatar";
|
$attributes["rel"] = "avatar";
|
||||||
xml::add_element($doc, $author, "link", "", $attributes);
|
xml::add_element($doc, $author, "link", "", $attributes);
|
||||||
|
|
||||||
if ($hidewall) {
|
if ($hidewall)
|
||||||
xml::add_element($doc, $author, "dfrn:hide", "true");
|
xml::add_element($doc, $author, "dfrn:hide", "true");
|
||||||
}
|
|
||||||
|
|
||||||
// The following fields will only be generated if the data isn't meant for a public feed
|
// The following fields will only be generated if the data isn't meant for a public feed
|
||||||
if ($public) {
|
if ($public)
|
||||||
return $author;
|
return $author;
|
||||||
}
|
|
||||||
|
|
||||||
$birthday = feed_birthday($owner['uid'], $owner['timezone']);
|
$birthday = feed_birthday($owner['uid'], $owner['timezone']);
|
||||||
|
|
||||||
|
|
@ -551,7 +519,7 @@ class dfrn {
|
||||||
INNER JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
INNER JOIN `user` ON `user`.`uid` = `profile`.`uid`
|
||||||
WHERE `profile`.`is-default` AND NOT `user`.`hidewall` AND `user`.`uid` = %d",
|
WHERE `profile`.`is-default` AND NOT `user`.`hidewall` AND `user`.`uid` = %d",
|
||||||
intval($owner['uid']));
|
intval($owner['uid']));
|
||||||
if (dbm::is_result($r)) {
|
if ($r) {
|
||||||
$profile = $r[0];
|
$profile = $r[0];
|
||||||
|
|
||||||
xml::add_element($doc, $author, "poco:displayName", $profile["name"]);
|
xml::add_element($doc, $author, "poco:displayName", $profile["name"]);
|
||||||
|
|
@ -579,9 +547,8 @@ class dfrn {
|
||||||
if (trim($profile["pub_keywords"]) != "") {
|
if (trim($profile["pub_keywords"]) != "") {
|
||||||
$keywords = explode(",", $profile["pub_keywords"]);
|
$keywords = explode(",", $profile["pub_keywords"]);
|
||||||
|
|
||||||
foreach ($keywords AS $keyword) {
|
foreach ($keywords AS $keyword)
|
||||||
xml::add_element($doc, $author, "poco:tags", trim($keyword));
|
xml::add_element($doc, $author, "poco:tags", trim($keyword));
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -598,17 +565,14 @@ class dfrn {
|
||||||
|
|
||||||
xml::add_element($doc, $element, "poco:formatted", formatted_location($profile));
|
xml::add_element($doc, $element, "poco:formatted", formatted_location($profile));
|
||||||
|
|
||||||
if (trim($profile["locality"]) != "") {
|
if (trim($profile["locality"]) != "")
|
||||||
xml::add_element($doc, $element, "poco:locality", $profile["locality"]);
|
xml::add_element($doc, $element, "poco:locality", $profile["locality"]);
|
||||||
}
|
|
||||||
|
|
||||||
if (trim($profile["region"]) != "") {
|
if (trim($profile["region"]) != "")
|
||||||
xml::add_element($doc, $element, "poco:region", $profile["region"]);
|
xml::add_element($doc, $element, "poco:region", $profile["region"]);
|
||||||
}
|
|
||||||
|
|
||||||
if (trim($profile["country-name"]) != "") {
|
if (trim($profile["country-name"]) != "")
|
||||||
xml::add_element($doc, $element, "poco:country", $profile["country-name"]);
|
xml::add_element($doc, $element, "poco:country", $profile["country-name"]);
|
||||||
}
|
|
||||||
|
|
||||||
$author->appendChild($element);
|
$author->appendChild($element);
|
||||||
}
|
}
|
||||||
|
|
@ -626,7 +590,6 @@ class dfrn {
|
||||||
* @param array $items Item elements
|
* @param array $items Item elements
|
||||||
*
|
*
|
||||||
* @return object XML author object
|
* @return object XML author object
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private static function add_entry_author($doc, $element, $contact_url, $item) {
|
private static function add_entry_author($doc, $element, $contact_url, $item) {
|
||||||
|
|
||||||
|
|
@ -667,32 +630,25 @@ class dfrn {
|
||||||
* @param string $activity activity value
|
* @param string $activity activity value
|
||||||
*
|
*
|
||||||
* @return object XML activity object
|
* @return object XML activity object
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private static function create_activity($doc, $element, $activity) {
|
private static function create_activity($doc, $element, $activity) {
|
||||||
|
|
||||||
if ($activity) {
|
if($activity) {
|
||||||
$entry = $doc->createElement($element);
|
$entry = $doc->createElement($element);
|
||||||
|
|
||||||
$r = parse_xml_string($activity, false);
|
$r = parse_xml_string($activity, false);
|
||||||
if (!$r) {
|
if(!$r)
|
||||||
return false;
|
return false;
|
||||||
}
|
if($r->type)
|
||||||
if ($r->type) {
|
|
||||||
xml::add_element($doc, $entry, "activity:object-type", $r->type);
|
xml::add_element($doc, $entry, "activity:object-type", $r->type);
|
||||||
}
|
if($r->id)
|
||||||
if ($r->id) {
|
|
||||||
xml::add_element($doc, $entry, "id", $r->id);
|
xml::add_element($doc, $entry, "id", $r->id);
|
||||||
}
|
if($r->title)
|
||||||
if ($r->title) {
|
|
||||||
xml::add_element($doc, $entry, "title", $r->title);
|
xml::add_element($doc, $entry, "title", $r->title);
|
||||||
}
|
if($r->link) {
|
||||||
|
if(substr($r->link,0,1) == '<') {
|
||||||
if ($r->link) {
|
if(strstr($r->link,'&') && (! strstr($r->link,'&')))
|
||||||
if (substr($r->link,0,1) == '<') {
|
|
||||||
if (strstr($r->link,'&') && (! strstr($r->link,'&'))) {
|
|
||||||
$r->link = str_replace('&','&', $r->link);
|
$r->link = str_replace('&','&', $r->link);
|
||||||
}
|
|
||||||
|
|
||||||
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
|
$r->link = preg_replace('/\<link(.*?)\"\>/','<link$1"/>',$r->link);
|
||||||
|
|
||||||
|
|
@ -701,9 +657,8 @@ class dfrn {
|
||||||
if (is_object($data)) {
|
if (is_object($data)) {
|
||||||
foreach ($data->link AS $link) {
|
foreach ($data->link AS $link) {
|
||||||
$attributes = array();
|
$attributes = array();
|
||||||
foreach ($link->attributes() AS $parameter => $value) {
|
foreach ($link->attributes() AS $parameter => $value)
|
||||||
$attributes[$parameter] = $value;
|
$attributes[$parameter] = $value;
|
||||||
}
|
|
||||||
xml::add_element($doc, $entry, "link", "", $attributes);
|
xml::add_element($doc, $entry, "link", "", $attributes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -712,9 +667,8 @@ class dfrn {
|
||||||
xml::add_element($doc, $entry, "link", "", $attributes);
|
xml::add_element($doc, $entry, "link", "", $attributes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($r->content) {
|
if($r->content)
|
||||||
xml::add_element($doc, $entry, "content", bbcode($r->content), array("type" => "html"));
|
xml::add_element($doc, $entry, "content", bbcode($r->content), array("type" => "html"));
|
||||||
}
|
|
||||||
|
|
||||||
return $entry;
|
return $entry;
|
||||||
}
|
}
|
||||||
|
|
@ -730,26 +684,23 @@ class dfrn {
|
||||||
* @param array $item Item element
|
* @param array $item Item element
|
||||||
*
|
*
|
||||||
* @return object XML attachment object
|
* @return object XML attachment object
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private static function get_attachment($doc, $root, $item) {
|
private static function get_attachment($doc, $root, $item) {
|
||||||
$arr = explode('[/attach],',$item['attach']);
|
$arr = explode('[/attach],',$item['attach']);
|
||||||
if (count($arr)) {
|
if(count($arr)) {
|
||||||
foreach ($arr as $r) {
|
foreach($arr as $r) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches);
|
$cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches);
|
||||||
if ($cnt) {
|
if($cnt) {
|
||||||
$attributes = array("rel" => "enclosure",
|
$attributes = array("rel" => "enclosure",
|
||||||
"href" => $matches[1],
|
"href" => $matches[1],
|
||||||
"type" => $matches[3]);
|
"type" => $matches[3]);
|
||||||
|
|
||||||
if (intval($matches[2])) {
|
if(intval($matches[2]))
|
||||||
$attributes["length"] = intval($matches[2]);
|
$attributes["length"] = intval($matches[2]);
|
||||||
}
|
|
||||||
|
|
||||||
if (trim($matches[4]) != "") {
|
if(trim($matches[4]) != "")
|
||||||
$attributes["title"] = trim($matches[4]);
|
$attributes["title"] = trim($matches[4]);
|
||||||
}
|
|
||||||
|
|
||||||
xml::add_element($doc, $root, "link", "", $attributes);
|
xml::add_element($doc, $root, "link", "", $attributes);
|
||||||
}
|
}
|
||||||
|
|
@ -768,28 +719,25 @@ class dfrn {
|
||||||
* @param int $cid Contact ID of the recipient
|
* @param int $cid Contact ID of the recipient
|
||||||
*
|
*
|
||||||
* @return object XML entry object
|
* @return object XML entry object
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private static function entry($doc, $type, $item, $owner, $comment = false, $cid = 0) {
|
private static function entry($doc, $type, $item, $owner, $comment = false, $cid = 0) {
|
||||||
|
|
||||||
$mentioned = array();
|
$mentioned = array();
|
||||||
|
|
||||||
if (!$item['parent']) {
|
if(!$item['parent'])
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if ($item['deleted']) {
|
if($item['deleted']) {
|
||||||
$attributes = array("ref" => $item['uri'], "when" => datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME));
|
$attributes = array("ref" => $item['uri'], "when" => datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME));
|
||||||
return xml::create_element($doc, "at:deleted-entry", "", $attributes);
|
return xml::create_element($doc, "at:deleted-entry", "", $attributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
$entry = $doc->createElement("entry");
|
$entry = $doc->createElement("entry");
|
||||||
|
|
||||||
if ($item['allow_cid'] || $item['allow_gid'] || $item['deny_cid'] || $item['deny_gid']) {
|
if($item['allow_cid'] || $item['allow_gid'] || $item['deny_cid'] || $item['deny_gid'])
|
||||||
$body = fix_private_photos($item['body'],$owner['uid'],$item,$cid);
|
$body = fix_private_photos($item['body'],$owner['uid'],$item,$cid);
|
||||||
} else {
|
else
|
||||||
$body = $item['body'];
|
$body = $item['body'];
|
||||||
}
|
|
||||||
|
|
||||||
// Remove the abstract element. It is only locally important.
|
// Remove the abstract element. It is only locally important.
|
||||||
$body = remove_abstract($body);
|
$body = remove_abstract($body);
|
||||||
|
|
@ -797,9 +745,8 @@ class dfrn {
|
||||||
if ($type == 'html') {
|
if ($type == 'html') {
|
||||||
$htmlbody = $body;
|
$htmlbody = $body;
|
||||||
|
|
||||||
if ($item['title'] != "") {
|
if ($item['title'] != "")
|
||||||
$htmlbody = "[b]".$item['title']."[/b]\n\n".$htmlbody;
|
$htmlbody = "[b]".$item['title']."[/b]\n\n".$htmlbody;
|
||||||
}
|
|
||||||
|
|
||||||
$htmlbody = bbcode($htmlbody, false, false, 7);
|
$htmlbody = bbcode($htmlbody, false, false, 7);
|
||||||
}
|
}
|
||||||
|
|
@ -810,7 +757,7 @@ class dfrn {
|
||||||
$dfrnowner = self::add_entry_author($doc, "dfrn:owner", $item["owner-link"], $item);
|
$dfrnowner = self::add_entry_author($doc, "dfrn:owner", $item["owner-link"], $item);
|
||||||
$entry->appendChild($dfrnowner);
|
$entry->appendChild($dfrnowner);
|
||||||
|
|
||||||
if (($item['parent'] != $item['id']) || ($item['parent-uri'] !== $item['uri']) || (($item['thr-parent'] !== '') && ($item['thr-parent'] !== $item['uri']))) {
|
if(($item['parent'] != $item['id']) || ($item['parent-uri'] !== $item['uri']) || (($item['thr-parent'] !== '') && ($item['thr-parent'] !== $item['uri']))) {
|
||||||
$parent = q("SELECT `guid` FROM `item` WHERE `id` = %d", intval($item["parent"]));
|
$parent = q("SELECT `guid` FROM `item` WHERE `id` = %d", intval($item["parent"]));
|
||||||
$parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']);
|
$parent_item = (($item['thr-parent']) ? $item['thr-parent'] : $item['parent-uri']);
|
||||||
$attributes = array("ref" => $parent_item, "type" => "text/html",
|
$attributes = array("ref" => $parent_item, "type" => "text/html",
|
||||||
|
|
@ -838,100 +785,78 @@ class dfrn {
|
||||||
|
|
||||||
// "comment-allow" is some old fashioned stuff for old Friendica versions.
|
// "comment-allow" is some old fashioned stuff for old Friendica versions.
|
||||||
// It is included in the rewritten code for completeness
|
// It is included in the rewritten code for completeness
|
||||||
if ($comment) {
|
if ($comment)
|
||||||
xml::add_element($doc, $entry, "dfrn:comment-allow", intval($item['last-child']));
|
xml::add_element($doc, $entry, "dfrn:comment-allow", intval($item['last-child']));
|
||||||
}
|
|
||||||
|
|
||||||
if ($item['location']) {
|
if($item['location'])
|
||||||
xml::add_element($doc, $entry, "dfrn:location", $item['location']);
|
xml::add_element($doc, $entry, "dfrn:location", $item['location']);
|
||||||
}
|
|
||||||
|
|
||||||
if ($item['coord']) {
|
if($item['coord'])
|
||||||
xml::add_element($doc, $entry, "georss:point", $item['coord']);
|
xml::add_element($doc, $entry, "georss:point", $item['coord']);
|
||||||
}
|
|
||||||
|
|
||||||
if (($item['private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])) {
|
if(($item['private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid']))
|
||||||
xml::add_element($doc, $entry, "dfrn:private", (($item['private']) ? $item['private'] : 1));
|
xml::add_element($doc, $entry, "dfrn:private", (($item['private']) ? $item['private'] : 1));
|
||||||
}
|
|
||||||
|
|
||||||
if ($item['extid']) {
|
if($item['extid'])
|
||||||
xml::add_element($doc, $entry, "dfrn:extid", $item['extid']);
|
xml::add_element($doc, $entry, "dfrn:extid", $item['extid']);
|
||||||
}
|
|
||||||
|
|
||||||
if ($item['bookmark']) {
|
if($item['bookmark'])
|
||||||
xml::add_element($doc, $entry, "dfrn:bookmark", "true");
|
xml::add_element($doc, $entry, "dfrn:bookmark", "true");
|
||||||
}
|
|
||||||
|
|
||||||
if ($item['app']) {
|
if($item['app'])
|
||||||
xml::add_element($doc, $entry, "statusnet:notice_info", "", array("local_id" => $item['id'], "source" => $item['app']));
|
xml::add_element($doc, $entry, "statusnet:notice_info", "", array("local_id" => $item['id'], "source" => $item['app']));
|
||||||
}
|
|
||||||
|
|
||||||
xml::add_element($doc, $entry, "dfrn:diaspora_guid", $item["guid"]);
|
xml::add_element($doc, $entry, "dfrn:diaspora_guid", $item["guid"]);
|
||||||
|
|
||||||
// The signed text contains the content in Markdown, the sender handle and the signatur for the content
|
// The signed text contains the content in Markdown, the sender handle and the signatur for the content
|
||||||
// It is needed for relayed comments to Diaspora.
|
// It is needed for relayed comments to Diaspora.
|
||||||
if ($item['signed_text']) {
|
if($item['signed_text']) {
|
||||||
$sign = base64_encode(json_encode(array('signed_text' => $item['signed_text'],'signature' => $item['signature'],'signer' => $item['signer'])));
|
$sign = base64_encode(json_encode(array('signed_text' => $item['signed_text'],'signature' => $item['signature'],'signer' => $item['signer'])));
|
||||||
xml::add_element($doc, $entry, "dfrn:diaspora_signature", $sign);
|
xml::add_element($doc, $entry, "dfrn:diaspora_signature", $sign);
|
||||||
}
|
}
|
||||||
|
|
||||||
xml::add_element($doc, $entry, "activity:verb", construct_verb($item));
|
xml::add_element($doc, $entry, "activity:verb", construct_verb($item));
|
||||||
|
|
||||||
if ($item['object-type'] != "") {
|
if ($item['object-type'] != "")
|
||||||
xml::add_element($doc, $entry, "activity:object-type", $item['object-type']);
|
xml::add_element($doc, $entry, "activity:object-type", $item['object-type']);
|
||||||
} elseif ($item['id'] == $item['parent']) {
|
elseif ($item['id'] == $item['parent'])
|
||||||
xml::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE);
|
xml::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE);
|
||||||
} else {
|
else
|
||||||
xml::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_COMMENT);
|
xml::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_COMMENT);
|
||||||
}
|
|
||||||
|
|
||||||
$actobj = self::create_activity($doc, "activity:object", $item['object']);
|
$actobj = self::create_activity($doc, "activity:object", $item['object']);
|
||||||
if ($actobj) {
|
if ($actobj)
|
||||||
$entry->appendChild($actobj);
|
$entry->appendChild($actobj);
|
||||||
}
|
|
||||||
|
|
||||||
$actarg = self::create_activity($doc, "activity:target", $item['target']);
|
$actarg = self::create_activity($doc, "activity:target", $item['target']);
|
||||||
if ($actarg) {
|
if ($actarg)
|
||||||
$entry->appendChild($actarg);
|
$entry->appendChild($actarg);
|
||||||
}
|
|
||||||
|
|
||||||
$tags = item_getfeedtags($item);
|
$tags = item_getfeedtags($item);
|
||||||
|
|
||||||
if (count($tags)) {
|
if(count($tags)) {
|
||||||
foreach ($tags as $t) {
|
foreach($tags as $t)
|
||||||
if (($type != 'html') OR ($t[0] != "@")) {
|
if (($type != 'html') OR ($t[0] != "@"))
|
||||||
xml::add_element($doc, $entry, "category", "", array("scheme" => "X-DFRN:".$t[0].":".$t[1], "term" => $t[2]));
|
xml::add_element($doc, $entry, "category", "", array("scheme" => "X-DFRN:".$t[0].":".$t[1], "term" => $t[2]));
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($tags)) {
|
if(count($tags))
|
||||||
foreach ($tags as $t) {
|
foreach($tags as $t)
|
||||||
if ($t[0] == "@") {
|
if ($t[0] == "@")
|
||||||
$mentioned[$t[1]] = $t[1];
|
$mentioned[$t[1]] = $t[1];
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($mentioned AS $mention) {
|
foreach ($mentioned AS $mention) {
|
||||||
$r = q("SELECT `forum`, `prv` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s'",
|
$r = q("SELECT `forum`, `prv` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s'",
|
||||||
intval($owner["uid"]),
|
intval($owner["uid"]),
|
||||||
dbesc(normalise_link($mention)));
|
dbesc(normalise_link($mention)));
|
||||||
|
if ($r[0]["forum"] OR $r[0]["prv"])
|
||||||
if (!dbm::is_result($r)) {
|
|
||||||
/// @TODO Maybe some logging?
|
|
||||||
killme();
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($r[0]["forum"] OR $r[0]["prv"]) {
|
|
||||||
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
||||||
"ostatus:object-type" => ACTIVITY_OBJ_GROUP,
|
"ostatus:object-type" => ACTIVITY_OBJ_GROUP,
|
||||||
"href" => $mention));
|
"href" => $mention));
|
||||||
} else {
|
else
|
||||||
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
||||||
"ostatus:object-type" => ACTIVITY_OBJ_PERSON,
|
"ostatus:object-type" => ACTIVITY_OBJ_PERSON,
|
||||||
"href" => $mention));
|
"href" => $mention));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self::get_attachment($doc, $entry, $item);
|
self::get_attachment($doc, $entry, $item);
|
||||||
|
|
@ -948,7 +873,6 @@ class dfrn {
|
||||||
* @param bool $dissolve (to be documented)
|
* @param bool $dissolve (to be documented)
|
||||||
*
|
*
|
||||||
* @return int Deliver status. -1 means an error.
|
* @return int Deliver status. -1 means an error.
|
||||||
* @todo Add array type-hint for $owner, $contact
|
|
||||||
*/
|
*/
|
||||||
public static function deliver($owner,$contact,$atom, $dissolve = false) {
|
public static function deliver($owner,$contact,$atom, $dissolve = false) {
|
||||||
|
|
||||||
|
|
@ -956,20 +880,16 @@ class dfrn {
|
||||||
|
|
||||||
$idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']);
|
$idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']);
|
||||||
|
|
||||||
if ($contact['duplex'] && $contact['dfrn-id']) {
|
if($contact['duplex'] && $contact['dfrn-id'])
|
||||||
$idtosend = '0:' . $orig_id;
|
$idtosend = '0:' . $orig_id;
|
||||||
}
|
if($contact['duplex'] && $contact['issued-id'])
|
||||||
if ($contact['duplex'] && $contact['issued-id']) {
|
|
||||||
$idtosend = '1:' . $orig_id;
|
$idtosend = '1:' . $orig_id;
|
||||||
}
|
|
||||||
|
|
||||||
$rino = get_config('system','rino_encrypt');
|
$rino = get_config('system','rino_encrypt');
|
||||||
$rino = intval($rino);
|
$rino = intval($rino);
|
||||||
|
|
||||||
// use RINO1 if mcrypt isn't installed and RINO2 was selected
|
// use RINO1 if mcrypt isn't installed and RINO2 was selected
|
||||||
if ($rino == 2 and !function_exists('mcrypt_create_iv')) {
|
if ($rino==2 and !function_exists('mcrypt_create_iv')) $rino=1;
|
||||||
$rino = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger("Local rino version: ". $rino, LOGGER_DEBUG);
|
logger("Local rino version: ". $rino, LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
@ -1008,11 +928,10 @@ class dfrn {
|
||||||
|
|
||||||
logger('dfrn_deliver: ' . $xml, LOGGER_DATA);
|
logger('dfrn_deliver: ' . $xml, LOGGER_DATA);
|
||||||
|
|
||||||
if (! $xml) {
|
if(! $xml)
|
||||||
return 3;
|
return 3;
|
||||||
}
|
|
||||||
|
|
||||||
if (strpos($xml,'<?xml') === false) {
|
if(strpos($xml,'<?xml') === false) {
|
||||||
logger('dfrn_deliver: no valid XML returned');
|
logger('dfrn_deliver: no valid XML returned');
|
||||||
logger('dfrn_deliver: returned XML: ' . $xml, LOGGER_DATA);
|
logger('dfrn_deliver: returned XML: ' . $xml, LOGGER_DATA);
|
||||||
return 3;
|
return 3;
|
||||||
|
|
@ -1020,9 +939,8 @@ class dfrn {
|
||||||
|
|
||||||
$res = parse_xml_string($xml);
|
$res = parse_xml_string($xml);
|
||||||
|
|
||||||
if ((intval($res->status) != 0) || (! strlen($res->challenge)) || (! strlen($res->dfrn_id))) {
|
if((intval($res->status) != 0) || (! strlen($res->challenge)) || (! strlen($res->dfrn_id)))
|
||||||
return (($res->status) ? $res->status : 3);
|
return (($res->status) ? $res->status : 3);
|
||||||
}
|
|
||||||
|
|
||||||
$postvars = array();
|
$postvars = array();
|
||||||
$sent_dfrn_id = hex2bin((string) $res->dfrn_id);
|
$sent_dfrn_id = hex2bin((string) $res->dfrn_id);
|
||||||
|
|
@ -1034,14 +952,13 @@ class dfrn {
|
||||||
|
|
||||||
logger("Remote rino version: ".$rino_remote_version." for ".$contact["url"], LOGGER_DEBUG);
|
logger("Remote rino version: ".$rino_remote_version." for ".$contact["url"], LOGGER_DEBUG);
|
||||||
|
|
||||||
if ($owner['page-flags'] == PAGE_PRVGROUP) {
|
if($owner['page-flags'] == PAGE_PRVGROUP)
|
||||||
$page = 2;
|
$page = 2;
|
||||||
}
|
|
||||||
|
|
||||||
$final_dfrn_id = '';
|
$final_dfrn_id = '';
|
||||||
|
|
||||||
if ($perm) {
|
if($perm) {
|
||||||
if ((($perm == 'rw') && (! intval($contact['writable'])))
|
if((($perm == 'rw') && (! intval($contact['writable'])))
|
||||||
|| (($perm == 'r') && (intval($contact['writable'])))) {
|
|| (($perm == 'r') && (intval($contact['writable'])))) {
|
||||||
q("update contact set writable = %d where id = %d",
|
q("update contact set writable = %d where id = %d",
|
||||||
intval(($perm == 'rw') ? 1 : 0),
|
intval(($perm == 'rw') ? 1 : 0),
|
||||||
|
|
@ -1051,7 +968,7 @@ class dfrn {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($contact['duplex'] && strlen($contact['pubkey']))
|
if(($contact['duplex'] && strlen($contact['pubkey']))
|
||||||
|| ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))
|
|| ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))
|
||||||
|| ($contact['rel'] == CONTACT_IS_SHARING && strlen($contact['pubkey']))) {
|
|| ($contact['rel'] == CONTACT_IS_SHARING && strlen($contact['pubkey']))) {
|
||||||
openssl_public_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['pubkey']);
|
openssl_public_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['pubkey']);
|
||||||
|
|
@ -1063,11 +980,10 @@ class dfrn {
|
||||||
|
|
||||||
$final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
|
$final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
|
||||||
|
|
||||||
if (strpos($final_dfrn_id,':') == 1) {
|
if(strpos($final_dfrn_id,':') == 1)
|
||||||
$final_dfrn_id = substr($final_dfrn_id,2);
|
$final_dfrn_id = substr($final_dfrn_id,2);
|
||||||
}
|
|
||||||
|
|
||||||
if ($final_dfrn_id != $orig_id) {
|
if($final_dfrn_id != $orig_id) {
|
||||||
logger('dfrn_deliver: wrong dfrn_id.');
|
logger('dfrn_deliver: wrong dfrn_id.');
|
||||||
// did not decode properly - cannot trust this site
|
// did not decode properly - cannot trust this site
|
||||||
return 3;
|
return 3;
|
||||||
|
|
@ -1075,12 +991,11 @@ class dfrn {
|
||||||
|
|
||||||
$postvars['dfrn_id'] = $idtosend;
|
$postvars['dfrn_id'] = $idtosend;
|
||||||
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
|
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
|
||||||
if ($dissolve) {
|
if($dissolve)
|
||||||
$postvars['dissolve'] = '1';
|
$postvars['dissolve'] = '1';
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ((($contact['rel']) && ($contact['rel'] != CONTACT_IS_SHARING) && (! $contact['blocked'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) {
|
if((($contact['rel']) && ($contact['rel'] != CONTACT_IS_SHARING) && (! $contact['blocked'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) {
|
||||||
$postvars['data'] = $atom;
|
$postvars['data'] = $atom;
|
||||||
$postvars['perm'] = 'rw';
|
$postvars['perm'] = 'rw';
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1090,12 +1005,11 @@ class dfrn {
|
||||||
|
|
||||||
$postvars['ssl_policy'] = $ssl_policy;
|
$postvars['ssl_policy'] = $ssl_policy;
|
||||||
|
|
||||||
if ($page) {
|
if($page)
|
||||||
$postvars['page'] = $page;
|
$postvars['page'] = $page;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ($rino > 0 && $rino_remote_version > 0 && (! $dissolve)) {
|
if($rino>0 && $rino_remote_version>0 && (! $dissolve)) {
|
||||||
logger('rino version: '. $rino_remote_version);
|
logger('rino version: '. $rino_remote_version);
|
||||||
|
|
||||||
switch($rino_remote_version) {
|
switch($rino_remote_version) {
|
||||||
|
|
@ -1133,25 +1047,23 @@ class dfrn {
|
||||||
$postvars['rino'] = $rino_remote_version;
|
$postvars['rino'] = $rino_remote_version;
|
||||||
$postvars['data'] = bin2hex($data);
|
$postvars['data'] = bin2hex($data);
|
||||||
|
|
||||||
//logger('rino: sent key = ' . $key, LOGGER_DEBUG);
|
#logger('rino: sent key = ' . $key, LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
||||||
if ($dfrn_version >= 2.1) {
|
if($dfrn_version >= 2.1) {
|
||||||
if (($contact['duplex'] && strlen($contact['pubkey']))
|
if(($contact['duplex'] && strlen($contact['pubkey']))
|
||||||
|| ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))
|
|| ($owner['page-flags'] == PAGE_COMMUNITY && strlen($contact['pubkey']))
|
||||||
|| ($contact['rel'] == CONTACT_IS_SHARING && strlen($contact['pubkey']))) {
|
|| ($contact['rel'] == CONTACT_IS_SHARING && strlen($contact['pubkey'])))
|
||||||
|
|
||||||
openssl_public_encrypt($key,$postvars['key'],$contact['pubkey']);
|
openssl_public_encrypt($key,$postvars['key'],$contact['pubkey']);
|
||||||
} else {
|
else
|
||||||
openssl_private_encrypt($key,$postvars['key'],$contact['prvkey']);
|
openssl_private_encrypt($key,$postvars['key'],$contact['prvkey']);
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (($contact['duplex'] && strlen($contact['prvkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) {
|
if(($contact['duplex'] && strlen($contact['prvkey'])) || ($owner['page-flags'] == PAGE_COMMUNITY))
|
||||||
openssl_private_encrypt($key,$postvars['key'],$contact['prvkey']);
|
openssl_private_encrypt($key,$postvars['key'],$contact['prvkey']);
|
||||||
} else {
|
else
|
||||||
openssl_public_encrypt($key,$postvars['key'],$contact['pubkey']);
|
openssl_public_encrypt($key,$postvars['key'],$contact['pubkey']);
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1176,13 +1088,12 @@ class dfrn {
|
||||||
return -10;
|
return -10;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strpos($xml,'<?xml') === false) {
|
if(strpos($xml,'<?xml') === false) {
|
||||||
logger('dfrn_deliver: phase 2: no valid XML returned');
|
logger('dfrn_deliver: phase 2: no valid XML returned');
|
||||||
logger('dfrn_deliver: phase 2: returned XML: ' . $xml, LOGGER_DATA);
|
logger('dfrn_deliver: phase 2: returned XML: ' . $xml, LOGGER_DATA);
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @TODO Really compare with > here? Maybe DateTime (which allows such comparison again) is much safer/correcter
|
|
||||||
if ($contact['term-date'] > NULL_DATE) {
|
if ($contact['term-date'] > NULL_DATE) {
|
||||||
logger("dfrn_deliver: $url back from the dead - removing mark for death");
|
logger("dfrn_deliver: $url back from the dead - removing mark for death");
|
||||||
require_once('include/Contact.php');
|
require_once('include/Contact.php');
|
||||||
|
|
@ -1199,7 +1110,7 @@ class dfrn {
|
||||||
*
|
*
|
||||||
* @param array $contact Contact record
|
* @param array $contact Contact record
|
||||||
* @param string $birthday Birthday of the contact
|
* @param string $birthday Birthday of the contact
|
||||||
* @todo Add array type-hint for $contact
|
*
|
||||||
*/
|
*/
|
||||||
private static function birthday_event($contact, $birthday) {
|
private static function birthday_event($contact, $birthday) {
|
||||||
|
|
||||||
|
|
@ -1243,7 +1154,6 @@ class dfrn {
|
||||||
* @param bool $onlyfetch Should the data only be fetched or should it update the contact record as well
|
* @param bool $onlyfetch Should the data only be fetched or should it update the contact record as well
|
||||||
*
|
*
|
||||||
* @return Returns an array with relevant data of the author
|
* @return Returns an array with relevant data of the author
|
||||||
* @todo Find good type-hints for all parameter
|
|
||||||
*/
|
*/
|
||||||
private static function fetchauthor($xpath, $context, $importer, $element, $onlyfetch, $xml = "") {
|
private static function fetchauthor($xpath, $context, $importer, $element, $onlyfetch, $xml = "") {
|
||||||
|
|
||||||
|
|
@ -1255,15 +1165,13 @@ class dfrn {
|
||||||
`name`, `nick`, `about`, `location`, `keywords`, `xmpp`, `bdyear`, `bd`, `hidden`, `contact-type`
|
`name`, `nick`, `about`, `location`, `keywords`, `xmpp`, `bdyear`, `bd`, `hidden`, `contact-type`
|
||||||
FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` != '%s'",
|
FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` != '%s'",
|
||||||
intval($importer["uid"]), dbesc(normalise_link($author["link"])), dbesc(NETWORK_STATUSNET));
|
intval($importer["uid"]), dbesc(normalise_link($author["link"])), dbesc(NETWORK_STATUSNET));
|
||||||
|
if ($r) {
|
||||||
if (dbm::is_result($r)) {
|
|
||||||
$contact = $r[0];
|
$contact = $r[0];
|
||||||
$author["contact-id"] = $r[0]["id"];
|
$author["contact-id"] = $r[0]["id"];
|
||||||
$author["network"] = $r[0]["network"];
|
$author["network"] = $r[0]["network"];
|
||||||
} else {
|
} else {
|
||||||
if (!$onlyfetch) {
|
if (!$onlyfetch)
|
||||||
logger("Contact ".$author["link"]." wasn't found for user ".$importer["uid"]." XML: ".$xml, LOGGER_DEBUG);
|
logger("Contact ".$author["link"]." wasn't found for user ".$importer["uid"]." XML: ".$xml, LOGGER_DEBUG);
|
||||||
}
|
|
||||||
|
|
||||||
$author["contact-id"] = $importer["id"];
|
$author["contact-id"] = $importer["id"];
|
||||||
$author["network"] = $importer["network"];
|
$author["network"] = $importer["network"];
|
||||||
|
|
@ -1274,81 +1182,66 @@ class dfrn {
|
||||||
$avatarlist = array();
|
$avatarlist = array();
|
||||||
/// @todo check if "avatar" or "photo" would be the best field in the specification
|
/// @todo check if "avatar" or "photo" would be the best field in the specification
|
||||||
$avatars = $xpath->query($element."/atom:link[@rel='avatar']", $context);
|
$avatars = $xpath->query($element."/atom:link[@rel='avatar']", $context);
|
||||||
foreach ($avatars AS $avatar) {
|
foreach($avatars AS $avatar) {
|
||||||
$href = "";
|
$href = "";
|
||||||
$width = 0;
|
$width = 0;
|
||||||
foreach ($avatar->attributes AS $attributes) {
|
foreach($avatar->attributes AS $attributes) {
|
||||||
/// @TODO Rewrite these similar if () to one switch
|
if ($attributes->name == "href")
|
||||||
if ($attributes->name == "href") {
|
|
||||||
$href = $attributes->textContent;
|
$href = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "width")
|
||||||
if ($attributes->name == "width") {
|
|
||||||
$width = $attributes->textContent;
|
$width = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "updated")
|
||||||
if ($attributes->name == "updated") {
|
|
||||||
$contact["avatar-date"] = $attributes->textContent;
|
$contact["avatar-date"] = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (($width > 0) AND ($href != "")) {
|
if (($width > 0) AND ($href != ""))
|
||||||
$avatarlist[$width] = $href;
|
$avatarlist[$width] = $href;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (count($avatarlist) > 0) {
|
if (count($avatarlist) > 0) {
|
||||||
krsort($avatarlist);
|
krsort($avatarlist);
|
||||||
$author["avatar"] = current($avatarlist);
|
$author["avatar"] = current($avatarlist);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dbm::is_result($r) AND !$onlyfetch) {
|
if ($r AND !$onlyfetch) {
|
||||||
logger("Check if contact details for contact ".$r[0]["id"]." (".$r[0]["nick"].") have to be updated.", LOGGER_DEBUG);
|
logger("Check if contact details for contact ".$r[0]["id"]." (".$r[0]["nick"].") have to be updated.", LOGGER_DEBUG);
|
||||||
|
|
||||||
$poco = array("url" => $contact["url"]);
|
$poco = array("url" => $contact["url"]);
|
||||||
|
|
||||||
// When was the last change to name or uri?
|
// When was the last change to name or uri?
|
||||||
$name_element = $xpath->query($element."/atom:name", $context)->item(0);
|
$name_element = $xpath->query($element."/atom:name", $context)->item(0);
|
||||||
foreach ($name_element->attributes AS $attributes) {
|
foreach($name_element->attributes AS $attributes)
|
||||||
if ($attributes->name == "updated") {
|
if ($attributes->name == "updated")
|
||||||
$poco["name-date"] = $attributes->textContent;
|
$poco["name-date"] = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$link_element = $xpath->query($element."/atom:link", $context)->item(0);
|
$link_element = $xpath->query($element."/atom:link", $context)->item(0);
|
||||||
foreach ($link_element->attributes AS $attributes) {
|
foreach($link_element->attributes AS $attributes)
|
||||||
if ($attributes->name == "updated") {
|
if ($attributes->name == "updated")
|
||||||
$poco["uri-date"] = $attributes->textContent;
|
$poco["uri-date"] = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update contact data
|
// Update contact data
|
||||||
$value = $xpath->evaluate($element."/dfrn:handle/text()", $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate($element."/dfrn:handle/text()", $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$poco["addr"] = $value;
|
$poco["addr"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate($element."/poco:displayName/text()", $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate($element."/poco:displayName/text()", $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$poco["name"] = $value;
|
$poco["name"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate($element."/poco:preferredUsername/text()", $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate($element."/poco:preferredUsername/text()", $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$poco["nick"] = $value;
|
$poco["nick"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate($element."/poco:note/text()", $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate($element."/poco:note/text()", $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$poco["about"] = $value;
|
$poco["about"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate($element."/poco:address/poco:formatted/text()", $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate($element."/poco:address/poco:formatted/text()", $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$poco["location"] = $value;
|
$poco["location"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
/// @todo Only search for elements with "poco:type" = "xmpp"
|
/// @todo Only search for elements with "poco:type" = "xmpp"
|
||||||
$value = $xpath->evaluate($element."/poco:ims/poco:value/text()", $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate($element."/poco:ims/poco:value/text()", $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$poco["xmpp"] = $value;
|
$poco["xmpp"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
/// @todo Add support for the following fields that we don't support by now in the contact table:
|
/// @todo Add support for the following fields that we don't support by now in the contact table:
|
||||||
/// - poco:utcOffset
|
/// - poco:utcOffset
|
||||||
|
|
@ -1364,20 +1257,17 @@ class dfrn {
|
||||||
|
|
||||||
// If the contact isn't searchable then set the contact to "hidden".
|
// If the contact isn't searchable then set the contact to "hidden".
|
||||||
// Problem: This can be manually overridden by the user.
|
// Problem: This can be manually overridden by the user.
|
||||||
if ($hide) {
|
if ($hide)
|
||||||
$contact["hidden"] = true;
|
$contact["hidden"] = true;
|
||||||
}
|
|
||||||
|
|
||||||
// Save the keywords into the contact table
|
// Save the keywords into the contact table
|
||||||
$tags = array();
|
$tags = array();
|
||||||
$tagelements = $xpath->evaluate($element."/poco:tags/text()", $context);
|
$tagelements = $xpath->evaluate($element."/poco:tags/text()", $context);
|
||||||
foreach ($tagelements AS $tag) {
|
foreach($tagelements AS $tag)
|
||||||
$tags[$tag->nodeValue] = $tag->nodeValue;
|
$tags[$tag->nodeValue] = $tag->nodeValue;
|
||||||
}
|
|
||||||
|
|
||||||
if (count($tags)) {
|
if (count($tags))
|
||||||
$poco["keywords"] = implode(", ", $tags);
|
$poco["keywords"] = implode(", ", $tags);
|
||||||
}
|
|
||||||
|
|
||||||
// "dfrn:birthday" contains the birthday converted to UTC
|
// "dfrn:birthday" contains the birthday converted to UTC
|
||||||
$old_bdyear = $contact["bdyear"];
|
$old_bdyear = $contact["bdyear"];
|
||||||
|
|
@ -1407,15 +1297,13 @@ class dfrn {
|
||||||
|
|
||||||
$contact = array_merge($contact, $poco);
|
$contact = array_merge($contact, $poco);
|
||||||
|
|
||||||
if ($old_bdyear != $contact["bdyear"]) {
|
if ($old_bdyear != $contact["bdyear"])
|
||||||
self::birthday_event($contact, $birthday);
|
self::birthday_event($contact, $birthday);
|
||||||
}
|
|
||||||
|
|
||||||
// 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["id"]);
|
unset($fields["id"]);
|
||||||
unset($fields["uid"]);
|
unset($fields["uid"]);
|
||||||
|
|
@ -1426,19 +1314,17 @@ class dfrn {
|
||||||
|
|
||||||
// Update check for this field has to be done differently
|
// Update check for this field has to be done differently
|
||||||
$datefields = array("name-date", "uri-date");
|
$datefields = array("name-date", "uri-date");
|
||||||
foreach ($datefields AS $field) {
|
foreach ($datefields AS $field)
|
||||||
if (strtotime($contact[$field]) > strtotime($r[0][$field])) {
|
if (strtotime($contact[$field]) > strtotime($r[0][$field])) {
|
||||||
logger("Difference for contact ".$contact["id"]." in field '".$field."'. New value: '".$contact[$field]."', old value '".$r[0][$field]."'", LOGGER_DEBUG);
|
logger("Difference for contact ".$contact["id"]." in field '".$field."'. New value: '".$contact[$field]."', old value '".$r[0][$field]."'", LOGGER_DEBUG);
|
||||||
$update = true;
|
$update = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
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["id"]." in field '".$field."'. New value: '".$contact[$field]."', old value '".$r[0][$field]."'", LOGGER_DEBUG);
|
logger("Difference for contact ".$contact["id"]." in field '".$field."'. New value: '".$contact[$field]."', old value '".$r[0][$field]."'", LOGGER_DEBUG);
|
||||||
$update = true;
|
$update = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($update) {
|
if ($update) {
|
||||||
logger("Update contact data for contact ".$contact["id"]." (".$contact["nick"].")", LOGGER_DEBUG);
|
logger("Update contact data for contact ".$contact["id"]." (".$contact["nick"].")", LOGGER_DEBUG);
|
||||||
|
|
@ -1480,12 +1366,10 @@ class dfrn {
|
||||||
* @param text $element element name
|
* @param text $element element name
|
||||||
*
|
*
|
||||||
* @return string XML string
|
* @return string XML string
|
||||||
* @todo Find good type-hints for all parameter
|
|
||||||
*/
|
*/
|
||||||
private static function transform_activity($xpath, $activity, $element) {
|
private static function transform_activity($xpath, $activity, $element) {
|
||||||
if (!is_object($activity)) {
|
if (!is_object($activity))
|
||||||
return "";
|
return "";
|
||||||
}
|
|
||||||
|
|
||||||
$obj_doc = new DOMDocument("1.0", "utf-8");
|
$obj_doc = new DOMDocument("1.0", "utf-8");
|
||||||
$obj_doc->formatOutput = true;
|
$obj_doc->formatOutput = true;
|
||||||
|
|
@ -1496,26 +1380,21 @@ class dfrn {
|
||||||
xml::add_element($obj_doc, $obj_element, "type", $activity_type);
|
xml::add_element($obj_doc, $obj_element, "type", $activity_type);
|
||||||
|
|
||||||
$id = $xpath->query("atom:id", $activity)->item(0);
|
$id = $xpath->query("atom:id", $activity)->item(0);
|
||||||
if (is_object($id)) {
|
if (is_object($id))
|
||||||
$obj_element->appendChild($obj_doc->importNode($id, true));
|
$obj_element->appendChild($obj_doc->importNode($id, true));
|
||||||
}
|
|
||||||
|
|
||||||
$title = $xpath->query("atom:title", $activity)->item(0);
|
$title = $xpath->query("atom:title", $activity)->item(0);
|
||||||
if (is_object($title)) {
|
if (is_object($title))
|
||||||
$obj_element->appendChild($obj_doc->importNode($title, true));
|
$obj_element->appendChild($obj_doc->importNode($title, true));
|
||||||
}
|
|
||||||
|
|
||||||
$links = $xpath->query("atom:link", $activity);
|
$links = $xpath->query("atom:link", $activity);
|
||||||
if (is_object($links)) {
|
if (is_object($links))
|
||||||
foreach ($links AS $link) {
|
foreach ($links AS $link)
|
||||||
$obj_element->appendChild($obj_doc->importNode($link, true));
|
$obj_element->appendChild($obj_doc->importNode($link, true));
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$content = $xpath->query("atom:content", $activity)->item(0);
|
$content = $xpath->query("atom:content", $activity)->item(0);
|
||||||
if (is_object($content)) {
|
if (is_object($content))
|
||||||
$obj_element->appendChild($obj_doc->importNode($content, true));
|
$obj_element->appendChild($obj_doc->importNode($content, true));
|
||||||
}
|
|
||||||
|
|
||||||
$obj_doc->appendChild($obj_element);
|
$obj_doc->appendChild($obj_element);
|
||||||
|
|
||||||
|
|
@ -1532,13 +1411,11 @@ class dfrn {
|
||||||
* @param object $xpath XPath object
|
* @param object $xpath XPath object
|
||||||
* @param object $mail mail elements
|
* @param object $mail mail elements
|
||||||
* @param array $importer Record of the importer user mixed with contact of the content
|
* @param array $importer Record of the importer user mixed with contact of the content
|
||||||
* @todo Find good type-hints for all parameter
|
|
||||||
*/
|
*/
|
||||||
private static function process_mail($xpath, $mail, $importer) {
|
private static function process_mail($xpath, $mail, $importer) {
|
||||||
|
|
||||||
logger("Processing mails");
|
logger("Processing mails");
|
||||||
|
|
||||||
/// @TODO Rewrite this to one statement
|
|
||||||
$msg = array();
|
$msg = array();
|
||||||
$msg["uid"] = $importer["importer_uid"];
|
$msg["uid"] = $importer["importer_uid"];
|
||||||
$msg["from-name"] = $xpath->query("dfrn:sender/dfrn:name/text()", $mail)->item(0)->nodeValue;
|
$msg["from-name"] = $xpath->query("dfrn:sender/dfrn:name/text()", $mail)->item(0)->nodeValue;
|
||||||
|
|
@ -1558,7 +1435,7 @@ class dfrn {
|
||||||
$r = dbq("INSERT INTO `mail` (`".implode("`, `", array_keys($msg))."`) VALUES (".implode(", ", array_values($msg)).")");
|
$r = dbq("INSERT INTO `mail` (`".implode("`, `", array_keys($msg))."`) VALUES (".implode(", ", array_values($msg)).")");
|
||||||
|
|
||||||
// send notifications.
|
// send notifications.
|
||||||
/// @TODO Arange this mess
|
|
||||||
$notif_params = array(
|
$notif_params = array(
|
||||||
"type" => NOTIFY_MAIL,
|
"type" => NOTIFY_MAIL,
|
||||||
"notify_flags" => $importer["notify-flags"],
|
"notify_flags" => $importer["notify-flags"],
|
||||||
|
|
@ -1585,14 +1462,12 @@ class dfrn {
|
||||||
* @param object $xpath XPath object
|
* @param object $xpath XPath object
|
||||||
* @param object $suggestion suggestion elements
|
* @param object $suggestion suggestion elements
|
||||||
* @param array $importer Record of the importer user mixed with contact of the content
|
* @param array $importer Record of the importer user mixed with contact of the content
|
||||||
* @todo Find good type-hints for all parameter
|
|
||||||
*/
|
*/
|
||||||
private static function process_suggestion($xpath, $suggestion, $importer) {
|
private static function process_suggestion($xpath, $suggestion, $importer) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
logger("Processing suggestions");
|
logger("Processing suggestions");
|
||||||
|
|
||||||
/// @TODO Rewrite this to one statement
|
|
||||||
$suggest = array();
|
$suggest = array();
|
||||||
$suggest["uid"] = $importer["importer_uid"];
|
$suggest["uid"] = $importer["importer_uid"];
|
||||||
$suggest["cid"] = $importer["id"];
|
$suggest["cid"] = $importer["id"];
|
||||||
|
|
@ -1609,11 +1484,8 @@ class dfrn {
|
||||||
dbesc(normalise_link($suggest["url"])),
|
dbesc(normalise_link($suggest["url"])),
|
||||||
intval($suggest["uid"])
|
intval($suggest["uid"])
|
||||||
);
|
);
|
||||||
|
if (dbm::is_result($r))
|
||||||
if (dbm::is_result($r)) {
|
|
||||||
// Has already friend matching description
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
// Do we already have an fcontact record for this person?
|
// Do we already have an fcontact record for this person?
|
||||||
|
|
||||||
|
|
@ -1631,12 +1503,10 @@ class dfrn {
|
||||||
intval($suggest["uid"]),
|
intval($suggest["uid"]),
|
||||||
intval($fid)
|
intval($fid)
|
||||||
);
|
);
|
||||||
/// @TODO Really abort on valid result??? Maybe missed ! here?
|
if (dbm::is_result($r))
|
||||||
if (dbm::is_result($r)) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!$fid)
|
if(!$fid)
|
||||||
$r = q("INSERT INTO `fcontact` (`name`,`url`,`photo`,`request`) VALUES ('%s', '%s', '%s', '%s')",
|
$r = q("INSERT INTO `fcontact` (`name`,`url`,`photo`,`request`) VALUES ('%s', '%s', '%s', '%s')",
|
||||||
dbesc($suggest["name"]),
|
dbesc($suggest["name"]),
|
||||||
dbesc($suggest["url"]),
|
dbesc($suggest["url"]),
|
||||||
|
|
@ -1648,12 +1518,11 @@ class dfrn {
|
||||||
dbesc($suggest["name"]),
|
dbesc($suggest["name"]),
|
||||||
dbesc($suggest["request"])
|
dbesc($suggest["request"])
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$fid = $r[0]["id"];
|
$fid = $r[0]["id"];
|
||||||
} else {
|
else
|
||||||
// database record did not get created. Quietly give up.
|
// database record did not get created. Quietly give up.
|
||||||
killme();
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$hash = random_string();
|
$hash = random_string();
|
||||||
|
|
@ -1695,13 +1564,11 @@ class dfrn {
|
||||||
* @param object $xpath XPath object
|
* @param object $xpath XPath object
|
||||||
* @param object $relocation relocation elements
|
* @param object $relocation relocation elements
|
||||||
* @param array $importer Record of the importer user mixed with contact of the content
|
* @param array $importer Record of the importer user mixed with contact of the content
|
||||||
* @todo Find good type-hints for all parameter
|
|
||||||
*/
|
*/
|
||||||
private static function process_relocation($xpath, $relocation, $importer) {
|
private static function process_relocation($xpath, $relocation, $importer) {
|
||||||
|
|
||||||
logger("Processing relocations");
|
logger("Processing relocations");
|
||||||
|
|
||||||
/// @TODO Rewrite this to one statement
|
|
||||||
$relocate = array();
|
$relocate = array();
|
||||||
$relocate["uid"] = $importer["importer_uid"];
|
$relocate["uid"] = $importer["importer_uid"];
|
||||||
$relocate["cid"] = $importer["id"];
|
$relocate["cid"] = $importer["id"];
|
||||||
|
|
@ -1718,23 +1585,18 @@ class dfrn {
|
||||||
$relocate["poll"] = $xpath->query("dfrn:poll/text()", $relocation)->item(0)->nodeValue;
|
$relocate["poll"] = $xpath->query("dfrn:poll/text()", $relocation)->item(0)->nodeValue;
|
||||||
$relocate["sitepubkey"] = $xpath->query("dfrn:sitepubkey/text()", $relocation)->item(0)->nodeValue;
|
$relocate["sitepubkey"] = $xpath->query("dfrn:sitepubkey/text()", $relocation)->item(0)->nodeValue;
|
||||||
|
|
||||||
if (($relocate["avatar"] == "") AND ($relocate["photo"] != "")) {
|
if (($relocate["avatar"] == "") AND ($relocate["photo"] != ""))
|
||||||
$relocate["avatar"] = $relocate["photo"];
|
$relocate["avatar"] = $relocate["photo"];
|
||||||
}
|
|
||||||
|
|
||||||
if ($relocate["addr"] == "") {
|
if ($relocate["addr"] == "")
|
||||||
$relocate["addr"] = preg_replace("=(https?://)(.*)/profile/(.*)=ism", "$3@$2", $relocate["url"]);
|
$relocate["addr"] = preg_replace("=(https?://)(.*)/profile/(.*)=ism", "$3@$2", $relocate["url"]);
|
||||||
}
|
|
||||||
|
|
||||||
// update contact
|
// update contact
|
||||||
$r = q("SELECT `photo`, `url` FROM `contact` WHERE `id` = %d AND `uid` = %d;",
|
$r = q("SELECT `photo`, `url` FROM `contact` WHERE `id` = %d AND `uid` = %d;",
|
||||||
intval($importer["id"]),
|
intval($importer["id"]),
|
||||||
intval($importer["importer_uid"]));
|
intval($importer["importer_uid"]));
|
||||||
|
if (!$r)
|
||||||
if (!dbm::is_result($r)) {
|
return false;
|
||||||
/// @todo Don't die quietly
|
|
||||||
killme();
|
|
||||||
}
|
|
||||||
|
|
||||||
$old = $r[0];
|
$old = $r[0];
|
||||||
|
|
||||||
|
|
@ -1790,9 +1652,8 @@ class dfrn {
|
||||||
|
|
||||||
update_contact_avatar($relocate["avatar"], $importer["importer_uid"], $importer["id"], true);
|
update_contact_avatar($relocate["avatar"], $importer["importer_uid"], $importer["id"], true);
|
||||||
|
|
||||||
if ($x === false) {
|
if ($x === false)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
// update items
|
// update items
|
||||||
/// @todo This is an extreme performance killer
|
/// @todo This is an extreme performance killer
|
||||||
|
|
@ -1807,15 +1668,13 @@ class dfrn {
|
||||||
$n, dbesc($f[0]),
|
$n, dbesc($f[0]),
|
||||||
intval($importer["importer_uid"]));
|
intval($importer["importer_uid"]));
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if ($r) {
|
||||||
$x = q("UPDATE `item` SET `%s` = '%s' WHERE `%s` = '%s' AND `uid` = %d",
|
$x = q("UPDATE `item` SET `%s` = '%s' WHERE `%s` = '%s' AND `uid` = %d",
|
||||||
$n, dbesc($f[1]),
|
$n, dbesc($f[1]),
|
||||||
$n, dbesc($f[0]),
|
$n, dbesc($f[0]),
|
||||||
intval($importer["importer_uid"]));
|
intval($importer["importer_uid"]));
|
||||||
|
if ($x === false)
|
||||||
if ($x === false) {
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1841,7 +1700,7 @@ class dfrn {
|
||||||
if (edited_timestamp_is_newer($current, $item)) {
|
if (edited_timestamp_is_newer($current, $item)) {
|
||||||
|
|
||||||
// do not accept (ignore) an earlier edit than one we currently have.
|
// do not accept (ignore) an earlier edit than one we currently have.
|
||||||
if (datetime_convert("UTC","UTC",$item["edited"]) < $current["edited"])
|
if(datetime_convert("UTC","UTC",$item["edited"]) < $current["edited"])
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s', `changed` = '%s' WHERE `uri` = '%s' AND `uid` = %d",
|
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `edited` = '%s', `changed` = '%s' WHERE `uri` = '%s' AND `uid` = %d",
|
||||||
|
|
@ -1858,13 +1717,12 @@ class dfrn {
|
||||||
|
|
||||||
$changed = true;
|
$changed = true;
|
||||||
|
|
||||||
if ($entrytype == DFRN_REPLY_RC) {
|
if ($entrytype == DFRN_REPLY_RC)
|
||||||
proc_run(PRIORITY_HIGH, "include/notifier.php","comment-import", $current["id"]);
|
proc_run(PRIORITY_HIGH, "include/notifier.php","comment-import", $current["id"]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// update last-child if it changes
|
// update last-child if it changes
|
||||||
if ($item["last-child"] AND ($item["last-child"] != $current["last-child"])) {
|
if($item["last-child"] AND ($item["last-child"] != $current["last-child"])) {
|
||||||
$r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d",
|
$r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d",
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc($item["parent-uri"]),
|
dbesc($item["parent-uri"]),
|
||||||
|
|
@ -1892,13 +1750,12 @@ class dfrn {
|
||||||
if ($item["parent-uri"] != $item["uri"]) {
|
if ($item["parent-uri"] != $item["uri"]) {
|
||||||
$community = false;
|
$community = false;
|
||||||
|
|
||||||
if ($importer["page-flags"] == PAGE_COMMUNITY || $importer["page-flags"] == PAGE_PRVGROUP) {
|
if($importer["page-flags"] == PAGE_COMMUNITY || $importer["page-flags"] == PAGE_PRVGROUP) {
|
||||||
$sql_extra = "";
|
$sql_extra = "";
|
||||||
$community = true;
|
$community = true;
|
||||||
logger("possible community action");
|
logger("possible community action");
|
||||||
} else {
|
} else
|
||||||
$sql_extra = " AND `contact`.`self` AND `item`.`wall` ";
|
$sql_extra = " AND `contact`.`self` AND `item`.`wall` ";
|
||||||
}
|
|
||||||
|
|
||||||
// was the top-level post for this action written by somebody on this site?
|
// was the top-level post for this action written by somebody on this site?
|
||||||
// Specifically, the recipient?
|
// Specifically, the recipient?
|
||||||
|
|
@ -1922,9 +1779,8 @@ class dfrn {
|
||||||
dbesc($r[0]["parent-uri"]),
|
dbesc($r[0]["parent-uri"]),
|
||||||
intval($importer["importer_uid"])
|
intval($importer["importer_uid"])
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$is_a_remote_action = true;
|
$is_a_remote_action = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Does this have the characteristics of a community or private group action?
|
// Does this have the characteristics of a community or private group action?
|
||||||
|
|
@ -1932,22 +1788,20 @@ class dfrn {
|
||||||
// valid community action. Also forum_mode makes it valid for sure.
|
// valid community action. Also forum_mode makes it valid for sure.
|
||||||
// If neither, it's not.
|
// If neither, it's not.
|
||||||
|
|
||||||
if ($is_a_remote_action && $community) {
|
if($is_a_remote_action && $community) {
|
||||||
if ((!$r[0]["forum_mode"]) && (!$r[0]["wall"])) {
|
if((!$r[0]["forum_mode"]) && (!$r[0]["wall"])) {
|
||||||
$is_a_remote_action = false;
|
$is_a_remote_action = false;
|
||||||
logger("not a community action");
|
logger("not a community action");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($is_a_remote_action) {
|
if ($is_a_remote_action)
|
||||||
return DFRN_REPLY_RC;
|
return DFRN_REPLY_RC;
|
||||||
} else {
|
else
|
||||||
return DFRN_REPLY;
|
return DFRN_REPLY;
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else
|
||||||
return DFRN_TOP_LEVEL;
|
return DFRN_TOP_LEVEL;
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1960,15 +1814,14 @@ class dfrn {
|
||||||
*/
|
*/
|
||||||
private static function do_poke($item, $importer, $posted_id) {
|
private static function do_poke($item, $importer, $posted_id) {
|
||||||
$verb = urldecode(substr($item["verb"],strpos($item["verb"], "#")+1));
|
$verb = urldecode(substr($item["verb"],strpos($item["verb"], "#")+1));
|
||||||
if (!$verb) {
|
if(!$verb)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
$xo = parse_xml_string($item["object"],false);
|
$xo = parse_xml_string($item["object"],false);
|
||||||
|
|
||||||
if (($xo->type == ACTIVITY_OBJ_PERSON) && ($xo->id)) {
|
if(($xo->type == ACTIVITY_OBJ_PERSON) && ($xo->id)) {
|
||||||
|
|
||||||
// somebody was poked/prodded. Was it me?
|
// somebody was poked/prodded. Was it me?
|
||||||
foreach ($xo->link as $l) {
|
foreach($xo->link as $l) {
|
||||||
$atts = $l->attributes();
|
$atts = $l->attributes();
|
||||||
switch($atts["rel"]) {
|
switch($atts["rel"]) {
|
||||||
case "alternate":
|
case "alternate":
|
||||||
|
|
@ -1979,7 +1832,7 @@ class dfrn {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($Blink && link_compare($Blink,App::get_baseurl()."/profile/".$importer["nickname"])) {
|
if($Blink && link_compare($Blink,App::get_baseurl()."/profile/".$importer["nickname"])) {
|
||||||
|
|
||||||
// send a notification
|
// send a notification
|
||||||
notification(array(
|
notification(array(
|
||||||
|
|
@ -2027,28 +1880,28 @@ class dfrn {
|
||||||
|
|
||||||
// Big question: Do we need these functions? They were part of the "consume_feed" function.
|
// Big question: Do we need these functions? They were part of the "consume_feed" function.
|
||||||
// This function once was responsible for DFRN and OStatus.
|
// This function once was responsible for DFRN and OStatus.
|
||||||
if (activity_match($item["verb"],ACTIVITY_FOLLOW)) {
|
if(activity_match($item["verb"],ACTIVITY_FOLLOW)) {
|
||||||
logger("New follower");
|
logger("New follower");
|
||||||
new_follower($importer, $contact, $item, $nickname);
|
new_follower($importer, $contact, $item, $nickname);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (activity_match($item["verb"],ACTIVITY_UNFOLLOW)) {
|
if(activity_match($item["verb"],ACTIVITY_UNFOLLOW)) {
|
||||||
logger("Lost follower");
|
logger("Lost follower");
|
||||||
lose_follower($importer, $contact, $item);
|
lose_follower($importer, $contact, $item);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (activity_match($item["verb"],ACTIVITY_REQ_FRIEND)) {
|
if(activity_match($item["verb"],ACTIVITY_REQ_FRIEND)) {
|
||||||
logger("New friend request");
|
logger("New friend request");
|
||||||
new_follower($importer, $contact, $item, $nickname, true);
|
new_follower($importer, $contact, $item, $nickname, true);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (activity_match($item["verb"],ACTIVITY_UNFRIEND)) {
|
if(activity_match($item["verb"],ACTIVITY_UNFRIEND)) {
|
||||||
logger("Lost sharer");
|
logger("Lost sharer");
|
||||||
lose_sharer($importer, $contact, $item);
|
lose_sharer($importer, $contact, $item);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (($item["verb"] == ACTIVITY_LIKE)
|
if(($item["verb"] == ACTIVITY_LIKE)
|
||||||
|| ($item["verb"] == ACTIVITY_DISLIKE)
|
|| ($item["verb"] == ACTIVITY_DISLIKE)
|
||||||
|| ($item["verb"] == ACTIVITY_ATTEND)
|
|| ($item["verb"] == ACTIVITY_ATTEND)
|
||||||
|| ($item["verb"] == ACTIVITY_ATTENDNO)
|
|| ($item["verb"] == ACTIVITY_ATTENDNO)
|
||||||
|
|
@ -2064,9 +1917,8 @@ class dfrn {
|
||||||
dbesc($item["verb"]),
|
dbesc($item["verb"]),
|
||||||
dbesc($item["parent-uri"])
|
dbesc($item["parent-uri"])
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `author-link` = '%s' AND `verb` = '%s' AND `thr-parent` = '%s' AND NOT `deleted` LIMIT 1",
|
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `author-link` = '%s' AND `verb` = '%s' AND `thr-parent` = '%s' AND NOT `deleted` LIMIT 1",
|
||||||
intval($item["uid"]),
|
intval($item["uid"]),
|
||||||
|
|
@ -2074,31 +1926,28 @@ class dfrn {
|
||||||
dbesc($item["verb"]),
|
dbesc($item["verb"]),
|
||||||
dbesc($item["parent-uri"])
|
dbesc($item["parent-uri"])
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
return false;
|
return false;
|
||||||
}
|
} else
|
||||||
} else {
|
|
||||||
$is_like = false;
|
$is_like = false;
|
||||||
}
|
|
||||||
|
|
||||||
if (($item["verb"] == ACTIVITY_TAG) && ($item["object-type"] == ACTIVITY_OBJ_TAGTERM)) {
|
if(($item["verb"] == ACTIVITY_TAG) && ($item["object-type"] == ACTIVITY_OBJ_TAGTERM)) {
|
||||||
|
|
||||||
$xo = parse_xml_string($item["object"],false);
|
$xo = parse_xml_string($item["object"],false);
|
||||||
$xt = parse_xml_string($item["target"],false);
|
$xt = parse_xml_string($item["target"],false);
|
||||||
|
|
||||||
if ($xt->type == ACTIVITY_OBJ_NOTE) {
|
if($xt->type == ACTIVITY_OBJ_NOTE) {
|
||||||
$r = q("SELECT `id`, `tag` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `id`, `tag` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($xt->id),
|
dbesc($xt->id),
|
||||||
intval($importer["importer_uid"])
|
intval($importer["importer_uid"])
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!dbm::is_result($r)) {
|
if (!dbm::is_result($r))
|
||||||
killme();
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
// extract tag, if not duplicate, add to parent item
|
// extract tag, if not duplicate, add to parent item
|
||||||
if ($xo->content) {
|
if($xo->content) {
|
||||||
if (!(stristr($r[0]["tag"],trim($xo->content)))) {
|
if(!(stristr($r[0]["tag"],trim($xo->content)))) {
|
||||||
q("UPDATE `item` SET `tag` = '%s' WHERE `id` = %d",
|
q("UPDATE `item` SET `tag` = '%s' WHERE `id` = %d",
|
||||||
dbesc($r[0]["tag"] . (strlen($r[0]["tag"]) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'),
|
dbesc($r[0]["tag"] . (strlen($r[0]["tag"]) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'),
|
||||||
intval($r[0]["id"])
|
intval($r[0]["id"])
|
||||||
|
|
@ -2117,7 +1966,6 @@ class dfrn {
|
||||||
*
|
*
|
||||||
* @param object $links link elements
|
* @param object $links link elements
|
||||||
* @param array $item the item record
|
* @param array $item the item record
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private static function parse_links($links, &$item) {
|
private static function parse_links($links, &$item) {
|
||||||
$rel = "";
|
$rel = "";
|
||||||
|
|
@ -2126,23 +1974,17 @@ class dfrn {
|
||||||
$length = "0";
|
$length = "0";
|
||||||
$title = "";
|
$title = "";
|
||||||
foreach ($links AS $link) {
|
foreach ($links AS $link) {
|
||||||
foreach ($link->attributes AS $attributes) {
|
foreach($link->attributes AS $attributes) {
|
||||||
/// @TODO Rewrite these repeated (same) if () statements to a switch()
|
if ($attributes->name == "href")
|
||||||
if ($attributes->name == "href") {
|
|
||||||
$href = $attributes->textContent;
|
$href = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "rel")
|
||||||
if ($attributes->name == "rel") {
|
|
||||||
$rel = $attributes->textContent;
|
$rel = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "type")
|
||||||
if ($attributes->name == "type") {
|
|
||||||
$type = $attributes->textContent;
|
$type = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "length")
|
||||||
if ($attributes->name == "length") {
|
|
||||||
$length = $attributes->textContent;
|
$length = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "title")
|
||||||
if ($attributes->name == "title") {
|
|
||||||
$title = $attributes->textContent;
|
$title = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (($rel != "") AND ($href != ""))
|
if (($rel != "") AND ($href != ""))
|
||||||
switch($rel) {
|
switch($rel) {
|
||||||
|
|
@ -2151,9 +1993,8 @@ class dfrn {
|
||||||
break;
|
break;
|
||||||
case "enclosure":
|
case "enclosure":
|
||||||
$enclosure = $href;
|
$enclosure = $href;
|
||||||
if (strlen($item["attach"])) {
|
if(strlen($item["attach"]))
|
||||||
$item["attach"] .= ",";
|
$item["attach"] .= ",";
|
||||||
}
|
|
||||||
|
|
||||||
$item["attach"] .= '[attach]href="'.$href.'" length="'.$length.'" type="'.$type.'" title="'.$title.'"[/attach]';
|
$item["attach"] .= '[attach]href="'.$href.'" length="'.$length.'" type="'.$type.'" title="'.$title.'"[/attach]';
|
||||||
break;
|
break;
|
||||||
|
|
@ -2168,7 +2009,6 @@ class dfrn {
|
||||||
* @param object $xpath XPath object
|
* @param object $xpath XPath object
|
||||||
* @param object $entry entry elements
|
* @param object $entry entry elements
|
||||||
* @param array $importer Record of the importer user mixed with contact of the content
|
* @param array $importer Record of the importer user mixed with contact of the content
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private static function process_entry($header, $xpath, $entry, $importer) {
|
private static function process_entry($header, $xpath, $entry, $importer) {
|
||||||
|
|
||||||
|
|
@ -2219,7 +2059,7 @@ class dfrn {
|
||||||
$item["body"] = limit_body_size($item["body"]);
|
$item["body"] = limit_body_size($item["body"]);
|
||||||
|
|
||||||
/// @todo Do we really need this check for HTML elements? (It was copied from the old function)
|
/// @todo Do we really need this check for HTML elements? (It was copied from the old function)
|
||||||
if ((strpos($item['body'],'<') !== false) && (strpos($item['body'],'>') !== false)) {
|
if((strpos($item['body'],'<') !== false) && (strpos($item['body'],'>') !== false)) {
|
||||||
|
|
||||||
$item['body'] = reltoabs($item['body'],$base_url);
|
$item['body'] = reltoabs($item['body'],$base_url);
|
||||||
|
|
||||||
|
|
@ -2248,24 +2088,21 @@ class dfrn {
|
||||||
$item["location"] = $xpath->query("dfrn:location/text()", $entry)->item(0)->nodeValue;
|
$item["location"] = $xpath->query("dfrn:location/text()", $entry)->item(0)->nodeValue;
|
||||||
|
|
||||||
$georsspoint = $xpath->query("georss:point", $entry);
|
$georsspoint = $xpath->query("georss:point", $entry);
|
||||||
if ($georsspoint) {
|
if ($georsspoint)
|
||||||
$item["coord"] = $georsspoint->item(0)->nodeValue;
|
$item["coord"] = $georsspoint->item(0)->nodeValue;
|
||||||
}
|
|
||||||
|
|
||||||
$item["private"] = $xpath->query("dfrn:private/text()", $entry)->item(0)->nodeValue;
|
$item["private"] = $xpath->query("dfrn:private/text()", $entry)->item(0)->nodeValue;
|
||||||
|
|
||||||
$item["extid"] = $xpath->query("dfrn:extid/text()", $entry)->item(0)->nodeValue;
|
$item["extid"] = $xpath->query("dfrn:extid/text()", $entry)->item(0)->nodeValue;
|
||||||
|
|
||||||
if ($xpath->query("dfrn:bookmark/text()", $entry)->item(0)->nodeValue == "true") {
|
if ($xpath->query("dfrn:bookmark/text()", $entry)->item(0)->nodeValue == "true")
|
||||||
$item["bookmark"] = true;
|
$item["bookmark"] = true;
|
||||||
}
|
|
||||||
|
|
||||||
$notice_info = $xpath->query("statusnet:notice_info", $entry);
|
$notice_info = $xpath->query("statusnet:notice_info", $entry);
|
||||||
if ($notice_info AND ($notice_info->length > 0)) {
|
if ($notice_info AND ($notice_info->length > 0)) {
|
||||||
foreach ($notice_info->item(0)->attributes AS $attributes) {
|
foreach($notice_info->item(0)->attributes AS $attributes) {
|
||||||
if ($attributes->name == "source") {
|
if ($attributes->name == "source")
|
||||||
$item["app"] = strip_tags($attributes->textContent);
|
$item["app"] = strip_tags($attributes->textContent);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2273,24 +2110,21 @@ class dfrn {
|
||||||
|
|
||||||
// We store the data from "dfrn:diaspora_signature" in a different table, this is done in "item_store"
|
// We store the data from "dfrn:diaspora_signature" in a different table, this is done in "item_store"
|
||||||
$dsprsig = unxmlify($xpath->query("dfrn:diaspora_signature/text()", $entry)->item(0)->nodeValue);
|
$dsprsig = unxmlify($xpath->query("dfrn:diaspora_signature/text()", $entry)->item(0)->nodeValue);
|
||||||
if ($dsprsig != "") {
|
if ($dsprsig != "")
|
||||||
$item["dsprsig"] = $dsprsig;
|
$item["dsprsig"] = $dsprsig;
|
||||||
}
|
|
||||||
|
|
||||||
$item["verb"] = $xpath->query("activity:verb/text()", $entry)->item(0)->nodeValue;
|
$item["verb"] = $xpath->query("activity:verb/text()", $entry)->item(0)->nodeValue;
|
||||||
|
|
||||||
if ($xpath->query("activity:object-type/text()", $entry)->item(0)->nodeValue != "") {
|
if ($xpath->query("activity:object-type/text()", $entry)->item(0)->nodeValue != "")
|
||||||
$item["object-type"] = $xpath->query("activity:object-type/text()", $entry)->item(0)->nodeValue;
|
$item["object-type"] = $xpath->query("activity:object-type/text()", $entry)->item(0)->nodeValue;
|
||||||
}
|
|
||||||
|
|
||||||
$object = $xpath->query("activity:object", $entry)->item(0);
|
$object = $xpath->query("activity:object", $entry)->item(0);
|
||||||
$item["object"] = self::transform_activity($xpath, $object, "object");
|
$item["object"] = self::transform_activity($xpath, $object, "object");
|
||||||
|
|
||||||
if (trim($item["object"]) != "") {
|
if (trim($item["object"]) != "") {
|
||||||
$r = parse_xml_string($item["object"], false);
|
$r = parse_xml_string($item["object"], false);
|
||||||
if (isset($r->type)) {
|
if (isset($r->type))
|
||||||
$item["object-type"] = $r->type;
|
$item["object-type"] = $r->type;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$target = $xpath->query("activity:target", $entry)->item(0);
|
$target = $xpath->query("activity:target", $entry)->item(0);
|
||||||
|
|
@ -2301,14 +2135,12 @@ class dfrn {
|
||||||
foreach ($categories AS $category) {
|
foreach ($categories AS $category) {
|
||||||
$term = "";
|
$term = "";
|
||||||
$scheme = "";
|
$scheme = "";
|
||||||
foreach ($category->attributes AS $attributes) {
|
foreach($category->attributes AS $attributes) {
|
||||||
if ($attributes->name == "term") {
|
if ($attributes->name == "term")
|
||||||
$term = $attributes->textContent;
|
$term = $attributes->textContent;
|
||||||
}
|
|
||||||
|
|
||||||
if ($attributes->name == "scheme") {
|
if ($attributes->name == "scheme")
|
||||||
$scheme = $attributes->textContent;
|
$scheme = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($term != "") AND ($scheme != "")) {
|
if (($term != "") AND ($scheme != "")) {
|
||||||
|
|
@ -2317,9 +2149,8 @@ class dfrn {
|
||||||
$termhash = array_shift($parts);
|
$termhash = array_shift($parts);
|
||||||
$termurl = implode(":", $parts);
|
$termurl = implode(":", $parts);
|
||||||
|
|
||||||
if (strlen($item["tag"])) {
|
if(strlen($item["tag"]))
|
||||||
$item["tag"] .= ",";
|
$item["tag"] .= ",";
|
||||||
}
|
|
||||||
|
|
||||||
$item["tag"] .= $termhash."[url=".$termurl."]".$term."[/url]";
|
$item["tag"] .= $termhash."[url=".$termurl."]".$term."[/url]";
|
||||||
}
|
}
|
||||||
|
|
@ -2330,52 +2161,43 @@ class dfrn {
|
||||||
$enclosure = "";
|
$enclosure = "";
|
||||||
|
|
||||||
$links = $xpath->query("atom:link", $entry);
|
$links = $xpath->query("atom:link", $entry);
|
||||||
if ($links) {
|
if ($links)
|
||||||
self::parse_links($links, $item);
|
self::parse_links($links, $item);
|
||||||
}
|
|
||||||
|
|
||||||
// Is it a reply or a top level posting?
|
// Is it a reply or a top level posting?
|
||||||
$item["parent-uri"] = $item["uri"];
|
$item["parent-uri"] = $item["uri"];
|
||||||
|
|
||||||
$inreplyto = $xpath->query("thr:in-reply-to", $entry);
|
$inreplyto = $xpath->query("thr:in-reply-to", $entry);
|
||||||
if (is_object($inreplyto->item(0))) {
|
if (is_object($inreplyto->item(0)))
|
||||||
foreach ($inreplyto->item(0)->attributes AS $attributes) {
|
foreach($inreplyto->item(0)->attributes AS $attributes)
|
||||||
if ($attributes->name == "ref") {
|
if ($attributes->name == "ref")
|
||||||
$item["parent-uri"] = $attributes->textContent;
|
$item["parent-uri"] = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the type of the item (Top level post, reply or remote reply)
|
// Get the type of the item (Top level post, reply or remote reply)
|
||||||
$entrytype = self::get_entry_type($importer, $item);
|
$entrytype = self::get_entry_type($importer, $item);
|
||||||
|
|
||||||
// Now assign the rest of the values that depend on the type of the message
|
// Now assign the rest of the values that depend on the type of the message
|
||||||
if (in_array($entrytype, array(DFRN_REPLY, DFRN_REPLY_RC))) {
|
if (in_array($entrytype, array(DFRN_REPLY, DFRN_REPLY_RC))) {
|
||||||
if (!isset($item["object-type"])) {
|
if (!isset($item["object-type"]))
|
||||||
$item["object-type"] = ACTIVITY_OBJ_COMMENT;
|
$item["object-type"] = ACTIVITY_OBJ_COMMENT;
|
||||||
}
|
|
||||||
|
|
||||||
if ($item["contact-id"] != $owner["contact-id"]) {
|
if ($item["contact-id"] != $owner["contact-id"])
|
||||||
$item["contact-id"] = $owner["contact-id"];
|
$item["contact-id"] = $owner["contact-id"];
|
||||||
}
|
|
||||||
|
|
||||||
if (($item["network"] != $owner["network"]) AND ($owner["network"] != "")) {
|
if (($item["network"] != $owner["network"]) AND ($owner["network"] != ""))
|
||||||
$item["network"] = $owner["network"];
|
$item["network"] = $owner["network"];
|
||||||
}
|
|
||||||
|
|
||||||
if ($item["contact-id"] != $author["contact-id"]) {
|
if ($item["contact-id"] != $author["contact-id"])
|
||||||
$item["contact-id"] = $author["contact-id"];
|
$item["contact-id"] = $author["contact-id"];
|
||||||
}
|
|
||||||
|
|
||||||
if (($item["network"] != $author["network"]) AND ($author["network"] != "")) {
|
if (($item["network"] != $author["network"]) AND ($author["network"] != ""))
|
||||||
$item["network"] = $author["network"];
|
$item["network"] = $author["network"];
|
||||||
}
|
|
||||||
|
|
||||||
// This code was taken from the old DFRN code
|
// This code was taken from the old DFRN code
|
||||||
// When activated, forums don't work.
|
// When activated, forums don't work.
|
||||||
// And: Why should we disallow commenting by followers?
|
// And: Why should we disallow commenting by followers?
|
||||||
// the behaviour is now similar to the Diaspora part.
|
// the behaviour is now similar to the Diaspora part.
|
||||||
//if ($importer["rel"] == CONTACT_IS_FOLLOWER) {
|
//if($importer["rel"] == CONTACT_IS_FOLLOWER) {
|
||||||
// logger("Contact ".$importer["id"]." is only follower. Quitting", LOGGER_DEBUG);
|
// logger("Contact ".$importer["id"]." is only follower. Quitting", LOGGER_DEBUG);
|
||||||
// return;
|
// return;
|
||||||
//}
|
//}
|
||||||
|
|
@ -2385,15 +2207,14 @@ class dfrn {
|
||||||
$item["type"] = "remote-comment";
|
$item["type"] = "remote-comment";
|
||||||
$item["wall"] = 1;
|
$item["wall"] = 1;
|
||||||
} elseif ($entrytype == DFRN_TOP_LEVEL) {
|
} elseif ($entrytype == DFRN_TOP_LEVEL) {
|
||||||
if (!isset($item["object-type"])) {
|
if (!isset($item["object-type"]))
|
||||||
$item["object-type"] = ACTIVITY_OBJ_NOTE;
|
$item["object-type"] = ACTIVITY_OBJ_NOTE;
|
||||||
}
|
|
||||||
|
|
||||||
// Is it an event?
|
// Is it an event?
|
||||||
if ($item["object-type"] == ACTIVITY_OBJ_EVENT) {
|
if ($item["object-type"] == ACTIVITY_OBJ_EVENT) {
|
||||||
logger("Item ".$item["uri"]." seems to contain an event.", LOGGER_DEBUG);
|
logger("Item ".$item["uri"]." seems to contain an event.", LOGGER_DEBUG);
|
||||||
$ev = bbtoevent($item["body"]);
|
$ev = bbtoevent($item["body"]);
|
||||||
if ((x($ev, "desc") || x($ev, "summary")) && x($ev, "start")) {
|
if((x($ev, "desc") || x($ev, "summary")) && x($ev, "start")) {
|
||||||
logger("Event in item ".$item["uri"]." was found.", LOGGER_DEBUG);
|
logger("Event in item ".$item["uri"]." was found.", LOGGER_DEBUG);
|
||||||
$ev["cid"] = $importer["id"];
|
$ev["cid"] = $importer["id"];
|
||||||
$ev["uid"] = $importer["uid"];
|
$ev["uid"] = $importer["uid"];
|
||||||
|
|
@ -2406,9 +2227,8 @@ class dfrn {
|
||||||
dbesc($item["uri"]),
|
dbesc($item["uri"]),
|
||||||
intval($importer["uid"])
|
intval($importer["uid"])
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$ev["id"] = $r[0]["id"];
|
$ev["id"] = $r[0]["id"];
|
||||||
}
|
|
||||||
|
|
||||||
$event_id = event_store($ev);
|
$event_id = event_store($ev);
|
||||||
logger("Event ".$event_id." was stored", LOGGER_DEBUG);
|
logger("Event ".$event_id." was stored", LOGGER_DEBUG);
|
||||||
|
|
@ -2426,9 +2246,8 @@ class dfrn {
|
||||||
if (dbm::is_result($current)) {
|
if (dbm::is_result($current)) {
|
||||||
if (self::update_content($r[0], $item, $importer, $entrytype))
|
if (self::update_content($r[0], $item, $importer, $entrytype))
|
||||||
logger("Item ".$item["uri"]." was updated.", LOGGER_DEBUG);
|
logger("Item ".$item["uri"]." was updated.", LOGGER_DEBUG);
|
||||||
} else {
|
else
|
||||||
logger("Item ".$item["uri"]." already existed.", LOGGER_DEBUG);
|
logger("Item ".$item["uri"]." already existed.", LOGGER_DEBUG);
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2436,7 +2255,7 @@ class dfrn {
|
||||||
$posted_id = item_store($item);
|
$posted_id = item_store($item);
|
||||||
$parent = 0;
|
$parent = 0;
|
||||||
|
|
||||||
if ($posted_id) {
|
if($posted_id) {
|
||||||
|
|
||||||
logger("Reply from contact ".$item["contact-id"]." was stored with id ".$posted_id, LOGGER_DEBUG);
|
logger("Reply from contact ".$item["contact-id"]." was stored with id ".$posted_id, LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
@ -2451,7 +2270,7 @@ class dfrn {
|
||||||
$parent_uri = $r[0]["parent-uri"];
|
$parent_uri = $r[0]["parent-uri"];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$is_like) {
|
if(!$is_like) {
|
||||||
$r1 = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `uid` = %d AND `parent` = %d",
|
$r1 = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `uid` = %d AND `parent` = %d",
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
intval($importer["importer_uid"]),
|
intval($importer["importer_uid"]),
|
||||||
|
|
@ -2465,7 +2284,7 @@ class dfrn {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($posted_id AND $parent AND ($entrytype == DFRN_REPLY_RC)) {
|
if($posted_id AND $parent AND ($entrytype == DFRN_REPLY_RC)) {
|
||||||
logger("Notifying followers about comment ".$posted_id, LOGGER_DEBUG);
|
logger("Notifying followers about comment ".$posted_id, LOGGER_DEBUG);
|
||||||
proc_run(PRIORITY_HIGH, "include/notifier.php", "comment-import", $posted_id);
|
proc_run(PRIORITY_HIGH, "include/notifier.php", "comment-import", $posted_id);
|
||||||
}
|
}
|
||||||
|
|
@ -2473,7 +2292,7 @@ class dfrn {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else { // $entrytype == DFRN_TOP_LEVEL
|
} else { // $entrytype == DFRN_TOP_LEVEL
|
||||||
if (!link_compare($item["owner-link"],$importer["url"])) {
|
if(!link_compare($item["owner-link"],$importer["url"])) {
|
||||||
// The item owner info is not our contact. It's OK and is to be expected if this is a tgroup delivery,
|
// The item owner info is not our contact. It's OK and is to be expected if this is a tgroup delivery,
|
||||||
// but otherwise there's a possible data mixup on the sender's system.
|
// but otherwise there's a possible data mixup on the sender's system.
|
||||||
// the tgroup delivery code called from item_store will correct it if it's a forum,
|
// the tgroup delivery code called from item_store will correct it if it's a forum,
|
||||||
|
|
@ -2484,7 +2303,7 @@ class dfrn {
|
||||||
$item["owner-avatar"] = $importer["thumb"];
|
$item["owner-avatar"] = $importer["thumb"];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($importer["rel"] == CONTACT_IS_FOLLOWER) && (!tgroup_check($importer["importer_uid"], $item))) {
|
if(($importer["rel"] == CONTACT_IS_FOLLOWER) && (!tgroup_check($importer["importer_uid"], $item))) {
|
||||||
logger("Contact ".$importer["id"]." is only follower and tgroup check was negative.", LOGGER_DEBUG);
|
logger("Contact ".$importer["id"]." is only follower and tgroup check was negative.", LOGGER_DEBUG);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -2497,7 +2316,7 @@ class dfrn {
|
||||||
|
|
||||||
logger("Item was stored with id ".$posted_id, LOGGER_DEBUG);
|
logger("Item was stored with id ".$posted_id, LOGGER_DEBUG);
|
||||||
|
|
||||||
if (stristr($item["verb"],ACTIVITY_POKE))
|
if(stristr($item["verb"],ACTIVITY_POKE))
|
||||||
self::do_poke($item, $importer, $posted_id);
|
self::do_poke($item, $importer, $posted_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2513,23 +2332,19 @@ class dfrn {
|
||||||
|
|
||||||
logger("Processing deletions");
|
logger("Processing deletions");
|
||||||
|
|
||||||
foreach ($deletion->attributes AS $attributes) {
|
foreach($deletion->attributes AS $attributes) {
|
||||||
if ($attributes->name == "ref") {
|
if ($attributes->name == "ref")
|
||||||
$uri = $attributes->textContent;
|
$uri = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "when")
|
||||||
if ($attributes->name == "when") {
|
|
||||||
$when = $attributes->textContent;
|
$when = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ($when) {
|
if ($when)
|
||||||
$when = datetime_convert("UTC", "UTC", $when, "Y-m-d H:i:s");
|
$when = datetime_convert("UTC", "UTC", $when, "Y-m-d H:i:s");
|
||||||
} else {
|
else
|
||||||
$when = datetime_convert("UTC", "UTC", "now", "Y-m-d H:i:s");
|
$when = datetime_convert("UTC", "UTC", "now", "Y-m-d H:i:s");
|
||||||
}
|
|
||||||
|
|
||||||
if (!$uri OR !$importer["id"]) {
|
if (!$uri OR !$importer["id"])
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
/// @todo Only select the used fields
|
/// @todo Only select the used fields
|
||||||
$r = q("SELECT `item`.*, `contact`.`self` FROM `item` INNER JOIN `contact` on `item`.`contact-id` = `contact`.`id`
|
$r = q("SELECT `item`.*, `contact`.`self` FROM `item` INNER JOIN `contact` on `item`.`contact-id` = `contact`.`id`
|
||||||
|
|
@ -2547,23 +2362,22 @@ class dfrn {
|
||||||
|
|
||||||
$entrytype = self::get_entry_type($importer, $item);
|
$entrytype = self::get_entry_type($importer, $item);
|
||||||
|
|
||||||
if (!$item["deleted"]) {
|
if(!$item["deleted"])
|
||||||
logger('deleting item '.$item["id"].' uri='.$uri, LOGGER_DEBUG);
|
logger('deleting item '.$item["id"].' uri='.$uri, LOGGER_DEBUG);
|
||||||
} else {
|
else
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if ($item["object-type"] == ACTIVITY_OBJ_EVENT) {
|
if($item["object-type"] == ACTIVITY_OBJ_EVENT) {
|
||||||
logger("Deleting event ".$item["event-id"], LOGGER_DEBUG);
|
logger("Deleting event ".$item["event-id"], LOGGER_DEBUG);
|
||||||
event_delete($item["event-id"]);
|
event_delete($item["event-id"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($item["verb"] == ACTIVITY_TAG) && ($item["object-type"] == ACTIVITY_OBJ_TAGTERM)) {
|
if(($item["verb"] == ACTIVITY_TAG) && ($item["object-type"] == ACTIVITY_OBJ_TAGTERM)) {
|
||||||
|
|
||||||
$xo = parse_xml_string($item["object"],false);
|
$xo = parse_xml_string($item["object"],false);
|
||||||
$xt = parse_xml_string($item["target"],false);
|
$xt = parse_xml_string($item["target"],false);
|
||||||
|
|
||||||
if ($xt->type == ACTIVITY_OBJ_NOTE) {
|
if($xt->type == ACTIVITY_OBJ_NOTE) {
|
||||||
$i = q("SELECT `id`, `contact-id`, `tag` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
$i = q("SELECT `id`, `contact-id`, `tag` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($xt->id),
|
dbesc($xt->id),
|
||||||
intval($importer["importer_uid"])
|
intval($importer["importer_uid"])
|
||||||
|
|
@ -2576,18 +2390,15 @@ class dfrn {
|
||||||
$author_remove = (($item["origin"] && $item["self"]) ? true : false);
|
$author_remove = (($item["origin"] && $item["self"]) ? true : false);
|
||||||
$author_copy = (($item["origin"]) ? true : false);
|
$author_copy = (($item["origin"]) ? true : false);
|
||||||
|
|
||||||
if ($owner_remove && $author_copy) {
|
if($owner_remove && $author_copy)
|
||||||
return;
|
return;
|
||||||
}
|
if($author_remove || $owner_remove) {
|
||||||
if ($author_remove || $owner_remove) {
|
|
||||||
$tags = explode(',',$i[0]["tag"]);
|
$tags = explode(',',$i[0]["tag"]);
|
||||||
$newtags = array();
|
$newtags = array();
|
||||||
if (count($tags)) {
|
if(count($tags)) {
|
||||||
foreach ($tags as $tag) {
|
foreach($tags as $tag)
|
||||||
if (trim($tag) !== trim($xo->body)) {
|
if(trim($tag) !== trim($xo->body))
|
||||||
$newtags[] = trim($tag);
|
$newtags[] = trim($tag);
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
q("UPDATE `item` SET `tag` = '%s' WHERE `id` = %d",
|
q("UPDATE `item` SET `tag` = '%s' WHERE `id` = %d",
|
||||||
dbesc(implode(',',$newtags)),
|
dbesc(implode(',',$newtags)),
|
||||||
|
|
@ -2599,7 +2410,7 @@ class dfrn {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($entrytype == DFRN_TOP_LEVEL) {
|
if($entrytype == DFRN_TOP_LEVEL) {
|
||||||
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
|
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s',
|
||||||
`body` = '', `title` = ''
|
`body` = '', `title` = ''
|
||||||
WHERE `parent-uri` = '%s' AND `uid` = %d",
|
WHERE `parent-uri` = '%s' AND `uid` = %d",
|
||||||
|
|
@ -2623,7 +2434,7 @@ class dfrn {
|
||||||
create_tags_from_itemuri($uri, $importer["uid"]);
|
create_tags_from_itemuri($uri, $importer["uid"]);
|
||||||
create_files_from_itemuri($uri, $importer["uid"]);
|
create_files_from_itemuri($uri, $importer["uid"]);
|
||||||
update_thread_uri($uri, $importer["importer_uid"]);
|
update_thread_uri($uri, $importer["importer_uid"]);
|
||||||
if ($item["last-child"]) {
|
if($item["last-child"]) {
|
||||||
// ensure that last-child is set in case the comment that had it just got wiped.
|
// ensure that last-child is set in case the comment that had it just got wiped.
|
||||||
q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
|
q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
|
|
@ -2644,7 +2455,7 @@ class dfrn {
|
||||||
}
|
}
|
||||||
// if this is a relayed delete, propagate it to other recipients
|
// if this is a relayed delete, propagate it to other recipients
|
||||||
|
|
||||||
if ($entrytype == DFRN_REPLY_RC) {
|
if($entrytype == DFRN_REPLY_RC) {
|
||||||
logger("Notifying followers about deletion of post ".$item["id"], LOGGER_DEBUG);
|
logger("Notifying followers about deletion of post ".$item["id"], LOGGER_DEBUG);
|
||||||
proc_run(PRIORITY_HIGH, "include/notifier.php","drop", $item["id"]);
|
proc_run(PRIORITY_HIGH, "include/notifier.php","drop", $item["id"]);
|
||||||
}
|
}
|
||||||
|
|
@ -2664,7 +2475,7 @@ class dfrn {
|
||||||
if ($xml == "")
|
if ($xml == "")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ($importer["readonly"]) {
|
if($importer["readonly"]) {
|
||||||
// We aren't receiving stuff from this person. But we will quietly ignore them
|
// We aren't receiving stuff from this person. But we will quietly ignore them
|
||||||
// rather than a blatant "go away" message.
|
// rather than a blatant "go away" message.
|
||||||
logger('ignoring contact '.$importer["id"]);
|
logger('ignoring contact '.$importer["id"]);
|
||||||
|
|
@ -2697,14 +2508,12 @@ class dfrn {
|
||||||
// Update the contact table if the data has changed
|
// Update the contact table if the data has changed
|
||||||
|
|
||||||
// The "atom:author" is only present in feeds
|
// The "atom:author" is only present in feeds
|
||||||
if ($xpath->query("/atom:feed/atom:author")->length > 0) {
|
if ($xpath->query("/atom:feed/atom:author")->length > 0)
|
||||||
self::fetchauthor($xpath, $doc->firstChild, $importer, "atom:author", false, $xml);
|
self::fetchauthor($xpath, $doc->firstChild, $importer, "atom:author", false, $xml);
|
||||||
}
|
|
||||||
|
|
||||||
// Only the "dfrn:owner" in the head section contains all data
|
// Only the "dfrn:owner" in the head section contains all data
|
||||||
if ($xpath->query("/atom:feed/dfrn:owner")->length > 0) {
|
if ($xpath->query("/atom:feed/dfrn:owner")->length > 0)
|
||||||
self::fetchauthor($xpath, $doc->firstChild, $importer, "dfrn:owner", false, $xml);
|
self::fetchauthor($xpath, $doc->firstChild, $importer, "dfrn:owner", false, $xml);
|
||||||
}
|
|
||||||
|
|
||||||
logger("Import DFRN message for user ".$importer["uid"]." from contact ".$importer["id"], LOGGER_DEBUG);
|
logger("Import DFRN message for user ".$importer["uid"]." from contact ".$importer["id"], LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
@ -2712,50 +2521,43 @@ class dfrn {
|
||||||
if ($xpath->query("/atom:feed/dfrn:account_type")->length > 0) {
|
if ($xpath->query("/atom:feed/dfrn:account_type")->length > 0) {
|
||||||
$accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue);
|
$accounttype = intval($xpath->evaluate("/atom:feed/dfrn:account_type/text()", $context)->item(0)->nodeValue);
|
||||||
|
|
||||||
if ($accounttype != $importer["contact-type"]) {
|
if ($accounttype != $importer["contact-type"])
|
||||||
q("UPDATE `contact` SET `contact-type` = %d WHERE `id` = %d",
|
q("UPDATE `contact` SET `contact-type` = %d WHERE `id` = %d",
|
||||||
intval($accounttype),
|
intval($accounttype),
|
||||||
intval($importer["id"])
|
intval($importer["id"])
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// is it a public forum? Private forums aren't supported with this method
|
// is it a public forum? Private forums aren't supported with this method
|
||||||
// This is deprecated since 3.5.1
|
// This is deprecated since 3.5.1
|
||||||
$forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue);
|
$forum = intval($xpath->evaluate("/atom:feed/dfrn:community/text()", $context)->item(0)->nodeValue);
|
||||||
|
|
||||||
if ($forum != $importer["forum"]) {
|
if ($forum != $importer["forum"])
|
||||||
q("UPDATE `contact` SET `forum` = %d WHERE `forum` != %d AND `id` = %d",
|
q("UPDATE `contact` SET `forum` = %d WHERE `forum` != %d AND `id` = %d",
|
||||||
intval($forum), intval($forum),
|
intval($forum), intval($forum),
|
||||||
intval($importer["id"])
|
intval($importer["id"])
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
$mails = $xpath->query("/atom:feed/dfrn:mail");
|
$mails = $xpath->query("/atom:feed/dfrn:mail");
|
||||||
foreach ($mails AS $mail) {
|
foreach ($mails AS $mail)
|
||||||
self::process_mail($xpath, $mail, $importer);
|
self::process_mail($xpath, $mail, $importer);
|
||||||
}
|
|
||||||
|
|
||||||
$suggestions = $xpath->query("/atom:feed/dfrn:suggest");
|
$suggestions = $xpath->query("/atom:feed/dfrn:suggest");
|
||||||
foreach ($suggestions AS $suggestion) {
|
foreach ($suggestions AS $suggestion)
|
||||||
self::process_suggestion($xpath, $suggestion, $importer);
|
self::process_suggestion($xpath, $suggestion, $importer);
|
||||||
}
|
|
||||||
|
|
||||||
$relocations = $xpath->query("/atom:feed/dfrn:relocate");
|
$relocations = $xpath->query("/atom:feed/dfrn:relocate");
|
||||||
foreach ($relocations AS $relocation) {
|
foreach ($relocations AS $relocation)
|
||||||
self::process_relocation($xpath, $relocation, $importer);
|
self::process_relocation($xpath, $relocation, $importer);
|
||||||
}
|
|
||||||
|
|
||||||
$deletions = $xpath->query("/atom:feed/at:deleted-entry");
|
$deletions = $xpath->query("/atom:feed/at:deleted-entry");
|
||||||
foreach ($deletions AS $deletion) {
|
foreach ($deletions AS $deletion)
|
||||||
self::process_deletion($xpath, $deletion, $importer);
|
self::process_deletion($xpath, $deletion, $importer);
|
||||||
}
|
|
||||||
|
|
||||||
if (!$sort_by_date) {
|
if (!$sort_by_date) {
|
||||||
$entries = $xpath->query("/atom:feed/atom:entry");
|
$entries = $xpath->query("/atom:feed/atom:entry");
|
||||||
foreach ($entries AS $entry) {
|
foreach ($entries AS $entry)
|
||||||
self::process_entry($header, $xpath, $entry, $importer);
|
self::process_entry($header, $xpath, $entry, $importer);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$newentries = array();
|
$newentries = array();
|
||||||
$entries = $xpath->query("/atom:feed/atom:entry");
|
$entries = $xpath->query("/atom:feed/atom:entry");
|
||||||
|
|
@ -2767,9 +2569,8 @@ class dfrn {
|
||||||
// Now sort after the publishing date
|
// Now sort after the publishing date
|
||||||
ksort($newentries);
|
ksort($newentries);
|
||||||
|
|
||||||
foreach ($newentries AS $entry) {
|
foreach ($newentries AS $entry)
|
||||||
self::process_entry($header, $xpath, $entry, $importer);
|
self::process_entry($header, $xpath, $entry, $importer);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
logger("Import done for user ".$importer["uid"]." from contact ".$importer["id"], LOGGER_DEBUG);
|
logger("Import done for user ".$importer["uid"]." from contact ".$importer["id"], LOGGER_DEBUG);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ class Diaspora {
|
||||||
|
|
||||||
$servers = explode(",", $serverdata);
|
$servers = explode(",", $serverdata);
|
||||||
|
|
||||||
foreach ($servers AS $server) {
|
foreach($servers AS $server) {
|
||||||
$server = trim($server);
|
$server = trim($server);
|
||||||
$addr = "relay@".str_replace("http://", "", normalise_link($server));
|
$addr = "relay@".str_replace("http://", "", normalise_link($server));
|
||||||
$batch = $server."/receive/public";
|
$batch = $server."/receive/public";
|
||||||
|
|
@ -181,7 +181,7 @@ class Diaspora {
|
||||||
|
|
||||||
$children = $basedom->children('https://joindiaspora.com/protocol');
|
$children = $basedom->children('https://joindiaspora.com/protocol');
|
||||||
|
|
||||||
if ($children->header) {
|
if($children->header) {
|
||||||
$public = true;
|
$public = true;
|
||||||
$author_link = str_replace('acct:','',$children->header->author_id);
|
$author_link = str_replace('acct:','',$children->header->author_id);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -217,11 +217,11 @@ class Diaspora {
|
||||||
|
|
||||||
// figure out where in the DOM tree our data is hiding
|
// figure out where in the DOM tree our data is hiding
|
||||||
|
|
||||||
if ($dom->provenance->data)
|
if($dom->provenance->data)
|
||||||
$base = $dom->provenance;
|
$base = $dom->provenance;
|
||||||
elseif ($dom->env->data)
|
elseif($dom->env->data)
|
||||||
$base = $dom->env;
|
$base = $dom->env;
|
||||||
elseif ($dom->data)
|
elseif($dom->data)
|
||||||
$base = $dom;
|
$base = $dom;
|
||||||
|
|
||||||
if (!$base) {
|
if (!$base) {
|
||||||
|
|
@ -254,7 +254,7 @@ class Diaspora {
|
||||||
$data = base64url_decode($data);
|
$data = base64url_decode($data);
|
||||||
|
|
||||||
|
|
||||||
if ($public)
|
if($public)
|
||||||
$inner_decrypted = $data;
|
$inner_decrypted = $data;
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
|
@ -556,7 +556,7 @@ class Diaspora {
|
||||||
logger("Fetching diaspora key for: ".$handle);
|
logger("Fetching diaspora key for: ".$handle);
|
||||||
|
|
||||||
$r = self::person_by_handle($handle);
|
$r = self::person_by_handle($handle);
|
||||||
if ($r)
|
if($r)
|
||||||
return $r["pubkey"];
|
return $r["pubkey"];
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
|
|
@ -612,7 +612,7 @@ class Diaspora {
|
||||||
*/
|
*/
|
||||||
private static function add_fcontact($arr, $update = false) {
|
private static function add_fcontact($arr, $update = false) {
|
||||||
|
|
||||||
if ($update) {
|
if($update) {
|
||||||
$r = q("UPDATE `fcontact` SET
|
$r = q("UPDATE `fcontact` SET
|
||||||
`name` = '%s',
|
`name` = '%s',
|
||||||
`photo` = '%s',
|
`photo` = '%s',
|
||||||
|
|
@ -796,7 +796,7 @@ class Diaspora {
|
||||||
// perhaps we were already sharing with this person. Now they're sharing with us.
|
// perhaps we were already sharing with this person. Now they're sharing with us.
|
||||||
// That makes us friends.
|
// That makes us friends.
|
||||||
// Normally this should have handled by getting a request - but this could get lost
|
// Normally this should have handled by getting a request - but this could get lost
|
||||||
if ($contact["rel"] == CONTACT_IS_FOLLOWER && in_array($importer["page-flags"], array(PAGE_FREELOVE))) {
|
if($contact["rel"] == CONTACT_IS_FOLLOWER && in_array($importer["page-flags"], array(PAGE_FREELOVE))) {
|
||||||
q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d",
|
q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d",
|
||||||
intval(CONTACT_IS_FRIEND),
|
intval(CONTACT_IS_FRIEND),
|
||||||
intval($contact["id"]),
|
intval($contact["id"]),
|
||||||
|
|
@ -806,12 +806,12 @@ class Diaspora {
|
||||||
logger("defining user ".$contact["nick"]." as friend");
|
logger("defining user ".$contact["nick"]." as friend");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($contact["blocked"]) || ($contact["readonly"]) || ($contact["archive"]))
|
if(($contact["blocked"]) || ($contact["readonly"]) || ($contact["archive"]))
|
||||||
return false;
|
return false;
|
||||||
if ($contact["rel"] == CONTACT_IS_SHARING || $contact["rel"] == CONTACT_IS_FRIEND)
|
if($contact["rel"] == CONTACT_IS_SHARING || $contact["rel"] == CONTACT_IS_FRIEND)
|
||||||
return true;
|
return true;
|
||||||
if ($contact["rel"] == CONTACT_IS_FOLLOWER)
|
if($contact["rel"] == CONTACT_IS_FOLLOWER)
|
||||||
if (($importer["page-flags"] == PAGE_COMMUNITY) OR $is_comment)
|
if(($importer["page-flags"] == PAGE_COMMUNITY) OR $is_comment)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Messages for the global users are always accepted
|
// Messages for the global users are always accepted
|
||||||
|
|
@ -969,7 +969,7 @@ class Diaspora {
|
||||||
logger("Fetch post from ".$source_url, LOGGER_DEBUG);
|
logger("Fetch post from ".$source_url, LOGGER_DEBUG);
|
||||||
|
|
||||||
$envelope = fetch_url($source_url);
|
$envelope = fetch_url($source_url);
|
||||||
if ($envelope) {
|
if($envelope) {
|
||||||
logger("Envelope was fetched.", LOGGER_DEBUG);
|
logger("Envelope was fetched.", LOGGER_DEBUG);
|
||||||
$x = self::verify_magic_envelope($envelope);
|
$x = self::verify_magic_envelope($envelope);
|
||||||
if (!$x)
|
if (!$x)
|
||||||
|
|
@ -985,7 +985,7 @@ class Diaspora {
|
||||||
logger("Fetch post from ".$source_url, LOGGER_DEBUG);
|
logger("Fetch post from ".$source_url, LOGGER_DEBUG);
|
||||||
|
|
||||||
$x = fetch_url($source_url);
|
$x = fetch_url($source_url);
|
||||||
if (!$x)
|
if(!$x)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1042,7 +1042,7 @@ class Diaspora {
|
||||||
FROM `item` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1",
|
FROM `item` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1",
|
||||||
intval($uid), dbesc($guid));
|
intval($uid), dbesc($guid));
|
||||||
|
|
||||||
if (!$r) {
|
if(!$r) {
|
||||||
$result = self::store_by_guid($guid, $contact["url"], $uid);
|
$result = self::store_by_guid($guid, $contact["url"], $uid);
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
|
|
@ -1303,7 +1303,7 @@ class Diaspora {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we are the origin of the parent we store the original data and notify our followers
|
// If we are the origin of the parent we store the original data and notify our followers
|
||||||
if ($message_id AND $parent_item["origin"]) {
|
if($message_id AND $parent_item["origin"]) {
|
||||||
|
|
||||||
// Formerly we stored the signed text, the signature and the author in different fields.
|
// Formerly we stored the signed text, the signature and the author in different fields.
|
||||||
// We now store the raw data so that we are more flexible.
|
// We now store the raw data so that we are more flexible.
|
||||||
|
|
@ -1480,7 +1480,7 @@ class Diaspora {
|
||||||
intval($importer["uid"]),
|
intval($importer["uid"]),
|
||||||
dbesc($guid)
|
dbesc($guid)
|
||||||
);
|
);
|
||||||
if ($c)
|
if($c)
|
||||||
$conversation = $c[0];
|
$conversation = $c[0];
|
||||||
else {
|
else {
|
||||||
$r = q("INSERT INTO `conv` (`uid`, `guid`, `creator`, `created`, `updated`, `subject`, `recips`)
|
$r = q("INSERT INTO `conv` (`uid`, `guid`, `creator`, `created`, `updated`, `subject`, `recips`)
|
||||||
|
|
@ -1493,13 +1493,13 @@ class Diaspora {
|
||||||
dbesc($subject),
|
dbesc($subject),
|
||||||
dbesc($participants)
|
dbesc($participants)
|
||||||
);
|
);
|
||||||
if ($r)
|
if($r)
|
||||||
$c = q("SELECT * FROM `conv` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1",
|
$c = q("SELECT * FROM `conv` WHERE `uid` = %d AND `guid` = '%s' LIMIT 1",
|
||||||
intval($importer["uid"]),
|
intval($importer["uid"]),
|
||||||
dbesc($guid)
|
dbesc($guid)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($c)
|
if($c)
|
||||||
$conversation = $c[0];
|
$conversation = $c[0];
|
||||||
}
|
}
|
||||||
if (!$conversation) {
|
if (!$conversation) {
|
||||||
|
|
@ -1507,7 +1507,7 @@ class Diaspora {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($messages as $mesg)
|
foreach($messages as $mesg)
|
||||||
self::receive_conversation_message($importer, $contact, $data, $msg, $mesg, $conversation);
|
self::receive_conversation_message($importer, $contact, $data, $msg, $mesg, $conversation);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -1637,7 +1637,7 @@ class Diaspora {
|
||||||
logger("Stored like ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG);
|
logger("Stored like ".$datarray["guid"]." with message id ".$message_id, LOGGER_DEBUG);
|
||||||
|
|
||||||
// If we are the origin of the parent we store the original data and notify our followers
|
// If we are the origin of the parent we store the original data and notify our followers
|
||||||
if ($message_id AND $parent_item["origin"]) {
|
if($message_id AND $parent_item["origin"]) {
|
||||||
|
|
||||||
// Formerly we stored the signed text, the signature and the author in different fields.
|
// Formerly we stored the signed text, the signature and the author in different fields.
|
||||||
// We now store the raw data so that we are more flexible.
|
// We now store the raw data so that we are more flexible.
|
||||||
|
|
@ -1812,10 +1812,10 @@ class Diaspora {
|
||||||
$handle_parts = explode("@", $author);
|
$handle_parts = explode("@", $author);
|
||||||
$nick = $handle_parts[0];
|
$nick = $handle_parts[0];
|
||||||
|
|
||||||
if ($name === "")
|
if($name === "")
|
||||||
$name = $handle_parts[0];
|
$name = $handle_parts[0];
|
||||||
|
|
||||||
if ( preg_match("|^https?://|", $image_url) === 0)
|
if( preg_match("|^https?://|", $image_url) === 0)
|
||||||
$image_url = "http://".$handle_parts[1].$image_url;
|
$image_url = "http://".$handle_parts[1].$image_url;
|
||||||
|
|
||||||
update_contact_avatar($image_url, $importer["uid"], $contact["id"]);
|
update_contact_avatar($image_url, $importer["uid"], $contact["id"]);
|
||||||
|
|
@ -1830,7 +1830,7 @@ class Diaspora {
|
||||||
// this is to prevent multiple birthday notifications in a single year
|
// this is to prevent multiple birthday notifications in a single year
|
||||||
// if we already have a stored birthday and the 'm-d' part hasn't changed, preserve the entry, which will preserve the notify year
|
// if we already have a stored birthday and the 'm-d' part hasn't changed, preserve the entry, which will preserve the notify year
|
||||||
|
|
||||||
if (substr($birthday,5) === substr($contact["bd"],5))
|
if(substr($birthday,5) === substr($contact["bd"],5))
|
||||||
$birthday = $contact["bd"];
|
$birthday = $contact["bd"];
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `name-date` = '%s', `bd` = '%s',
|
$r = q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `name-date` = '%s', `bd` = '%s',
|
||||||
|
|
@ -1876,7 +1876,7 @@ class Diaspora {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if ($contact["rel"] == CONTACT_IS_FOLLOWER && in_array($importer["page-flags"], array(PAGE_FREELOVE))) {
|
if($contact["rel"] == CONTACT_IS_FOLLOWER && in_array($importer["page-flags"], array(PAGE_FREELOVE))) {
|
||||||
q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d",
|
q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d",
|
||||||
intval(CONTACT_IS_FRIEND),
|
intval(CONTACT_IS_FRIEND),
|
||||||
intval($contact["id"]),
|
intval($contact["id"]),
|
||||||
|
|
@ -1889,7 +1889,7 @@ class Diaspora {
|
||||||
intval($importer["uid"])
|
intval($importer["uid"])
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($r && !$r[0]["hide-friends"] && !$contact["hidden"] && intval(get_pconfig($importer["uid"], "system", "post_newfriend"))) {
|
if($r && !$r[0]["hide-friends"] && !$contact["hidden"] && intval(get_pconfig($importer["uid"], "system", "post_newfriend"))) {
|
||||||
|
|
||||||
$self = q("SELECT * FROM `contact` WHERE `self` AND `uid` = %d LIMIT 1",
|
$self = q("SELECT * FROM `contact` WHERE `self` AND `uid` = %d LIMIT 1",
|
||||||
intval($importer["uid"])
|
intval($importer["uid"])
|
||||||
|
|
@ -1897,7 +1897,7 @@ class Diaspora {
|
||||||
|
|
||||||
// they are not CONTACT_IS_FOLLOWER anymore but that's what we have in the array
|
// they are not CONTACT_IS_FOLLOWER anymore but that's what we have in the array
|
||||||
|
|
||||||
if ($self && $contact["rel"] == CONTACT_IS_FOLLOWER) {
|
if($self && $contact["rel"] == CONTACT_IS_FOLLOWER) {
|
||||||
|
|
||||||
$arr = array();
|
$arr = array();
|
||||||
$arr["uri"] = $arr["parent-uri"] = item_new_uri($a->get_hostname(), $importer["uid"]);
|
$arr["uri"] = $arr["parent-uri"] = item_new_uri($a->get_hostname(), $importer["uid"]);
|
||||||
|
|
@ -1928,7 +1928,7 @@ class Diaspora {
|
||||||
$arr["deny_gid"] = $user[0]["deny_gid"];
|
$arr["deny_gid"] = $user[0]["deny_gid"];
|
||||||
|
|
||||||
$i = item_store($arr);
|
$i = item_store($arr);
|
||||||
if ($i)
|
if($i)
|
||||||
proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
|
proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2067,12 +2067,12 @@ class Diaspora {
|
||||||
|
|
||||||
$def_gid = get_default_group($importer['uid'], $ret["network"]);
|
$def_gid = get_default_group($importer['uid'], $ret["network"]);
|
||||||
|
|
||||||
if (intval($def_gid))
|
if(intval($def_gid))
|
||||||
group_add_member($importer["uid"], "", $contact_record["id"], $def_gid);
|
group_add_member($importer["uid"], "", $contact_record["id"], $def_gid);
|
||||||
|
|
||||||
update_contact_avatar($ret["photo"], $importer['uid'], $contact_record["id"], true);
|
update_contact_avatar($ret["photo"], $importer['uid'], $contact_record["id"], true);
|
||||||
|
|
||||||
if ($importer["page-flags"] == PAGE_NORMAL) {
|
if($importer["page-flags"] == PAGE_NORMAL) {
|
||||||
|
|
||||||
logger("Sending intra message for author ".$author.".", LOGGER_DEBUG);
|
logger("Sending intra message for author ".$author.".", LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
@ -2122,7 +2122,7 @@ class Diaspora {
|
||||||
);
|
);
|
||||||
|
|
||||||
$u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer["uid"]));
|
$u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer["uid"]));
|
||||||
if ($u) {
|
if($u) {
|
||||||
logger("Sending share message (Relation: ".$new_relation.") to author ".$author." - Contact: ".$contact_record["id"]." - User: ".$importer["uid"], LOGGER_DEBUG);
|
logger("Sending share message (Relation: ".$new_relation.") to author ".$author." - Contact: ".$contact_record["id"]." - User: ".$importer["uid"], LOGGER_DEBUG);
|
||||||
$ret = self::send_share($u[0], $contact_record);
|
$ret = self::send_share($u[0], $contact_record);
|
||||||
|
|
||||||
|
|
@ -2748,7 +2748,7 @@ class Diaspora {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
$enabled = intval(get_config("system", "diaspora_enabled"));
|
$enabled = intval(get_config("system", "diaspora_enabled"));
|
||||||
if (!$enabled)
|
if(!$enabled)
|
||||||
return 200;
|
return 200;
|
||||||
|
|
||||||
$logid = random_string(4);
|
$logid = random_string(4);
|
||||||
|
|
@ -3087,14 +3087,14 @@ class Diaspora {
|
||||||
$body = html_entity_decode(bb2diaspora($body));
|
$body = html_entity_decode(bb2diaspora($body));
|
||||||
|
|
||||||
// Adding the title
|
// Adding the title
|
||||||
if (strlen($title))
|
if(strlen($title))
|
||||||
$body = "## ".html_entity_decode($title)."\n\n".$body;
|
$body = "## ".html_entity_decode($title)."\n\n".$body;
|
||||||
|
|
||||||
if ($item["attach"]) {
|
if ($item["attach"]) {
|
||||||
$cnt = preg_match_all('/href=\"(.*?)\"(.*?)title=\"(.*?)\"/ism', $item["attach"], $matches, PREG_SET_ORDER);
|
$cnt = preg_match_all('/href=\"(.*?)\"(.*?)title=\"(.*?)\"/ism', $item["attach"], $matches, PREG_SET_ORDER);
|
||||||
if (cnt) {
|
if(cnt) {
|
||||||
$body .= "\n".t("Attachments:")."\n";
|
$body .= "\n".t("Attachments:")."\n";
|
||||||
foreach ($matches as $mtch)
|
foreach($matches as $mtch)
|
||||||
$body .= "[".$mtch[3]."](".$mtch[1].")\n";
|
$body .= "[".$mtch[3]."](".$mtch[1].")\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3587,7 +3587,7 @@ class Diaspora {
|
||||||
$kw = str_replace(' ',' ',$kw);
|
$kw = str_replace(' ',' ',$kw);
|
||||||
$arr = explode(' ',$profile['pub_keywords']);
|
$arr = explode(' ',$profile['pub_keywords']);
|
||||||
if (count($arr)) {
|
if (count($arr)) {
|
||||||
for ($x = 0; $x < 5; $x ++) {
|
for($x = 0; $x < 5; $x ++) {
|
||||||
if (trim($arr[$x]))
|
if (trim($arr[$x]))
|
||||||
$tags .= '#'. trim($arr[$x]) .' ';
|
$tags .= '#'. trim($arr[$x]) .' ';
|
||||||
}
|
}
|
||||||
|
|
@ -3609,7 +3609,7 @@ class Diaspora {
|
||||||
"searchable" => $searchable,
|
"searchable" => $searchable,
|
||||||
"tag_string" => $tags);
|
"tag_string" => $tags);
|
||||||
|
|
||||||
foreach ($recips as $recip) {
|
foreach($recips as $recip) {
|
||||||
logger("Send updated profile data for user ".$uid." to contact ".$recip["id"], LOGGER_DEBUG);
|
logger("Send updated profile data for user ".$uid." to contact ".$recip["id"], LOGGER_DEBUG);
|
||||||
self::build_and_transmit($profile, $recip, "profile", $message, false, "", true);
|
self::build_and_transmit($profile, $recip, "profile", $message, false, "", true);
|
||||||
}
|
}
|
||||||
|
|
@ -3632,20 +3632,17 @@ class Diaspora {
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1", intval($contact['uid']));
|
$r = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1", intval($contact['uid']));
|
||||||
if (!dbm::is_result($r)) {
|
if(!$r)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$contact["uprvkey"] = $r[0]['prvkey'];
|
$contact["uprvkey"] = $r[0]['prvkey'];
|
||||||
|
|
||||||
$r = q("SELECT * FROM `item` WHERE `id` = %d LIMIT 1", intval($post_id));
|
$r = q("SELECT * FROM `item` WHERE `id` = %d LIMIT 1", intval($post_id));
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
if (!in_array($r[0]["verb"], array(ACTIVITY_LIKE, ACTIVITY_DISLIKE))) {
|
if (!in_array($r[0]["verb"], array(ACTIVITY_LIKE, ACTIVITY_DISLIKE)))
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$message = self::construct_like($r[0], $contact);
|
$message = self::construct_like($r[0], $contact);
|
||||||
$message["author_signature"] = self::signature($contact, $message);
|
$message["author_signature"] = self::signature($contact, $message);
|
||||||
|
|
|
||||||
|
|
@ -189,10 +189,10 @@ function discover_directory($search) {
|
||||||
$j = json_decode($x);
|
$j = json_decode($x);
|
||||||
|
|
||||||
if (count($j->results)) {
|
if (count($j->results)) {
|
||||||
foreach ($j->results as $jj) {
|
foreach($j->results as $jj) {
|
||||||
// Check if the contact already exists
|
// Check if the contact already exists
|
||||||
$exists = q("SELECT `id`, `last_contact`, `last_failure`, `updated` FROM `gcontact` WHERE `nurl` = '%s'", normalise_link($jj->url));
|
$exists = q("SELECT `id`, `last_contact`, `last_failure`, `updated` FROM `gcontact` WHERE `nurl` = '%s'", normalise_link($jj->url));
|
||||||
if (dbm::is_result($exists)) {
|
if ($exists) {
|
||||||
logger("Profile ".$jj->url." already exists (".$search.")", LOGGER_DEBUG);
|
logger("Profile ".$jj->url." already exists (".$search.")", LOGGER_DEBUG);
|
||||||
|
|
||||||
if (($exists[0]["last_contact"] < $exists[0]["last_failure"]) AND
|
if (($exists[0]["last_contact"] < $exists[0]["last_failure"]) AND
|
||||||
|
|
@ -245,14 +245,12 @@ function gs_search_user($search) {
|
||||||
if (!$result["success"]) {
|
if (!$result["success"]) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$contacts = json_decode($result["body"]);
|
$contacts = json_decode($result["body"]);
|
||||||
|
|
||||||
if ($contacts->status == 'ERROR') {
|
if ($contacts->status == 'ERROR') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
foreach($contacts->data AS $user) {
|
||||||
foreach ($contacts->data AS $user) {
|
|
||||||
$contact = probe_url($user->site_address."/".$user->name);
|
$contact = probe_url($user->site_address."/".$user->name);
|
||||||
if ($contact["network"] != NETWORK_PHANTOM) {
|
if ($contact["network"] != NETWORK_PHANTOM) {
|
||||||
$contact["about"] = $user->description;
|
$contact["about"] = $user->description;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ require_once('include/msgclean.php');
|
||||||
require_once('include/quoteconvert.php');
|
require_once('include/quoteconvert.php');
|
||||||
|
|
||||||
function email_connect($mailbox,$username,$password) {
|
function email_connect($mailbox,$username,$password) {
|
||||||
if (! function_exists('imap_open'))
|
if(! function_exists('imap_open'))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$mbox = @imap_open($mailbox,$username,$password);
|
$mbox = @imap_open($mailbox,$username,$password);
|
||||||
|
|
@ -14,23 +14,23 @@ function email_connect($mailbox,$username,$password) {
|
||||||
|
|
||||||
function email_poll($mbox,$email_addr) {
|
function email_poll($mbox,$email_addr) {
|
||||||
|
|
||||||
if (! ($mbox && $email_addr))
|
if(! ($mbox && $email_addr))
|
||||||
return array();
|
return array();
|
||||||
|
|
||||||
$search1 = @imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID);
|
$search1 = @imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID);
|
||||||
if (! $search1)
|
if(! $search1)
|
||||||
$search1 = array();
|
$search1 = array();
|
||||||
|
|
||||||
$search2 = @imap_search($mbox,'TO "' . $email_addr . '"', SE_UID);
|
$search2 = @imap_search($mbox,'TO "' . $email_addr . '"', SE_UID);
|
||||||
if (! $search2)
|
if(! $search2)
|
||||||
$search2 = array();
|
$search2 = array();
|
||||||
|
|
||||||
$search3 = @imap_search($mbox,'CC "' . $email_addr . '"', SE_UID);
|
$search3 = @imap_search($mbox,'CC "' . $email_addr . '"', SE_UID);
|
||||||
if (! $search3)
|
if(! $search3)
|
||||||
$search3 = array();
|
$search3 = array();
|
||||||
|
|
||||||
$search4 = @imap_search($mbox,'BCC "' . $email_addr . '"', SE_UID);
|
$search4 = @imap_search($mbox,'BCC "' . $email_addr . '"', SE_UID);
|
||||||
if (! $search4)
|
if(! $search4)
|
||||||
$search4 = array();
|
$search4 = array();
|
||||||
|
|
||||||
$res = array_unique(array_merge($search1,$search2,$search3,$search4));
|
$res = array_unique(array_merge($search1,$search2,$search3,$search4));
|
||||||
|
|
@ -57,8 +57,8 @@ function email_msg_headers($mbox,$uid) {
|
||||||
$raw_header = str_replace("\r",'',$raw_header);
|
$raw_header = str_replace("\r",'',$raw_header);
|
||||||
$ret = array();
|
$ret = array();
|
||||||
$h = explode("\n",$raw_header);
|
$h = explode("\n",$raw_header);
|
||||||
if (count($h))
|
if(count($h))
|
||||||
foreach ($h as $line ) {
|
foreach($h as $line ) {
|
||||||
if (preg_match("/^[a-zA-Z]/", $line)) {
|
if (preg_match("/^[a-zA-Z]/", $line)) {
|
||||||
$key = substr($line,0,strpos($line,':'));
|
$key = substr($line,0,strpos($line,':'));
|
||||||
$value = substr($line,strpos($line,':')+1);
|
$value = substr($line,strpos($line,':')+1);
|
||||||
|
|
@ -79,10 +79,10 @@ function email_get_msg($mbox,$uid, $reply) {
|
||||||
|
|
||||||
$struc = (($mbox && $uid) ? @imap_fetchstructure($mbox,$uid,FT_UID) : null);
|
$struc = (($mbox && $uid) ? @imap_fetchstructure($mbox,$uid,FT_UID) : null);
|
||||||
|
|
||||||
if (! $struc)
|
if(! $struc)
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
||||||
if (! $struc->parts) {
|
if(! $struc->parts) {
|
||||||
$ret['body'] = email_get_part($mbox,$uid,$struc,0, 'html');
|
$ret['body'] = email_get_part($mbox,$uid,$struc,0, 'html');
|
||||||
$html = $ret['body'];
|
$html = $ret['body'];
|
||||||
|
|
||||||
|
|
@ -94,7 +94,7 @@ function email_get_msg($mbox,$uid, $reply) {
|
||||||
else {
|
else {
|
||||||
$text = '';
|
$text = '';
|
||||||
$html = '';
|
$html = '';
|
||||||
foreach ($struc->parts as $ptop => $p) {
|
foreach($struc->parts as $ptop => $p) {
|
||||||
$x = email_get_part($mbox,$uid,$p,$ptop + 1, 'plain');
|
$x = email_get_part($mbox,$uid,$p,$ptop + 1, 'plain');
|
||||||
if ($x) {
|
if ($x) {
|
||||||
$text .= $x;
|
$text .= $x;
|
||||||
|
|
@ -206,16 +206,16 @@ function email_get_part($mbox,$uid,$p,$partno, $subtype) {
|
||||||
|
|
||||||
|
|
||||||
function email_header_encode($in_str, $charset) {
|
function email_header_encode($in_str, $charset) {
|
||||||
$out_str = $in_str;
|
$out_str = $in_str;
|
||||||
$need_to_convert = false;
|
$need_to_convert = false;
|
||||||
|
|
||||||
for ($x = 0; $x < strlen($in_str); $x ++) {
|
for($x = 0; $x < strlen($in_str); $x ++) {
|
||||||
if ((ord($in_str[$x]) == 0) || ((ord($in_str[$x]) > 128))) {
|
if((ord($in_str[$x]) == 0) || ((ord($in_str[$x]) > 128))) {
|
||||||
$need_to_convert = true;
|
$need_to_convert = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $need_to_convert)
|
if(! $need_to_convert)
|
||||||
return $in_str;
|
return $in_str;
|
||||||
|
|
||||||
if ($out_str && $charset) {
|
if ($out_str && $charset) {
|
||||||
|
|
|
||||||
|
|
@ -411,12 +411,10 @@ function notification($params) {
|
||||||
$hash = random_string();
|
$hash = random_string();
|
||||||
$r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' LIMIT 1",
|
$r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' LIMIT 1",
|
||||||
dbesc($hash));
|
dbesc($hash));
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$dups = true;
|
$dups = true;
|
||||||
}
|
} while($dups == true);
|
||||||
} while ($dups == true);
|
|
||||||
|
|
||||||
/// @TODO One statement is enough
|
|
||||||
$datarray = array();
|
$datarray = array();
|
||||||
$datarray['hash'] = $hash;
|
$datarray['hash'] = $hash;
|
||||||
$datarray['name'] = $params['source_name'];
|
$datarray['name'] = $params['source_name'];
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ require_once 'include/datetime.php';
|
||||||
|
|
||||||
function format_event_html($ev, $simple = false) {
|
function format_event_html($ev, $simple = false) {
|
||||||
|
|
||||||
if (! ((is_array($ev)) && count($ev))) {
|
if(! ((is_array($ev)) && count($ev))) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -98,26 +98,26 @@ function parse_event($h) {
|
||||||
logger('parse_event: parse error: ' . $e);
|
logger('parse_event: parse error: ' . $e);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $dom)
|
if(! $dom)
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
||||||
$items = $dom->getElementsByTagName('*');
|
$items = $dom->getElementsByTagName('*');
|
||||||
|
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
if (attribute_contains($item->getAttribute('class'), 'vevent')) {
|
if(attribute_contains($item->getAttribute('class'), 'vevent')) {
|
||||||
$level2 = $item->getElementsByTagName('*');
|
$level2 = $item->getElementsByTagName('*');
|
||||||
foreach ($level2 as $x) {
|
foreach($level2 as $x) {
|
||||||
if (attribute_contains($x->getAttribute('class'),'dtstart') && $x->getAttribute('title')) {
|
if(attribute_contains($x->getAttribute('class'),'dtstart') && $x->getAttribute('title')) {
|
||||||
$ret['start'] = $x->getAttribute('title');
|
$ret['start'] = $x->getAttribute('title');
|
||||||
if (! strpos($ret['start'],'Z'))
|
if(! strpos($ret['start'],'Z'))
|
||||||
$ret['adjust'] = true;
|
$ret['adjust'] = true;
|
||||||
}
|
}
|
||||||
if (attribute_contains($x->getAttribute('class'),'dtend') && $x->getAttribute('title'))
|
if(attribute_contains($x->getAttribute('class'),'dtend') && $x->getAttribute('title'))
|
||||||
$ret['finish'] = $x->getAttribute('title');
|
$ret['finish'] = $x->getAttribute('title');
|
||||||
|
|
||||||
if (attribute_contains($x->getAttribute('class'),'description'))
|
if(attribute_contains($x->getAttribute('class'),'description'))
|
||||||
$ret['desc'] = $x->textContent;
|
$ret['desc'] = $x->textContent;
|
||||||
if (attribute_contains($x->getAttribute('class'),'location'))
|
if(attribute_contains($x->getAttribute('class'),'location'))
|
||||||
$ret['location'] = $x->textContent;
|
$ret['location'] = $x->textContent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -125,23 +125,23 @@ function parse_event($h) {
|
||||||
|
|
||||||
// sanitise
|
// sanitise
|
||||||
|
|
||||||
if ((x($ret,'desc')) && ((strpos($ret['desc'],'<') !== false) || (strpos($ret['desc'],'>') !== false))) {
|
if((x($ret,'desc')) && ((strpos($ret['desc'],'<') !== false) || (strpos($ret['desc'],'>') !== false))) {
|
||||||
$config = HTMLPurifier_Config::createDefault();
|
$config = HTMLPurifier_Config::createDefault();
|
||||||
$config->set('Cache.DefinitionImpl', null);
|
$config->set('Cache.DefinitionImpl', null);
|
||||||
$purifier = new HTMLPurifier($config);
|
$purifier = new HTMLPurifier($config);
|
||||||
$ret['desc'] = html2bbcode($purifier->purify($ret['desc']));
|
$ret['desc'] = html2bbcode($purifier->purify($ret['desc']));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((x($ret,'location')) && ((strpos($ret['location'],'<') !== false) || (strpos($ret['location'],'>') !== false))) {
|
if((x($ret,'location')) && ((strpos($ret['location'],'<') !== false) || (strpos($ret['location'],'>') !== false))) {
|
||||||
$config = HTMLPurifier_Config::createDefault();
|
$config = HTMLPurifier_Config::createDefault();
|
||||||
$config->set('Cache.DefinitionImpl', null);
|
$config->set('Cache.DefinitionImpl', null);
|
||||||
$purifier = new HTMLPurifier($config);
|
$purifier = new HTMLPurifier($config);
|
||||||
$ret['location'] = html2bbcode($purifier->purify($ret['location']));
|
$ret['location'] = html2bbcode($purifier->purify($ret['location']));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($ret,'start'))
|
if(x($ret,'start'))
|
||||||
$ret['start'] = datetime_convert('UTC','UTC',$ret['start']);
|
$ret['start'] = datetime_convert('UTC','UTC',$ret['start']);
|
||||||
if (x($ret,'finish'))
|
if(x($ret,'finish'))
|
||||||
$ret['finish'] = datetime_convert('UTC','UTC',$ret['finish']);
|
$ret['finish'] = datetime_convert('UTC','UTC',$ret['finish']);
|
||||||
|
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
@ -595,7 +595,7 @@ function event_by_id($owner_uid = 0, $event_params, $sql_extra = '') {
|
||||||
*/
|
*/
|
||||||
function events_by_date($owner_uid = 0, $event_params, $sql_extra = '') {
|
function events_by_date($owner_uid = 0, $event_params, $sql_extra = '') {
|
||||||
// Only allow events if there is a valid owner_id
|
// Only allow events if there is a valid owner_id
|
||||||
if ($owner_uid == 0) {
|
if($owner_uid == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -629,7 +629,7 @@ function events_by_date($owner_uid = 0, $event_params, $sql_extra = '') {
|
||||||
* @return array Event array for the template
|
* @return array Event array for the template
|
||||||
*/
|
*/
|
||||||
function process_events($arr) {
|
function process_events($arr) {
|
||||||
$events = array();
|
$events=array();
|
||||||
|
|
||||||
$last_date = '';
|
$last_date = '';
|
||||||
$fmt = t('l, F j');
|
$fmt = t('l, F j');
|
||||||
|
|
|
||||||
|
|
@ -11,13 +11,12 @@ function expire_run(&$argv, &$argc){
|
||||||
|
|
||||||
// physically remove anything that has been deleted for more than two months
|
// physically remove anything that has been deleted for more than two months
|
||||||
|
|
||||||
$r = q("DELETE FROM `item` WHERE `deleted` = 1 AND `changed` < UTC_TIMESTAMP() - INTERVAL 60 DAY");
|
$r = q("delete from item where deleted = 1 and changed < UTC_TIMESTAMP() - INTERVAL 60 DAY");
|
||||||
|
|
||||||
// make this optional as it could have a performance impact on large sites
|
// make this optional as it could have a performance impact on large sites
|
||||||
|
|
||||||
if (intval(get_config('system','optimize_items'))) {
|
if(intval(get_config('system','optimize_items')))
|
||||||
q("OPTIMIZE TABLE `item`");
|
q("optimize table item");
|
||||||
}
|
|
||||||
|
|
||||||
logger('expire: start');
|
logger('expire: start');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,9 +36,9 @@ function feature_enabled($uid, $feature) {
|
||||||
*/
|
*/
|
||||||
function get_feature_default($feature) {
|
function get_feature_default($feature) {
|
||||||
$f = get_features();
|
$f = get_features();
|
||||||
foreach ($f as $cat) {
|
foreach($f as $cat) {
|
||||||
foreach ($cat as $feat) {
|
foreach($cat as $feat) {
|
||||||
if (is_array($feat) && $feat[0] === $feature)
|
if(is_array($feat) && $feat[0] === $feature)
|
||||||
return $feat[3];
|
return $feat[3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -116,13 +116,13 @@ function get_features($filtered = true) {
|
||||||
|
|
||||||
// removed any locked features and remove the entire category if this makes it empty
|
// removed any locked features and remove the entire category if this makes it empty
|
||||||
|
|
||||||
if ($filtered) {
|
if($filtered) {
|
||||||
foreach ($arr as $k => $x) {
|
foreach($arr as $k => $x) {
|
||||||
$has_items = false;
|
$has_items = false;
|
||||||
$kquantity = count($arr[$k]);
|
$kquantity = count($arr[$k]);
|
||||||
for ($y = 0; $y < $kquantity; $y ++) {
|
for($y = 0; $y < $kquantity; $y ++) {
|
||||||
if (is_array($arr[$k][$y])) {
|
if(is_array($arr[$k][$y])) {
|
||||||
if ($arr[$k][$y][4] === false) {
|
if($arr[$k][$y][4] === false) {
|
||||||
$has_items = true;
|
$has_items = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -130,7 +130,7 @@ function get_features($filtered = true) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $has_items) {
|
if(! $has_items) {
|
||||||
unset($arr[$k]);
|
unset($arr[$k]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,7 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) {
|
||||||
|
|
||||||
$header["contact-id"] = $contact["id"];
|
$header["contact-id"] = $contact["id"];
|
||||||
|
|
||||||
if (!strlen($contact["notify"])) {
|
if(!strlen($contact["notify"])) {
|
||||||
// one way feed - no remote comment ability
|
// one way feed - no remote comment ability
|
||||||
$header["last-child"] = 0;
|
$header["last-child"] = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -280,7 +280,7 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) {
|
||||||
$type = "";
|
$type = "";
|
||||||
$title = "";
|
$title = "";
|
||||||
|
|
||||||
foreach ($enclosure->attributes AS $attributes) {
|
foreach($enclosure->attributes AS $attributes) {
|
||||||
if ($attributes->name == "url") {
|
if ($attributes->name == "url") {
|
||||||
$href = $attributes->textContent;
|
$href = $attributes->textContent;
|
||||||
} elseif ($attributes->name == "length") {
|
} elseif ($attributes->name == "length") {
|
||||||
|
|
@ -289,9 +289,8 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) {
|
||||||
$type = $attributes->textContent;
|
$type = $attributes->textContent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strlen($item["attach"])) {
|
if(strlen($item["attach"]))
|
||||||
$item["attach"] .= ',';
|
$item["attach"] .= ',';
|
||||||
}
|
|
||||||
|
|
||||||
$attachments[] = array("link" => $href, "type" => $type, "length" => $length);
|
$attachments[] = array("link" => $href, "type" => $type, "length" => $length);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ function create_files_from_item($itemid) {
|
||||||
function create_files_from_itemuri($itemuri, $uid) {
|
function create_files_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_files_from_item($message["id"]);
|
create_files_from_item($message["id"]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class FriendicaSmarty extends Smarty {
|
||||||
// setTemplateDir can be set to an array, which Smarty will parse in order.
|
// setTemplateDir can be set to an array, which Smarty will parse in order.
|
||||||
// The order is thus very important here
|
// The order is thus very important here
|
||||||
$template_dirs = array('theme' => "view/theme/$theme/".SMARTY3_TEMPLATE_FOLDER."/");
|
$template_dirs = array('theme' => "view/theme/$theme/".SMARTY3_TEMPLATE_FOLDER."/");
|
||||||
if ( x($a->theme_info,"extends") )
|
if( x($a->theme_info,"extends") )
|
||||||
$template_dirs = $template_dirs + array('extends' => "view/theme/".$a->theme_info["extends"]."/".SMARTY3_TEMPLATE_FOLDER."/");
|
$template_dirs = $template_dirs + array('extends' => "view/theme/".$a->theme_info["extends"]."/".SMARTY3_TEMPLATE_FOLDER."/");
|
||||||
$template_dirs = $template_dirs + array('base' => "view/".SMARTY3_TEMPLATE_FOLDER."/");
|
$template_dirs = $template_dirs + array('base' => "view/".SMARTY3_TEMPLATE_FOLDER."/");
|
||||||
$this->setTemplateDir($template_dirs);
|
$this->setTemplateDir($template_dirs);
|
||||||
|
|
@ -35,7 +35,7 @@ class FriendicaSmarty extends Smarty {
|
||||||
}
|
}
|
||||||
|
|
||||||
function parsed($template = '') {
|
function parsed($template = '') {
|
||||||
if ($template) {
|
if($template) {
|
||||||
return $this->fetch('string:' . $template);
|
return $this->fetch('string:' . $template);
|
||||||
}
|
}
|
||||||
return $this->fetch('file:' . $this->filename);
|
return $this->fetch('file:' . $this->filename);
|
||||||
|
|
@ -48,7 +48,7 @@ class FriendicaSmartyEngine implements ITemplateEngine {
|
||||||
static $name ="smarty3";
|
static $name ="smarty3";
|
||||||
|
|
||||||
public function __construct(){
|
public function __construct(){
|
||||||
if (!is_writable('view/smarty3/')){
|
if(!is_writable('view/smarty3/')){
|
||||||
echo "<b>ERROR:</b> folder <tt>view/smarty3/</tt> must be writable by webserver."; killme();
|
echo "<b>ERROR:</b> folder <tt>view/smarty3/</tt> must be writable by webserver."; killme();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -56,7 +56,7 @@ class FriendicaSmartyEngine implements ITemplateEngine {
|
||||||
// ITemplateEngine interface
|
// ITemplateEngine interface
|
||||||
public function replace_macros($s, $r) {
|
public function replace_macros($s, $r) {
|
||||||
$template = '';
|
$template = '';
|
||||||
if (gettype($s) === 'string') {
|
if(gettype($s) === 'string') {
|
||||||
$template = $s;
|
$template = $s;
|
||||||
$s = new FriendicaSmarty();
|
$s = new FriendicaSmarty();
|
||||||
}
|
}
|
||||||
|
|
@ -71,8 +71,8 @@ class FriendicaSmartyEngine implements ITemplateEngine {
|
||||||
call_hooks("template_vars", $arr);
|
call_hooks("template_vars", $arr);
|
||||||
$r = $arr['vars'];
|
$r = $arr['vars'];
|
||||||
|
|
||||||
foreach ($r as $key=>$value) {
|
foreach($r as $key=>$value) {
|
||||||
if ($key[0] === '$') {
|
if($key[0] === '$') {
|
||||||
$key = substr($key, 1);
|
$key = substr($key, 1);
|
||||||
}
|
}
|
||||||
$s->assign($key, $value);
|
$s->assign($key, $value);
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
function group_add($uid,$name) {
|
function group_add($uid,$name) {
|
||||||
|
|
||||||
$ret = false;
|
$ret = false;
|
||||||
if (x($uid) && x($name)) {
|
if(x($uid) && x($name)) {
|
||||||
$r = group_byname($uid,$name); // check for dups
|
$r = group_byname($uid,$name); // check for dups
|
||||||
if ($r !== false) {
|
if($r !== false) {
|
||||||
|
|
||||||
// This could be a problem.
|
// This could be a problem.
|
||||||
// Let's assume we've just created a group which we once deleted
|
// Let's assume we've just created a group which we once deleted
|
||||||
|
|
@ -17,7 +17,7 @@ function group_add($uid,$name) {
|
||||||
$z = q("SELECT * FROM `group` WHERE `id` = %d LIMIT 1",
|
$z = q("SELECT * FROM `group` WHERE `id` = %d LIMIT 1",
|
||||||
intval($r)
|
intval($r)
|
||||||
);
|
);
|
||||||
if (count($z) && $z[0]['deleted']) {
|
if(count($z) && $z[0]['deleted']) {
|
||||||
$r = q("UPDATE `group` SET `deleted` = 0 WHERE `uid` = %d AND `name` = '%s'",
|
$r = q("UPDATE `group` SET `deleted` = 0 WHERE `uid` = %d AND `name` = '%s'",
|
||||||
intval($uid),
|
intval($uid),
|
||||||
dbesc($name)
|
dbesc($name)
|
||||||
|
|
@ -39,14 +39,14 @@ function group_add($uid,$name) {
|
||||||
|
|
||||||
function group_rmv($uid,$name) {
|
function group_rmv($uid,$name) {
|
||||||
$ret = false;
|
$ret = false;
|
||||||
if (x($uid) && x($name)) {
|
if(x($uid) && x($name)) {
|
||||||
$r = q("SELECT id FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
|
$r = q("SELECT id FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
|
||||||
intval($uid),
|
intval($uid),
|
||||||
dbesc($name)
|
dbesc($name)
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
$group_id = $r[0]['id'];
|
$group_id = $r[0]['id'];
|
||||||
if (! $group_id)
|
if(! $group_id)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// remove group from default posting lists
|
// remove group from default posting lists
|
||||||
|
|
@ -57,20 +57,20 @@ function group_rmv($uid,$name) {
|
||||||
$user_info = $r[0];
|
$user_info = $r[0];
|
||||||
$change = false;
|
$change = false;
|
||||||
|
|
||||||
if ($user_info['def_gid'] == $group_id) {
|
if($user_info['def_gid'] == $group_id) {
|
||||||
$user_info['def_gid'] = 0;
|
$user_info['def_gid'] = 0;
|
||||||
$change = true;
|
$change = true;
|
||||||
}
|
}
|
||||||
if (strpos($user_info['allow_gid'], '<' . $group_id . '>') !== false) {
|
if(strpos($user_info['allow_gid'], '<' . $group_id . '>') !== false) {
|
||||||
$user_info['allow_gid'] = str_replace('<' . $group_id . '>', '', $user_info['allow_gid']);
|
$user_info['allow_gid'] = str_replace('<' . $group_id . '>', '', $user_info['allow_gid']);
|
||||||
$change = true;
|
$change = true;
|
||||||
}
|
}
|
||||||
if (strpos($user_info['deny_gid'], '<' . $group_id . '>') !== false) {
|
if(strpos($user_info['deny_gid'], '<' . $group_id . '>') !== false) {
|
||||||
$user_info['deny_gid'] = str_replace('<' . $group_id . '>', '', $user_info['deny_gid']);
|
$user_info['deny_gid'] = str_replace('<' . $group_id . '>', '', $user_info['deny_gid']);
|
||||||
$change = true;
|
$change = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($change) {
|
if($change) {
|
||||||
q("UPDATE user SET def_gid = %d, allow_gid = '%s', deny_gid = '%s' WHERE uid = %d",
|
q("UPDATE user SET def_gid = %d, allow_gid = '%s', deny_gid = '%s' WHERE uid = %d",
|
||||||
intval($user_info['def_gid']),
|
intval($user_info['def_gid']),
|
||||||
dbesc($user_info['allow_gid']),
|
dbesc($user_info['allow_gid']),
|
||||||
|
|
@ -100,7 +100,7 @@ function group_rmv($uid,$name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function group_byname($uid,$name) {
|
function group_byname($uid,$name) {
|
||||||
if ((! $uid) || (! strlen($name)))
|
if((! $uid) || (! strlen($name)))
|
||||||
return false;
|
return false;
|
||||||
$r = q("SELECT * FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
|
$r = q("SELECT * FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
|
||||||
intval($uid),
|
intval($uid),
|
||||||
|
|
@ -113,9 +113,9 @@ function group_byname($uid,$name) {
|
||||||
|
|
||||||
function group_rmv_member($uid,$name,$member) {
|
function group_rmv_member($uid,$name,$member) {
|
||||||
$gid = group_byname($uid,$name);
|
$gid = group_byname($uid,$name);
|
||||||
if (! $gid)
|
if(! $gid)
|
||||||
return false;
|
return false;
|
||||||
if (! ( $uid && $gid && $member))
|
if(! ( $uid && $gid && $member))
|
||||||
return false;
|
return false;
|
||||||
$r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `contact-id` = %d",
|
$r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `contact-id` = %d",
|
||||||
intval($uid),
|
intval($uid),
|
||||||
|
|
@ -129,9 +129,9 @@ function group_rmv_member($uid,$name,$member) {
|
||||||
|
|
||||||
|
|
||||||
function group_add_member($uid,$name,$member,$gid = 0) {
|
function group_add_member($uid,$name,$member,$gid = 0) {
|
||||||
if (! $gid)
|
if(! $gid)
|
||||||
$gid = group_byname($uid,$name);
|
$gid = group_byname($uid,$name);
|
||||||
if ((! $gid) || (! $uid) || (! $member))
|
if((! $gid) || (! $uid) || (! $member))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$r = q("SELECT * FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `contact-id` = %d LIMIT 1",
|
$r = q("SELECT * FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `contact-id` = %d LIMIT 1",
|
||||||
|
|
@ -156,7 +156,7 @@ function group_add_member($uid,$name,$member,$gid = 0) {
|
||||||
|
|
||||||
function group_get_members($gid) {
|
function group_get_members($gid) {
|
||||||
$ret = array();
|
$ret = array();
|
||||||
if (intval($gid)) {
|
if(intval($gid)) {
|
||||||
$r = q("SELECT `group_member`.`contact-id`, `contact`.* FROM `group_member`
|
$r = q("SELECT `group_member`.`contact-id`, `contact`.* FROM `group_member`
|
||||||
INNER JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id`
|
INNER JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id`
|
||||||
WHERE `gid` = %d AND `group_member`.`uid` = %d AND
|
WHERE `gid` = %d AND `group_member`.`uid` = %d AND
|
||||||
|
|
@ -173,7 +173,7 @@ function group_get_members($gid) {
|
||||||
|
|
||||||
function group_public_members($gid) {
|
function group_public_members($gid) {
|
||||||
$ret = 0;
|
$ret = 0;
|
||||||
if (intval($gid)) {
|
if(intval($gid)) {
|
||||||
$r = q("SELECT `contact`.`id` AS `contact-id` FROM `group_member`
|
$r = q("SELECT `contact`.`id` AS `contact-id` FROM `group_member`
|
||||||
INNER JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id`
|
INNER JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id`
|
||||||
WHERE `gid` = %d AND `group_member`.`uid` = %d
|
WHERE `gid` = %d AND `group_member`.`uid` = %d
|
||||||
|
|
@ -252,7 +252,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro
|
||||||
intval($_SESSION['uid'])
|
intval($_SESSION['uid'])
|
||||||
);
|
);
|
||||||
$member_of = array();
|
$member_of = array();
|
||||||
if ($cid) {
|
if($cid) {
|
||||||
$member_of = groups_containing(local_user(),$cid);
|
$member_of = groups_containing(local_user(),$cid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -302,7 +302,7 @@ function group_side($every="contacts",$each="group",$editmode = "standard", $gro
|
||||||
}
|
}
|
||||||
|
|
||||||
function expand_groups($a,$check_dead = false, $use_gcontact = false) {
|
function expand_groups($a,$check_dead = false, $use_gcontact = false) {
|
||||||
if (! (is_array($a) && count($a)))
|
if(! (is_array($a) && count($a)))
|
||||||
return array();
|
return array();
|
||||||
$groups = implode(',', $a);
|
$groups = implode(',', $a);
|
||||||
$groups = dbesc($groups);
|
$groups = dbesc($groups);
|
||||||
|
|
@ -318,9 +318,9 @@ function expand_groups($a,$check_dead = false, $use_gcontact = false) {
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
$ret[] = $rr['contact-id'];
|
$ret[] = $rr['contact-id'];
|
||||||
if ($check_dead AND !$use_gcontact) {
|
if($check_dead AND !$use_gcontact) {
|
||||||
require_once('include/acl_selectors.php');
|
require_once('include/acl_selectors.php');
|
||||||
$ret = prune_deadguys($ret);
|
$ret = prune_deadguys($ret);
|
||||||
}
|
}
|
||||||
|
|
@ -347,9 +347,8 @@ function groups_containing($uid,$c) {
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
$ret[] = $rr['gid'];
|
$ret[] = $rr['gid'];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $ret;
|
return $ret;
|
||||||
|
|
@ -400,7 +399,7 @@ function get_default_group($uid, $network = "") {
|
||||||
return $default_group;
|
return $default_group;
|
||||||
|
|
||||||
$g = q("SELECT `def_gid` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid));
|
$g = q("SELECT `def_gid` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid));
|
||||||
if ($g && intval($g[0]["def_gid"]))
|
if($g && intval($g[0]["def_gid"]))
|
||||||
$default_group = $g[0]["def_gid"];
|
$default_group = $g[0]["def_gid"];
|
||||||
|
|
||||||
return $default_group;
|
return $default_group;
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ function quotelevel($message, $wraplength = 75)
|
||||||
|
|
||||||
$newlines = array();
|
$newlines = array();
|
||||||
$level = 0;
|
$level = 0;
|
||||||
foreach ($lines as $line) {;
|
foreach($lines as $line) {;
|
||||||
$line = trim($line);
|
$line = trim($line);
|
||||||
$startquote = false;
|
$startquote = false;
|
||||||
while (strpos("*".$line, '[quote]') > 0) {
|
while (strpos("*".$line, '[quote]') > 0) {
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) {
|
||||||
dbesc($nickname)
|
dbesc($nickname)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!$user && count($user) && !count($profiledata)) {
|
if(!$user && count($user) && !count($profiledata)) {
|
||||||
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
|
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
|
||||||
notice( t('Requested account is not available.') . EOL );
|
notice( t('Requested account is not available.') . EOL );
|
||||||
$a->error = 404;
|
$a->error = 404;
|
||||||
|
|
@ -47,7 +47,7 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) {
|
||||||
|
|
||||||
$pdata = get_profiledata_by_nick($nickname, $user[0]['uid'], $profile);
|
$pdata = get_profiledata_by_nick($nickname, $user[0]['uid'], $profile);
|
||||||
|
|
||||||
if (($pdata === false) || (!count($pdata)) && !count($profiledata)) {
|
if(($pdata === false) || (!count($pdata)) && !count($profiledata)) {
|
||||||
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
|
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
|
||||||
notice( t('Requested profile is not available.') . EOL );
|
notice( t('Requested profile is not available.') . EOL );
|
||||||
$a->error = 404;
|
$a->error = 404;
|
||||||
|
|
@ -56,11 +56,11 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) {
|
||||||
|
|
||||||
// fetch user tags if this isn't the default profile
|
// fetch user tags if this isn't the default profile
|
||||||
|
|
||||||
if (!$pdata['is-default']) {
|
if(!$pdata['is-default']) {
|
||||||
$x = q("SELECT `pub_keywords` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
|
$x = q("SELECT `pub_keywords` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
|
||||||
intval($pdata['profile_uid'])
|
intval($pdata['profile_uid'])
|
||||||
);
|
);
|
||||||
if ($x && count($x))
|
if($x && count($x))
|
||||||
$pdata['pub_keywords'] = $x[0]['pub_keywords'];
|
$pdata['pub_keywords'] = $x[0]['pub_keywords'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -88,10 +88,10 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) {
|
||||||
require_once($theme_info_file);
|
require_once($theme_info_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! (x($a->page,'aside')))
|
if(! (x($a->page,'aside')))
|
||||||
$a->page['aside'] = '';
|
$a->page['aside'] = '';
|
||||||
|
|
||||||
if (local_user() && local_user() == $a->profile['uid'] && $profiledata) {
|
if(local_user() && local_user() == $a->profile['uid'] && $profiledata) {
|
||||||
$a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array(
|
$a->page['aside'] .= replace_macros(get_markup_template('profile_edlink.tpl'),array(
|
||||||
'$editprofile' => t('Edit profile'),
|
'$editprofile' => t('Edit profile'),
|
||||||
'$profid' => $a->profile['id']
|
'$profid' => $a->profile['id']
|
||||||
|
|
@ -110,7 +110,7 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) {
|
||||||
else
|
else
|
||||||
$a->page['aside'] .= profile_sidebar($a->profile, $block);
|
$a->page['aside'] .= profile_sidebar($a->profile, $block);
|
||||||
|
|
||||||
/*if (! $block)
|
/*if(! $block)
|
||||||
$a->page['aside'] .= contact_block();*/
|
$a->page['aside'] .= contact_block();*/
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
@ -133,9 +133,9 @@ function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) {
|
||||||
* Includes all available profile data
|
* Includes all available profile data
|
||||||
*/
|
*/
|
||||||
function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) {
|
function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) {
|
||||||
if (remote_user() && count($_SESSION['remote'])) {
|
if(remote_user() && count($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $visitor) {
|
foreach($_SESSION['remote'] as $visitor) {
|
||||||
if ($visitor['uid'] == $uid) {
|
if($visitor['uid'] == $uid) {
|
||||||
$r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
|
$r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
|
||||||
intval($visitor['cid'])
|
intval($visitor['cid'])
|
||||||
);
|
);
|
||||||
|
|
@ -148,7 +148,7 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) {
|
||||||
|
|
||||||
$r = null;
|
$r = null;
|
||||||
|
|
||||||
if ($profile) {
|
if($profile) {
|
||||||
$profile_int = intval($profile);
|
$profile_int = intval($profile);
|
||||||
$r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*,
|
$r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*,
|
||||||
`contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.*
|
`contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.*
|
||||||
|
|
@ -202,7 +202,7 @@ function profile_sidebar($profile, $block = 0) {
|
||||||
$address = false;
|
$address = false;
|
||||||
// $pdesc = true;
|
// $pdesc = true;
|
||||||
|
|
||||||
if ((! is_array($profile)) && (! count($profile)))
|
if((! is_array($profile)) && (! count($profile)))
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
$profile['picdate'] = urlencode($profile['picdate']);
|
$profile['picdate'] = urlencode($profile['picdate']);
|
||||||
|
|
@ -219,9 +219,9 @@ function profile_sidebar($profile, $block = 0) {
|
||||||
$connect = (($profile['uid'] != local_user()) ? t('Connect') : False);
|
$connect = (($profile['uid'] != local_user()) ? t('Connect') : False);
|
||||||
|
|
||||||
// don't show connect link to authenticated visitors either
|
// don't show connect link to authenticated visitors either
|
||||||
if (remote_user() && count($_SESSION['remote'])) {
|
if(remote_user() && count($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $visitor) {
|
foreach($_SESSION['remote'] as $visitor) {
|
||||||
if ($visitor['uid'] == $profile['uid']) {
|
if($visitor['uid'] == $profile['uid']) {
|
||||||
$connect = false;
|
$connect = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -322,7 +322,7 @@ function profile_sidebar($profile, $block = 0) {
|
||||||
// Fetch the account type
|
// Fetch the account type
|
||||||
$account_type = account_type($profile);
|
$account_type = account_type($profile);
|
||||||
|
|
||||||
if ((x($profile,'address') == 1)
|
if((x($profile,'address') == 1)
|
||||||
|| (x($profile,'location') == 1)
|
|| (x($profile,'location') == 1)
|
||||||
|| (x($profile,'locality') == 1)
|
|| (x($profile,'locality') == 1)
|
||||||
|| (x($profile,'region') == 1)
|
|| (x($profile,'region') == 1)
|
||||||
|
|
@ -341,7 +341,7 @@ function profile_sidebar($profile, $block = 0) {
|
||||||
|
|
||||||
$xmpp = ((x($profile,'xmpp') == 1) ? t('XMPP:') : False);
|
$xmpp = ((x($profile,'xmpp') == 1) ? t('XMPP:') : False);
|
||||||
|
|
||||||
if (($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
|
if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
|
||||||
$location = $pdesc = $gender = $marital = $homepage = $about = False;
|
$location = $pdesc = $gender = $marital = $homepage = $about = False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -368,7 +368,7 @@ function profile_sidebar($profile, $block = 0) {
|
||||||
if (!$block){
|
if (!$block){
|
||||||
$contact_block = contact_block();
|
$contact_block = contact_block();
|
||||||
|
|
||||||
if (is_array($a->profile) AND !$a->profile['hide-friends']) {
|
if(is_array($a->profile) AND !$a->profile['hide-friends']) {
|
||||||
$r = q("SELECT `gcontact`.`updated` FROM `contact` INNER JOIN `gcontact` WHERE `gcontact`.`nurl` = `contact`.`nurl` AND `self` AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `gcontact`.`updated` FROM `contact` INNER JOIN `gcontact` WHERE `gcontact`.`nurl` = `contact`.`nurl` AND `self` AND `uid` = %d LIMIT 1",
|
||||||
intval($a->profile['uid']));
|
intval($a->profile['uid']));
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
|
|
@ -390,7 +390,7 @@ function profile_sidebar($profile, $block = 0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$p = array();
|
$p = array();
|
||||||
foreach ($profile as $k => $v) {
|
foreach($profile as $k => $v) {
|
||||||
$k = str_replace('-','_',$k);
|
$k = str_replace('-','_',$k);
|
||||||
$p[$k] = $v;
|
$p[$k] = $v;
|
||||||
}
|
}
|
||||||
|
|
@ -406,7 +406,7 @@ function profile_sidebar($profile, $block = 0) {
|
||||||
if (isset($p["photo"]))
|
if (isset($p["photo"]))
|
||||||
$p["photo"] = proxy_url($p["photo"], false, PROXY_SIZE_SMALL);
|
$p["photo"] = proxy_url($p["photo"], false, PROXY_SIZE_SMALL);
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal')
|
if($a->theme['template_engine'] === 'internal')
|
||||||
$location = template_escape($location);
|
$location = template_escape($location);
|
||||||
|
|
||||||
$tpl = get_markup_template('profile_vcard.tpl');
|
$tpl = get_markup_template('profile_vcard.tpl');
|
||||||
|
|
@ -445,13 +445,13 @@ function get_birthdays() {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
if (! local_user() || $a->is_mobile || $a->is_tablet)
|
if(! local_user() || $a->is_mobile || $a->is_tablet)
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
// $mobile_detect = new Mobile_Detect();
|
// $mobile_detect = new Mobile_Detect();
|
||||||
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
|
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
|
||||||
|
|
||||||
// if ($is_mobile)
|
// if($is_mobile)
|
||||||
// return $o;
|
// return $o;
|
||||||
|
|
||||||
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
|
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
|
||||||
|
|
@ -479,27 +479,27 @@ function get_birthdays() {
|
||||||
|
|
||||||
$istoday = false;
|
$istoday = false;
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if (strlen($rr['name']))
|
if(strlen($rr['name']))
|
||||||
$total ++;
|
$total ++;
|
||||||
if ((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now))
|
if((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now))
|
||||||
$istoday = true;
|
$istoday = true;
|
||||||
}
|
}
|
||||||
$classtoday = $istoday ? ' birthday-today ' : '';
|
$classtoday = $istoday ? ' birthday-today ' : '';
|
||||||
if ($total) {
|
if($total) {
|
||||||
foreach ($r as &$rr) {
|
foreach($r as &$rr) {
|
||||||
if (! strlen($rr['name']))
|
if(! strlen($rr['name']))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// avoid duplicates
|
// avoid duplicates
|
||||||
|
|
||||||
if (in_array($rr['cid'],$cids))
|
if(in_array($rr['cid'],$cids))
|
||||||
continue;
|
continue;
|
||||||
$cids[] = $rr['cid'];
|
$cids[] = $rr['cid'];
|
||||||
|
|
||||||
$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
|
$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
|
||||||
$sparkle = '';
|
$sparkle = '';
|
||||||
$url = $rr['url'];
|
$url = $rr['url'];
|
||||||
if ($rr['network'] === NETWORK_DFRN) {
|
if($rr['network'] === NETWORK_DFRN) {
|
||||||
$sparkle = " sparkle";
|
$sparkle = " sparkle";
|
||||||
$url = App::get_baseurl() . '/redir/' . $rr['cid'];
|
$url = App::get_baseurl() . '/redir/' . $rr['cid'];
|
||||||
}
|
}
|
||||||
|
|
@ -534,14 +534,14 @@ function get_events() {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (! local_user() || $a->is_mobile || $a->is_tablet)
|
if(! local_user() || $a->is_mobile || $a->is_tablet)
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
|
|
||||||
// $mobile_detect = new Mobile_Detect();
|
// $mobile_detect = new Mobile_Detect();
|
||||||
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
|
// $is_mobile = $mobile_detect->isMobile() || $mobile_detect->isTablet();
|
||||||
|
|
||||||
// if ($is_mobile)
|
// if($is_mobile)
|
||||||
// return $o;
|
// return $o;
|
||||||
|
|
||||||
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
|
$bd_format = t('g A l F d') ; // 8 AM Friday January 18
|
||||||
|
|
@ -559,30 +559,30 @@ function get_events() {
|
||||||
$now = strtotime('now');
|
$now = strtotime('now');
|
||||||
$istoday = false;
|
$istoday = false;
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if (strlen($rr['name']))
|
if(strlen($rr['name']))
|
||||||
$total ++;
|
$total ++;
|
||||||
|
|
||||||
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start'],'Y-m-d');
|
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start'],'Y-m-d');
|
||||||
if ($strt === datetime_convert('UTC',$a->timezone,'now','Y-m-d'))
|
if($strt === datetime_convert('UTC',$a->timezone,'now','Y-m-d'))
|
||||||
$istoday = true;
|
$istoday = true;
|
||||||
}
|
}
|
||||||
$classtoday = (($istoday) ? 'event-today' : '');
|
$classtoday = (($istoday) ? 'event-today' : '');
|
||||||
|
|
||||||
$skip = 0;
|
$skip = 0;
|
||||||
|
|
||||||
foreach ($r as &$rr) {
|
foreach($r as &$rr) {
|
||||||
$title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8'));
|
$title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8'));
|
||||||
|
|
||||||
if (strlen($title) > 35)
|
if(strlen($title) > 35)
|
||||||
$title = substr($title,0,32) . '... ';
|
$title = substr($title,0,32) . '... ';
|
||||||
|
|
||||||
$description = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
|
$description = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
|
||||||
if (! $description)
|
if(! $description)
|
||||||
$description = t('[No description]');
|
$description = t('[No description]');
|
||||||
|
|
||||||
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
|
$strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
|
||||||
|
|
||||||
if (substr($strt,0,10) < datetime_convert('UTC',$a->timezone,'now','Y-m-d')) {
|
if(substr($strt,0,10) < datetime_convert('UTC',$a->timezone,'now','Y-m-d')) {
|
||||||
$skip++;
|
$skip++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -617,7 +617,7 @@ function advanced_profile(App $a) {
|
||||||
'$title' => t('Profile')
|
'$title' => t('Profile')
|
||||||
));
|
));
|
||||||
|
|
||||||
if ($a->profile['name']) {
|
if($a->profile['name']) {
|
||||||
|
|
||||||
$tpl = get_markup_template('profile_advanced.tpl');
|
$tpl = get_markup_template('profile_advanced.tpl');
|
||||||
|
|
||||||
|
|
@ -625,10 +625,10 @@ function advanced_profile(App $a) {
|
||||||
|
|
||||||
$profile['fullname'] = array( t('Full Name:'), $a->profile['name'] ) ;
|
$profile['fullname'] = array( t('Full Name:'), $a->profile['name'] ) ;
|
||||||
|
|
||||||
if ($a->profile['gender']) $profile['gender'] = array( t('Gender:'), $a->profile['gender'] );
|
if($a->profile['gender']) $profile['gender'] = array( t('Gender:'), $a->profile['gender'] );
|
||||||
|
|
||||||
|
|
||||||
if (($a->profile['dob']) && ($a->profile['dob'] != '0000-00-00')) {
|
if(($a->profile['dob']) && ($a->profile['dob'] != '0000-00-00')) {
|
||||||
|
|
||||||
$year_bd_format = t('j F, Y');
|
$year_bd_format = t('j F, Y');
|
||||||
$short_bd_format = t('j F');
|
$short_bd_format = t('j F');
|
||||||
|
|
@ -642,10 +642,10 @@ function advanced_profile(App $a) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($age = age($a->profile['dob'],$a->profile['timezone'],'')) $profile['age'] = array( t('Age:'), $age );
|
if($age = age($a->profile['dob'],$a->profile['timezone'],'')) $profile['age'] = array( t('Age:'), $age );
|
||||||
|
|
||||||
|
|
||||||
if ($a->profile['marital']) $profile['marital'] = array( t('Status:'), $a->profile['marital']);
|
if($a->profile['marital']) $profile['marital'] = array( t('Status:'), $a->profile['marital']);
|
||||||
|
|
||||||
/// @TODO Maybe use x() here, plus below?
|
/// @TODO Maybe use x() here, plus below?
|
||||||
if ($a->profile['with']) {
|
if ($a->profile['with']) {
|
||||||
|
|
@ -850,14 +850,14 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_my_url() {
|
function get_my_url() {
|
||||||
if (x($_SESSION,'my_url'))
|
if(x($_SESSION,'my_url'))
|
||||||
return $_SESSION['my_url'];
|
return $_SESSION['my_url'];
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function zrl_init(App $a) {
|
function zrl_init(App $a) {
|
||||||
$tmp_str = get_my_url();
|
$tmp_str = get_my_url();
|
||||||
if (validate_url($tmp_str)) {
|
if(validate_url($tmp_str)) {
|
||||||
|
|
||||||
// Is it a DDoS attempt?
|
// Is it a DDoS attempt?
|
||||||
// The check fetches the cached value from gprobe to reduce the load for this system
|
// The check fetches the cached value from gprobe to reduce the load for this system
|
||||||
|
|
@ -878,20 +878,16 @@ function zrl_init(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function zrl($s,$force = false) {
|
function zrl($s,$force = false) {
|
||||||
if (! strlen($s)) {
|
if(! strlen($s))
|
||||||
return $s;
|
return $s;
|
||||||
}
|
if((! strpos($s,'/profile/')) && (! $force))
|
||||||
if ((! strpos($s,'/profile/')) && (! $force)) {
|
|
||||||
return $s;
|
return $s;
|
||||||
}
|
if($force && substr($s,-1,1) !== '/')
|
||||||
if ($force && substr($s,-1,1) !== '/') {
|
|
||||||
$s = $s . '/';
|
$s = $s . '/';
|
||||||
}
|
|
||||||
$achar = strpos($s,'?') ? '&' : '?';
|
$achar = strpos($s,'?') ? '&' : '?';
|
||||||
$mine = get_my_url();
|
$mine = get_my_url();
|
||||||
if ($mine and ! link_compare($mine,$s)) {
|
if($mine and ! link_compare($mine,$s))
|
||||||
return $s . $achar . 'zrl=' . urlencode($mine);
|
return $s . $achar . 'zrl=' . urlencode($mine);
|
||||||
}
|
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -911,10 +907,9 @@ function zrl($s,$force = false) {
|
||||||
*/
|
*/
|
||||||
function get_theme_uid() {
|
function get_theme_uid() {
|
||||||
$uid = (($_REQUEST['puid']) ? intval($_REQUEST['puid']) : 0);
|
$uid = (($_REQUEST['puid']) ? intval($_REQUEST['puid']) : 0);
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
if ((get_pconfig(local_user(),'system','always_my_theme')) || (! $uid)) {
|
if((get_pconfig(local_user(),'system','always_my_theme')) || (! $uid))
|
||||||
return local_user();
|
return local_user();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $uid;
|
return $uid;
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ function limit_body_size($body) {
|
||||||
$img_start = strpos($orig_body, '[img');
|
$img_start = strpos($orig_body, '[img');
|
||||||
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
||||||
$img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
|
$img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
|
||||||
while (($img_st_close !== false) && ($img_end !== false)) {
|
while(($img_st_close !== false) && ($img_end !== false)) {
|
||||||
|
|
||||||
$img_st_close++; // make it point to AFTER the closing bracket
|
$img_st_close++; // make it point to AFTER the closing bracket
|
||||||
$img_end += $img_start;
|
$img_end += $img_start;
|
||||||
|
|
@ -1099,7 +1099,7 @@ function item_body_set_hashtags(&$item) {
|
||||||
"#$2", $item["body"]);
|
"#$2", $item["body"]);
|
||||||
|
|
||||||
|
|
||||||
foreach ($tags as $tag) {
|
foreach($tags as $tag) {
|
||||||
if (strpos($tag,'#') !== 0)
|
if (strpos($tag,'#') !== 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
@ -1170,7 +1170,7 @@ function get_item_id($guid, $uid = 0) {
|
||||||
function get_item_contact($item,$contacts) {
|
function get_item_contact($item,$contacts) {
|
||||||
if (! count($contacts) || (! is_array($item)))
|
if (! count($contacts) || (! is_array($item)))
|
||||||
return false;
|
return false;
|
||||||
foreach ($contacts as $contact) {
|
foreach($contacts as $contact) {
|
||||||
if ($contact['id'] == $item['contact-id']) {
|
if ($contact['id'] == $item['contact-id']) {
|
||||||
return $contact;
|
return $contact;
|
||||||
break; // NOTREACHED
|
break; // NOTREACHED
|
||||||
|
|
@ -1224,7 +1224,7 @@ function tag_deliver($uid,$item_id) {
|
||||||
|
|
||||||
$cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER);
|
$cnt = preg_match_all('/[\@\!]\[url\=(.*?)\](.*?)\[\/url\]/ism',$item['body'],$matches,PREG_SET_ORDER);
|
||||||
if ($cnt) {
|
if ($cnt) {
|
||||||
foreach ($matches as $mtch) {
|
foreach($matches as $mtch) {
|
||||||
if (link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) {
|
if (link_compare($link,$mtch[1]) || link_compare($dlink,$mtch[1])) {
|
||||||
$mention = true;
|
$mention = true;
|
||||||
logger('tag_deliver: mention found: ' . $mtch[2]);
|
logger('tag_deliver: mention found: ' . $mtch[2]);
|
||||||
|
|
@ -1681,7 +1681,7 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
|
||||||
$img_start = strpos($orig_body, '[img');
|
$img_start = strpos($orig_body, '[img');
|
||||||
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
||||||
$img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/img]') : false);
|
$img_len = ($img_start !== false ? strpos(substr($orig_body, $img_start + $img_st_close + 1), '[/img]') : false);
|
||||||
while ( ($img_st_close !== false) && ($img_len !== false) ) {
|
while( ($img_st_close !== false) && ($img_len !== false) ) {
|
||||||
|
|
||||||
$img_st_close++; // make it point to AFTER the closing bracket
|
$img_st_close++; // make it point to AFTER the closing bracket
|
||||||
$image = substr($orig_body, $img_start + $img_st_close, $img_len);
|
$image = substr($orig_body, $img_start + $img_st_close, $img_len);
|
||||||
|
|
@ -1810,7 +1810,7 @@ function item_getfeedtags($item) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$cnt = preg_match_all('|\#\[url\=(.*?)\](.*?)\[\/url\]|',$item['tag'],$matches);
|
$cnt = preg_match_all('|\#\[url\=(.*?)\](.*?)\[\/url\]|',$item['tag'],$matches);
|
||||||
if ($cnt) {
|
if ($cnt) {
|
||||||
for ($x = 0; $x < $cnt; $x ++) {
|
for($x = 0; $x < $cnt; $x ++) {
|
||||||
if ($matches[1][$x])
|
if ($matches[1][$x])
|
||||||
$ret[$matches[2][$x]] = array('#',$matches[1][$x], $matches[2][$x]);
|
$ret[$matches[2][$x]] = array('#',$matches[1][$x], $matches[2][$x]);
|
||||||
}
|
}
|
||||||
|
|
@ -1818,7 +1818,7 @@ function item_getfeedtags($item) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$cnt = preg_match_all('|\@\[url\=(.*?)\](.*?)\[\/url\]|',$item['tag'],$matches);
|
$cnt = preg_match_all('|\@\[url\=(.*?)\](.*?)\[\/url\]|',$item['tag'],$matches);
|
||||||
if ($cnt) {
|
if ($cnt) {
|
||||||
for ($x = 0; $x < $cnt; $x ++) {
|
for($x = 0; $x < $cnt; $x ++) {
|
||||||
if ($matches[1][$x])
|
if ($matches[1][$x])
|
||||||
$ret[] = array('@',$matches[1][$x], $matches[2][$x]);
|
$ret[] = array('@',$matches[1][$x], $matches[2][$x]);
|
||||||
}
|
}
|
||||||
|
|
@ -1876,7 +1876,7 @@ function item_expire($uid, $days, $network = "", $force = false) {
|
||||||
|
|
||||||
logger('expire: # items=' . count($r). "; expire items: $expire_items, expire notes: $expire_notes, expire starred: $expire_starred, expire photos: $expire_photos");
|
logger('expire: # items=' . count($r). "; expire items: $expire_items, expire notes: $expire_notes, expire starred: $expire_starred, expire photos: $expire_photos");
|
||||||
|
|
||||||
foreach ($r as $item) {
|
foreach($r as $item) {
|
||||||
|
|
||||||
// don't expire filed items
|
// don't expire filed items
|
||||||
|
|
||||||
|
|
@ -1909,7 +1909,7 @@ function drop_items($items) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (count($items)) {
|
if (count($items)) {
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
$owner = drop_item($item,false);
|
$owner = drop_item($item,false);
|
||||||
if ($owner && ! $uid)
|
if ($owner && ! $uid)
|
||||||
$uid = $owner;
|
$uid = $owner;
|
||||||
|
|
@ -1949,7 +1949,7 @@ function drop_item($id,$interactive = true) {
|
||||||
// check if logged in user is either the author or owner of this item
|
// check if logged in user is either the author or owner of this item
|
||||||
|
|
||||||
if (is_array($_SESSION['remote'])) {
|
if (is_array($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $visitor) {
|
foreach($_SESSION['remote'] as $visitor) {
|
||||||
if ($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) {
|
if ($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) {
|
||||||
$contact_id = $visitor['cid'];
|
$contact_id = $visitor['cid'];
|
||||||
break;
|
break;
|
||||||
|
|
@ -1966,7 +1966,7 @@ function drop_item($id,$interactive = true) {
|
||||||
// so add any arguments as hidden inputs
|
// so add any arguments as hidden inputs
|
||||||
$query = explode_querystring($a->query_string);
|
$query = explode_querystring($a->query_string);
|
||||||
$inputs = array();
|
$inputs = array();
|
||||||
foreach ($query['args'] as $arg) {
|
foreach($query['args'] as $arg) {
|
||||||
if (strpos($arg, 'confirm=') === false) {
|
if (strpos($arg, 'confirm=') === false) {
|
||||||
$arg_parts = explode('=', $arg);
|
$arg_parts = explode('=', $arg);
|
||||||
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
||||||
|
|
@ -2005,7 +2005,7 @@ function drop_item($id,$interactive = true) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$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) {
|
||||||
file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],true);
|
file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2014,7 +2014,7 @@ function drop_item($id,$interactive = 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) {
|
||||||
file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],false);
|
file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2044,7 +2044,7 @@ function drop_item($id,$interactive = true) {
|
||||||
|
|
||||||
// If item has attachments, drop them
|
// If item has attachments, drop them
|
||||||
|
|
||||||
foreach (explode(",",$item['attach']) as $attach){
|
foreach(explode(",",$item['attach']) as $attach){
|
||||||
preg_match("|attach/(\d+)|", $attach, $matches);
|
preg_match("|attach/(\d+)|", $attach, $matches);
|
||||||
q("DELETE FROM `attach` WHERE `id` = %d AND `uid` = %d",
|
q("DELETE FROM `attach` WHERE `id` = %d AND `uid` = %d",
|
||||||
intval($matches[1]),
|
intval($matches[1]),
|
||||||
|
|
@ -2179,7 +2179,7 @@ function list_post_dates($uid, $wall) {
|
||||||
|
|
||||||
// Starting with the current month, get the first and last days of every
|
// Starting with the current month, get the first and last days of every
|
||||||
// month down to and including the month of the first post
|
// month down to and including the month of the first post
|
||||||
while (substr($dnow, 0, 7) >= substr($dthen, 0, 7)) {
|
while(substr($dnow, 0, 7) >= substr($dthen, 0, 7)) {
|
||||||
$dyear = intval(substr($dnow,0,4));
|
$dyear = intval(substr($dnow,0,4));
|
||||||
$dstart = substr($dnow,0,8) . '01';
|
$dstart = substr($dnow,0,8) . '01';
|
||||||
$dend = substr($dnow,0,8) . get_dim(intval($dnow),intval(substr($dnow,5)));
|
$dend = substr($dnow,0,8) . get_dim(intval($dnow),intval(substr($dnow,5)));
|
||||||
|
|
@ -2208,7 +2208,7 @@ function posted_dates($uid,$wall) {
|
||||||
$ret = array();
|
$ret = array();
|
||||||
// Starting with the current month, get the first and last days of every
|
// Starting with the current month, get the first and last days of every
|
||||||
// month down to and including the month of the first post
|
// month down to and including the month of the first post
|
||||||
while (substr($dnow, 0, 7) >= substr($dthen, 0, 7)) {
|
while(substr($dnow, 0, 7) >= substr($dthen, 0, 7)) {
|
||||||
$dstart = substr($dnow,0,8) . '01';
|
$dstart = substr($dnow,0,8) . '01';
|
||||||
$dend = substr($dnow,0,8) . get_dim(intval($dnow),intval(substr($dnow,5)));
|
$dend = substr($dnow,0,8) . get_dim(intval($dnow),intval(substr($dnow,5)));
|
||||||
$start_month = datetime_convert('','',$dstart,'Y-m-d');
|
$start_month = datetime_convert('','',$dstart,'Y-m-d');
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
// Provide some ability to lock a PHP function so that multiple processes
|
// Provide some ability to lock a PHP function so that multiple processes
|
||||||
// can't run the function concurrently
|
// can't run the function concurrently
|
||||||
if (! function_exists('lock_function')) {
|
if(! function_exists('lock_function')) {
|
||||||
function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) {
|
function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) {
|
||||||
if ( $wait_sec == 0 )
|
if( $wait_sec == 0 )
|
||||||
$wait_sec = 2; // don't let the user pick a value that's likely to crash the system
|
$wait_sec = 2; // don't let the user pick a value that's likely to crash the system
|
||||||
|
|
||||||
$got_lock = false;
|
$got_lock = false;
|
||||||
|
|
@ -16,7 +16,7 @@ function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) {
|
||||||
dbesc($fn_name)
|
dbesc($fn_name)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ((dbm::is_result($r)) AND (!$r[0]['locked'] OR (strtotime($r[0]['created']) < time() - 3600))) {
|
if((dbm::is_result($r)) AND (!$r[0]['locked'] OR (strtotime($r[0]['created']) < time() - 3600))) {
|
||||||
q("UPDATE `locks` SET `locked` = 1, `created` = '%s' WHERE `name` = '%s'",
|
q("UPDATE `locks` SET `locked` = 1, `created` = '%s' WHERE `name` = '%s'",
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc($fn_name)
|
dbesc($fn_name)
|
||||||
|
|
@ -34,10 +34,10 @@ function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) {
|
||||||
|
|
||||||
q("UNLOCK TABLES");
|
q("UNLOCK TABLES");
|
||||||
|
|
||||||
if (($block) && (! $got_lock))
|
if(($block) && (! $got_lock))
|
||||||
sleep($wait_sec);
|
sleep($wait_sec);
|
||||||
|
|
||||||
} while (($block) && (! $got_lock) && ((time() - $start) < $timeout));
|
} while(($block) && (! $got_lock) && ((time() - $start) < $timeout));
|
||||||
|
|
||||||
logger('lock_function: function ' . $fn_name . ' with blocking = ' . $block . ' got_lock = ' . $got_lock . ' time = ' . (time() - $start), LOGGER_DEBUG);
|
logger('lock_function: function ' . $fn_name . ' with blocking = ' . $block . ' got_lock = ' . $got_lock . ' time = ' . (time() - $start), LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
@ -45,29 +45,28 @@ function lock_function($fn_name, $block = true, $wait_sec = 2, $timeout = 30) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('block_on_function_lock')) {
|
if(! function_exists('block_on_function_lock')) {
|
||||||
function block_on_function_lock($fn_name, $wait_sec = 2, $timeout = 30) {
|
function block_on_function_lock($fn_name, $wait_sec = 2, $timeout = 30) {
|
||||||
if ( $wait_sec == 0 )
|
if( $wait_sec == 0 )
|
||||||
$wait_sec = 2; // don't let the user pick a value that's likely to crash the system
|
$wait_sec = 2; // don't let the user pick a value that's likely to crash the system
|
||||||
|
|
||||||
$start = time();
|
$start = time();
|
||||||
|
|
||||||
do {
|
do {
|
||||||
$r = q("SELECT locked FROM locks WHERE name = '%s' LIMIT 1",
|
$r = q("SELECT locked FROM locks WHERE name = '%s' LIMIT 1",
|
||||||
dbesc($fn_name)
|
dbesc($fn_name)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($r) && $r[0]['locked']) {
|
if (dbm::is_result($r) && $r[0]['locked'])
|
||||||
sleep($wait_sec);
|
sleep($wait_sec);
|
||||||
}
|
|
||||||
|
|
||||||
} while (dbm::is_result($r) && $r[0]['locked'] && ((time() - $start) < $timeout));
|
} while(dbm::is_result($r) && $r[0]['locked'] && ((time() - $start) < $timeout));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('unlock_function')) {
|
if(! function_exists('unlock_function')) {
|
||||||
function unlock_function($fn_name) {
|
function unlock_function($fn_name) {
|
||||||
$r = q("UPDATE `locks` SET `locked` = 0, `created` = '%s' WHERE `name` = '%s'",
|
$r = q("UPDATE `locks` SET `locked` = 0, `created` = '%s' WHERE `name` = '%s'",
|
||||||
dbesc(NULL_DATE),
|
dbesc(NULL_DATE),
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (! $recipient) return -1;
|
if(! $recipient) return -1;
|
||||||
|
|
||||||
if (! strlen($subject))
|
if(! strlen($subject))
|
||||||
$subject = t('[no subject]');
|
$subject = t('[no subject]');
|
||||||
|
|
||||||
$me = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
|
$me = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
|
||||||
|
|
@ -22,7 +22,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! (count($me) && (count($contact)))) {
|
if(! (count($me) && (count($contact)))) {
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -34,7 +34,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
|
||||||
|
|
||||||
// look for any existing conversation structure
|
// look for any existing conversation structure
|
||||||
|
|
||||||
if (strlen($replyto)) {
|
if(strlen($replyto)) {
|
||||||
$reply = true;
|
$reply = true;
|
||||||
$r = q("select convid from mail where uid = %d and ( uri = '%s' or `parent-uri` = '%s' ) limit 1",
|
$r = q("select convid from mail where uid = %d and ( uri = '%s' or `parent-uri` = '%s' ) limit 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
|
|
@ -45,7 +45,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
|
||||||
$convid = $r[0]['convid'];
|
$convid = $r[0]['convid'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $convid) {
|
if(! $convid) {
|
||||||
|
|
||||||
// create a new conversation
|
// create a new conversation
|
||||||
|
|
||||||
|
|
@ -78,12 +78,12 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
|
||||||
$convid = $r[0]['id'];
|
$convid = $r[0]['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $convid) {
|
if(! $convid) {
|
||||||
logger('send message: conversation not found.');
|
logger('send message: conversation not found.');
|
||||||
return -4;
|
return -4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! strlen($replyto)) {
|
if(! strlen($replyto)) {
|
||||||
$replyto = $convuri;
|
$replyto = $convuri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ function removelinebreak($message)
|
||||||
$lines = array();
|
$lines = array();
|
||||||
$lineno = 0;
|
$lineno = 0;
|
||||||
|
|
||||||
foreach ($arrbody as $i => $line) {
|
foreach($arrbody as $i => $line) {
|
||||||
$currquotelevel = 0;
|
$currquotelevel = 0;
|
||||||
$currline = $line;
|
$currline = $line;
|
||||||
while ((strlen($currline)>0) and ((substr($currline, 0, 1) == '>')
|
while ((strlen($currline)>0) and ((substr($currline, 0, 1) == '>')
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ function nav(App $a) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!(x($a->page,'nav')))
|
if(!(x($a->page,'nav')))
|
||||||
$a->page['nav'] = '';
|
$a->page['nav'] = '';
|
||||||
|
|
||||||
$a->page['htmlhead'] .= replace_macros(get_markup_template('nav_head.tpl'), array());
|
$a->page['htmlhead'] .= replace_macros(get_markup_template('nav_head.tpl'), array());
|
||||||
|
|
@ -136,7 +136,7 @@ function nav_info(App $a)
|
||||||
|
|
||||||
if (strlen(get_config('system', 'singleuser'))) {
|
if (strlen(get_config('system', 'singleuser'))) {
|
||||||
$gdir = get_config('system', 'directory');
|
$gdir = get_config('system', 'directory');
|
||||||
if (strlen($gdir)) {
|
if(strlen($gdir)) {
|
||||||
$gdirpath = zrl($gdir, true);
|
$gdirpath = zrl($gdir, true);
|
||||||
}
|
}
|
||||||
} elseif (get_config('system', 'community_page_style') == CP_USERS_ON_SERVER) {
|
} elseif (get_config('system', 'community_page_style') == CP_USERS_ON_SERVER) {
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
||||||
|
|
||||||
@curl_setopt($ch, CURLOPT_HEADER, true);
|
@curl_setopt($ch, CURLOPT_HEADER, true);
|
||||||
|
|
||||||
if (x($opts,"cookiejar")) {
|
if(x($opts,"cookiejar")) {
|
||||||
curl_setopt($ch, CURLOPT_COOKIEJAR, $opts["cookiejar"]);
|
curl_setopt($ch, CURLOPT_COOKIEJAR, $opts["cookiejar"]);
|
||||||
curl_setopt($ch, CURLOPT_COOKIEFILE, $opts["cookiejar"]);
|
curl_setopt($ch, CURLOPT_COOKIEFILE, $opts["cookiejar"]);
|
||||||
}
|
}
|
||||||
|
|
@ -101,13 +101,13 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
||||||
@curl_setopt($ch, CURLOPT_RANGE, '0-'.$range);
|
@curl_setopt($ch, CURLOPT_RANGE, '0-'.$range);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($opts,'headers')){
|
if(x($opts,'headers')){
|
||||||
@curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['headers']);
|
@curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['headers']);
|
||||||
}
|
}
|
||||||
if (x($opts,'nobody')){
|
if(x($opts,'nobody')){
|
||||||
@curl_setopt($ch, CURLOPT_NOBODY, $opts['nobody']);
|
@curl_setopt($ch, CURLOPT_NOBODY, $opts['nobody']);
|
||||||
}
|
}
|
||||||
if (x($opts,'timeout')){
|
if(x($opts,'timeout')){
|
||||||
@curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']);
|
@curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']);
|
||||||
} else {
|
} else {
|
||||||
$curl_time = intval(get_config('system','curl_timeout'));
|
$curl_time = intval(get_config('system','curl_timeout'));
|
||||||
|
|
@ -124,14 +124,14 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$prx = get_config('system','proxy');
|
$prx = get_config('system','proxy');
|
||||||
if (strlen($prx)) {
|
if(strlen($prx)) {
|
||||||
@curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
|
@curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
|
||||||
@curl_setopt($ch, CURLOPT_PROXY, $prx);
|
@curl_setopt($ch, CURLOPT_PROXY, $prx);
|
||||||
$prxusr = @get_config('system','proxyuser');
|
$prxusr = @get_config('system','proxyuser');
|
||||||
if (strlen($prxusr))
|
if(strlen($prxusr))
|
||||||
@curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr);
|
@curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr);
|
||||||
}
|
}
|
||||||
if ($binary)
|
if($binary)
|
||||||
@curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
|
@curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
|
||||||
|
|
||||||
$a->set_curl_code(0);
|
$a->set_curl_code(0);
|
||||||
|
|
@ -156,7 +156,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
||||||
// Pull out multiple headers, e.g. proxy and continuation headers
|
// Pull out multiple headers, e.g. proxy and continuation headers
|
||||||
// allow for HTTP/2.x without fixing code
|
// allow for HTTP/2.x without fixing code
|
||||||
|
|
||||||
while (preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/',$base)) {
|
while(preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/',$base)) {
|
||||||
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
|
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
|
||||||
$header .= $chunk;
|
$header .= $chunk;
|
||||||
$base = substr($base,strlen($chunk));
|
$base = substr($base,strlen($chunk));
|
||||||
|
|
@ -166,7 +166,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
||||||
$a->set_curl_content_type($curl_info['content_type']);
|
$a->set_curl_content_type($curl_info['content_type']);
|
||||||
$a->set_curl_headers($header);
|
$a->set_curl_headers($header);
|
||||||
|
|
||||||
if ($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
|
if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
|
||||||
$new_location_info = @parse_url($curl_info["redirect_url"]);
|
$new_location_info = @parse_url($curl_info["redirect_url"]);
|
||||||
$old_location_info = @parse_url($curl_info["url"]);
|
$old_location_info = @parse_url($curl_info["url"]);
|
||||||
|
|
||||||
|
|
@ -179,7 +179,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
||||||
if (preg_match('/(Location:|URI:)(.*?)\n/i', $header, $matches)) {
|
if (preg_match('/(Location:|URI:)(.*?)\n/i', $header, $matches)) {
|
||||||
$newurl = trim(array_pop($matches));
|
$newurl = trim(array_pop($matches));
|
||||||
}
|
}
|
||||||
if (strpos($newurl,'/') === 0)
|
if(strpos($newurl,'/') === 0)
|
||||||
$newurl = $old_location_info["scheme"]."://".$old_location_info["host"].$newurl;
|
$newurl = $old_location_info["scheme"]."://".$old_location_info["host"].$newurl;
|
||||||
if (filter_var($newurl, FILTER_VALIDATE_URL)) {
|
if (filter_var($newurl, FILTER_VALIDATE_URL)) {
|
||||||
$redirects++;
|
$redirects++;
|
||||||
|
|
@ -200,7 +200,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
||||||
$ret['return_code'] = $rc;
|
$ret['return_code'] = $rc;
|
||||||
$ret['success'] = (($rc >= 200 && $rc <= 299) ? true : false);
|
$ret['success'] = (($rc >= 200 && $rc <= 299) ? true : false);
|
||||||
$ret['redirect_url'] = $url;
|
$ret['redirect_url'] = $url;
|
||||||
if (! $ret['success']) {
|
if(! $ret['success']) {
|
||||||
$ret['error'] = curl_error($ch);
|
$ret['error'] = curl_error($ch);
|
||||||
$ret['debug'] = $curl_info;
|
$ret['debug'] = $curl_info;
|
||||||
logger('z_fetch_url: error: ' . $url . ': ' . $ret['error'], LOGGER_DEBUG);
|
logger('z_fetch_url: error: ' . $url . ': ' . $ret['error'], LOGGER_DEBUG);
|
||||||
|
|
@ -208,7 +208,7 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
||||||
}
|
}
|
||||||
$ret['body'] = substr($s,strlen($header));
|
$ret['body'] = substr($s,strlen($header));
|
||||||
$ret['header'] = $header;
|
$ret['header'] = $header;
|
||||||
if (x($opts,'debug')) {
|
if(x($opts,'debug')) {
|
||||||
$ret['debug'] = $curl_info;
|
$ret['debug'] = $curl_info;
|
||||||
}
|
}
|
||||||
@curl_close($ch);
|
@curl_close($ch);
|
||||||
|
|
@ -237,7 +237,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$ch = curl_init($url);
|
$ch = curl_init($url);
|
||||||
if (($redirects > 8) || (! $ch))
|
if(($redirects > 8) || (! $ch))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
logger("post_url: start ".$url, LOGGER_DATA);
|
logger("post_url: start ".$url, LOGGER_DATA);
|
||||||
|
|
@ -248,7 +248,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
|
||||||
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
|
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
|
||||||
curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
|
curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
|
||||||
|
|
||||||
if (intval($timeout)) {
|
if(intval($timeout)) {
|
||||||
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -256,16 +256,16 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
|
||||||
curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60));
|
curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('LIGHTTPD')) {
|
if(defined('LIGHTTPD')) {
|
||||||
if (!is_array($headers)) {
|
if(!is_array($headers)) {
|
||||||
$headers = array('Expect:');
|
$headers = array('Expect:');
|
||||||
} else {
|
} else {
|
||||||
if (!in_array('Expect:', $headers)) {
|
if(!in_array('Expect:', $headers)) {
|
||||||
array_push($headers, 'Expect:');
|
array_push($headers, 'Expect:');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($headers)
|
if($headers)
|
||||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||||
|
|
||||||
$check_cert = get_config('system','verifyssl');
|
$check_cert = get_config('system','verifyssl');
|
||||||
|
|
@ -274,11 +274,11 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
|
||||||
@curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
|
@curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
|
||||||
}
|
}
|
||||||
$prx = get_config('system','proxy');
|
$prx = get_config('system','proxy');
|
||||||
if (strlen($prx)) {
|
if(strlen($prx)) {
|
||||||
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
|
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
|
||||||
curl_setopt($ch, CURLOPT_PROXY, $prx);
|
curl_setopt($ch, CURLOPT_PROXY, $prx);
|
||||||
$prxusr = get_config('system','proxyuser');
|
$prxusr = get_config('system','proxyuser');
|
||||||
if (strlen($prxusr))
|
if(strlen($prxusr))
|
||||||
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr);
|
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -300,17 +300,17 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
|
||||||
// Pull out multiple headers, e.g. proxy and continuation headers
|
// Pull out multiple headers, e.g. proxy and continuation headers
|
||||||
// allow for HTTP/2.x without fixing code
|
// allow for HTTP/2.x without fixing code
|
||||||
|
|
||||||
while (preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/',$base)) {
|
while(preg_match('/^HTTP\/[1-2].+? [1-5][0-9][0-9]/',$base)) {
|
||||||
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
|
$chunk = substr($base,0,strpos($base,"\r\n\r\n")+4);
|
||||||
$header .= $chunk;
|
$header .= $chunk;
|
||||||
$base = substr($base,strlen($chunk));
|
$base = substr($base,strlen($chunk));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
|
if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307) {
|
||||||
$matches = array();
|
$matches = array();
|
||||||
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
|
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
|
||||||
$newurl = trim(array_pop($matches));
|
$newurl = trim(array_pop($matches));
|
||||||
if (strpos($newurl,'/') === 0)
|
if(strpos($newurl,'/') === 0)
|
||||||
$newurl = $old_location_info["scheme"] . "://" . $old_location_info["host"] . $newurl;
|
$newurl = $old_location_info["scheme"] . "://" . $old_location_info["host"] . $newurl;
|
||||||
if (filter_var($newurl, FILTER_VALIDATE_URL)) {
|
if (filter_var($newurl, FILTER_VALIDATE_URL)) {
|
||||||
$redirects++;
|
$redirects++;
|
||||||
|
|
@ -341,7 +341,7 @@ function xml_status($st, $message = '') {
|
||||||
|
|
||||||
$xml_message = ((strlen($message)) ? "\t<message>" . xmlify($message) . "</message>\r\n" : '');
|
$xml_message = ((strlen($message)) ? "\t<message>" . xmlify($message) . "</message>\r\n" : '');
|
||||||
|
|
||||||
if ($st)
|
if($st)
|
||||||
logger('xml_status returning non_zero: ' . $st . " message=" . $message);
|
logger('xml_status returning non_zero: ' . $st . " message=" . $message);
|
||||||
|
|
||||||
header( "Content-type: text/xml" );
|
header( "Content-type: text/xml" );
|
||||||
|
|
@ -369,12 +369,12 @@ function xml_status($st, $message = '') {
|
||||||
*/
|
*/
|
||||||
function http_status_exit($val, $description = array()) {
|
function http_status_exit($val, $description = array()) {
|
||||||
$err = '';
|
$err = '';
|
||||||
if ($val >= 400) {
|
if($val >= 400) {
|
||||||
$err = 'Error';
|
$err = 'Error';
|
||||||
if (!isset($description["title"]))
|
if (!isset($description["title"]))
|
||||||
$description["title"] = $err." ".$val;
|
$description["title"] = $err." ".$val;
|
||||||
}
|
}
|
||||||
if ($val >= 200 && $val < 300)
|
if($val >= 200 && $val < 300)
|
||||||
$err = 'OK';
|
$err = 'OK';
|
||||||
|
|
||||||
logger('http_status_exit ' . $val);
|
logger('http_status_exit ' . $val);
|
||||||
|
|
@ -400,20 +400,20 @@ function http_status_exit($val, $description = array()) {
|
||||||
* @return boolean True if it's a valid URL, fals if something wrong with it
|
* @return boolean True if it's a valid URL, fals if something wrong with it
|
||||||
*/
|
*/
|
||||||
function validate_url(&$url) {
|
function validate_url(&$url) {
|
||||||
if (get_config('system','disable_url_validation'))
|
if(get_config('system','disable_url_validation'))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// no naked subdomains (allow localhost for tests)
|
// no naked subdomains (allow localhost for tests)
|
||||||
if (strpos($url,'.') === false && strpos($url,'/localhost/') === false)
|
if(strpos($url,'.') === false && strpos($url,'/localhost/') === false)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (substr($url,0,4) != 'http')
|
if(substr($url,0,4) != 'http')
|
||||||
$url = 'http://' . $url;
|
$url = 'http://' . $url;
|
||||||
|
|
||||||
/// @TODO Really supress function outcomes? Why not find them + debug them?
|
/// @TODO Really supress function outcomes? Why not find them + debug them?
|
||||||
$h = @parse_url($url);
|
$h = @parse_url($url);
|
||||||
|
|
||||||
if ((is_array($h)) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
|
if((is_array($h)) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -428,14 +428,14 @@ function validate_url(&$url) {
|
||||||
*/
|
*/
|
||||||
function validate_email($addr) {
|
function validate_email($addr) {
|
||||||
|
|
||||||
if (get_config('system','disable_email_validation'))
|
if(get_config('system','disable_email_validation'))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (! strpos($addr,'@'))
|
if(! strpos($addr,'@'))
|
||||||
return false;
|
return false;
|
||||||
$h = substr($addr,strpos($addr,'@') + 1);
|
$h = substr($addr,strpos($addr,'@') + 1);
|
||||||
|
|
||||||
if (($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
|
if(($h) && (dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -454,12 +454,12 @@ function allowed_url($url) {
|
||||||
|
|
||||||
$h = @parse_url($url);
|
$h = @parse_url($url);
|
||||||
|
|
||||||
if (! $h) {
|
if(! $h) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$str_allowed = get_config('system','allowed_sites');
|
$str_allowed = get_config('system','allowed_sites');
|
||||||
if (! $str_allowed)
|
if(! $str_allowed)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
$found = false;
|
$found = false;
|
||||||
|
|
@ -468,16 +468,16 @@ function allowed_url($url) {
|
||||||
|
|
||||||
// always allow our own site
|
// always allow our own site
|
||||||
|
|
||||||
if ($host == strtolower($_SERVER['SERVER_NAME']))
|
if($host == strtolower($_SERVER['SERVER_NAME']))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
$fnmatch = function_exists('fnmatch');
|
$fnmatch = function_exists('fnmatch');
|
||||||
$allowed = explode(',',$str_allowed);
|
$allowed = explode(',',$str_allowed);
|
||||||
|
|
||||||
if (count($allowed)) {
|
if(count($allowed)) {
|
||||||
foreach ($allowed as $a) {
|
foreach($allowed as $a) {
|
||||||
$pat = strtolower(trim($a));
|
$pat = strtolower(trim($a));
|
||||||
if (($fnmatch && fnmatch($pat,$host)) || ($pat == $host)) {
|
if(($fnmatch && fnmatch($pat,$host)) || ($pat == $host)) {
|
||||||
$found = true;
|
$found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -497,25 +497,24 @@ function allowed_url($url) {
|
||||||
*/
|
*/
|
||||||
function allowed_email($email) {
|
function allowed_email($email) {
|
||||||
|
|
||||||
|
|
||||||
$domain = strtolower(substr($email,strpos($email,'@') + 1));
|
$domain = strtolower(substr($email,strpos($email,'@') + 1));
|
||||||
if (! $domain) {
|
if(! $domain)
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$str_allowed = get_config('system','allowed_email');
|
$str_allowed = get_config('system','allowed_email');
|
||||||
if (! $str_allowed) {
|
if(! $str_allowed)
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
|
|
||||||
$found = false;
|
$found = false;
|
||||||
|
|
||||||
$fnmatch = function_exists('fnmatch');
|
$fnmatch = function_exists('fnmatch');
|
||||||
$allowed = explode(',',$str_allowed);
|
$allowed = explode(',',$str_allowed);
|
||||||
|
|
||||||
if (count($allowed)) {
|
if(count($allowed)) {
|
||||||
foreach ($allowed as $a) {
|
foreach($allowed as $a) {
|
||||||
$pat = strtolower(trim($a));
|
$pat = strtolower(trim($a));
|
||||||
if (($fnmatch && fnmatch($pat,$domain)) || ($pat == $domain)) {
|
if(($fnmatch && fnmatch($pat,$domain)) || ($pat == $domain)) {
|
||||||
$found = true;
|
$found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -544,8 +543,8 @@ function avatar_img($email) {
|
||||||
|
|
||||||
function parse_xml_string($s,$strict = true) {
|
function parse_xml_string($s,$strict = true) {
|
||||||
/// @todo Move this function to the xml class
|
/// @todo Move this function to the xml class
|
||||||
if ($strict) {
|
if($strict) {
|
||||||
if (! strstr($s,'<?xml'))
|
if(! strstr($s,'<?xml'))
|
||||||
return false;
|
return false;
|
||||||
$s2 = substr($s,strpos($s,'<?xml'));
|
$s2 = substr($s,strpos($s,'<?xml'));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ class FKOAuth1 extends OAuthServer {
|
||||||
//notice( t("Welcome back ") . $record['username'] . EOL);
|
//notice( t("Welcome back ") . $record['username'] . EOL);
|
||||||
$a->user = $record;
|
$a->user = $record;
|
||||||
|
|
||||||
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'];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -314,11 +314,9 @@ function oembed_html2bbcode($text) {
|
||||||
$entries = $xpath->query("//span[$xattr]");
|
$entries = $xpath->query("//span[$xattr]");
|
||||||
|
|
||||||
$xattr = "@rel='oembed'";//oe_build_xpath("rel","oembed");
|
$xattr = "@rel='oembed'";//oe_build_xpath("rel","oembed");
|
||||||
foreach ($entries as $e) {
|
foreach($entries as $e) {
|
||||||
$href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue;
|
$href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue;
|
||||||
if (!is_null($href)) {
|
if(!is_null($href)) $e->parentNode->replaceChild(new DOMText("[embed]".$href."[/embed]"), $e);
|
||||||
$e->parentNode->replaceChild(new DOMText("[embed]".$href."[/embed]"), $e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return oe_get_inner_html( $dom->getElementsByTagName("body")->item(0) );
|
return oe_get_inner_html( $dom->getElementsByTagName("body")->item(0) );
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ function onepoll_run(&$argv, &$argc){
|
||||||
intval($contact_id)
|
intval($contact_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! dbm::is_result($contacts)) {
|
if (! count($contacts)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -437,18 +437,16 @@ function onepoll_run(&$argv, &$argc){
|
||||||
if ($raw_refs) {
|
if ($raw_refs) {
|
||||||
$refs_arr = explode(' ', $raw_refs);
|
$refs_arr = explode(' ', $raw_refs);
|
||||||
if (count($refs_arr)) {
|
if (count($refs_arr)) {
|
||||||
for ($x = 0; $x < count($refs_arr); $x ++) {
|
for($x = 0; $x < count($refs_arr); $x ++)
|
||||||
$refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
|
$refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$qstr = implode(',',$refs_arr);
|
$qstr = implode(',',$refs_arr);
|
||||||
$r = q("SELECT `uri` , `parent-uri` FROM `item` USE INDEX (`uid_uri`) WHERE `uri` IN ($qstr) AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `uri` , `parent-uri` FROM `item` USE INDEX (`uid_uri`) WHERE `uri` IN ($qstr) AND `uid` = %d LIMIT 1",
|
||||||
intval($importer_uid)
|
intval($importer_uid)
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$datarray['parent-uri'] = $r[0]['parent-uri']; // Set the parent as the top-level item
|
$datarray['parent-uri'] = $r[0]['parent-uri']; // Set the parent as the top-level item
|
||||||
//$datarray['parent-uri'] = $r[0]['uri'];
|
// $datarray['parent-uri'] = $r[0]['uri'];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Decoding the header
|
// Decoding the header
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,9 @@ class ostatus {
|
||||||
* @param bool $onlyfetch Only fetch the header without updating the contact entries
|
* @param bool $onlyfetch Only fetch the header without updating the contact entries
|
||||||
*
|
*
|
||||||
* @return array Array of author related entries for the item
|
* @return array Array of author related entries for the item
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function fetchauthor($xpath, $context, $importer, &$contact, $onlyfetch) {
|
private function fetchauthor($xpath, $context, $importer, &$contact, $onlyfetch) {
|
||||||
|
|
||||||
/// @TODO One statment is enough ...
|
|
||||||
$author = array();
|
$author = array();
|
||||||
$author["author-link"] = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue;
|
$author["author-link"] = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue;
|
||||||
$author["author-name"] = $xpath->evaluate('atom:author/atom:name/text()', $context)->item(0)->nodeValue;
|
$author["author-name"] = $xpath->evaluate('atom:author/atom:name/text()', $context)->item(0)->nodeValue;
|
||||||
|
|
@ -49,41 +47,33 @@ class ostatus {
|
||||||
$aliaslink = $author["author-link"];
|
$aliaslink = $author["author-link"];
|
||||||
|
|
||||||
$alternate = $xpath->query("atom:author/atom:link[@rel='alternate']", $context)->item(0)->attributes;
|
$alternate = $xpath->query("atom:author/atom:link[@rel='alternate']", $context)->item(0)->attributes;
|
||||||
if (is_object($alternate)) {
|
if (is_object($alternate))
|
||||||
/// @TODO foreach () may only later work on objects that have iterator interface implemented, please check this
|
foreach($alternate AS $attributes)
|
||||||
foreach ($alternate AS $attributes) {
|
if ($attributes->name == "href")
|
||||||
if ($attributes->name == "href") {
|
|
||||||
$author["author-link"] = $attributes->textContent;
|
$author["author-link"] = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` IN ('%s', '%s') AND `network` != '%s'",
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` IN ('%s', '%s') AND `network` != '%s'",
|
||||||
intval($importer["uid"]), dbesc(normalise_link($author["author-link"])),
|
intval($importer["uid"]), dbesc(normalise_link($author["author-link"])),
|
||||||
dbesc(normalise_link($aliaslink)), dbesc(NETWORK_STATUSNET));
|
dbesc(normalise_link($aliaslink)), dbesc(NETWORK_STATUSNET));
|
||||||
if (dbm::is_result($r)) {
|
if ($r) {
|
||||||
$contact = $r[0];
|
$contact = $r[0];
|
||||||
$author["contact-id"] = $r[0]["id"];
|
$author["contact-id"] = $r[0]["id"];
|
||||||
} else {
|
} else
|
||||||
$author["contact-id"] = $contact["id"];
|
$author["contact-id"] = $contact["id"];
|
||||||
}
|
|
||||||
|
|
||||||
$avatarlist = array();
|
$avatarlist = array();
|
||||||
$avatars = $xpath->query("atom:author/atom:link[@rel='avatar']", $context);
|
$avatars = $xpath->query("atom:author/atom:link[@rel='avatar']", $context);
|
||||||
foreach ($avatars AS $avatar) {
|
foreach($avatars AS $avatar) {
|
||||||
$href = "";
|
$href = "";
|
||||||
$width = 0;
|
$width = 0;
|
||||||
foreach ($avatar->attributes AS $attributes) {
|
foreach($avatar->attributes AS $attributes) {
|
||||||
if ($attributes->name == "href") {
|
if ($attributes->name == "href")
|
||||||
$href = $attributes->textContent;
|
$href = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "width")
|
||||||
if ($attributes->name == "width") {
|
|
||||||
$width = $attributes->textContent;
|
$width = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (($width > 0) AND ($href != "")) {
|
if (($width > 0) AND ($href != ""))
|
||||||
$avatarlist[$width] = $href;
|
$avatarlist[$width] = $href;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (count($avatarlist) > 0) {
|
if (count($avatarlist) > 0) {
|
||||||
krsort($avatarlist);
|
krsort($avatarlist);
|
||||||
|
|
@ -91,16 +81,15 @@ class ostatus {
|
||||||
}
|
}
|
||||||
|
|
||||||
$displayname = $xpath->evaluate('atom:author/poco:displayName/text()', $context)->item(0)->nodeValue;
|
$displayname = $xpath->evaluate('atom:author/poco:displayName/text()', $context)->item(0)->nodeValue;
|
||||||
if ($displayname != "") {
|
if ($displayname != "")
|
||||||
$author["author-name"] = $displayname;
|
$author["author-name"] = $displayname;
|
||||||
}
|
|
||||||
|
|
||||||
$author["owner-name"] = $author["author-name"];
|
$author["owner-name"] = $author["author-name"];
|
||||||
$author["owner-link"] = $author["author-link"];
|
$author["owner-link"] = $author["author-link"];
|
||||||
$author["owner-avatar"] = $author["author-avatar"];
|
$author["owner-avatar"] = $author["author-avatar"];
|
||||||
|
|
||||||
// Only update the contacts if it is an OStatus contact
|
// Only update the contacts if it is an OStatus contact
|
||||||
if (dbm::is_result($r) AND !$onlyfetch AND ($contact["network"] == NETWORK_OSTATUS)) {
|
if ($r AND !$onlyfetch AND ($contact["network"] == NETWORK_OSTATUS)) {
|
||||||
|
|
||||||
// Update contact data
|
// Update contact data
|
||||||
|
|
||||||
|
|
@ -115,29 +104,24 @@ class ostatus {
|
||||||
// $contact["poll"] = $value;
|
// $contact["poll"] = $value;
|
||||||
|
|
||||||
$value = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate('atom:author/atom:uri/text()', $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$contact["alias"] = $value;
|
$contact["alias"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate('atom:author/poco:displayName/text()', $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate('atom:author/poco:displayName/text()', $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$contact["name"] = $value;
|
$contact["name"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate('atom:author/poco:preferredUsername/text()', $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate('atom:author/poco:preferredUsername/text()', $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$contact["nick"] = $value;
|
$contact["nick"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate('atom:author/poco:note/text()', $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate('atom:author/poco:note/text()', $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$contact["about"] = html2bbcode($value);
|
$contact["about"] = html2bbcode($value);
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate('atom:author/poco:address/poco:formatted/text()', $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate('atom:author/poco:address/poco:formatted/text()', $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$contact["location"] = $value;
|
$contact["location"] = $value;
|
||||||
}
|
|
||||||
|
|
||||||
if (($contact["name"] != $r[0]["name"]) OR ($contact["nick"] != $r[0]["nick"]) OR ($contact["about"] != $r[0]["about"]) OR
|
if (($contact["name"] != $r[0]["name"]) OR ($contact["nick"] != $r[0]["nick"]) OR ($contact["about"] != $r[0]["about"]) OR
|
||||||
($contact["alias"] != $r[0]["alias"]) OR ($contact["location"] != $r[0]["location"])) {
|
($contact["alias"] != $r[0]["alias"]) OR ($contact["location"] != $r[0]["location"])) {
|
||||||
|
|
@ -192,16 +176,14 @@ class ostatus {
|
||||||
* @param array $importer user record of the importing user
|
* @param array $importer user record of the importing user
|
||||||
*
|
*
|
||||||
* @return array Array of author related entries for the item
|
* @return array Array of author related entries for the item
|
||||||
* @todo add type-hints
|
|
||||||
*/
|
*/
|
||||||
public static function salmon_author($xml, $importer) {
|
public static function salmon_author($xml, $importer) {
|
||||||
|
|
||||||
if ($xml == "") {
|
if ($xml == "")
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$doc = new DOMDocument();
|
$doc = new DOMDocument();
|
||||||
$doc->loadXML($xml);
|
@$doc->loadXML($xml);
|
||||||
|
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new DomXPath($doc);
|
||||||
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
|
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
|
||||||
|
|
@ -229,22 +211,20 @@ class ostatus {
|
||||||
* @param array $importer user record of the importing user
|
* @param array $importer user record of the importing user
|
||||||
* @param $contact
|
* @param $contact
|
||||||
* @param array $hub Called by reference, returns the fetched hub data
|
* @param array $hub Called by reference, returns the fetched hub data
|
||||||
* @todo Add missing-type hint + determine type for $contact
|
|
||||||
*/
|
*/
|
||||||
public static function import($xml,$importer,&$contact, &$hub) {
|
public static function import($xml,$importer,&$contact, &$hub) {
|
||||||
/// @todo this function is too long. It has to be split in many parts
|
/// @todo this function is too long. It has to be split in many parts
|
||||||
|
|
||||||
logger("Import OStatus message", LOGGER_DEBUG);
|
logger("Import OStatus message", LOGGER_DEBUG);
|
||||||
|
|
||||||
if ($xml == "") {
|
if ($xml == "")
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
//$tempfile = tempnam(get_temppath(), "import");
|
//$tempfile = tempnam(get_temppath(), "import");
|
||||||
//file_put_contents($tempfile, $xml);
|
//file_put_contents($tempfile, $xml);
|
||||||
|
|
||||||
$doc = new DOMDocument();
|
$doc = new DOMDocument();
|
||||||
$doc->loadXML($xml);
|
@$doc->loadXML($xml);
|
||||||
|
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new DomXPath($doc);
|
||||||
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
|
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
|
||||||
|
|
@ -258,16 +238,13 @@ class ostatus {
|
||||||
|
|
||||||
$gub = "";
|
$gub = "";
|
||||||
$hub_attributes = $xpath->query("/atom:feed/atom:link[@rel='hub']")->item(0)->attributes;
|
$hub_attributes = $xpath->query("/atom:feed/atom:link[@rel='hub']")->item(0)->attributes;
|
||||||
if (is_object($hub_attributes)) {
|
if (is_object($hub_attributes))
|
||||||
foreach ($hub_attributes AS $hub_attribute) {
|
foreach($hub_attributes AS $hub_attribute)
|
||||||
if ($hub_attribute->name == "href") {
|
if ($hub_attribute->name == "href") {
|
||||||
$hub = $hub_attribute->textContent;
|
$hub = $hub_attribute->textContent;
|
||||||
logger("Found hub ".$hub, LOGGER_DEBUG);
|
logger("Found hub ".$hub, LOGGER_DEBUG);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @TODO One statement is enough ...
|
|
||||||
$header = array();
|
$header = array();
|
||||||
$header["uid"] = $importer["uid"];
|
$header["uid"] = $importer["uid"];
|
||||||
$header["network"] = NETWORK_OSTATUS;
|
$header["network"] = NETWORK_OSTATUS;
|
||||||
|
|
@ -280,11 +257,10 @@ class ostatus {
|
||||||
// depending on that, the first node is different
|
// depending on that, the first node is different
|
||||||
$first_child = $doc->firstChild->tagName;
|
$first_child = $doc->firstChild->tagName;
|
||||||
|
|
||||||
if ($first_child == "feed") {
|
if ($first_child == "feed")
|
||||||
$entries = $xpath->query('/atom:feed/atom:entry');
|
$entries = $xpath->query('/atom:feed/atom:entry');
|
||||||
} else {
|
else
|
||||||
$entries = $xpath->query('/atom:entry');
|
$entries = $xpath->query('/atom:entry');
|
||||||
}
|
|
||||||
|
|
||||||
$conversation = "";
|
$conversation = "";
|
||||||
$conversationlist = array();
|
$conversationlist = array();
|
||||||
|
|
@ -301,18 +277,16 @@ class ostatus {
|
||||||
$mention = false;
|
$mention = false;
|
||||||
|
|
||||||
// fetch the author
|
// fetch the author
|
||||||
if ($first_child == "feed") {
|
if ($first_child == "feed")
|
||||||
$author = self::fetchauthor($xpath, $doc->firstChild, $importer, $contact, false);
|
$author = self::fetchauthor($xpath, $doc->firstChild, $importer, $contact, false);
|
||||||
} else {
|
else
|
||||||
$author = self::fetchauthor($xpath, $entry, $importer, $contact, false);
|
$author = self::fetchauthor($xpath, $entry, $importer, $contact, false);
|
||||||
}
|
|
||||||
|
|
||||||
$value = $xpath->evaluate('atom:author/poco:preferredUsername/text()', $context)->item(0)->nodeValue;
|
$value = $xpath->evaluate('atom:author/poco:preferredUsername/text()', $context)->item(0)->nodeValue;
|
||||||
if ($value != "") {
|
if ($value != "")
|
||||||
$nickname = $value;
|
$nickname = $value;
|
||||||
} else {
|
else
|
||||||
$nickname = $author["author-name"];
|
$nickname = $author["author-name"];
|
||||||
}
|
|
||||||
|
|
||||||
$item = array_merge($header, $author);
|
$item = array_merge($header, $author);
|
||||||
|
|
||||||
|
|
@ -321,7 +295,7 @@ class ostatus {
|
||||||
|
|
||||||
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s'",
|
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s'",
|
||||||
intval($importer["uid"]), dbesc($item["uri"]));
|
intval($importer["uid"]), dbesc($item["uri"]));
|
||||||
if (dbm::is_result($r)) {
|
if ($r) {
|
||||||
logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already existed under id ".$r[0]["id"], LOGGER_DEBUG);
|
logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already existed under id ".$r[0]["id"], LOGGER_DEBUG);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -332,9 +306,8 @@ class ostatus {
|
||||||
if (($item["object-type"] == ACTIVITY_OBJ_BOOKMARK) OR ($item["object-type"] == ACTIVITY_OBJ_EVENT)) {
|
if (($item["object-type"] == ACTIVITY_OBJ_BOOKMARK) OR ($item["object-type"] == ACTIVITY_OBJ_EVENT)) {
|
||||||
$item["title"] = $xpath->query('atom:title/text()', $entry)->item(0)->nodeValue;
|
$item["title"] = $xpath->query('atom:title/text()', $entry)->item(0)->nodeValue;
|
||||||
$item["body"] = $xpath->query('atom:summary/text()', $entry)->item(0)->nodeValue;
|
$item["body"] = $xpath->query('atom:summary/text()', $entry)->item(0)->nodeValue;
|
||||||
} elseif ($item["object-type"] == ACTIVITY_OBJ_QUESTION) {
|
} elseif ($item["object-type"] == ACTIVITY_OBJ_QUESTION)
|
||||||
$item["title"] = $xpath->query('atom:title/text()', $entry)->item(0)->nodeValue;
|
$item["title"] = $xpath->query('atom:title/text()', $entry)->item(0)->nodeValue;
|
||||||
}
|
|
||||||
|
|
||||||
$item["object"] = $xml;
|
$item["object"] = $xml;
|
||||||
$item["verb"] = $xpath->query('activity:verb/text()', $entry)->item(0)->nodeValue;
|
$item["verb"] = $xpath->query('activity:verb/text()', $entry)->item(0)->nodeValue;
|
||||||
|
|
@ -379,9 +352,8 @@ class ostatus {
|
||||||
}
|
}
|
||||||
|
|
||||||
// http://activitystrea.ms/schema/1.0/rsvp-yes
|
// http://activitystrea.ms/schema/1.0/rsvp-yes
|
||||||
if (!in_array($item["verb"], array(ACTIVITY_POST, ACTIVITY_LIKE, ACTIVITY_SHARE))) {
|
if (!in_array($item["verb"], array(ACTIVITY_POST, ACTIVITY_LIKE, ACTIVITY_SHARE)))
|
||||||
logger("Unhandled verb ".$item["verb"]." ".print_r($item, true));
|
logger("Unhandled verb ".$item["verb"]." ".print_r($item, true));
|
||||||
}
|
|
||||||
|
|
||||||
$item["created"] = $xpath->query('atom:published/text()', $entry)->item(0)->nodeValue;
|
$item["created"] = $xpath->query('atom:published/text()', $entry)->item(0)->nodeValue;
|
||||||
$item["edited"] = $xpath->query('atom:updated/text()', $entry)->item(0)->nodeValue;
|
$item["edited"] = $xpath->query('atom:updated/text()', $entry)->item(0)->nodeValue;
|
||||||
|
|
@ -391,13 +363,11 @@ class ostatus {
|
||||||
|
|
||||||
$inreplyto = $xpath->query('thr:in-reply-to', $entry);
|
$inreplyto = $xpath->query('thr:in-reply-to', $entry);
|
||||||
if (is_object($inreplyto->item(0))) {
|
if (is_object($inreplyto->item(0))) {
|
||||||
foreach ($inreplyto->item(0)->attributes AS $attributes) {
|
foreach($inreplyto->item(0)->attributes AS $attributes) {
|
||||||
if ($attributes->name == "ref") {
|
if ($attributes->name == "ref")
|
||||||
$item["parent-uri"] = $attributes->textContent;
|
$item["parent-uri"] = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "href")
|
||||||
if ($attributes->name == "href") {
|
|
||||||
$related = $attributes->textContent;
|
$related = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -408,10 +378,10 @@ class ostatus {
|
||||||
$categories = $xpath->query('atom:category', $entry);
|
$categories = $xpath->query('atom:category', $entry);
|
||||||
if ($categories) {
|
if ($categories) {
|
||||||
foreach ($categories AS $category) {
|
foreach ($categories AS $category) {
|
||||||
foreach ($category->attributes AS $attributes)
|
foreach($category->attributes AS $attributes)
|
||||||
if ($attributes->name == "term") {
|
if ($attributes->name == "term") {
|
||||||
$term = $attributes->textContent;
|
$term = $attributes->textContent;
|
||||||
if (strlen($item["tag"]))
|
if(strlen($item["tag"]))
|
||||||
$item["tag"] .= ',';
|
$item["tag"] .= ',';
|
||||||
$item["tag"] .= "#[url=".App::get_baseurl()."/search?tag=".$term."]".$term."[/url]";
|
$item["tag"] .= "#[url=".App::get_baseurl()."/search?tag=".$term."]".$term."[/url]";
|
||||||
}
|
}
|
||||||
|
|
@ -429,7 +399,7 @@ class ostatus {
|
||||||
$length = "0";
|
$length = "0";
|
||||||
$title = "";
|
$title = "";
|
||||||
foreach ($links AS $link) {
|
foreach ($links AS $link) {
|
||||||
foreach ($link->attributes AS $attributes) {
|
foreach($link->attributes AS $attributes) {
|
||||||
if ($attributes->name == "href")
|
if ($attributes->name == "href")
|
||||||
$href = $attributes->textContent;
|
$href = $attributes->textContent;
|
||||||
if ($attributes->name == "rel")
|
if ($attributes->name == "rel")
|
||||||
|
|
@ -441,7 +411,7 @@ class ostatus {
|
||||||
if ($attributes->name == "title")
|
if ($attributes->name == "title")
|
||||||
$title = $attributes->textContent;
|
$title = $attributes->textContent;
|
||||||
}
|
}
|
||||||
if (($rel != "") AND ($href != "")) {
|
if (($rel != "") AND ($href != ""))
|
||||||
switch($rel) {
|
switch($rel) {
|
||||||
case "alternate":
|
case "alternate":
|
||||||
$item["plink"] = $href;
|
$item["plink"] = $href;
|
||||||
|
|
@ -454,7 +424,7 @@ class ostatus {
|
||||||
break;
|
break;
|
||||||
case "enclosure":
|
case "enclosure":
|
||||||
$enclosure = $href;
|
$enclosure = $href;
|
||||||
if (strlen($item["attach"]))
|
if(strlen($item["attach"]))
|
||||||
$item["attach"] .= ',';
|
$item["attach"] .= ',';
|
||||||
|
|
||||||
$item["attach"] .= '[attach]href="'.$href.'" length="'.$length.'" type="'.$type.'" title="'.$title.'"[/attach]';
|
$item["attach"] .= '[attach]href="'.$href.'" length="'.$length.'" type="'.$type.'" title="'.$title.'"[/attach]';
|
||||||
|
|
@ -478,7 +448,6 @@ class ostatus {
|
||||||
$mention = true;
|
$mention = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -487,16 +456,13 @@ class ostatus {
|
||||||
|
|
||||||
$notice_info = $xpath->query('statusnet:notice_info', $entry);
|
$notice_info = $xpath->query('statusnet:notice_info', $entry);
|
||||||
if ($notice_info AND ($notice_info->length > 0)) {
|
if ($notice_info AND ($notice_info->length > 0)) {
|
||||||
foreach ($notice_info->item(0)->attributes AS $attributes) {
|
foreach($notice_info->item(0)->attributes AS $attributes) {
|
||||||
if ($attributes->name == "source") {
|
if ($attributes->name == "source")
|
||||||
$item["app"] = strip_tags($attributes->textContent);
|
$item["app"] = strip_tags($attributes->textContent);
|
||||||
}
|
if ($attributes->name == "local_id")
|
||||||
if ($attributes->name == "local_id") {
|
|
||||||
$local_id = $attributes->textContent;
|
$local_id = $attributes->textContent;
|
||||||
}
|
if ($attributes->name == "repeat_of")
|
||||||
if ($attributes->name == "repeat_of") {
|
|
||||||
$repeat_of = $attributes->textContent;
|
$repeat_of = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -507,32 +473,24 @@ class ostatus {
|
||||||
if (is_object($activityobjects)) {
|
if (is_object($activityobjects)) {
|
||||||
|
|
||||||
$orig_uri = $xpath->query("activity:object/atom:id", $activityobjects)->item(0)->nodeValue;
|
$orig_uri = $xpath->query("activity:object/atom:id", $activityobjects)->item(0)->nodeValue;
|
||||||
if (!isset($orig_uri)) {
|
if (!isset($orig_uri))
|
||||||
$orig_uri = $xpath->query('atom:id/text()', $activityobjects)->item(0)->nodeValue;
|
$orig_uri = $xpath->query('atom:id/text()', $activityobjects)->item(0)->nodeValue;
|
||||||
}
|
|
||||||
|
|
||||||
$orig_links = $xpath->query("activity:object/atom:link[@rel='alternate']", $activityobjects);
|
$orig_links = $xpath->query("activity:object/atom:link[@rel='alternate']", $activityobjects);
|
||||||
if ($orig_links AND ($orig_links->length > 0)) {
|
if ($orig_links AND ($orig_links->length > 0))
|
||||||
foreach ($orig_links->item(0)->attributes AS $attributes) {
|
foreach($orig_links->item(0)->attributes AS $attributes)
|
||||||
if ($attributes->name == "href") {
|
if ($attributes->name == "href")
|
||||||
$orig_link = $attributes->textContent;
|
$orig_link = $attributes->textContent;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($orig_link)) {
|
if (!isset($orig_link))
|
||||||
$orig_link = $xpath->query("atom:link[@rel='alternate']", $activityobjects)->item(0)->nodeValue;
|
$orig_link = $xpath->query("atom:link[@rel='alternate']", $activityobjects)->item(0)->nodeValue;
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($orig_link)) {
|
if (!isset($orig_link))
|
||||||
$orig_link = self::convert_href($orig_uri);
|
$orig_link = self::convert_href($orig_uri);
|
||||||
}
|
|
||||||
|
|
||||||
$orig_body = $xpath->query('activity:object/atom:content/text()', $activityobjects)->item(0)->nodeValue;
|
$orig_body = $xpath->query('activity:object/atom:content/text()', $activityobjects)->item(0)->nodeValue;
|
||||||
|
if (!isset($orig_body))
|
||||||
if (!isset($orig_body)) {
|
|
||||||
$orig_body = $xpath->query('atom:content/text()', $activityobjects)->item(0)->nodeValue;
|
$orig_body = $xpath->query('atom:content/text()', $activityobjects)->item(0)->nodeValue;
|
||||||
}
|
|
||||||
|
|
||||||
$orig_created = $xpath->query('atom:published/text()', $activityobjects)->item(0)->nodeValue;
|
$orig_created = $xpath->query('atom:published/text()', $activityobjects)->item(0)->nodeValue;
|
||||||
$orig_edited = $xpath->query('atom:updated/text()', $activityobjects)->item(0)->nodeValue;
|
$orig_edited = $xpath->query('atom:updated/text()', $activityobjects)->item(0)->nodeValue;
|
||||||
|
|
@ -553,10 +511,8 @@ class ostatus {
|
||||||
$item["verb"] = $xpath->query('activity:verb/text()', $activityobjects)->item(0)->nodeValue;
|
$item["verb"] = $xpath->query('activity:verb/text()', $activityobjects)->item(0)->nodeValue;
|
||||||
|
|
||||||
$item["object-type"] = $xpath->query('activity:object/activity:object-type/text()', $activityobjects)->item(0)->nodeValue;
|
$item["object-type"] = $xpath->query('activity:object/activity:object-type/text()', $activityobjects)->item(0)->nodeValue;
|
||||||
|
if (!isset($item["object-type"]))
|
||||||
if (!isset($item["object-type"])) {
|
|
||||||
$item["object-type"] = $xpath->query('activity:object-type/text()', $activityobjects)->item(0)->nodeValue;
|
$item["object-type"] = $xpath->query('activity:object-type/text()', $activityobjects)->item(0)->nodeValue;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -584,14 +540,12 @@ class ostatus {
|
||||||
intval($importer["uid"]), dbesc($item["parent-uri"]));
|
intval($importer["uid"]), dbesc($item["parent-uri"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($r) {
|
||||||
if (dbm::is_result($r)) {
|
|
||||||
$item["type"] = 'remote-comment';
|
$item["type"] = 'remote-comment';
|
||||||
$item["gravity"] = GRAVITY_COMMENT;
|
$item["gravity"] = GRAVITY_COMMENT;
|
||||||
}
|
}
|
||||||
} else {
|
} else
|
||||||
$item["parent-uri"] = $item["uri"];
|
$item["parent-uri"] = $item["uri"];
|
||||||
}
|
|
||||||
|
|
||||||
$item_id = self::completion($conversation, $importer["uid"], $item, $self);
|
$item_id = self::completion($conversation, $importer["uid"], $item, $self);
|
||||||
|
|
||||||
|
|
@ -614,26 +568,22 @@ class ostatus {
|
||||||
public static function convert_href($href) {
|
public static function convert_href($href) {
|
||||||
$elements = explode(":",$href);
|
$elements = explode(":",$href);
|
||||||
|
|
||||||
if ((count($elements) <= 2) OR ($elements[0] != "tag")) {
|
if ((count($elements) <= 2) OR ($elements[0] != "tag"))
|
||||||
return $href;
|
return $href;
|
||||||
}
|
|
||||||
|
|
||||||
$server = explode(",", $elements[1]);
|
$server = explode(",", $elements[1]);
|
||||||
$conversation = explode("=", $elements[2]);
|
$conversation = explode("=", $elements[2]);
|
||||||
|
|
||||||
if ((count($elements) == 4) AND ($elements[2] == "post")) {
|
if ((count($elements) == 4) AND ($elements[2] == "post"))
|
||||||
return "http://".$server[0]."/notice/".$elements[3];
|
return "http://".$server[0]."/notice/".$elements[3];
|
||||||
}
|
|
||||||
|
|
||||||
if ((count($conversation) != 2) OR ($conversation[1] =="")) {
|
if ((count($conversation) != 2) OR ($conversation[1] ==""))
|
||||||
return $href;
|
return $href;
|
||||||
}
|
|
||||||
|
|
||||||
if ($elements[3] == "objectType=thread") {
|
if ($elements[3] == "objectType=thread")
|
||||||
return "http://".$server[0]."/conversation/".$conversation[1];
|
return "http://".$server[0]."/conversation/".$conversation[1];
|
||||||
} else {
|
else
|
||||||
return "http://".$server[0]."/notice/".$conversation[1];
|
return "http://".$server[0]."/notice/".$conversation[1];
|
||||||
}
|
|
||||||
|
|
||||||
return $href;
|
return $href;
|
||||||
}
|
}
|
||||||
|
|
@ -706,53 +656,42 @@ class ostatus {
|
||||||
* @brief Updates the gcontact table with actor data from the conversation
|
* @brief Updates the gcontact table with actor data from the conversation
|
||||||
*
|
*
|
||||||
* @param object $actor The actor object that contains the contact data
|
* @param object $actor The actor object that contains the contact data
|
||||||
* @todo Add type-hint
|
|
||||||
*/
|
*/
|
||||||
private function conv_fetch_actor($actor) {
|
private function conv_fetch_actor($actor) {
|
||||||
|
|
||||||
// We set the generation to "3" since the data here is not as reliable as the data we get on other occasions
|
// We set the generation to "3" since the data here is not as reliable as the data we get on other occasions
|
||||||
$contact = array("network" => NETWORK_OSTATUS, "generation" => 3);
|
$contact = array("network" => NETWORK_OSTATUS, "generation" => 3);
|
||||||
|
|
||||||
if (isset($actor->url)) {
|
if (isset($actor->url))
|
||||||
$contact["url"] = $actor->url;
|
$contact["url"] = $actor->url;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($actor->displayName)) {
|
if (isset($actor->displayName))
|
||||||
$contact["name"] = $actor->displayName;
|
$contact["name"] = $actor->displayName;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($actor->portablecontacts_net->displayName)) {
|
if (isset($actor->portablecontacts_net->displayName))
|
||||||
$contact["name"] = $actor->portablecontacts_net->displayName;
|
$contact["name"] = $actor->portablecontacts_net->displayName;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($actor->portablecontacts_net->preferredUsername)) {
|
if (isset($actor->portablecontacts_net->preferredUsername))
|
||||||
$contact["nick"] = $actor->portablecontacts_net->preferredUsername;
|
$contact["nick"] = $actor->portablecontacts_net->preferredUsername;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($actor->id)) {
|
if (isset($actor->id))
|
||||||
$contact["alias"] = $actor->id;
|
$contact["alias"] = $actor->id;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($actor->summary)) {
|
if (isset($actor->summary))
|
||||||
$contact["about"] = $actor->summary;
|
$contact["about"] = $actor->summary;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($actor->portablecontacts_net->note)) {
|
if (isset($actor->portablecontacts_net->note))
|
||||||
$contact["about"] = $actor->portablecontacts_net->note;
|
$contact["about"] = $actor->portablecontacts_net->note;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($actor->portablecontacts_net->addresses->formatted)) {
|
if (isset($actor->portablecontacts_net->addresses->formatted))
|
||||||
$contact["location"] = $actor->portablecontacts_net->addresses->formatted;
|
$contact["location"] = $actor->portablecontacts_net->addresses->formatted;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (isset($actor->image->url)) {
|
if (isset($actor->image->url))
|
||||||
$contact["photo"] = $actor->image->url;
|
$contact["photo"] = $actor->image->url;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($actor->image->width)) {
|
if (isset($actor->image->width))
|
||||||
$avatarwidth = $actor->image->width;
|
$avatarwidth = $actor->image->width;
|
||||||
}
|
|
||||||
|
|
||||||
if (is_array($actor->status_net->avatarLinks))
|
if (is_array($actor->status_net->avatarLinks))
|
||||||
foreach ($actor->status_net->avatarLinks AS $avatar) {
|
foreach ($actor->status_net->avatarLinks AS $avatar) {
|
||||||
|
|
@ -779,26 +718,22 @@ class ostatus {
|
||||||
if ($conversation_id != "") {
|
if ($conversation_id != "") {
|
||||||
$elements = explode(":", $conversation_id);
|
$elements = explode(":", $conversation_id);
|
||||||
|
|
||||||
if ((count($elements) <= 2) OR ($elements[0] != "tag")) {
|
if ((count($elements) <= 2) OR ($elements[0] != "tag"))
|
||||||
return $conversation_id;
|
return $conversation_id;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($self == "") {
|
if ($self == "")
|
||||||
return "";
|
return "";
|
||||||
}
|
|
||||||
|
|
||||||
$json = str_replace(".atom", ".json", $self);
|
$json = str_replace(".atom", ".json", $self);
|
||||||
|
|
||||||
$raw = fetch_url($json);
|
$raw = fetch_url($json);
|
||||||
if ($raw == "") {
|
if ($raw == "")
|
||||||
return "";
|
return "";
|
||||||
}
|
|
||||||
|
|
||||||
$data = json_decode($raw);
|
$data = json_decode($raw);
|
||||||
if (!is_object($data)) {
|
if (!is_object($data))
|
||||||
return "";
|
return "";
|
||||||
}
|
|
||||||
|
|
||||||
$conversation_id = $data->statusnet_conversation_id;
|
$conversation_id = $data->statusnet_conversation_id;
|
||||||
|
|
||||||
|
|
@ -824,12 +759,11 @@ class ostatus {
|
||||||
$contact = q("SELECT `id`, `rel`, `network` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` != '%s'",
|
$contact = q("SELECT `id`, `rel`, `network` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` != '%s'",
|
||||||
$uid, normalise_link($actor), NETWORK_STATUSNET);
|
$uid, normalise_link($actor), NETWORK_STATUSNET);
|
||||||
|
|
||||||
if (!dbm::is_result($contact)) {
|
if (!$contact)
|
||||||
$contact = q("SELECT `id`, `rel`, `network` FROM `contact` WHERE `uid` = %d AND `alias` IN ('%s', '%s') AND `network` != '%s'",
|
$contact = q("SELECT `id`, `rel`, `network` FROM `contact` WHERE `uid` = %d AND `alias` IN ('%s', '%s') AND `network` != '%s'",
|
||||||
$uid, $actor, normalise_link($actor), NETWORK_STATUSNET);
|
$uid, $actor, normalise_link($actor), NETWORK_STATUSNET);
|
||||||
}
|
|
||||||
|
|
||||||
if (dbm::is_result($contact)) {
|
if ($contact) {
|
||||||
logger("Found contact for url ".$actor, LOGGER_DEBUG);
|
logger("Found contact for url ".$actor, LOGGER_DEBUG);
|
||||||
$details["contact_id"] = $contact[0]["id"];
|
$details["contact_id"] = $contact[0]["id"];
|
||||||
$details["network"] = $contact[0]["network"];
|
$details["network"] = $contact[0]["network"];
|
||||||
|
|
@ -861,7 +795,6 @@ class ostatus {
|
||||||
* @param array $item Data of the item that is to be posted
|
* @param array $item Data of the item that is to be posted
|
||||||
*
|
*
|
||||||
* @return integer The item id of the posted item array
|
* @return integer The item id of the posted item array
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function completion($conversation_url, $uid, $item = array(), $self = "") {
|
private function completion($conversation_url, $uid, $item = array(), $self = "") {
|
||||||
|
|
||||||
|
|
@ -894,9 +827,9 @@ class ostatus {
|
||||||
(SELECT `oid` FROM `term` WHERE `uid` = %d AND `otype` = %d AND `type` = %d AND `url` = '%s'))",
|
(SELECT `oid` FROM `term` WHERE `uid` = %d AND `otype` = %d AND `type` = %d AND `url` = '%s'))",
|
||||||
intval($uid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), dbesc($conversation_url));
|
intval($uid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION), dbesc($conversation_url));
|
||||||
*/
|
*/
|
||||||
if (dbm::is_result($parents)) {
|
if ($parents)
|
||||||
$parent = $parents[0];
|
$parent = $parents[0];
|
||||||
} elseif (count($item) > 0) {
|
elseif (count($item) > 0) {
|
||||||
$parent = $item;
|
$parent = $item;
|
||||||
$parent["type"] = "remote";
|
$parent["type"] = "remote";
|
||||||
$parent["verb"] = ACTIVITY_POST;
|
$parent["verb"] = ACTIVITY_POST;
|
||||||
|
|
@ -904,11 +837,9 @@ class ostatus {
|
||||||
} else {
|
} else {
|
||||||
// Preset the parent
|
// Preset the parent
|
||||||
$r = q("SELECT `id` FROM `contact` WHERE `self` AND `uid`=%d", $uid);
|
$r = q("SELECT `id` FROM `contact` WHERE `self` AND `uid`=%d", $uid);
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r)
|
||||||
return(-2);
|
return(-2);
|
||||||
}
|
|
||||||
|
|
||||||
/// @TODO one statement is enough ...
|
|
||||||
$parent = array();
|
$parent = array();
|
||||||
$parent["id"] = 0;
|
$parent["id"] = 0;
|
||||||
$parent["parent"] = 0;
|
$parent["parent"] = 0;
|
||||||
|
|
@ -935,24 +866,20 @@ class ostatus {
|
||||||
} elseif (!$conv_arr["success"] AND (substr($conv, 0, 8) == "https://")) {
|
} elseif (!$conv_arr["success"] AND (substr($conv, 0, 8) == "https://")) {
|
||||||
$conv = str_replace("https://", "http://", $conv);
|
$conv = str_replace("https://", "http://", $conv);
|
||||||
$conv_as = fetch_url($conv."?page=".$pageno);
|
$conv_as = fetch_url($conv."?page=".$pageno);
|
||||||
} else {
|
} else
|
||||||
$conv_as = $conv_arr["body"];
|
$conv_as = $conv_arr["body"];
|
||||||
}
|
|
||||||
|
|
||||||
$conv_as = str_replace(',"statusnet:notice_info":', ',"statusnet_notice_info":', $conv_as);
|
$conv_as = str_replace(',"statusnet:notice_info":', ',"statusnet_notice_info":', $conv_as);
|
||||||
$conv_as = json_decode($conv_as);
|
$conv_as = json_decode($conv_as);
|
||||||
|
|
||||||
$no_of_items = sizeof($items);
|
$no_of_items = sizeof($items);
|
||||||
|
|
||||||
if (is_array($conv_as->items)) {
|
if (@is_array($conv_as->items))
|
||||||
foreach ($conv_as->items AS $single_item) {
|
foreach ($conv_as->items AS $single_item)
|
||||||
$items[$single_item->id] = $single_item;
|
$items[$single_item->id] = $single_item;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($no_of_items == sizeof($items)) {
|
if ($no_of_items == sizeof($items))
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
$pageno++;
|
$pageno++;
|
||||||
|
|
||||||
|
|
@ -970,20 +897,13 @@ class ostatus {
|
||||||
}
|
}
|
||||||
|
|
||||||
return($item_stored);
|
return($item_stored);
|
||||||
} else {
|
} else
|
||||||
return(-3);
|
return(-3);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$items = array_reverse($items);
|
$items = array_reverse($items);
|
||||||
|
|
||||||
$r = q("SELECT `nurl` FROM `contact` WHERE `uid` = %d AND `self`", intval($uid));
|
$r = q("SELECT `nurl` FROM `contact` WHERE `uid` = %d AND `self`", intval($uid));
|
||||||
|
|
||||||
if (!dbm::is_result($r)) {
|
|
||||||
logger("Failed query, uid=" . intval($uid) ." in " . __FUNCTION__);
|
|
||||||
killme();
|
|
||||||
}
|
|
||||||
|
|
||||||
$importer = $r[0];
|
$importer = $r[0];
|
||||||
|
|
||||||
$new_parent = true;
|
$new_parent = true;
|
||||||
|
|
@ -999,18 +919,15 @@ class ostatus {
|
||||||
|
|
||||||
$mention = false;
|
$mention = false;
|
||||||
|
|
||||||
if (isset($single_conv->object->id)) {
|
if (isset($single_conv->object->id))
|
||||||
$single_conv->id = $single_conv->object->id;
|
$single_conv->id = $single_conv->object->id;
|
||||||
}
|
|
||||||
|
|
||||||
$plink = self::convert_href($single_conv->id);
|
$plink = self::convert_href($single_conv->id);
|
||||||
if (isset($single_conv->object->url)) {
|
if (isset($single_conv->object->url))
|
||||||
$plink = self::convert_href($single_conv->object->url);
|
$plink = self::convert_href($single_conv->object->url);
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($single_conv->id)) {
|
if (@!$single_conv->id)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
logger("Got id ".$single_conv->id, LOGGER_DEBUG);
|
logger("Got id ".$single_conv->id, LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
@ -1029,7 +946,7 @@ class ostatus {
|
||||||
(SELECT `parent` FROM `item`
|
(SELECT `parent` FROM `item`
|
||||||
WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s')) LIMIT 1",
|
WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s')) LIMIT 1",
|
||||||
intval($uid), dbesc($first_id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
|
intval($uid), dbesc($first_id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
|
||||||
if (dbm::is_result($new_parents)) {
|
if ($new_parents) {
|
||||||
if ($new_parents[0]["parent"] == $parent["parent"]) {
|
if ($new_parents[0]["parent"] == $parent["parent"]) {
|
||||||
// Option 2: This post is already present inside our thread - but not as thread starter
|
// Option 2: This post is already present inside our thread - but not as thread starter
|
||||||
logger("Option 2: uri present in our thread: ".$first_id, LOGGER_DEBUG);
|
logger("Option 2: uri present in our thread: ".$first_id, LOGGER_DEBUG);
|
||||||
|
|
@ -1060,18 +977,16 @@ class ostatus {
|
||||||
if (isset($single_conv->context->inReplyTo->id)) {
|
if (isset($single_conv->context->inReplyTo->id)) {
|
||||||
$parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
|
$parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
|
||||||
intval($uid), dbesc($single_conv->context->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
|
intval($uid), dbesc($single_conv->context->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
|
||||||
if (dbm::is_result($parent_exists)) {
|
if ($parent_exists)
|
||||||
$parent_uri = $single_conv->context->inReplyTo->id;
|
$parent_uri = $single_conv->context->inReplyTo->id;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is the current way
|
// This is the current way
|
||||||
if (isset($single_conv->object->inReplyTo->id)) {
|
if (isset($single_conv->object->inReplyTo->id)) {
|
||||||
$parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
|
$parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
|
||||||
intval($uid), dbesc($single_conv->object->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
|
intval($uid), dbesc($single_conv->object->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
|
||||||
if (dbm::is_result($parent_exists)) {
|
if ($parent_exists)
|
||||||
$parent_uri = $single_conv->object->inReplyTo->id;
|
$parent_uri = $single_conv->object->inReplyTo->id;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$message_exists = q("SELECT `id`, `parent`, `uri` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
|
$message_exists = q("SELECT `id`, `parent`, `uri` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
|
||||||
|
|
@ -1118,18 +1033,14 @@ class ostatus {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($single_conv->to)) {
|
if (is_array($single_conv->to))
|
||||||
foreach ($single_conv->to AS $to) {
|
foreach($single_conv->to AS $to)
|
||||||
if ($importer["nurl"] == normalise_link($to->id)) {
|
if ($importer["nurl"] == normalise_link($to->id))
|
||||||
$mention = true;
|
$mention = true;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$actor = $single_conv->actor->id;
|
$actor = $single_conv->actor->id;
|
||||||
if (isset($single_conv->actor->url)) {
|
if (isset($single_conv->actor->url))
|
||||||
$actor = $single_conv->actor->url;
|
$actor = $single_conv->actor->url;
|
||||||
}
|
|
||||||
|
|
||||||
$details = self::get_actor_details($actor, $uid, $parent["contact-id"]);
|
$details = self::get_actor_details($actor, $uid, $parent["contact-id"]);
|
||||||
|
|
||||||
|
|
@ -1139,7 +1050,6 @@ class ostatus {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @TODO One statment is okay (until if () )
|
|
||||||
$arr = array();
|
$arr = array();
|
||||||
$arr["network"] = $details["network"];
|
$arr["network"] = $details["network"];
|
||||||
$arr["uri"] = $single_conv->id;
|
$arr["uri"] = $single_conv->id;
|
||||||
|
|
@ -1150,13 +1060,10 @@ class ostatus {
|
||||||
$arr["created"] = $single_conv->published;
|
$arr["created"] = $single_conv->published;
|
||||||
$arr["edited"] = $single_conv->published;
|
$arr["edited"] = $single_conv->published;
|
||||||
$arr["owner-name"] = $single_conv->actor->displayName;
|
$arr["owner-name"] = $single_conv->actor->displayName;
|
||||||
|
if ($arr["owner-name"] == '')
|
||||||
if ($arr["owner-name"] == '') {
|
|
||||||
$arr["owner-name"] = $single_conv->actor->contact->displayName;
|
$arr["owner-name"] = $single_conv->actor->contact->displayName;
|
||||||
}
|
if ($arr["owner-name"] == '')
|
||||||
if ($arr["owner-name"] == '') {
|
|
||||||
$arr["owner-name"] = $single_conv->actor->portablecontacts_net->displayName;
|
$arr["owner-name"] = $single_conv->actor->portablecontacts_net->displayName;
|
||||||
}
|
|
||||||
|
|
||||||
$arr["owner-link"] = $actor;
|
$arr["owner-link"] = $actor;
|
||||||
$arr["owner-avatar"] = $single_conv->actor->image->url;
|
$arr["owner-avatar"] = $single_conv->actor->image->url;
|
||||||
|
|
@ -1165,17 +1072,17 @@ class ostatus {
|
||||||
$arr["author-avatar"] = $single_conv->actor->image->url;
|
$arr["author-avatar"] = $single_conv->actor->image->url;
|
||||||
$arr["body"] = add_page_info_to_body(html2bbcode($single_conv->content));
|
$arr["body"] = add_page_info_to_body(html2bbcode($single_conv->content));
|
||||||
|
|
||||||
if (isset($single_conv->status_net->notice_info->source)) {
|
if (isset($single_conv->status_net->notice_info->source))
|
||||||
$arr["app"] = strip_tags($single_conv->status_net->notice_info->source);
|
$arr["app"] = strip_tags($single_conv->status_net->notice_info->source);
|
||||||
} elseif (isset($single_conv->statusnet->notice_info->source)) {
|
elseif (isset($single_conv->statusnet->notice_info->source))
|
||||||
$arr["app"] = strip_tags($single_conv->statusnet->notice_info->source);
|
$arr["app"] = strip_tags($single_conv->statusnet->notice_info->source);
|
||||||
} elseif (isset($single_conv->statusnet_notice_info->source)) {
|
elseif (isset($single_conv->statusnet_notice_info->source))
|
||||||
$arr["app"] = strip_tags($single_conv->statusnet_notice_info->source);
|
$arr["app"] = strip_tags($single_conv->statusnet_notice_info->source);
|
||||||
} elseif (isset($single_conv->provider->displayName)) {
|
elseif (isset($single_conv->provider->displayName))
|
||||||
$arr["app"] = $single_conv->provider->displayName;
|
$arr["app"] = $single_conv->provider->displayName;
|
||||||
} else {
|
else
|
||||||
$arr["app"] = "OStatus";
|
$arr["app"] = "OStatus";
|
||||||
}
|
|
||||||
|
|
||||||
$arr["object"] = json_encode($single_conv);
|
$arr["object"] = json_encode($single_conv);
|
||||||
$arr["verb"] = $parent["verb"];
|
$arr["verb"] = $parent["verb"];
|
||||||
|
|
@ -1185,31 +1092,27 @@ class ostatus {
|
||||||
|
|
||||||
// Is it a reshared item?
|
// Is it a reshared item?
|
||||||
if (isset($single_conv->verb) AND ($single_conv->verb == "share") AND isset($single_conv->object)) {
|
if (isset($single_conv->verb) AND ($single_conv->verb == "share") AND isset($single_conv->object)) {
|
||||||
if (is_array($single_conv->object)) {
|
if (is_array($single_conv->object))
|
||||||
$single_conv->object = $single_conv->object[0];
|
$single_conv->object = $single_conv->object[0];
|
||||||
}
|
|
||||||
|
|
||||||
logger("Found reshared item ".$single_conv->object->id);
|
logger("Found reshared item ".$single_conv->object->id);
|
||||||
|
|
||||||
// $single_conv->object->context->conversation;
|
// $single_conv->object->context->conversation;
|
||||||
|
|
||||||
if (isset($single_conv->object->object->id)) {
|
if (isset($single_conv->object->object->id))
|
||||||
$arr["uri"] = $single_conv->object->object->id;
|
$arr["uri"] = $single_conv->object->object->id;
|
||||||
} else {
|
else
|
||||||
$arr["uri"] = $single_conv->object->id;
|
$arr["uri"] = $single_conv->object->id;
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($single_conv->object->object->url)) {
|
if (isset($single_conv->object->object->url))
|
||||||
$plink = self::convert_href($single_conv->object->object->url);
|
$plink = self::convert_href($single_conv->object->object->url);
|
||||||
} else {
|
else
|
||||||
$plink = self::convert_href($single_conv->object->url);
|
$plink = self::convert_href($single_conv->object->url);
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($single_conv->object->object->content)) {
|
if (isset($single_conv->object->object->content))
|
||||||
$arr["body"] = add_page_info_to_body(html2bbcode($single_conv->object->object->content));
|
$arr["body"] = add_page_info_to_body(html2bbcode($single_conv->object->object->content));
|
||||||
} else {
|
else
|
||||||
$arr["body"] = add_page_info_to_body(html2bbcode($single_conv->object->content));
|
$arr["body"] = add_page_info_to_body(html2bbcode($single_conv->object->content));
|
||||||
}
|
|
||||||
|
|
||||||
$arr["plink"] = $plink;
|
$arr["plink"] = $plink;
|
||||||
|
|
||||||
|
|
@ -1217,9 +1120,8 @@ class ostatus {
|
||||||
$arr["edited"] = $single_conv->object->published;
|
$arr["edited"] = $single_conv->object->published;
|
||||||
|
|
||||||
$arr["author-name"] = $single_conv->object->actor->displayName;
|
$arr["author-name"] = $single_conv->object->actor->displayName;
|
||||||
if ($arr["owner-name"] == '') {
|
if ($arr["owner-name"] == '')
|
||||||
$arr["author-name"] = $single_conv->object->actor->contact->displayName;
|
$arr["author-name"] = $single_conv->object->actor->contact->displayName;
|
||||||
}
|
|
||||||
|
|
||||||
$arr["author-link"] = $single_conv->object->actor->url;
|
$arr["author-link"] = $single_conv->object->actor->url;
|
||||||
$arr["author-avatar"] = $single_conv->object->actor->image->url;
|
$arr["author-avatar"] = $single_conv->object->actor->image->url;
|
||||||
|
|
@ -1231,24 +1133,20 @@ class ostatus {
|
||||||
$arr["coord"] = trim($single_conv->object->location->lat." ".$single_conv->object->location->lon);
|
$arr["coord"] = trim($single_conv->object->location->lat." ".$single_conv->object->location->lon);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($arr["location"] == "") {
|
if ($arr["location"] == "")
|
||||||
unset($arr["location"]);
|
unset($arr["location"]);
|
||||||
}
|
|
||||||
|
|
||||||
if ($arr["coord"] == "") {
|
if ($arr["coord"] == "")
|
||||||
unset($arr["coord"]);
|
unset($arr["coord"]);
|
||||||
}
|
|
||||||
|
|
||||||
// Copy fields from given item array
|
// Copy fields from given item array
|
||||||
if (isset($item["uri"]) AND (($item["uri"] == $arr["uri"]) OR ($item["uri"] == $single_conv->id))) {
|
if (isset($item["uri"]) AND (($item["uri"] == $arr["uri"]) OR ($item["uri"] == $single_conv->id))) {
|
||||||
$copy_fields = array("owner-name", "owner-link", "owner-avatar", "author-name", "author-link", "author-avatar",
|
$copy_fields = array("owner-name", "owner-link", "owner-avatar", "author-name", "author-link", "author-avatar",
|
||||||
"gravity", "body", "object-type", "object", "verb", "created", "edited", "coord", "tag",
|
"gravity", "body", "object-type", "object", "verb", "created", "edited", "coord", "tag",
|
||||||
"title", "attach", "app", "type", "location", "contact-id", "uri");
|
"title", "attach", "app", "type", "location", "contact-id", "uri");
|
||||||
foreach ($copy_fields AS $field) {
|
foreach ($copy_fields AS $field)
|
||||||
if (isset($item[$field])) {
|
if (isset($item[$field]))
|
||||||
$arr[$field] = $item[$field];
|
$arr[$field] = $item[$field];
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1274,9 +1172,8 @@ class ostatus {
|
||||||
logger('setting new parent to id '.$newitem);
|
logger('setting new parent to id '.$newitem);
|
||||||
$new_parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
$new_parents = q("SELECT `id`, `uri`, `contact-id`, `type`, `verb`, `visible` FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||||
intval($uid), intval($newitem));
|
intval($uid), intval($newitem));
|
||||||
if (dbm::is_result($new_parents)) {
|
if ($new_parents)
|
||||||
$parent = $new_parents[0];
|
$parent = $new_parents[0];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1311,18 +1208,15 @@ class ostatus {
|
||||||
$conversation_url = self::convert_href($conversation_url);
|
$conversation_url = self::convert_href($conversation_url);
|
||||||
|
|
||||||
$messages = q("SELECT `uid`, `parent`, `created`, `received`, `guid` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
|
$messages = q("SELECT `uid`, `parent`, `created`, `received`, `guid` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
|
||||||
|
if (!$messages)
|
||||||
if (!dbm::is_result($messages)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$message = $messages[0];
|
$message = $messages[0];
|
||||||
|
|
||||||
// Store conversation url if not done before
|
// Store conversation url if not done before
|
||||||
$conversation = q("SELECT `url` FROM `term` WHERE `uid` = %d AND `oid` = %d AND `otype` = %d AND `type` = %d",
|
$conversation = q("SELECT `url` FROM `term` WHERE `uid` = %d AND `oid` = %d AND `otype` = %d AND `type` = %d",
|
||||||
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION));
|
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION));
|
||||||
|
|
||||||
if (!dbm::is_result($conversation)) {
|
if (!$conversation) {
|
||||||
$r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `created`, `received`, `guid`) VALUES (%d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s')",
|
$r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `created`, `received`, `guid`) VALUES (%d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s')",
|
||||||
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION),
|
intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CONVERSATION),
|
||||||
dbesc($message["created"]), dbesc($conversation_url), dbesc($message["created"]), dbesc($message["received"]), dbesc($message["guid"]));
|
dbesc($message["created"]), dbesc($conversation_url), dbesc($message["created"]), dbesc($message["received"]), dbesc($message["guid"]));
|
||||||
|
|
@ -1336,38 +1230,32 @@ class ostatus {
|
||||||
* @param array $item The item array of thw post
|
* @param array $item The item array of thw post
|
||||||
*
|
*
|
||||||
* @return string The guid if the post is a reshare
|
* @return string The guid if the post is a reshare
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function get_reshared_guid($item) {
|
private function get_reshared_guid($item) {
|
||||||
$body = trim($item["body"]);
|
$body = trim($item["body"]);
|
||||||
|
|
||||||
// Skip if it isn't a pure repeated messages
|
// Skip if it isn't a pure repeated messages
|
||||||
// Does it start with a share?
|
// Does it start with a share?
|
||||||
if (strpos($body, "[share") > 0) {
|
if (strpos($body, "[share") > 0)
|
||||||
return("");
|
return("");
|
||||||
}
|
|
||||||
|
|
||||||
// Does it end with a share?
|
// Does it end with a share?
|
||||||
if (strlen($body) > (strrpos($body, "[/share]") + 8)) {
|
if (strlen($body) > (strrpos($body, "[/share]") + 8))
|
||||||
return("");
|
return("");
|
||||||
}
|
|
||||||
|
|
||||||
$attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$1",$body);
|
$attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$1",$body);
|
||||||
// Skip if there is no shared message in there
|
// Skip if there is no shared message in there
|
||||||
if ($body == $attributes) {
|
if ($body == $attributes)
|
||||||
return(false);
|
return(false);
|
||||||
}
|
|
||||||
|
|
||||||
$guid = "";
|
$guid = "";
|
||||||
preg_match("/guid='(.*?)'/ism", $attributes, $matches);
|
preg_match("/guid='(.*?)'/ism", $attributes, $matches);
|
||||||
if ($matches[1] != "") {
|
if ($matches[1] != "")
|
||||||
$guid = $matches[1];
|
$guid = $matches[1];
|
||||||
}
|
|
||||||
|
|
||||||
preg_match('/guid="(.*?)"/ism', $attributes, $matches);
|
preg_match('/guid="(.*?)"/ism', $attributes, $matches);
|
||||||
if ($matches[1] != "") {
|
if ($matches[1] != "")
|
||||||
$guid = $matches[1];
|
$guid = $matches[1];
|
||||||
}
|
|
||||||
|
|
||||||
return $guid;
|
return $guid;
|
||||||
}
|
}
|
||||||
|
|
@ -1383,11 +1271,10 @@ class ostatus {
|
||||||
$siteinfo = get_attached_data($body);
|
$siteinfo = get_attached_data($body);
|
||||||
|
|
||||||
if (($siteinfo["type"] == "photo")) {
|
if (($siteinfo["type"] == "photo")) {
|
||||||
if (isset($siteinfo["preview"])) {
|
if (isset($siteinfo["preview"]))
|
||||||
$preview = $siteinfo["preview"];
|
$preview = $siteinfo["preview"];
|
||||||
} else {
|
else
|
||||||
$preview = $siteinfo["image"];
|
$preview = $siteinfo["image"];
|
||||||
}
|
|
||||||
|
|
||||||
// Is it a remote picture? Then make a smaller preview here
|
// Is it a remote picture? Then make a smaller preview here
|
||||||
$preview = proxy_url($preview, false, PROXY_SIZE_SMALL);
|
$preview = proxy_url($preview, false, PROXY_SIZE_SMALL);
|
||||||
|
|
@ -1396,11 +1283,10 @@ class ostatus {
|
||||||
$preview = str_replace(array("-0.jpg", "-0.png"), array("-2.jpg", "-2.png"), $preview);
|
$preview = str_replace(array("-0.jpg", "-0.png"), array("-2.jpg", "-2.png"), $preview);
|
||||||
$preview = str_replace(array("-1.jpg", "-1.png"), array("-2.jpg", "-2.png"), $preview);
|
$preview = str_replace(array("-1.jpg", "-1.png"), array("-2.jpg", "-2.png"), $preview);
|
||||||
|
|
||||||
if (isset($siteinfo["url"])) {
|
if (isset($siteinfo["url"]))
|
||||||
$url = $siteinfo["url"];
|
$url = $siteinfo["url"];
|
||||||
} else {
|
else
|
||||||
$url = $siteinfo["image"];
|
$url = $siteinfo["image"];
|
||||||
}
|
|
||||||
|
|
||||||
$body = trim($siteinfo["text"])." [url]".$url."[/url]\n[img]".$preview."[/img]";
|
$body = trim($siteinfo["text"])." [url]".$url."[/url]\n[img]".$preview."[/img]";
|
||||||
}
|
}
|
||||||
|
|
@ -1415,7 +1301,6 @@ class ostatus {
|
||||||
* @param array $owner Contact data of the poster
|
* @param array $owner Contact data of the poster
|
||||||
*
|
*
|
||||||
* @return object header root element
|
* @return object header root element
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function add_header($doc, $owner) {
|
private function add_header($doc, $owner) {
|
||||||
|
|
||||||
|
|
@ -1475,23 +1360,20 @@ class ostatus {
|
||||||
*
|
*
|
||||||
* @param object $doc XML document
|
* @param object $doc XML document
|
||||||
* @param object $root XML root element where the hub links are added
|
* @param object $root XML root element where the hub links are added
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
public static function hublinks($doc, $root) {
|
public static function hublinks($doc, $root) {
|
||||||
$hub = get_config('system','huburl');
|
$hub = get_config('system','huburl');
|
||||||
|
|
||||||
$hubxml = '';
|
$hubxml = '';
|
||||||
if (strlen($hub)) {
|
if(strlen($hub)) {
|
||||||
$hubs = explode(',', $hub);
|
$hubs = explode(',', $hub);
|
||||||
if (count($hubs)) {
|
if(count($hubs)) {
|
||||||
foreach ($hubs as $h) {
|
foreach($hubs as $h) {
|
||||||
$h = trim($h);
|
$h = trim($h);
|
||||||
if (! strlen($h)) {
|
if(! strlen($h))
|
||||||
continue;
|
continue;
|
||||||
}
|
if ($h === '[internal]')
|
||||||
if ($h === '[internal]') {
|
|
||||||
$h = App::get_baseurl() . '/pubsubhubbub';
|
$h = App::get_baseurl() . '/pubsubhubbub';
|
||||||
}
|
|
||||||
xml::add_element($doc, $root, "link", "", array("href" => $h, "rel" => "hub"));
|
xml::add_element($doc, $root, "link", "", array("href" => $h, "rel" => "hub"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1504,7 +1386,6 @@ class ostatus {
|
||||||
* @param object $doc XML document
|
* @param object $doc XML document
|
||||||
* @param object $root XML root element where the hub links are added
|
* @param object $root XML root element where the hub links are added
|
||||||
* @param array $item Data of the item that is to be posted
|
* @param array $item Data of the item that is to be posted
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function get_attachment($doc, $root, $item) {
|
private function get_attachment($doc, $root, $item) {
|
||||||
$o = "";
|
$o = "";
|
||||||
|
|
@ -1548,22 +1429,20 @@ class ostatus {
|
||||||
|
|
||||||
|
|
||||||
$arr = explode('[/attach],',$item['attach']);
|
$arr = explode('[/attach],',$item['attach']);
|
||||||
if (count($arr)) {
|
if(count($arr)) {
|
||||||
foreach ($arr as $r) {
|
foreach($arr as $r) {
|
||||||
$matches = false;
|
$matches = false;
|
||||||
$cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches);
|
$cnt = preg_match('|\[attach\]href=\"(.*?)\" length=\"(.*?)\" type=\"(.*?)\" title=\"(.*?)\"|',$r,$matches);
|
||||||
if ($cnt) {
|
if($cnt) {
|
||||||
$attributes = array("rel" => "enclosure",
|
$attributes = array("rel" => "enclosure",
|
||||||
"href" => $matches[1],
|
"href" => $matches[1],
|
||||||
"type" => $matches[3]);
|
"type" => $matches[3]);
|
||||||
|
|
||||||
if (intval($matches[2])) {
|
if(intval($matches[2]))
|
||||||
$attributes["length"] = intval($matches[2]);
|
$attributes["length"] = intval($matches[2]);
|
||||||
}
|
|
||||||
|
|
||||||
if (trim($matches[4]) != "") {
|
if(trim($matches[4]) != "")
|
||||||
$attributes["title"] = trim($matches[4]);
|
$attributes["title"] = trim($matches[4]);
|
||||||
}
|
|
||||||
|
|
||||||
xml::add_element($doc, $root, "link", "", $attributes);
|
xml::add_element($doc, $root, "link", "", $attributes);
|
||||||
}
|
}
|
||||||
|
|
@ -1578,15 +1457,12 @@ class ostatus {
|
||||||
* @param array $owner Contact data of the poster
|
* @param array $owner Contact data of the poster
|
||||||
*
|
*
|
||||||
* @return object author element
|
* @return object author element
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function add_author($doc, $owner) {
|
private function add_author($doc, $owner) {
|
||||||
|
|
||||||
$profile = null;
|
|
||||||
$r = q("SELECT `homepage` FROM `profile` WHERE `uid` = %d AND `is-default` LIMIT 1", intval($owner["uid"]));
|
$r = q("SELECT `homepage` FROM `profile` WHERE `uid` = %d AND `is-default` LIMIT 1", intval($owner["uid"]));
|
||||||
if (dbm::is_result($r)) {
|
if ($r)
|
||||||
$profile = $r[0];
|
$profile = $r[0];
|
||||||
}
|
|
||||||
|
|
||||||
$author = $doc->createElement("author");
|
$author = $doc->createElement("author");
|
||||||
xml::add_element($doc, $author, "activity:object-type", ACTIVITY_OBJ_PERSON);
|
xml::add_element($doc, $author, "activity:object-type", ACTIVITY_OBJ_PERSON);
|
||||||
|
|
@ -1654,12 +1530,10 @@ class ostatus {
|
||||||
* @param array $item Data of the item that is to be posted
|
* @param array $item Data of the item that is to be posted
|
||||||
*
|
*
|
||||||
* @return string activity
|
* @return string activity
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
function construct_verb($item) {
|
function construct_verb($item) {
|
||||||
if ($item['verb']) {
|
if ($item['verb'])
|
||||||
return $item['verb'];
|
return $item['verb'];
|
||||||
}
|
|
||||||
return ACTIVITY_POST;
|
return ACTIVITY_POST;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1669,12 +1543,10 @@ class ostatus {
|
||||||
* @param array $item Data of the item that is to be posted
|
* @param array $item Data of the item that is to be posted
|
||||||
*
|
*
|
||||||
* @return string Object type
|
* @return string Object type
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
function construct_objecttype($item) {
|
function construct_objecttype($item) {
|
||||||
if (in_array($item['object-type'], array(ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT))) {
|
if (in_array($item['object-type'], array(ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT)))
|
||||||
return $item['object-type'];
|
return $item['object-type'];
|
||||||
};
|
|
||||||
return ACTIVITY_OBJ_NOTE;
|
return ACTIVITY_OBJ_NOTE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1712,7 +1584,6 @@ class ostatus {
|
||||||
* @param array $contact Array of the contact that is added
|
* @param array $contact Array of the contact that is added
|
||||||
*
|
*
|
||||||
* @return object Source element
|
* @return object Source element
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function source_entry($doc, $contact) {
|
private function source_entry($doc, $contact) {
|
||||||
$source = $doc->createElement("source");
|
$source = $doc->createElement("source");
|
||||||
|
|
@ -1737,41 +1608,39 @@ class ostatus {
|
||||||
* @param array $owner Contact data of the poster
|
* @param array $owner Contact data of the poster
|
||||||
*
|
*
|
||||||
* @return array Contact array
|
* @return array Contact array
|
||||||
* @todo Add array type-hint for $owner
|
|
||||||
*/
|
*/
|
||||||
private function contact_entry($url, $owner) {
|
private function contact_entry($url, $owner) {
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `nurl` = '%s' AND `uid` IN (0, %d) ORDER BY `uid` DESC LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `nurl` = '%s' AND `uid` IN (0, %d) ORDER BY `uid` DESC LIMIT 1",
|
||||||
dbesc(normalise_link($url)), intval($owner["uid"]));
|
dbesc(normalise_link($url)), intval($owner["uid"]));
|
||||||
if (dbm::is_result($r)) {
|
if ($r) {
|
||||||
$contact = $r[0];
|
$contact = $r[0];
|
||||||
$contact["uid"] = -1;
|
$contact["uid"] = -1;
|
||||||
} else {
|
}
|
||||||
|
|
||||||
|
if (!$r) {
|
||||||
$r = q("SELECT * FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
|
$r = q("SELECT * FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
|
||||||
dbesc(normalise_link($url)));
|
dbesc(normalise_link($url)));
|
||||||
if (dbm::is_result($r)) {
|
if ($r) {
|
||||||
$contact = $r[0];
|
$contact = $r[0];
|
||||||
$contact["uid"] = -1;
|
$contact["uid"] = -1;
|
||||||
$contact["success_update"] = $contact["updated"];
|
$contact["success_update"] = $contact["updated"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r)
|
||||||
$contact = $owner;
|
$contact = owner;
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset($contact["poll"])) {
|
if (!isset($contact["poll"])) {
|
||||||
$data = probe_url($url);
|
$data = probe_url($url);
|
||||||
$contact["poll"] = $data["poll"];
|
$contact["poll"] = $data["poll"];
|
||||||
|
|
||||||
if (!$contact["alias"]) {
|
if (!$contact["alias"])
|
||||||
$contact["alias"] = $data["alias"];
|
$contact["alias"] = $data["alias"];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset($contact["alias"])) {
|
if (!isset($contact["alias"]))
|
||||||
$contact["alias"] = $contact["url"];
|
$contact["alias"] = $contact["url"];
|
||||||
}
|
|
||||||
|
|
||||||
return $contact;
|
return $contact;
|
||||||
}
|
}
|
||||||
|
|
@ -1786,7 +1655,6 @@ class ostatus {
|
||||||
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
||||||
*
|
*
|
||||||
* @return object Entry element
|
* @return object Entry element
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function reshare_entry($doc, $item, $owner, $repeated_guid, $toplevel) {
|
private function reshare_entry($doc, $item, $owner, $repeated_guid, $toplevel) {
|
||||||
|
|
||||||
|
|
@ -1799,12 +1667,10 @@ class ostatus {
|
||||||
$r = q("SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' AND NOT `private` AND `network` IN ('%s', '%s', '%s') LIMIT 1",
|
$r = q("SELECT * FROM `item` WHERE `uid` = %d AND `guid` = '%s' AND NOT `private` AND `network` IN ('%s', '%s', '%s') LIMIT 1",
|
||||||
intval($owner["uid"]), dbesc($repeated_guid),
|
intval($owner["uid"]), dbesc($repeated_guid),
|
||||||
dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS));
|
dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS));
|
||||||
|
if ($r)
|
||||||
if (!dbm::is_result($r)) {
|
$repeated_item = $r[0];
|
||||||
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$repeated_item = $r[0];
|
|
||||||
|
|
||||||
$contact = self::contact_entry($repeated_item['author-link'], $owner);
|
$contact = self::contact_entry($repeated_item['author-link'], $owner);
|
||||||
|
|
||||||
|
|
@ -1855,7 +1721,6 @@ class ostatus {
|
||||||
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
||||||
*
|
*
|
||||||
* @return object Entry element with "like"
|
* @return object Entry element with "like"
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function like_entry($doc, $item, $owner, $toplevel) {
|
private function like_entry($doc, $item, $owner, $toplevel) {
|
||||||
|
|
||||||
|
|
@ -1893,7 +1758,6 @@ class ostatus {
|
||||||
* @param array $contact Contact data of the target
|
* @param array $contact Contact data of the target
|
||||||
*
|
*
|
||||||
* @return object author element
|
* @return object author element
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function add_person_object($doc, $owner, $contact) {
|
private function add_person_object($doc, $owner, $contact) {
|
||||||
|
|
||||||
|
|
@ -1940,7 +1804,6 @@ class ostatus {
|
||||||
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
||||||
*
|
*
|
||||||
* @return object Entry element
|
* @return object Entry element
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function follow_entry($doc, $item, $owner, $toplevel) {
|
private function follow_entry($doc, $item, $owner, $toplevel) {
|
||||||
|
|
||||||
|
|
@ -2003,7 +1866,6 @@ class ostatus {
|
||||||
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
||||||
*
|
*
|
||||||
* @return object Entry element
|
* @return object Entry element
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function note_entry($doc, $item, $owner, $toplevel) {
|
private function note_entry($doc, $item, $owner, $toplevel) {
|
||||||
|
|
||||||
|
|
@ -2031,7 +1893,6 @@ class ostatus {
|
||||||
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
* @param bool $toplevel Is it for en entry element (false) or a feed entry (true)?
|
||||||
*
|
*
|
||||||
* @return string The title for the element
|
* @return string The title for the element
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function entry_header($doc, &$entry, $owner, $toplevel) {
|
private function entry_header($doc, &$entry, $owner, $toplevel) {
|
||||||
/// @todo Check if this title stuff is really needed (I guess not)
|
/// @todo Check if this title stuff is really needed (I guess not)
|
||||||
|
|
@ -2067,22 +1928,19 @@ class ostatus {
|
||||||
* @param string $title Title for the post
|
* @param string $title Title for the post
|
||||||
* @param string $verb The activity verb
|
* @param string $verb The activity verb
|
||||||
* @param bool $complete Add the "status_net" element?
|
* @param bool $complete Add the "status_net" element?
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function entry_content($doc, $entry, $item, $owner, $title, $verb = "", $complete = true) {
|
private function entry_content($doc, $entry, $item, $owner, $title, $verb = "", $complete = true) {
|
||||||
|
|
||||||
if ($verb == "") {
|
if ($verb == "")
|
||||||
$verb = self::construct_verb($item);
|
$verb = self::construct_verb($item);
|
||||||
}
|
|
||||||
|
|
||||||
xml::add_element($doc, $entry, "id", $item["uri"]);
|
xml::add_element($doc, $entry, "id", $item["uri"]);
|
||||||
xml::add_element($doc, $entry, "title", $title);
|
xml::add_element($doc, $entry, "title", $title);
|
||||||
|
|
||||||
$body = self::format_picture_post($item['body']);
|
$body = self::format_picture_post($item['body']);
|
||||||
|
|
||||||
if ($item['title'] != "") {
|
if ($item['title'] != "")
|
||||||
$body = "[b]".$item['title']."[/b]\n\n".$body;
|
$body = "[b]".$item['title']."[/b]\n\n".$body;
|
||||||
}
|
|
||||||
|
|
||||||
$body = bbcode($body, false, false, 7);
|
$body = bbcode($body, false, false, 7);
|
||||||
|
|
||||||
|
|
@ -2108,7 +1966,6 @@ class ostatus {
|
||||||
* @param array $item Data of the item that is to be posted
|
* @param array $item Data of the item that is to be posted
|
||||||
* @param array $owner Contact data of the poster
|
* @param array $owner Contact data of the poster
|
||||||
* @param $complete
|
* @param $complete
|
||||||
* @todo Add type-hints
|
|
||||||
*/
|
*/
|
||||||
private function entry_footer($doc, $entry, $item, $owner, $complete = true) {
|
private function entry_footer($doc, $entry, $item, $owner, $complete = true) {
|
||||||
|
|
||||||
|
|
@ -2135,7 +1992,7 @@ class ostatus {
|
||||||
$thrparent = q("SELECT `guid`, `author-link`, `owner-link` FROM `item` WHERE `uid` = %d AND `uri` = '%s'",
|
$thrparent = q("SELECT `guid`, `author-link`, `owner-link` FROM `item` WHERE `uid` = %d AND `uri` = '%s'",
|
||||||
intval($owner["uid"]),
|
intval($owner["uid"]),
|
||||||
dbesc($parent_item));
|
dbesc($parent_item));
|
||||||
if (dbm::is_result($thrparent)) {
|
if ($thrparent) {
|
||||||
$mentioned[$thrparent[0]["author-link"]] = $thrparent[0]["author-link"];
|
$mentioned[$thrparent[0]["author-link"]] = $thrparent[0]["author-link"];
|
||||||
$mentioned[$thrparent[0]["owner-link"]] = $thrparent[0]["owner-link"];
|
$mentioned[$thrparent[0]["owner-link"]] = $thrparent[0]["owner-link"];
|
||||||
}
|
}
|
||||||
|
|
@ -2149,13 +2006,10 @@ class ostatus {
|
||||||
|
|
||||||
$tags = item_getfeedtags($item);
|
$tags = item_getfeedtags($item);
|
||||||
|
|
||||||
if (count($tags)) {
|
if(count($tags))
|
||||||
foreach ($tags as $t) {
|
foreach($tags as $t)
|
||||||
if ($t[0] == "@") {
|
if ($t[0] == "@")
|
||||||
$mentioned[$t[1]] = $t[1];
|
$mentioned[$t[1]] = $t[1];
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure that mentions are accepted (GNU Social has problems with mixing HTTP and HTTPS)
|
// Make sure that mentions are accepted (GNU Social has problems with mixing HTTP and HTTPS)
|
||||||
$newmentions = array();
|
$newmentions = array();
|
||||||
|
|
@ -2169,15 +2023,14 @@ class ostatus {
|
||||||
$r = q("SELECT `forum`, `prv` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s'",
|
$r = q("SELECT `forum`, `prv` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s'",
|
||||||
intval($owner["uid"]),
|
intval($owner["uid"]),
|
||||||
dbesc(normalise_link($mention)));
|
dbesc(normalise_link($mention)));
|
||||||
if ($r[0]["forum"] OR $r[0]["prv"]) {
|
if ($r[0]["forum"] OR $r[0]["prv"])
|
||||||
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
||||||
"ostatus:object-type" => ACTIVITY_OBJ_GROUP,
|
"ostatus:object-type" => ACTIVITY_OBJ_GROUP,
|
||||||
"href" => $mention));
|
"href" => $mention));
|
||||||
} else {
|
else
|
||||||
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
||||||
"ostatus:object-type" => ACTIVITY_OBJ_PERSON,
|
"ostatus:object-type" => ACTIVITY_OBJ_PERSON,
|
||||||
"href" => $mention));
|
"href" => $mention));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$item["private"]) {
|
if (!$item["private"]) {
|
||||||
|
|
@ -2188,13 +2041,10 @@ class ostatus {
|
||||||
"href" => "http://activityschema.org/collection/public"));
|
"href" => "http://activityschema.org/collection/public"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($tags)) {
|
if(count($tags))
|
||||||
foreach ($tags as $t) {
|
foreach($tags as $t)
|
||||||
if ($t[0] != "@") {
|
if ($t[0] != "@")
|
||||||
xml::add_element($doc, $entry, "category", "", array("term" => $t[2]));
|
xml::add_element($doc, $entry, "category", "", array("term" => $t[2]));
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self::get_attachment($doc, $entry, $item);
|
self::get_attachment($doc, $entry, $item);
|
||||||
|
|
||||||
|
|
@ -2235,7 +2085,7 @@ class ostatus {
|
||||||
|
|
||||||
$owner = $r[0];
|
$owner = $r[0];
|
||||||
|
|
||||||
if (!strlen($last_update))
|
if(!strlen($last_update))
|
||||||
$last_update = 'now -30 days';
|
$last_update = 'now -30 days';
|
||||||
|
|
||||||
$check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s');
|
$check_date = datetime_convert('UTC','UTC',$last_update,'Y-m-d H:i:s');
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ use \Friendica\Core\Config;
|
||||||
|
|
||||||
require_once("include/dba.php");
|
require_once("include/dba.php");
|
||||||
|
|
||||||
if (! function_exists('get_browser_language')) {
|
if(! function_exists('get_browser_language')) {
|
||||||
/**
|
/**
|
||||||
* @brief get the prefered language from the HTTP_ACCEPT_LANGUAGE header
|
* @brief get the prefered language from the HTTP_ACCEPT_LANGUAGE header
|
||||||
*/
|
*/
|
||||||
|
|
@ -44,7 +44,7 @@ function get_browser_language() {
|
||||||
// check if we have translations for the preferred languages and pick the 1st that has
|
// check if we have translations for the preferred languages and pick the 1st that has
|
||||||
for ($i=0; $i<count($lang_list); $i++) {
|
for ($i=0; $i<count($lang_list); $i++) {
|
||||||
$lang = $lang_list[$i];
|
$lang = $lang_list[$i];
|
||||||
if (file_exists("view/lang/$lang") && is_dir("view/lang/$lang")) {
|
if(file_exists("view/lang/$lang") && is_dir("view/lang/$lang")) {
|
||||||
$preferred = $lang;
|
$preferred = $lang;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -63,10 +63,10 @@ function push_lang($language) {
|
||||||
|
|
||||||
$a->langsave = $lang;
|
$a->langsave = $lang;
|
||||||
|
|
||||||
if ($language === $lang)
|
if($language === $lang)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (isset($a->strings) && count($a->strings)) {
|
if(isset($a->strings) && count($a->strings)) {
|
||||||
$a->stringsave = $a->strings;
|
$a->stringsave = $a->strings;
|
||||||
}
|
}
|
||||||
$a->strings = array();
|
$a->strings = array();
|
||||||
|
|
@ -77,10 +77,10 @@ function push_lang($language) {
|
||||||
function pop_lang() {
|
function pop_lang() {
|
||||||
global $lang, $a;
|
global $lang, $a;
|
||||||
|
|
||||||
if ($lang === $a->langsave)
|
if($lang === $a->langsave)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (isset($a->stringsave))
|
if(isset($a->stringsave))
|
||||||
$a->strings = $a->stringsave;
|
$a->strings = $a->stringsave;
|
||||||
else
|
else
|
||||||
$a->strings = array();
|
$a->strings = array();
|
||||||
|
|
@ -91,7 +91,7 @@ function pop_lang() {
|
||||||
|
|
||||||
// l
|
// l
|
||||||
|
|
||||||
if (! function_exists('load_translation_table')) {
|
if(! function_exists('load_translation_table')) {
|
||||||
/**
|
/**
|
||||||
* load string translation table for alternate language
|
* load string translation table for alternate language
|
||||||
*
|
*
|
||||||
|
|
@ -106,15 +106,15 @@ function load_translation_table($lang) {
|
||||||
// load enabled plugins strings
|
// load enabled plugins strings
|
||||||
$plugins = q("SELECT name FROM addon WHERE installed=1;");
|
$plugins = q("SELECT name FROM addon WHERE installed=1;");
|
||||||
if ($plugins!==false) {
|
if ($plugins!==false) {
|
||||||
foreach ($plugins as $p) {
|
foreach($plugins as $p) {
|
||||||
$name = $p['name'];
|
$name = $p['name'];
|
||||||
if (file_exists("addon/$name/lang/$lang/strings.php")) {
|
if(file_exists("addon/$name/lang/$lang/strings.php")) {
|
||||||
include("addon/$name/lang/$lang/strings.php");
|
include("addon/$name/lang/$lang/strings.php");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file_exists("view/lang/$lang/strings.php")) {
|
if(file_exists("view/lang/$lang/strings.php")) {
|
||||||
include("view/lang/$lang/strings.php");
|
include("view/lang/$lang/strings.php");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,27 +122,27 @@ function load_translation_table($lang) {
|
||||||
|
|
||||||
// translate string if translation exists
|
// translate string if translation exists
|
||||||
|
|
||||||
if (! function_exists('t')) {
|
if(! function_exists('t')) {
|
||||||
function t($s) {
|
function t($s) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (x($a->strings,$s)) {
|
if(x($a->strings,$s)) {
|
||||||
$t = $a->strings[$s];
|
$t = $a->strings[$s];
|
||||||
return is_array($t)?$t[0]:$t;
|
return is_array($t)?$t[0]:$t;
|
||||||
}
|
}
|
||||||
return $s;
|
return $s;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if (! function_exists('tt')){
|
if(! function_exists('tt')){
|
||||||
function tt($singular, $plural, $count){
|
function tt($singular, $plural, $count){
|
||||||
global $lang;
|
global $lang;
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (x($a->strings,$singular)) {
|
if(x($a->strings,$singular)) {
|
||||||
$t = $a->strings[$singular];
|
$t = $a->strings[$singular];
|
||||||
$f = 'string_plural_select_' . str_replace('-','_',$lang);
|
$f = 'string_plural_select_' . str_replace('-','_',$lang);
|
||||||
if (! function_exists($f))
|
if(! function_exists($f))
|
||||||
$f = 'string_plural_select_default';
|
$f = 'string_plural_select_default';
|
||||||
$k = $f($count);
|
$k = $f($count);
|
||||||
return is_array($t)?$t[$k]:$t;
|
return is_array($t)?$t[$k]:$t;
|
||||||
|
|
@ -158,7 +158,7 @@ function tt($singular, $plural, $count){
|
||||||
// provide a fallback which will not collide with
|
// provide a fallback which will not collide with
|
||||||
// a function defined in any language file
|
// a function defined in any language file
|
||||||
|
|
||||||
if (! function_exists('string_plural_select_default')) {
|
if(! function_exists('string_plural_select_default')) {
|
||||||
function string_plural_select_default($n) {
|
function string_plural_select_default($n) {
|
||||||
return ($n != 1);
|
return ($n != 1);
|
||||||
}}
|
}}
|
||||||
|
|
@ -185,7 +185,7 @@ function get_available_languages() {
|
||||||
$strings_file_paths[] = 'view/lang/en/strings.php';
|
$strings_file_paths[] = 'view/lang/en/strings.php';
|
||||||
}
|
}
|
||||||
asort($strings_file_paths);
|
asort($strings_file_paths);
|
||||||
foreach ($strings_file_paths as $strings_file_path) {
|
foreach($strings_file_paths as $strings_file_path) {
|
||||||
$path_array = explode('/', $strings_file_path);
|
$path_array = explode('/', $strings_file_path);
|
||||||
$langs[$path_array[2]] = $path_array[2];
|
$langs[$path_array[2]] = $path_array[2];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ function uninstall_plugin($plugin){
|
||||||
);
|
);
|
||||||
|
|
||||||
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
|
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
|
||||||
if (function_exists($plugin . '_uninstall')) {
|
if(function_exists($plugin . '_uninstall')) {
|
||||||
$func = $plugin . '_uninstall';
|
$func = $plugin . '_uninstall';
|
||||||
$func();
|
$func();
|
||||||
}
|
}
|
||||||
|
|
@ -36,12 +36,12 @@ if (! function_exists('install_plugin')){
|
||||||
function install_plugin($plugin) {
|
function install_plugin($plugin) {
|
||||||
// silently fail if plugin was removed
|
// silently fail if plugin was removed
|
||||||
|
|
||||||
if (! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
|
if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
|
||||||
return false;
|
return false;
|
||||||
logger("Addons: installing " . $plugin);
|
logger("Addons: installing " . $plugin);
|
||||||
$t = @filemtime('addon/' . $plugin . '/' . $plugin . '.php');
|
$t = @filemtime('addon/' . $plugin . '/' . $plugin . '.php');
|
||||||
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
|
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
|
||||||
if (function_exists($plugin . '_install')) {
|
if(function_exists($plugin . '_install')) {
|
||||||
$func = $plugin . '_install';
|
$func = $plugin . '_install';
|
||||||
$func();
|
$func();
|
||||||
|
|
||||||
|
|
@ -57,7 +57,7 @@ function install_plugin($plugin) {
|
||||||
// once most site tables have been updated.
|
// once most site tables have been updated.
|
||||||
// This way the system won't fall over dead during the update.
|
// This way the system won't fall over dead during the update.
|
||||||
|
|
||||||
if (file_exists('addon/' . $plugin . '/.hidden')) {
|
if(file_exists('addon/' . $plugin . '/.hidden')) {
|
||||||
q("UPDATE `addon` SET `hidden` = 1 WHERE `name` = '%s'",
|
q("UPDATE `addon` SET `hidden` = 1 WHERE `name` = '%s'",
|
||||||
dbesc($plugin)
|
dbesc($plugin)
|
||||||
);
|
);
|
||||||
|
|
@ -73,10 +73,10 @@ function install_plugin($plugin) {
|
||||||
|
|
||||||
// reload all updated plugins
|
// reload all updated plugins
|
||||||
|
|
||||||
if (! function_exists('reload_plugins')) {
|
if(! function_exists('reload_plugins')) {
|
||||||
function reload_plugins() {
|
function reload_plugins() {
|
||||||
$plugins = get_config('system','addon');
|
$plugins = get_config('system','addon');
|
||||||
if (strlen($plugins)) {
|
if(strlen($plugins)) {
|
||||||
|
|
||||||
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
|
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
|
|
@ -86,25 +86,25 @@ function reload_plugins() {
|
||||||
|
|
||||||
$parr = explode(',',$plugins);
|
$parr = explode(',',$plugins);
|
||||||
|
|
||||||
if (count($parr)) {
|
if(count($parr)) {
|
||||||
foreach ($parr as $pl) {
|
foreach($parr as $pl) {
|
||||||
|
|
||||||
$pl = trim($pl);
|
$pl = trim($pl);
|
||||||
|
|
||||||
$fname = 'addon/' . $pl . '/' . $pl . '.php';
|
$fname = 'addon/' . $pl . '/' . $pl . '.php';
|
||||||
|
|
||||||
if (file_exists($fname)) {
|
if(file_exists($fname)) {
|
||||||
$t = @filemtime($fname);
|
$t = @filemtime($fname);
|
||||||
foreach ($installed as $i) {
|
foreach($installed as $i) {
|
||||||
if (($i['name'] == $pl) && ($i['timestamp'] != $t)) {
|
if(($i['name'] == $pl) && ($i['timestamp'] != $t)) {
|
||||||
logger('Reloading plugin: ' . $i['name']);
|
logger('Reloading plugin: ' . $i['name']);
|
||||||
@include_once($fname);
|
@include_once($fname);
|
||||||
|
|
||||||
if (function_exists($pl . '_uninstall')) {
|
if(function_exists($pl . '_uninstall')) {
|
||||||
$func = $pl . '_uninstall';
|
$func = $pl . '_uninstall';
|
||||||
$func();
|
$func();
|
||||||
}
|
}
|
||||||
if (function_exists($pl . '_install')) {
|
if(function_exists($pl . '_install')) {
|
||||||
$func = $pl . '_install';
|
$func = $pl . '_install';
|
||||||
$func();
|
$func();
|
||||||
}
|
}
|
||||||
|
|
@ -142,7 +142,7 @@ function plugin_enabled($plugin) {
|
||||||
* @param int $priority A priority (defaults to 0)
|
* @param int $priority A priority (defaults to 0)
|
||||||
* @return mixed|bool
|
* @return mixed|bool
|
||||||
*/
|
*/
|
||||||
if (! function_exists('register_hook')) {
|
if(! function_exists('register_hook')) {
|
||||||
function register_hook($hook,$file,$function,$priority=0) {
|
function register_hook($hook,$file,$function,$priority=0) {
|
||||||
|
|
||||||
$r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
|
$r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1",
|
||||||
|
|
@ -170,7 +170,7 @@ function register_hook($hook,$file,$function,$priority=0) {
|
||||||
* @param string $function the name of the function that the hook called
|
* @param string $function the name of the function that the hook called
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
if (! function_exists('unregister_hook')) {
|
if(! function_exists('unregister_hook')) {
|
||||||
function unregister_hook($hook,$file,$function) {
|
function unregister_hook($hook,$file,$function) {
|
||||||
|
|
||||||
$r = q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s'",
|
$r = q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s'",
|
||||||
|
|
@ -182,7 +182,7 @@ function unregister_hook($hook,$file,$function) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('load_hooks')) {
|
if(! function_exists('load_hooks')) {
|
||||||
function load_hooks() {
|
function load_hooks() {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$a->hooks = array();
|
$a->hooks = array();
|
||||||
|
|
@ -190,7 +190,7 @@ function load_hooks() {
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if (! array_key_exists($rr['hook'],$a->hooks))
|
if(! array_key_exists($rr['hook'],$a->hooks))
|
||||||
$a->hooks[$rr['hook']] = array();
|
$a->hooks[$rr['hook']] = array();
|
||||||
$a->hooks[$rr['hook']][] = array($rr['file'],$rr['function']);
|
$a->hooks[$rr['hook']][] = array($rr['file'],$rr['function']);
|
||||||
}
|
}
|
||||||
|
|
@ -244,13 +244,13 @@ function call_single_hook($a, $name, $hook, &$data = null) {
|
||||||
|
|
||||||
//check if an app_menu hook exist for plugin $name.
|
//check if an app_menu hook exist for plugin $name.
|
||||||
//Return true if the plugin is an app
|
//Return true if the plugin is an app
|
||||||
if (! function_exists('plugin_is_app')) {
|
if(! function_exists('plugin_is_app')) {
|
||||||
function plugin_is_app($name) {
|
function plugin_is_app($name) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (is_array($a->hooks) && (array_key_exists('app_menu',$a->hooks))) {
|
if(is_array($a->hooks) && (array_key_exists('app_menu',$a->hooks))) {
|
||||||
foreach ($a->hooks['app_menu'] as $hook) {
|
foreach($a->hooks['app_menu'] as $hook) {
|
||||||
if ($hook[0] == 'addon/'.$name.'/'.$name.'.php')
|
if($hook[0] == 'addon/'.$name.'/'.$name.'.php')
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -297,7 +297,7 @@ function get_plugin_info($plugin){
|
||||||
|
|
||||||
if ($r){
|
if ($r){
|
||||||
$ll = explode("\n", $m[0]);
|
$ll = explode("\n", $m[0]);
|
||||||
foreach ( $ll as $l ) {
|
foreach( $ll as $l ) {
|
||||||
$l = trim($l,"\t\n\r */");
|
$l = trim($l,"\t\n\r */");
|
||||||
if ($l!=""){
|
if ($l!=""){
|
||||||
list($k,$v) = array_map("trim", explode(":",$l,2));
|
list($k,$v) = array_map("trim", explode(":",$l,2));
|
||||||
|
|
@ -352,9 +352,9 @@ function get_theme_info($theme){
|
||||||
'unsupported' => false
|
'unsupported' => false
|
||||||
);
|
);
|
||||||
|
|
||||||
if (file_exists("view/theme/$theme/experimental"))
|
if(file_exists("view/theme/$theme/experimental"))
|
||||||
$info['experimental'] = true;
|
$info['experimental'] = true;
|
||||||
if (file_exists("view/theme/$theme/unsupported"))
|
if(file_exists("view/theme/$theme/unsupported"))
|
||||||
$info['unsupported'] = true;
|
$info['unsupported'] = true;
|
||||||
|
|
||||||
if (!is_file("view/theme/$theme/theme.php")) return $info;
|
if (!is_file("view/theme/$theme/theme.php")) return $info;
|
||||||
|
|
@ -368,7 +368,7 @@ function get_theme_info($theme){
|
||||||
|
|
||||||
if ($r){
|
if ($r){
|
||||||
$ll = explode("\n", $m[0]);
|
$ll = explode("\n", $m[0]);
|
||||||
foreach ( $ll as $l ) {
|
foreach( $ll as $l ) {
|
||||||
$l = trim($l,"\t\n\r */");
|
$l = trim($l,"\t\n\r */");
|
||||||
if ($l!=""){
|
if ($l!=""){
|
||||||
list($k,$v) = array_map("trim", explode(":",$l,2));
|
list($k,$v) = array_map("trim", explode(":",$l,2));
|
||||||
|
|
@ -412,7 +412,7 @@ function get_theme_info($theme){
|
||||||
*/
|
*/
|
||||||
function get_theme_screenshot($theme) {
|
function get_theme_screenshot($theme) {
|
||||||
$exts = array('.png','.jpg');
|
$exts = array('.png','.jpg');
|
||||||
foreach ($exts as $ext) {
|
foreach($exts as $ext) {
|
||||||
if (file_exists('view/theme/' . $theme . '/screenshot' . $ext)) {
|
if (file_exists('view/theme/' . $theme . '/screenshot' . $ext)) {
|
||||||
return(App::get_baseurl() . '/view/theme/' . $theme . '/screenshot' . $ext);
|
return(App::get_baseurl() . '/view/theme/' . $theme . '/screenshot' . $ext);
|
||||||
}
|
}
|
||||||
|
|
@ -511,11 +511,11 @@ function service_class_fetch($uid,$property) {
|
||||||
$service_class = $r[0]['service_class'];
|
$service_class = $r[0]['service_class'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! x($service_class))
|
if(! x($service_class))
|
||||||
return false; // everything is allowed
|
return false; // everything is allowed
|
||||||
|
|
||||||
$arr = get_config('service_class',$service_class);
|
$arr = get_config('service_class',$service_class);
|
||||||
if (! is_array($arr) || (! count($arr)))
|
if(! is_array($arr) || (! count($arr)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return((array_key_exists($property,$arr)) ? $arr[$property] : false);
|
return((array_key_exists($property,$arr)) ? $arr[$property] : false);
|
||||||
|
|
@ -524,14 +524,12 @@ function service_class_fetch($uid,$property) {
|
||||||
|
|
||||||
function upgrade_link($bbcode = false) {
|
function upgrade_link($bbcode = false) {
|
||||||
$l = get_config('service_class','upgrade_link');
|
$l = get_config('service_class','upgrade_link');
|
||||||
if (! $l) {
|
if(! $l)
|
||||||
return '';
|
return '';
|
||||||
}
|
if($bbcode)
|
||||||
if ($bbcode) {
|
|
||||||
$t = sprintf('[url=%s]' . t('Click here to upgrade.') . '[/url]', $l);
|
$t = sprintf('[url=%s]' . t('Click here to upgrade.') . '[/url]', $l);
|
||||||
} else {
|
else
|
||||||
$t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
|
$t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
|
||||||
}
|
|
||||||
return $t;
|
return $t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -558,15 +556,13 @@ function upgrade_bool_message($bbcode = false) {
|
||||||
*/
|
*/
|
||||||
function theme_include($file, $root = '') {
|
function theme_include($file, $root = '') {
|
||||||
// Make sure $root ends with a slash / if it's not blank
|
// Make sure $root ends with a slash / if it's not blank
|
||||||
if ($root !== '' && $root[strlen($root)-1] !== '/') {
|
if($root !== '' && $root[strlen($root)-1] !== '/')
|
||||||
$root = $root . '/';
|
$root = $root . '/';
|
||||||
}
|
|
||||||
$theme_info = $a->theme_info;
|
$theme_info = $a->theme_info;
|
||||||
if (is_array($theme_info) AND array_key_exists('extends',$theme_info)) {
|
if(is_array($theme_info) AND array_key_exists('extends',$theme_info))
|
||||||
$parent = $theme_info['extends'];
|
$parent = $theme_info['extends'];
|
||||||
} else {
|
else
|
||||||
$parent = 'NOPATH';
|
$parent = 'NOPATH';
|
||||||
}
|
|
||||||
$theme = current_theme();
|
$theme = current_theme();
|
||||||
$thname = $theme;
|
$thname = $theme;
|
||||||
$ext = substr($file,strrpos($file,'.')+1);
|
$ext = substr($file,strrpos($file,'.')+1);
|
||||||
|
|
@ -575,13 +571,12 @@ function theme_include($file, $root = '') {
|
||||||
"{$root}view/theme/$parent/$ext/$file",
|
"{$root}view/theme/$parent/$ext/$file",
|
||||||
"{$root}view/$ext/$file",
|
"{$root}view/$ext/$file",
|
||||||
);
|
);
|
||||||
foreach ($paths as $p) {
|
foreach($paths as $p) {
|
||||||
// strpos() is faster than strstr when checking if one string is in another (http://php.net/manual/en/function.strstr.php)
|
// strpos() is faster than strstr when checking if one string is in another (http://php.net/manual/en/function.strstr.php)
|
||||||
if (strpos($p,'NOPATH') !== false) {
|
if(strpos($p,'NOPATH') !== false)
|
||||||
continue;
|
continue;
|
||||||
} elseif (file_exists($p)) {
|
if(file_exists($p))
|
||||||
return $p;
|
return $p;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,11 +17,11 @@ require_once("boot.php");
|
||||||
function poller_run($argv, $argc){
|
function poller_run($argv, $argc){
|
||||||
global $a, $db;
|
global $a, $db;
|
||||||
|
|
||||||
if (is_null($a)) {
|
if(is_null($a)) {
|
||||||
$a = new App;
|
$a = new App;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_null($db)) {
|
if(is_null($db)) {
|
||||||
@include(".htconfig.php");
|
@include(".htconfig.php");
|
||||||
require_once("include/dba.php");
|
require_once("include/dba.php");
|
||||||
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
|
@ -49,7 +49,7 @@ function poller_run($argv, $argc){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($argc <= 1) OR ($argv[1] != "no_cron")) {
|
if(($argc <= 1) OR ($argv[1] != "no_cron")) {
|
||||||
poller_run_cron();
|
poller_run_cron();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -364,7 +364,7 @@ function poller_kill_stale_workers() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($r AS $pid)
|
foreach ($r AS $pid) {
|
||||||
if (!posix_kill($pid["pid"], 0)) {
|
if (!posix_kill($pid["pid"], 0)) {
|
||||||
q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = 0 WHERE `pid` = %d",
|
q("UPDATE `workerqueue` SET `executed` = '%s', `pid` = 0 WHERE `pid` = %d",
|
||||||
dbesc(NULL_DATE), intval($pid["pid"]));
|
dbesc(NULL_DATE), intval($pid["pid"]));
|
||||||
|
|
@ -372,9 +372,8 @@ function poller_kill_stale_workers() {
|
||||||
// Kill long running processes
|
// Kill long running processes
|
||||||
|
|
||||||
// Check if the priority is in a valid range
|
// Check if the priority is in a valid range
|
||||||
if (!in_array($pid["priority"], array(PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_MEDIUM, PRIORITY_LOW, PRIORITY_NEGLIGIBLE))) {
|
if (!in_array($pid["priority"], array(PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_MEDIUM, PRIORITY_LOW, PRIORITY_NEGLIGIBLE)))
|
||||||
$pid["priority"] = PRIORITY_MEDIUM;
|
$pid["priority"] = PRIORITY_MEDIUM;
|
||||||
}
|
|
||||||
|
|
||||||
// Define the maximum durations
|
// Define the maximum durations
|
||||||
$max_duration_defaults = array(PRIORITY_CRITICAL => 360, PRIORITY_HIGH => 10, PRIORITY_MEDIUM => 60, PRIORITY_LOW => 180, PRIORITY_NEGLIGIBLE => 360);
|
$max_duration_defaults = array(PRIORITY_CRITICAL => 360, PRIORITY_HIGH => 10, PRIORITY_MEDIUM => 60, PRIORITY_LOW => 180, PRIORITY_NEGLIGIBLE => 360);
|
||||||
|
|
@ -419,7 +418,7 @@ function poller_too_much_workers() {
|
||||||
|
|
||||||
// Decrease the number of workers at higher load
|
// Decrease the number of workers at higher load
|
||||||
$load = current_load();
|
$load = current_load();
|
||||||
if ($load) {
|
if($load) {
|
||||||
$maxsysload = intval(Config::get("system", "maxloadavg", 50));
|
$maxsysload = intval(Config::get("system", "maxloadavg", 50));
|
||||||
|
|
||||||
$maxworkers = $queues;
|
$maxworkers = $queues;
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ function post_update_1192() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the "gcontact-id" in the item table and add a new gcontact entry if needed
|
// Set the "gcontact-id" in the item table and add a new gcontact entry if needed
|
||||||
foreach ($item_arr AS $item) {
|
foreach($item_arr AS $item) {
|
||||||
$gcontact_id = get_gcontact_id(array("url" => $item['author-link'], "network" => $item['network'],
|
$gcontact_id = get_gcontact_id(array("url" => $item['author-link'], "network" => $item['network'],
|
||||||
"photo" => $item['author-avatar'], "name" => $item['author-name']));
|
"photo" => $item['author-avatar'], "name" => $item['author-name']));
|
||||||
q("UPDATE `item` SET `gcontact-id` = %d WHERE `uid` = %d AND `author-link` = '%s' AND `gcontact-id` = 0",
|
q("UPDATE `item` SET `gcontact-id` = %d WHERE `uid` = %d AND `author-link` = '%s' AND `gcontact-id` = 0",
|
||||||
|
|
@ -204,7 +204,7 @@ function post_update_1198() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the "gcontact-id" in the item table and add a new gcontact entry if needed
|
// Set the "gcontact-id" in the item table and add a new gcontact entry if needed
|
||||||
foreach ($item_arr AS $item) {
|
foreach($item_arr AS $item) {
|
||||||
$author_id = get_contact($item["author-link"], 0);
|
$author_id = get_contact($item["author-link"], 0);
|
||||||
$owner_id = get_contact($item["owner-link"], 0);
|
$owner_id = get_contact($item["owner-link"], 0);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ function gender_selector($current="",$suffix="") {
|
||||||
call_hooks('gender_selector', $select);
|
call_hooks('gender_selector', $select);
|
||||||
|
|
||||||
$o .= "<select name=\"gender$suffix\" id=\"gender-select$suffix\" size=\"1\" >";
|
$o .= "<select name=\"gender$suffix\" id=\"gender-select$suffix\" size=\"1\" >";
|
||||||
foreach ($select as $selection) {
|
foreach($select as $selection) {
|
||||||
if ($selection !== 'NOTRANSLATION') {
|
if($selection !== 'NOTRANSLATION') {
|
||||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||||
}
|
}
|
||||||
|
|
@ -26,8 +26,8 @@ function sexpref_selector($current="",$suffix="") {
|
||||||
call_hooks('sexpref_selector', $select);
|
call_hooks('sexpref_selector', $select);
|
||||||
|
|
||||||
$o .= "<select name=\"sexual$suffix\" id=\"sexual-select$suffix\" size=\"1\" >";
|
$o .= "<select name=\"sexual$suffix\" id=\"sexual-select$suffix\" size=\"1\" >";
|
||||||
foreach ($select as $selection) {
|
foreach($select as $selection) {
|
||||||
if ($selection !== 'NOTRANSLATION') {
|
if($selection !== 'NOTRANSLATION') {
|
||||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||||
}
|
}
|
||||||
|
|
@ -44,8 +44,8 @@ function marital_selector($current="",$suffix="") {
|
||||||
call_hooks('marital_selector', $select);
|
call_hooks('marital_selector', $select);
|
||||||
|
|
||||||
$o .= "<select name=\"marital\" id=\"marital-select\" size=\"1\" >";
|
$o .= "<select name=\"marital\" id=\"marital-select\" size=\"1\" >";
|
||||||
foreach ($select as $selection) {
|
foreach($select as $selection) {
|
||||||
if ($selection !== 'NOTRANSLATION') {
|
if($selection !== 'NOTRANSLATION') {
|
||||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,12 +28,10 @@ function handle_pubsubhubbub($id) {
|
||||||
global $a;
|
global $a;
|
||||||
|
|
||||||
$r = q("SELECT * FROM `push_subscriber` WHERE `id` = %d", intval($id));
|
$r = q("SELECT * FROM `push_subscriber` WHERE `id` = %d", intval($id));
|
||||||
|
if (!$r)
|
||||||
if (!dbm::is_result($r)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
else
|
||||||
|
$rr = $r[0];
|
||||||
$rr = $r[0];
|
|
||||||
|
|
||||||
logger("Generate feed of user ".$rr['nickname']." to ".$rr['callback_url']." - last updated ".$rr['last_update'], LOGGER_DEBUG);
|
logger("Generate feed of user ".$rr['nickname']." to ".$rr['callback_url']." - last updated ".$rr['last_update'], LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
@ -67,10 +65,8 @@ function handle_pubsubhubbub($id) {
|
||||||
// increment this until some upper limit where we give up
|
// increment this until some upper limit where we give up
|
||||||
$new_push = intval($rr['push']) + 1;
|
$new_push = intval($rr['push']) + 1;
|
||||||
|
|
||||||
if ($new_push > 30) {
|
if ($new_push > 30) // OK, let's give up
|
||||||
// OK, let's give up
|
|
||||||
$new_push = 0;
|
$new_push = 0;
|
||||||
}
|
|
||||||
|
|
||||||
q("UPDATE `push_subscriber` SET `push` = %d WHERE id = %d",
|
q("UPDATE `push_subscriber` SET `push` = %d WHERE id = %d",
|
||||||
$new_push,
|
$new_push,
|
||||||
|
|
|
||||||
|
|
@ -49,24 +49,23 @@ function was_recently_delayed($cid) {
|
||||||
function add_to_queue($cid,$network,$msg,$batch = false) {
|
function add_to_queue($cid,$network,$msg,$batch = false) {
|
||||||
|
|
||||||
$max_queue = get_config('system','max_contact_queue');
|
$max_queue = get_config('system','max_contact_queue');
|
||||||
if ($max_queue < 1) {
|
if($max_queue < 1)
|
||||||
$max_queue = 500;
|
$max_queue = 500;
|
||||||
}
|
|
||||||
|
|
||||||
$batch_queue = get_config('system','max_batch_queue');
|
$batch_queue = get_config('system','max_batch_queue');
|
||||||
if ($batch_queue < 1) {
|
if($batch_queue < 1)
|
||||||
$batch_queue = 1000;
|
$batch_queue = 1000;
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `queue` INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id`
|
$r = q("SELECT COUNT(*) AS `total` FROM `queue` INNER JOIN `contact` ON `queue`.`cid` = `contact`.`id`
|
||||||
WHERE `queue`.`cid` = %d AND `contact`.`self` = 0 ",
|
WHERE `queue`.`cid` = %d AND `contact`.`self` = 0 ",
|
||||||
intval($cid)
|
intval($cid)
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
if ($batch && ($r[0]['total'] > $batch_queue)) {
|
if($batch && ($r[0]['total'] > $batch_queue)) {
|
||||||
logger('add_to_queue: too many queued items for batch server ' . $cid . ' - discarding message');
|
logger('add_to_queue: too many queued items for batch server ' . $cid . ' - discarding message');
|
||||||
return;
|
return;
|
||||||
} elseif ((! $batch) && ($r[0]['total'] > $max_queue)) {
|
}
|
||||||
|
elseif((! $batch) && ($r[0]['total'] > $max_queue)) {
|
||||||
logger('add_to_queue: too many queued items for contact ' . $cid . ' - discarding message');
|
logger('add_to_queue: too many queued items for contact ' . $cid . ' - discarding message');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ function removetofu($message)
|
||||||
|
|
||||||
$start = 0;
|
$start = 0;
|
||||||
|
|
||||||
while (($pos = strpos($message, '[quote', $start)) > 0) {
|
while(($pos = strpos($message, '[quote', $start)) > 0) {
|
||||||
$quotes[$pos] = -1;
|
$quotes[$pos] = -1;
|
||||||
$start = $pos + 7;
|
$start = $pos + 7;
|
||||||
$startquotes++;
|
$startquotes++;
|
||||||
|
|
@ -92,7 +92,7 @@ function removetofu($message)
|
||||||
$endquotes = 0;
|
$endquotes = 0;
|
||||||
$start = 0;
|
$start = 0;
|
||||||
|
|
||||||
while (($pos = strpos($message, '[/quote]', $start)) > 0) {
|
while(($pos = strpos($message, '[/quote]', $start)) > 0) {
|
||||||
$start = $pos + 7;
|
$start = $pos + 7;
|
||||||
$endquotes++;
|
$endquotes++;
|
||||||
}
|
}
|
||||||
|
|
@ -104,7 +104,7 @@ function removetofu($message)
|
||||||
|
|
||||||
$start = 0;
|
$start = 0;
|
||||||
|
|
||||||
while (($pos = strpos($message, '[/quote]', $start)) > 0) {
|
while(($pos = strpos($message, '[/quote]', $start)) > 0) {
|
||||||
$quotes[$pos] = 1;
|
$quotes[$pos] = 1;
|
||||||
$start = $pos + 7;
|
$start = $pos + 7;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,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
|
||||||
|
|
@ -22,7 +22,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);
|
||||||
|
|
@ -56,11 +56,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;
|
||||||
}
|
}
|
||||||
|
|
@ -68,7 +68,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();
|
||||||
|
|
|
||||||
|
|
@ -10,13 +10,14 @@ function get_salmon_key($uri,$keyhash) {
|
||||||
|
|
||||||
$arr = Probe::lrdd($uri);
|
$arr = Probe::lrdd($uri);
|
||||||
|
|
||||||
if (is_array($arr)) {
|
if(is_array($arr)) {
|
||||||
foreach ($arr as $a) {
|
foreach($arr as $a) {
|
||||||
if ($a['@attributes']['rel'] === 'magic-public-key') {
|
if($a['@attributes']['rel'] === 'magic-public-key') {
|
||||||
$ret[] = $a['@attributes']['href'];
|
$ret[] = $a['@attributes']['href'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -68,12 +69,11 @@ function slapper($owner,$url,$slap) {
|
||||||
|
|
||||||
// does contact have a salmon endpoint?
|
// does contact have a salmon endpoint?
|
||||||
|
|
||||||
if (! strlen($url)) {
|
if(! strlen($url))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (! $owner['sprvkey']) {
|
if(! $owner['sprvkey']) {
|
||||||
logger(sprintf("user '%s' (%d) does not have a salmon private key. Send failed.",
|
logger(sprintf("user '%s' (%d) does not have a salmon private key. Send failed.",
|
||||||
$owner['username'],$owner['uid']));
|
$owner['username'],$owner['uid']));
|
||||||
return;
|
return;
|
||||||
|
|
@ -120,7 +120,7 @@ function slapper($owner,$url,$slap) {
|
||||||
|
|
||||||
// check for success, e.g. 2xx
|
// check for success, e.g. 2xx
|
||||||
|
|
||||||
if ($return_code > 299) {
|
if($return_code > 299) {
|
||||||
|
|
||||||
logger('compliant salmon failed. Falling back to status.net hack2');
|
logger('compliant salmon failed. Falling back to status.net hack2');
|
||||||
|
|
||||||
|
|
@ -144,7 +144,7 @@ function slapper($owner,$url,$slap) {
|
||||||
$return_code = $a->get_curl_code();
|
$return_code = $a->get_curl_code();
|
||||||
|
|
||||||
|
|
||||||
if ($return_code > 299) {
|
if($return_code > 299) {
|
||||||
|
|
||||||
logger('compliant salmon failed. Falling back to status.net hack3');
|
logger('compliant salmon failed. Falling back to status.net hack3');
|
||||||
|
|
||||||
|
|
@ -169,12 +169,10 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,34 +54,30 @@ function authenticate_success($user_record, $login_initial = false, $interactive
|
||||||
|
|
||||||
$a->user = $user_record;
|
$a->user = $user_record;
|
||||||
|
|
||||||
if ($interactive) {
|
if($interactive) {
|
||||||
/// @TODO Comparison of strings this way may lead to bugs/incompatiblities
|
|
||||||
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 {
|
|
||||||
info( t("Welcome back ") . $a->user['username'] . EOL);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
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'])
|
||||||
);
|
);
|
||||||
|
|
@ -106,9 +102,9 @@ function authenticate_success($user_record, $login_initial = false, $interactive
|
||||||
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",
|
||||||
|
|
@ -121,7 +117,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()),
|
||||||
|
|
@ -251,7 +247,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 = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -263,9 +259,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)
|
||||||
|
|
@ -275,12 +271,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) . '>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -333,7 +329,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 = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -345,9 +341,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)
|
||||||
|
|
@ -357,14 +353,13 @@ 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) . '>';
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
|
|
@ -457,7 +452,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`
|
||||||
|
|
@ -465,7 +460,7 @@ 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;
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,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)
|
||||||
);
|
);
|
||||||
|
|
@ -59,11 +59,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') ;
|
||||||
|
|
@ -76,18 +76,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 = '';
|
||||||
|
|
@ -151,7 +151,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -354,7 +354,7 @@ function poco_check($profile_url, $name, $network, $profile_photo, $about, $loca
|
||||||
|
|
||||||
$gcid = update_gcontact($gcontact);
|
$gcid = update_gcontact($gcontact);
|
||||||
|
|
||||||
if (!$gcid)
|
if(!$gcid)
|
||||||
return $gcid;
|
return $gcid;
|
||||||
|
|
||||||
$r = q("SELECT * FROM `glink` WHERE `cid` = %d AND `uid` = %d AND `gcid` = %d AND `zcid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `glink` WHERE `cid` = %d AND `uid` = %d AND `gcid` = %d AND `zcid` = %d LIMIT 1",
|
||||||
|
|
@ -1091,10 +1091,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));
|
||||||
|
|
@ -1104,7 +1104,7 @@ function poco_check_server($server_url, $network = "", $force = false) {
|
||||||
$last_contact = datetime_convert();
|
$last_contact = datetime_convert();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stristr($line,'Server: Mastodon')) {
|
if(stristr($line,'Server: Mastodon')) {
|
||||||
$platform = "Mastodon";
|
$platform = "Mastodon";
|
||||||
$network = NETWORK_OSTATUS;
|
$network = NETWORK_OSTATUS;
|
||||||
// Mastodon doesn't reveal version numbers
|
// Mastodon doesn't reveal version numbers
|
||||||
|
|
@ -1383,7 +1383,7 @@ 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 ";
|
||||||
|
|
@ -1428,7 +1428,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 ";
|
||||||
|
|
@ -1611,7 +1611,7 @@ 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1649,7 +1649,7 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1664,22 +1664,20 @@ function poco_discover_federation() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Currently disabled, since the service isn't available anymore.
|
||||||
* Currently disabled, since the service isn't available anymore.
|
// It is not removed since I hope that there will be a successor.
|
||||||
* It is not removed since I hope that there will be a successor.
|
// Discover GNU Social Servers.
|
||||||
* Discover GNU Social Servers.
|
//if (!get_config('system','ostatus_disabled')) {
|
||||||
if (!get_config('system','ostatus_disabled')) {
|
// $serverdata = "http://gstools.org/api/get_open_instances/";
|
||||||
$serverdata = "http://gstools.org/api/get_open_instances/";
|
|
||||||
|
|
||||||
$result = z_fetch_url($serverdata);
|
// $result = z_fetch_url($serverdata);
|
||||||
if ($result["success"]) {
|
// if ($result["success"]) {
|
||||||
$servers = json_decode($result["body"]);
|
// $servers = json_decode($result["body"]);
|
||||||
|
|
||||||
foreach($servers->data AS $server)
|
// foreach($servers->data AS $server)
|
||||||
poco_check_server($server->instance_address);
|
// poco_check_server($server->instance_address);
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
*/
|
|
||||||
|
|
||||||
set_config('poco','last_federation_discovery', time());
|
set_config('poco','last_federation_discovery', time());
|
||||||
}
|
}
|
||||||
|
|
@ -1788,7 +1786,7 @@ function poco_discover_server_users($data, $server) {
|
||||||
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);
|
||||||
|
|
@ -1832,7 +1830,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;
|
||||||
|
|
@ -1857,31 +1855,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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,10 +55,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);
|
||||||
|
|
@ -104,20 +104,19 @@ 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() {
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
$messages = $db->q("SELECT `oid`,`item`.`guid`, `item`.`created`, `item`.`received` FROM `term` INNER JOIN `item` ON `item`.`id`=`term`.`oid` WHERE `term`.`otype` = 1 AND `term`.`guid` = ''", true);
|
$messages = $db->q("SELECT `oid`,`item`.`guid`, `item`.`created`, `item`.`received` FROM `term` INNER JOIN `item` ON `item`.`id`=`term`.`oid` WHERE `term`.`otype` = 1 AND `term`.`guid` = ''", true);
|
||||||
|
|
||||||
logger("fetched messages: ".count($messages));
|
logger("fetched messages: ".count($messages));
|
||||||
while ($message = $db->qfetch()) {
|
while ($message = $db->qfetch()) {
|
||||||
|
|
||||||
if ($message["uid"] == 0) {
|
if ($message["uid"] == 0) {
|
||||||
$global = true;
|
$global = true;
|
||||||
|
|
@ -136,7 +135,7 @@ function update_items() {
|
||||||
intval($global), intval(TERM_OBJ_POST), intval($message["oid"]));
|
intval($global), intval(TERM_OBJ_POST), intval($message["oid"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->qclose();
|
$db->qclose();
|
||||||
|
|
||||||
$messages = $db->q("SELECT `guid` FROM `item` WHERE `uid` = 0", true);
|
$messages = $db->q("SELECT `guid` FROM `item` WHERE `uid` = 0", true);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,9 +53,8 @@ class Template implements ITemplateEngine {
|
||||||
|
|
||||||
private function _get_var($name, $retNoKey = false) {
|
private function _get_var($name, $retNoKey = false) {
|
||||||
$keys = array_map('trim', explode(".", $name));
|
$keys = array_map('trim', explode(".", $name));
|
||||||
if ($retNoKey && !array_key_exists($keys[0], $this->r)) {
|
if ($retNoKey && !array_key_exists($keys[0], $this->r))
|
||||||
return KEY_NOT_EXISTS;
|
return KEY_NOT_EXISTS;
|
||||||
}
|
|
||||||
$val = $this->r;
|
$val = $this->r;
|
||||||
foreach ($keys as $k) {
|
foreach ($keys as $k) {
|
||||||
$val = (isset($val[$k]) ? $val[$k] : null);
|
$val = (isset($val[$k]) ? $val[$k] : null);
|
||||||
|
|
@ -70,20 +69,18 @@ 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);
|
||||||
if ($b[0] == "$") {
|
if ($b[0] == "$")
|
||||||
$b = $this->_get_var($b);
|
$b = $this->_get_var($b);
|
||||||
}
|
|
||||||
$val = ($a == $b);
|
$val = ($a == $b);
|
||||||
} elseif (strpos($args[2], "!=") > 0) {
|
} else 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);
|
||||||
if ($b[0] == "$") {
|
if ($b[0] == "$")
|
||||||
$b = $this->_get_var($b);
|
$b = $this->_get_var($b);
|
||||||
}
|
|
||||||
$val = ($a != $b);
|
$val = ($a != $b);
|
||||||
} else {
|
} else {
|
||||||
$val = $this->_get_var($args[2]);
|
$val = $this->_get_var($args[2]);
|
||||||
|
|
@ -98,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) {
|
||||||
|
|
@ -112,16 +109,14 @@ 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();
|
||||||
}
|
}
|
||||||
|
|
@ -141,9 +136,8 @@ class Template implements ITemplateEngine {
|
||||||
$newctx = null;
|
$newctx = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($tplfile[0] == "$") {
|
if ($tplfile[0] == "$")
|
||||||
$tplfile = $this->_get_var($tplfile);
|
$tplfile = $this->_get_var($tplfile);
|
||||||
}
|
|
||||||
|
|
||||||
$this->_push_stack();
|
$this->_push_stack();
|
||||||
$r = $this->r;
|
$r = $this->r;
|
||||||
|
|
|
||||||
281
include/text.php
281
include/text.php
|
|
@ -7,7 +7,7 @@ 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
|
||||||
*
|
*
|
||||||
|
|
@ -45,7 +45,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));
|
||||||
|
|
@ -53,7 +53,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.
|
||||||
*
|
*
|
||||||
|
|
@ -81,7 +81,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.
|
||||||
|
|
@ -97,7 +97,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
|
||||||
|
|
@ -106,11 +106,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(
|
||||||
|
|
@ -143,7 +143,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;
|
||||||
|
|
@ -154,7 +154,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;
|
||||||
|
|
@ -163,13 +163,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;
|
||||||
}}
|
}}
|
||||||
|
|
@ -178,7 +178,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
|
||||||
|
|
@ -188,7 +188,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 ) {
|
||||||
|
|
@ -231,7 +231,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
|
||||||
|
|
@ -250,17 +250,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -353,7 +353,7 @@ function paginate_data(App $a, $count = null) {
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! function_exists('paginate')) {
|
if(! function_exists('paginate')) {
|
||||||
/**
|
/**
|
||||||
* Automatic pagination.
|
* Automatic pagination.
|
||||||
*
|
*
|
||||||
|
|
@ -377,7 +377,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
|
||||||
|
|
@ -392,7 +392,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
|
||||||
|
|
@ -405,7 +405,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
|
||||||
*
|
*
|
||||||
|
|
@ -417,32 +417,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 +453,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 +466,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 +493,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 +517,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 +535,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 +548,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 +561,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 +575,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 +599,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 +623,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 +635,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 +656,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 +673,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;
|
||||||
}}
|
}}
|
||||||
|
|
@ -755,7 +754,7 @@ function logger($msg, $level = 0) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('activity_match')) {
|
if(! function_exists('activity_match')) {
|
||||||
/**
|
/**
|
||||||
* Compare activity uri. Knows about activity namespace.
|
* Compare activity uri. Knows about activity namespace.
|
||||||
*
|
*
|
||||||
|
|
@ -764,7 +763,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;
|
||||||
}}
|
}}
|
||||||
|
|
@ -818,7 +817,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;
|
||||||
|
|
@ -843,7 +842,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
|
||||||
*
|
*
|
||||||
|
|
@ -854,7 +853,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.
|
||||||
*
|
*
|
||||||
|
|
@ -867,12 +866,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`
|
||||||
|
|
@ -886,7 +885,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;
|
||||||
|
|
||||||
|
|
@ -965,10 +964,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';
|
||||||
|
|
@ -978,7 +977,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(
|
||||||
|
|
@ -996,7 +995,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('search')) {
|
if(! function_exists('search')) {
|
||||||
/**
|
/**
|
||||||
* search box
|
* search box
|
||||||
*
|
*
|
||||||
|
|
@ -1031,7 +1030,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
|
||||||
*
|
*
|
||||||
|
|
@ -1041,16 +1040,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
|
||||||
*
|
*
|
||||||
|
|
@ -1121,7 +1120,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
|
||||||
*
|
*
|
||||||
|
|
@ -1141,7 +1140,7 @@ function day_translate($s) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('normalise_link')) {
|
if(! function_exists('normalise_link')) {
|
||||||
/**
|
/**
|
||||||
* Normalize url
|
* Normalize url
|
||||||
*
|
*
|
||||||
|
|
@ -1155,7 +1154,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
|
||||||
|
|
@ -1168,7 +1167,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;
|
||||||
}}
|
}}
|
||||||
|
|
@ -1223,7 +1222,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
|
||||||
|
|
@ -1250,7 +1249,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"]);
|
||||||
|
|
@ -1284,7 +1283,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);
|
||||||
|
|
@ -1294,23 +1293,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(),
|
||||||
|
|
@ -1332,7 +1331,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);
|
||||||
}
|
}
|
||||||
|
|
@ -1367,7 +1366,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);
|
||||||
|
|
@ -1419,7 +1418,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.
|
||||||
*
|
*
|
||||||
|
|
@ -1430,7 +1429,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));
|
||||||
|
|
@ -1475,8 +1474,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' => "#",
|
||||||
|
|
@ -1490,11 +1489,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' => "#",
|
||||||
|
|
@ -1512,7 +1511,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
|
||||||
|
|
@ -1549,7 +1548,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
|
||||||
|
|
@ -1560,7 +1559,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
|
||||||
|
|
@ -1585,7 +1584,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;
|
||||||
|
|
@ -1601,7 +1600,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;
|
||||||
|
|
@ -1613,7 +1612,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;
|
||||||
}
|
}
|
||||||
|
|
@ -1624,11 +1623,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 .= '=';
|
||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
|
|
@ -1720,10 +1719,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1801,13 +1800,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');
|
||||||
}
|
}
|
||||||
|
|
@ -1827,7 +1826,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)) . '>' );
|
||||||
|
|
@ -1837,9 +1836,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 = ']';
|
||||||
}
|
}
|
||||||
|
|
@ -1848,8 +1847,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1861,15 +1860,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]);
|
||||||
}
|
}
|
||||||
|
|
@ -1882,15 +1881,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;
|
||||||
|
|
@ -1907,8 +1906,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1918,12 +1917,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),
|
||||||
|
|
@ -1942,13 +1941,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;
|
||||||
|
|
@ -1958,14 +1957,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),
|
||||||
|
|
@ -1975,7 +1974,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') );
|
||||||
}
|
}
|
||||||
|
|
@ -1986,10 +1985,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 {
|
||||||
|
|
@ -2039,8 +2038,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2054,11 +2053,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2127,10 +2126,10 @@ function format_network_name($network, $url = 0) {
|
||||||
* @return string Formated html
|
* @return string Formated html
|
||||||
*/
|
*/
|
||||||
function text_highlight($s,$lang) {
|
function text_highlight($s,$lang) {
|
||||||
if ($lang === 'js')
|
if($lang === 'js')
|
||||||
$lang = 'javascript';
|
$lang = 'javascript';
|
||||||
|
|
||||||
if (! strpos('Text_Highlighter',get_include_path())) {
|
if(! strpos('Text_Highlighter',get_include_path())) {
|
||||||
set_include_path(get_include_path() . PATH_SEPARATOR . 'library/Text_Highlighter');
|
set_include_path(get_include_path() . PATH_SEPARATOR . 'library/Text_Highlighter');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2149,8 +2148,8 @@ function text_highlight($s,$lang) {
|
||||||
// it isn't present, nothing is highlighted. So we're going to see if it's present.
|
// it isn't present, nothing is highlighted. So we're going to see if it's present.
|
||||||
// If not, we'll add it, and then quietly remove it after we get the processed output back.
|
// If not, we'll add it, and then quietly remove it after we get the processed output back.
|
||||||
|
|
||||||
if ($lang === 'php') {
|
if($lang === 'php') {
|
||||||
if (strpos('<?php',$s) !== 0) {
|
if(strpos('<?php',$s) !== 0) {
|
||||||
$s = '<?php' . "\n" . $s;
|
$s = '<?php' . "\n" . $s;
|
||||||
$tag_added = true;
|
$tag_added = true;
|
||||||
}
|
}
|
||||||
|
|
@ -2162,7 +2161,7 @@ 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>'));
|
||||||
$o = $b . $e;
|
$o = $b . $e;
|
||||||
|
|
|
||||||
|
|
@ -174,34 +174,29 @@ 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)."'";
|
||||||
}
|
}
|
||||||
|
|
@ -213,9 +208,8 @@ 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 (!dbm::is_result($items)) {
|
if (!$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"]),
|
||||||
|
|
@ -230,11 +224,9 @@ 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 (dbm::is_result($messages)) {
|
if(count($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 = "") {
|
||||||
|
|
|
||||||
|
|
@ -21,41 +21,35 @@ function update_gcontact_run(&$argv, &$argc){
|
||||||
|
|
||||||
$r = q("SELECT * FROM `gcontact` WHERE `id` = %d", intval($contact_id));
|
$r = q("SELECT * FROM `gcontact` WHERE `id` = %d", intval($contact_id));
|
||||||
|
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if (!in_array($r[0]["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) }
|
if (!in_array($r[0]["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS)))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$data = probe_url($r[0]["url"]);
|
$data = probe_url($r[0]["url"]);
|
||||||
|
|
||||||
if (!in_array($data["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) {
|
if (!in_array($data["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) {
|
||||||
if ($r[0]["server_url"] != "") {
|
if ($r[0]["server_url"] != "")
|
||||||
poco_check_server($r[0]["server_url"], $r[0]["network"]);
|
poco_check_server($r[0]["server_url"], $r[0]["network"]);
|
||||||
}
|
|
||||||
|
|
||||||
q("UPDATE `gcontact` SET `last_failure` = '%s' WHERE `id` = %d",
|
q("UPDATE `gcontact` SET `last_failure` = '%s' WHERE `id` = %d",
|
||||||
dbesc(datetime_convert()), intval($contact_id));
|
dbesc(datetime_convert()), intval($contact_id));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($data["name"] == "") AND ($r[0]['name'] != "")) {
|
if (($data["name"] == "") AND ($r[0]['name'] != ""))
|
||||||
$data["name"] = $r[0]['name'];
|
$data["name"] = $r[0]['name'];
|
||||||
}
|
|
||||||
|
|
||||||
if (($data["nick"] == "") AND ($r[0]['nick'] != "")) {
|
if (($data["nick"] == "") AND ($r[0]['nick'] != ""))
|
||||||
$data["nick"] = $r[0]['nick'];
|
$data["nick"] = $r[0]['nick'];
|
||||||
}
|
|
||||||
|
|
||||||
if (($data["addr"] == "") AND ($r[0]['addr'] != "")) {
|
if (($data["addr"] == "") AND ($r[0]['addr'] != ""))
|
||||||
$data["addr"] = $r[0]['addr'];
|
$data["addr"] = $r[0]['addr'];
|
||||||
}
|
|
||||||
|
|
||||||
if (($data["photo"] == "") AND ($r[0]['photo'] != "")) {
|
if (($data["photo"] == "") AND ($r[0]['photo'] != ""))
|
||||||
$data["photo"] = $r[0]['photo'];
|
$data["photo"] = $r[0]['photo'];
|
||||||
}
|
|
||||||
|
|
||||||
q("UPDATE `gcontact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%s'
|
q("UPDATE `gcontact` SET `name` = '%s', `nick` = '%s', `addr` = '%s', `photo` = '%s'
|
||||||
WHERE `id` = %d",
|
WHERE `id` = %d",
|
||||||
|
|
|
||||||
|
|
@ -43,21 +43,21 @@ function create_user($arr) {
|
||||||
|
|
||||||
$tmp_str = $openid_url;
|
$tmp_str = $openid_url;
|
||||||
|
|
||||||
if ($using_invites) {
|
if($using_invites) {
|
||||||
if (! $invite_id) {
|
if(! $invite_id) {
|
||||||
$result['message'] .= t('An invitation is required.') . EOL;
|
$result['message'] .= t('An invitation is required.') . EOL;
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
$r = q("SELECT * FROM `register` WHERE `hash` = '%s' LIMIT 1", dbesc($invite_id));
|
$r = q("SELECT * FROM `register` WHERE `hash` = '%s' LIMIT 1", dbesc($invite_id));
|
||||||
if (! results($r)) {
|
if(! results($r)) {
|
||||||
$result['message'] .= t('Invitation could not be verified.') . EOL;
|
$result['message'] .= t('Invitation could not be verified.') . EOL;
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((! x($username)) || (! x($email)) || (! x($nickname))) {
|
if((! x($username)) || (! x($email)) || (! x($nickname))) {
|
||||||
if ($openid_url) {
|
if($openid_url) {
|
||||||
if (! validate_url($tmp_str)) {
|
if(! validate_url($tmp_str)) {
|
||||||
$result['message'] .= t('Invalid OpenID url') . EOL;
|
$result['message'] .= t('Invalid OpenID url') . EOL;
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
@ -83,7 +83,7 @@ function create_user($arr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! validate_url($tmp_str))
|
if(! validate_url($tmp_str))
|
||||||
$openid_url = '';
|
$openid_url = '';
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -92,9 +92,9 @@ function create_user($arr) {
|
||||||
// collapse multiple spaces in name
|
// collapse multiple spaces in name
|
||||||
$username = preg_replace('/ +/',' ',$username);
|
$username = preg_replace('/ +/',' ',$username);
|
||||||
|
|
||||||
if (mb_strlen($username) > 48)
|
if(mb_strlen($username) > 48)
|
||||||
$result['message'] .= t('Please use a shorter name.') . EOL;
|
$result['message'] .= t('Please use a shorter name.') . EOL;
|
||||||
if (mb_strlen($username) < 3)
|
if(mb_strlen($username) < 3)
|
||||||
$result['message'] .= t('Name too short.') . EOL;
|
$result['message'] .= t('Name too short.') . EOL;
|
||||||
|
|
||||||
// I don't really like having this rule, but it cuts down
|
// I don't really like having this rule, but it cuts down
|
||||||
|
|
@ -107,17 +107,17 @@ function create_user($arr) {
|
||||||
// So now we are just looking for a space in the full name.
|
// So now we are just looking for a space in the full name.
|
||||||
|
|
||||||
$loose_reg = get_config('system','no_regfullname');
|
$loose_reg = get_config('system','no_regfullname');
|
||||||
if (! $loose_reg) {
|
if(! $loose_reg) {
|
||||||
$username = mb_convert_case($username,MB_CASE_TITLE,'UTF-8');
|
$username = mb_convert_case($username,MB_CASE_TITLE,'UTF-8');
|
||||||
if (! strpos($username,' '))
|
if(! strpos($username,' '))
|
||||||
$result['message'] .= t("That doesn't appear to be your full \x28First Last\x29 name.") . EOL;
|
$result['message'] .= t("That doesn't appear to be your full \x28First Last\x29 name.") . EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (! allowed_email($email))
|
if(! allowed_email($email))
|
||||||
$result['message'] .= t('Your email domain is not among those allowed on this site.') . EOL;
|
$result['message'] .= t('Your email domain is not among those allowed on this site.') . EOL;
|
||||||
|
|
||||||
if ((! valid_email($email)) || (! validate_email($email)))
|
if((! valid_email($email)) || (! validate_email($email)))
|
||||||
$result['message'] .= t('Not a valid email address.') . EOL;
|
$result['message'] .= t('Not a valid email address.') . EOL;
|
||||||
|
|
||||||
// Disallow somebody creating an account using openid that uses the admin email address,
|
// Disallow somebody creating an account using openid that uses the admin email address,
|
||||||
|
|
@ -125,8 +125,8 @@ function create_user($arr) {
|
||||||
|
|
||||||
$adminlist = explode(",", str_replace(" ", "", strtolower($a->config['admin_email'])));
|
$adminlist = explode(",", str_replace(" ", "", strtolower($a->config['admin_email'])));
|
||||||
|
|
||||||
//if ((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0) && strlen($openid_url)) {
|
//if((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0) && strlen($openid_url)) {
|
||||||
if ((x($a->config,'admin_email')) && in_array(strtolower($email), $adminlist) && strlen($openid_url)) {
|
if((x($a->config,'admin_email')) && in_array(strtolower($email), $adminlist) && strlen($openid_url)) {
|
||||||
$r = q("SELECT * FROM `user` WHERE `email` = '%s' LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `email` = '%s' LIMIT 1",
|
||||||
dbesc($email)
|
dbesc($email)
|
||||||
);
|
);
|
||||||
|
|
@ -136,7 +136,7 @@ function create_user($arr) {
|
||||||
|
|
||||||
$nickname = $arr['nickname'] = strtolower($nickname);
|
$nickname = $arr['nickname'] = strtolower($nickname);
|
||||||
|
|
||||||
if (! preg_match("/^[a-z0-9][a-z0-9\_]*$/",$nickname))
|
if(! preg_match("/^[a-z0-9][a-z0-9\_]*$/",$nickname))
|
||||||
$result['message'] .= t('Your "nickname" can only contain "a-z", "0-9" and "_".') . EOL;
|
$result['message'] .= t('Your "nickname" can only contain "a-z", "0-9" and "_".') . EOL;
|
||||||
|
|
||||||
$r = q("SELECT `uid` FROM `user`
|
$r = q("SELECT `uid` FROM `user`
|
||||||
|
|
@ -156,7 +156,7 @@ function create_user($arr) {
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
$result['message'] .= t('Nickname was once registered here and may not be re-used. Please choose another.') . EOL;
|
$result['message'] .= t('Nickname was once registered here and may not be re-used. Please choose another.') . EOL;
|
||||||
|
|
||||||
if (strlen($result['message'])) {
|
if(strlen($result['message'])) {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -169,13 +169,13 @@ function create_user($arr) {
|
||||||
|
|
||||||
$keys = new_keypair(4096);
|
$keys = new_keypair(4096);
|
||||||
|
|
||||||
if ($keys === false) {
|
if($keys === false) {
|
||||||
$result['message'] .= t('SERIOUS ERROR: Generation of security keys failed.') . EOL;
|
$result['message'] .= t('SERIOUS ERROR: Generation of security keys failed.') . EOL;
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
$default_service_class = get_config('system','default_service_class');
|
$default_service_class = get_config('system','default_service_class');
|
||||||
if (! $default_service_class)
|
if(! $default_service_class)
|
||||||
$default_service_class = '';
|
$default_service_class = '';
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -249,7 +249,7 @@ function create_user($arr) {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($newuid) !== false) {
|
if(x($newuid) !== false) {
|
||||||
$r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` )
|
$r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` )
|
||||||
VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ",
|
VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ",
|
||||||
intval($newuid),
|
intval($newuid),
|
||||||
|
|
@ -292,7 +292,7 @@ function create_user($arr) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_config('system', 'newuser_private') && $def_gid) {
|
if(get_config('system', 'newuser_private') && $def_gid) {
|
||||||
q("UPDATE `user` SET `allow_gid` = '%s' WHERE `uid` = %d",
|
q("UPDATE `user` SET `allow_gid` = '%s' WHERE `uid` = %d",
|
||||||
dbesc("<" . $def_gid . ">"),
|
dbesc("<" . $def_gid . ">"),
|
||||||
intval($newuid)
|
intval($newuid)
|
||||||
|
|
@ -302,11 +302,11 @@ function create_user($arr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we have no OpenID photo try to look up an avatar
|
// if we have no OpenID photo try to look up an avatar
|
||||||
if (! strlen($photo))
|
if(! strlen($photo))
|
||||||
$photo = avatar_img($email);
|
$photo = avatar_img($email);
|
||||||
|
|
||||||
// unless there is no avatar-plugin loaded
|
// unless there is no avatar-plugin loaded
|
||||||
if (strlen($photo)) {
|
if(strlen($photo)) {
|
||||||
require_once('include/Photo.php');
|
require_once('include/Photo.php');
|
||||||
$photo_failure = false;
|
$photo_failure = false;
|
||||||
|
|
||||||
|
|
@ -317,7 +317,7 @@ function create_user($arr) {
|
||||||
|
|
||||||
|
|
||||||
$img = new Photo($img_str, $type);
|
$img = new Photo($img_str, $type);
|
||||||
if ($img->is_valid()) {
|
if($img->is_valid()) {
|
||||||
|
|
||||||
$img->scaleImageSquare(175);
|
$img->scaleImageSquare(175);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ class xml {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($array as $key => $value) {
|
foreach($array as $key => $value) {
|
||||||
if (!isset($element) AND isset($xml)) {
|
if (!isset($element) AND isset($xml)) {
|
||||||
$element = $xml;
|
$element = $xml;
|
||||||
}
|
}
|
||||||
|
|
@ -305,7 +305,7 @@ class xml {
|
||||||
//Set the attributes too.
|
//Set the attributes too.
|
||||||
if (isset($attributes) and $get_attributes) {
|
if (isset($attributes) and $get_attributes) {
|
||||||
foreach ($attributes as $attr => $val) {
|
foreach ($attributes as $attr => $val) {
|
||||||
if ($priority == 'tag') {
|
if($priority == 'tag') {
|
||||||
$attributes_data[$attr] = $val;
|
$attributes_data[$attr] = $val;
|
||||||
} else {
|
} else {
|
||||||
$result['@attributes'][$attr] = $val; // Set all the attributes in a array called 'attr'
|
$result['@attributes'][$attr] = $val; // Set all the attributes in a array called 'attr'
|
||||||
|
|
|
||||||
87
index.php
87
index.php
|
|
@ -28,17 +28,17 @@ $a->backend = false;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Load the configuration file which contains our DB credentials.
|
* Load the configuration file which contains our DB credentials.
|
||||||
* Ignore errors. If the file doesn't exist or is empty, we are running in
|
* Ignore errors. If the file doesn't exist or is empty, we are running in installation mode.
|
||||||
* installation mode.
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false : true);
|
$install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false : true);
|
||||||
|
|
||||||
// Only load config if found, don't surpress errors
|
@include(".htconfig.php");
|
||||||
if (!$install) {
|
|
||||||
include(".htconfig.php");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -48,7 +48,7 @@ if (!$install) {
|
||||||
|
|
||||||
require_once("include/dba.php");
|
require_once("include/dba.php");
|
||||||
|
|
||||||
if (!$install) {
|
if(!$install) {
|
||||||
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
|
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
|
||||||
unset($db_host, $db_user, $db_pass, $db_data);
|
unset($db_host, $db_user, $db_pass, $db_data);
|
||||||
|
|
||||||
|
|
@ -117,12 +117,12 @@ if (x($_SESSION,'authenticated') && !x($_SESSION,'language')) {
|
||||||
if (dbm::is_result($r)) $_SESSION['language'] = $r[0]['language'];
|
if (dbm::is_result($r)) $_SESSION['language'] = $r[0]['language'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
|
if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
|
||||||
$lang = $_SESSION['language'];
|
$lang = $_SESSION['language'];
|
||||||
load_translation_table($lang);
|
load_translation_table($lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((x($_GET,'zrl')) && (!$install && !$maintenance)) {
|
if((x($_GET,'zrl')) && (!$install && !$maintenance)) {
|
||||||
// Only continue when the given profile link seems valid
|
// Only continue when the given profile link seems valid
|
||||||
// Valid profile links contain a path with "/profile/" and no query parameters
|
// Valid profile links contain a path with "/profile/" and no query parameters
|
||||||
if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == "") AND
|
if ((parse_url($_GET['zrl'], PHP_URL_QUERY) == "") AND
|
||||||
|
|
@ -223,7 +223,7 @@ if ((local_user()) || (! $privateapps === "1")) {
|
||||||
* further processing.
|
* further processing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (strlen($a->module)) {
|
if(strlen($a->module)) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -233,14 +233,12 @@ if (strlen($a->module)) {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Compatibility with the Android Diaspora client
|
// Compatibility with the Android Diaspora client
|
||||||
if ($a->module == "stream") {
|
if ($a->module == "stream")
|
||||||
$a->module = "network";
|
$a->module = "network";
|
||||||
}
|
|
||||||
|
|
||||||
// Compatibility with the Firefox App
|
// Compatibility with the Firefox App
|
||||||
if (($a->module == "users") AND ($a->cmd == "users/sign_in")) {
|
if (($a->module == "users") AND ($a->cmd == "users/sign_in"))
|
||||||
$a->module = "login";
|
$a->module = "login";
|
||||||
}
|
|
||||||
|
|
||||||
$privateapps = get_config('config','private_addons');
|
$privateapps = get_config('config','private_addons');
|
||||||
|
|
||||||
|
|
@ -248,11 +246,11 @@ if (strlen($a->module)) {
|
||||||
//Check if module is an app and if public access to apps is allowed or not
|
//Check if module is an app and if public access to apps is allowed or not
|
||||||
if ((!local_user()) && plugin_is_app($a->module) && $privateapps === "1") {
|
if ((!local_user()) && plugin_is_app($a->module) && $privateapps === "1") {
|
||||||
info( t("You must be logged in to use addons. "));
|
info( t("You must be logged in to use addons. "));
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
include_once("addon/{$a->module}/{$a->module}.php");
|
include_once("addon/{$a->module}/{$a->module}.php");
|
||||||
if (function_exists($a->module . '_module')) {
|
if(function_exists($a->module . '_module'))
|
||||||
$a->module_loaded = true;
|
$a->module_loaded = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -322,29 +320,29 @@ if (!$install && !$maintenance) {
|
||||||
* Call module functions
|
* Call module functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($a->module_loaded) {
|
if($a->module_loaded) {
|
||||||
$a->page['page_title'] = $a->module;
|
$a->page['page_title'] = $a->module;
|
||||||
$placeholder = '';
|
$placeholder = '';
|
||||||
|
|
||||||
if (function_exists($a->module . '_init')) {
|
if(function_exists($a->module . '_init')) {
|
||||||
call_hooks($a->module . '_mod_init', $placeholder);
|
call_hooks($a->module . '_mod_init', $placeholder);
|
||||||
$func = $a->module . '_init';
|
$func = $a->module . '_init';
|
||||||
$func($a);
|
$func($a);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (function_exists(str_replace('-','_',current_theme()) . '_init')) {
|
if(function_exists(str_replace('-','_',current_theme()) . '_init')) {
|
||||||
$func = str_replace('-','_',current_theme()) . '_init';
|
$func = str_replace('-','_',current_theme()) . '_init';
|
||||||
$func($a);
|
$func($a);
|
||||||
}
|
}
|
||||||
// elseif (x($a->theme_info,"extends") && file_exists("view/theme/".$a->theme_info["extends"]."/theme.php")) {
|
// elseif (x($a->theme_info,"extends") && file_exists("view/theme/".$a->theme_info["extends"]."/theme.php")) {
|
||||||
// require_once("view/theme/".$a->theme_info["extends"]."/theme.php");
|
// require_once("view/theme/".$a->theme_info["extends"]."/theme.php");
|
||||||
// if (function_exists(str_replace('-','_',$a->theme_info["extends"]) . '_init')) {
|
// if(function_exists(str_replace('-','_',$a->theme_info["extends"]) . '_init')) {
|
||||||
// $func = str_replace('-','_',$a->theme_info["extends"]) . '_init';
|
// $func = str_replace('-','_',$a->theme_info["extends"]) . '_init';
|
||||||
// $func($a);
|
// $func($a);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (($_SERVER['REQUEST_METHOD'] === 'POST') && (! $a->error)
|
if(($_SERVER['REQUEST_METHOD'] === 'POST') && (! $a->error)
|
||||||
&& (function_exists($a->module . '_post'))
|
&& (function_exists($a->module . '_post'))
|
||||||
&& (! x($_POST,'auth-params'))) {
|
&& (! x($_POST,'auth-params'))) {
|
||||||
call_hooks($a->module . '_mod_post', $_POST);
|
call_hooks($a->module . '_mod_post', $_POST);
|
||||||
|
|
@ -352,13 +350,13 @@ if ($a->module_loaded) {
|
||||||
$func($a);
|
$func($a);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((! $a->error) && (function_exists($a->module . '_afterpost'))) {
|
if((! $a->error) && (function_exists($a->module . '_afterpost'))) {
|
||||||
call_hooks($a->module . '_mod_afterpost',$placeholder);
|
call_hooks($a->module . '_mod_afterpost',$placeholder);
|
||||||
$func = $a->module . '_afterpost';
|
$func = $a->module . '_afterpost';
|
||||||
$func($a);
|
$func($a);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((! $a->error) && (function_exists($a->module . '_content'))) {
|
if((! $a->error) && (function_exists($a->module . '_content'))) {
|
||||||
$arr = array('content' => $a->page['content']);
|
$arr = array('content' => $a->page['content']);
|
||||||
call_hooks($a->module . '_mod_content', $arr);
|
call_hooks($a->module . '_mod_content', $arr);
|
||||||
$a->page['content'] = $arr['content'];
|
$a->page['content'] = $arr['content'];
|
||||||
|
|
@ -368,7 +366,7 @@ if ($a->module_loaded) {
|
||||||
$a->page['content'] .= $arr['content'];
|
$a->page['content'] .= $arr['content'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (function_exists(str_replace('-','_',current_theme()) . '_content_loaded')) {
|
if(function_exists(str_replace('-','_',current_theme()) . '_content_loaded')) {
|
||||||
$func = str_replace('-','_',current_theme()) . '_content_loaded';
|
$func = str_replace('-','_',current_theme()) . '_content_loaded';
|
||||||
$func($a);
|
$func($a);
|
||||||
}
|
}
|
||||||
|
|
@ -394,20 +392,18 @@ $a->init_page_end();
|
||||||
|
|
||||||
// If you're just visiting, let javascript take you home
|
// If you're just visiting, let javascript take you home
|
||||||
|
|
||||||
if (x($_SESSION,'visitor_home')) {
|
if(x($_SESSION,'visitor_home'))
|
||||||
$homebase = $_SESSION['visitor_home'];
|
$homebase = $_SESSION['visitor_home'];
|
||||||
} elseif (local_user()) {
|
elseif(local_user())
|
||||||
$homebase = 'profile/' . $a->user['nickname'];
|
$homebase = 'profile/' . $a->user['nickname'];
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($homebase)) {
|
if(isset($homebase))
|
||||||
$a->page['content'] .= '<script>var homebase="' . $homebase . '" ; </script>';
|
$a->page['content'] .= '<script>var homebase="' . $homebase . '" ; </script>';
|
||||||
}
|
|
||||||
|
|
||||||
// now that we've been through the module content, see if the page reported
|
// now that we've been through the module content, see if the page reported
|
||||||
// a permission problem and if so, a 403 response would seem to be in order.
|
// a permission problem and if so, a 403 response would seem to be in order.
|
||||||
|
|
||||||
if (stristr( implode("",$_SESSION['sysmsg']), t('Permission denied'))) {
|
if(stristr( implode("",$_SESSION['sysmsg']), t('Permission denied'))) {
|
||||||
header($_SERVER["SERVER_PROTOCOL"] . ' 403 ' . t('Permission denied.'));
|
header($_SERVER["SERVER_PROTOCOL"] . ' 403 ' . t('Permission denied.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -417,13 +413,13 @@ if (stristr( implode("",$_SESSION['sysmsg']), t('Permission denied'))) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*if (x($_SESSION,'sysmsg')) {
|
/*if(x($_SESSION,'sysmsg')) {
|
||||||
$a->page['content'] = "<div id=\"sysmsg\" class=\"error-message\">{$_SESSION['sysmsg']}</div>\r\n"
|
$a->page['content'] = "<div id=\"sysmsg\" class=\"error-message\">{$_SESSION['sysmsg']}</div>\r\n"
|
||||||
. ((x($a->page,'content')) ? $a->page['content'] : '');
|
. ((x($a->page,'content')) ? $a->page['content'] : '');
|
||||||
$_SESSION['sysmsg']="";
|
$_SESSION['sysmsg']="";
|
||||||
unset($_SESSION['sysmsg']);
|
unset($_SESSION['sysmsg']);
|
||||||
}
|
}
|
||||||
if (x($_SESSION,'sysmsg_info')) {
|
if(x($_SESSION,'sysmsg_info')) {
|
||||||
$a->page['content'] = "<div id=\"sysmsg_info\" class=\"info-message\">{$_SESSION['sysmsg_info']}</div>\r\n"
|
$a->page['content'] = "<div id=\"sysmsg_info\" class=\"info-message\">{$_SESSION['sysmsg_info']}</div>\r\n"
|
||||||
. ((x($a->page,'content')) ? $a->page['content'] : '');
|
. ((x($a->page,'content')) ? $a->page['content'] : '');
|
||||||
$_SESSION['sysmsg_info']="";
|
$_SESSION['sysmsg_info']="";
|
||||||
|
|
@ -441,7 +437,7 @@ call_hooks('page_end', $a->page['content']);
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($a->module != 'install' && $a->module != 'maintenance') {
|
if($a->module != 'install' && $a->module != 'maintenance') {
|
||||||
nav($a);
|
nav($a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -449,27 +445,27 @@ if ($a->module != 'install' && $a->module != 'maintenance') {
|
||||||
* Add a "toggle mobile" link if we're using a mobile device
|
* Add a "toggle mobile" link if we're using a mobile device
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($a->is_mobile || $a->is_tablet) {
|
if($a->is_mobile || $a->is_tablet) {
|
||||||
if (isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
|
if(isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
|
||||||
$link = 'toggle_mobile?address=' . curPageURL();
|
$link = 'toggle_mobile?address=' . curPageURL();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$link = 'toggle_mobile?off=1&address=' . curPageURL();
|
$link = 'toggle_mobile?off=1&address=' . curPageURL();
|
||||||
}
|
}
|
||||||
$a->page['footer'] = replace_macros(get_markup_template("toggle_mobile_footer.tpl"), array(
|
$a->page['footer'] = replace_macros(get_markup_template("toggle_mobile_footer.tpl"), array(
|
||||||
'$toggle_link' => $link,
|
'$toggle_link' => $link,
|
||||||
'$toggle_text' => t('toggle mobile')
|
'$toggle_text' => t('toggle mobile')
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build the page - now that we have all the components
|
* Build the page - now that we have all the components
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!$a->theme['stylesheet']) {
|
if(!$a->theme['stylesheet'])
|
||||||
$stylesheet = current_theme_url();
|
$stylesheet = current_theme_url();
|
||||||
} else {
|
else
|
||||||
$stylesheet = $a->theme['stylesheet'];
|
$stylesheet = $a->theme['stylesheet'];
|
||||||
}
|
|
||||||
|
|
||||||
$a->page['htmlhead'] = str_replace('{{$stylesheet}}',$stylesheet,$a->page['htmlhead']);
|
$a->page['htmlhead'] = str_replace('{{$stylesheet}}',$stylesheet,$a->page['htmlhead']);
|
||||||
//$a->page['htmlhead'] = replace_macros($a->page['htmlhead'], array('$stylesheet' => $stylesheet));
|
//$a->page['htmlhead'] = replace_macros($a->page['htmlhead'], array('$stylesheet' => $stylesheet));
|
||||||
|
|
@ -503,9 +499,8 @@ if (isset($_GET["mode"]) AND ($_GET["mode"] == "raw")) {
|
||||||
|
|
||||||
echo substr($target->saveHTML(), 6, -8);
|
echo substr($target->saveHTML(), 6, -8);
|
||||||
|
|
||||||
if (!$a->is_backend()) {
|
if (!$a->is_backend())
|
||||||
session_write_close();
|
session_write_close();
|
||||||
}
|
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -524,7 +519,7 @@ if (isset($_GET["mode"])) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there is no page template use the default page template
|
// If there is no page template use the default page template
|
||||||
if (!$template) {
|
if(!$template) {
|
||||||
$template = theme_include("default.php");
|
$template = theme_include("default.php");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ function wk_social_relay(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$taglist = array();
|
$taglist = array();
|
||||||
foreach ($tags AS $tag) {
|
foreach($tags AS $tag) {
|
||||||
$taglist[] = $tag;
|
$taglist[] = $tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@ require_once('include/Scrape.php');
|
||||||
|
|
||||||
function acctlink_init(App $a) {
|
function acctlink_init(App $a) {
|
||||||
|
|
||||||
if (x($_GET,'addr')) {
|
if(x($_GET,'addr')) {
|
||||||
$addr = trim($_GET['addr']);
|
$addr = trim($_GET['addr']);
|
||||||
$res = probe_url($addr);
|
$res = probe_url($addr);
|
||||||
//logger('acctlink: ' . print_r($res,true));
|
//logger('acctlink: ' . print_r($res,true));
|
||||||
if ($res['url']) {
|
if($res['url']) {
|
||||||
goaway($res['url']);
|
goaway($res['url']);
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -859,9 +859,8 @@ function admin_page_site(App $a) {
|
||||||
$allowed_theme_list = Config::get('system', 'allowed_themes');
|
$allowed_theme_list = Config::get('system', 'allowed_themes');
|
||||||
|
|
||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
if (file_exists($file.'/unsupported'))
|
if (intval(file_exists($file.'/unsupported')))
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
$f = basename($file);
|
$f = basename($file);
|
||||||
|
|
||||||
|
|
@ -1275,7 +1274,7 @@ function admin_page_users(App $a) {
|
||||||
if ($a->argc>2) {
|
if ($a->argc>2) {
|
||||||
$uid = $a->argv[3];
|
$uid = $a->argv[3];
|
||||||
$user = q("SELECT `username`, `blocked` FROM `user` WHERE `uid` = %d", intval($uid));
|
$user = q("SELECT `username`, `blocked` FROM `user` WHERE `uid` = %d", intval($uid));
|
||||||
if (!dbm::is_result($user)) {
|
if (count($user) == 0) {
|
||||||
notice('User not found'.EOL);
|
notice('User not found'.EOL);
|
||||||
goaway('admin/users');
|
goaway('admin/users');
|
||||||
return ''; // NOTREACHED
|
return ''; // NOTREACHED
|
||||||
|
|
@ -1610,7 +1609,7 @@ function admin_page_plugins(App $a) {
|
||||||
* @param int $result
|
* @param int $result
|
||||||
*/
|
*/
|
||||||
function toggle_theme(&$themes,$th,&$result) {
|
function toggle_theme(&$themes,$th,&$result) {
|
||||||
for ($x = 0; $x < count($themes); $x ++) {
|
for($x = 0; $x < count($themes); $x ++) {
|
||||||
if ($themes[$x]['name'] === $th) {
|
if ($themes[$x]['name'] === $th) {
|
||||||
if ($themes[$x]['allowed']) {
|
if ($themes[$x]['allowed']) {
|
||||||
$themes[$x]['allowed'] = 0;
|
$themes[$x]['allowed'] = 0;
|
||||||
|
|
@ -1630,7 +1629,7 @@ function toggle_theme(&$themes,$th,&$result) {
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
function theme_status($themes,$th) {
|
function theme_status($themes,$th) {
|
||||||
for ($x = 0; $x < count($themes); $x ++) {
|
for($x = 0; $x < count($themes); $x ++) {
|
||||||
if ($themes[$x]['name'] === $th) {
|
if ($themes[$x]['name'] === $th) {
|
||||||
if ($themes[$x]['allowed']) {
|
if ($themes[$x]['allowed']) {
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -1707,9 +1706,9 @@ function admin_page_themes(App $a) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$is_experimental = file_exists($file.'/experimental');
|
$is_experimental = intval(file_exists($file.'/experimental'));
|
||||||
$is_supported = (!file_exists($file.'/unsupported'));
|
$is_supported = 1-(intval(file_exists($file.'/unsupported')));
|
||||||
$is_allowed = in_array($f,$allowed_themes);
|
$is_allowed = intval(in_array($f,$allowed_themes));
|
||||||
|
|
||||||
if ($is_allowed OR $is_supported OR get_config("system", "show_unsupported_themes")) {
|
if ($is_allowed OR $is_supported OR get_config("system", "show_unsupported_themes")) {
|
||||||
$themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
|
$themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
|
||||||
|
|
@ -1762,7 +1761,7 @@ function admin_page_themes(App $a) {
|
||||||
$status="off"; $action= t("Enable");
|
$status="off"; $action= t("Enable");
|
||||||
}
|
}
|
||||||
|
|
||||||
$readme = null;
|
$readme = Null;
|
||||||
if (is_file("view/theme/$theme/README.md")) {
|
if (is_file("view/theme/$theme/README.md")) {
|
||||||
$readme = file_get_contents("view/theme/$theme/README.md");
|
$readme = file_get_contents("view/theme/$theme/README.md");
|
||||||
$readme = Markdown($readme);
|
$readme = Markdown($readme);
|
||||||
|
|
|
||||||
|
|
@ -37,9 +37,8 @@ function allfriends_content(App $a) {
|
||||||
|
|
||||||
$total = count_all_friends(local_user(), $cid);
|
$total = count_all_friends(local_user(), $cid);
|
||||||
|
|
||||||
if (count($total)) {
|
if(count($total))
|
||||||
$a->set_pager_total($total);
|
$a->set_pager_total($total);
|
||||||
}
|
|
||||||
|
|
||||||
$r = all_friends(local_user(), $cid, $a->pager['start'], $a->pager['itemspage']);
|
$r = all_friends(local_user(), $cid, $a->pager['start'], $a->pager['itemspage']);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ function api_post(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($a->user) && x($a->user,'uid') && $a->user['uid'] != local_user()) {
|
if(count($a->user) && x($a->user,'uid') && $a->user['uid'] != local_user()) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
22
mod/apps.php
22
mod/apps.php
|
|
@ -1,23 +1,25 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
function apps_content(App $a) {
|
function apps_content(App $a) {
|
||||||
$privateaddons = get_config('config','private_addons');
|
$privateaddons = get_config('config','private_addons');
|
||||||
if ($privateaddons === "1") {
|
if ($privateaddons === "1") {
|
||||||
if ((! (local_user()))) {
|
if((! (local_user()))) {
|
||||||
info( t("You must be logged in to use addons. "));
|
info( t("You must be logged in to use addons. "));
|
||||||
return;
|
return;};
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$title = t('Applications');
|
$title = t('Applications');
|
||||||
|
|
||||||
if (count($a->apps) == 0) {
|
if(count($a->apps)==0)
|
||||||
notice( t('No installed applications.') . EOL);
|
notice( t('No installed applications.') . EOL);
|
||||||
}
|
|
||||||
|
|
||||||
$tpl = get_markup_template("apps.tpl");
|
$tpl = get_markup_template("apps.tpl");
|
||||||
return replace_macros($tpl, array(
|
return replace_macros($tpl, array(
|
||||||
'$title' => $title,
|
'$title' => $title,
|
||||||
'$apps' => $a->apps,
|
'$apps' => $a->apps,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ require_once('include/security.php');
|
||||||
|
|
||||||
function attach_init(App $a) {
|
function attach_init(App $a) {
|
||||||
|
|
||||||
if ($a->argc != 2) {
|
if($a->argc != 2) {
|
||||||
notice( t('Item not available.') . EOL);
|
notice( t('Item not available.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -38,7 +38,7 @@ function attach_init(App $a) {
|
||||||
// error in Chrome for filenames with commas in them
|
// error in Chrome for filenames with commas in them
|
||||||
header('Content-type: ' . $r[0]['filetype']);
|
header('Content-type: ' . $r[0]['filetype']);
|
||||||
header('Content-length: ' . $r[0]['filesize']);
|
header('Content-length: ' . $r[0]['filesize']);
|
||||||
if (isset($_GET['attachment']) && $_GET['attachment'] === '0')
|
if(isset($_GET['attachment']) && $_GET['attachment'] === '0')
|
||||||
header('Content-disposition: filename="' . $r[0]['filename'] . '"');
|
header('Content-disposition: filename="' . $r[0]['filename'] . '"');
|
||||||
else
|
else
|
||||||
header('Content-disposition: attachment; filename="' . $r[0]['filename'] . '"');
|
header('Content-disposition: attachment; filename="' . $r[0]['filename'] . '"');
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ function babel_content(App $a) {
|
||||||
|
|
||||||
$o .= '<br /><br />';
|
$o .= '<br /><br />';
|
||||||
|
|
||||||
if (x($_REQUEST,'text')) {
|
if(x($_REQUEST,'text')) {
|
||||||
|
|
||||||
$text = trim($_REQUEST['text']);
|
$text = trim($_REQUEST['text']);
|
||||||
$o .= "<h2>" . t("Source input: ") . "</h2>" . EOL. EOL;
|
$o .= "<h2>" . t("Source input: ") . "</h2>" . EOL. EOL;
|
||||||
|
|
@ -63,7 +63,7 @@ function babel_content(App $a) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_REQUEST,'d2bbtext')) {
|
if(x($_REQUEST,'d2bbtext')) {
|
||||||
|
|
||||||
$d2bbtext = trim($_REQUEST['d2bbtext']);
|
$d2bbtext = trim($_REQUEST['d2bbtext']);
|
||||||
$o .= "<h2>" . t("Source input (Diaspora format): ") . "</h2>" . EOL. EOL;
|
$o .= "<h2>" . t("Source input (Diaspora format): ") . "</h2>" . EOL. EOL;
|
||||||
|
|
|
||||||
59
mod/cal.php
59
mod/cal.php
|
|
@ -10,10 +10,10 @@ require_once('include/event.php');
|
||||||
require_once('include/redir.php');
|
require_once('include/redir.php');
|
||||||
|
|
||||||
function cal_init(App $a) {
|
function cal_init(App $a) {
|
||||||
if ($a->argc > 1)
|
if($a->argc > 1)
|
||||||
auto_redir($a, $a->argv[1]);
|
auto_redir($a, $a->argv[1]);
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -21,13 +21,13 @@ function cal_init(App $a) {
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
$nick = $a->argv[1];
|
$nick = $a->argv[1];
|
||||||
$user = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
|
$user = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
|
||||||
dbesc($nick)
|
dbesc($nick)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! count($user))
|
if(! count($user))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$a->data['user'] = $user[0];
|
$a->data['user'] = $user[0];
|
||||||
|
|
@ -54,7 +54,7 @@ function cal_init(App $a) {
|
||||||
|
|
||||||
$cal_widget = widget_events();
|
$cal_widget = widget_events();
|
||||||
|
|
||||||
if (! x($a->page,'aside'))
|
if(! x($a->page,'aside'))
|
||||||
$a->page['aside'] = '';
|
$a->page['aside'] = '';
|
||||||
|
|
||||||
$a->page['aside'] .= $vcard_widget;
|
$a->page['aside'] .= $vcard_widget;
|
||||||
|
|
@ -69,7 +69,6 @@ function cal_content(App $a) {
|
||||||
|
|
||||||
// First day of the week (0 = Sunday)
|
// First day of the week (0 = Sunday)
|
||||||
$firstDay = get_pconfig(local_user(),'system','first_day_of_week');
|
$firstDay = get_pconfig(local_user(),'system','first_day_of_week');
|
||||||
/// @TODO Convert all these to with curly braces
|
|
||||||
if ($firstDay === false) $firstDay=0;
|
if ($firstDay === false) $firstDay=0;
|
||||||
|
|
||||||
// get the translation strings for the callendar
|
// get the translation strings for the callendar
|
||||||
|
|
@ -95,9 +94,8 @@ function cal_content(App $a) {
|
||||||
$m = 0;
|
$m = 0;
|
||||||
$ignored = ((x($_REQUEST,'ignored')) ? intval($_REQUEST['ignored']) : 0);
|
$ignored = ((x($_REQUEST,'ignored')) ? intval($_REQUEST['ignored']) : 0);
|
||||||
|
|
||||||
/// @TODO Convert to one if() statement
|
if($a->argc == 4) {
|
||||||
if ($a->argc == 4) {
|
if($a->argv[2] == 'export') {
|
||||||
if ($a->argv[2] == 'export') {
|
|
||||||
$mode = 'export';
|
$mode = 'export';
|
||||||
$format = $a->argv[3];
|
$format = $a->argv[3];
|
||||||
}
|
}
|
||||||
|
|
@ -114,15 +112,15 @@ function cal_content(App $a) {
|
||||||
$owner_uid = $a->data['user']['uid'];
|
$owner_uid = $a->data['user']['uid'];
|
||||||
$nick = $a->data['user']['nickname'];
|
$nick = $a->data['user']['nickname'];
|
||||||
|
|
||||||
if (is_array($_SESSION['remote'])) {
|
if(is_array($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $v) {
|
foreach($_SESSION['remote'] as $v) {
|
||||||
if ($v['uid'] == $a->profile['profile_uid']) {
|
if($v['uid'] == $a->profile['profile_uid']) {
|
||||||
$contact_id = $v['cid'];
|
$contact_id = $v['cid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($contact_id) {
|
if($contact_id) {
|
||||||
$groups = init_groups_visitor($contact_id);
|
$groups = init_groups_visitor($contact_id);
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($contact_id),
|
intval($contact_id),
|
||||||
|
|
@ -133,15 +131,15 @@ function cal_content(App $a) {
|
||||||
$remote_contact = true;
|
$remote_contact = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $remote_contact) {
|
if(! $remote_contact) {
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
$contact_id = $_SESSION['cid'];
|
$contact_id = $_SESSION['cid'];
|
||||||
$contact = $a->contact;
|
$contact = $a->contact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$is_owner = ((local_user()) && (local_user() == $a->profile['profile_uid']) ? true : false);
|
$is_owner = ((local_user()) && (local_user() == $a->profile['profile_uid']) ? true : false);
|
||||||
|
|
||||||
if ($a->profile['hidewall'] && (! $is_owner) && (! $remote_contact)) {
|
if($a->profile['hidewall'] && (! $is_owner) && (! $remote_contact)) {
|
||||||
notice( t('Access to this profile has been restricted.') . EOL);
|
notice( t('Access to this profile has been restricted.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -155,33 +153,33 @@ function cal_content(App $a) {
|
||||||
$tabs .= profile_tabs($a,false, $a->data['user']['nickname']);
|
$tabs .= profile_tabs($a,false, $a->data['user']['nickname']);
|
||||||
|
|
||||||
// The view mode part is similiar to /mod/events.php
|
// The view mode part is similiar to /mod/events.php
|
||||||
if ($mode == 'view') {
|
if($mode == 'view') {
|
||||||
|
|
||||||
|
|
||||||
$thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
|
$thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
|
||||||
$thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
|
$thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m');
|
||||||
if (! $y)
|
if(! $y)
|
||||||
$y = intval($thisyear);
|
$y = intval($thisyear);
|
||||||
if (! $m)
|
if(! $m)
|
||||||
$m = intval($thismonth);
|
$m = intval($thismonth);
|
||||||
|
|
||||||
// Put some limits on dates. The PHP date functions don't seem to do so well before 1900.
|
// Put some limits on dates. The PHP date functions don't seem to do so well before 1900.
|
||||||
// An upper limit was chosen to keep search engines from exploring links millions of years in the future.
|
// An upper limit was chosen to keep search engines from exploring links millions of years in the future.
|
||||||
|
|
||||||
if ($y < 1901)
|
if($y < 1901)
|
||||||
$y = 1900;
|
$y = 1900;
|
||||||
if ($y > 2099)
|
if($y > 2099)
|
||||||
$y = 2100;
|
$y = 2100;
|
||||||
|
|
||||||
$nextyear = $y;
|
$nextyear = $y;
|
||||||
$nextmonth = $m + 1;
|
$nextmonth = $m + 1;
|
||||||
if ($nextmonth > 12) {
|
if($nextmonth > 12) {
|
||||||
$nextmonth = 1;
|
$nextmonth = 1;
|
||||||
$nextyear ++;
|
$nextyear ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$prevyear = $y;
|
$prevyear = $y;
|
||||||
if ($m > 1)
|
if($m > 1)
|
||||||
$prevmonth = $m - 1;
|
$prevmonth = $m - 1;
|
||||||
else {
|
else {
|
||||||
$prevmonth = 12;
|
$prevmonth = 12;
|
||||||
|
|
@ -237,10 +235,9 @@ function cal_content(App $a) {
|
||||||
$events=array();
|
$events=array();
|
||||||
|
|
||||||
// transform the event in a usable array
|
// transform the event in a usable array
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$r = sort_by_date($r);
|
$r = sort_by_date($r);
|
||||||
$events = process_events($r);
|
$events = process_events($r);
|
||||||
}
|
|
||||||
|
|
||||||
if ($a->argv[2] === 'json'){
|
if ($a->argv[2] === 'json'){
|
||||||
echo json_encode($events); killme();
|
echo json_encode($events); killme();
|
||||||
|
|
@ -258,9 +255,9 @@ function cal_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get rid of dashes in key names, Smarty3 can't handle them
|
// Get rid of dashes in key names, Smarty3 can't handle them
|
||||||
foreach ($events as $key => $event) {
|
foreach($events as $key => $event) {
|
||||||
$event_item = array();
|
$event_item = array();
|
||||||
foreach ($event['item'] as $k => $v) {
|
foreach($event['item'] as $k => $v) {
|
||||||
$k = str_replace('-','_',$k);
|
$k = str_replace('-','_',$k);
|
||||||
$event_item[$k] = $v;
|
$event_item[$k] = $v;
|
||||||
}
|
}
|
||||||
|
|
@ -290,15 +287,15 @@ function cal_content(App $a) {
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mode == 'export') {
|
if($mode == 'export') {
|
||||||
if (! (intval($owner_uid))) {
|
if(! (intval($owner_uid))) {
|
||||||
notice( t('User not found'));
|
notice( t('User not found'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test permissions
|
// Test permissions
|
||||||
// Respect the export feature setting for all other /cal pages if it's not the own profile
|
// Respect the export feature setting for all other /cal pages if it's not the own profile
|
||||||
if ( ((local_user() !== intval($owner_uid))) && ! feature_enabled($owner_uid, "export_calendar")) {
|
if( ((local_user() !== intval($owner_uid))) && ! feature_enabled($owner_uid, "export_calendar")) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
goaway('cal/' . $nick);
|
goaway('cal/' . $nick);
|
||||||
}
|
}
|
||||||
|
|
@ -307,7 +304,7 @@ function cal_content(App $a) {
|
||||||
$evexport = event_export($owner_uid, $format);
|
$evexport = event_export($owner_uid, $format);
|
||||||
|
|
||||||
if (!$evexport["success"]) {
|
if (!$evexport["success"]) {
|
||||||
if ($evexport["content"])
|
if($evexport["content"])
|
||||||
notice( t('This calendar format is not supported') );
|
notice( t('This calendar format is not supported') );
|
||||||
else
|
else
|
||||||
notice( t('No exportable data found'));
|
notice( t('No exportable data found'));
|
||||||
|
|
|
||||||
|
|
@ -57,21 +57,20 @@ function common_content(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $cid) {
|
if(! $cid) {
|
||||||
if (get_my_url()) {
|
if(get_my_url()) {
|
||||||
$r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc(normalise_link(get_my_url())),
|
dbesc(normalise_link(get_my_url())),
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$cid = $r[0]['id'];
|
$cid = $r[0]['id'];
|
||||||
} else {
|
else {
|
||||||
$r = q("SELECT `id` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
|
$r = q("SELECT `id` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
|
||||||
dbesc(normalise_link(get_my_url()))
|
dbesc(normalise_link(get_my_url()))
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$zcid = $r[0]['id'];
|
$zcid = $r[0]['id'];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,12 @@ function community_content(App $a, $update = 0) {
|
||||||
if ($update)
|
if ($update)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
notice( t('Public access denied.') . EOL);
|
notice( t('Public access denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_config('system','community_page_style') == CP_NO_COMMUNITY_PAGE) {
|
if(get_config('system','community_page_style') == CP_NO_COMMUNITY_PAGE) {
|
||||||
notice( t('Not available.') . EOL);
|
notice( t('Not available.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -34,11 +34,11 @@ function community_content(App $a, $update = 0) {
|
||||||
|
|
||||||
|
|
||||||
$o .= '<h3>' . t('Community') . '</h3>';
|
$o .= '<h3>' . t('Community') . '</h3>';
|
||||||
if (! $update) {
|
if(! $update) {
|
||||||
nav_set_selected('community');
|
nav_set_selected('community');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($a->data,'search'))
|
if(x($a->data,'search'))
|
||||||
$search = notags(trim($a->data['search']));
|
$search = notags(trim($a->data['search']));
|
||||||
else
|
else
|
||||||
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||||
|
|
@ -79,15 +79,14 @@ function community_content(App $a, $update = 0) {
|
||||||
$r = community_getitems($a->pager['start'] + ($count * $a->pager['itemspage']), $a->pager['itemspage']);
|
$r = community_getitems($a->pager['start'] + ($count * $a->pager['itemspage']), $a->pager['itemspage']);
|
||||||
|
|
||||||
} while ((sizeof($s) < $a->pager['itemspage']) AND (++$count < 50) AND (sizeof($r) > 0));
|
} while ((sizeof($s) < $a->pager['itemspage']) AND (++$count < 50) AND (sizeof($r) > 0));
|
||||||
} else {
|
} else
|
||||||
$s = $r;
|
$s = $r;
|
||||||
}
|
|
||||||
|
|
||||||
// we behave the same in message lists as the search module
|
// we behave the same in message lists as the search module
|
||||||
|
|
||||||
$o .= conversation($a, $s, 'community', $update);
|
$o .= conversation($a, $s, 'community', $update);
|
||||||
|
|
||||||
$o .= alt_pager($a, count($r));
|
$o .= alt_pager($a, count($r));
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,16 @@ function contactgroup_content(App $a) {
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) {
|
if(($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) {
|
||||||
$r = q("SELECT `id` FROM `contact` WHERE `id` = %d AND `uid` = %d and `self` = 0 and `blocked` = 0 AND `pending` = 0 LIMIT 1",
|
$r = q("SELECT `id` FROM `contact` WHERE `id` = %d AND `uid` = %d and `self` = 0 and `blocked` = 0 AND `pending` = 0 LIMIT 1",
|
||||||
intval($a->argv[2]),
|
intval($a->argv[2]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$change = intval($a->argv[2]);
|
$change = intval($a->argv[2]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 1) && (intval($a->argv[1]))) {
|
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
|
|
||||||
$r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1",
|
||||||
intval($a->argv[1]),
|
intval($a->argv[1]),
|
||||||
|
|
@ -32,16 +31,16 @@ function contactgroup_content(App $a) {
|
||||||
$group = $r[0];
|
$group = $r[0];
|
||||||
$members = group_get_members($group['id']);
|
$members = group_get_members($group['id']);
|
||||||
$preselected = array();
|
$preselected = array();
|
||||||
if (count($members)) {
|
if(count($members)) {
|
||||||
foreach ($members as $member) {
|
foreach($members as $member)
|
||||||
$preselected[] = $member['id'];
|
$preselected[] = $member['id'];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($change) {
|
if($change) {
|
||||||
if (in_array($change,$preselected)) {
|
if(in_array($change,$preselected)) {
|
||||||
group_rmv_member(local_user(),$group['name'],$change);
|
group_rmv_member(local_user(),$group['name'],$change);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
group_add_member(local_user(),$group['name'],$change);
|
group_add_member(local_user(),$group['name'],$change);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
179
mod/contacts.php
179
mod/contacts.php
|
|
@ -14,7 +14,7 @@ function contacts_init(App $a) {
|
||||||
|
|
||||||
$contact_id = 0;
|
$contact_id = 0;
|
||||||
|
|
||||||
if ((($a->argc == 2) && intval($a->argv[1])) OR (($a->argc == 3) && intval($a->argv[1]) && ($a->argv[2] == "posts"))) {
|
if((($a->argc == 2) && intval($a->argv[1])) OR (($a->argc == 3) && intval($a->argv[1]) && ($a->argv[2] == "posts"))) {
|
||||||
$contact_id = intval($a->argv[1]);
|
$contact_id = intval($a->argv[1]);
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
|
|
@ -99,24 +99,15 @@ function contacts_init(App $a) {
|
||||||
|
|
||||||
function contacts_batch_actions(App $a) {
|
function contacts_batch_actions(App $a) {
|
||||||
$contacts_id = $_POST['contact_batch'];
|
$contacts_id = $_POST['contact_batch'];
|
||||||
if (!is_array($contacts_id)) {
|
if (!is_array($contacts_id)) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$orig_records = q("SELECT * FROM `contact` WHERE `id` IN (%s) AND `uid` = %d AND `self` = 0",
|
$orig_records = q("SELECT * FROM `contact` WHERE `id` IN (%s) AND `uid` = %d AND `self` = 0",
|
||||||
implode(",", $contacts_id),
|
implode(",", $contacts_id),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!dbm::is_result($orig_records)) {
|
|
||||||
/// @TODO EOL really needed?
|
|
||||||
notice( t('Could not access contact record(s).') . EOL);
|
|
||||||
goaway('contacts');
|
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
|
||||||
|
|
||||||
$count_actions=0;
|
$count_actions=0;
|
||||||
foreach ($orig_records as $orig_record) {
|
foreach($orig_records as $orig_record) {
|
||||||
$contact_id = $orig_record['id'];
|
$contact_id = $orig_record['id'];
|
||||||
if (x($_POST, 'contacts_batch_update')) {
|
if (x($_POST, 'contacts_batch_update')) {
|
||||||
_contact_update($contact_id);
|
_contact_update($contact_id);
|
||||||
|
|
@ -139,14 +130,14 @@ function contacts_batch_actions(App $a) {
|
||||||
$count_actions++;
|
$count_actions++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($count_actions>0) {
|
||||||
if ($count_actions > 0) {
|
|
||||||
info ( sprintf( tt("%d contact edited.", "%d contacts edited.", $count_actions), $count_actions) );
|
info ( sprintf( tt("%d contact edited.", "%d contacts edited.", $count_actions), $count_actions) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_SESSION,'return_url')) {
|
if (x($_SESSION,'return_url')) {
|
||||||
goaway('' . $_SESSION['return_url']);
|
goaway('' . $_SESSION['return_url']);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
goaway('contacts');
|
goaway('contacts');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -174,8 +165,7 @@ function contacts_post(App $a) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! dbm::is_result($orig_record)) {
|
if (! count($orig_record)) {
|
||||||
/// @TODO EOL really needed?
|
|
||||||
notice( t('Could not access contact record.') . EOL);
|
notice( t('Could not access contact record.') . EOL);
|
||||||
goaway('contacts');
|
goaway('contacts');
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
|
|
@ -204,10 +194,8 @@ function contacts_post(App $a) {
|
||||||
$ffi_keyword_blacklist = escape_tags(trim($_POST['ffi_keyword_blacklist']));
|
$ffi_keyword_blacklist = escape_tags(trim($_POST['ffi_keyword_blacklist']));
|
||||||
|
|
||||||
$priority = intval($_POST['poll']);
|
$priority = intval($_POST['poll']);
|
||||||
|
if($priority > 5 || $priority < 0)
|
||||||
if ($priority > 5 || $priority < 0) {
|
|
||||||
$priority = 0;
|
$priority = 0;
|
||||||
}
|
|
||||||
|
|
||||||
$info = escape_tags(trim($_POST['info']));
|
$info = escape_tags(trim($_POST['info']));
|
||||||
|
|
||||||
|
|
@ -224,21 +212,17 @@ function contacts_post(App $a) {
|
||||||
intval($contact_id),
|
intval($contact_id),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
/// @TODO Decide to use dbm::is_result() here, what does $r include?
|
if($r)
|
||||||
if ($r) {
|
|
||||||
info( t('Contact updated.') . EOL);
|
info( t('Contact updated.') . EOL);
|
||||||
} else {
|
else
|
||||||
notice( t('Failed to update contact record.') . EOL);
|
notice( t('Failed to update contact record.') . EOL);
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("select * from contact where id = %d and uid = %d limit 1",
|
||||||
intval($contact_id),
|
intval($contact_id),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
if($r && dbm::is_result($r))
|
||||||
if (dbm::is_result($r)) {
|
|
||||||
$a->data['contact'] = $r[0];
|
$a->data['contact'] = $r[0];
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
@ -247,47 +231,40 @@ function contacts_post(App $a) {
|
||||||
/*contact actions*/
|
/*contact actions*/
|
||||||
function _contact_update($contact_id) {
|
function _contact_update($contact_id) {
|
||||||
$r = q("SELECT `uid`, `url`, `network` FROM `contact` WHERE `id` = %d", intval($contact_id));
|
$r = q("SELECT `uid`, `url`, `network` FROM `contact` WHERE `id` = %d", intval($contact_id));
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$uid = $r[0]["uid"];
|
$uid = $r[0]["uid"];
|
||||||
|
|
||||||
if ($uid != local_user()) {
|
if ($uid != local_user())
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if ($r[0]["network"] == NETWORK_OSTATUS) {
|
if ($r[0]["network"] == NETWORK_OSTATUS) {
|
||||||
$result = new_contact($uid, $r[0]["url"], false);
|
$result = new_contact($uid, $r[0]["url"], false);
|
||||||
|
|
||||||
if ($result['success']) {
|
if ($result['success'])
|
||||||
$r = q("UPDATE `contact` SET `subhub` = 1 WHERE `id` = %d",
|
$r = q("UPDATE `contact` SET `subhub` = 1 WHERE `id` = %d",
|
||||||
intval($contact_id));
|
intval($contact_id));
|
||||||
}
|
} else
|
||||||
} else {
|
|
||||||
// pull feed and consume it, which should subscribe to the hub.
|
// pull feed and consume it, which should subscribe to the hub.
|
||||||
proc_run(PRIORITY_HIGH, "include/onepoll.php", $contact_id, "force");
|
proc_run(PRIORITY_HIGH, "include/onepoll.php", $contact_id, "force");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _contact_update_profile($contact_id) {
|
function _contact_update_profile($contact_id) {
|
||||||
$r = q("SELECT `uid`, `url`, `network` FROM `contact` WHERE `id` = %d", intval($contact_id));
|
$r = q("SELECT `uid`, `url`, `network` FROM `contact` WHERE `id` = %d", intval($contact_id));
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$uid = $r[0]["uid"];
|
$uid = $r[0]["uid"];
|
||||||
|
|
||||||
if ($uid != local_user()) {
|
if ($uid != local_user())
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$data = probe_url($r[0]["url"]);
|
$data = probe_url($r[0]["url"]);
|
||||||
|
|
||||||
// "Feed" or "Unknown" is mostly a sign of communication problems
|
// "Feed" or "Unknown" is mostly a sign of communication problems
|
||||||
if ((in_array($data["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) AND ($data["network"] != $r[0]["network"])) {
|
if ((in_array($data["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) AND ($data["network"] != $r[0]["network"]))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$updatefields = array("name", "nick", "url", "addr", "batch", "notify", "poll", "request", "confirm",
|
$updatefields = array("name", "nick", "url", "addr", "batch", "notify", "poll", "request", "confirm",
|
||||||
"poco", "network", "alias");
|
"poco", "network", "alias");
|
||||||
|
|
@ -296,36 +273,30 @@ function _contact_update_profile($contact_id) {
|
||||||
if ($data["network"] == NETWORK_OSTATUS) {
|
if ($data["network"] == NETWORK_OSTATUS) {
|
||||||
$result = new_contact($uid, $data["url"], false);
|
$result = new_contact($uid, $data["url"], false);
|
||||||
|
|
||||||
if ($result['success']) {
|
if ($result['success'])
|
||||||
$update["subhub"] = true;
|
$update["subhub"] = true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($updatefields AS $field) {
|
foreach($updatefields AS $field)
|
||||||
if (isset($data[$field]) AND ($data[$field] != "")) {
|
if (isset($data[$field]) AND ($data[$field] != ""))
|
||||||
$update[$field] = $data[$field];
|
$update[$field] = $data[$field];
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$update["nurl"] = normalise_link($data["url"]);
|
$update["nurl"] = normalise_link($data["url"]);
|
||||||
|
|
||||||
$query = "";
|
$query = "";
|
||||||
|
|
||||||
if (isset($data["priority"]) AND ($data["priority"] != 0)) {
|
if (isset($data["priority"]) AND ($data["priority"] != 0))
|
||||||
$query = "`priority` = ".intval($data["priority"]);
|
$query = "`priority` = ".intval($data["priority"]);
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($update AS $key => $value) {
|
foreach($update AS $key => $value) {
|
||||||
if ($query != "") {
|
if ($query != "")
|
||||||
$query .= ", ";
|
$query .= ", ";
|
||||||
}
|
|
||||||
|
|
||||||
$query .= "`".$key."` = '".dbesc($value)."'";
|
$query .= "`".$key."` = '".dbesc($value)."'";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($query == "") {
|
if ($query == "")
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET $query WHERE `id` = %d AND `uid` = %d",
|
$r = q("UPDATE `contact` SET $query WHERE `id` = %d AND `uid` = %d",
|
||||||
intval($contact_id),
|
intval($contact_id),
|
||||||
|
|
@ -390,12 +361,11 @@ function contacts_content(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($a->argc == 3) {
|
if($a->argc == 3) {
|
||||||
|
|
||||||
$contact_id = intval($a->argv[1]);
|
$contact_id = intval($a->argv[1]);
|
||||||
if (! $contact_id) {
|
if(! $contact_id)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$cmd = $a->argv[2];
|
$cmd = $a->argv[2];
|
||||||
|
|
||||||
|
|
@ -404,27 +374,26 @@ function contacts_content(App $a) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! dbm::is_result($orig_record)) {
|
if(! count($orig_record)) {
|
||||||
notice( t('Could not access contact record.') . EOL);
|
notice( t('Could not access contact record.') . EOL);
|
||||||
goaway('contacts');
|
goaway('contacts');
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cmd === 'update') {
|
if($cmd === 'update') {
|
||||||
_contact_update($contact_id);
|
_contact_update($contact_id);
|
||||||
goaway('contacts/' . $contact_id);
|
goaway('contacts/' . $contact_id);
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cmd === 'updateprofile') {
|
if($cmd === 'updateprofile') {
|
||||||
_contact_update_profile($contact_id);
|
_contact_update_profile($contact_id);
|
||||||
goaway('crepair/' . $contact_id);
|
goaway('crepair/' . $contact_id);
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cmd === 'block') {
|
if($cmd === 'block') {
|
||||||
$r = _contact_block($contact_id, $orig_record[0]);
|
$r = _contact_block($contact_id, $orig_record[0]);
|
||||||
/// @TODO is $r a database result?
|
|
||||||
if ($r) {
|
if ($r) {
|
||||||
$blocked = (($orig_record[0]['blocked']) ? 0 : 1);
|
$blocked = (($orig_record[0]['blocked']) ? 0 : 1);
|
||||||
info((($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')).EOL);
|
info((($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')).EOL);
|
||||||
|
|
@ -434,9 +403,8 @@ function contacts_content(App $a) {
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cmd === 'ignore') {
|
if($cmd === 'ignore') {
|
||||||
$r = _contact_ignore($contact_id, $orig_record[0]);
|
$r = _contact_ignore($contact_id, $orig_record[0]);
|
||||||
/// @TODO is $r a database result?
|
|
||||||
if ($r) {
|
if ($r) {
|
||||||
$readonly = (($orig_record[0]['readonly']) ? 0 : 1);
|
$readonly = (($orig_record[0]['readonly']) ? 0 : 1);
|
||||||
info((($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')).EOL);
|
info((($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')).EOL);
|
||||||
|
|
@ -447,9 +415,8 @@ function contacts_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($cmd === 'archive') {
|
if($cmd === 'archive') {
|
||||||
$r = _contact_archive($contact_id, $orig_record[0]);
|
$r = _contact_archive($contact_id, $orig_record[0]);
|
||||||
/// @TODO is $r a database result?
|
|
||||||
if ($r) {
|
if ($r) {
|
||||||
$archived = (($orig_record[0]['archive']) ? 0 : 1);
|
$archived = (($orig_record[0]['archive']) ? 0 : 1);
|
||||||
info((($archived) ? t('Contact has been archived') : t('Contact has been unarchived')).EOL);
|
info((($archived) ? t('Contact has been archived') : t('Contact has been unarchived')).EOL);
|
||||||
|
|
@ -459,16 +426,16 @@ function contacts_content(App $a) {
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($cmd === 'drop') {
|
if($cmd === 'drop') {
|
||||||
|
|
||||||
// Check if we should do HTML-based delete confirmation
|
// Check if we should do HTML-based delete confirmation
|
||||||
if ($_REQUEST['confirm']) {
|
if($_REQUEST['confirm']) {
|
||||||
// <form> can't take arguments in its "action" parameter
|
// <form> can't take arguments in its "action" parameter
|
||||||
// so add any arguments as hidden inputs
|
// so add any arguments as hidden inputs
|
||||||
$query = explode_querystring($a->query_string);
|
$query = explode_querystring($a->query_string);
|
||||||
$inputs = array();
|
$inputs = array();
|
||||||
foreach ($query['args'] as $arg) {
|
foreach($query['args'] as $arg) {
|
||||||
if (strpos($arg, 'confirm=') === false) {
|
if(strpos($arg, 'confirm=') === false) {
|
||||||
$arg_parts = explode('=', $arg);
|
$arg_parts = explode('=', $arg);
|
||||||
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
||||||
}
|
}
|
||||||
|
|
@ -492,7 +459,8 @@ function contacts_content(App $a) {
|
||||||
if ($_REQUEST['canceled']) {
|
if ($_REQUEST['canceled']) {
|
||||||
if (x($_SESSION,'return_url')) {
|
if (x($_SESSION,'return_url')) {
|
||||||
goaway('' . $_SESSION['return_url']);
|
goaway('' . $_SESSION['return_url']);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
goaway('contacts');
|
goaway('contacts');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -501,7 +469,8 @@ function contacts_content(App $a) {
|
||||||
info( t('Contact has been removed.') . EOL );
|
info( t('Contact has been removed.') . EOL );
|
||||||
if (x($_SESSION,'return_url')) {
|
if (x($_SESSION,'return_url')) {
|
||||||
goaway('' . $_SESSION['return_url']);
|
goaway('' . $_SESSION['return_url']);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
goaway('contacts');
|
goaway('contacts');
|
||||||
}
|
}
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
|
|
@ -515,7 +484,7 @@ function contacts_content(App $a) {
|
||||||
|
|
||||||
$_SESSION['return_url'] = $a->query_string;
|
$_SESSION['return_url'] = $a->query_string;
|
||||||
|
|
||||||
if ((x($a->data,'contact')) && (is_array($a->data['contact']))) {
|
if((x($a->data,'contact')) && (is_array($a->data['contact']))) {
|
||||||
|
|
||||||
$contact_id = $a->data['contact']['id'];
|
$contact_id = $a->data['contact']['id'];
|
||||||
$contact = $a->data['contact'];
|
$contact = $a->data['contact'];
|
||||||
|
|
@ -549,12 +518,12 @@ function contacts_content(App $a) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA)))
|
if(!in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA)))
|
||||||
$relation_text = "";
|
$relation_text = "";
|
||||||
|
|
||||||
$relation_text = sprintf($relation_text,htmlentities($contact['name']));
|
$relation_text = sprintf($relation_text,htmlentities($contact['name']));
|
||||||
|
|
||||||
if (($contact['network'] === NETWORK_DFRN) && ($contact['rel'])) {
|
if(($contact['network'] === NETWORK_DFRN) && ($contact['rel'])) {
|
||||||
$url = "redir/{$contact['id']}";
|
$url = "redir/{$contact['id']}";
|
||||||
$sparkle = ' class="sparkle" ';
|
$sparkle = ' class="sparkle" ';
|
||||||
}
|
}
|
||||||
|
|
@ -569,7 +538,7 @@ function contacts_content(App $a) {
|
||||||
? t('Never')
|
? t('Never')
|
||||||
: datetime_convert('UTC',date_default_timezone_get(),$contact['last-update'],'D, j M Y, g:i A'));
|
: datetime_convert('UTC',date_default_timezone_get(),$contact['last-update'],'D, j M Y, g:i A'));
|
||||||
|
|
||||||
if ($contact['last-update'] !== NULL_DATE) {
|
if ($contact['last-update'] > NULL_DATE) {
|
||||||
$last_update .= ' ' . (($contact['last-update'] <= $contact['success_update']) ? t("\x28Update was successful\x29") : t("\x28Update was not successful\x29"));
|
$last_update .= ' ' . (($contact['last-update'] <= $contact['success_update']) ? t("\x28Update was successful\x29") : t("\x28Update was not successful\x29"));
|
||||||
}
|
}
|
||||||
$lblsuggest = (($contact['network'] === NETWORK_DFRN) ? t('Suggest friends') : '');
|
$lblsuggest = (($contact['network'] === NETWORK_DFRN) ? t('Suggest friends') : '');
|
||||||
|
|
@ -595,22 +564,20 @@ function contacts_content(App $a) {
|
||||||
$fetch_further_information = array('fetch_further_information', t('Fetch further information for feeds'), $contact['fetch_further_information'], t('Fetch further information for feeds'),
|
$fetch_further_information = array('fetch_further_information', t('Fetch further information for feeds'), $contact['fetch_further_information'], t('Fetch further information for feeds'),
|
||||||
array('0'=>t('Disabled'), '1'=>t('Fetch information'), '2'=>t('Fetch information and keywords')));
|
array('0'=>t('Disabled'), '1'=>t('Fetch information'), '2'=>t('Fetch information and keywords')));
|
||||||
}
|
}
|
||||||
if (in_array($contact['network'], array(NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2))) {
|
if (in_array($contact['network'], array(NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2)))
|
||||||
$poll_interval = contact_poll_interval($contact['priority'],(! $poll_enabled));
|
$poll_interval = contact_poll_interval($contact['priority'],(! $poll_enabled));
|
||||||
}
|
|
||||||
|
|
||||||
if ($contact['network'] == NETWORK_DFRN) {
|
if ($contact['network'] == NETWORK_DFRN)
|
||||||
$profile_select = contact_profile_assign($contact['profile-id'],(($contact['network'] !== NETWORK_DFRN) ? true : false));
|
$profile_select = contact_profile_assign($contact['profile-id'],(($contact['network'] !== NETWORK_DFRN) ? true : false));
|
||||||
}
|
|
||||||
|
|
||||||
if (in_array($contact['network'], array(NETWORK_DIASPORA, NETWORK_OSTATUS)) AND
|
if (in_array($contact['network'], array(NETWORK_DIASPORA, NETWORK_OSTATUS)) AND
|
||||||
($contact['rel'] == CONTACT_IS_FOLLOWER)) {
|
($contact['rel'] == CONTACT_IS_FOLLOWER))
|
||||||
$follow = App::get_baseurl(true)."/follow?url=".urlencode($contact["url"]);
|
$follow = App::get_baseurl(true)."/follow?url=".urlencode($contact["url"]);
|
||||||
}
|
|
||||||
|
|
||||||
// Load contactact related actions like hide, suggest, delete and others
|
// Load contactact related actions like hide, suggest, delete and others
|
||||||
$contact_actions = contact_actions($contact);
|
$contact_actions = contact_actions($contact);
|
||||||
|
|
||||||
|
|
||||||
$o .= replace_macros($tpl, array(
|
$o .= replace_macros($tpl, array(
|
||||||
//'$header' => t('Contact Editor'),
|
//'$header' => t('Contact Editor'),
|
||||||
'$header' => t("Contact"),
|
'$header' => t("Contact"),
|
||||||
|
|
@ -694,24 +661,28 @@ function contacts_content(App $a) {
|
||||||
$ignored = false;
|
$ignored = false;
|
||||||
$all = false;
|
$all = false;
|
||||||
|
|
||||||
if (($a->argc == 2) && ($a->argv[1] === 'all')) {
|
if(($a->argc == 2) && ($a->argv[1] === 'all')) {
|
||||||
$sql_extra = '';
|
$sql_extra = '';
|
||||||
$all = true;
|
$all = true;
|
||||||
} elseif (($a->argc == 2) && ($a->argv[1] === 'blocked')) {
|
}
|
||||||
|
elseif(($a->argc == 2) && ($a->argv[1] === 'blocked')) {
|
||||||
$sql_extra = " AND `blocked` = 1 ";
|
$sql_extra = " AND `blocked` = 1 ";
|
||||||
$blocked = true;
|
$blocked = true;
|
||||||
} elseif (($a->argc == 2) && ($a->argv[1] === 'hidden')) {
|
}
|
||||||
|
elseif(($a->argc == 2) && ($a->argv[1] === 'hidden')) {
|
||||||
$sql_extra = " AND `hidden` = 1 ";
|
$sql_extra = " AND `hidden` = 1 ";
|
||||||
$hidden = true;
|
$hidden = true;
|
||||||
} elseif (($a->argc == 2) && ($a->argv[1] === 'ignored')) {
|
}
|
||||||
|
elseif(($a->argc == 2) && ($a->argv[1] === 'ignored')) {
|
||||||
$sql_extra = " AND `readonly` = 1 ";
|
$sql_extra = " AND `readonly` = 1 ";
|
||||||
$ignored = true;
|
$ignored = true;
|
||||||
} elseif (($a->argc == 2) && ($a->argv[1] === 'archived')) {
|
}
|
||||||
|
elseif(($a->argc == 2) && ($a->argv[1] === 'archived')) {
|
||||||
$sql_extra = " AND `archive` = 1 ";
|
$sql_extra = " AND `archive` = 1 ";
|
||||||
$archived = true;
|
$archived = true;
|
||||||
} else {
|
|
||||||
$sql_extra = " AND `blocked` = 0 ";
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
$sql_extra = " AND `blocked` = 0 ";
|
||||||
|
|
||||||
$search = ((x($_GET,'search')) ? notags(trim($_GET['search'])) : '');
|
$search = ((x($_GET,'search')) ? notags(trim($_GET['search'])) : '');
|
||||||
$nets = ((x($_GET,'nets')) ? notags(trim($_GET['nets'])) : '');
|
$nets = ((x($_GET,'nets')) ? notags(trim($_GET['nets'])) : '');
|
||||||
|
|
@ -783,20 +754,22 @@ function contacts_content(App $a) {
|
||||||
$tab_tpl = get_markup_template('common_tabs.tpl');
|
$tab_tpl = get_markup_template('common_tabs.tpl');
|
||||||
$t = replace_macros($tab_tpl, array('$tabs'=>$tabs));
|
$t = replace_macros($tab_tpl, array('$tabs'=>$tabs));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$searching = false;
|
$searching = false;
|
||||||
if ($search) {
|
if($search) {
|
||||||
$search_hdr = $search;
|
$search_hdr = $search;
|
||||||
$search_txt = dbesc(protect_sprintf(preg_quote($search)));
|
$search_txt = dbesc(protect_sprintf(preg_quote($search)));
|
||||||
$searching = true;
|
$searching = true;
|
||||||
}
|
}
|
||||||
$sql_extra .= (($searching) ? " AND (name REGEXP '$search_txt' OR url REGEXP '$search_txt' OR nick REGEXP '$search_txt') " : "");
|
$sql_extra .= (($searching) ? " AND (name REGEXP '$search_txt' OR url REGEXP '$search_txt' OR nick REGEXP '$search_txt') " : "");
|
||||||
|
|
||||||
if ($nets) {
|
if($nets)
|
||||||
$sql_extra .= sprintf(" AND network = '%s' ", dbesc($nets));
|
$sql_extra .= sprintf(" AND network = '%s' ", dbesc($nets));
|
||||||
}
|
|
||||||
|
|
||||||
$sql_extra2 = ((($sort_type > 0) && ($sort_type <= CONTACT_IS_FRIEND)) ? sprintf(" AND `rel` = %d ",intval($sort_type)) : '');
|
$sql_extra2 = ((($sort_type > 0) && ($sort_type <= CONTACT_IS_FRIEND)) ? sprintf(" AND `rel` = %d ",intval($sort_type)) : '');
|
||||||
|
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
|
||||||
WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 ",
|
WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 ",
|
||||||
intval($_SESSION['uid']));
|
intval($_SESSION['uid']));
|
||||||
|
|
@ -884,25 +857,23 @@ function contacts_tab($a, $contact_id, $active_tab) {
|
||||||
|
|
||||||
// Show this tab only if there is visible friend list
|
// Show this tab only if there is visible friend list
|
||||||
$x = count_all_friends(local_user(), $contact_id);
|
$x = count_all_friends(local_user(), $contact_id);
|
||||||
if ($x) {
|
if ($x)
|
||||||
$tabs[] = array('label'=>t('Contacts'),
|
$tabs[] = array('label'=>t('Contacts'),
|
||||||
'url' => "allfriends/".$contact_id,
|
'url' => "allfriends/".$contact_id,
|
||||||
'sel' => (($active_tab == 3)?'active':''),
|
'sel' => (($active_tab == 3)?'active':''),
|
||||||
'title' => t('View all contacts'),
|
'title' => t('View all contacts'),
|
||||||
'id' => 'allfriends-tab',
|
'id' => 'allfriends-tab',
|
||||||
'accesskey' => 't');
|
'accesskey' => 't');
|
||||||
}
|
|
||||||
|
|
||||||
// Show this tab only if there is visible common friend list
|
// Show this tab only if there is visible common friend list
|
||||||
$common = count_common_friends(local_user(),$contact_id);
|
$common = count_common_friends(local_user(),$contact_id);
|
||||||
if ($common) {
|
if ($common)
|
||||||
$tabs[] = array('label'=>t('Common Friends'),
|
$tabs[] = array('label'=>t('Common Friends'),
|
||||||
'url' => "common/loc/".local_user()."/".$contact_id,
|
'url' => "common/loc/".local_user()."/".$contact_id,
|
||||||
'sel' => (($active_tab == 4)?'active':''),
|
'sel' => (($active_tab == 4)?'active':''),
|
||||||
'title' => t('View all common friends'),
|
'title' => t('View all common friends'),
|
||||||
'id' => 'common-loc-tab',
|
'id' => 'common-loc-tab',
|
||||||
'accesskey' => 'd');
|
'accesskey' => 'd');
|
||||||
}
|
|
||||||
|
|
||||||
$tabs[] = array('label' => t('Advanced'),
|
$tabs[] = array('label' => t('Advanced'),
|
||||||
'url' => 'crepair/' . $contact_id,
|
'url' => 'crepair/' . $contact_id,
|
||||||
|
|
@ -920,13 +891,12 @@ function contacts_tab($a, $contact_id, $active_tab) {
|
||||||
function contact_posts($a, $contact_id) {
|
function contact_posts($a, $contact_id) {
|
||||||
|
|
||||||
$r = q("SELECT `url` FROM `contact` WHERE `id` = %d", intval($contact_id));
|
$r = q("SELECT `url` FROM `contact` WHERE `id` = %d", intval($contact_id));
|
||||||
if (dbm::is_result($r)) {
|
if ($r) {
|
||||||
$contact = $r[0];
|
$contact = $r[0];
|
||||||
$a->page['aside'] = "";
|
$a->page['aside'] = "";
|
||||||
profile_load($a, "", 0, get_contact_details_by_url($contact["url"]));
|
profile_load($a, "", 0, get_contact_details_by_url($contact["url"]));
|
||||||
} else {
|
} else
|
||||||
$profile = "";
|
$profile = "";
|
||||||
}
|
|
||||||
|
|
||||||
$tab_str = contacts_tab($a, $contact_id, 1);
|
$tab_str = contacts_tab($a, $contact_id, 1);
|
||||||
|
|
||||||
|
|
@ -955,10 +925,11 @@ function _contact_detail_for_template($rr){
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (($rr['network'] === NETWORK_DFRN) && ($rr['rel'])) {
|
if(($rr['network'] === NETWORK_DFRN) && ($rr['rel'])) {
|
||||||
$url = "redir/{$rr['id']}";
|
$url = "redir/{$rr['id']}";
|
||||||
$sparkle = ' class="sparkle" ';
|
$sparkle = ' class="sparkle" ';
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$url = $rr['url'];
|
$url = $rr['url'];
|
||||||
$sparkle = '';
|
$sparkle = '';
|
||||||
}
|
}
|
||||||
|
|
@ -996,7 +967,7 @@ function contact_actions($contact) {
|
||||||
$contact_action = array();
|
$contact_action = array();
|
||||||
|
|
||||||
// Provide friend suggestion only for Friendica contacts
|
// Provide friend suggestion only for Friendica contacts
|
||||||
if ($contact['network'] === NETWORK_DFRN) {
|
if($contact['network'] === NETWORK_DFRN) {
|
||||||
$contact_actions['suggest'] = array(
|
$contact_actions['suggest'] = array(
|
||||||
'label' => t('Suggest friends'),
|
'label' => t('Suggest friends'),
|
||||||
'url' => 'fsuggest/' . $contact['id'],
|
'url' => 'fsuggest/' . $contact['id'],
|
||||||
|
|
@ -1006,7 +977,7 @@ function contact_actions($contact) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($poll_enabled) {
|
if($poll_enabled) {
|
||||||
$contact_actions['update'] = array(
|
$contact_actions['update'] = array(
|
||||||
'label' => t('Update now'),
|
'label' => t('Update now'),
|
||||||
'url' => 'contacts/' . $contact['id'] . '/update',
|
'url' => 'contacts/' . $contact['id'] . '/update',
|
||||||
|
|
|
||||||
155
mod/content.php
155
mod/content.php
|
|
@ -38,18 +38,20 @@ function content_content(App $a, $update = 0) {
|
||||||
|
|
||||||
$nouveau = false;
|
$nouveau = false;
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
for ($x = 1; $x < $a->argc; $x ++) {
|
for($x = 1; $x < $a->argc; $x ++) {
|
||||||
if (is_a_date_arg($a->argv[$x])) {
|
if(is_a_date_arg($a->argv[$x])) {
|
||||||
if ($datequery) {
|
if($datequery)
|
||||||
$datequery2 = escape_tags($a->argv[$x]);
|
$datequery2 = escape_tags($a->argv[$x]);
|
||||||
} else {
|
else {
|
||||||
$datequery = escape_tags($a->argv[$x]);
|
$datequery = escape_tags($a->argv[$x]);
|
||||||
$_GET['order'] = 'post';
|
$_GET['order'] = 'post';
|
||||||
}
|
}
|
||||||
} elseif ($a->argv[$x] === 'new') {
|
}
|
||||||
|
elseif($a->argv[$x] === 'new') {
|
||||||
$nouveau = true;
|
$nouveau = true;
|
||||||
} elseif (intval($a->argv[$x])) {
|
}
|
||||||
|
elseif(intval($a->argv[$x])) {
|
||||||
$group = intval($a->argv[$x]);
|
$group = intval($a->argv[$x]);
|
||||||
$def_acl = array('allow_gid' => '<' . $group . '>');
|
$def_acl = array('allow_gid' => '<' . $group . '>');
|
||||||
}
|
}
|
||||||
|
|
@ -79,12 +81,12 @@ function content_content(App $a, $update = 0) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (x($_GET,'search') || x($_GET,'file'))
|
if(x($_GET,'search') || x($_GET,'file'))
|
||||||
$nouveau = true;
|
$nouveau = true;
|
||||||
if ($cid)
|
if($cid)
|
||||||
$def_acl = array('allow_cid' => '<' . intval($cid) . '>');
|
$def_acl = array('allow_cid' => '<' . intval($cid) . '>');
|
||||||
|
|
||||||
if ($nets) {
|
if($nets) {
|
||||||
$r = q("select id from contact where uid = %d and network = '%s' and self = 0",
|
$r = q("select id from contact where uid = %d and network = '%s' and self = 0",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc($nets)
|
dbesc($nets)
|
||||||
|
|
@ -92,9 +94,9 @@ function content_content(App $a, $update = 0) {
|
||||||
|
|
||||||
$str = '';
|
$str = '';
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
$str .= '<' . $rr['id'] . '>';
|
$str .= '<' . $rr['id'] . '>';
|
||||||
if (strlen($str))
|
if(strlen($str))
|
||||||
$def_acl = array('allow_cid' => $str);
|
$def_acl = array('allow_cid' => $str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -106,13 +108,13 @@ function content_content(App $a, $update = 0) {
|
||||||
|
|
||||||
$sql_extra = " AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE `id` = `parent` $sql_options ) ";
|
$sql_extra = " AND `item`.`parent` IN ( SELECT `parent` FROM `item` WHERE `id` = `parent` $sql_options ) ";
|
||||||
|
|
||||||
if ($group) {
|
if($group) {
|
||||||
$r = q("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($group),
|
intval($group),
|
||||||
intval($_SESSION['uid'])
|
intval($_SESSION['uid'])
|
||||||
);
|
);
|
||||||
if (! dbm::is_result($r)) {
|
if (! dbm::is_result($r)) {
|
||||||
if ($update)
|
if($update)
|
||||||
killme();
|
killme();
|
||||||
notice( t('No such group') . EOL );
|
notice( t('No such group') . EOL );
|
||||||
goaway(App::get_baseurl(true) . '/network');
|
goaway(App::get_baseurl(true) . '/network');
|
||||||
|
|
@ -120,7 +122,7 @@ function content_content(App $a, $update = 0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$contacts = expand_groups(array($group));
|
$contacts = expand_groups(array($group));
|
||||||
if ((is_array($contacts)) && count($contacts)) {
|
if((is_array($contacts)) && count($contacts)) {
|
||||||
$contact_str = implode(',',$contacts);
|
$contact_str = implode(',',$contacts);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -133,7 +135,7 @@ function content_content(App $a, $update = 0) {
|
||||||
'$title' => sprintf( t('Group: %s'), $r[0]['name'])
|
'$title' => sprintf( t('Group: %s'), $r[0]['name'])
|
||||||
)) . $o;
|
)) . $o;
|
||||||
}
|
}
|
||||||
elseif ($cid) {
|
elseif($cid) {
|
||||||
|
|
||||||
$r = q("SELECT `id`,`name`,`network`,`writable`,`nurl` FROM `contact` WHERE `id` = %d
|
$r = q("SELECT `id`,`name`,`network`,`writable`,`nurl` FROM `contact` WHERE `id` = %d
|
||||||
AND `blocked` = 0 AND `pending` = 0 LIMIT 1",
|
AND `blocked` = 0 AND `pending` = 0 LIMIT 1",
|
||||||
|
|
@ -151,10 +153,10 @@ function content_content(App $a, $update = 0) {
|
||||||
|
|
||||||
$sql_extra3 = '';
|
$sql_extra3 = '';
|
||||||
|
|
||||||
if ($datequery) {
|
if($datequery) {
|
||||||
$sql_extra3 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
|
$sql_extra3 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
|
||||||
}
|
}
|
||||||
if ($datequery2) {
|
if($datequery2) {
|
||||||
$sql_extra3 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
|
$sql_extra3 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -162,10 +164,10 @@ function content_content(App $a, $update = 0) {
|
||||||
$sql_extra3 = (($nouveau) ? '' : $sql_extra3);
|
$sql_extra3 = (($nouveau) ? '' : $sql_extra3);
|
||||||
$sql_table = "`item`";
|
$sql_table = "`item`";
|
||||||
|
|
||||||
if (x($_GET,'search')) {
|
if(x($_GET,'search')) {
|
||||||
$search = escape_tags($_GET['search']);
|
$search = escape_tags($_GET['search']);
|
||||||
|
|
||||||
if (strpos($search,'#') === 0) {
|
if(strpos($search,'#') === 0) {
|
||||||
$tag = true;
|
$tag = true;
|
||||||
$search = substr($search,1);
|
$search = substr($search,1);
|
||||||
}
|
}
|
||||||
|
|
@ -173,7 +175,7 @@ function content_content(App $a, $update = 0) {
|
||||||
if (get_config('system','only_tag_search'))
|
if (get_config('system','only_tag_search'))
|
||||||
$tag = true;
|
$tag = true;
|
||||||
|
|
||||||
if ($tag) {
|
if($tag) {
|
||||||
//$sql_extra = sprintf(" AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d ",
|
//$sql_extra = sprintf(" AND `term`.`term` = '%s' AND `term`.`otype` = %d AND `term`.`type` = %d ",
|
||||||
// dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG));
|
// dbesc(protect_sprintf($search)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG));
|
||||||
//$sql_table = "`term` INNER JOIN `item` ON `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` ";
|
//$sql_table = "`term` INNER JOIN `item` ON `item`.`id` = `term`.`oid` AND `item`.`uid` = `term`.`uid` ";
|
||||||
|
|
@ -190,11 +192,11 @@ function content_content(App $a, $update = 0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (strlen($file)) {
|
if(strlen($file)) {
|
||||||
$sql_extra .= file_tag_file_query('item',unxmlify($file));
|
$sql_extra .= file_tag_file_query('item',unxmlify($file));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conv) {
|
if($conv) {
|
||||||
$myurl = App::get_baseurl() . '/profile/'. $a->user['nickname'];
|
$myurl = App::get_baseurl() . '/profile/'. $a->user['nickname'];
|
||||||
$myurl = substr($myurl,strpos($myurl,'://')+3);
|
$myurl = substr($myurl,strpos($myurl,'://')+3);
|
||||||
$myurl = str_replace('www.','',$myurl);
|
$myurl = str_replace('www.','',$myurl);
|
||||||
|
|
@ -209,7 +211,7 @@ function content_content(App $a, $update = 0) {
|
||||||
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
|
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
|
||||||
|
|
||||||
|
|
||||||
if ($nouveau) {
|
if($nouveau) {
|
||||||
// "New Item View" - show all items unthreaded in reverse created date order
|
// "New Item View" - show all items unthreaded in reverse created date order
|
||||||
|
|
||||||
$items = q("SELECT `item`.*, `item`.`id` AS `item_id`,
|
$items = q("SELECT `item`.*, `item`.`id` AS `item_id`,
|
||||||
|
|
@ -232,7 +234,7 @@ function content_content(App $a, $update = 0) {
|
||||||
// Normal conversation view
|
// Normal conversation view
|
||||||
|
|
||||||
|
|
||||||
if ($order === 'post')
|
if($order === 'post')
|
||||||
$ordering = "`created`";
|
$ordering = "`created`";
|
||||||
else
|
else
|
||||||
$ordering = "`commented`";
|
$ordering = "`commented`";
|
||||||
|
|
@ -258,8 +260,8 @@ function content_content(App $a, $update = 0) {
|
||||||
$parents_str = '';
|
$parents_str = '';
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
if (! in_array($rr['item_id'],$parents_arr))
|
if(! in_array($rr['item_id'],$parents_arr))
|
||||||
$parents_arr[] = $rr['item_id'];
|
$parents_arr[] = $rr['item_id'];
|
||||||
$parents_str = implode(', ', $parents_arr);
|
$parents_str = implode(', ', $parents_arr);
|
||||||
|
|
||||||
|
|
@ -326,32 +328,32 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mode === 'network') {
|
if($mode === 'network') {
|
||||||
$profile_owner = local_user();
|
$profile_owner = local_user();
|
||||||
$page_writeable = true;
|
$page_writeable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mode === 'profile') {
|
if($mode === 'profile') {
|
||||||
$profile_owner = $a->profile['profile_uid'];
|
$profile_owner = $a->profile['profile_uid'];
|
||||||
$page_writeable = can_write_wall($a,$profile_owner);
|
$page_writeable = can_write_wall($a,$profile_owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mode === 'notes') {
|
if($mode === 'notes') {
|
||||||
$profile_owner = local_user();
|
$profile_owner = local_user();
|
||||||
$page_writeable = true;
|
$page_writeable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mode === 'display') {
|
if($mode === 'display') {
|
||||||
$profile_owner = $a->profile['uid'];
|
$profile_owner = $a->profile['uid'];
|
||||||
$page_writeable = can_write_wall($a,$profile_owner);
|
$page_writeable = can_write_wall($a,$profile_owner);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mode === 'community') {
|
if($mode === 'community') {
|
||||||
$profile_owner = 0;
|
$profile_owner = 0;
|
||||||
$page_writeable = false;
|
$page_writeable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($update)
|
if($update)
|
||||||
$return_url = $_SESSION['return_url'];
|
$return_url = $_SESSION['return_url'];
|
||||||
else
|
else
|
||||||
$return_url = $_SESSION['return_url'] = $a->query_string;
|
$return_url = $_SESSION['return_url'] = $a->query_string;
|
||||||
|
|
@ -376,9 +378,9 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$threads = array();
|
$threads = array();
|
||||||
$threadsid = -1;
|
$threadsid = -1;
|
||||||
|
|
||||||
if ($items && count($items)) {
|
if($items && count($items)) {
|
||||||
|
|
||||||
if ($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
|
if($mode === 'network-new' || $mode === 'search' || $mode === 'community') {
|
||||||
|
|
||||||
// "New Item View" on network page or search page results
|
// "New Item View" on network page or search page results
|
||||||
// - just loop through the items and format them minimally for display
|
// - just loop through the items and format them minimally for display
|
||||||
|
|
@ -386,7 +388,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
//$tpl = get_markup_template('search_item.tpl');
|
//$tpl = get_markup_template('search_item.tpl');
|
||||||
$tpl = 'search_item.tpl';
|
$tpl = 'search_item.tpl';
|
||||||
|
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
$threadsid++;
|
$threadsid++;
|
||||||
|
|
||||||
$comment = '';
|
$comment = '';
|
||||||
|
|
@ -395,8 +397,8 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$owner_name = '';
|
$owner_name = '';
|
||||||
$sparkle = '';
|
$sparkle = '';
|
||||||
|
|
||||||
if ($mode === 'search' || $mode === 'community') {
|
if($mode === 'search' || $mode === 'community') {
|
||||||
if (((activity_match($item['verb'],ACTIVITY_LIKE))
|
if(((activity_match($item['verb'],ACTIVITY_LIKE))
|
||||||
|| (activity_match($item['verb'],ACTIVITY_DISLIKE))
|
|| (activity_match($item['verb'],ACTIVITY_DISLIKE))
|
||||||
|| activity_match($item['verb'],ACTIVITY_ATTEND)
|
|| activity_match($item['verb'],ACTIVITY_ATTEND)
|
||||||
|| activity_match($item['verb'],ACTIVITY_ATTENDNO)
|
|| activity_match($item['verb'],ACTIVITY_ATTENDNO)
|
||||||
|
|
@ -409,20 +411,20 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$nickname = $a->user['nickname'];
|
$nickname = $a->user['nickname'];
|
||||||
|
|
||||||
// prevent private email from leaking.
|
// prevent private email from leaking.
|
||||||
if ($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
|
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
$profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']);
|
$profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']);
|
||||||
if ($item['author-link'] && (! $item['author-name']))
|
if($item['author-link'] && (! $item['author-name']))
|
||||||
$profile_name = $item['author-link'];
|
$profile_name = $item['author-link'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$sp = false;
|
$sp = false;
|
||||||
$profile_link = best_link_url($item,$sp);
|
$profile_link = best_link_url($item,$sp);
|
||||||
if ($profile_link === 'mailbox')
|
if($profile_link === 'mailbox')
|
||||||
$profile_link = '';
|
$profile_link = '';
|
||||||
if ($sp)
|
if($sp)
|
||||||
$sparkle = ' sparkle';
|
$sparkle = ' sparkle';
|
||||||
else
|
else
|
||||||
$profile_link = zrl($profile_link);
|
$profile_link = zrl($profile_link);
|
||||||
|
|
@ -440,7 +442,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate));
|
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate));
|
||||||
|
|
||||||
localize_item($item);
|
localize_item($item);
|
||||||
if ($mode === 'network-new')
|
if($mode === 'network-new')
|
||||||
$dropping = true;
|
$dropping = true;
|
||||||
else
|
else
|
||||||
$dropping = false;
|
$dropping = false;
|
||||||
|
|
@ -461,7 +463,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$body = prepare_body($item,true);
|
$body = prepare_body($item,true);
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal') {
|
if($a->theme['template_engine'] === 'internal') {
|
||||||
$name_e = template_escape($profile_name);
|
$name_e = template_escape($profile_name);
|
||||||
$title_e = template_escape($item['title']);
|
$title_e = template_escape($item['title']);
|
||||||
$body_e = template_escape($body);
|
$body_e = template_escape($body);
|
||||||
|
|
@ -532,20 +534,20 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
// Store the result in the $comments array
|
// Store the result in the $comments array
|
||||||
|
|
||||||
$comments = array();
|
$comments = array();
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
if ((intval($item['gravity']) == 6) && ($item['id'] != $item['parent'])) {
|
if((intval($item['gravity']) == 6) && ($item['id'] != $item['parent'])) {
|
||||||
if (! x($comments,$item['parent']))
|
if(! x($comments,$item['parent']))
|
||||||
$comments[$item['parent']] = 1;
|
$comments[$item['parent']] = 1;
|
||||||
else
|
else
|
||||||
$comments[$item['parent']] += 1;
|
$comments[$item['parent']] += 1;
|
||||||
} elseif (! x($comments,$item['parent']))
|
} elseif(! x($comments,$item['parent']))
|
||||||
$comments[$item['parent']] = 0; // avoid notices later on
|
$comments[$item['parent']] = 0; // avoid notices later on
|
||||||
}
|
}
|
||||||
|
|
||||||
// map all the like/dislike/attendance activities for each parent item
|
// map all the like/dislike/attendance activities for each parent item
|
||||||
// Store these in the $alike and $dlike arrays
|
// Store these in the $alike and $dlike arrays
|
||||||
|
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
builtin_activity_puller($item, $conv_responses);
|
builtin_activity_puller($item, $conv_responses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -557,7 +559,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$blowhard_count = 0;
|
$blowhard_count = 0;
|
||||||
|
|
||||||
|
|
||||||
foreach ($items as $item) {
|
foreach($items as $item) {
|
||||||
|
|
||||||
$comment = '';
|
$comment = '';
|
||||||
$template = $tpl;
|
$template = $tpl;
|
||||||
|
|
@ -567,7 +569,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
// We've already parsed out like/dislike for special treatment. We can ignore them now
|
// We've already parsed out like/dislike for special treatment. We can ignore them now
|
||||||
|
|
||||||
if (((activity_match($item['verb'],ACTIVITY_LIKE))
|
if(((activity_match($item['verb'],ACTIVITY_LIKE))
|
||||||
|| (activity_match($item['verb'],ACTIVITY_DISLIKE)
|
|| (activity_match($item['verb'],ACTIVITY_DISLIKE)
|
||||||
|| activity_match($item['verb'],ACTIVITY_ATTEND)
|
|| activity_match($item['verb'],ACTIVITY_ATTEND)
|
||||||
|| activity_match($item['verb'],ACTIVITY_ATTENDNO)
|
|| activity_match($item['verb'],ACTIVITY_ATTENDNO)
|
||||||
|
|
@ -583,7 +585,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
// If a single author has more than 3 consecutive top-level posts, squash the remaining ones.
|
// If a single author has more than 3 consecutive top-level posts, squash the remaining ones.
|
||||||
// If there are more than two comments, squash all but the last 2.
|
// If there are more than two comments, squash all but the last 2.
|
||||||
|
|
||||||
if ($toplevelpost) {
|
if($toplevelpost) {
|
||||||
|
|
||||||
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
|
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
|
||||||
|
|
||||||
|
|
@ -601,7 +603,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
else {
|
else {
|
||||||
|
|
||||||
// prevent private email reply to public conversation from leaking.
|
// prevent private email reply to public conversation from leaking.
|
||||||
if ($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
|
if($item['network'] === NETWORK_MAIL && local_user() != $item['uid'])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
$comments_seen ++;
|
$comments_seen ++;
|
||||||
|
|
@ -613,7 +615,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false);
|
$show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false);
|
||||||
|
|
||||||
|
|
||||||
if (($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) {
|
if(($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) {
|
||||||
|
|
||||||
if (!$comments_collapsed){
|
if (!$comments_collapsed){
|
||||||
$threads[$threadsid]['num_comments'] = sprintf( tt('%d comment','%d comments',$comments[$item['parent']]),$comments[$item['parent']] );
|
$threads[$threadsid]['num_comments'] = sprintf( tt('%d comment','%d comments',$comments[$item['parent']]),$comments[$item['parent']] );
|
||||||
|
|
@ -624,7 +626,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$comment_firstcollapsed = true;
|
$comment_firstcollapsed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (($comments[$item['parent']] > 2) && ($comments_seen == ($comments[$item['parent']] - 1))) {
|
if(($comments[$item['parent']] > 2) && ($comments_seen == ($comments[$item['parent']] - 1))) {
|
||||||
|
|
||||||
$comment_lastcollapsed = true;
|
$comment_lastcollapsed = true;
|
||||||
}
|
}
|
||||||
|
|
@ -642,9 +644,9 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$osparkle = '';
|
$osparkle = '';
|
||||||
|
|
||||||
if (($toplevelpost) && (! $item['self']) && ($mode !== 'profile')) {
|
if(($toplevelpost) && (! $item['self']) && ($mode !== 'profile')) {
|
||||||
|
|
||||||
if ($item['wall']) {
|
if($item['wall']) {
|
||||||
|
|
||||||
// On the network page, I am the owner. On the display page it will be the profile owner.
|
// On the network page, I am the owner. On the display page it will be the profile owner.
|
||||||
// This will have been stored in $a->page_contact by our calling page.
|
// This will have been stored in $a->page_contact by our calling page.
|
||||||
|
|
@ -657,12 +659,12 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$commentww = 'ww';
|
$commentww = 'ww';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((! $item['wall']) && $item['owner-link']) {
|
if((! $item['wall']) && $item['owner-link']) {
|
||||||
|
|
||||||
$owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link']));
|
$owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link']));
|
||||||
$alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link']));
|
$alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link']));
|
||||||
$owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']);
|
$owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']);
|
||||||
if ((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) {
|
if((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) {
|
||||||
|
|
||||||
// The author url doesn't match the owner (typically the contact)
|
// The author url doesn't match the owner (typically the contact)
|
||||||
// and also doesn't match the contact alias.
|
// and also doesn't match the contact alias.
|
||||||
|
|
@ -680,7 +682,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$template = $wallwall;
|
$template = $wallwall;
|
||||||
$commentww = 'ww';
|
$commentww = 'ww';
|
||||||
// If it is our contact, use a friendly redirect link
|
// If it is our contact, use a friendly redirect link
|
||||||
if ((link_compare($item['owner-link'],$item['url']))
|
if((link_compare($item['owner-link'],$item['url']))
|
||||||
&& ($item['network'] === NETWORK_DFRN)) {
|
&& ($item['network'] === NETWORK_DFRN)) {
|
||||||
$owner_url = $redirect_url;
|
$owner_url = $redirect_url;
|
||||||
$osparkle = ' sparkle';
|
$osparkle = ' sparkle';
|
||||||
|
|
@ -694,8 +696,8 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$likebuttons = '';
|
$likebuttons = '';
|
||||||
$shareable = ((($profile_owner == local_user()) && ($item['private'] != 1)) ? true : false);
|
$shareable = ((($profile_owner == local_user()) && ($item['private'] != 1)) ? true : false);
|
||||||
|
|
||||||
if ($page_writeable) {
|
if($page_writeable) {
|
||||||
/* if ($toplevelpost) { */
|
/* if($toplevelpost) { */
|
||||||
$likebuttons = array(
|
$likebuttons = array(
|
||||||
'like' => array( t("I like this \x28toggle\x29"), t("like")),
|
'like' => array( t("I like this \x28toggle\x29"), t("like")),
|
||||||
'dislike' => array( t("I don't like this \x28toggle\x29"), t("dislike")),
|
'dislike' => array( t("I don't like this \x28toggle\x29"), t("dislike")),
|
||||||
|
|
@ -705,12 +707,12 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$qc = $qcomment = null;
|
$qc = $qcomment = null;
|
||||||
|
|
||||||
if (in_array('qcomment',$a->plugins)) {
|
if(in_array('qcomment',$a->plugins)) {
|
||||||
$qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null);
|
$qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null);
|
||||||
$qcomment = (($qc) ? explode("\n",$qc) : null);
|
$qcomment = (($qc) ? explode("\n",$qc) : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($show_comment_box) || (($show_comment_box == false) && ($override_comment_box == false) && ($item['last-child']))) {
|
if(($show_comment_box) || (($show_comment_box == false) && ($override_comment_box == false) && ($item['last-child']))) {
|
||||||
$comment = replace_macros($cmnt_tpl,array(
|
$comment = replace_macros($cmnt_tpl,array(
|
||||||
'$return_path' => '',
|
'$return_path' => '',
|
||||||
'$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''),
|
'$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''),
|
||||||
|
|
@ -749,7 +751,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$drop = '';
|
$drop = '';
|
||||||
$dropping = false;
|
$dropping = false;
|
||||||
|
|
||||||
if ((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
|
if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
|
||||||
$dropping = true;
|
$dropping = true;
|
||||||
|
|
||||||
$drop = array(
|
$drop = array(
|
||||||
|
|
@ -813,7 +815,7 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
$profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
|
$profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']);
|
||||||
|
|
||||||
if ($item['author-link'] && (! $item['author-name']))
|
if($item['author-link'] && (! $item['author-name']))
|
||||||
$profile_name = $item['author-link'];
|
$profile_name = $item['author-link'];
|
||||||
|
|
||||||
$sp = false;
|
$sp = false;
|
||||||
|
|
@ -840,14 +842,13 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
|
|
||||||
// process action responses - e.g. like/dislike/attend/agree/whatever
|
// process action responses - e.g. like/dislike/attend/agree/whatever
|
||||||
$response_verbs = array('like');
|
$response_verbs = array('like');
|
||||||
if (feature_enabled($profile_owner,'dislike')) {
|
if(feature_enabled($profile_owner,'dislike'))
|
||||||
$response_verbs[] = 'dislike';
|
$response_verbs[] = 'dislike';
|
||||||
}
|
if($item['object-type'] === ACTIVITY_OBJ_EVENT) {
|
||||||
if ($item['object-type'] === ACTIVITY_OBJ_EVENT) {
|
|
||||||
$response_verbs[] = 'attendyes';
|
$response_verbs[] = 'attendyes';
|
||||||
$response_verbs[] = 'attendno';
|
$response_verbs[] = 'attendno';
|
||||||
$response_verbs[] = 'attendmaybe';
|
$response_verbs[] = 'attendmaybe';
|
||||||
if ($page_writeable) {
|
if($page_writeable) {
|
||||||
$isevent = true;
|
$isevent = true;
|
||||||
$attend = array( t('I will attend'), t('I will not attend'), t('I might attend'));
|
$attend = array( t('I will attend'), t('I will not attend'), t('I might attend'));
|
||||||
}
|
}
|
||||||
|
|
@ -862,20 +863,17 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$indent = (($toplevelpost) ? '' : ' comment');
|
$indent = (($toplevelpost) ? '' : ' comment');
|
||||||
|
|
||||||
$shiny = "";
|
$shiny = "";
|
||||||
if (strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0) {
|
if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0)
|
||||||
$shiny = 'shiny';
|
$shiny = 'shiny';
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
localize_item($item);
|
localize_item($item);
|
||||||
|
|
||||||
|
|
||||||
$tags=array();
|
$tags=array();
|
||||||
foreach (explode(',',$item['tag']) as $tag){
|
foreach(explode(',',$item['tag']) as $tag){
|
||||||
$tag = trim($tag);
|
$tag = trim($tag);
|
||||||
if ($tag!="") {
|
if ($tag!="") $tags[] = bbcode($tag);
|
||||||
$tags[] = bbcode($tag);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build the HTML
|
// Build the HTML
|
||||||
|
|
@ -883,14 +881,15 @@ function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||||
$body = prepare_body($item,true);
|
$body = prepare_body($item,true);
|
||||||
//$tmp_item = replace_macros($template,
|
//$tmp_item = replace_macros($template,
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal') {
|
if($a->theme['template_engine'] === 'internal') {
|
||||||
$body_e = template_escape($body);
|
$body_e = template_escape($body);
|
||||||
$text_e = strip_tags(template_escape($body));
|
$text_e = strip_tags(template_escape($body));
|
||||||
$name_e = template_escape($profile_name);
|
$name_e = template_escape($profile_name);
|
||||||
$title_e = template_escape($item['title']);
|
$title_e = template_escape($item['title']);
|
||||||
$location_e = template_escape($location);
|
$location_e = template_escape($location);
|
||||||
$owner_name_e = template_escape($owner_name);
|
$owner_name_e = template_escape($owner_name);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$body_e = $body;
|
$body_e = $body;
|
||||||
$text_e = strip_tags($body);
|
$text_e = strip_tags($body);
|
||||||
$name_e = $profile_name;
|
$name_e = $profile_name;
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ function crepair_init(App $a) {
|
||||||
|
|
||||||
$contact_id = 0;
|
$contact_id = 0;
|
||||||
|
|
||||||
if (($a->argc == 2) && intval($a->argv[1])) {
|
if(($a->argc == 2) && intval($a->argv[1])) {
|
||||||
$contact_id = intval($a->argv[1]);
|
$contact_id = intval($a->argv[1]);
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
|
|
@ -20,11 +20,10 @@ function crepair_init(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! x($a->page,'aside')) {
|
if(! x($a->page,'aside'))
|
||||||
$a->page['aside'] = '';
|
$a->page['aside'] = '';
|
||||||
}
|
|
||||||
|
|
||||||
if ($contact_id) {
|
if($contact_id) {
|
||||||
$a->data['contact'] = $r[0];
|
$a->data['contact'] = $r[0];
|
||||||
$contact = $r[0];
|
$contact = $r[0];
|
||||||
profile_load($a, "", 0, get_contact_details_by_url($contact["url"]));
|
profile_load($a, "", 0, get_contact_details_by_url($contact["url"]));
|
||||||
|
|
@ -36,12 +35,9 @@ function crepair_post(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init $r here if $cid is not set
|
|
||||||
$r = false;
|
|
||||||
|
|
||||||
$cid = (($a->argc > 1) ? intval($a->argv[1]) : 0);
|
$cid = (($a->argc > 1) ? intval($a->argv[1]) : 0);
|
||||||
|
|
||||||
if ($cid) {
|
if($cid) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($cid),
|
intval($cid),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -82,18 +78,18 @@ function crepair_post(App $a) {
|
||||||
local_user()
|
local_user()
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($photo) {
|
if($photo) {
|
||||||
logger('mod-crepair: updating photo from ' . $photo);
|
logger('mod-crepair: updating photo from ' . $photo);
|
||||||
require_once("include/Photo.php");
|
require_once("include/Photo.php");
|
||||||
|
|
||||||
update_contact_avatar($photo,local_user(),$contact['id']);
|
update_contact_avatar($photo,local_user(),$contact['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($r) {
|
if($r)
|
||||||
info( t('Contact settings applied.') . EOL);
|
info( t('Contact settings applied.') . EOL);
|
||||||
} else {
|
else
|
||||||
notice( t('Contact update failed.') . EOL);
|
notice( t('Contact update failed.') . EOL);
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -109,7 +105,7 @@ function crepair_content(App $a) {
|
||||||
|
|
||||||
$cid = (($a->argc > 1) ? intval($a->argv[1]) : 0);
|
$cid = (($a->argc > 1) ? intval($a->argv[1]) : 0);
|
||||||
|
|
||||||
if ($cid) {
|
if($cid) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($cid),
|
intval($cid),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
|
||||||
|
|
@ -23,16 +23,16 @@ function delegate_content(App $a) {
|
||||||
|
|
||||||
$id = $a->argv[2];
|
$id = $a->argv[2];
|
||||||
|
|
||||||
$r = q("SELECT `nickname` FROM `user` WHERE `uid` = %d LIMIT 1",
|
$r = q("select `nickname` from user where uid = %d limit 1",
|
||||||
intval($id)
|
intval($id)
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$r = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' LIMIT 1",
|
$r = q("select id from contact where uid = %d and nurl = '%s' limit 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc(normalise_link(App::get_baseurl() . '/profile/' . $r[0]['nickname']))
|
dbesc(normalise_link(App::get_baseurl() . '/profile/' . $r[0]['nickname']))
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
q("INSERT INTO `manage` ( `uid`, `mid` ) VALUES ( %d , %d ) ",
|
q("insert into manage ( uid, mid ) values ( %d , %d ) ",
|
||||||
intval($a->argv[2]),
|
intval($a->argv[2]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
@ -64,40 +64,34 @@ function delegate_content(App $a) {
|
||||||
dbesc($a->user['email']),
|
dbesc($a->user['email']),
|
||||||
dbesc($a->user['password'])
|
dbesc($a->user['password'])
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$full_managers = $r;
|
$full_managers = $r;
|
||||||
}
|
|
||||||
|
|
||||||
$delegates = array();
|
$delegates = array();
|
||||||
|
|
||||||
// find everybody that currently has delegated management to this account/page
|
// find everybody that currently has delegated management to this account/page
|
||||||
|
|
||||||
$r = q("SELECT * FROM `user` WHERE `uid` IN ( SELECT `uid` FROM `manage` WHERE `mid` = %d ) ",
|
$r = q("select * from user where uid in ( select uid from manage where mid = %d ) ",
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$delegates = $r;
|
$delegates = $r;
|
||||||
}
|
|
||||||
|
|
||||||
$uids = array();
|
$uids = array();
|
||||||
|
|
||||||
if (count($full_managers)) {
|
if(count($full_managers))
|
||||||
foreach ($full_managers as $rr) {
|
foreach($full_managers as $rr)
|
||||||
$uids[] = $rr['uid'];
|
$uids[] = $rr['uid'];
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (count($delegates)) {
|
if(count($delegates))
|
||||||
foreach ($delegates as $rr) {
|
foreach($delegates as $rr)
|
||||||
$uids[] = $rr['uid'];
|
$uids[] = $rr['uid'];
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// find every contact who might be a candidate for delegation
|
// find every contact who might be a candidate for delegation
|
||||||
|
|
||||||
$r = q("SELECT `nurl` FROM `contact` WHERE SUBSTRING_INDEX(`contact`.`nurl`,'/',3) = '%s'
|
$r = q("select nurl from contact where substring_index(contact.nurl,'/',3) = '%s'
|
||||||
AND `contact`.`uid` = %d AND `contact`.`self` = 0 AND `network` = '%s' ",
|
and contact.uid = %d and contact.self = 0 and network = '%s' ",
|
||||||
dbesc(normalise_link(App::get_baseurl())),
|
dbesc(normalise_link(App::get_baseurl())),
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc(NETWORK_DFRN)
|
dbesc(NETWORK_DFRN)
|
||||||
|
|
@ -122,15 +116,12 @@ function delegate_content(App $a) {
|
||||||
|
|
||||||
// get user records for all potential page delegates who are not already delegates or managers
|
// get user records for all potential page delegates who are not already delegates or managers
|
||||||
|
|
||||||
$r = q("SELECT `uid`, `username`, `nickname` FROM `user` WHERE `nickname` IN ( $nicks )");
|
$r = q("select `uid`, `username`, `nickname` from user where nickname in ( $nicks )");
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
if (! in_array($rr['uid'],$uids)) {
|
if(! in_array($rr['uid'],$uids))
|
||||||
$potentials[] = $rr;
|
$potentials[] = $rr;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
require_once("mod/settings.php");
|
require_once("mod/settings.php");
|
||||||
settings_init($a);
|
settings_init($a);
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ require_once('include/Probe.php');
|
||||||
|
|
||||||
function dfrn_confirm_post(App $a, $handsfree = null) {
|
function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
|
|
||||||
if (is_array($handsfree)) {
|
if(is_array($handsfree)) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We were called directly from dfrn_request due to automatic friend acceptance.
|
* We were called directly from dfrn_request due to automatic friend acceptance.
|
||||||
|
|
@ -37,7 +37,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($a->argc > 1)
|
if($a->argc > 1)
|
||||||
$node = $a->argv[1];
|
$node = $a->argv[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -53,11 +53,11 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! x($_POST,'source_url')) {
|
if(! x($_POST,'source_url')) {
|
||||||
|
|
||||||
$uid = ((is_array($handsfree)) ? $handsfree['uid'] : local_user());
|
$uid = ((is_array($handsfree)) ? $handsfree['uid'] : local_user());
|
||||||
|
|
||||||
if (! $uid) {
|
if(! $uid) {
|
||||||
notice( t('Permission denied.') . EOL );
|
notice( t('Permission denied.') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -66,7 +66,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
intval($uid)
|
intval($uid)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! $user) {
|
if(! $user) {
|
||||||
notice( t('Profile not found.') . EOL );
|
notice( t('Profile not found.') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -74,7 +74,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
|
|
||||||
// These data elements may come from either the friend request notification form or $handsfree array.
|
// These data elements may come from either the friend request notification form or $handsfree array.
|
||||||
|
|
||||||
if (is_array($handsfree)) {
|
if(is_array($handsfree)) {
|
||||||
logger('Confirm in handsfree mode');
|
logger('Confirm in handsfree mode');
|
||||||
$dfrn_id = $handsfree['dfrn_id'];
|
$dfrn_id = $handsfree['dfrn_id'];
|
||||||
$intro_id = $handsfree['intro_id'];
|
$intro_id = $handsfree['intro_id'];
|
||||||
|
|
@ -99,11 +99,11 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (strlen($dfrn_id))
|
if(strlen($dfrn_id))
|
||||||
$cid = 0;
|
$cid = 0;
|
||||||
|
|
||||||
logger('Confirming request for dfrn_id (issued) ' . $dfrn_id);
|
logger('Confirming request for dfrn_id (issued) ' . $dfrn_id);
|
||||||
if ($cid)
|
if($cid)
|
||||||
logger('Confirming follower with contact_id: ' . $cid);
|
logger('Confirming follower with contact_id: ' . $cid);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -138,10 +138,10 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
|
|
||||||
$network = ((strlen($contact['issued-id'])) ? NETWORK_DFRN : NETWORK_OSTATUS);
|
$network = ((strlen($contact['issued-id'])) ? NETWORK_DFRN : NETWORK_OSTATUS);
|
||||||
|
|
||||||
if ($contact['network'])
|
if($contact['network'])
|
||||||
$network = $contact['network'];
|
$network = $contact['network'];
|
||||||
|
|
||||||
if ($network === NETWORK_DFRN) {
|
if($network === NETWORK_DFRN) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
|
|
@ -199,19 +199,19 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
openssl_public_encrypt($my_url, $params['source_url'], $site_pubkey);
|
openssl_public_encrypt($my_url, $params['source_url'], $site_pubkey);
|
||||||
$params['source_url'] = bin2hex($params['source_url']);
|
$params['source_url'] = bin2hex($params['source_url']);
|
||||||
|
|
||||||
if ($aes_allow && function_exists('openssl_encrypt')) {
|
if($aes_allow && function_exists('openssl_encrypt')) {
|
||||||
openssl_public_encrypt($src_aes_key, $params['aes_key'], $site_pubkey);
|
openssl_public_encrypt($src_aes_key, $params['aes_key'], $site_pubkey);
|
||||||
$params['aes_key'] = bin2hex($params['aes_key']);
|
$params['aes_key'] = bin2hex($params['aes_key']);
|
||||||
$params['public_key'] = bin2hex(openssl_encrypt($public_key,'AES-256-CBC',$src_aes_key));
|
$params['public_key'] = bin2hex(openssl_encrypt($public_key,'AES-256-CBC',$src_aes_key));
|
||||||
}
|
}
|
||||||
|
|
||||||
$params['dfrn_version'] = DFRN_PROTOCOL_VERSION ;
|
$params['dfrn_version'] = DFRN_PROTOCOL_VERSION ;
|
||||||
if ($duplex == 1)
|
if($duplex == 1)
|
||||||
$params['duplex'] = 1;
|
$params['duplex'] = 1;
|
||||||
|
|
||||||
if ($user[0]['page-flags'] == PAGE_COMMUNITY)
|
if($user[0]['page-flags'] == PAGE_COMMUNITY)
|
||||||
$params['page'] = 1;
|
$params['page'] = 1;
|
||||||
if ($user[0]['page-flags'] == PAGE_PRVGROUP)
|
if($user[0]['page-flags'] == PAGE_PRVGROUP)
|
||||||
$params['page'] = 2;
|
$params['page'] = 2;
|
||||||
|
|
||||||
logger('Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA);
|
logger('Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA);
|
||||||
|
|
@ -234,7 +234,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
$leading_junk = substr($res,0,strpos($res,'<?xml'));
|
$leading_junk = substr($res,0,strpos($res,'<?xml'));
|
||||||
|
|
||||||
$res = substr($res,strpos($res,'<?xml'));
|
$res = substr($res,strpos($res,'<?xml'));
|
||||||
if (! strlen($res)) {
|
if(! strlen($res)) {
|
||||||
|
|
||||||
// No XML at all, this exchange is messed up really bad.
|
// No XML at all, this exchange is messed up really bad.
|
||||||
// We shouldn't proceed, because the xml parser might choke,
|
// We shouldn't proceed, because the xml parser might choke,
|
||||||
|
|
@ -245,7 +245,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($leading_junk) && get_config('system','debugging')) {
|
if(strlen($leading_junk) && get_config('system','debugging')) {
|
||||||
|
|
||||||
// This might be more common. Mixed error text and some XML.
|
// This might be more common. Mixed error text and some XML.
|
||||||
// If we're configured for debugging, show the text. Proceed in either case.
|
// If we're configured for debugging, show the text. Proceed in either case.
|
||||||
|
|
@ -253,7 +253,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
notice( t('Unexpected response from remote site: ') . EOL . $leading_junk . EOL );
|
notice( t('Unexpected response from remote site: ') . EOL . $leading_junk . EOL );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stristr($res, "<status")===false) {
|
if(stristr($res, "<status")===false) {
|
||||||
// wrong xml! stop here!
|
// wrong xml! stop here!
|
||||||
notice( t('Unexpected response from remote site: ') . EOL . htmlspecialchars($res) . EOL );
|
notice( t('Unexpected response from remote site: ') . EOL . htmlspecialchars($res) . EOL );
|
||||||
return;
|
return;
|
||||||
|
|
@ -265,7 +265,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
switch($status) {
|
switch($status) {
|
||||||
case 0:
|
case 0:
|
||||||
info( t("Confirmation completed successfully.") . EOL);
|
info( t("Confirmation completed successfully.") . EOL);
|
||||||
if (strlen($message))
|
if(strlen($message))
|
||||||
notice( t('Remote site reported: ') . $message . EOL);
|
notice( t('Remote site reported: ') . $message . EOL);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
|
@ -279,19 +279,19 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
notice( t("Temporary failure. Please wait and try again.") . EOL);
|
notice( t("Temporary failure. Please wait and try again.") . EOL);
|
||||||
if (strlen($message))
|
if(strlen($message))
|
||||||
notice( t('Remote site reported: ') . $message . EOL);
|
notice( t('Remote site reported: ') . $message . EOL);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
notice( t("Introduction failed or was revoked.") . EOL);
|
notice( t("Introduction failed or was revoked.") . EOL);
|
||||||
if (strlen($message))
|
if(strlen($message))
|
||||||
notice( t('Remote site reported: ') . $message . EOL);
|
notice( t('Remote site reported: ') . $message . EOL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($status == 0) && ($intro_id)) {
|
if(($status == 0) && ($intro_id)) {
|
||||||
|
|
||||||
// Success. Delete the notification.
|
// Success. Delete the notification.
|
||||||
|
|
||||||
|
|
@ -302,7 +302,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($status != 0)
|
if($status != 0)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -323,13 +323,13 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
|
|
||||||
logger('dfrn_confirm: confirm - imported photos');
|
logger('dfrn_confirm: confirm - imported photos');
|
||||||
|
|
||||||
if ($network === NETWORK_DFRN) {
|
if($network === NETWORK_DFRN) {
|
||||||
|
|
||||||
$new_relation = CONTACT_IS_FOLLOWER;
|
$new_relation = CONTACT_IS_FOLLOWER;
|
||||||
if (($relation == CONTACT_IS_SHARING) || ($duplex))
|
if(($relation == CONTACT_IS_SHARING) || ($duplex))
|
||||||
$new_relation = CONTACT_IS_FRIEND;
|
$new_relation = CONTACT_IS_FRIEND;
|
||||||
|
|
||||||
if (($relation == CONTACT_IS_SHARING) && ($duplex))
|
if(($relation == CONTACT_IS_SHARING) && ($duplex))
|
||||||
$duplex = 0;
|
$duplex = 0;
|
||||||
|
|
||||||
$r = q("UPDATE `contact` SET `rel` = %d,
|
$r = q("UPDATE `contact` SET `rel` = %d,
|
||||||
|
|
@ -349,7 +349,8 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
intval($contact_id)
|
intval($contact_id)
|
||||||
);
|
);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
// $network !== NETWORK_DFRN
|
// $network !== NETWORK_DFRN
|
||||||
|
|
||||||
|
|
@ -357,13 +358,13 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
$notify = (($contact['notify']) ? $contact['notify'] : '');
|
$notify = (($contact['notify']) ? $contact['notify'] : '');
|
||||||
$poll = (($contact['poll']) ? $contact['poll'] : '');
|
$poll = (($contact['poll']) ? $contact['poll'] : '');
|
||||||
|
|
||||||
if ((! $contact['notify']) || (! $contact['poll'])) {
|
if((! $contact['notify']) || (! $contact['poll'])) {
|
||||||
$arr = Probe::lrdd($contact['url']);
|
$arr = Probe::lrdd($contact['url']);
|
||||||
if (count($arr)) {
|
if(count($arr)) {
|
||||||
foreach ($arr as $link) {
|
foreach($arr as $link) {
|
||||||
if ($link['@attributes']['rel'] === 'salmon')
|
if($link['@attributes']['rel'] === 'salmon')
|
||||||
$notify = $link['@attributes']['href'];
|
$notify = $link['@attributes']['href'];
|
||||||
if ($link['@attributes']['rel'] === NAMESPACE_FEED)
|
if($link['@attributes']['rel'] === NAMESPACE_FEED)
|
||||||
$poll = $link['@attributes']['href'];
|
$poll = $link['@attributes']['href'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -372,13 +373,13 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
$new_relation = $contact['rel'];
|
$new_relation = $contact['rel'];
|
||||||
$writable = $contact['writable'];
|
$writable = $contact['writable'];
|
||||||
|
|
||||||
if ($network === NETWORK_DIASPORA) {
|
if($network === NETWORK_DIASPORA) {
|
||||||
if ($duplex)
|
if($duplex)
|
||||||
$new_relation = CONTACT_IS_FRIEND;
|
$new_relation = CONTACT_IS_FRIEND;
|
||||||
else
|
else
|
||||||
$new_relation = CONTACT_IS_FOLLOWER;
|
$new_relation = CONTACT_IS_FOLLOWER;
|
||||||
|
|
||||||
if ($new_relation != CONTACT_IS_FOLLOWER)
|
if($new_relation != CONTACT_IS_FOLLOWER)
|
||||||
$writable = 1;
|
$writable = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -443,7 +444,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
intval($uid)
|
intval($uid)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ((dbm::is_result($r)) && ($r[0]['hide-friends'] == 0) && ($activity) && (! $hidden)) {
|
if((dbm::is_result($r)) && ($r[0]['hide-friends'] == 0) && ($activity) && (! $hidden)) {
|
||||||
|
|
||||||
require_once('include/items.php');
|
require_once('include/items.php');
|
||||||
|
|
||||||
|
|
@ -451,7 +452,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
intval($uid)
|
intval($uid)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (count($self)) {
|
if(count($self)) {
|
||||||
|
|
||||||
$arr = array();
|
$arr = array();
|
||||||
$arr['guid'] = get_guid(32);
|
$arr['guid'] = get_guid(32);
|
||||||
|
|
@ -490,14 +491,14 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
$arr['deny_gid'] = $user[0]['deny_gid'];
|
$arr['deny_gid'] = $user[0]['deny_gid'];
|
||||||
|
|
||||||
$i = item_store($arr);
|
$i = item_store($arr);
|
||||||
if ($i)
|
if($i)
|
||||||
proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
|
proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$def_gid = get_default_group($uid, $contact["network"]);
|
$def_gid = get_default_group($uid, $contact["network"]);
|
||||||
if ($contact && intval($def_gid))
|
if($contact && intval($def_gid))
|
||||||
group_add_member($uid, '', $contact['id'], $def_gid);
|
group_add_member($uid, '', $contact['id'], $def_gid);
|
||||||
|
|
||||||
// Let's send our user to the contact editor in case they want to
|
// Let's send our user to the contact editor in case they want to
|
||||||
|
|
@ -564,7 +565,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
$local_uid = $r[0]['uid'];
|
$local_uid = $r[0]['uid'];
|
||||||
|
|
||||||
|
|
||||||
if (! strstr($my_prvkey,'PRIVATE KEY')) {
|
if(! strstr($my_prvkey,'PRIVATE KEY')) {
|
||||||
$message = t('Our site encryption key is apparently messed up.');
|
$message = t('Our site encryption key is apparently messed up.');
|
||||||
xml_status(3,$message);
|
xml_status(3,$message);
|
||||||
}
|
}
|
||||||
|
|
@ -575,7 +576,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
openssl_private_decrypt($source_url,$decrypted_source_url,$my_prvkey);
|
openssl_private_decrypt($source_url,$decrypted_source_url,$my_prvkey);
|
||||||
|
|
||||||
|
|
||||||
if (! strlen($decrypted_source_url)) {
|
if(! strlen($decrypted_source_url)) {
|
||||||
$message = t('Empty site URL was provided or URL could not be decrypted by us.');
|
$message = t('Empty site URL was provided or URL could not be decrypted by us.');
|
||||||
xml_status(3,$message);
|
xml_status(3,$message);
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
|
|
@ -585,18 +586,17 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
dbesc($decrypted_source_url),
|
dbesc($decrypted_source_url),
|
||||||
intval($local_uid)
|
intval($local_uid)
|
||||||
);
|
);
|
||||||
if (!dbm::is_result($ret)) {
|
if(! count($ret)) {
|
||||||
if (strstr($decrypted_source_url,'http:')) {
|
if(strstr($decrypted_source_url,'http:'))
|
||||||
$newurl = str_replace('http:','https:',$decrypted_source_url);
|
$newurl = str_replace('http:','https:',$decrypted_source_url);
|
||||||
} else {
|
else
|
||||||
$newurl = str_replace('https:','http:',$decrypted_source_url);
|
$newurl = str_replace('https:','http:',$decrypted_source_url);
|
||||||
}
|
|
||||||
|
|
||||||
$ret = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1",
|
$ret = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($newurl),
|
dbesc($newurl),
|
||||||
intval($local_uid)
|
intval($local_uid)
|
||||||
);
|
);
|
||||||
if (!dbm::is_result($ret)) {
|
if(! count($ret)) {
|
||||||
// this is either a bogus confirmation (?) or we deleted the original introduction.
|
// this is either a bogus confirmation (?) or we deleted the original introduction.
|
||||||
$message = t('Contact record was not found for you on our site.');
|
$message = t('Contact record was not found for you on our site.');
|
||||||
xml_status(3,$message);
|
xml_status(3,$message);
|
||||||
|
|
@ -611,7 +611,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
$foreign_pubkey = $ret[0]['site-pubkey'];
|
$foreign_pubkey = $ret[0]['site-pubkey'];
|
||||||
$dfrn_record = $ret[0]['id'];
|
$dfrn_record = $ret[0]['id'];
|
||||||
|
|
||||||
if (! $foreign_pubkey) {
|
if(! $foreign_pubkey) {
|
||||||
$message = sprintf( t('Site public key not available in contact record for URL %s.'), $newurl);
|
$message = sprintf( t('Site public key not available in contact record for URL %s.'), $newurl);
|
||||||
xml_status(3,$message);
|
xml_status(3,$message);
|
||||||
}
|
}
|
||||||
|
|
@ -619,7 +619,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
$decrypted_dfrn_id = "";
|
$decrypted_dfrn_id = "";
|
||||||
openssl_public_decrypt($dfrn_id,$decrypted_dfrn_id,$foreign_pubkey);
|
openssl_public_decrypt($dfrn_id,$decrypted_dfrn_id,$foreign_pubkey);
|
||||||
|
|
||||||
if (strlen($aes_key)) {
|
if(strlen($aes_key)) {
|
||||||
$decrypted_aes_key = "";
|
$decrypted_aes_key = "";
|
||||||
openssl_private_decrypt($aes_key,$decrypted_aes_key,$my_prvkey);
|
openssl_private_decrypt($aes_key,$decrypted_aes_key,$my_prvkey);
|
||||||
$dfrn_pubkey = openssl_decrypt($public_key,'AES-256-CBC',$decrypted_aes_key);
|
$dfrn_pubkey = openssl_decrypt($public_key,'AES-256-CBC',$decrypted_aes_key);
|
||||||
|
|
@ -650,7 +650,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
// It's possible that the other person also requested friendship.
|
// It's possible that the other person also requested friendship.
|
||||||
// If it is a duplex relationship, ditch the issued-id if one exists.
|
// If it is a duplex relationship, ditch the issued-id if one exists.
|
||||||
|
|
||||||
if ($duplex) {
|
if($duplex) {
|
||||||
$r = q("UPDATE `contact` SET `issued-id` = '' WHERE `id` = %d",
|
$r = q("UPDATE `contact` SET `issued-id` = '' WHERE `id` = %d",
|
||||||
intval($dfrn_record)
|
intval($dfrn_record)
|
||||||
);
|
);
|
||||||
|
|
@ -722,7 +722,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
$combined = $r[0];
|
$combined = $r[0];
|
||||||
|
|
||||||
if ((dbm::is_result($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
|
if((dbm::is_result($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
|
||||||
$mutual = ($new_relation == CONTACT_IS_FRIEND);
|
$mutual = ($new_relation == CONTACT_IS_FRIEND);
|
||||||
notification(array(
|
notification(array(
|
||||||
'type' => NOTIFY_CONFIRM,
|
'type' => NOTIFY_CONFIRM,
|
||||||
|
|
@ -742,12 +742,12 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
|
|
||||||
// Send a new friend post if we are allowed to...
|
// Send a new friend post if we are allowed to...
|
||||||
|
|
||||||
if ($page && intval(get_pconfig($local_uid,'system','post_joingroup'))) {
|
if($page && intval(get_pconfig($local_uid,'system','post_joingroup'))) {
|
||||||
$r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
|
$r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
|
||||||
intval($local_uid)
|
intval($local_uid)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ((dbm::is_result($r)) && ($r[0]['hide-friends'] == 0)) {
|
if((dbm::is_result($r)) && ($r[0]['hide-friends'] == 0)) {
|
||||||
|
|
||||||
require_once('include/items.php');
|
require_once('include/items.php');
|
||||||
|
|
||||||
|
|
@ -755,7 +755,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
intval($local_uid)
|
intval($local_uid)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($self)) {
|
if(count($self)) {
|
||||||
|
|
||||||
$arr = array();
|
$arr = array();
|
||||||
$arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $local_uid);
|
$arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $local_uid);
|
||||||
|
|
@ -792,9 +792,8 @@ function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||||
$arr['deny_gid'] = $user[0]['deny_gid'];
|
$arr['deny_gid'] = $user[0]['deny_gid'];
|
||||||
|
|
||||||
$i = item_store($arr);
|
$i = item_store($arr);
|
||||||
if ($i) {
|
if($i)
|
||||||
proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
|
proc_run(PRIORITY_HIGH, "include/notifier.php", "activity", $i);
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,12 +28,12 @@ function dfrn_notify_post(App $a) {
|
||||||
$prv = (($page == 2) ? 1 : 0);
|
$prv = (($page == 2) ? 1 : 0);
|
||||||
|
|
||||||
$writable = (-1);
|
$writable = (-1);
|
||||||
if ($dfrn_version >= 2.21) {
|
if($dfrn_version >= 2.21) {
|
||||||
$writable = (($perm === 'rw') ? 1 : 0);
|
$writable = (($perm === 'rw') ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
$direction = (-1);
|
$direction = (-1);
|
||||||
if (strpos($dfrn_id,':') == 1) {
|
if(strpos($dfrn_id,':') == 1) {
|
||||||
$direction = intval(substr($dfrn_id,0,1));
|
$direction = intval(substr($dfrn_id,0,1));
|
||||||
$dfrn_id = substr($dfrn_id,2);
|
$dfrn_id = substr($dfrn_id,2);
|
||||||
}
|
}
|
||||||
|
|
@ -100,14 +100,14 @@ function dfrn_notify_post(App $a) {
|
||||||
|
|
||||||
logger("Remote rino version: ".$rino_remote." for ".$importer["url"], LOGGER_DEBUG);
|
logger("Remote rino version: ".$rino_remote." for ".$importer["url"], LOGGER_DEBUG);
|
||||||
|
|
||||||
if ((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $forum) || ($importer['prv'] != $prv)) {
|
if((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $forum) || ($importer['prv'] != $prv)) {
|
||||||
q("UPDATE `contact` SET `writable` = %d, forum = %d, prv = %d WHERE `id` = %d",
|
q("UPDATE `contact` SET `writable` = %d, forum = %d, prv = %d WHERE `id` = %d",
|
||||||
intval(($writable == (-1)) ? $importer['writable'] : $writable),
|
intval(($writable == (-1)) ? $importer['writable'] : $writable),
|
||||||
intval($forum),
|
intval($forum),
|
||||||
intval($prv),
|
intval($prv),
|
||||||
intval($importer['id'])
|
intval($importer['id'])
|
||||||
);
|
);
|
||||||
if ($writable != (-1))
|
if($writable != (-1))
|
||||||
$importer['writable'] = $writable;
|
$importer['writable'] = $writable;
|
||||||
$importer['forum'] = $page;
|
$importer['forum'] = $page;
|
||||||
}
|
}
|
||||||
|
|
@ -120,7 +120,7 @@ function dfrn_notify_post(App $a) {
|
||||||
logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
|
logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
|
||||||
logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
|
logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
|
||||||
|
|
||||||
if ($dissolve == 1) {
|
if($dissolve == 1) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Relationship is dissolved permanently
|
* Relationship is dissolved permanently
|
||||||
|
|
@ -137,19 +137,17 @@ function dfrn_notify_post(App $a) {
|
||||||
// If we are setup as a soapbox we aren't accepting input from this person
|
// If we are setup as a soapbox we aren't accepting input from this person
|
||||||
// This behaviour is deactivated since it really doesn't make sense to even disallow comments
|
// This behaviour is deactivated since it really doesn't make sense to even disallow comments
|
||||||
// The check if someone is a friend or simply a follower is done in a later place so it needn't to be done here
|
// The check if someone is a friend or simply a follower is done in a later place so it needn't to be done here
|
||||||
//if ($importer['page-flags'] == PAGE_SOAPBOX)
|
//if($importer['page-flags'] == PAGE_SOAPBOX)
|
||||||
// xml_status(0);
|
// xml_status(0);
|
||||||
|
|
||||||
$rino = get_config('system','rino_encrypt');
|
$rino = get_config('system','rino_encrypt');
|
||||||
$rino = intval($rino);
|
$rino = intval($rino);
|
||||||
// use RINO1 if mcrypt isn't installed and RINO2 was selected
|
// use RINO1 if mcrypt isn't installed and RINO2 was selected
|
||||||
if ($rino == 2 and !function_exists('mcrypt_create_iv')) {
|
if ($rino==2 and !function_exists('mcrypt_create_iv')) $rino=1;
|
||||||
$rino=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger("Local rino version: ". $rino, LOGGER_DEBUG);
|
logger("Local rino version: ". $rino, LOGGER_DEBUG);
|
||||||
|
|
||||||
if (strlen($key)) {
|
if(strlen($key)) {
|
||||||
|
|
||||||
// if local rino is lower than remote rino, abort: should not happen!
|
// if local rino is lower than remote rino, abort: should not happen!
|
||||||
// but only for $remote_rino > 1, because old code did't send rino version
|
// but only for $remote_rino > 1, because old code did't send rino version
|
||||||
|
|
@ -162,8 +160,8 @@ function dfrn_notify_post(App $a) {
|
||||||
logger('rino: md5 raw key: ' . md5($rawkey));
|
logger('rino: md5 raw key: ' . md5($rawkey));
|
||||||
$final_key = '';
|
$final_key = '';
|
||||||
|
|
||||||
if ($dfrn_version >= 2.1) {
|
if($dfrn_version >= 2.1) {
|
||||||
if ((($importer['duplex']) && strlen($importer['cprvkey'])) || (! strlen($importer['cpubkey']))) {
|
if((($importer['duplex']) && strlen($importer['cprvkey'])) || (! strlen($importer['cpubkey']))) {
|
||||||
openssl_private_decrypt($rawkey,$final_key,$importer['cprvkey']);
|
openssl_private_decrypt($rawkey,$final_key,$importer['cprvkey']);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -171,7 +169,7 @@ function dfrn_notify_post(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ((($importer['duplex']) && strlen($importer['cpubkey'])) || (! strlen($importer['cprvkey']))) {
|
if((($importer['duplex']) && strlen($importer['cpubkey'])) || (! strlen($importer['cprvkey']))) {
|
||||||
openssl_public_decrypt($rawkey,$final_key,$importer['cpubkey']);
|
openssl_public_decrypt($rawkey,$final_key,$importer['cpubkey']);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -225,7 +223,7 @@ function dfrn_notify_post(App $a) {
|
||||||
|
|
||||||
function dfrn_notify_content(App $a) {
|
function dfrn_notify_content(App $a) {
|
||||||
|
|
||||||
if (x($_GET,'dfrn_id')) {
|
if(x($_GET,'dfrn_id')) {
|
||||||
|
|
||||||
// initial communication from external contact, $direction is their direction.
|
// initial communication from external contact, $direction is their direction.
|
||||||
// If this is a duplex communication, ours will be the opposite.
|
// If this is a duplex communication, ours will be the opposite.
|
||||||
|
|
@ -239,7 +237,7 @@ function dfrn_notify_content(App $a) {
|
||||||
logger('dfrn_notify: new notification dfrn_id=' . $dfrn_id);
|
logger('dfrn_notify: new notification dfrn_id=' . $dfrn_id);
|
||||||
|
|
||||||
$direction = (-1);
|
$direction = (-1);
|
||||||
if (strpos($dfrn_id,':') == 1) {
|
if(strpos($dfrn_id,':') == 1) {
|
||||||
$direction = intval(substr($dfrn_id,0,1));
|
$direction = intval(substr($dfrn_id,0,1));
|
||||||
$dfrn_id = substr($dfrn_id,2);
|
$dfrn_id = substr($dfrn_id,2);
|
||||||
}
|
}
|
||||||
|
|
@ -300,15 +298,16 @@ function dfrn_notify_content(App $a) {
|
||||||
$pub_key = trim($r[0]['pubkey']);
|
$pub_key = trim($r[0]['pubkey']);
|
||||||
$dplx = intval($r[0]['duplex']);
|
$dplx = intval($r[0]['duplex']);
|
||||||
|
|
||||||
if ((($dplx) && (strlen($prv_key))) || ((strlen($prv_key)) && (!(strlen($pub_key))))) {
|
if((($dplx) && (strlen($prv_key))) || ((strlen($prv_key)) && (!(strlen($pub_key))))) {
|
||||||
openssl_private_encrypt($hash,$challenge,$prv_key);
|
openssl_private_encrypt($hash,$challenge,$prv_key);
|
||||||
openssl_private_encrypt($id_str,$encrypted_id,$prv_key);
|
openssl_private_encrypt($id_str,$encrypted_id,$prv_key);
|
||||||
} elseif (strlen($pub_key)) {
|
}
|
||||||
|
elseif(strlen($pub_key)) {
|
||||||
openssl_public_encrypt($hash,$challenge,$pub_key);
|
openssl_public_encrypt($hash,$challenge,$pub_key);
|
||||||
openssl_public_encrypt($id_str,$encrypted_id,$pub_key);
|
openssl_public_encrypt($id_str,$encrypted_id,$pub_key);
|
||||||
} else {
|
|
||||||
$status = 1;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
$status = 1;
|
||||||
|
|
||||||
$challenge = bin2hex($challenge);
|
$challenge = bin2hex($challenge);
|
||||||
$encrypted_id = bin2hex($encrypted_id);
|
$encrypted_id = bin2hex($encrypted_id);
|
||||||
|
|
@ -317,9 +316,7 @@ function dfrn_notify_content(App $a) {
|
||||||
$rino = get_config('system','rino_encrypt');
|
$rino = get_config('system','rino_encrypt');
|
||||||
$rino = intval($rino);
|
$rino = intval($rino);
|
||||||
// use RINO1 if mcrypt isn't installed and RINO2 was selected
|
// use RINO1 if mcrypt isn't installed and RINO2 was selected
|
||||||
if ($rino == 2 and !function_exists('mcrypt_create_iv')) {
|
if ($rino==2 and !function_exists('mcrypt_create_iv')) $rino=1;
|
||||||
$rino=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger("Local rino version: ". $rino, LOGGER_DEBUG);
|
logger("Local rino version: ". $rino, LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
@ -327,9 +324,10 @@ function dfrn_notify_content(App $a) {
|
||||||
// if requested rino is higher than enabled local rino, reply with local rino
|
// if requested rino is higher than enabled local rino, reply with local rino
|
||||||
if ($rino_remote < $rino) $rino = $rino_remote;
|
if ($rino_remote < $rino) $rino = $rino_remote;
|
||||||
|
|
||||||
if ((($r[0]['rel']) && ($r[0]['rel'] != CONTACT_IS_SHARING)) || ($r[0]['page-flags'] == PAGE_COMMUNITY)) {
|
if((($r[0]['rel']) && ($r[0]['rel'] != CONTACT_IS_SHARING)) || ($r[0]['page-flags'] == PAGE_COMMUNITY)) {
|
||||||
$perm = 'rw';
|
$perm = 'rw';
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$perm = 'r';
|
$perm = 'r';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,20 +20,20 @@ function dfrn_poll_init(App $a) {
|
||||||
$direction = (-1);
|
$direction = (-1);
|
||||||
|
|
||||||
|
|
||||||
if (strpos($dfrn_id,':') == 1) {
|
if(strpos($dfrn_id,':') == 1) {
|
||||||
$direction = intval(substr($dfrn_id,0,1));
|
$direction = intval(substr($dfrn_id,0,1));
|
||||||
$dfrn_id = substr($dfrn_id,2);
|
$dfrn_id = substr($dfrn_id,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
$hidewall = false;
|
$hidewall = false;
|
||||||
|
|
||||||
if (($dfrn_id === '') && (! x($_POST,'dfrn_id'))) {
|
if(($dfrn_id === '') && (! x($_POST,'dfrn_id'))) {
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
http_status_exit(403);
|
http_status_exit(403);
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = '';
|
$user = '';
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
$r = q("SELECT `hidewall`,`nickname` FROM `user` WHERE `user`.`nickname` = '%s' LIMIT 1",
|
$r = q("SELECT `hidewall`,`nickname` FROM `user` WHERE `user`.`nickname` = '%s' LIMIT 1",
|
||||||
dbesc($a->argv[1])
|
dbesc($a->argv[1])
|
||||||
);
|
);
|
||||||
|
|
@ -51,7 +51,7 @@ function dfrn_poll_init(App $a) {
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($type === 'profile') && (! strlen($sec))) {
|
if(($type === 'profile') && (! strlen($sec))) {
|
||||||
|
|
||||||
$sql_extra = '';
|
$sql_extra = '';
|
||||||
switch($direction) {
|
switch($direction) {
|
||||||
|
|
@ -85,13 +85,13 @@ function dfrn_poll_init(App $a) {
|
||||||
|
|
||||||
logger("dfrn_poll: old profile returns " . $s, LOGGER_DATA);
|
logger("dfrn_poll: old profile returns " . $s, LOGGER_DATA);
|
||||||
|
|
||||||
if (strlen($s)) {
|
if(strlen($s)) {
|
||||||
|
|
||||||
$xml = parse_xml_string($s);
|
$xml = parse_xml_string($s);
|
||||||
|
|
||||||
if ((int) $xml->status == 1) {
|
if((int) $xml->status == 1) {
|
||||||
$_SESSION['authenticated'] = 1;
|
$_SESSION['authenticated'] = 1;
|
||||||
if (! x($_SESSION,'remote'))
|
if(! x($_SESSION,'remote'))
|
||||||
$_SESSION['remote'] = array();
|
$_SESSION['remote'] = array();
|
||||||
|
|
||||||
$_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']);
|
$_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']);
|
||||||
|
|
@ -100,7 +100,7 @@ function dfrn_poll_init(App $a) {
|
||||||
$_SESSION['visitor_home'] = $r[0]['url'];
|
$_SESSION['visitor_home'] = $r[0]['url'];
|
||||||
$_SESSION['visitor_handle'] = $r[0]['addr'];
|
$_SESSION['visitor_handle'] = $r[0]['addr'];
|
||||||
$_SESSION['visitor_visiting'] = $r[0]['uid'];
|
$_SESSION['visitor_visiting'] = $r[0]['uid'];
|
||||||
if (!$quiet)
|
if(!$quiet)
|
||||||
info( sprintf(t('%1$s welcomes %2$s'), $r[0]['username'] , $r[0]['name']) . EOL);
|
info( sprintf(t('%1$s welcomes %2$s'), $r[0]['username'] , $r[0]['name']) . EOL);
|
||||||
// Visitors get 1 day session.
|
// Visitors get 1 day session.
|
||||||
$session_id = session_id();
|
$session_id = session_id();
|
||||||
|
|
@ -118,9 +118,9 @@ function dfrn_poll_init(App $a) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($type === 'profile-check' && $dfrn_version < 2.2 ) {
|
if($type === 'profile-check' && $dfrn_version < 2.2 ) {
|
||||||
|
|
||||||
if ((strlen($challenge)) && (strlen($sec))) {
|
if((strlen($challenge)) && (strlen($sec))) {
|
||||||
|
|
||||||
q("DELETE FROM `profile_check` WHERE `expire` < " . intval(time()));
|
q("DELETE FROM `profile_check` WHERE `expire` < " . intval(time()));
|
||||||
$r = q("SELECT * FROM `profile_check` WHERE `sec` = '%s' ORDER BY `expire` DESC LIMIT 1",
|
$r = q("SELECT * FROM `profile_check` WHERE `sec` = '%s' ORDER BY `expire` DESC LIMIT 1",
|
||||||
|
|
@ -131,7 +131,7 @@ function dfrn_poll_init(App $a) {
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
$orig_id = $r[0]['dfrn_id'];
|
$orig_id = $r[0]['dfrn_id'];
|
||||||
if (strpos($orig_id, ':'))
|
if(strpos($orig_id, ':'))
|
||||||
$orig_id = substr($orig_id,2);
|
$orig_id = substr($orig_id,2);
|
||||||
|
|
||||||
$c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
|
$c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
|
||||||
|
|
@ -147,7 +147,7 @@ function dfrn_poll_init(App $a) {
|
||||||
|
|
||||||
$final_dfrn_id = '';
|
$final_dfrn_id = '';
|
||||||
|
|
||||||
if (($contact['duplex']) && strlen($contact['prvkey'])) {
|
if(($contact['duplex']) && strlen($contact['prvkey'])) {
|
||||||
openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
|
openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
|
||||||
openssl_private_decrypt($challenge,$decoded_challenge,$contact['prvkey']);
|
openssl_private_decrypt($challenge,$decoded_challenge,$contact['prvkey']);
|
||||||
}
|
}
|
||||||
|
|
@ -158,10 +158,10 @@ function dfrn_poll_init(App $a) {
|
||||||
|
|
||||||
$final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
|
$final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
|
||||||
|
|
||||||
if (strpos($final_dfrn_id,':') == 1)
|
if(strpos($final_dfrn_id,':') == 1)
|
||||||
$final_dfrn_id = substr($final_dfrn_id,2);
|
$final_dfrn_id = substr($final_dfrn_id,2);
|
||||||
|
|
||||||
if ($final_dfrn_id != $orig_id) {
|
if($final_dfrn_id != $orig_id) {
|
||||||
logger('profile_check: ' . $final_dfrn_id . ' != ' . $orig_id, LOGGER_DEBUG);
|
logger('profile_check: ' . $final_dfrn_id . ' != ' . $orig_id, LOGGER_DEBUG);
|
||||||
// did not decode properly - cannot trust this site
|
// did not decode properly - cannot trust this site
|
||||||
xml_status(3, 'Bad decryption');
|
xml_status(3, 'Bad decryption');
|
||||||
|
|
@ -213,9 +213,9 @@ function dfrn_poll_post(App $a) {
|
||||||
$dfrn_version = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
|
$dfrn_version = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
|
||||||
$perm = ((x($_POST,'perm')) ? $_POST['perm'] : 'r');
|
$perm = ((x($_POST,'perm')) ? $_POST['perm'] : 'r');
|
||||||
|
|
||||||
if ($ptype === 'profile-check') {
|
if($ptype === 'profile-check') {
|
||||||
|
|
||||||
if ((strlen($challenge)) && (strlen($sec))) {
|
if((strlen($challenge)) && (strlen($sec))) {
|
||||||
|
|
||||||
logger('dfrn_poll: POST: profile-check');
|
logger('dfrn_poll: POST: profile-check');
|
||||||
|
|
||||||
|
|
@ -228,7 +228,7 @@ function dfrn_poll_post(App $a) {
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
$orig_id = $r[0]['dfrn_id'];
|
$orig_id = $r[0]['dfrn_id'];
|
||||||
if (strpos($orig_id, ':'))
|
if(strpos($orig_id, ':'))
|
||||||
$orig_id = substr($orig_id,2);
|
$orig_id = substr($orig_id,2);
|
||||||
|
|
||||||
$c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
|
$c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
|
||||||
|
|
@ -244,7 +244,7 @@ function dfrn_poll_post(App $a) {
|
||||||
|
|
||||||
$final_dfrn_id = '';
|
$final_dfrn_id = '';
|
||||||
|
|
||||||
if (($contact['duplex']) && strlen($contact['prvkey'])) {
|
if(($contact['duplex']) && strlen($contact['prvkey'])) {
|
||||||
openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
|
openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
|
||||||
openssl_private_decrypt($challenge,$decoded_challenge,$contact['prvkey']);
|
openssl_private_decrypt($challenge,$decoded_challenge,$contact['prvkey']);
|
||||||
}
|
}
|
||||||
|
|
@ -255,10 +255,10 @@ function dfrn_poll_post(App $a) {
|
||||||
|
|
||||||
$final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
|
$final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
|
||||||
|
|
||||||
if (strpos($final_dfrn_id,':') == 1)
|
if(strpos($final_dfrn_id,':') == 1)
|
||||||
$final_dfrn_id = substr($final_dfrn_id,2);
|
$final_dfrn_id = substr($final_dfrn_id,2);
|
||||||
|
|
||||||
if ($final_dfrn_id != $orig_id) {
|
if($final_dfrn_id != $orig_id) {
|
||||||
logger('profile_check: ' . $final_dfrn_id . ' != ' . $orig_id, LOGGER_DEBUG);
|
logger('profile_check: ' . $final_dfrn_id . ' != ' . $orig_id, LOGGER_DEBUG);
|
||||||
// did not decode properly - cannot trust this site
|
// did not decode properly - cannot trust this site
|
||||||
xml_status(3, 'Bad decryption');
|
xml_status(3, 'Bad decryption');
|
||||||
|
|
@ -273,7 +273,7 @@ function dfrn_poll_post(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$direction = (-1);
|
$direction = (-1);
|
||||||
if (strpos($dfrn_id,':') == 1) {
|
if(strpos($dfrn_id,':') == 1) {
|
||||||
$direction = intval(substr($dfrn_id,0,1));
|
$direction = intval(substr($dfrn_id,0,1));
|
||||||
$dfrn_id = substr($dfrn_id,2);
|
$dfrn_id = substr($dfrn_id,2);
|
||||||
}
|
}
|
||||||
|
|
@ -329,7 +329,7 @@ function dfrn_poll_post(App $a) {
|
||||||
$contact_id = $r[0]['id'];
|
$contact_id = $r[0]['id'];
|
||||||
|
|
||||||
|
|
||||||
if ($type === 'reputation' && strlen($url)) {
|
if($type === 'reputation' && strlen($url)) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($url),
|
dbesc($url),
|
||||||
intval($owner_uid)
|
intval($owner_uid)
|
||||||
|
|
@ -341,7 +341,7 @@ function dfrn_poll_post(App $a) {
|
||||||
$reputation = $r[0]['rating'];
|
$reputation = $r[0]['rating'];
|
||||||
$text = $r[0]['reason'];
|
$text = $r[0]['reason'];
|
||||||
|
|
||||||
if ($r[0]['id'] == $contact_id) { // inquiring about own reputation not allowed
|
if($r[0]['id'] == $contact_id) { // inquiring about own reputation not allowed
|
||||||
$reputation = 0;
|
$reputation = 0;
|
||||||
$text = '';
|
$text = '';
|
||||||
}
|
}
|
||||||
|
|
@ -361,13 +361,13 @@ function dfrn_poll_post(App $a) {
|
||||||
|
|
||||||
// Update the writable flag if it changed
|
// Update the writable flag if it changed
|
||||||
logger('dfrn_poll: post request feed: ' . print_r($_POST,true),LOGGER_DATA);
|
logger('dfrn_poll: post request feed: ' . print_r($_POST,true),LOGGER_DATA);
|
||||||
if ($dfrn_version >= 2.21) {
|
if($dfrn_version >= 2.21) {
|
||||||
if ($perm === 'rw')
|
if($perm === 'rw')
|
||||||
$writable = 1;
|
$writable = 1;
|
||||||
else
|
else
|
||||||
$writable = 0;
|
$writable = 0;
|
||||||
|
|
||||||
if ($writable != $contact['writable']) {
|
if($writable != $contact['writable']) {
|
||||||
q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d",
|
q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d",
|
||||||
intval($writable),
|
intval($writable),
|
||||||
intval($contact_id)
|
intval($contact_id)
|
||||||
|
|
@ -395,13 +395,13 @@ function dfrn_poll_content(App $a) {
|
||||||
$quiet = ((x($_GET,'quiet')) ? true : false);
|
$quiet = ((x($_GET,'quiet')) ? true : false);
|
||||||
|
|
||||||
$direction = (-1);
|
$direction = (-1);
|
||||||
if (strpos($dfrn_id,':') == 1) {
|
if(strpos($dfrn_id,':') == 1) {
|
||||||
$direction = intval(substr($dfrn_id,0,1));
|
$direction = intval(substr($dfrn_id,0,1));
|
||||||
$dfrn_id = substr($dfrn_id,2);
|
$dfrn_id = substr($dfrn_id,2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($dfrn_id != '') {
|
if($dfrn_id != '') {
|
||||||
// initial communication from external contact
|
// initial communication from external contact
|
||||||
$hash = random_string();
|
$hash = random_string();
|
||||||
|
|
||||||
|
|
@ -409,7 +409,7 @@ function dfrn_poll_content(App $a) {
|
||||||
|
|
||||||
$r = q("DELETE FROM `challenge` WHERE `expire` < " . intval(time()));
|
$r = q("DELETE FROM `challenge` WHERE `expire` < " . intval(time()));
|
||||||
|
|
||||||
if ($type !== 'profile') {
|
if($type !== 'profile') {
|
||||||
$r = q("INSERT INTO `challenge` ( `challenge`, `dfrn-id`, `expire` , `type`, `last_update` )
|
$r = q("INSERT INTO `challenge` ( `challenge`, `dfrn-id`, `expire` , `type`, `last_update` )
|
||||||
VALUES( '%s', '%s', '%s', '%s', '%s' ) ",
|
VALUES( '%s', '%s', '%s', '%s', '%s' ) ",
|
||||||
dbesc($hash),
|
dbesc($hash),
|
||||||
|
|
@ -422,7 +422,7 @@ function dfrn_poll_content(App $a) {
|
||||||
$sql_extra = '';
|
$sql_extra = '';
|
||||||
switch($direction) {
|
switch($direction) {
|
||||||
case (-1):
|
case (-1):
|
||||||
if ($type === 'profile')
|
if($type === 'profile')
|
||||||
$sql_extra = sprintf(" AND ( `dfrn-id` = '%s' OR `issued-id` = '%s' ) ", dbesc($dfrn_id),dbesc($dfrn_id));
|
$sql_extra = sprintf(" AND ( `dfrn-id` = '%s' OR `issued-id` = '%s' ) ", dbesc($dfrn_id),dbesc($dfrn_id));
|
||||||
else
|
else
|
||||||
$sql_extra = sprintf(" AND `issued-id` = '%s' ", dbesc($dfrn_id));
|
$sql_extra = sprintf(" AND `issued-id` = '%s' ", dbesc($dfrn_id));
|
||||||
|
|
@ -456,7 +456,7 @@ function dfrn_poll_content(App $a) {
|
||||||
$encrypted_id = '';
|
$encrypted_id = '';
|
||||||
$id_str = $my_id . '.' . mt_rand(1000,9999);
|
$id_str = $my_id . '.' . mt_rand(1000,9999);
|
||||||
|
|
||||||
if (($r[0]['duplex'] && strlen($r[0]['pubkey'])) || (! strlen($r[0]['prvkey']))) {
|
if(($r[0]['duplex'] && strlen($r[0]['pubkey'])) || (! strlen($r[0]['prvkey']))) {
|
||||||
openssl_public_encrypt($hash,$challenge,$r[0]['pubkey']);
|
openssl_public_encrypt($hash,$challenge,$r[0]['pubkey']);
|
||||||
openssl_public_encrypt($id_str,$encrypted_id,$r[0]['pubkey']);
|
openssl_public_encrypt($id_str,$encrypted_id,$r[0]['pubkey']);
|
||||||
}
|
}
|
||||||
|
|
@ -474,11 +474,11 @@ function dfrn_poll_content(App $a) {
|
||||||
$encrypted_id = '';
|
$encrypted_id = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($type === 'profile') && (strlen($sec))) {
|
if(($type === 'profile') && (strlen($sec))) {
|
||||||
|
|
||||||
// URL reply
|
// URL reply
|
||||||
|
|
||||||
if ($dfrn_version < 2.2) {
|
if($dfrn_version < 2.2) {
|
||||||
$s = fetch_url($r[0]['poll']
|
$s = fetch_url($r[0]['poll']
|
||||||
. '?dfrn_id=' . $encrypted_id
|
. '?dfrn_id=' . $encrypted_id
|
||||||
. '&type=profile-check'
|
. '&type=profile-check'
|
||||||
|
|
@ -517,7 +517,7 @@ function dfrn_poll_content(App $a) {
|
||||||
|
|
||||||
logger("dfrn_poll: sec profile: " . $s, LOGGER_DATA);
|
logger("dfrn_poll: sec profile: " . $s, LOGGER_DATA);
|
||||||
|
|
||||||
if (strlen($s) && strstr($s,'<?xml')) {
|
if(strlen($s) && strstr($s,'<?xml')) {
|
||||||
|
|
||||||
$xml = parse_xml_string($s);
|
$xml = parse_xml_string($s);
|
||||||
|
|
||||||
|
|
@ -527,15 +527,15 @@ function dfrn_poll_content(App $a) {
|
||||||
logger('dfrn_poll: secure profile: sec: ' . $xml->sec . ' expecting ' . $sec);
|
logger('dfrn_poll: secure profile: sec: ' . $xml->sec . ' expecting ' . $sec);
|
||||||
|
|
||||||
|
|
||||||
if (((int) $xml->status == 0) && ($xml->challenge == $hash) && ($xml->sec == $sec)) {
|
if(((int) $xml->status == 0) && ($xml->challenge == $hash) && ($xml->sec == $sec)) {
|
||||||
$_SESSION['authenticated'] = 1;
|
$_SESSION['authenticated'] = 1;
|
||||||
if (! x($_SESSION,'remote'))
|
if(! x($_SESSION,'remote'))
|
||||||
$_SESSION['remote'] = array();
|
$_SESSION['remote'] = array();
|
||||||
$_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']);
|
$_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']);
|
||||||
$_SESSION['visitor_id'] = $r[0]['id'];
|
$_SESSION['visitor_id'] = $r[0]['id'];
|
||||||
$_SESSION['visitor_home'] = $r[0]['url'];
|
$_SESSION['visitor_home'] = $r[0]['url'];
|
||||||
$_SESSION['visitor_visiting'] = $r[0]['uid'];
|
$_SESSION['visitor_visiting'] = $r[0]['uid'];
|
||||||
if (!$quiet)
|
if(!$quiet)
|
||||||
info( sprintf(t('%1$s welcomes %2$s'), $r[0]['username'] , $r[0]['name']) . EOL);
|
info( sprintf(t('%1$s welcomes %2$s'), $r[0]['username'] , $r[0]['name']) . EOL);
|
||||||
// Visitors get 1 day session.
|
// Visitors get 1 day session.
|
||||||
$session_id = session_id();
|
$session_id = session_id();
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ require_once('include/group.php');
|
||||||
|
|
||||||
function dfrn_request_init(App $a) {
|
function dfrn_request_init(App $a) {
|
||||||
|
|
||||||
if ($a->argc > 1)
|
if($a->argc > 1)
|
||||||
$which = $a->argv[1];
|
$which = $a->argv[1];
|
||||||
|
|
||||||
profile_load($a,$which);
|
profile_load($a,$which);
|
||||||
|
|
@ -44,13 +44,13 @@ function dfrn_request_init(App $a) {
|
||||||
*/
|
*/
|
||||||
function dfrn_request_post(App $a) {
|
function dfrn_request_post(App $a) {
|
||||||
|
|
||||||
if (($a->argc != 2) || (! count($a->profile))) {
|
if(($a->argc != 2) || (! count($a->profile))) {
|
||||||
logger('Wrong count of argc or profiles: argc=' . $a->argc . ',profile()=' . count($a->profile));
|
logger('Wrong count of argc or profiles: argc=' . $a->argc . ',profile()=' . count($a->profile));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (x($_POST, 'cancel')) {
|
if(x($_POST, 'cancel')) {
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -63,13 +63,13 @@ function dfrn_request_post(App $a) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((x($_POST,'localconfirm')) && ($_POST['localconfirm'] == 1)) {
|
if((x($_POST,'localconfirm')) && ($_POST['localconfirm'] == 1)) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ensure this is a valid request
|
* Ensure this is a valid request
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (local_user() && ($a->user['nickname'] == $a->argv[1]) && (x($_POST,'dfrn_url'))) {
|
if(local_user() && ($a->user['nickname'] == $a->argv[1]) && (x($_POST,'dfrn_url'))) {
|
||||||
|
|
||||||
|
|
||||||
$dfrn_url = notags(trim($_POST['dfrn_url']));
|
$dfrn_url = notags(trim($_POST['dfrn_url']));
|
||||||
|
|
@ -80,7 +80,7 @@ function dfrn_request_post(App $a) {
|
||||||
$blocked = 1;
|
$blocked = 1;
|
||||||
$pending = 1;
|
$pending = 1;
|
||||||
|
|
||||||
if (x($dfrn_url)) {
|
if(x($dfrn_url)) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lookup the contact based on their URL (which is the only unique thing we have at the moment)
|
* Lookup the contact based on their URL (which is the only unique thing we have at the moment)
|
||||||
|
|
@ -92,7 +92,7 @@ function dfrn_request_post(App $a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
if (strlen($r[0]['dfrn-id'])) {
|
if(strlen($r[0]['dfrn-id'])) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We don't need to be here. It has already happened.
|
* We don't need to be here. It has already happened.
|
||||||
|
|
@ -105,7 +105,7 @@ function dfrn_request_post(App $a) {
|
||||||
$contact_record = $r[0];
|
$contact_record = $r[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($contact_record)) {
|
if(is_array($contact_record)) {
|
||||||
$r = q("UPDATE `contact` SET `ret-aes` = %d, hidden = %d WHERE `id` = %d",
|
$r = q("UPDATE `contact` SET `ret-aes` = %d, hidden = %d WHERE `id` = %d",
|
||||||
intval($aes_allow),
|
intval($aes_allow),
|
||||||
intval($hidden),
|
intval($hidden),
|
||||||
|
|
@ -187,7 +187,7 @@ function dfrn_request_post(App $a) {
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$def_gid = get_default_group(local_user(), $r[0]["network"]);
|
$def_gid = get_default_group(local_user(), $r[0]["network"]);
|
||||||
if (intval($def_gid))
|
if(intval($def_gid))
|
||||||
group_add_member(local_user(), '', $r[0]['id'], $def_gid);
|
group_add_member(local_user(), '', $r[0]['id'], $def_gid);
|
||||||
|
|
||||||
if (isset($photo))
|
if (isset($photo))
|
||||||
|
|
@ -249,7 +249,7 @@ function dfrn_request_post(App $a) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! (is_array($a->profile) && count($a->profile))) {
|
if(! (is_array($a->profile) && count($a->profile))) {
|
||||||
notice( t('Profile unavailable.') . EOL);
|
notice( t('Profile unavailable.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -265,13 +265,13 @@ function dfrn_request_post(App $a) {
|
||||||
$pending = 1;
|
$pending = 1;
|
||||||
|
|
||||||
|
|
||||||
if ( x($_POST,'dfrn_url')) {
|
if( x($_POST,'dfrn_url')) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Block friend request spam
|
* Block friend request spam
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($maxreq) {
|
if($maxreq) {
|
||||||
$r = q("SELECT * FROM `intro` WHERE `datetime` > '%s' AND `uid` = %d",
|
$r = q("SELECT * FROM `intro` WHERE `datetime` > '%s' AND `uid` = %d",
|
||||||
dbesc(datetime_convert('UTC','UTC','now - 24 hours')),
|
dbesc(datetime_convert('UTC','UTC','now - 24 hours')),
|
||||||
intval($uid)
|
intval($uid)
|
||||||
|
|
@ -300,7 +300,7 @@ function dfrn_request_post(App $a) {
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if (! $rr['rel']) {
|
if(! $rr['rel']) {
|
||||||
q("DELETE FROM `contact` WHERE `id` = %d AND NOT `self`",
|
q("DELETE FROM `contact` WHERE `id` = %d AND NOT `self`",
|
||||||
intval($rr['cid'])
|
intval($rr['cid'])
|
||||||
);
|
);
|
||||||
|
|
@ -325,7 +325,7 @@ function dfrn_request_post(App $a) {
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if (! $rr['rel']) {
|
if(! $rr['rel']) {
|
||||||
q("DELETE FROM `contact` WHERE `id` = %d AND NOT `self`",
|
q("DELETE FROM `contact` WHERE `id` = %d AND NOT `self`",
|
||||||
intval($rr['cid'])
|
intval($rr['cid'])
|
||||||
);
|
);
|
||||||
|
|
@ -340,16 +340,16 @@ function dfrn_request_post(App $a) {
|
||||||
$real_name = (x($_POST,'realname') ? notags(trim($_POST['realname'])) : '');
|
$real_name = (x($_POST,'realname') ? notags(trim($_POST['realname'])) : '');
|
||||||
|
|
||||||
$url = trim($_POST['dfrn_url']);
|
$url = trim($_POST['dfrn_url']);
|
||||||
if (! strlen($url)) {
|
if(! strlen($url)) {
|
||||||
notice( t("Invalid locator") . EOL );
|
notice( t("Invalid locator") . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$hcard = '';
|
$hcard = '';
|
||||||
|
|
||||||
if ($email_follow) {
|
if($email_follow) {
|
||||||
|
|
||||||
if (! validate_email($url)) {
|
if(! validate_email($url)) {
|
||||||
notice( t('Invalid email address.') . EOL);
|
notice( t('Invalid email address.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -365,10 +365,10 @@ function dfrn_request_post(App $a) {
|
||||||
$rel = CONTACT_IS_FOLLOWER;
|
$rel = CONTACT_IS_FOLLOWER;
|
||||||
|
|
||||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||||
if (get_config('system','dfrn_only'))
|
if(get_config('system','dfrn_only'))
|
||||||
$mail_disabled = 1;
|
$mail_disabled = 1;
|
||||||
|
|
||||||
if (! $mail_disabled) {
|
if(! $mail_disabled) {
|
||||||
$failed = false;
|
$failed = false;
|
||||||
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
|
||||||
intval($uid)
|
intval($uid)
|
||||||
|
|
@ -470,18 +470,18 @@ function dfrn_request_post(App $a) {
|
||||||
|
|
||||||
logger('dfrn_request: url: ' . $url . ',network=' . $network, LOGGER_DEBUG);
|
logger('dfrn_request: url: ' . $url . ',network=' . $network, LOGGER_DEBUG);
|
||||||
|
|
||||||
if ($network === NETWORK_DFRN) {
|
if($network === NETWORK_DFRN) {
|
||||||
$ret = q("SELECT * FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `self` = 0 LIMIT 1",
|
$ret = q("SELECT * FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `self` = 0 LIMIT 1",
|
||||||
intval($uid),
|
intval($uid),
|
||||||
dbesc($url)
|
dbesc($url)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($ret)) {
|
if (dbm::is_result($ret)) {
|
||||||
if (strlen($ret[0]['issued-id'])) {
|
if(strlen($ret[0]['issued-id'])) {
|
||||||
notice( t('You have already introduced yourself here.') . EOL );
|
notice( t('You have already introduced yourself here.') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
elseif ($ret[0]['rel'] == CONTACT_IS_FRIEND) {
|
elseif($ret[0]['rel'] == CONTACT_IS_FRIEND) {
|
||||||
notice( sprintf( t('Apparently you are already friends with %s.'), $a->profile['name']) . EOL);
|
notice( sprintf( t('Apparently you are already friends with %s.'), $a->profile['name']) . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -493,7 +493,7 @@ function dfrn_request_post(App $a) {
|
||||||
|
|
||||||
$issued_id = random_string();
|
$issued_id = random_string();
|
||||||
|
|
||||||
if (is_array($contact_record)) {
|
if(is_array($contact_record)) {
|
||||||
// There is a contact record but no issued-id, so this
|
// There is a contact record but no issued-id, so this
|
||||||
// is a reciprocal introduction from a known contact
|
// is a reciprocal introduction from a known contact
|
||||||
$r = q("UPDATE `contact` SET `issued-id` = '%s' WHERE `id` = %d",
|
$r = q("UPDATE `contact` SET `issued-id` = '%s' WHERE `id` = %d",
|
||||||
|
|
@ -718,7 +718,7 @@ function dfrn_request_content(App $a) {
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
}
|
}
|
||||||
elseif ((x($_GET,'confirm_key')) && strlen($_GET['confirm_key'])) {
|
elseif((x($_GET,'confirm_key')) && strlen($_GET['confirm_key'])) {
|
||||||
|
|
||||||
// we are the requestee and it is now safe to send our user their introduction,
|
// we are the requestee and it is now safe to send our user their introduction,
|
||||||
// We could just unblock it, but first we have to jump through a few hoops to
|
// We could just unblock it, but first we have to jump through a few hoops to
|
||||||
|
|
@ -738,10 +738,10 @@ function dfrn_request_content(App $a) {
|
||||||
$auto_confirm = false;
|
$auto_confirm = false;
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
if (($r[0]['page-flags'] != PAGE_NORMAL) && ($r[0]['page-flags'] != PAGE_PRVGROUP))
|
if(($r[0]['page-flags'] != PAGE_NORMAL) && ($r[0]['page-flags'] != PAGE_PRVGROUP))
|
||||||
$auto_confirm = true;
|
$auto_confirm = true;
|
||||||
|
|
||||||
if (! $auto_confirm) {
|
if(! $auto_confirm) {
|
||||||
|
|
||||||
notification(array(
|
notification(array(
|
||||||
'type' => NOTIFY_INTRO,
|
'type' => NOTIFY_INTRO,
|
||||||
|
|
@ -759,7 +759,7 @@ function dfrn_request_content(App $a) {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($auto_confirm) {
|
if($auto_confirm) {
|
||||||
require_once('mod/dfrn_confirm.php');
|
require_once('mod/dfrn_confirm.php');
|
||||||
$handsfree = array(
|
$handsfree = array(
|
||||||
'uid' => $r[0]['uid'],
|
'uid' => $r[0]['uid'],
|
||||||
|
|
@ -774,7 +774,7 @@ function dfrn_request_content(App $a) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $auto_confirm) {
|
if(! $auto_confirm) {
|
||||||
|
|
||||||
// If we are auto_confirming, this record will have already been nuked
|
// If we are auto_confirming, this record will have already been nuked
|
||||||
// in dfrn_confirm_post()
|
// in dfrn_confirm_post()
|
||||||
|
|
@ -794,8 +794,8 @@ function dfrn_request_content(App $a) {
|
||||||
* Normal web request. Display our user's introduction form.
|
* Normal web request. Display our user's introduction form.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
if (! get_config('system','local_block')) {
|
if(! get_config('system','local_block')) {
|
||||||
notice( t('Public access denied.') . EOL);
|
notice( t('Public access denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
function directory_init(App $a) {
|
function directory_init(App $a) {
|
||||||
$a->set_pager_itemspage(60);
|
$a->set_pager_itemspage(60);
|
||||||
|
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
require_once('include/contact_widgets.php');
|
require_once('include/contact_widgets.php');
|
||||||
|
|
||||||
$a->page['aside'] .= findpeople_widget();
|
$a->page['aside'] .= findpeople_widget();
|
||||||
|
|
@ -21,7 +21,7 @@ function directory_init(App $a) {
|
||||||
|
|
||||||
|
|
||||||
function directory_post(App $a) {
|
function directory_post(App $a) {
|
||||||
if (x($_POST,'search'))
|
if(x($_POST,'search'))
|
||||||
$a->data['search'] = $_POST['search'];
|
$a->data['search'] = $_POST['search'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -32,7 +32,7 @@ function directory_content(App $a) {
|
||||||
|
|
||||||
require_once("mod/proxy.php");
|
require_once("mod/proxy.php");
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user()) ||
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user()) ||
|
||||||
(get_config('system','block_local_dir')) && (! local_user()) && (! remote_user())) {
|
(get_config('system','block_local_dir')) && (! local_user()) && (! remote_user())) {
|
||||||
notice( t('Public access denied.') . EOL);
|
notice( t('Public access denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
|
|
@ -41,18 +41,18 @@ function directory_content(App $a) {
|
||||||
$o = '';
|
$o = '';
|
||||||
nav_set_selected('directory');
|
nav_set_selected('directory');
|
||||||
|
|
||||||
if (x($a->data,'search'))
|
if(x($a->data,'search'))
|
||||||
$search = notags(trim($a->data['search']));
|
$search = notags(trim($a->data['search']));
|
||||||
else
|
else
|
||||||
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||||
|
|
||||||
$gdirpath = '';
|
$gdirpath = '';
|
||||||
$dirurl = get_config('system','directory');
|
$dirurl = get_config('system','directory');
|
||||||
if (strlen($dirurl)) {
|
if(strlen($dirurl)) {
|
||||||
$gdirpath = zrl($dirurl,true);
|
$gdirpath = zrl($dirurl,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($search) {
|
if($search) {
|
||||||
$search = dbesc($search);
|
$search = dbesc($search);
|
||||||
|
|
||||||
$sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR
|
$sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR
|
||||||
|
|
@ -110,28 +110,28 @@ function directory_content(App $a) {
|
||||||
$pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '<br />' : '');
|
$pdesc = (($rr['pdesc']) ? $rr['pdesc'] . '<br />' : '');
|
||||||
|
|
||||||
$details = '';
|
$details = '';
|
||||||
if (strlen($rr['locality']))
|
if(strlen($rr['locality']))
|
||||||
$details .= $rr['locality'];
|
$details .= $rr['locality'];
|
||||||
if (strlen($rr['region'])) {
|
if(strlen($rr['region'])) {
|
||||||
if (strlen($rr['locality']))
|
if(strlen($rr['locality']))
|
||||||
$details .= ', ';
|
$details .= ', ';
|
||||||
$details .= $rr['region'];
|
$details .= $rr['region'];
|
||||||
}
|
}
|
||||||
if (strlen($rr['country-name'])) {
|
if(strlen($rr['country-name'])) {
|
||||||
if (strlen($details))
|
if(strlen($details))
|
||||||
$details .= ', ';
|
$details .= ', ';
|
||||||
$details .= $rr['country-name'];
|
$details .= $rr['country-name'];
|
||||||
}
|
}
|
||||||
// if (strlen($rr['dob'])) {
|
// if(strlen($rr['dob'])) {
|
||||||
// if (($years = age($rr['dob'],$rr['timezone'],'')) != 0)
|
// if(($years = age($rr['dob'],$rr['timezone'],'')) != 0)
|
||||||
// $details .= '<br />' . t('Age: ') . $years ;
|
// $details .= '<br />' . t('Age: ') . $years ;
|
||||||
// }
|
// }
|
||||||
// if (strlen($rr['gender']))
|
// if(strlen($rr['gender']))
|
||||||
// $details .= '<br />' . t('Gender: ') . $rr['gender'];
|
// $details .= '<br />' . t('Gender: ') . $rr['gender'];
|
||||||
|
|
||||||
$profile = $rr;
|
$profile = $rr;
|
||||||
|
|
||||||
if ((x($profile,'address') == 1)
|
if((x($profile,'address') == 1)
|
||||||
|| (x($profile,'locality') == 1)
|
|| (x($profile,'locality') == 1)
|
||||||
|| (x($profile,'region') == 1)
|
|| (x($profile,'region') == 1)
|
||||||
|| (x($profile,'postal-code') == 1)
|
|| (x($profile,'postal-code') == 1)
|
||||||
|
|
@ -146,7 +146,7 @@ function directory_content(App $a) {
|
||||||
|
|
||||||
$about = ((x($profile,'about') == 1) ? t('About:') : False);
|
$about = ((x($profile,'about') == 1) ? t('About:') : False);
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal') {
|
if($a->theme['template_engine'] === 'internal') {
|
||||||
$location_e = template_escape($location);
|
$location_e = template_escape($location);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -185,9 +185,8 @@ function directory_content(App $a) {
|
||||||
unset($profile);
|
unset($profile);
|
||||||
unset($location);
|
unset($location);
|
||||||
|
|
||||||
if (! $arr['entry']) {
|
if(! $arr['entry'])
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
$entries[] = $arr['entry'];
|
$entries[] = $arr['entry'];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -166,9 +166,8 @@ function dirfind_content(App $a, $prefix = "") {
|
||||||
|
|
||||||
$p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
|
$p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
|
||||||
|
|
||||||
if (strlen(get_config('system','directory'))) {
|
if(strlen(get_config('system','directory')))
|
||||||
$x = fetch_url(get_server().'/lsearch?f=' . $p . '&search=' . urlencode($search));
|
$x = fetch_url(get_server().'/lsearch?f=' . $p . '&search=' . urlencode($search));
|
||||||
}
|
|
||||||
|
|
||||||
$j = json_decode($x);
|
$j = json_decode($x);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ function editpost_content(App $a) {
|
||||||
|
|
||||||
$tpl = get_markup_template("jot.tpl");
|
$tpl = get_markup_template("jot.tpl");
|
||||||
|
|
||||||
if (($group) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid'])))))
|
if(($group) || (is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid'])))))
|
||||||
$lockstate = 'lock';
|
$lockstate = 'lock';
|
||||||
else
|
else
|
||||||
$lockstate = 'unlock';
|
$lockstate = 'unlock';
|
||||||
|
|
@ -64,13 +64,13 @@ function editpost_content(App $a) {
|
||||||
$mail_enabled = false;
|
$mail_enabled = false;
|
||||||
$pubmail_enabled = false;
|
$pubmail_enabled = false;
|
||||||
|
|
||||||
if (! $mail_disabled) {
|
if(! $mail_disabled) {
|
||||||
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1",
|
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1",
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$mail_enabled = true;
|
$mail_enabled = true;
|
||||||
if (intval($r[0]['pubmail']))
|
if(intval($r[0]['pubmail']))
|
||||||
$pubmail_enabled = true;
|
$pubmail_enabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +78,7 @@ function editpost_content(App $a) {
|
||||||
// I don't think there's any need for the $jotnets when editing the post,
|
// I don't think there's any need for the $jotnets when editing the post,
|
||||||
// and including them makes it difficult for the JS-free theme, so let's
|
// and including them makes it difficult for the JS-free theme, so let's
|
||||||
// disable them
|
// disable them
|
||||||
/* if ($mail_enabled) {
|
/* if($mail_enabled) {
|
||||||
$selected = (($pubmail_enabled) ? ' checked="checked" ' : '');
|
$selected = (($pubmail_enabled) ? ' checked="checked" ' : '');
|
||||||
$jotnets .= '<div class="profile-jot-net"><input type="checkbox" name="pubmail_enable"' . $selected . ' value="1" /> '
|
$jotnets .= '<div class="profile-jot-net"><input type="checkbox" name="pubmail_enable"' . $selected . ' value="1" /> '
|
||||||
. t("Post to Email") . '</div>';
|
. t("Post to Email") . '</div>';
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ function events_post(App $a) {
|
||||||
$c = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1",
|
$c = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1",
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if (dbm::is_result($c)) {
|
if (count($c)) {
|
||||||
$self = $c[0]['id'];
|
$self = $c[0]['id'];
|
||||||
} else {
|
} else {
|
||||||
$self = 0;
|
$self = 0;
|
||||||
|
|
@ -126,7 +126,7 @@ function events_post(App $a) {
|
||||||
$str_contact_deny = perms2str($_POST['contact_deny']);
|
$str_contact_deny = perms2str($_POST['contact_deny']);
|
||||||
|
|
||||||
// Undo the pseudo-contact of self, since there are real contacts now
|
// Undo the pseudo-contact of self, since there are real contacts now
|
||||||
if (strpos($str_contact_allow, '<' . $self . '>') !== false) {
|
if (strpos($str_contact_allow, '<' . $self . '>') !== false ) {
|
||||||
$str_contact_allow = str_replace('<' . $self . '>', '', $str_contact_allow);
|
$str_contact_allow = str_replace('<' . $self . '>', '', $str_contact_allow);
|
||||||
}
|
}
|
||||||
// Make sure to set the `private` field as true. This is necessary to
|
// Make sure to set the `private` field as true. This is necessary to
|
||||||
|
|
@ -142,7 +142,7 @@ function events_post(App $a) {
|
||||||
$str_group_allow = $str_contact_deny = $str_group_deny = '';
|
$str_group_allow = $str_contact_deny = $str_group_deny = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @TODO One-time array initialization, one large block
|
|
||||||
$datarray = array();
|
$datarray = array();
|
||||||
$datarray['guid'] = get_guid(32);
|
$datarray['guid'] = get_guid(32);
|
||||||
$datarray['start'] = $start;
|
$datarray['start'] = $start;
|
||||||
|
|
@ -407,9 +407,7 @@ function events_content(App $a) {
|
||||||
|
|
||||||
// Passed parameters overrides anything found in the DB
|
// Passed parameters overrides anything found in the DB
|
||||||
if ($mode === 'edit' || $mode === 'new') {
|
if ($mode === 'edit' || $mode === 'new') {
|
||||||
if (!x($orig_event)) {
|
if (!x($orig_event)) {$orig_event = array();}
|
||||||
$orig_event = array();
|
|
||||||
}
|
|
||||||
// In case of an error the browser is redirected back here, with these parameters filled in with the previous values
|
// In case of an error the browser is redirected back here, with these parameters filled in with the previous values
|
||||||
if (x($_REQUEST, 'nofinish')) {$orig_event['nofinish'] = $_REQUEST['nofinish'];}
|
if (x($_REQUEST, 'nofinish')) {$orig_event['nofinish'] = $_REQUEST['nofinish'];}
|
||||||
if (x($_REQUEST, 'adjust')) {$orig_event['adjust'] = $_REQUEST['adjust'];}
|
if (x($_REQUEST, 'adjust')) {$orig_event['adjust'] = $_REQUEST['adjust'];}
|
||||||
|
|
|
||||||
|
|
@ -66,9 +66,10 @@ function fbrowser_content(App $a) {
|
||||||
$types = Photo::supportedTypes();
|
$types = Photo::supportedTypes();
|
||||||
$ext = $types[$rr['type']];
|
$ext = $types[$rr['type']];
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal') {
|
if($a->theme['template_engine'] === 'internal') {
|
||||||
$filename_e = template_escape($rr['filename']);
|
$filename_e = template_escape($rr['filename']);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$filename_e = $rr['filename'];
|
$filename_e = $rr['filename'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ function filer_content(App $a) {
|
||||||
|
|
||||||
logger('filer: tag ' . $term . ' item ' . $item_id);
|
logger('filer: tag ' . $term . ' item ' . $item_id);
|
||||||
|
|
||||||
if ($item_id && strlen($term)){
|
if($item_id && strlen($term)){
|
||||||
// file item
|
// file item
|
||||||
file_tag_save_file(local_user(),$item_id,$term);
|
file_tag_save_file(local_user(),$item_id,$term);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ function friendica_init(App $a) {
|
||||||
$register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN');
|
$register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN');
|
||||||
|
|
||||||
$sql_extra = '';
|
$sql_extra = '';
|
||||||
if (x($a->config,'admin_nickname')) {
|
if(x($a->config,'admin_nickname')) {
|
||||||
$sql_extra = sprintf(" AND nickname = '%s' ",dbesc($a->config['admin_nickname']));
|
$sql_extra = sprintf(" AND nickname = '%s' ",dbesc($a->config['admin_nickname']));
|
||||||
}
|
}
|
||||||
if (isset($a->config['admin_email']) && $a->config['admin_email']!=''){
|
if (isset($a->config['admin_email']) && $a->config['admin_email']!=''){
|
||||||
|
|
@ -24,18 +24,18 @@ function friendica_init(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$visible_plugins = array();
|
$visible_plugins = array();
|
||||||
if (is_array($a->plugins) && count($a->plugins)) {
|
if(is_array($a->plugins) && count($a->plugins)) {
|
||||||
$r = q("select * from addon where hidden = 0");
|
$r = q("select * from addon where hidden = 0");
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
$visible_plugins[] = $rr['name'];
|
$visible_plugins[] = $rr['name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
Config::load('feature_lock');
|
Config::load('feature_lock');
|
||||||
$locked_features = array();
|
$locked_features = array();
|
||||||
if (is_array($a->config['feature_lock']) && count($a->config['feature_lock'])) {
|
if(is_array($a->config['feature_lock']) && count($a->config['feature_lock'])) {
|
||||||
foreach ($a->config['feature_lock'] as $k => $v) {
|
foreach($a->config['feature_lock'] as $k => $v) {
|
||||||
if ($k === 'config_loaded')
|
if($k === 'config_loaded')
|
||||||
continue;
|
continue;
|
||||||
$locked_features[$k] = intval($v);
|
$locked_features[$k] = intval($v);
|
||||||
}
|
}
|
||||||
|
|
@ -80,24 +80,22 @@ function friendica_content(App $a) {
|
||||||
$o .= '<p></p>';
|
$o .= '<p></p>';
|
||||||
|
|
||||||
$visible_plugins = array();
|
$visible_plugins = array();
|
||||||
if (is_array($a->plugins) && count($a->plugins)) {
|
if(is_array($a->plugins) && count($a->plugins)) {
|
||||||
$r = q("select * from addon where hidden = 0");
|
$r = q("select * from addon where hidden = 0");
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
$visible_plugins[] = $rr['name'];
|
$visible_plugins[] = $rr['name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (count($visible_plugins)) {
|
if(count($visible_plugins)) {
|
||||||
$o .= '<p>' . t('Installed plugins/addons/apps:') . '</p>';
|
$o .= '<p>' . t('Installed plugins/addons/apps:') . '</p>';
|
||||||
$sorted = $visible_plugins;
|
$sorted = $visible_plugins;
|
||||||
$s = '';
|
$s = '';
|
||||||
sort($sorted);
|
sort($sorted);
|
||||||
foreach ($sorted as $p) {
|
foreach($sorted as $p) {
|
||||||
if (strlen($p)) {
|
if(strlen($p)) {
|
||||||
if (strlen($s)) {
|
if(strlen($s)) $s .= ', ';
|
||||||
$s .= ', ';
|
|
||||||
}
|
|
||||||
$s .= $p;
|
$s .= $p;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ function fsuggest_post(App $a) {
|
||||||
|
|
||||||
$note = escape_tags(trim($_POST['note']));
|
$note = escape_tags(trim($_POST['note']));
|
||||||
|
|
||||||
if ($new_contact) {
|
if($new_contact) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($new_contact),
|
intval($new_contact),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -80,9 +80,8 @@ function fsuggest_content(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($a->argc != 2) {
|
if($a->argc != 2)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$contact_id = intval($a->argv[1]);
|
$contact_id = intval($a->argv[1]);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ function validate_members(&$item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function group_init(App $a) {
|
function group_init(App $a) {
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
require_once('include/group.php');
|
require_once('include/group.php');
|
||||||
$a->page['aside'] = group_side('contacts','group','extended',(($a->argc > 1) ? intval($a->argv[1]) : 0));
|
$a->page['aside'] = group_side('contacts','group','extended',(($a->argc > 1) ? intval($a->argv[1]) : 0));
|
||||||
}
|
}
|
||||||
|
|
@ -20,7 +20,7 @@ function group_post(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc == 2) && ($a->argv[1] === 'new')) {
|
if(($a->argc == 2) && ($a->argv[1] === 'new')) {
|
||||||
check_form_security_token_redirectOnErr('/group/new', 'group_edit');
|
check_form_security_token_redirectOnErr('/group/new', 'group_edit');
|
||||||
|
|
||||||
$name = notags(trim($_POST['groupname']));
|
$name = notags(trim($_POST['groupname']));
|
||||||
|
|
@ -80,12 +80,10 @@ function group_content(App $a) {
|
||||||
// Switch to text mode interface if we have more than 'n' contacts or group members
|
// Switch to text mode interface if we have more than 'n' contacts or group members
|
||||||
|
|
||||||
$switchtotext = get_pconfig(local_user(),'system','groupedit_image_limit');
|
$switchtotext = get_pconfig(local_user(),'system','groupedit_image_limit');
|
||||||
if ($switchtotext === false) {
|
if($switchtotext === false)
|
||||||
$switchtotext = get_config('system','groupedit_image_limit');
|
$switchtotext = get_config('system','groupedit_image_limit');
|
||||||
}
|
if($switchtotext === false)
|
||||||
if ($switchtotext === false) {
|
|
||||||
$switchtotext = 400;
|
$switchtotext = 400;
|
||||||
}
|
|
||||||
|
|
||||||
$tpl = get_markup_template('group_edit.tpl');
|
$tpl = get_markup_template('group_edit.tpl');
|
||||||
|
|
||||||
|
|
@ -101,6 +99,8 @@ function group_content(App $a) {
|
||||||
'$gid' => 'new',
|
'$gid' => 'new',
|
||||||
'$form_security_token' => get_form_security_token("group_edit"),
|
'$form_security_token' => get_form_security_token("group_edit"),
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc == 3) && ($a->argv[1] === 'drop')) {
|
if (($a->argc == 3) && ($a->argv[1] === 'drop')) {
|
||||||
|
|
@ -135,9 +135,8 @@ function group_content(App $a) {
|
||||||
intval($a->argv[2]),
|
intval($a->argv[2]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
$change = intval($a->argv[2]);
|
$change = intval($a->argv[2]);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 1) && (intval($a->argv[1]))) {
|
if (($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
|
|
@ -154,23 +153,23 @@ function group_content(App $a) {
|
||||||
$group = $r[0];
|
$group = $r[0];
|
||||||
$members = group_get_members($group['id']);
|
$members = group_get_members($group['id']);
|
||||||
$preselected = array();
|
$preselected = array();
|
||||||
if (count($members)) {
|
if(count($members)) {
|
||||||
foreach ($members as $member) {
|
foreach($members as $member)
|
||||||
$preselected[] = $member['id'];
|
$preselected[] = $member['id'];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($change) {
|
if($change) {
|
||||||
if (in_array($change,$preselected)) {
|
if(in_array($change,$preselected)) {
|
||||||
group_rmv_member(local_user(),$group['name'],$change);
|
group_rmv_member(local_user(),$group['name'],$change);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
group_add_member(local_user(),$group['name'],$change);
|
group_add_member(local_user(),$group['name'],$change);
|
||||||
}
|
}
|
||||||
|
|
||||||
$members = group_get_members($group['id']);
|
$members = group_get_members($group['id']);
|
||||||
$preselected = array();
|
$preselected = array();
|
||||||
if (count($members)) {
|
if(count($members)) {
|
||||||
foreach ($members as $member)
|
foreach($members as $member)
|
||||||
$preselected[] = $member['id'];
|
$preselected[] = $member['id'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -194,9 +193,8 @@ function group_content(App $a) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! isset($group)) {
|
if(! isset($group))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$groupeditor = array(
|
$groupeditor = array(
|
||||||
'label_members' => t('Members'),
|
'label_members' => t('Members'),
|
||||||
|
|
@ -208,13 +206,13 @@ function group_content(App $a) {
|
||||||
|
|
||||||
$sec_token = addslashes(get_form_security_token('group_member_change'));
|
$sec_token = addslashes(get_form_security_token('group_member_change'));
|
||||||
$textmode = (($switchtotext && (count($members) > $switchtotext)) ? true : false);
|
$textmode = (($switchtotext && (count($members) > $switchtotext)) ? true : false);
|
||||||
foreach ($members as $member) {
|
foreach($members as $member) {
|
||||||
if ($member['url']) {
|
if($member['url']) {
|
||||||
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . ',\'' . $sec_token . '\'); return true;';
|
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . ',\'' . $sec_token . '\'); return true;';
|
||||||
$groupeditor['members'][] = micropro($member,true,'mpgroup', $textmode);
|
$groupeditor['members'][] = micropro($member,true,'mpgroup', $textmode);
|
||||||
} else {
|
|
||||||
group_rmv_member(local_user(),$group['name'],$member['id']);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
group_rmv_member(local_user(),$group['name'],$member['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `self` ORDER BY `name` ASC",
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `self` ORDER BY `name` ASC",
|
||||||
|
|
@ -223,8 +221,8 @@ function group_content(App $a) {
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false);
|
$textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false);
|
||||||
foreach ($r as $member) {
|
foreach($r as $member) {
|
||||||
if (! in_array($member['id'],$preselected)) {
|
if(! in_array($member['id'],$preselected)) {
|
||||||
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . ',\'' . $sec_token . '\'); return true;';
|
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . ',\'' . $sec_token . '\'); return true;';
|
||||||
$groupeditor['contacts'][] = micropro($member,true,'mpall', $textmode);
|
$groupeditor['contacts'][] = micropro($member,true,'mpall', $textmode);
|
||||||
}
|
}
|
||||||
|
|
@ -234,7 +232,7 @@ function group_content(App $a) {
|
||||||
$context['$groupeditor'] = $groupeditor;
|
$context['$groupeditor'] = $groupeditor;
|
||||||
$context['$desc'] = t('Click on a contact to add or remove.');
|
$context['$desc'] = t('Click on a contact to add or remove.');
|
||||||
|
|
||||||
if ($change) {
|
if($change) {
|
||||||
$tpl = get_markup_template('groupeditor.tpl');
|
$tpl = get_markup_template('groupeditor.tpl');
|
||||||
echo replace_macros($tpl, $context);
|
echo replace_macros($tpl, $context);
|
||||||
killme();
|
killme();
|
||||||
|
|
|
||||||
21
mod/help.php
21
mod/help.php
|
|
@ -30,10 +30,9 @@ function help_content(App $a) {
|
||||||
$path = '';
|
$path = '';
|
||||||
// looping through the argv keys bigger than 0 to build
|
// looping through the argv keys bigger than 0 to build
|
||||||
// a path relative to /help
|
// a path relative to /help
|
||||||
for ($x = 1; $x < argc(); $x ++) {
|
for($x = 1; $x < argc(); $x ++) {
|
||||||
if (strlen($path)) {
|
if(strlen($path))
|
||||||
$path .= '/';
|
$path .= '/';
|
||||||
}
|
|
||||||
$path .= argv($x);
|
$path .= argv($x);
|
||||||
}
|
}
|
||||||
$title = basename($path);
|
$title = basename($path);
|
||||||
|
|
@ -66,22 +65,16 @@ function help_content(App $a) {
|
||||||
$toc="<style>aside ul {padding-left: 1em;}aside h1{font-size:2em}</style><h2>TOC</h2><ul id='toc'>";
|
$toc="<style>aside ul {padding-left: 1em;}aside h1{font-size:2em}</style><h2>TOC</h2><ul id='toc'>";
|
||||||
$lastlevel=1;
|
$lastlevel=1;
|
||||||
$idnum = array(0,0,0,0,0,0,0);
|
$idnum = array(0,0,0,0,0,0,0);
|
||||||
foreach ($lines as &$line){
|
foreach($lines as &$line){
|
||||||
if (substr($line,0,2)=="<h") {
|
if (substr($line,0,2)=="<h") {
|
||||||
$level = substr($line,2,1);
|
$level = substr($line,2,1);
|
||||||
if ($level!="r") {
|
if ($level!="r") {
|
||||||
$level = intval($level);
|
$level = intval($level);
|
||||||
if ($level<$lastlevel) {
|
if ($level<$lastlevel) {
|
||||||
for ($k=$level;$k<$lastlevel; $k++) {
|
for($k=$level;$k<$lastlevel; $k++) $toc.="</ul>";
|
||||||
$toc.="</ul>";
|
for($k=$level+1;$k<count($idnum);$k++) $idnum[$k]=0;
|
||||||
}
|
|
||||||
for ($k=$level+1;$k<count($idnum);$k++) {
|
|
||||||
$idnum[$k]=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($level>$lastlevel) {
|
|
||||||
$toc.="<ul>";
|
|
||||||
}
|
}
|
||||||
|
if ($level>$lastlevel) $toc.="<ul>";
|
||||||
$idnum[$level]++;
|
$idnum[$level]++;
|
||||||
$id = implode("_", array_slice($idnum,1,$level));
|
$id = implode("_", array_slice($idnum,1,$level));
|
||||||
$href = App::get_baseurl()."/help/{$filename}#{$id}";
|
$href = App::get_baseurl()."/help/{$filename}#{$id}";
|
||||||
|
|
@ -91,7 +84,7 @@ function help_content(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for ($k=0;$k<$lastlevel; $k++) $toc.="</ul>";
|
for($k=0;$k<$lastlevel; $k++) $toc.="</ul>";
|
||||||
$html = implode("\n",$lines);
|
$html = implode("\n",$lines);
|
||||||
|
|
||||||
$a->page['aside'] = $toc.$a->page['aside'];
|
$a->page['aside'] = $toc.$a->page['aside'];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
if (! function_exists('home_init')) {
|
if(! function_exists('home_init')) {
|
||||||
function home_init(App $a) {
|
function home_init(App $a) {
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
|
|
@ -16,7 +16,7 @@ function home_init(App $a) {
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if (! function_exists('home_content')) {
|
if(! function_exists('home_content')) {
|
||||||
function home_content(App $a) {
|
function home_content(App $a) {
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ function hostxrd_init(App $a) {
|
||||||
header("Content-type: text/xml");
|
header("Content-type: text/xml");
|
||||||
$pubkey = get_config('system','site_pubkey');
|
$pubkey = get_config('system','site_pubkey');
|
||||||
|
|
||||||
if (! $pubkey) {
|
if(! $pubkey) {
|
||||||
$res = new_keypair(1024);
|
$res = new_keypair(1024);
|
||||||
|
|
||||||
set_config('system','site_prvkey', $res['prvkey']);
|
set_config('system','site_prvkey', $res['prvkey']);
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ function hovercard_content() {
|
||||||
$datatype = (x($_REQUEST,'datatype') ?$_REQUEST['datatype'] : "json");
|
$datatype = (x($_REQUEST,'datatype') ?$_REQUEST['datatype'] : "json");
|
||||||
|
|
||||||
// Get out if the system doesn't have public access allowed
|
// Get out if the system doesn't have public access allowed
|
||||||
if (intval(get_config('system','block_public')))
|
if(intval(get_config('system','block_public')))
|
||||||
http_status_exit(401);
|
http_status_exit(401);
|
||||||
|
|
||||||
// Return the raw content of the template. We use this to make templates usable for js functions.
|
// Return the raw content of the template. We use this to make templates usable for js functions.
|
||||||
|
|
@ -36,7 +36,7 @@ function hovercard_content() {
|
||||||
// If a contact is connected the url is internally changed to "redir/CID". We need the pure url to search for
|
// If a contact is connected the url is internally changed to "redir/CID". We need the pure url to search for
|
||||||
// the contact. So we strip out the contact id from the internal url and look in the contact table for
|
// the contact. So we strip out the contact id from the internal url and look in the contact table for
|
||||||
// the real url (nurl)
|
// the real url (nurl)
|
||||||
if (local_user() && strpos($profileurl, "redir/") === 0) {
|
if(local_user() && strpos($profileurl, "redir/") === 0) {
|
||||||
$cid = intval(substr($profileurl, 6));
|
$cid = intval(substr($profileurl, 6));
|
||||||
$r = q("SELECT `nurl`, `self` FROM `contact` WHERE `id` = '%d' LIMIT 1", intval($cid));
|
$r = q("SELECT `nurl`, `self` FROM `contact` WHERE `id` = '%d' LIMIT 1", intval($cid));
|
||||||
$profileurl = ($r[0]["nurl"] ? $r[0]["nurl"] : "");
|
$profileurl = ($r[0]["nurl"] ? $r[0]["nurl"] : "");
|
||||||
|
|
@ -45,16 +45,16 @@ function hovercard_content() {
|
||||||
|
|
||||||
// if it's the url containing https it should be converted to http
|
// if it's the url containing https it should be converted to http
|
||||||
$nurl = normalise_link(clean_contact_url($profileurl));
|
$nurl = normalise_link(clean_contact_url($profileurl));
|
||||||
if ($nurl) {
|
if($nurl) {
|
||||||
// Search for contact data
|
// Search for contact data
|
||||||
$contact = get_contact_details_by_url($nurl);
|
$contact = get_contact_details_by_url($nurl);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_array($contact))
|
if(!is_array($contact))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Get the photo_menu - the menu if possible contact actions
|
// Get the photo_menu - the menu if possible contact actions
|
||||||
if (local_user())
|
if(local_user())
|
||||||
$actions = contact_photo_menu($contact);
|
$actions = contact_photo_menu($contact);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -80,7 +80,7 @@ function hovercard_content() {
|
||||||
'account_type' => account_type($contact),
|
'account_type' => account_type($contact),
|
||||||
'actions' => $actions,
|
'actions' => $actions,
|
||||||
);
|
);
|
||||||
if ($datatype == "html") {
|
if($datatype == "html") {
|
||||||
$t = get_markup_template("hovercard.tpl");
|
$t = get_markup_template("hovercard.tpl");
|
||||||
|
|
||||||
$o = replace_macros($t, array(
|
$o = replace_macros($t, array(
|
||||||
|
|
@ -110,7 +110,7 @@ function get_template_content($template, $root = "") {
|
||||||
$filename = $t->filename;
|
$filename = $t->filename;
|
||||||
|
|
||||||
// Get the content of the template file
|
// Get the content of the template file
|
||||||
if (file_exists($filename)) {
|
if(file_exists($filename)) {
|
||||||
$content = file_get_contents($filename);
|
$content = file_get_contents($filename);
|
||||||
|
|
||||||
return $content;
|
return $content;
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,8 @@ function ignored_init(App $a) {
|
||||||
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
|
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
|
||||||
if ($return_path) {
|
if ($return_path) {
|
||||||
$rand = '_=' . time();
|
$rand = '_=' . time();
|
||||||
if (strpos($return_path, '?')) {
|
if(strpos($return_path, '?')) $rand = "&$rand";
|
||||||
$rand = "&$rand";
|
else $rand = "?$rand";
|
||||||
} else {
|
|
||||||
$rand = "?$rand";
|
|
||||||
}
|
|
||||||
|
|
||||||
goaway(App::get_baseurl() . "/" . $return_path . $rand);
|
goaway(App::get_baseurl() . "/" . $return_path . $rand);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
20
mod/install.php
Normal file → Executable file
20
mod/install.php
Normal file → Executable file
|
|
@ -43,11 +43,11 @@ function install_post(App $a) {
|
||||||
require_once("include/dba.php");
|
require_once("include/dba.php");
|
||||||
unset($db);
|
unset($db);
|
||||||
$db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
|
$db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
|
||||||
/*if (get_db_errno()) {
|
/*if(get_db_errno()) {
|
||||||
unset($db);
|
unset($db);
|
||||||
$db = new dba($dbhost, $dbuser, $dbpass, '', true);
|
$db = new dba($dbhost, $dbuser, $dbpass, '', true);
|
||||||
|
|
||||||
if (! get_db_errno()) {
|
if(! get_db_errno()) {
|
||||||
$r = q("CREATE DATABASE '%s'",
|
$r = q("CREATE DATABASE '%s'",
|
||||||
dbesc($dbdata)
|
dbesc($dbdata)
|
||||||
);
|
);
|
||||||
|
|
@ -164,7 +164,7 @@ function install_content(App $a) {
|
||||||
$db_return_text .= $txt;
|
$db_return_text .= $txt;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($db && $db->connected) {
|
if($db && $db->connected) {
|
||||||
$r = q("SELECT COUNT(*) as `total` FROM `user`");
|
$r = q("SELECT COUNT(*) as `total` FROM `user`");
|
||||||
if (dbm::is_result($r) && $r[0]['total']) {
|
if (dbm::is_result($r) && $r[0]['total']) {
|
||||||
$tpl = get_markup_template('install.tpl');
|
$tpl = get_markup_template('install.tpl');
|
||||||
|
|
@ -360,13 +360,13 @@ 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";
|
$cmd = "$phpath -v";
|
||||||
$result = trim(shell_exec($cmd));
|
$result = trim(shell_exec($cmd));
|
||||||
$passed2 = ( strpos($result, "(cli)") !== false );
|
$passed2 = ( strpos($result, "(cli)") !== false );
|
||||||
list($result) = explode("\n", $result);
|
list($result) = explode("\n", $result);
|
||||||
$help = "";
|
$help = "";
|
||||||
if (!$passed2) {
|
if(!$passed2) {
|
||||||
$help .= t('PHP executable is not the php cli binary (could be cgi-fgci version)'). EOL;
|
$help .= t('PHP executable is not the php cli binary (could be cgi-fgci version)'). EOL;
|
||||||
$help .= t('Found PHP version: ')."<tt>$result</tt>";
|
$help .= t('Found PHP version: ')."<tt>$result</tt>";
|
||||||
}
|
}
|
||||||
|
|
@ -380,7 +380,7 @@ function check_php(&$phpath, &$checks) {
|
||||||
$result = trim(shell_exec($cmd));
|
$result = trim(shell_exec($cmd));
|
||||||
$passed3 = $result == $str;
|
$passed3 = $result == $str;
|
||||||
$help = "";
|
$help = "";
|
||||||
if (!$passed3) {
|
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.');
|
||||||
}
|
}
|
||||||
|
|
@ -485,7 +485,7 @@ function check_funcs(&$checks) {
|
||||||
$ck_funcs[6]['help'] = t('Error, XML PHP module required but not installed.');
|
$ck_funcs[6]['help'] = t('Error, XML PHP module required but not installed.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if ((x($_SESSION,'sysmsg')) && is_array($_SESSION['sysmsg']) && count($_SESSION['sysmsg']))
|
/*if((x($_SESSION,'sysmsg')) && is_array($_SESSION['sysmsg']) && count($_SESSION['sysmsg']))
|
||||||
notice( t('Please see the file "INSTALL.txt".') . EOL);*/
|
notice( t('Please see the file "INSTALL.txt".') . EOL);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -589,10 +589,10 @@ function load_database($db) {
|
||||||
/* $str = file_get_contents('database.sql');
|
/* $str = file_get_contents('database.sql');
|
||||||
$arr = explode(';',$str);
|
$arr = explode(';',$str);
|
||||||
$errors = false;
|
$errors = false;
|
||||||
foreach ($arr as $a) {
|
foreach($arr as $a) {
|
||||||
if (strlen(trim($a))) {
|
if(strlen(trim($a))) {
|
||||||
$r = @$db->q(trim($a));
|
$r = @$db->q(trim($a));
|
||||||
if (false === $r) {
|
if(false === $r) {
|
||||||
$errors .= t('Errors encountered creating database tables.') . $a . EOL;
|
$errors .= t('Errors encountered creating database tables.') . $a . EOL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ function invite_post(App $a) {
|
||||||
$total ++;
|
$total ++;
|
||||||
$current_invites ++;
|
$current_invites ++;
|
||||||
set_pconfig(local_user(),'system','sent_invites',$current_invites);
|
set_pconfig(local_user(),'system','sent_invites',$current_invites);
|
||||||
if ($current_invites > $max_invites) {
|
if($current_invites > $max_invites) {
|
||||||
notice( t('Invitation limit exceeded. Please contact your site administrator.') . EOL);
|
notice( t('Invitation limit exceeded. Please contact your site administrator.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
177
mod/item.php
177
mod/item.php
|
|
@ -29,14 +29,14 @@ require_once('include/Contact.php');
|
||||||
|
|
||||||
function item_post(App $a) {
|
function item_post(App $a) {
|
||||||
|
|
||||||
if ((! local_user()) && (! remote_user()) && (! x($_REQUEST,'commenter')))
|
if((! local_user()) && (! remote_user()) && (! x($_REQUEST,'commenter')))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
|
|
||||||
$uid = local_user();
|
$uid = local_user();
|
||||||
|
|
||||||
if (x($_REQUEST,'dropitems')) {
|
if(x($_REQUEST,'dropitems')) {
|
||||||
$arr_drop = explode(',',$_REQUEST['dropitems']);
|
$arr_drop = explode(',',$_REQUEST['dropitems']);
|
||||||
drop_items($arr_drop);
|
drop_items($arr_drop);
|
||||||
$json = array('success' => 1);
|
$json = array('success' => 1);
|
||||||
|
|
@ -125,7 +125,7 @@ function item_post(App $a) {
|
||||||
$parent = $r[0]['id'];
|
$parent = $r[0]['id'];
|
||||||
|
|
||||||
// multi-level threading - preserve the info but re-parent to our single level threading
|
// multi-level threading - preserve the info but re-parent to our single level threading
|
||||||
//if (($parid) && ($parid != $parent))
|
//if(($parid) && ($parid != $parent))
|
||||||
$thr_parent = $parent_uri;
|
$thr_parent = $parent_uri;
|
||||||
|
|
||||||
if ($parent_item['contact-id'] && $uid) {
|
if ($parent_item['contact-id'] && $uid) {
|
||||||
|
|
@ -162,7 +162,7 @@ function item_post(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($parent) logger('mod_item: item_post parent=' . $parent);
|
if($parent) logger('mod_item: item_post parent=' . $parent);
|
||||||
|
|
||||||
$profile_uid = ((x($_REQUEST,'profile_uid')) ? intval($_REQUEST['profile_uid']) : 0);
|
$profile_uid = ((x($_REQUEST,'profile_uid')) ? intval($_REQUEST['profile_uid']) : 0);
|
||||||
$post_id = ((x($_REQUEST,'post_id')) ? intval($_REQUEST['post_id']) : 0);
|
$post_id = ((x($_REQUEST,'post_id')) ? intval($_REQUEST['post_id']) : 0);
|
||||||
|
|
@ -189,9 +189,9 @@ function item_post(App $a) {
|
||||||
|
|
||||||
// First check that the parent exists and it is a wall item.
|
// First check that the parent exists and it is a wall item.
|
||||||
|
|
||||||
if ((x($_REQUEST,'commenter')) && ((! $parent) || (! $parent_item['wall']))) {
|
if((x($_REQUEST,'commenter')) && ((! $parent) || (! $parent_item['wall']))) {
|
||||||
notice( t('Permission denied.') . EOL) ;
|
notice( t('Permission denied.') . EOL) ;
|
||||||
if (x($_REQUEST,'return'))
|
if(x($_REQUEST,'return'))
|
||||||
goaway($return_path);
|
goaway($return_path);
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
@ -201,9 +201,9 @@ function item_post(App $a) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ((! can_write_wall($a,$profile_uid)) && (! $allow_moderated)) {
|
if((! can_write_wall($a,$profile_uid)) && (! $allow_moderated)) {
|
||||||
notice( t('Permission denied.') . EOL) ;
|
notice( t('Permission denied.') . EOL) ;
|
||||||
if (x($_REQUEST,'return'))
|
if(x($_REQUEST,'return'))
|
||||||
goaway($return_path);
|
goaway($return_path);
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
@ -213,7 +213,7 @@ function item_post(App $a) {
|
||||||
|
|
||||||
$orig_post = null;
|
$orig_post = null;
|
||||||
|
|
||||||
if ($post_id) {
|
if($post_id) {
|
||||||
$i = q("SELECT * FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
$i = q("SELECT * FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||||
intval($profile_uid),
|
intval($profile_uid),
|
||||||
intval($post_id)
|
intval($post_id)
|
||||||
|
|
@ -232,7 +232,7 @@ function item_post(App $a) {
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
$user = $r[0];
|
$user = $r[0];
|
||||||
|
|
||||||
if ($orig_post) {
|
if($orig_post) {
|
||||||
$str_group_allow = $orig_post['allow_gid'];
|
$str_group_allow = $orig_post['allow_gid'];
|
||||||
$str_contact_allow = $orig_post['allow_cid'];
|
$str_contact_allow = $orig_post['allow_cid'];
|
||||||
$str_group_deny = $orig_post['deny_gid'];
|
$str_group_deny = $orig_post['deny_gid'];
|
||||||
|
|
@ -258,7 +258,7 @@ function item_post(App $a) {
|
||||||
// use the user default permissions - as they won't have
|
// use the user default permissions - as they won't have
|
||||||
// been supplied via a form.
|
// been supplied via a form.
|
||||||
|
|
||||||
if (($api_source)
|
if(($api_source)
|
||||||
&& (! array_key_exists('contact_allow',$_REQUEST))
|
&& (! array_key_exists('contact_allow',$_REQUEST))
|
||||||
&& (! array_key_exists('group_allow',$_REQUEST))
|
&& (! array_key_exists('group_allow',$_REQUEST))
|
||||||
&& (! array_key_exists('contact_deny',$_REQUEST))
|
&& (! array_key_exists('contact_deny',$_REQUEST))
|
||||||
|
|
@ -295,12 +295,12 @@ function item_post(App $a) {
|
||||||
$private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0);
|
$private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0);
|
||||||
|
|
||||||
|
|
||||||
if ($user['hidewall'])
|
if($user['hidewall'])
|
||||||
$private = 2;
|
$private = 2;
|
||||||
|
|
||||||
// If this is a comment, set the permissions from the parent.
|
// If this is a comment, set the permissions from the parent.
|
||||||
|
|
||||||
if ($parent_item) {
|
if($parent_item) {
|
||||||
|
|
||||||
// for non native networks use the network of the original post as network of the item
|
// for non native networks use the network of the original post as network of the item
|
||||||
if (($parent_item['network'] != NETWORK_DIASPORA)
|
if (($parent_item['network'] != NETWORK_DIASPORA)
|
||||||
|
|
@ -319,9 +319,9 @@ function item_post(App $a) {
|
||||||
|
|
||||||
// if using the API, we won't see pubmail_enable - figure out if it should be set
|
// if using the API, we won't see pubmail_enable - figure out if it should be set
|
||||||
|
|
||||||
if ($api_source && $profile_uid && $profile_uid == local_user() && (! $private)) {
|
if($api_source && $profile_uid && $profile_uid == local_user() && (! $private)) {
|
||||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||||
if (! $mail_disabled) {
|
if(! $mail_disabled) {
|
||||||
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1",
|
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1",
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
@ -330,17 +330,17 @@ function item_post(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! strlen($body)) {
|
if(! strlen($body)) {
|
||||||
if ($preview)
|
if($preview)
|
||||||
killme();
|
killme();
|
||||||
info( t('Empty post discarded.') . EOL );
|
info( t('Empty post discarded.') . EOL );
|
||||||
if (x($_REQUEST,'return'))
|
if(x($_REQUEST,'return'))
|
||||||
goaway($return_path);
|
goaway($return_path);
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($categories)) {
|
if(strlen($categories)) {
|
||||||
// get the "fileas" tags for this post
|
// get the "fileas" tags for this post
|
||||||
$filedas = file_tag_file_to_list($categories, 'file');
|
$filedas = file_tag_file_to_list($categories, 'file');
|
||||||
}
|
}
|
||||||
|
|
@ -348,7 +348,7 @@ function item_post(App $a) {
|
||||||
$categories_old = $categories;
|
$categories_old = $categories;
|
||||||
$categories = file_tag_list_to_file(trim($_REQUEST['category']), 'category');
|
$categories = file_tag_list_to_file(trim($_REQUEST['category']), 'category');
|
||||||
$categories_new = $categories;
|
$categories_new = $categories;
|
||||||
if (strlen($filedas)) {
|
if(strlen($filedas)) {
|
||||||
// append the fileas stuff to the new categories list
|
// append the fileas stuff to the new categories list
|
||||||
$categories .= file_tag_list_to_file($filedas, 'file');
|
$categories .= file_tag_list_to_file($filedas, 'file');
|
||||||
}
|
}
|
||||||
|
|
@ -359,21 +359,21 @@ function item_post(App $a) {
|
||||||
$self = false;
|
$self = false;
|
||||||
$contact_id = 0;
|
$contact_id = 0;
|
||||||
|
|
||||||
if ((local_user()) && (local_user() == $profile_uid)) {
|
if((local_user()) && (local_user() == $profile_uid)) {
|
||||||
$self = true;
|
$self = true;
|
||||||
$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']));
|
||||||
}
|
}
|
||||||
elseif (remote_user()) {
|
elseif(remote_user()) {
|
||||||
if (is_array($_SESSION['remote'])) {
|
if(is_array($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $v) {
|
foreach($_SESSION['remote'] as $v) {
|
||||||
if ($v['uid'] == $profile_uid) {
|
if($v['uid'] == $profile_uid) {
|
||||||
$contact_id = $v['cid'];
|
$contact_id = $v['cid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($contact_id) {
|
if($contact_id) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
|
||||||
intval($contact_id)
|
intval($contact_id)
|
||||||
);
|
);
|
||||||
|
|
@ -387,7 +387,7 @@ function item_post(App $a) {
|
||||||
|
|
||||||
// get contact info for owner
|
// get contact info for owner
|
||||||
|
|
||||||
if ($profile_uid == local_user()) {
|
if($profile_uid == local_user()) {
|
||||||
$contact_record = $author;
|
$contact_record = $author;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
@ -400,9 +400,9 @@ function item_post(App $a) {
|
||||||
|
|
||||||
$post_type = notags(trim($_REQUEST['type']));
|
$post_type = notags(trim($_REQUEST['type']));
|
||||||
|
|
||||||
if ($post_type === 'net-comment') {
|
if($post_type === 'net-comment') {
|
||||||
if ($parent_item !== null) {
|
if($parent_item !== null) {
|
||||||
if ($parent_item['wall'] == 1)
|
if($parent_item['wall'] == 1)
|
||||||
$post_type = 'wall-comment';
|
$post_type = 'wall-comment';
|
||||||
else
|
else
|
||||||
$post_type = 'remote-comment';
|
$post_type = 'remote-comment';
|
||||||
|
|
@ -423,9 +423,9 @@ function item_post(App $a) {
|
||||||
|
|
||||||
$match = null;
|
$match = null;
|
||||||
|
|
||||||
if ((! $preview) && preg_match_all("/\[img([\=0-9x]*?)\](.*?)\[\/img\]/",$body,$match)) {
|
if((! $preview) && preg_match_all("/\[img([\=0-9x]*?)\](.*?)\[\/img\]/",$body,$match)) {
|
||||||
$images = $match[2];
|
$images = $match[2];
|
||||||
if (count($images)) {
|
if(count($images)) {
|
||||||
|
|
||||||
$objecttype = ACTIVITY_OBJ_IMAGE;
|
$objecttype = ACTIVITY_OBJ_IMAGE;
|
||||||
|
|
||||||
|
|
@ -472,10 +472,10 @@ function item_post(App $a) {
|
||||||
|
|
||||||
$match = false;
|
$match = false;
|
||||||
|
|
||||||
if ((! $preview) && preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) {
|
if((! $preview) && preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) {
|
||||||
$attaches = $match[1];
|
$attaches = $match[1];
|
||||||
if (count($attaches)) {
|
if(count($attaches)) {
|
||||||
foreach ($attaches as $attach) {
|
foreach($attaches as $attach) {
|
||||||
$r = q("SELECT * FROM `attach` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
$r = q("SELECT * FROM `attach` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||||
intval($profile_uid),
|
intval($profile_uid),
|
||||||
intval($attach)
|
intval($attach)
|
||||||
|
|
@ -572,26 +572,24 @@ function item_post(App $a) {
|
||||||
|
|
||||||
$private_forum = false;
|
$private_forum = false;
|
||||||
|
|
||||||
if (count($tags)) {
|
if(count($tags)) {
|
||||||
foreach ($tags as $tag) {
|
foreach($tags as $tag) {
|
||||||
|
|
||||||
if (strpos($tag,'#') === 0) {
|
if(strpos($tag,'#') === 0)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
// If we already tagged 'Robert Johnson', don't try and tag 'Robert'.
|
// If we already tagged 'Robert Johnson', don't try and tag 'Robert'.
|
||||||
// Robert Johnson should be first in the $tags array
|
// Robert Johnson should be first in the $tags array
|
||||||
|
|
||||||
$fullnametagged = false;
|
$fullnametagged = false;
|
||||||
for ($x = 0; $x < count($tagged); $x ++) {
|
for($x = 0; $x < count($tagged); $x ++) {
|
||||||
if (stristr($tagged[$x],$tag . ' ')) {
|
if(stristr($tagged[$x],$tag . ' ')) {
|
||||||
$fullnametagged = true;
|
$fullnametagged = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($fullnametagged) {
|
if($fullnametagged)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
$success = handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag, $network);
|
$success = handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag, $network);
|
||||||
if ($success['replaced']) {
|
if ($success['replaced']) {
|
||||||
|
|
@ -724,16 +722,15 @@ function item_post(App $a) {
|
||||||
$datarray['last-child'] = 1;
|
$datarray['last-child'] = 1;
|
||||||
$datarray['visible'] = 1;
|
$datarray['visible'] = 1;
|
||||||
|
|
||||||
if ($orig_post) {
|
if($orig_post)
|
||||||
$datarray['edit'] = true;
|
$datarray['edit'] = true;
|
||||||
}
|
|
||||||
|
|
||||||
// Search for hashtags
|
// Search for hashtags
|
||||||
item_body_set_hashtags($datarray);
|
item_body_set_hashtags($datarray);
|
||||||
|
|
||||||
// preview mode - prepare the body for display and send it via json
|
// preview mode - prepare the body for display and send it via json
|
||||||
|
|
||||||
if ($preview) {
|
if($preview) {
|
||||||
require_once('include/conversation.php');
|
require_once('include/conversation.php');
|
||||||
// We set the datarray ID to -1 because in preview mode the dataray
|
// We set the datarray ID to -1 because in preview mode the dataray
|
||||||
// doesn't have an ID.
|
// doesn't have an ID.
|
||||||
|
|
@ -747,9 +744,9 @@ function item_post(App $a) {
|
||||||
|
|
||||||
call_hooks('post_local',$datarray);
|
call_hooks('post_local',$datarray);
|
||||||
|
|
||||||
if (x($datarray,'cancel')) {
|
if(x($datarray,'cancel')) {
|
||||||
logger('mod_item: post cancelled by plugin.');
|
logger('mod_item: post cancelled by plugin.');
|
||||||
if ($return_path) {
|
if($return_path) {
|
||||||
goaway($return_path);
|
goaway($return_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -765,7 +762,7 @@ function item_post(App $a) {
|
||||||
// Fill the cache field
|
// Fill the cache field
|
||||||
put_item_in_cache($datarray);
|
put_item_in_cache($datarray);
|
||||||
|
|
||||||
if ($orig_post) {
|
if($orig_post) {
|
||||||
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `attach` = '%s', `file` = '%s', `rendered-html` = '%s', `rendered-hash` = '%s', `edited` = '%s', `changed` = '%s' WHERE `id` = %d AND `uid` = %d",
|
$r = q("UPDATE `item` SET `title` = '%s', `body` = '%s', `tag` = '%s', `attach` = '%s', `file` = '%s', `rendered-html` = '%s', `rendered-hash` = '%s', `edited` = '%s', `changed` = '%s' WHERE `id` = %d AND `uid` = %d",
|
||||||
dbesc($datarray['title']),
|
dbesc($datarray['title']),
|
||||||
dbesc($datarray['body']),
|
dbesc($datarray['body']),
|
||||||
|
|
@ -788,7 +785,7 @@ function item_post(App $a) {
|
||||||
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
||||||
|
|
||||||
proc_run(PRIORITY_HIGH, "include/notifier.php", 'edit_post', $post_id);
|
proc_run(PRIORITY_HIGH, "include/notifier.php", 'edit_post', $post_id);
|
||||||
if ((x($_REQUEST,'return')) && strlen($return_path)) {
|
if((x($_REQUEST,'return')) && strlen($return_path)) {
|
||||||
logger('return: ' . $return_path);
|
logger('return: ' . $return_path);
|
||||||
goaway($return_path);
|
goaway($return_path);
|
||||||
}
|
}
|
||||||
|
|
@ -903,7 +900,7 @@ function item_post(App $a) {
|
||||||
// update filetags in pconfig
|
// update filetags in pconfig
|
||||||
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
file_tag_update_pconfig($uid,$categories_old,$categories_new,'category');
|
||||||
|
|
||||||
if ($parent) {
|
if($parent) {
|
||||||
|
|
||||||
// This item is the last leaf and gets the comment box, clear any ancestors
|
// This item is the last leaf and gets the comment box, clear any ancestors
|
||||||
$r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent` = %d AND `last-child` AND `id` != %d",
|
$r = q("UPDATE `item` SET `last-child` = 0, `changed` = '%s' WHERE `parent` = %d AND `last-child` AND `id` != %d",
|
||||||
|
|
@ -919,7 +916,7 @@ function item_post(App $a) {
|
||||||
intval($parent)
|
intval($parent)
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($contact_record != $author) {
|
if($contact_record != $author) {
|
||||||
notification(array(
|
notification(array(
|
||||||
'type' => NOTIFY_COMMENT,
|
'type' => NOTIFY_COMMENT,
|
||||||
'notify_flags' => $user['notify-flags'],
|
'notify_flags' => $user['notify-flags'],
|
||||||
|
|
@ -951,7 +948,7 @@ function item_post(App $a) {
|
||||||
intval($parent),
|
intval($parent),
|
||||||
intval($post_id));
|
intval($post_id));
|
||||||
|
|
||||||
if ($contact_record != $author) {
|
if($contact_record != $author) {
|
||||||
notification(array(
|
notification(array(
|
||||||
'type' => NOTIFY_WALL,
|
'type' => NOTIFY_WALL,
|
||||||
'notify_flags' => $user['notify-flags'],
|
'notify_flags' => $user['notify-flags'],
|
||||||
|
|
@ -960,7 +957,7 @@ function item_post(App $a) {
|
||||||
'to_email' => $user['email'],
|
'to_email' => $user['email'],
|
||||||
'uid' => $user['uid'],
|
'uid' => $user['uid'],
|
||||||
'item' => $datarray,
|
'item' => $datarray,
|
||||||
'link' => App::get_baseurl().'/display/'.urlencode($datarray['guid']),
|
'link' => App::get_baseurl().'/display/'.urlencode($datarray['guid']),
|
||||||
'source_name' => $datarray['author-name'],
|
'source_name' => $datarray['author-name'],
|
||||||
'source_link' => $datarray['author-link'],
|
'source_link' => $datarray['author-link'],
|
||||||
'source_photo' => $datarray['author-avatar'],
|
'source_photo' => $datarray['author-avatar'],
|
||||||
|
|
@ -972,12 +969,12 @@ function item_post(App $a) {
|
||||||
|
|
||||||
call_hooks('post_local_end', $datarray);
|
call_hooks('post_local_end', $datarray);
|
||||||
|
|
||||||
if (strlen($emailcc) && $profile_uid == local_user()) {
|
if(strlen($emailcc) && $profile_uid == local_user()) {
|
||||||
$erecips = explode(',', $emailcc);
|
$erecips = explode(',', $emailcc);
|
||||||
if (count($erecips)) {
|
if(count($erecips)) {
|
||||||
foreach ($erecips as $recip) {
|
foreach($erecips as $recip) {
|
||||||
$addr = trim($recip);
|
$addr = trim($recip);
|
||||||
if (! strlen($addr))
|
if(! strlen($addr))
|
||||||
continue;
|
continue;
|
||||||
$disclaimer = '<hr />' . sprintf( t('This message was sent to you by %s, a member of the Friendica social network.'),$a->user['username'])
|
$disclaimer = '<hr />' . sprintf( t('This message was sent to you by %s, a member of the Friendica social network.'),$a->user['username'])
|
||||||
. '<br />';
|
. '<br />';
|
||||||
|
|
@ -1035,9 +1032,8 @@ function item_post(App $a) {
|
||||||
function item_post_return($baseurl, $api_source, $return_path) {
|
function item_post_return($baseurl, $api_source, $return_path) {
|
||||||
// figure out how to return, depending on from whence we came
|
// figure out how to return, depending on from whence we came
|
||||||
|
|
||||||
if ($api_source) {
|
if($api_source)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
if ($return_path) {
|
if ($return_path) {
|
||||||
goaway($return_path);
|
goaway($return_path);
|
||||||
|
|
@ -1115,24 +1111,19 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag, $netwo
|
||||||
|
|
||||||
$r = q("SELECT `alias`, `name` FROM `contact` WHERE `nurl` = '%s' AND `alias` != '' AND `uid` = 0",
|
$r = q("SELECT `alias`, `name` FROM `contact` WHERE `nurl` = '%s' AND `alias` != '' AND `uid` = 0",
|
||||||
normalise_link($matches[1]));
|
normalise_link($matches[1]));
|
||||||
|
if (!$r)
|
||||||
if (!dbm::is_result($r)) {
|
|
||||||
$r = q("SELECT `alias`, `name` FROM `gcontact` WHERE `nurl` = '%s' AND `alias` != ''",
|
$r = q("SELECT `alias`, `name` FROM `gcontact` WHERE `nurl` = '%s' AND `alias` != ''",
|
||||||
normalise_link($matches[1]));
|
normalise_link($matches[1]));
|
||||||
|
if ($r)
|
||||||
}
|
|
||||||
if (dbm::is_result($r)) {
|
|
||||||
$data = $r[0];
|
$data = $r[0];
|
||||||
} else {
|
else
|
||||||
$data = probe_url($matches[1]);
|
$data = probe_url($matches[1]);
|
||||||
}
|
|
||||||
|
|
||||||
if ($data["alias"] != "") {
|
if ($data["alias"] != "") {
|
||||||
$newtag = '@[url='.$data["alias"].']'.$data["name"].'[/url]';
|
$newtag = '@[url='.$data["alias"].']'.$data["name"].'[/url]';
|
||||||
if (!stristr($str_tags,$newtag)) {
|
if(!stristr($str_tags,$newtag)) {
|
||||||
if (strlen($str_tags)) {
|
if(strlen($str_tags))
|
||||||
$str_tags .= ',';
|
$str_tags .= ',';
|
||||||
}
|
|
||||||
$str_tags .= $newtag;
|
$str_tags .= $newtag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1164,7 +1155,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag, $netwo
|
||||||
);
|
);
|
||||||
|
|
||||||
// Then check in the contact table for the url
|
// Then check in the contact table for the url
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r)
|
||||||
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network`, `notify` FROM `contact`
|
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network`, `notify` FROM `contact`
|
||||||
WHERE `nurl` = '%s' AND `uid` = %d AND
|
WHERE `nurl` = '%s' AND `uid` = %d AND
|
||||||
(`network` != '%s' OR (`notify` != '' AND `alias` != ''))
|
(`network` != '%s' OR (`notify` != '' AND `alias` != ''))
|
||||||
|
|
@ -1173,7 +1164,6 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag, $netwo
|
||||||
intval($profile_uid),
|
intval($profile_uid),
|
||||||
dbesc(NETWORK_OSTATUS)
|
dbesc(NETWORK_OSTATUS)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
// Then check in the global contacts for the address
|
// Then check in the global contacts for the address
|
||||||
if (!$r)
|
if (!$r)
|
||||||
|
|
@ -1185,16 +1175,15 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag, $netwo
|
||||||
);
|
);
|
||||||
|
|
||||||
// Then check in the global contacts for the url
|
// Then check in the global contacts for the url
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r)
|
||||||
$r = q("SELECT `url`, `nick`, `name`, `alias`, `network`, `notify` FROM `gcontact`
|
$r = q("SELECT `url`, `nick`, `name`, `alias`, `network`, `notify` FROM `gcontact`
|
||||||
WHERE `nurl` = '%s' AND (`network` != '%s' OR (`notify` != '' AND `alias` != ''))
|
WHERE `nurl` = '%s' AND (`network` != '%s' OR (`notify` != '' AND `alias` != ''))
|
||||||
LIMIT 1",
|
LIMIT 1",
|
||||||
dbesc(normalise_link($name)),
|
dbesc(normalise_link($name)),
|
||||||
dbesc(NETWORK_OSTATUS)
|
dbesc(NETWORK_OSTATUS)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r) {
|
||||||
$probed = probe_url($name);
|
$probed = probe_url($name);
|
||||||
if ($result['network'] != NETWORK_PHANTOM) {
|
if ($result['network'] != NETWORK_PHANTOM) {
|
||||||
update_gcontact($probed);
|
update_gcontact($probed);
|
||||||
|
|
@ -1215,60 +1204,54 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag, $netwo
|
||||||
}
|
}
|
||||||
|
|
||||||
//select someone by attag or nick and the name passed in the current network
|
//select someone by attag or nick and the name passed in the current network
|
||||||
if (!dbm::is_result($r) AND ($network != "")) {
|
if(!$r AND ($network != ""))
|
||||||
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network` FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `network` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
|
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network` FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `network` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
|
||||||
dbesc($name),
|
dbesc($name),
|
||||||
dbesc($name),
|
dbesc($name),
|
||||||
dbesc($network),
|
dbesc($network),
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
//select someone from this user's contacts by name in the current network
|
//select someone from this user's contacts by name in the current network
|
||||||
if (!dbm::is_result($r) AND ($network != "")) {
|
if (!$r AND ($network != ""))
|
||||||
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network` FROM `contact` WHERE `name` = '%s' AND `network` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network` FROM `contact` WHERE `name` = '%s' AND `network` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($name),
|
dbesc($name),
|
||||||
dbesc($network),
|
dbesc($network),
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
//select someone by attag or nick and the name passed in
|
//select someone by attag or nick and the name passed in
|
||||||
if (!dbm::is_result($r)) {
|
if(!$r)
|
||||||
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network` FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
|
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network` FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
|
||||||
dbesc($name),
|
dbesc($name),
|
||||||
dbesc($name),
|
dbesc($name),
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
//select someone from this user's contacts by name
|
//select someone from this user's contacts by name
|
||||||
if (!dbm::is_result($r)) {
|
if(!$r)
|
||||||
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network` FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `id`, `url`, `nick`, `name`, `alias`, `network` FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($name),
|
dbesc($name),
|
||||||
intval($profile_uid)
|
intval($profile_uid)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if ($r) {
|
||||||
if (strlen($inform) AND (isset($r[0]["notify"]) OR isset($r[0]["id"]))) {
|
if(strlen($inform) AND (isset($r[0]["notify"]) OR isset($r[0]["id"])))
|
||||||
$inform .= ',';
|
$inform .= ',';
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($r[0]["id"])) {
|
if (isset($r[0]["id"]))
|
||||||
$inform .= 'cid:' . $r[0]["id"];
|
$inform .= 'cid:' . $r[0]["id"];
|
||||||
} elseif (isset($r[0]["notify"])) {
|
elseif (isset($r[0]["notify"]))
|
||||||
$inform .= $r[0]["notify"];
|
$inform .= $r[0]["notify"];
|
||||||
}
|
|
||||||
|
|
||||||
$profile = $r[0]["url"];
|
$profile = $r[0]["url"];
|
||||||
$alias = $r[0]["alias"];
|
$alias = $r[0]["alias"];
|
||||||
$newname = $r[0]["nick"];
|
$newname = $r[0]["nick"];
|
||||||
if (($newname == "") OR (($r[0]["network"] != NETWORK_OSTATUS) AND ($r[0]["network"] != NETWORK_TWITTER)
|
if (($newname == "") OR (($r[0]["network"] != NETWORK_OSTATUS) AND ($r[0]["network"] != NETWORK_TWITTER)
|
||||||
AND ($r[0]["network"] != NETWORK_STATUSNET) AND ($r[0]["network"] != NETWORK_APPNET))) {
|
AND ($r[0]["network"] != NETWORK_STATUSNET) AND ($r[0]["network"] != NETWORK_APPNET)))
|
||||||
$newname = $r[0]["name"];
|
$newname = $r[0]["name"];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//if there is an url for this persons profile
|
//if there is an url for this persons profile
|
||||||
|
|
@ -1280,22 +1263,20 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag, $netwo
|
||||||
$newtag = '@[url='.$profile.']'.$newname.'[/url]';
|
$newtag = '@[url='.$profile.']'.$newname.'[/url]';
|
||||||
$body = str_replace('@'.$name, $newtag, $body);
|
$body = str_replace('@'.$name, $newtag, $body);
|
||||||
//append tag to str_tags
|
//append tag to str_tags
|
||||||
if (! stristr($str_tags,$newtag)) {
|
if(! stristr($str_tags,$newtag)) {
|
||||||
if (strlen($str_tags)) {
|
if(strlen($str_tags))
|
||||||
$str_tags .= ',';
|
$str_tags .= ',';
|
||||||
}
|
|
||||||
$str_tags .= $newtag;
|
$str_tags .= $newtag;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Status.Net seems to require the numeric ID URL in a mention if the person isn't
|
// Status.Net seems to require the numeric ID URL in a mention if the person isn't
|
||||||
// subscribed to you. But the nickname URL is OK if they are. Grrr. We'll tag both.
|
// subscribed to you. But the nickname URL is OK if they are. Grrr. We'll tag both.
|
||||||
|
|
||||||
if (strlen($alias)) {
|
if(strlen($alias)) {
|
||||||
$newtag = '@[url='.$alias.']'.$newname.'[/url]';
|
$newtag = '@[url='.$alias.']'.$newname.'[/url]';
|
||||||
if (! stristr($str_tags,$newtag)) {
|
if(! stristr($str_tags,$newtag)) {
|
||||||
if (strlen($str_tags)) {
|
if(strlen($str_tags))
|
||||||
$str_tags .= ',';
|
$str_tags .= ',';
|
||||||
}
|
|
||||||
$str_tags .= $newtag;
|
$str_tags .= $newtag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
18
mod/like.php
Normal file → Executable file
18
mod/like.php
Normal file → Executable file
|
|
@ -6,23 +6,20 @@ require_once('include/items.php');
|
||||||
require_once('include/like.php');
|
require_once('include/like.php');
|
||||||
|
|
||||||
function like_content(App $a) {
|
function like_content(App $a) {
|
||||||
if (! local_user() && ! remote_user()) {
|
if(! local_user() && ! remote_user()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$verb = notags(trim($_GET['verb']));
|
$verb = notags(trim($_GET['verb']));
|
||||||
|
|
||||||
if (! $verb) {
|
if(! $verb)
|
||||||
$verb = 'like';
|
$verb = 'like';
|
||||||
}
|
|
||||||
|
|
||||||
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
|
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
|
||||||
|
|
||||||
$r = do_like($item_id, $verb);
|
$r = do_like($item_id, $verb);
|
||||||
if (!$r) {
|
if (!$r) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// See if we've been passed a return path to redirect to
|
// See if we've been passed a return path to redirect to
|
||||||
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
|
$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
|
||||||
|
|
@ -38,13 +35,10 @@ function like_content(App $a) {
|
||||||
|
|
||||||
function like_content_return($baseurl, $return_path) {
|
function like_content_return($baseurl, $return_path) {
|
||||||
|
|
||||||
if ($return_path) {
|
if($return_path) {
|
||||||
$rand = '_=' . time();
|
$rand = '_=' . time();
|
||||||
if (strpos($return_path, '?')) {
|
if(strpos($return_path, '?')) $rand = "&$rand";
|
||||||
$rand = "&$rand";
|
else $rand = "?$rand";
|
||||||
} else {
|
|
||||||
$rand = "?$rand";
|
|
||||||
}
|
|
||||||
|
|
||||||
goaway($baseurl . "/" . $return_path . $rand);
|
goaway($baseurl . "/" . $return_path . $rand);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,23 +6,20 @@ require_once('include/datetime.php');
|
||||||
function localtime_post(App $a) {
|
function localtime_post(App $a) {
|
||||||
|
|
||||||
$t = $_REQUEST['time'];
|
$t = $_REQUEST['time'];
|
||||||
if (! $t) {
|
if(! $t)
|
||||||
$t = 'now';
|
$t = 'now';
|
||||||
}
|
|
||||||
|
|
||||||
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
|
$bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
|
||||||
|
|
||||||
if ($_POST['timezone']) {
|
if($_POST['timezone'])
|
||||||
$a->data['mod-localtime'] = datetime_convert('UTC',$_POST['timezone'],$t,$bd_format);
|
$a->data['mod-localtime'] = datetime_convert('UTC',$_POST['timezone'],$t,$bd_format);
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function localtime_content(App $a) {
|
function localtime_content(App $a) {
|
||||||
$t = $_REQUEST['time'];
|
$t = $_REQUEST['time'];
|
||||||
if (! $t) {
|
if(! $t)
|
||||||
$t = 'now';
|
$t = 'now';
|
||||||
}
|
|
||||||
|
|
||||||
$o .= '<h3>' . t('Time Conversion') . '</h3>';
|
$o .= '<h3>' . t('Time Conversion') . '</h3>';
|
||||||
|
|
||||||
|
|
@ -32,13 +29,11 @@ function localtime_content(App $a) {
|
||||||
|
|
||||||
$o .= '<p>' . sprintf( t('UTC time: %s'), $t) . '</p>';
|
$o .= '<p>' . sprintf( t('UTC time: %s'), $t) . '</p>';
|
||||||
|
|
||||||
if ($_REQUEST['timezone']) {
|
if($_REQUEST['timezone'])
|
||||||
$o .= '<p>' . sprintf( t('Current timezone: %s'), $_REQUEST['timezone']) . '</p>';
|
$o .= '<p>' . sprintf( t('Current timezone: %s'), $_REQUEST['timezone']) . '</p>';
|
||||||
}
|
|
||||||
|
|
||||||
if (x($a->data,'mod-localtime')) {
|
if(x($a->data,'mod-localtime'))
|
||||||
$o .= '<p>' . sprintf( t('Converted localtime: %s'),$a->data['mod-localtime']) . '</p>';
|
$o .= '<p>' . sprintf( t('Converted localtime: %s'),$a->data['mod-localtime']) . '</p>';
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$o .= '<form action ="' . App::get_baseurl() . '/localtime?f=&time=' . $t . '" method="post" >';
|
$o .= '<form action ="' . App::get_baseurl() . '/localtime?f=&time=' . $t . '" method="post" >';
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ function lockview_content(App $a) {
|
||||||
$item_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
|
$item_id = (($a->argc > 2) ? intval($a->argv[2]) : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $item_id)
|
if(! $item_id)
|
||||||
killme();
|
killme();
|
||||||
|
|
||||||
if (!in_array($type, array('item','photo','event')))
|
if (!in_array($type, array('item','photo','event')))
|
||||||
|
|
@ -28,13 +28,13 @@ function lockview_content(App $a) {
|
||||||
|
|
||||||
call_hooks('lockview_content', $item);
|
call_hooks('lockview_content', $item);
|
||||||
|
|
||||||
if ($item['uid'] != local_user()) {
|
if($item['uid'] != local_user()) {
|
||||||
echo t('Remote privacy information not available.') . '<br />';
|
echo t('Remote privacy information not available.') . '<br />';
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (($item['private'] == 1) && (! strlen($item['allow_cid'])) && (! strlen($item['allow_gid']))
|
if(($item['private'] == 1) && (! strlen($item['allow_cid'])) && (! strlen($item['allow_gid']))
|
||||||
&& (! strlen($item['deny_cid'])) && (! strlen($item['deny_gid']))) {
|
&& (! strlen($item['deny_cid'])) && (! strlen($item['deny_gid']))) {
|
||||||
|
|
||||||
echo t('Remote privacy information not available.') . '<br />';
|
echo t('Remote privacy information not available.') . '<br />';
|
||||||
|
|
@ -49,47 +49,39 @@ function lockview_content(App $a) {
|
||||||
$o = t('Visible to:') . '<br />';
|
$o = t('Visible to:') . '<br />';
|
||||||
$l = array();
|
$l = array();
|
||||||
|
|
||||||
if (count($allowed_groups)) {
|
if(count($allowed_groups)) {
|
||||||
$r = q("SELECT `name` FROM `group` WHERE `id` IN ( %s )",
|
$r = q("SELECT `name` FROM `group` WHERE `id` IN ( %s )",
|
||||||
dbesc(implode(', ', $allowed_groups))
|
dbesc(implode(', ', $allowed_groups))
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
$l[] = '<b>' . $rr['name'] . '</b>';
|
$l[] = '<b>' . $rr['name'] . '</b>';
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (count($allowed_users)) {
|
if(count($allowed_users)) {
|
||||||
$r = q("SELECT `name` FROM `contact` WHERE `id` IN ( %s )",
|
$r = q("SELECT `name` FROM `contact` WHERE `id` IN ( %s )",
|
||||||
dbesc(implode(', ',$allowed_users))
|
dbesc(implode(', ',$allowed_users))
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
$l[] = $rr['name'];
|
$l[] = $rr['name'];
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($deny_groups)) {
|
if(count($deny_groups)) {
|
||||||
$r = q("SELECT `name` FROM `group` WHERE `id` IN ( %s )",
|
$r = q("SELECT `name` FROM `group` WHERE `id` IN ( %s )",
|
||||||
dbesc(implode(', ', $deny_groups))
|
dbesc(implode(', ', $deny_groups))
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
$l[] = '<b><strike>' . $rr['name'] . '</strike></b>';
|
$l[] = '<b><strike>' . $rr['name'] . '</strike></b>';
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (count($deny_users)) {
|
if(count($deny_users)) {
|
||||||
$r = q("SELECT `name` FROM `contact` WHERE `id` IN ( %s )",
|
$r = q("SELECT `name` FROM `contact` WHERE `id` IN ( %s )",
|
||||||
dbesc(implode(', ',$deny_users))
|
dbesc(implode(', ',$deny_users))
|
||||||
);
|
);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
$l[] = '<strike>' . $rr['name'] . '</strike>';
|
$l[] = '<strike>' . $rr['name'] . '</strike>';
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
function login_content(App $a) {
|
function login_content(App $a) {
|
||||||
if (x($_SESSION,'theme')) {
|
if(x($_SESSION,'theme'))
|
||||||
unset($_SESSION['theme']);
|
unset($_SESSION['theme']);
|
||||||
}
|
if(x($_SESSION,'mobile-theme'))
|
||||||
if (x($_SESSION,'mobile-theme')) {
|
|
||||||
unset($_SESSION['mobile-theme']);
|
unset($_SESSION['mobile-theme']);
|
||||||
}
|
|
||||||
|
|
||||||
if (local_user()) {
|
if(local_user())
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
}
|
|
||||||
return login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);
|
return login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ require_once('include/text.php');
|
||||||
function lostpass_post(App $a) {
|
function lostpass_post(App $a) {
|
||||||
|
|
||||||
$loginame = notags(trim($_POST['login-name']));
|
$loginame = notags(trim($_POST['login-name']));
|
||||||
if (! $loginame)
|
if(! $loginame)
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
|
|
||||||
$r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' ) AND `verified` = 1 AND `blocked` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' ) AND `verified` = 1 AND `blocked` = 0 LIMIT 1",
|
||||||
|
|
@ -31,7 +31,7 @@ function lostpass_post(App $a) {
|
||||||
dbesc($new_password_encoded),
|
dbesc($new_password_encoded),
|
||||||
intval($uid)
|
intval($uid)
|
||||||
);
|
);
|
||||||
if ($r)
|
if($r)
|
||||||
info( t('Password reset request issued. Check your email.') . EOL);
|
info( t('Password reset request issued. Check your email.') . EOL);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -79,7 +79,8 @@ function lostpass_post(App $a) {
|
||||||
|
|
||||||
function lostpass_content(App $a) {
|
function lostpass_content(App $a) {
|
||||||
|
|
||||||
if (x($_GET,'verify')) {
|
|
||||||
|
if(x($_GET,'verify')) {
|
||||||
$verify = $_GET['verify'];
|
$verify = $_GET['verify'];
|
||||||
$hash = hash('whirlpool', $verify);
|
$hash = hash('whirlpool', $verify);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ function manage_post(App $a) {
|
||||||
$uid = local_user();
|
$uid = local_user();
|
||||||
$orig_record = $a->user;
|
$orig_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)) {
|
||||||
|
|
@ -22,34 +22,34 @@ function manage_post(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT * FROM `manage` WHERE `uid` = %d",
|
$r = q("select * from manage where uid = %d",
|
||||||
intval($uid)
|
intval($uid)
|
||||||
);
|
);
|
||||||
|
|
||||||
$submanage = $r;
|
$submanage = $r;
|
||||||
|
|
||||||
$identity = ((x($_POST['identity'])) ? intval($_POST['identity']) : 0);
|
$identity = ((x($_POST['identity'])) ? intval($_POST['identity']) : 0);
|
||||||
if (! $identity) {
|
if(! $identity)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$limited_id = 0;
|
$limited_id = 0;
|
||||||
$original_id = $uid;
|
$original_id = $uid;
|
||||||
|
|
||||||
if (count($submanage)) {
|
if(count($submanage)) {
|
||||||
foreach ($submanage as $m) {
|
foreach($submanage as $m) {
|
||||||
if ($identity == $m['mid']) {
|
if($identity == $m['mid']) {
|
||||||
$limited_id = $m['mid'];
|
$limited_id = $m['mid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($limited_id) {
|
if($limited_id) {
|
||||||
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
|
||||||
intval($limited_id)
|
intval($limited_id)
|
||||||
);
|
);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$r = q("SELECT * FROM `user` WHERE `uid` = %d AND `email` = '%s' AND `password` = '%s' LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `uid` = %d AND `email` = '%s' AND `password` = '%s' LIMIT 1",
|
||||||
intval($identity),
|
intval($identity),
|
||||||
dbesc($orig_record['email']),
|
dbesc($orig_record['email']),
|
||||||
|
|
@ -70,22 +70,18 @@ function manage_post(App $a) {
|
||||||
unset($_SESSION['mobile-theme']);
|
unset($_SESSION['mobile-theme']);
|
||||||
unset($_SESSION['page_flags']);
|
unset($_SESSION['page_flags']);
|
||||||
unset($_SESSION['return_url']);
|
unset($_SESSION['return_url']);
|
||||||
if (x($_SESSION,'submanage')) {
|
if(x($_SESSION,'submanage'))
|
||||||
unset($_SESSION['submanage']);
|
unset($_SESSION['submanage']);
|
||||||
}
|
if(x($_SESSION,'sysmsg'))
|
||||||
if (x($_SESSION,'sysmsg')) {
|
|
||||||
unset($_SESSION['sysmsg']);
|
unset($_SESSION['sysmsg']);
|
||||||
}
|
if(x($_SESSION,'sysmsg_info'))
|
||||||
if (x($_SESSION,'sysmsg_info')) {
|
|
||||||
unset($_SESSION['sysmsg_info']);
|
unset($_SESSION['sysmsg_info']);
|
||||||
}
|
|
||||||
|
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
authenticate_success($r[0],true,true);
|
authenticate_success($r[0],true,true);
|
||||||
|
|
||||||
if ($limited_id) {
|
if($limited_id)
|
||||||
$_SESSION['submanage'] = $original_id;
|
$_SESSION['submanage'] = $original_id;
|
||||||
}
|
|
||||||
|
|
||||||
$ret = array();
|
$ret = array();
|
||||||
call_hooks('home_init',$ret);
|
call_hooks('home_init',$ret);
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ function match_content(App $a) {
|
||||||
if (! dbm::is_result($r)) {
|
if (! dbm::is_result($r)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (! $r[0]['pub_keywords'] && (! $r[0]['prv_keywords'])) {
|
if(! $r[0]['pub_keywords'] && (! $r[0]['prv_keywords'])) {
|
||||||
notice( t('No keywords to match. Please add keywords to your default profile.') . EOL);
|
notice( t('No keywords to match. Please add keywords to your default profile.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -39,28 +39,28 @@ function match_content(App $a) {
|
||||||
$params = array();
|
$params = array();
|
||||||
$tags = trim($r[0]['pub_keywords'] . ' ' . $r[0]['prv_keywords']);
|
$tags = trim($r[0]['pub_keywords'] . ' ' . $r[0]['prv_keywords']);
|
||||||
|
|
||||||
if ($tags) {
|
if($tags) {
|
||||||
$params['s'] = $tags;
|
$params['s'] = $tags;
|
||||||
if ($a->pager['page'] != 1)
|
if($a->pager['page'] != 1)
|
||||||
$params['p'] = $a->pager['page'];
|
$params['p'] = $a->pager['page'];
|
||||||
|
|
||||||
if (strlen(get_config('system','directory')))
|
if(strlen(get_config('system','directory')))
|
||||||
$x = post_url(get_server().'/msearch', $params);
|
$x = post_url(get_server().'/msearch', $params);
|
||||||
else
|
else
|
||||||
$x = post_url(App::get_baseurl() . '/msearch', $params);
|
$x = post_url(App::get_baseurl() . '/msearch', $params);
|
||||||
|
|
||||||
$j = json_decode($x);
|
$j = json_decode($x);
|
||||||
|
|
||||||
if ($j->total) {
|
if($j->total) {
|
||||||
$a->set_pager_total($j->total);
|
$a->set_pager_total($j->total);
|
||||||
$a->set_pager_itemspage($j->items_page);
|
$a->set_pager_itemspage($j->items_page);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($j->results)) {
|
if(count($j->results)) {
|
||||||
|
|
||||||
$id = 0;
|
$id = 0;
|
||||||
|
|
||||||
foreach ($j->results as $jj) {
|
foreach($j->results as $jj) {
|
||||||
$match_nurl = normalise_link($jj->url);
|
$match_nurl = normalise_link($jj->url);
|
||||||
$match = q("SELECT `nurl` FROM `contact` WHERE `uid` = '%d' AND nurl='%s' LIMIT 1",
|
$match = q("SELECT `nurl` FROM `contact` WHERE `uid` = '%d' AND nurl='%s' LIMIT 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
|
|
|
||||||
100
mod/message.php
100
mod/message.php
|
|
@ -75,18 +75,18 @@ function message_post(App $a) {
|
||||||
|
|
||||||
// fake it to go back to the input form if no recipient listed
|
// fake it to go back to the input form if no recipient listed
|
||||||
|
|
||||||
if ($norecip) {
|
if($norecip) {
|
||||||
$a->argc = 2;
|
$a->argc = 2;
|
||||||
$a->argv[1] = 'new';
|
$a->argv[1] = 'new';
|
||||||
} else {
|
|
||||||
goaway($_SESSION['return_url']);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
goaway($_SESSION['return_url']);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: the code in 'item_extract_images' and 'item_redir_and_replace_images'
|
// Note: the code in 'item_extract_images' and 'item_redir_and_replace_images'
|
||||||
// is identical to the code in include/conversation.php
|
// is identical to the code in include/conversation.php
|
||||||
if (! function_exists('item_extract_images')) {
|
if(! function_exists('item_extract_images')) {
|
||||||
function item_extract_images($body) {
|
function item_extract_images($body) {
|
||||||
|
|
||||||
$saved_image = array();
|
$saved_image = array();
|
||||||
|
|
@ -97,27 +97,26 @@ function item_extract_images($body) {
|
||||||
$img_start = strpos($orig_body, '[img');
|
$img_start = strpos($orig_body, '[img');
|
||||||
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
||||||
$img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
|
$img_end = ($img_start !== false ? strpos(substr($orig_body, $img_start), '[/img]') : false);
|
||||||
while (($img_st_close !== false) && ($img_end !== false)) {
|
while(($img_st_close !== false) && ($img_end !== false)) {
|
||||||
|
|
||||||
$img_st_close++; // make it point to AFTER the closing bracket
|
$img_st_close++; // make it point to AFTER the closing bracket
|
||||||
$img_end += $img_start;
|
$img_end += $img_start;
|
||||||
|
|
||||||
if (! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
|
if(! strcmp(substr($orig_body, $img_start + $img_st_close, 5), 'data:')) {
|
||||||
// This is an embedded image
|
// This is an embedded image
|
||||||
|
|
||||||
$saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
|
$saved_image[$cnt] = substr($orig_body, $img_start + $img_st_close, $img_end - ($img_start + $img_st_close));
|
||||||
$new_body = $new_body . substr($orig_body, 0, $img_start) . '[!#saved_image' . $cnt . '#!]';
|
$new_body = $new_body . substr($orig_body, 0, $img_start) . '[!#saved_image' . $cnt . '#!]';
|
||||||
|
|
||||||
$cnt++;
|
$cnt++;
|
||||||
} else {
|
|
||||||
$new_body = $new_body . substr($orig_body, 0, $img_end + strlen('[/img]'));
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
$new_body = $new_body . substr($orig_body, 0, $img_end + strlen('[/img]'));
|
||||||
|
|
||||||
$orig_body = substr($orig_body, $img_end + strlen('[/img]'));
|
$orig_body = substr($orig_body, $img_end + strlen('[/img]'));
|
||||||
|
|
||||||
if ($orig_body === false) {// in case the body ends on a closing image tag
|
if($orig_body === false) // in case the body ends on a closing image tag
|
||||||
$orig_body = '';
|
$orig_body = '';
|
||||||
}
|
|
||||||
|
|
||||||
$img_start = strpos($orig_body, '[img');
|
$img_start = strpos($orig_body, '[img');
|
||||||
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
|
||||||
|
|
@ -129,13 +128,13 @@ function item_extract_images($body) {
|
||||||
return array('body' => $new_body, 'images' => $saved_image);
|
return array('body' => $new_body, 'images' => $saved_image);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if (! function_exists('item_redir_and_replace_images')) {
|
if(! function_exists('item_redir_and_replace_images')) {
|
||||||
function item_redir_and_replace_images($body, $images, $cid) {
|
function item_redir_and_replace_images($body, $images, $cid) {
|
||||||
|
|
||||||
$origbody = $body;
|
$origbody = $body;
|
||||||
$newbody = '';
|
$newbody = '';
|
||||||
|
|
||||||
for ($i = 0; $i < count($images); $i++) {
|
for($i = 0; $i < count($images); $i++) {
|
||||||
$search = '/\[url\=(.*?)\]\[!#saved_image' . $i . '#!\]\[\/url\]' . '/is';
|
$search = '/\[url\=(.*?)\]\[!#saved_image' . $i . '#!\]\[\/url\]' . '/is';
|
||||||
$replace = '[url=' . z_path() . '/redir/' . $cid
|
$replace = '[url=' . z_path() . '/redir/' . $cid
|
||||||
. '?f=1&url=' . '$1' . '][!#saved_image' . $i . '#!][/url]' ;
|
. '?f=1&url=' . '$1' . '][!#saved_image' . $i . '#!][/url]' ;
|
||||||
|
|
@ -182,18 +181,18 @@ function message_content(App $a) {
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
if (($a->argc == 3) && ($a->argv[1] === 'drop' || $a->argv[1] === 'dropconv')) {
|
if(($a->argc == 3) && ($a->argv[1] === 'drop' || $a->argv[1] === 'dropconv')) {
|
||||||
if (! intval($a->argv[2]))
|
if(! intval($a->argv[2]))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Check if we should do HTML-based delete confirmation
|
// Check if we should do HTML-based delete confirmation
|
||||||
if ($_REQUEST['confirm']) {
|
if($_REQUEST['confirm']) {
|
||||||
// <form> can't take arguments in its "action" parameter
|
// <form> can't take arguments in its "action" parameter
|
||||||
// so add any arguments as hidden inputs
|
// so add any arguments as hidden inputs
|
||||||
$query = explode_querystring($a->query_string);
|
$query = explode_querystring($a->query_string);
|
||||||
$inputs = array();
|
$inputs = array();
|
||||||
foreach ($query['args'] as $arg) {
|
foreach($query['args'] as $arg) {
|
||||||
if (strpos($arg, 'confirm=') === false) {
|
if(strpos($arg, 'confirm=') === false) {
|
||||||
$arg_parts = explode('=', $arg);
|
$arg_parts = explode('=', $arg);
|
||||||
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
$inputs[] = array('name' => $arg_parts[0], 'value' => $arg_parts[1]);
|
||||||
}
|
}
|
||||||
|
|
@ -211,12 +210,12 @@ function message_content(App $a) {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
// Now check how the user responded to the confirmation query
|
// Now check how the user responded to the confirmation query
|
||||||
if ($_REQUEST['canceled']) {
|
if($_REQUEST['canceled']) {
|
||||||
goaway($_SESSION['return_url']);
|
goaway($_SESSION['return_url']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$cmd = $a->argv[1];
|
$cmd = $a->argv[1];
|
||||||
if ($cmd === 'drop') {
|
if($cmd === 'drop') {
|
||||||
$r = q("DELETE FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("DELETE FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($a->argv[2]),
|
intval($a->argv[2]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -246,15 +245,14 @@ function message_content(App $a) {
|
||||||
// as we will never again have the info we need to re-create it.
|
// as we will never again have the info we need to re-create it.
|
||||||
// We'll just have to orphan it.
|
// We'll just have to orphan it.
|
||||||
|
|
||||||
//if ($convid) {
|
//if($convid) {
|
||||||
// q("delete from conv where id = %d limit 1",
|
// q("delete from conv where id = %d limit 1",
|
||||||
// intval($convid)
|
// intval($convid)
|
||||||
// );
|
// );
|
||||||
//}
|
//}
|
||||||
|
|
||||||
if ($r) {
|
if($r)
|
||||||
info( t('Conversation removed.') . EOL );
|
info( t('Conversation removed.') . EOL );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//goaway(App::get_baseurl(true) . '/message' );
|
//goaway(App::get_baseurl(true) . '/message' );
|
||||||
goaway($_SESSION['return_url']);
|
goaway($_SESSION['return_url']);
|
||||||
|
|
@ -262,7 +260,7 @@ function message_content(App $a) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 1) && ($a->argv[1] === 'new')) {
|
if(($a->argc > 1) && ($a->argv[1] === 'new')) {
|
||||||
|
|
||||||
$o .= $header;
|
$o .= $header;
|
||||||
|
|
||||||
|
|
@ -285,7 +283,7 @@ function message_content(App $a) {
|
||||||
|
|
||||||
$prename = $preurl = $preid = '';
|
$prename = $preurl = $preid = '';
|
||||||
|
|
||||||
if ($preselect) {
|
if($preselect) {
|
||||||
$r = q("SELECT `name`, `url`, `id` FROM `contact` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
$r = q("SELECT `name`, `url`, `id` FROM `contact` WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
intval($a->argv[2])
|
intval($a->argv[2])
|
||||||
|
|
@ -374,7 +372,7 @@ function message_content(App $a) {
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 1) && (intval($a->argv[1]))) {
|
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
|
|
||||||
$o .= $header;
|
$o .= $header;
|
||||||
|
|
||||||
|
|
@ -389,7 +387,7 @@ function message_content(App $a) {
|
||||||
$convid = $r[0]['convid'];
|
$convid = $r[0]['convid'];
|
||||||
|
|
||||||
$sql_extra = sprintf(" and `mail`.`parent-uri` = '%s' ", dbesc($r[0]['parent-uri']));
|
$sql_extra = sprintf(" and `mail`.`parent-uri` = '%s' ", dbesc($r[0]['parent-uri']));
|
||||||
if ($convid)
|
if($convid)
|
||||||
$sql_extra = sprintf(" and ( `mail`.`parent-uri` = '%s' OR `mail`.`convid` = '%d' ) ",
|
$sql_extra = sprintf(" and ( `mail`.`parent-uri` = '%s' OR `mail`.`convid` = '%d' ) ",
|
||||||
dbesc($r[0]['parent-uri']),
|
dbesc($r[0]['parent-uri']),
|
||||||
intval($convid)
|
intval($convid)
|
||||||
|
|
@ -401,7 +399,7 @@ function message_content(App $a) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (! count($messages)) {
|
if(! count($messages)) {
|
||||||
notice( t('Message not available.') . EOL );
|
notice( t('Message not available.') . EOL );
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
@ -431,11 +429,10 @@ function message_content(App $a) {
|
||||||
$seen = 0;
|
$seen = 0;
|
||||||
$unknown = false;
|
$unknown = false;
|
||||||
|
|
||||||
foreach ($messages as $message) {
|
foreach($messages as $message) {
|
||||||
if ($message['unknown']) {
|
if($message['unknown'])
|
||||||
$unknown = true;
|
$unknown = true;
|
||||||
}
|
if($message['from-url'] == $myprofile) {
|
||||||
if ($message['from-url'] == $myprofile) {
|
|
||||||
$from_url = $myprofile;
|
$from_url = $myprofile;
|
||||||
$sparkle = '';
|
$sparkle = '';
|
||||||
} elseif ($message['contact-id'] != 0) {
|
} elseif ($message['contact-id'] != 0) {
|
||||||
|
|
@ -448,11 +445,10 @@ function message_content(App $a) {
|
||||||
|
|
||||||
|
|
||||||
$extracted = item_extract_images($message['body']);
|
$extracted = item_extract_images($message['body']);
|
||||||
if ($extracted['images']) {
|
if($extracted['images'])
|
||||||
$message['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $message['contact-id']);
|
$message['body'] = item_redir_and_replace_images($extracted['body'], $extracted['images'], $message['contact-id']);
|
||||||
}
|
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal') {
|
if($a->theme['template_engine'] === 'internal') {
|
||||||
$from_name_e = template_escape($message['from-name']);
|
$from_name_e = template_escape($message['from-name']);
|
||||||
$subject_e = template_escape($message['title']);
|
$subject_e = template_escape($message['title']);
|
||||||
$body_e = template_escape(Smilies::replace(bbcode($message['body'])));
|
$body_e = template_escape(Smilies::replace(bbcode($message['body'])));
|
||||||
|
|
@ -465,24 +461,23 @@ function message_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$contact = get_contact_details_by_url($message['from-url']);
|
$contact = get_contact_details_by_url($message['from-url']);
|
||||||
if (isset($contact["thumb"])) {
|
if (isset($contact["thumb"]))
|
||||||
$from_photo = $contact["thumb"];
|
$from_photo = $contact["thumb"];
|
||||||
} else {
|
else
|
||||||
$from_photo = $message['from-photo'];
|
$from_photo = $message['from-photo'];
|
||||||
}
|
|
||||||
|
|
||||||
$mails[] = array(
|
$mails[] = array(
|
||||||
'id' => $message['id'],
|
'id' => $message['id'],
|
||||||
'from_name' => $from_name_e,
|
'from_name' => $from_name_e,
|
||||||
'from_url' => $from_url,
|
'from_url' => $from_url,
|
||||||
'sparkle' => $sparkle,
|
'sparkle' => $sparkle,
|
||||||
'from_photo' => proxy_url($from_photo, false, PROXY_SIZE_THUMB),
|
'from_photo' => proxy_url($from_photo, false, PROXY_SIZE_THUMB),
|
||||||
'subject' => $subject_e,
|
'subject' => $subject_e,
|
||||||
'body' => $body_e,
|
'body' => $body_e,
|
||||||
'delete' => t('Delete message'),
|
'delete' => t('Delete message'),
|
||||||
'to_name' => $to_name_e,
|
'to_name' => $to_name_e,
|
||||||
'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'),
|
'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'),
|
||||||
'ago' => relative_date($message['created']),
|
'ago' => relative_date($message['created']),
|
||||||
);
|
);
|
||||||
|
|
||||||
$seen = $message['seen'];
|
$seen = $message['seen'];
|
||||||
|
|
@ -494,9 +489,10 @@ function message_content(App $a) {
|
||||||
|
|
||||||
$tpl = get_markup_template('mail_display.tpl');
|
$tpl = get_markup_template('mail_display.tpl');
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal') {
|
if($a->theme['template_engine'] === 'internal') {
|
||||||
$subjtxt_e = template_escape($message['title']);
|
$subjtxt_e = template_escape($message['title']);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$subjtxt_e = $message['title'];
|
$subjtxt_e = $message['title'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -551,16 +547,16 @@ function render_messages(array $msg, $t) {
|
||||||
|
|
||||||
$myprofile = App::get_baseurl().'/profile/' . $a->user['nickname'];
|
$myprofile = App::get_baseurl().'/profile/' . $a->user['nickname'];
|
||||||
|
|
||||||
foreach ($msg as $rr) {
|
foreach($msg as $rr) {
|
||||||
|
|
||||||
if ($rr['unknown'])
|
if($rr['unknown'])
|
||||||
$participants = sprintf( t("Unknown sender - %s"),$rr['from-name']);
|
$participants = sprintf( t("Unknown sender - %s"),$rr['from-name']);
|
||||||
elseif (link_compare($rr['from-url'], $myprofile))
|
elseif (link_compare($rr['from-url'], $myprofile))
|
||||||
$participants = sprintf( t("You and %s"), $rr['name']);
|
$participants = sprintf( t("You and %s"), $rr['name']);
|
||||||
else
|
else
|
||||||
$participants = sprintf(t("%s and You"), $rr['from-name']);
|
$participants = sprintf(t("%s and You"), $rr['from-name']);
|
||||||
|
|
||||||
if ($a->theme['template_engine'] === 'internal') {
|
if($a->theme['template_engine'] === 'internal') {
|
||||||
$subject_e = template_escape((($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'));
|
$subject_e = template_escape((($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'));
|
||||||
$body_e = template_escape($rr['body']);
|
$body_e = template_escape($rr['body']);
|
||||||
$to_name_e = template_escape($rr['name']);
|
$to_name_e = template_escape($rr['name']);
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ require_once('library/asn1.php');
|
||||||
|
|
||||||
function modexp_init(App $a) {
|
function modexp_init(App $a) {
|
||||||
|
|
||||||
if ($a->argc != 2)
|
if($a->argc != 2)
|
||||||
killme();
|
killme();
|
||||||
|
|
||||||
$nick = $a->argv[1];
|
$nick = $a->argv[1];
|
||||||
|
|
|
||||||
14
mod/mood.php
14
mod/mood.php
|
|
@ -14,12 +14,12 @@ function mood_init(App $a) {
|
||||||
$uid = local_user();
|
$uid = local_user();
|
||||||
$verb = notags(trim($_GET['verb']));
|
$verb = notags(trim($_GET['verb']));
|
||||||
|
|
||||||
if (! $verb)
|
if(! $verb)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$verbs = get_mood_verbs();
|
$verbs = get_mood_verbs();
|
||||||
|
|
||||||
if (! in_array($verb,$verbs))
|
if(! in_array($verb,$verbs))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$activity = ACTIVITY_MOOD . '#' . urlencode($verb);
|
$activity = ACTIVITY_MOOD . '#' . urlencode($verb);
|
||||||
|
|
@ -30,7 +30,7 @@ function mood_init(App $a) {
|
||||||
logger('mood: verb ' . $verb, LOGGER_DEBUG);
|
logger('mood: verb ' . $verb, LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
||||||
if ($parent) {
|
if($parent) {
|
||||||
$r = q("select uri, private, allow_cid, allow_gid, deny_cid, deny_gid
|
$r = q("select uri, private, allow_cid, allow_gid, deny_cid, deny_gid
|
||||||
from item where id = %d and parent = %d and uid = %d limit 1",
|
from item where id = %d and parent = %d and uid = %d limit 1",
|
||||||
intval($parent),
|
intval($parent),
|
||||||
|
|
@ -90,7 +90,7 @@ function mood_init(App $a) {
|
||||||
$arr['body'] = $action;
|
$arr['body'] = $action;
|
||||||
|
|
||||||
$item_id = item_store($arr);
|
$item_id = item_store($arr);
|
||||||
if ($item_id) {
|
if($item_id) {
|
||||||
q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d",
|
q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d",
|
||||||
dbesc(App::get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id),
|
dbesc(App::get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id),
|
||||||
intval($uid),
|
intval($uid),
|
||||||
|
|
@ -123,11 +123,9 @@ function mood_content(App $a) {
|
||||||
$verbs = get_mood_verbs();
|
$verbs = get_mood_verbs();
|
||||||
|
|
||||||
$shortlist = array();
|
$shortlist = array();
|
||||||
foreach ($verbs as $k => $v) {
|
foreach($verbs as $k => $v)
|
||||||
if ($v !== 'NOTRANSLATION') {
|
if($v !== 'NOTRANSLATION')
|
||||||
$shortlist[] = array($k,$v);
|
$shortlist[] = array($k,$v);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$tpl = get_markup_template('mood_content.tpl');
|
$tpl = get_markup_template('mood_content.tpl');
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ function msearch_post(App $a) {
|
||||||
$startrec = (($page+1) * $perpage) - $perpage;
|
$startrec = (($page+1) * $perpage) - $perpage;
|
||||||
|
|
||||||
$search = $_POST['s'];
|
$search = $_POST['s'];
|
||||||
if (! strlen($search))
|
if(! strlen($search))
|
||||||
killme();
|
killme();
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 AND `user`.`hidewall` = 0 AND MATCH `pub_keywords` AGAINST ('%s') ",
|
$r = q("SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 AND `user`.`hidewall` = 0 AND MATCH `pub_keywords` AGAINST ('%s') ",
|
||||||
|
|
@ -26,7 +26,7 @@ function msearch_post(App $a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
$results[] = array(
|
$results[] = array(
|
||||||
'name' => $rr['name'],
|
'name' => $rr['name'],
|
||||||
'url' => App::get_baseurl() . '/profile/' . $rr['nickname'],
|
'url' => App::get_baseurl() . '/profile/' . $rr['nickname'],
|
||||||
|
|
|
||||||
124
mod/network.php
124
mod/network.php
|
|
@ -43,11 +43,11 @@ function network_init(App $a) {
|
||||||
|
|
||||||
if ($remember_group) {
|
if ($remember_group) {
|
||||||
$net_baseurl .= '/' . $last_sel_groups; // Note that the group number must come before the "/new" tab selection
|
$net_baseurl .= '/' . $last_sel_groups; // Note that the group number must come before the "/new" tab selection
|
||||||
} elseif ($sel_groups !== false) {
|
} elseif($sel_groups !== false) {
|
||||||
$net_baseurl .= '/' . $sel_groups;
|
$net_baseurl .= '/' . $sel_groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($remember_tab) {
|
if($remember_tab) {
|
||||||
// redirect if current selected tab is '/network' and
|
// redirect if current selected tab is '/network' and
|
||||||
// last selected tab is _not_ '/network?f=&order=comment'.
|
// last selected tab is _not_ '/network?f=&order=comment'.
|
||||||
// and this isn't a date query
|
// and this isn't a date query
|
||||||
|
|
@ -81,19 +81,19 @@ function network_init(App $a) {
|
||||||
parse_str( $dest_qs, $dest_qa);
|
parse_str( $dest_qs, $dest_qa);
|
||||||
$net_args = array_merge($net_args, $dest_qa);
|
$net_args = array_merge($net_args, $dest_qa);
|
||||||
}
|
}
|
||||||
else if ($sel_tabs[4] === 'active') {
|
else if($sel_tabs[4] === 'active') {
|
||||||
// The '/new' tab is selected
|
// The '/new' tab is selected
|
||||||
$net_baseurl .= '/new';
|
$net_baseurl .= '/new';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($remember_net) {
|
if($remember_net) {
|
||||||
$net_args['nets'] = $last_sel_nets;
|
$net_args['nets'] = $last_sel_nets;
|
||||||
}
|
}
|
||||||
else if ($sel_nets!==false) {
|
else if($sel_nets!==false) {
|
||||||
$net_args['nets'] = $sel_nets;
|
$net_args['nets'] = $sel_nets;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($remember_tab || $remember_net || $remember_group) {
|
if($remember_tab || $remember_net || $remember_group) {
|
||||||
$net_args = array_merge($query_array, $net_args);
|
$net_args = array_merge($query_array, $net_args);
|
||||||
$net_queries = build_querystring($net_args);
|
$net_queries = build_querystring($net_args);
|
||||||
|
|
||||||
|
|
@ -103,7 +103,7 @@ function network_init(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_GET['nets']) && $_GET['nets'] === 'all')
|
if(x($_GET['nets']) && $_GET['nets'] === 'all')
|
||||||
unset($_GET['nets']);
|
unset($_GET['nets']);
|
||||||
|
|
||||||
$group_id = (($a->argc > 1 && is_numeric($a->argv[1])) ? intval($a->argv[1]) : 0);
|
$group_id = (($a->argc > 1 && is_numeric($a->argv[1])) ? intval($a->argv[1]) : 0);
|
||||||
|
|
@ -115,12 +115,12 @@ function network_init(App $a) {
|
||||||
require_once('include/items.php');
|
require_once('include/items.php');
|
||||||
require_once('include/ForumManager.php');
|
require_once('include/ForumManager.php');
|
||||||
|
|
||||||
if (! x($a->page,'aside'))
|
if(! x($a->page,'aside'))
|
||||||
$a->page['aside'] = '';
|
$a->page['aside'] = '';
|
||||||
|
|
||||||
$search = ((x($_GET,'search')) ? escape_tags($_GET['search']) : '');
|
$search = ((x($_GET,'search')) ? escape_tags($_GET['search']) : '');
|
||||||
|
|
||||||
if (x($_GET,'save')) {
|
if(x($_GET,'save')) {
|
||||||
$r = qu("SELECT * FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1",
|
$r = qu("SELECT * FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc($search)
|
dbesc($search)
|
||||||
|
|
@ -132,7 +132,7 @@ function network_init(App $a) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (x($_GET,'remove')) {
|
if(x($_GET,'remove')) {
|
||||||
q("DELETE FROM `search` WHERE `uid` = %d AND `term` = '%s'",
|
q("DELETE FROM `search` WHERE `uid` = %d AND `term` = '%s'",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc($search)
|
dbesc($search)
|
||||||
|
|
@ -140,7 +140,7 @@ function network_init(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// search terms header
|
// search terms header
|
||||||
if (x($_GET,'search')) {
|
if(x($_GET,'search')) {
|
||||||
$a->page['content'] .= replace_macros(get_markup_template("section_title.tpl"),array(
|
$a->page['content'] .= replace_macros(get_markup_template("section_title.tpl"),array(
|
||||||
'$title' => sprintf( t('Results for: %s'), $search)
|
'$title' => sprintf( t('Results for: %s'), $search)
|
||||||
));
|
));
|
||||||
|
|
@ -157,7 +157,7 @@ function network_init(App $a) {
|
||||||
|
|
||||||
function saved_searches($search) {
|
function saved_searches($search) {
|
||||||
|
|
||||||
if (! feature_enabled(local_user(),'savedsearch'))
|
if(! feature_enabled(local_user(),'savedsearch'))
|
||||||
return '';
|
return '';
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
@ -232,28 +232,28 @@ function network_query_get_sel_tab(App $a) {
|
||||||
$spam_active = '';
|
$spam_active = '';
|
||||||
$postord_active = '';
|
$postord_active = '';
|
||||||
|
|
||||||
if (($a->argc > 1 && $a->argv[1] === 'new')
|
if(($a->argc > 1 && $a->argv[1] === 'new')
|
||||||
|| ($a->argc > 2 && $a->argv[2] === 'new')) {
|
|| ($a->argc > 2 && $a->argv[2] === 'new')) {
|
||||||
$new_active = 'active';
|
$new_active = 'active';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_GET,'search')) {
|
if(x($_GET,'search')) {
|
||||||
$search_active = 'active';
|
$search_active = 'active';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_GET,'star')) {
|
if(x($_GET,'star')) {
|
||||||
$starred_active = 'active';
|
$starred_active = 'active';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_GET,'bmark')) {
|
if(x($_GET,'bmark')) {
|
||||||
$bookmarked_active = 'active';
|
$bookmarked_active = 'active';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_GET,'conv')) {
|
if(x($_GET,'conv')) {
|
||||||
$conv_active = 'active';
|
$conv_active = 'active';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_GET,'spam')) {
|
if(x($_GET,'spam')) {
|
||||||
$spam_active = 'active';
|
$spam_active = 'active';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -285,7 +285,7 @@ function network_query_get_sel_tab(App $a) {
|
||||||
function network_query_get_sel_net() {
|
function network_query_get_sel_net() {
|
||||||
$network = false;
|
$network = false;
|
||||||
|
|
||||||
if (x($_GET,'nets')) {
|
if(x($_GET,'nets')) {
|
||||||
$network = $_GET['nets'];
|
$network = $_GET['nets'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -295,7 +295,7 @@ function network_query_get_sel_net() {
|
||||||
function network_query_get_sel_group(App $a) {
|
function network_query_get_sel_group(App $a) {
|
||||||
$group = false;
|
$group = false;
|
||||||
|
|
||||||
if ($a->argc >= 2 && is_numeric($a->argv[1])) {
|
if($a->argc >= 2 && is_numeric($a->argv[1])) {
|
||||||
$group = $a->argv[1];
|
$group = $a->argv[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -326,18 +326,20 @@ function network_content(App $a, $update = 0) {
|
||||||
|
|
||||||
$nouveau = false;
|
$nouveau = false;
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
for ($x = 1; $x < $a->argc; $x ++) {
|
for($x = 1; $x < $a->argc; $x ++) {
|
||||||
if (is_a_date_arg($a->argv[$x])) {
|
if(is_a_date_arg($a->argv[$x])) {
|
||||||
if ($datequery) {
|
if($datequery)
|
||||||
$datequery2 = escape_tags($a->argv[$x]);
|
$datequery2 = escape_tags($a->argv[$x]);
|
||||||
} else {
|
else {
|
||||||
$datequery = escape_tags($a->argv[$x]);
|
$datequery = escape_tags($a->argv[$x]);
|
||||||
$_GET['order'] = 'post';
|
$_GET['order'] = 'post';
|
||||||
}
|
}
|
||||||
} elseif ($a->argv[$x] === 'new') {
|
}
|
||||||
|
elseif($a->argv[$x] === 'new') {
|
||||||
$nouveau = true;
|
$nouveau = true;
|
||||||
} elseif (intval($a->argv[$x])) {
|
}
|
||||||
|
elseif(intval($a->argv[$x])) {
|
||||||
$group = intval($a->argv[$x]);
|
$group = intval($a->argv[$x]);
|
||||||
$def_acl = array('allow_gid' => '<' . $group . '>');
|
$def_acl = array('allow_gid' => '<' . $group . '>');
|
||||||
}
|
}
|
||||||
|
|
@ -366,12 +368,12 @@ function network_content(App $a, $update = 0) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (x($_GET,'search') || x($_GET,'file'))
|
if(x($_GET,'search') || x($_GET,'file'))
|
||||||
$nouveau = true;
|
$nouveau = true;
|
||||||
if ($cid)
|
if($cid)
|
||||||
$def_acl = array('allow_cid' => '<' . intval($cid) . '>');
|
$def_acl = array('allow_cid' => '<' . intval($cid) . '>');
|
||||||
|
|
||||||
if ($nets) {
|
if($nets) {
|
||||||
$r = qu("SELECT `id` FROM `contact` WHERE `uid` = %d AND network = '%s' AND `self` = 0",
|
$r = qu("SELECT `id` FROM `contact` WHERE `uid` = %d AND network = '%s' AND `self` = 0",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc($nets)
|
dbesc($nets)
|
||||||
|
|
@ -379,19 +381,19 @@ function network_content(App $a, $update = 0) {
|
||||||
|
|
||||||
$str = '';
|
$str = '';
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
$str .= '<' . $rr['id'] . '>';
|
$str .= '<' . $rr['id'] . '>';
|
||||||
if (strlen($str))
|
if(strlen($str))
|
||||||
$def_acl = array('allow_cid' => $str);
|
$def_acl = array('allow_cid' => $str);
|
||||||
}
|
}
|
||||||
set_pconfig(local_user(), 'network.view', 'net.selected', ($nets ? $nets : 'all'));
|
set_pconfig(local_user(), 'network.view', 'net.selected', ($nets ? $nets : 'all'));
|
||||||
|
|
||||||
if (!$update AND !$rawmode) {
|
if(!$update AND !$rawmode) {
|
||||||
$tabs = network_tabs($a);
|
$tabs = network_tabs($a);
|
||||||
$o .= $tabs;
|
$o .= $tabs;
|
||||||
|
|
||||||
if ($group) {
|
if($group) {
|
||||||
if (($t = group_public_members($group)) && (! get_pconfig(local_user(),'system','nowarn_insecure'))) {
|
if(($t = group_public_members($group)) && (! get_pconfig(local_user(),'system','nowarn_insecure'))) {
|
||||||
notice(sprintf(tt("Warning: This group contains %s member from a network that doesn't allow non public messages.",
|
notice(sprintf(tt("Warning: This group contains %s member from a network that doesn't allow non public messages.",
|
||||||
"Warning: This group contains %s members from a network that doesn't allow non public messages.",
|
"Warning: This group contains %s members from a network that doesn't allow non public messages.",
|
||||||
$t), $t).EOL);
|
$t), $t).EOL);
|
||||||
|
|
@ -455,13 +457,13 @@ function network_content(App $a, $update = 0) {
|
||||||
|
|
||||||
$sql_nets = (($nets) ? sprintf(" and $sql_table.`network` = '%s' ", dbesc($nets)) : '');
|
$sql_nets = (($nets) ? sprintf(" and $sql_table.`network` = '%s' ", dbesc($nets)) : '');
|
||||||
|
|
||||||
if ($group) {
|
if($group) {
|
||||||
$r = qu("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = qu("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($group),
|
intval($group),
|
||||||
intval($_SESSION['uid'])
|
intval($_SESSION['uid'])
|
||||||
);
|
);
|
||||||
if (! dbm::is_result($r)) {
|
if (! dbm::is_result($r)) {
|
||||||
if ($update)
|
if($update)
|
||||||
killme();
|
killme();
|
||||||
notice( t('No such group') . EOL );
|
notice( t('No such group') . EOL );
|
||||||
goaway('network/0');
|
goaway('network/0');
|
||||||
|
|
@ -471,7 +473,7 @@ function network_content(App $a, $update = 0) {
|
||||||
$contacts = expand_groups(array($group));
|
$contacts = expand_groups(array($group));
|
||||||
$gcontacts = expand_groups(array($group), false, true);
|
$gcontacts = expand_groups(array($group), false, true);
|
||||||
|
|
||||||
if ((is_array($contacts)) && count($contacts)) {
|
if((is_array($contacts)) && count($contacts)) {
|
||||||
$contact_str_self = "";
|
$contact_str_self = "";
|
||||||
$gcontact_str_self = "";
|
$gcontact_str_self = "";
|
||||||
|
|
||||||
|
|
@ -498,7 +500,7 @@ function network_content(App $a, $update = 0) {
|
||||||
)) . $o;
|
)) . $o;
|
||||||
|
|
||||||
}
|
}
|
||||||
elseif ($cid) {
|
elseif($cid) {
|
||||||
|
|
||||||
$r = qu("SELECT `id`,`name`,`network`,`writable`,`nurl`, `forum`, `prv`, `contact-type`, `addr`, `thumb`, `location` FROM `contact` WHERE `id` = %d
|
$r = qu("SELECT `id`,`name`,`network`,`writable`,`nurl`, `forum`, `prv`, `contact-type`, `addr`, `thumb`, `location` FROM `contact` WHERE `id` = %d
|
||||||
AND (NOT `blocked` OR `pending`) LIMIT 1",
|
AND (NOT `blocked` OR `pending`) LIMIT 1",
|
||||||
|
|
@ -522,7 +524,7 @@ function network_content(App $a, $update = 0) {
|
||||||
'id' => 'network',
|
'id' => 'network',
|
||||||
)) . $o;
|
)) . $o;
|
||||||
|
|
||||||
if ($r[0]['network'] === NETWORK_OSTATUS && $r[0]['writable'] && (! get_pconfig(local_user(),'system','nowarn_insecure'))) {
|
if($r[0]['network'] === NETWORK_OSTATUS && $r[0]['writable'] && (! get_pconfig(local_user(),'system','nowarn_insecure'))) {
|
||||||
notice( t('Private messages to this person are at risk of public disclosure.') . EOL);
|
notice( t('Private messages to this person are at risk of public disclosure.') . EOL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -534,15 +536,15 @@ function network_content(App $a, $update = 0) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((! $group) && (! $cid) && (! $update) && (! get_config('theme','hide_eventlist'))) {
|
if((! $group) && (! $cid) && (! $update) && (! get_config('theme','hide_eventlist'))) {
|
||||||
$o .= get_birthdays();
|
$o .= get_birthdays();
|
||||||
$o .= get_events();
|
$o .= get_events();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($datequery) {
|
if($datequery) {
|
||||||
$sql_extra3 .= protect_sprintf(sprintf(" AND $sql_table.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
|
$sql_extra3 .= protect_sprintf(sprintf(" AND $sql_table.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
|
||||||
}
|
}
|
||||||
if ($datequery2) {
|
if($datequery2) {
|
||||||
$sql_extra3 .= protect_sprintf(sprintf(" AND $sql_table.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
|
$sql_extra3 .= protect_sprintf(sprintf(" AND $sql_table.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -553,10 +555,10 @@ function network_content(App $a, $update = 0) {
|
||||||
$order_mode = "received";
|
$order_mode = "received";
|
||||||
$tag = false;
|
$tag = false;
|
||||||
|
|
||||||
if (x($_GET,'search')) {
|
if(x($_GET,'search')) {
|
||||||
$search = escape_tags($_GET['search']);
|
$search = escape_tags($_GET['search']);
|
||||||
|
|
||||||
if (strpos($search,'#') === 0) {
|
if(strpos($search,'#') === 0) {
|
||||||
$tag = true;
|
$tag = true;
|
||||||
$search = substr($search,1);
|
$search = substr($search,1);
|
||||||
}
|
}
|
||||||
|
|
@ -564,7 +566,7 @@ function network_content(App $a, $update = 0) {
|
||||||
if (get_config('system','only_tag_search'))
|
if (get_config('system','only_tag_search'))
|
||||||
$tag = true;
|
$tag = true;
|
||||||
|
|
||||||
if ($tag) {
|
if($tag) {
|
||||||
$sql_extra = "";
|
$sql_extra = "";
|
||||||
|
|
||||||
$sql_post_table .= sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ",
|
$sql_post_table .= sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ",
|
||||||
|
|
@ -581,17 +583,17 @@ function network_content(App $a, $update = 0) {
|
||||||
$order_mode = "id";
|
$order_mode = "id";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (strlen($file)) {
|
if(strlen($file)) {
|
||||||
$sql_post_table .= sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ",
|
$sql_post_table .= sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ",
|
||||||
dbesc(protect_sprintf($file)), intval(TERM_OBJ_POST), intval(TERM_FILE), intval(local_user()));
|
dbesc(protect_sprintf($file)), intval(TERM_OBJ_POST), intval(TERM_FILE), intval(local_user()));
|
||||||
$sql_order = "`item`.`id`";
|
$sql_order = "`item`.`id`";
|
||||||
$order_mode = "id";
|
$order_mode = "id";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conv)
|
if($conv)
|
||||||
$sql_extra3 .= " AND $sql_table.`mention`";
|
$sql_extra3 .= " AND $sql_table.`mention`";
|
||||||
|
|
||||||
if ($update) {
|
if($update) {
|
||||||
|
|
||||||
// only setup pagination on initial page view
|
// only setup pagination on initial page view
|
||||||
$pager_sql = '';
|
$pager_sql = '';
|
||||||
|
|
@ -609,14 +611,14 @@ function network_content(App $a, $update = 0) {
|
||||||
|
|
||||||
// now that we have the user settings, see if the theme forces
|
// now that we have the user settings, see if the theme forces
|
||||||
// a maximum item number which is lower then the user choice
|
// a maximum item number which is lower then the user choice
|
||||||
if (($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network))
|
if(($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network))
|
||||||
$itemspage_network = $a->force_max_items;
|
$itemspage_network = $a->force_max_items;
|
||||||
|
|
||||||
$a->set_pager_itemspage($itemspage_network);
|
$a->set_pager_itemspage($itemspage_network);
|
||||||
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
|
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($nouveau) {
|
if($nouveau) {
|
||||||
$simple_update = (($update) ? " AND `item`.`unseen` " : '');
|
$simple_update = (($update) ? " AND `item`.`unseen` " : '');
|
||||||
|
|
||||||
if ($sql_order == "")
|
if ($sql_order == "")
|
||||||
|
|
@ -638,7 +640,7 @@ function network_content(App $a, $update = 0) {
|
||||||
// Normal conversation view
|
// Normal conversation view
|
||||||
|
|
||||||
|
|
||||||
if ($order === 'post') {
|
if($order === 'post') {
|
||||||
$ordering = "`created`";
|
$ordering = "`created`";
|
||||||
if ($sql_order == "")
|
if ($sql_order == "")
|
||||||
$order_mode = "created";
|
$order_mode = "created";
|
||||||
|
|
@ -655,7 +657,7 @@ function network_content(App $a, $update = 0) {
|
||||||
$sql_extra3 .= sprintf(" AND $sql_order <= '%s'", dbesc($_GET["offset"]));
|
$sql_extra3 .= sprintf(" AND $sql_order <= '%s'", dbesc($_GET["offset"]));
|
||||||
|
|
||||||
// Fetch a page full of parent items for this page
|
// Fetch a page full of parent items for this page
|
||||||
if ($update) {
|
if($update) {
|
||||||
if (get_config("system", "like_no_comment"))
|
if (get_config("system", "like_no_comment"))
|
||||||
$sql_extra4 = " AND `item`.`verb` = '".ACTIVITY_POST."'";
|
$sql_extra4 = " AND `item`.`verb` = '".ACTIVITY_POST."'";
|
||||||
else
|
else
|
||||||
|
|
@ -689,8 +691,8 @@ function network_content(App $a, $update = 0) {
|
||||||
$date_offset = "";
|
$date_offset = "";
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
if (! in_array($rr['item_id'],$parents_arr))
|
if(! in_array($rr['item_id'],$parents_arr))
|
||||||
$parents_arr[] = $rr['item_id'];
|
$parents_arr[] = $rr['item_id'];
|
||||||
|
|
||||||
$parents_str = implode(", ", $parents_arr);
|
$parents_str = implode(", ", $parents_arr);
|
||||||
|
|
@ -728,7 +730,7 @@ function network_content(App $a, $update = 0) {
|
||||||
|
|
||||||
$a->page_offset = $date_offset;
|
$a->page_offset = $date_offset;
|
||||||
|
|
||||||
if ($parents_str)
|
if($parents_str)
|
||||||
$update_unseen = ' WHERE uid = ' . intval(local_user()) . ' AND unseen = 1 AND parent IN ( ' . dbesc($parents_str) . ' )';
|
$update_unseen = ' WHERE uid = ' . intval(local_user()) . ' AND unseen = 1 AND parent IN ( ' . dbesc($parents_str) . ' )';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -822,7 +824,7 @@ function network_tabs(App $a) {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (feature_enabled(local_user(),'personal_tab')) {
|
if(feature_enabled(local_user(),'personal_tab')) {
|
||||||
$tabs[] = array(
|
$tabs[] = array(
|
||||||
'label' => t('Personal'),
|
'label' => t('Personal'),
|
||||||
'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&conv=1',
|
'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&conv=1',
|
||||||
|
|
@ -833,7 +835,7 @@ function network_tabs(App $a) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (feature_enabled(local_user(),'new_tab')) {
|
if(feature_enabled(local_user(),'new_tab')) {
|
||||||
$tabs[] = array(
|
$tabs[] = array(
|
||||||
'label' => t('New'),
|
'label' => t('New'),
|
||||||
'url' => str_replace('/new', '', $cmd) . ($len_naked_cmd ? '/' : '') . 'new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
|
'url' => str_replace('/new', '', $cmd) . ($len_naked_cmd ? '/' : '') . 'new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
|
||||||
|
|
@ -844,7 +846,7 @@ function network_tabs(App $a) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (feature_enabled(local_user(),'link_tab')) {
|
if(feature_enabled(local_user(),'link_tab')) {
|
||||||
$tabs[] = array(
|
$tabs[] = array(
|
||||||
'label' => t('Shared Links'),
|
'label' => t('Shared Links'),
|
||||||
'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&bmark=1',
|
'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&bmark=1',
|
||||||
|
|
@ -855,7 +857,7 @@ function network_tabs(App $a) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (feature_enabled(local_user(),'star_posts')) {
|
if(feature_enabled(local_user(),'star_posts')) {
|
||||||
$tabs[] = array(
|
$tabs[] = array(
|
||||||
'label' => t('Starred'),
|
'label' => t('Starred'),
|
||||||
'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&star=1',
|
'url' => str_replace('/new', '', $cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '/?f=') . '&star=1',
|
||||||
|
|
@ -867,7 +869,7 @@ function network_tabs(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// save selected tab, but only if not in search or file mode
|
// save selected tab, but only if not in search or file mode
|
||||||
if (!x($_GET,'search') && !x($_GET,'file')) {
|
if(!x($_GET,'search') && !x($_GET,'file')) {
|
||||||
set_pconfig( local_user(), 'network.view','tab.selected',array($all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active) );
|
set_pconfig( local_user(), 'network.view','tab.selected',array($all_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,9 +47,8 @@ function newmember_content(App $a) {
|
||||||
|
|
||||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||||
|
|
||||||
if (! $mail_disabled) {
|
if(! $mail_disabled)
|
||||||
$o .= '<li>' . '<a target="newmember" href="settings/connectors">' . t('Importing Emails') . '</a><br />' . t('Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX') . '</li>' . EOL;
|
$o .= '<li>' . '<a target="newmember" href="settings/connectors">' . t('Importing Emails') . '</a><br />' . t('Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX') . '</li>' . EOL;
|
||||||
}
|
|
||||||
|
|
||||||
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Go to Your Contacts Page') . '</a><br />' . t('Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog.') . '</li>' . EOL;
|
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Go to Your Contacts Page') . '</a><br />' . t('Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog.') . '</li>' . EOL;
|
||||||
|
|
||||||
|
|
@ -65,7 +64,7 @@ function newmember_content(App $a) {
|
||||||
|
|
||||||
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Group Your Contacts') . '</a><br />' . t('Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page.') . '</li>' . EOL;
|
$o .= '<li>' . '<a target="newmember" href="contacts">' . t('Group Your Contacts') . '</a><br />' . t('Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page.') . '</li>' . EOL;
|
||||||
|
|
||||||
if (get_config('system', 'newuser_private')) {
|
if(get_config('system', 'newuser_private')) {
|
||||||
$o .= '<li>' . '<a target="newmember" href="help/Groups-and-Privacy">' . t("Why Aren't My Posts Public?") . '</a><br />' . t("Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above.") . '</li>' . EOL;
|
$o .= '<li>' . '<a target="newmember" href="help/Groups-and-Privacy">' . t("Why Aren't My Posts Public?") . '</a><br />' . t("Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above.") . '</li>' . EOL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -158,7 +158,7 @@ function nodeinfo_cron() {
|
||||||
$plugins = get_config("system","addon");
|
$plugins = get_config("system","addon");
|
||||||
$plugins_arr = array();
|
$plugins_arr = array();
|
||||||
|
|
||||||
if ($plugins) {
|
if($plugins) {
|
||||||
$plugins_arr = explode(",",str_replace(" ", "",$plugins));
|
$plugins_arr = explode(",",str_replace(" ", "",$plugins));
|
||||||
|
|
||||||
$idx = array_search($plugin, $plugins_arr);
|
$idx = array_search($plugin, $plugins_arr);
|
||||||
|
|
@ -175,10 +175,10 @@ function nodeinfo_cron() {
|
||||||
|
|
||||||
$last = get_config('nodeinfo','last_calucation');
|
$last = get_config('nodeinfo','last_calucation');
|
||||||
|
|
||||||
if ($last) {
|
if($last) {
|
||||||
// Calculate every 24 hours
|
// Calculate every 24 hours
|
||||||
$next = $last + (24 * 60 * 60);
|
$next = $last + (24 * 60 * 60);
|
||||||
if ($next > time()) {
|
if($next > time()) {
|
||||||
logger("calculation intervall not reached");
|
logger("calculation intervall not reached");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,13 @@
|
||||||
|
|
||||||
function noscrape_init(App $a) {
|
function noscrape_init(App $a) {
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1)
|
||||||
$which = $a->argv[1];
|
$which = $a->argv[1];
|
||||||
} else {
|
else
|
||||||
killme();
|
killme();
|
||||||
}
|
|
||||||
|
|
||||||
$profile = 0;
|
$profile = 0;
|
||||||
if ((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) {
|
if((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) {
|
||||||
$which = $a->user['nickname'];
|
$which = $a->user['nickname'];
|
||||||
$profile = $a->argv[1];
|
$profile = $a->argv[1];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ function notes_content(App $a, $update = false) {
|
||||||
$o ="";
|
$o ="";
|
||||||
$o .= profile_tabs($a,True);
|
$o .= profile_tabs($a,True);
|
||||||
|
|
||||||
if (! $update) {
|
if(! $update) {
|
||||||
$o .= '<h3>' . t('Personal Notes') . '</h3>';
|
$o .= '<h3>' . t('Personal Notes') . '</h3>';
|
||||||
|
|
||||||
$commpage = false;
|
$commpage = false;
|
||||||
|
|
@ -104,9 +104,8 @@ function notes_content(App $a, $update = false) {
|
||||||
$parents_str = '';
|
$parents_str = '';
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
$parents_arr[] = $rr['item_id'];
|
$parents_arr[] = $rr['item_id'];
|
||||||
}
|
|
||||||
$parents_str = implode(', ', $parents_arr);
|
$parents_str = implode(', ', $parents_arr);
|
||||||
|
|
||||||
$r = q("SELECT %s FROM `item` %s
|
$r = q("SELECT %s FROM `item` %s
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,10 @@ function notifications_post(App $a) {
|
||||||
|
|
||||||
$request_id = (($a->argc > 1) ? $a->argv[1] : 0);
|
$request_id = (($a->argc > 1) ? $a->argv[1] : 0);
|
||||||
|
|
||||||
if ($request_id === "all")
|
if($request_id === "all")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ($request_id) {
|
if($request_id) {
|
||||||
|
|
||||||
$r = q("SELECT * FROM `intro` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `intro` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($request_id),
|
intval($request_id),
|
||||||
|
|
@ -41,11 +41,11 @@ function notifications_post(App $a) {
|
||||||
|
|
||||||
$fid = $r[0]['fid'];
|
$fid = $r[0]['fid'];
|
||||||
|
|
||||||
if ($_POST['submit'] == t('Discard')) {
|
if($_POST['submit'] == t('Discard')) {
|
||||||
$r = q("DELETE FROM `intro` WHERE `id` = %d",
|
$r = q("DELETE FROM `intro` WHERE `id` = %d",
|
||||||
intval($intro_id)
|
intval($intro_id)
|
||||||
);
|
);
|
||||||
if (! $fid) {
|
if(! $fid) {
|
||||||
|
|
||||||
// The check for blocked and pending is in case the friendship was already approved
|
// The check for blocked and pending is in case the friendship was already approved
|
||||||
// and we just want to get rid of the now pointless notification
|
// and we just want to get rid of the now pointless notification
|
||||||
|
|
@ -57,7 +57,7 @@ function notifications_post(App $a) {
|
||||||
}
|
}
|
||||||
goaway('notifications/intros');
|
goaway('notifications/intros');
|
||||||
}
|
}
|
||||||
if ($_POST['submit'] == t('Ignore')) {
|
if($_POST['submit'] == t('Ignore')) {
|
||||||
$r = q("UPDATE `intro` SET `ignore` = 1 WHERE `id` = %d",
|
$r = q("UPDATE `intro` SET `ignore` = 1 WHERE `id` = %d",
|
||||||
intval($intro_id));
|
intval($intro_id));
|
||||||
goaway('notifications/intros');
|
goaway('notifications/intros');
|
||||||
|
|
@ -91,7 +91,7 @@ function notifications_content(App $a) {
|
||||||
$startrec = ($page * $perpage) - $perpage;
|
$startrec = ($page * $perpage) - $perpage;
|
||||||
|
|
||||||
// Get introductions
|
// Get introductions
|
||||||
if ( (($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) {
|
if( (($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) {
|
||||||
nav_set_selected('introductions');
|
nav_set_selected('introductions');
|
||||||
$notif_header = t('Notifications');
|
$notif_header = t('Notifications');
|
||||||
|
|
||||||
|
|
@ -100,25 +100,25 @@ function notifications_content(App $a) {
|
||||||
$notifs = $nm->introNotifs($all, $startrec, $perpage);
|
$notifs = $nm->introNotifs($all, $startrec, $perpage);
|
||||||
|
|
||||||
// Get the network notifications
|
// Get the network notifications
|
||||||
} elseif (($a->argc > 1) && ($a->argv[1] == 'network')) {
|
} else if (($a->argc > 1) && ($a->argv[1] == 'network')) {
|
||||||
|
|
||||||
$notif_header = t('Network Notifications');
|
$notif_header = t('Network Notifications');
|
||||||
$notifs = $nm->networkNotifs($show, $startrec, $perpage);
|
$notifs = $nm->networkNotifs($show, $startrec, $perpage);
|
||||||
|
|
||||||
// Get the system notifications
|
// Get the system notifications
|
||||||
} elseif (($a->argc > 1) && ($a->argv[1] == 'system')) {
|
} else if (($a->argc > 1) && ($a->argv[1] == 'system')) {
|
||||||
|
|
||||||
$notif_header = t('System Notifications');
|
$notif_header = t('System Notifications');
|
||||||
$notifs = $nm->systemNotifs($show, $startrec, $perpage);
|
$notifs = $nm->systemNotifs($show, $startrec, $perpage);
|
||||||
|
|
||||||
// Get the personal notifications
|
// Get the personal notifications
|
||||||
} elseif (($a->argc > 1) && ($a->argv[1] == 'personal')) {
|
} else if (($a->argc > 1) && ($a->argv[1] == 'personal')) {
|
||||||
|
|
||||||
$notif_header = t('Personal Notifications');
|
$notif_header = t('Personal Notifications');
|
||||||
$notifs = $nm->personalNotifs($show, $startrec, $perpage);
|
$notifs = $nm->personalNotifs($show, $startrec, $perpage);
|
||||||
|
|
||||||
// Get the home notifications
|
// Get the home notifications
|
||||||
} elseif (($a->argc > 1) && ($a->argv[1] == 'home')) {
|
} else if (($a->argc > 1) && ($a->argv[1] == 'home')) {
|
||||||
|
|
||||||
$notif_header = t('Home Notifications');
|
$notif_header = t('Home Notifications');
|
||||||
$notifs = $nm->homeNotifs($show, $startrec, $perpage);
|
$notifs = $nm->homeNotifs($show, $startrec, $perpage);
|
||||||
|
|
@ -135,13 +135,13 @@ function notifications_content(App $a) {
|
||||||
$notifs['page'] = $a->pager['page'];
|
$notifs['page'] = $a->pager['page'];
|
||||||
|
|
||||||
// Json output
|
// Json output
|
||||||
if (intval($json) === 1)
|
if(intval($json) === 1)
|
||||||
json_return_and_die($notifs);
|
json_return_and_die($notifs);
|
||||||
|
|
||||||
$notif_tpl = get_markup_template('notifications.tpl');
|
$notif_tpl = get_markup_template('notifications.tpl');
|
||||||
|
|
||||||
// Process the data for template creation
|
// Process the data for template creation
|
||||||
if ($notifs['ident'] === 'introductions') {
|
if($notifs['ident'] === 'introductions') {
|
||||||
|
|
||||||
$sugg = get_markup_template('suggestions.tpl');
|
$sugg = get_markup_template('suggestions.tpl');
|
||||||
$tpl = get_markup_template("intros.tpl");
|
$tpl = get_markup_template("intros.tpl");
|
||||||
|
|
@ -190,8 +190,8 @@ function notifications_content(App $a) {
|
||||||
$knowyou = '';
|
$knowyou = '';
|
||||||
$dfrn_text = '';
|
$dfrn_text = '';
|
||||||
|
|
||||||
if ($it['network'] === NETWORK_DFRN || $it['network'] === NETWORK_DIASPORA) {
|
if($it['network'] === NETWORK_DFRN || $it['network'] === NETWORK_DIASPORA) {
|
||||||
if ($it['network'] === NETWORK_DFRN) {
|
if($it['network'] === NETWORK_DFRN) {
|
||||||
$lbl_knowyou = t('Claims to be known to you: ');
|
$lbl_knowyou = t('Claims to be known to you: ');
|
||||||
$knowyou = (($it['knowyou']) ? t('yes') : t('no'));
|
$knowyou = (($it['knowyou']) ? t('yes') : t('no'));
|
||||||
$helptext = t('Shall your connection be bidirectional or not?');
|
$helptext = t('Shall your connection be bidirectional or not?');
|
||||||
|
|
@ -262,7 +262,7 @@ function notifications_content(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($notifs['total'] == 0)
|
if($notifs['total'] == 0)
|
||||||
info( t('No introductions.') . EOL);
|
info( t('No introductions.') . EOL);
|
||||||
|
|
||||||
// Normal notifications (no introductions)
|
// Normal notifications (no introductions)
|
||||||
|
|
@ -301,7 +301,7 @@ function notifications_content(App $a) {
|
||||||
|
|
||||||
// It doesn't make sense to show the Show unread / Show all link visible if the user is on the
|
// It doesn't make sense to show the Show unread / Show all link visible if the user is on the
|
||||||
// "Show all" page and there are no notifications. So we will hide it.
|
// "Show all" page and there are no notifications. So we will hide it.
|
||||||
if ($show == 0 || intval($show) && $notifs['total'] > 0) {
|
if($show == 0 || intval($show) && $notifs['total'] > 0) {
|
||||||
$notif_show_lnk = array(
|
$notif_show_lnk = array(
|
||||||
'href' => ($show ? 'notifications/'.$notifs['ident'] : 'notifications/'.$notifs['ident'].'?show=all' ),
|
'href' => ($show ? 'notifications/'.$notifs['ident'] : 'notifications/'.$notifs['ident'].'?show=all' ),
|
||||||
'text' => ($show ? t('Show unread') : t('Show all')),
|
'text' => ($show ? t('Show unread') : t('Show all')),
|
||||||
|
|
@ -309,9 +309,8 @@ function notifications_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Output if there aren't any notifications available
|
// Output if there aren't any notifications available
|
||||||
if ($notifs['total'] == 0) {
|
if($notifs['total'] == 0)
|
||||||
$notif_nocontent = sprintf( t('No more %s notifications.'), $notifs['ident']);
|
$notif_nocontent = sprintf( t('No more %s notifications.'), $notifs['ident']);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$o .= replace_macros($notif_tpl, array(
|
$o .= replace_macros($notif_tpl, array(
|
||||||
|
|
|
||||||
|
|
@ -7,20 +7,20 @@ require_once('library/openid.php');
|
||||||
function openid_content(App $a) {
|
function openid_content(App $a) {
|
||||||
|
|
||||||
$noid = get_config('system','no_openid');
|
$noid = get_config('system','no_openid');
|
||||||
if ($noid)
|
if($noid)
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
|
|
||||||
logger('mod_openid ' . print_r($_REQUEST,true), LOGGER_DATA);
|
logger('mod_openid ' . print_r($_REQUEST,true), LOGGER_DATA);
|
||||||
|
|
||||||
if ((x($_GET,'openid_mode')) && (x($_SESSION,'openid'))) {
|
if((x($_GET,'openid_mode')) && (x($_SESSION,'openid'))) {
|
||||||
|
|
||||||
$openid = new LightOpenID;
|
$openid = new LightOpenID;
|
||||||
|
|
||||||
if ($openid->validate()) {
|
if($openid->validate()) {
|
||||||
|
|
||||||
$authid = $_REQUEST['openid_identity'];
|
$authid = $_REQUEST['openid_identity'];
|
||||||
|
|
||||||
if (! strlen($authid)) {
|
if(! strlen($authid)) {
|
||||||
logger( t('OpenID protocol error. No ID returned.') . EOL);
|
logger( t('OpenID protocol error. No ID returned.') . EOL);
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
}
|
}
|
||||||
|
|
@ -69,10 +69,10 @@ function openid_content(App $a) {
|
||||||
if ($k === 'namePerson/friendly') {
|
if ($k === 'namePerson/friendly') {
|
||||||
$nick = notags(trim($v));
|
$nick = notags(trim($v));
|
||||||
}
|
}
|
||||||
if ($k === 'namePerson/first') {
|
if($k === 'namePerson/first') {
|
||||||
$first = notags(trim($v));
|
$first = notags(trim($v));
|
||||||
}
|
}
|
||||||
if ($k === 'namePerson') {
|
if($k === 'namePerson') {
|
||||||
$args .= '&username=' . notags(trim($v));
|
$args .= '&username=' . notags(trim($v));
|
||||||
}
|
}
|
||||||
if ($k === 'contact/email') {
|
if ($k === 'contact/email') {
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ function parse_url_content(App $a) {
|
||||||
$redirects = 0;
|
$redirects = 0;
|
||||||
// Fetch the header of the URL
|
// Fetch the header of the URL
|
||||||
$result = z_fetch_url($url, false, $redirects, array("novalidate" => true, "nobody" => true));
|
$result = z_fetch_url($url, false, $redirects, array("novalidate" => true, "nobody" => true));
|
||||||
if ($result["success"]) {
|
if($result["success"]) {
|
||||||
// Convert the header fields into an array
|
// Convert the header fields into an array
|
||||||
$hdrs = array();
|
$hdrs = array();
|
||||||
$h = explode("\n", $result["header"]);
|
$h = explode("\n", $result["header"]);
|
||||||
|
|
@ -71,7 +71,7 @@ function parse_url_content(App $a) {
|
||||||
$type = $hdrs["Content-Type"];
|
$type = $hdrs["Content-Type"];
|
||||||
}
|
}
|
||||||
if ($type) {
|
if ($type) {
|
||||||
if (stripos($type, "image/") !== false) {
|
if(stripos($type, "image/") !== false) {
|
||||||
echo $br . "[img]" . $url . "[/img]" . $br;
|
echo $br . "[img]" . $url . "[/img]" . $br;
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ function photo_init(App $a) {
|
||||||
header('Etag: '.$_SERVER['HTTP_IF_NONE_MATCH']);
|
header('Etag: '.$_SERVER['HTTP_IF_NONE_MATCH']);
|
||||||
header("Expires: " . gmdate("D, d M Y H:i:s", time() + (31536000)) . " GMT");
|
header("Expires: " . gmdate("D, d M Y H:i:s", time() + (31536000)) . " GMT");
|
||||||
header("Cache-Control: max-age=31536000");
|
header("Cache-Control: max-age=31536000");
|
||||||
if (function_exists('header_remove')) {
|
if(function_exists('header_remove')) {
|
||||||
header_remove('Last-Modified');
|
header_remove('Last-Modified');
|
||||||
header_remove('Expires');
|
header_remove('Expires');
|
||||||
header_remove('Cache-Control');
|
header_remove('Cache-Control');
|
||||||
|
|
@ -46,7 +46,7 @@ function photo_init(App $a) {
|
||||||
|
|
||||||
$default = 'images/person-175.jpg';
|
$default = 'images/person-175.jpg';
|
||||||
|
|
||||||
if (isset($type)) {
|
if(isset($type)) {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -80,22 +80,23 @@ function photo_init(App $a) {
|
||||||
$data = $r[0]['data'];
|
$data = $r[0]['data'];
|
||||||
$mimetype = $r[0]['type'];
|
$mimetype = $r[0]['type'];
|
||||||
}
|
}
|
||||||
if (! isset($data)) {
|
if(! isset($data)) {
|
||||||
$data = file_get_contents($default);
|
$data = file_get_contents($default);
|
||||||
$mimetype = 'image/jpeg';
|
$mimetype = 'image/jpeg';
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Other photos
|
* Other photos
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$resolution = 0;
|
$resolution = 0;
|
||||||
foreach ( Photo::supportedTypes() as $m=>$e){
|
foreach( Photo::supportedTypes() as $m=>$e){
|
||||||
$photo = str_replace(".$e",'',$photo);
|
$photo = str_replace(".$e",'',$photo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($photo,-2,1) == '-') {
|
if(substr($photo,-2,1) == '-') {
|
||||||
$resolution = intval(substr($photo,-1,1));
|
$resolution = intval(substr($photo,-1,1));
|
||||||
$photo = substr($photo,0,-2);
|
$photo = substr($photo,0,-2);
|
||||||
}
|
}
|
||||||
|
|
@ -133,8 +134,8 @@ function photo_init(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! isset($data)) {
|
if(! isset($data)) {
|
||||||
if (isset($resolution)) {
|
if(isset($resolution)) {
|
||||||
switch($resolution) {
|
switch($resolution) {
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
|
|
@ -160,8 +161,8 @@ function photo_init(App $a) {
|
||||||
// Resize only if its not a GIF
|
// Resize only if its not a GIF
|
||||||
if ($mime != "image/gif") {
|
if ($mime != "image/gif") {
|
||||||
$ph = new Photo($data, $mimetype);
|
$ph = new Photo($data, $mimetype);
|
||||||
if ($ph->is_valid()) {
|
if($ph->is_valid()) {
|
||||||
if (isset($customres) && $customres > 0 && $customres < 500) {
|
if(isset($customres) && $customres > 0 && $customres < 500) {
|
||||||
$ph->scaleImageSquare($customres);
|
$ph->scaleImageSquare($customres);
|
||||||
}
|
}
|
||||||
$data = $ph->imageString();
|
$data = $ph->imageString();
|
||||||
|
|
@ -169,14 +170,14 @@ function photo_init(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (function_exists('header_remove')) {
|
if(function_exists('header_remove')) {
|
||||||
header_remove('Pragma');
|
header_remove('Pragma');
|
||||||
header_remove('pragma');
|
header_remove('pragma');
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Content-type: ".$mimetype);
|
header("Content-type: ".$mimetype);
|
||||||
|
|
||||||
if ($prvcachecontrol) {
|
if($prvcachecontrol) {
|
||||||
|
|
||||||
// it is a private photo that they have no permission to view.
|
// it is a private photo that they have no permission to view.
|
||||||
// tell the browser not to cache it, in case they authenticate
|
// tell the browser not to cache it, in case they authenticate
|
||||||
|
|
|
||||||
|
|
@ -1345,11 +1345,10 @@ function photos_content(App $a) {
|
||||||
// The query leads to a really intense used index.
|
// The query leads to a really intense used index.
|
||||||
// By now we hide it if someone wants to.
|
// By now we hide it if someone wants to.
|
||||||
if (!Config::get('system', 'no_count', false)) {
|
if (!Config::get('system', 'no_count', false)) {
|
||||||
if ($_GET['order'] === 'posted') {
|
if ($_GET['order'] === 'posted')
|
||||||
$order = 'ASC';
|
$order = 'ASC';
|
||||||
} else {
|
else
|
||||||
$order = 'DESC';
|
$order = 'DESC';
|
||||||
}
|
|
||||||
|
|
||||||
$prvnxt = qu("SELECT `resource-id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0
|
$prvnxt = qu("SELECT `resource-id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0
|
||||||
$sql_extra ORDER BY `created` $order ",
|
$sql_extra ORDER BY `created` $order ",
|
||||||
|
|
@ -1357,17 +1356,15 @@ function photos_content(App $a) {
|
||||||
intval($owner_uid)
|
intval($owner_uid)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($prvnxt)) {
|
if (count($prvnxt)) {
|
||||||
for($z = 0; $z < count($prvnxt); $z++) {
|
for($z = 0; $z < count($prvnxt); $z++) {
|
||||||
if ($prvnxt[$z]['resource-id'] == $ph[0]['resource-id']) {
|
if ($prvnxt[$z]['resource-id'] == $ph[0]['resource-id']) {
|
||||||
$prv = $z - 1;
|
$prv = $z - 1;
|
||||||
$nxt = $z + 1;
|
$nxt = $z + 1;
|
||||||
if ($prv < 0) {
|
if ($prv < 0)
|
||||||
$prv = count($prvnxt) - 1;
|
$prv = count($prvnxt) - 1;
|
||||||
}
|
if ($nxt >= count($prvnxt))
|
||||||
if ($nxt >= count($prvnxt)) {
|
|
||||||
$nxt = 0;
|
$nxt = 0;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1377,9 +1374,8 @@ function photos_content(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($ph) == 1) {
|
if (count($ph) == 1)
|
||||||
$hires = $lores = $ph[0];
|
$hires = $lores = $ph[0];
|
||||||
}
|
|
||||||
if (count($ph) > 1) {
|
if (count($ph) > 1) {
|
||||||
if ($ph[1]['scale'] == 2) {
|
if ($ph[1]['scale'] == 2) {
|
||||||
// original is 640 or less, we can display it directly
|
// original is 640 or less, we can display it directly
|
||||||
|
|
|
||||||
|
|
@ -216,7 +216,7 @@ function ping_init(App $a)
|
||||||
|
|
||||||
if ($all_events) {
|
if ($all_events) {
|
||||||
$str_now = datetime_convert('UTC', $a->timezone, 'now', 'Y-m-d');
|
$str_now = datetime_convert('UTC', $a->timezone, 'now', 'Y-m-d');
|
||||||
foreach ($ev as $x) {
|
foreach($ev as $x) {
|
||||||
$bd = false;
|
$bd = false;
|
||||||
if ($x['type'] === 'birthday') {
|
if ($x['type'] === 'birthday') {
|
||||||
$birthdays ++;
|
$birthdays ++;
|
||||||
|
|
@ -486,7 +486,7 @@ function ping_get_notifications($uid)
|
||||||
function ping_format_xml_data($data, $sysnotify, $notifs, $sysmsgs, $sysmsgs_info, $groups_unseen, $forums_unseen)
|
function ping_format_xml_data($data, $sysnotify, $notifs, $sysmsgs, $sysmsgs_info, $groups_unseen, $forums_unseen)
|
||||||
{
|
{
|
||||||
$notifications = array();
|
$notifications = array();
|
||||||
foreach ($notifs as $key => $notif) {
|
foreach($notifs as $key => $notif) {
|
||||||
$notifications[$key . ':note'] = $notif['message'];
|
$notifications[$key . ':note'] = $notif['message'];
|
||||||
|
|
||||||
$notifications[$key . ':@attributes'] = array(
|
$notifications[$key . ':@attributes'] = array(
|
||||||
|
|
|
||||||
35
mod/poco.php
35
mod/poco.php
|
|
@ -157,27 +157,27 @@ function poco_init(App $a) {
|
||||||
if (x($_GET,'updatedSince') AND !$global) {
|
if (x($_GET,'updatedSince') AND !$global) {
|
||||||
$ret['updatedSince'] = false;
|
$ret['updatedSince'] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret['startIndex'] = (int) $startIndex;
|
$ret['startIndex'] = (int) $startIndex;
|
||||||
$ret['itemsPerPage'] = (int) $itemsPerPage;
|
$ret['itemsPerPage'] = (int) $itemsPerPage;
|
||||||
$ret['totalResults'] = (int) $totalResults;
|
$ret['totalResults'] = (int) $totalResults;
|
||||||
$ret['entry'] = array();
|
$ret['entry'] = array();
|
||||||
|
|
||||||
|
|
||||||
$fields_ret = array(
|
$fields_ret = array(
|
||||||
'id' => false,
|
'id' => false,
|
||||||
'displayName' => false,
|
'displayName' => false,
|
||||||
'urls' => false,
|
'urls' => false,
|
||||||
'updated' => false,
|
'updated' => false,
|
||||||
'preferredUsername' => false,
|
'preferredUsername' => false,
|
||||||
'photos' => false,
|
'photos' => false,
|
||||||
'aboutMe' => false,
|
'aboutMe' => false,
|
||||||
'currentLocation' => false,
|
'currentLocation' => false,
|
||||||
'network' => false,
|
'network' => false,
|
||||||
'gender' => false,
|
'gender' => false,
|
||||||
'tags' => false,
|
'tags' => false,
|
||||||
'address' => false,
|
'address' => false,
|
||||||
'contactType' => false,
|
'contactType' => false,
|
||||||
'generation' => false
|
'generation' => false
|
||||||
);
|
);
|
||||||
|
|
||||||
if ((! x($_GET,'fields')) || ($_GET['fields'] === '@all')) {
|
if ((! x($_GET,'fields')) || ($_GET['fields'] === '@all')) {
|
||||||
|
|
@ -207,17 +207,14 @@ function poco_init(App $a) {
|
||||||
if (($rr['about'] == "") AND isset($rr['pabout'])) {
|
if (($rr['about'] == "") AND isset($rr['pabout'])) {
|
||||||
$rr['about'] = $rr['pabout'];
|
$rr['about'] = $rr['pabout'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($rr['location'] == "") {
|
if ($rr['location'] == "") {
|
||||||
if (isset($rr['plocation'])) {
|
if (isset($rr['plocation'])) {
|
||||||
$rr['location'] = $rr['plocation'];
|
$rr['location'] = $rr['plocation'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($rr['pregion']) AND ($rr['pregion'] != "")) {
|
if (isset($rr['pregion']) AND ($rr['pregion'] != "")) {
|
||||||
if ($rr['location'] != "") {
|
if ($rr['location'] != "") {
|
||||||
$rr['location'] .= ", ";
|
$rr['location'] .= ", ";
|
||||||
}
|
}
|
||||||
|
|
||||||
$rr['location'] .= $rr['pregion'];
|
$rr['location'] .= $rr['pregion'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -295,7 +292,6 @@ function poco_init(App $a) {
|
||||||
} else {
|
} else {
|
||||||
$entry['updated'] = $rr['updated'];
|
$entry['updated'] = $rr['updated'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$entry['updated'] = date("c", strtotime($entry['updated']));
|
$entry['updated'] = date("c", strtotime($entry['updated']));
|
||||||
}
|
}
|
||||||
if ($fields_ret['photos']) {
|
if ($fields_ret['photos']) {
|
||||||
|
|
@ -349,7 +345,6 @@ function poco_init(App $a) {
|
||||||
if ($fields_ret['contactType']) {
|
if ($fields_ret['contactType']) {
|
||||||
$entry['contactType'] = intval($rr['contact-type']);
|
$entry['contactType'] = intval($rr['contact-type']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret['entry'][] = $entry;
|
$ret['entry'][] = $entry;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -358,7 +353,6 @@ function poco_init(App $a) {
|
||||||
} else {
|
} else {
|
||||||
http_status_exit(500);
|
http_status_exit(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger("End of poco", LOGGER_DEBUG);
|
logger("End of poco", LOGGER_DEBUG);
|
||||||
|
|
||||||
if ($format === 'xml') {
|
if ($format === 'xml') {
|
||||||
|
|
@ -373,5 +367,4 @@ function poco_init(App $a) {
|
||||||
} else {
|
} else {
|
||||||
http_status_exit(500);
|
http_status_exit(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
12
mod/poke.php
12
mod/poke.php
|
|
@ -63,7 +63,7 @@ function poke_init(App $a) {
|
||||||
|
|
||||||
$target = $r[0];
|
$target = $r[0];
|
||||||
|
|
||||||
if ($parent) {
|
if($parent) {
|
||||||
$r = q("SELECT `uri`, `private`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`
|
$r = q("SELECT `uri`, `private`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`
|
||||||
FROM `item` WHERE `id` = %d AND `parent` = %d AND `uid` = %d LIMIT 1",
|
FROM `item` WHERE `id` = %d AND `parent` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($parent),
|
intval($parent),
|
||||||
|
|
@ -129,7 +129,7 @@ function poke_init(App $a) {
|
||||||
$arr['object'] .= '</link></object>' . "\n";
|
$arr['object'] .= '</link></object>' . "\n";
|
||||||
|
|
||||||
$item_id = item_store($arr);
|
$item_id = item_store($arr);
|
||||||
if ($item_id) {
|
if($item_id) {
|
||||||
//q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d",
|
//q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d",
|
||||||
// dbesc(App::get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id),
|
// dbesc(App::get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id),
|
||||||
// intval($uid),
|
// intval($uid),
|
||||||
|
|
@ -158,7 +158,7 @@ function poke_content(App $a) {
|
||||||
$name = '';
|
$name = '';
|
||||||
$id = '';
|
$id = '';
|
||||||
|
|
||||||
if (intval($_GET['c'])) {
|
if(intval($_GET['c'])) {
|
||||||
$r = q("SELECT `id`,`name` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `id`,`name` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($_GET['c']),
|
intval($_GET['c']),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -185,11 +185,9 @@ function poke_content(App $a) {
|
||||||
$verbs = get_poke_verbs();
|
$verbs = get_poke_verbs();
|
||||||
|
|
||||||
$shortlist = array();
|
$shortlist = array();
|
||||||
foreach ($verbs as $k => $v) {
|
foreach($verbs as $k => $v)
|
||||||
if ($v[1] !== 'NOTRANSLATION') {
|
if($v[1] !== 'NOTRANSLATION')
|
||||||
$shortlist[] = array($k,$v[1]);
|
$shortlist[] = array($k,$v[1]);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$tpl = get_markup_template('poke_content.tpl');
|
$tpl = get_markup_template('poke_content.tpl');
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@ function post_post(App $a) {
|
||||||
|
|
||||||
if ($a->argc == 1) {
|
if ($a->argc == 1) {
|
||||||
$bulk_delivery = true;
|
$bulk_delivery = true;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$nickname = $a->argv[2];
|
$nickname = $a->argv[2];
|
||||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s'
|
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s'
|
||||||
AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||||
|
|
@ -33,17 +34,15 @@ function post_post(App $a) {
|
||||||
|
|
||||||
logger('mod-post: new zot: ' . $xml, LOGGER_DATA);
|
logger('mod-post: new zot: ' . $xml, LOGGER_DATA);
|
||||||
|
|
||||||
if (! $xml) {
|
if(! $xml)
|
||||||
http_status_exit(500);
|
http_status_exit(500);
|
||||||
}
|
|
||||||
|
|
||||||
$msg = zot_decode($importer,$xml);
|
$msg = zot_decode($importer,$xml);
|
||||||
|
|
||||||
logger('mod-post: decoded msg: ' . print_r($msg,true), LOGGER_DATA);
|
logger('mod-post: decoded msg: ' . print_r($msg,true), LOGGER_DATA);
|
||||||
|
|
||||||
if (! is_array($msg)) {
|
if(! is_array($msg))
|
||||||
http_status_exit(500);
|
http_status_exit(500);
|
||||||
}
|
|
||||||
|
|
||||||
$ret = 0;
|
$ret = 0;
|
||||||
$ret = zot_incoming($bulk_delivery, $importer,$msg);
|
$ret = zot_incoming($bulk_delivery, $importer,$msg);
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,16 @@
|
||||||
|
|
||||||
function pretheme_init(App $a) {
|
function pretheme_init(App $a) {
|
||||||
|
|
||||||
if ($_REQUEST['theme']) {
|
if($_REQUEST['theme']) {
|
||||||
$theme = $_REQUEST['theme'];
|
$theme = $_REQUEST['theme'];
|
||||||
$info = get_theme_info($theme);
|
$info = get_theme_info($theme);
|
||||||
if ($info) {
|
if($info) {
|
||||||
// unfortunately there will be no translation for this string
|
// unfortunately there will be no translation for this string
|
||||||
$desc = $info['description'];
|
$desc = $info['description'];
|
||||||
$version = $info['version'];
|
$version = $info['version'];
|
||||||
$credits = $info['credits'];
|
$credits = $info['credits'];
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$desc = '';
|
$desc = '';
|
||||||
$version = '';
|
$version = '';
|
||||||
$credits = '';
|
$credits = '';
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ function probe_content(App $a) {
|
||||||
|
|
||||||
$o .= '<br /><br />';
|
$o .= '<br /><br />';
|
||||||
|
|
||||||
if (x($_GET,'addr')) {
|
if(x($_GET,'addr')) {
|
||||||
|
|
||||||
$addr = trim($_GET['addr']);
|
$addr = trim($_GET['addr']);
|
||||||
$res = probe_url($addr);
|
$res = probe_url($addr);
|
||||||
|
|
|
||||||
|
|
@ -6,17 +6,17 @@ require_once('include/redir.php');
|
||||||
|
|
||||||
function profile_init(App $a) {
|
function profile_init(App $a) {
|
||||||
|
|
||||||
if (! x($a->page,'aside')) {
|
if(! x($a->page,'aside'))
|
||||||
$a->page['aside'] = '';
|
$a->page['aside'] = '';
|
||||||
}
|
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1)
|
||||||
$which = htmlspecialchars($a->argv[1]);
|
$which = htmlspecialchars($a->argv[1]);
|
||||||
}else {
|
else {
|
||||||
$r = q("select nickname from user where blocked = 0 and account_expired = 0 and account_removed = 0 and verified = 1 order by rand() limit 1");
|
$r = q("select nickname from user where blocked = 0 and account_expired = 0 and account_removed = 0 and verified = 1 order by rand() limit 1");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
goaway(App::get_baseurl() . '/profile/' . $r[0]['nickname']);
|
goaway(App::get_baseurl() . '/profile/' . $r[0]['nickname']);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
logger('profile error: mod_profile ' . $a->query_string, LOGGER_DEBUG);
|
logger('profile error: mod_profile ' . $a->query_string, LOGGER_DEBUG);
|
||||||
notice( t('Requested profile is not available.') . EOL );
|
notice( t('Requested profile is not available.') . EOL );
|
||||||
$a->error = 404;
|
$a->error = 404;
|
||||||
|
|
@ -25,10 +25,11 @@ function profile_init(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$profile = 0;
|
$profile = 0;
|
||||||
if ((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) {
|
if((local_user()) && ($a->argc > 2) && ($a->argv[2] === 'view')) {
|
||||||
$which = $a->user['nickname'];
|
$which = $a->user['nickname'];
|
||||||
$profile = htmlspecialchars($a->argv[1]);
|
$profile = htmlspecialchars($a->argv[1]);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
auto_redir($a, $which);
|
auto_redir($a, $which);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -37,7 +38,7 @@ function profile_init(App $a) {
|
||||||
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
|
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
|
||||||
$userblock = (($a->profile['hidewall'] && (! local_user()) && (! remote_user())) ? true : false);
|
$userblock = (($a->profile['hidewall'] && (! local_user()) && (! remote_user())) ? true : false);
|
||||||
|
|
||||||
if ((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
|
if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
|
||||||
$a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
|
$a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
|
||||||
}
|
}
|
||||||
if (x($a->profile,'openidserver')) {
|
if (x($a->profile,'openidserver')) {
|
||||||
|
|
@ -51,7 +52,7 @@ function profile_init(App $a) {
|
||||||
if ((! $blocked) && (! $userblock)) {
|
if ((! $blocked) && (! $userblock)) {
|
||||||
$keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : '');
|
$keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : '');
|
||||||
$keywords = str_replace(array('#',',',' ',',,'),array('',' ',',',','),$keywords);
|
$keywords = str_replace(array('#',',',' ',',,'),array('',' ',',',','),$keywords);
|
||||||
if (strlen($keywords))
|
if(strlen($keywords))
|
||||||
$a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\r\n" ;
|
$a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\r\n" ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -261,7 +262,7 @@ function profile_content(App $a, $update = 0) {
|
||||||
}
|
}
|
||||||
// now that we have the user settings, see if the theme forces
|
// now that we have the user settings, see if the theme forces
|
||||||
// a maximum item number which is lower then the user choice
|
// a maximum item number which is lower then the user choice
|
||||||
if (($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network))
|
if(($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network))
|
||||||
$itemspage_network = $a->force_max_items;
|
$itemspage_network = $a->force_max_items;
|
||||||
|
|
||||||
$a->set_pager_itemspage($itemspage_network);
|
$a->set_pager_itemspage($itemspage_network);
|
||||||
|
|
@ -288,9 +289,8 @@ function profile_content(App $a, $update = 0) {
|
||||||
$parents_str = '';
|
$parents_str = '';
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
$parents_arr[] = $rr['item_id'];
|
$parents_arr[] = $rr['item_id'];
|
||||||
}
|
|
||||||
$parents_str = implode(', ', $parents_arr);
|
$parents_str = implode(', ', $parents_arr);
|
||||||
|
|
||||||
$items = q(item_query()." AND `item`.`uid` = %d
|
$items = q(item_query()." AND `item`.`uid` = %d
|
||||||
|
|
@ -305,13 +305,13 @@ function profile_content(App $a, $update = 0) {
|
||||||
$items = array();
|
$items = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($is_owner && (! $update) && (! get_config('theme','hide_eventlist'))) {
|
if($is_owner && (! $update) && (! get_config('theme','hide_eventlist'))) {
|
||||||
$o .= get_birthdays();
|
$o .= get_birthdays();
|
||||||
$o .= get_events();
|
$o .= get_events();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($is_owner) {
|
if($is_owner) {
|
||||||
$r = q("UPDATE `item` SET `unseen` = 0
|
$r = q("UPDATE `item` SET `unseen` = 0
|
||||||
WHERE `wall` = 1 AND `unseen` = 1 AND `uid` = %d",
|
WHERE `wall` = 1 AND `unseen` = 1 AND `uid` = %d",
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
|
||||||
|
|
@ -22,12 +22,12 @@ function profile_photo_post(App $a) {
|
||||||
|
|
||||||
check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
|
check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
|
||||||
|
|
||||||
if ((x($_POST,'cropfinal')) && ($_POST['cropfinal'] == 1)) {
|
if((x($_POST,'cropfinal')) && ($_POST['cropfinal'] == 1)) {
|
||||||
|
|
||||||
// unless proven otherwise
|
// unless proven otherwise
|
||||||
$is_default_profile = 1;
|
$is_default_profile = 1;
|
||||||
|
|
||||||
if ($_REQUEST['profile']) {
|
if($_REQUEST['profile']) {
|
||||||
$r = q("select id, `is-default` from profile where id = %d and uid = %d limit 1",
|
$r = q("select id, `is-default` from profile where id = %d and uid = %d limit 1",
|
||||||
intval($_REQUEST['profile']),
|
intval($_REQUEST['profile']),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -40,14 +40,14 @@ function profile_photo_post(App $a) {
|
||||||
|
|
||||||
// phase 2 - we have finished cropping
|
// phase 2 - we have finished cropping
|
||||||
|
|
||||||
if ($a->argc != 2) {
|
if($a->argc != 2) {
|
||||||
notice( t('Image uploaded but image cropping failed.') . EOL );
|
notice( t('Image uploaded but image cropping failed.') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$image_id = $a->argv[1];
|
$image_id = $a->argv[1];
|
||||||
|
|
||||||
if (substr($image_id,-2,1) == '-') {
|
if(substr($image_id,-2,1) == '-') {
|
||||||
$scale = substr($image_id,-1,1);
|
$scale = substr($image_id,-1,1);
|
||||||
$image_id = substr($image_id,0,-2);
|
$image_id = substr($image_id,0,-2);
|
||||||
}
|
}
|
||||||
|
|
@ -68,7 +68,7 @@ function profile_photo_post(App $a) {
|
||||||
$base_image = $r[0];
|
$base_image = $r[0];
|
||||||
|
|
||||||
$im = new Photo($base_image['data'], $base_image['type']);
|
$im = new Photo($base_image['data'], $base_image['type']);
|
||||||
if ($im->is_valid()) {
|
if($im->is_valid()) {
|
||||||
$im->cropImage(175,$srcX,$srcY,$srcW,$srcH);
|
$im->cropImage(175,$srcX,$srcY,$srcW,$srcH);
|
||||||
|
|
||||||
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, $is_default_profile);
|
$r = $im->store(local_user(), 0, $base_image['resource-id'],$base_image['filename'], t('Profile Photos'), 4, $is_default_profile);
|
||||||
|
|
@ -95,7 +95,7 @@ function profile_photo_post(App $a) {
|
||||||
|
|
||||||
// If setting for the default profile, unset the profile photo flag from any other photos I own
|
// If setting for the default profile, unset the profile photo flag from any other photos I own
|
||||||
|
|
||||||
if ($is_default_profile) {
|
if($is_default_profile) {
|
||||||
$r = q("UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d",
|
$r = q("UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d",
|
||||||
dbesc($base_image['resource-id']),
|
dbesc($base_image['resource-id']),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -173,7 +173,7 @@ function profile_photo_post(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('profile_photo_content')) {
|
if(! function_exists('profile_photo_content')) {
|
||||||
function profile_photo_content(App $a) {
|
function profile_photo_content(App $a) {
|
||||||
|
|
||||||
if (! local_user()) {
|
if (! local_user()) {
|
||||||
|
|
@ -183,10 +183,10 @@ function profile_photo_content(App $a) {
|
||||||
|
|
||||||
$newuser = false;
|
$newuser = false;
|
||||||
|
|
||||||
if ($a->argc == 2 && $a->argv[1] === 'new')
|
if($a->argc == 2 && $a->argv[1] === 'new')
|
||||||
$newuser = true;
|
$newuser = true;
|
||||||
|
|
||||||
if ( $a->argv[1]=='use'){
|
if( $a->argv[1]=='use'){
|
||||||
if ($a->argc<3){
|
if ($a->argc<3){
|
||||||
notice( t('Permission denied.') . EOL );
|
notice( t('Permission denied.') . EOL );
|
||||||
return;
|
return;
|
||||||
|
|
@ -206,7 +206,7 @@ function profile_photo_content(App $a) {
|
||||||
}
|
}
|
||||||
$havescale = false;
|
$havescale = false;
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if ($rr['scale'] == 5)
|
if($rr['scale'] == 5)
|
||||||
$havescale = true;
|
$havescale = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -245,7 +245,7 @@ function profile_photo_content(App $a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
if (! x($a->config,'imagecrop')) {
|
if(! x($a->config,'imagecrop')) {
|
||||||
|
|
||||||
$tpl = get_markup_template('profile_photo.tpl');
|
$tpl = get_markup_template('profile_photo.tpl');
|
||||||
|
|
||||||
|
|
@ -283,7 +283,7 @@ function profile_photo_content(App $a) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('profile_photo_crop_ui_head')) {
|
if(! function_exists('profile_photo_crop_ui_head')) {
|
||||||
function profile_photo_crop_ui_head(App $a, $ph) {
|
function profile_photo_crop_ui_head(App $a, $ph) {
|
||||||
$max_length = get_config('system','max_image_length');
|
$max_length = get_config('system','max_image_length');
|
||||||
if (! $max_length) {
|
if (! $max_length) {
|
||||||
|
|
|
||||||
122
mod/profiles.php
122
mod/profiles.php
|
|
@ -10,7 +10,7 @@ function profiles_init(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 2) && ($a->argv[1] === "drop") && intval($a->argv[2])) {
|
if(($a->argc > 2) && ($a->argv[1] === "drop") && intval($a->argv[2])) {
|
||||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is-default` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is-default` = 0 LIMIT 1",
|
||||||
intval($a->argv[2]),
|
intval($a->argv[2]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -34,9 +34,8 @@ function profiles_init(App $a) {
|
||||||
intval($a->argv[2]),
|
intval($a->argv[2]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if ($r) {
|
if($r)
|
||||||
info(t('Profile deleted.').EOL);
|
info(t('Profile deleted.').EOL);
|
||||||
}
|
|
||||||
|
|
||||||
goaway('profiles');
|
goaway('profiles');
|
||||||
return; // NOTREACHED
|
return; // NOTREACHED
|
||||||
|
|
@ -46,7 +45,7 @@ function profiles_init(App $a) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (($a->argc > 1) && ($a->argv[1] === 'new')) {
|
if(($a->argc > 1) && ($a->argv[1] === 'new')) {
|
||||||
|
|
||||||
check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
|
check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
|
||||||
|
|
||||||
|
|
@ -74,13 +73,13 @@ function profiles_init(App $a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
info( t('New profile created.') . EOL);
|
info( t('New profile created.') . EOL);
|
||||||
if (count($r3) == 1)
|
if(count($r3) == 1)
|
||||||
goaway('profiles/'.$r3[0]['id']);
|
goaway('profiles/'.$r3[0]['id']);
|
||||||
|
|
||||||
goaway('profiles');
|
goaway('profiles');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 2) && ($a->argv[1] === 'clone')) {
|
if(($a->argc > 2) && ($a->argv[1] === 'clone')) {
|
||||||
|
|
||||||
check_form_security_token_redirectOnErr('/profiles', 'profile_clone', 't');
|
check_form_security_token_redirectOnErr('/profiles', 'profile_clone', 't');
|
||||||
|
|
||||||
|
|
@ -93,7 +92,7 @@ function profiles_init(App $a) {
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
intval($a->argv[2])
|
intval($a->argv[2])
|
||||||
);
|
);
|
||||||
if (! dbm::is_result($r1)) {
|
if(! dbm::is_result($r1)) {
|
||||||
notice( t('Profile unavailable to clone.') . EOL);
|
notice( t('Profile unavailable to clone.') . EOL);
|
||||||
killme();
|
killme();
|
||||||
return;
|
return;
|
||||||
|
|
@ -126,7 +125,7 @@ function profiles_init(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (($a->argc > 1) && (intval($a->argv[1]))) {
|
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
$r = q("SELECT id FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT id FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($a->argv[1]),
|
intval($a->argv[1]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -172,12 +171,12 @@ function profiles_post(App $a) {
|
||||||
|
|
||||||
call_hooks('profile_post', $_POST);
|
call_hooks('profile_post', $_POST);
|
||||||
|
|
||||||
if (($a->argc > 1) && ($a->argv[1] !== "new") && intval($a->argv[1])) {
|
if(($a->argc > 1) && ($a->argv[1] !== "new") && intval($a->argv[1])) {
|
||||||
$orig = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$orig = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($a->argv[1]),
|
intval($a->argv[1]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if (! count($orig)) {
|
if(! count($orig)) {
|
||||||
notice( t('Profile not found.') . EOL);
|
notice( t('Profile not found.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -187,7 +186,7 @@ function profiles_post(App $a) {
|
||||||
$is_default = (($orig[0]['is-default']) ? 1 : 0);
|
$is_default = (($orig[0]['is-default']) ? 1 : 0);
|
||||||
|
|
||||||
$profile_name = notags(trim($_POST['profile_name']));
|
$profile_name = notags(trim($_POST['profile_name']));
|
||||||
if (! strlen($profile_name)) {
|
if(! strlen($profile_name)) {
|
||||||
notice( t('Profile Name is required.') . EOL);
|
notice( t('Profile Name is required.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -195,27 +194,27 @@ function profiles_post(App $a) {
|
||||||
$dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00'; // FIXME: Needs to be validated?
|
$dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00'; // FIXME: Needs to be validated?
|
||||||
|
|
||||||
$y = substr($dob,0,4);
|
$y = substr($dob,0,4);
|
||||||
if ((! ctype_digit($y)) || ($y < 1900))
|
if((! ctype_digit($y)) || ($y < 1900))
|
||||||
$ignore_year = true;
|
$ignore_year = true;
|
||||||
else
|
else
|
||||||
$ignore_year = false;
|
$ignore_year = false;
|
||||||
if ($dob != '0000-00-00') {
|
if($dob != '0000-00-00') {
|
||||||
if (strpos($dob,'0000-') === 0) {
|
if(strpos($dob,'0000-') === 0) {
|
||||||
$ignore_year = true;
|
$ignore_year = true;
|
||||||
$dob = substr($dob,5);
|
$dob = substr($dob,5);
|
||||||
}
|
}
|
||||||
$dob = datetime_convert('UTC','UTC',(($ignore_year) ? '1900-' . $dob : $dob),(($ignore_year) ? 'm-d' : 'Y-m-d'));
|
$dob = datetime_convert('UTC','UTC',(($ignore_year) ? '1900-' . $dob : $dob),(($ignore_year) ? 'm-d' : 'Y-m-d'));
|
||||||
if ($ignore_year)
|
if($ignore_year)
|
||||||
$dob = '0000-' . $dob;
|
$dob = '0000-' . $dob;
|
||||||
}
|
}
|
||||||
|
|
||||||
$name = notags(trim($_POST['name']));
|
$name = notags(trim($_POST['name']));
|
||||||
|
|
||||||
if (! strlen($name)) {
|
if(! strlen($name)) {
|
||||||
$name = '[No Name]';
|
$name = '[No Name]';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($orig[0]['name'] != $name)
|
if($orig[0]['name'] != $name)
|
||||||
$namechanged = true;
|
$namechanged = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -234,7 +233,7 @@ function profiles_post(App $a) {
|
||||||
|
|
||||||
$with = ((x($_POST,'with')) ? notags(trim($_POST['with'])) : '');
|
$with = ((x($_POST,'with')) ? notags(trim($_POST['with'])) : '');
|
||||||
|
|
||||||
if (! strlen($howlong)) {
|
if(! strlen($howlong)) {
|
||||||
$howlong = NULL_DATE;
|
$howlong = NULL_DATE;
|
||||||
} else {
|
} else {
|
||||||
$howlong = datetime_convert(date_default_timezone_get(),'UTC',$howlong);
|
$howlong = datetime_convert(date_default_timezone_get(),'UTC',$howlong);
|
||||||
|
|
@ -243,34 +242,34 @@ function profiles_post(App $a) {
|
||||||
|
|
||||||
$withchanged = false;
|
$withchanged = false;
|
||||||
|
|
||||||
if (strlen($with)) {
|
if(strlen($with)) {
|
||||||
if ($with != strip_tags($orig[0]['with'])) {
|
if($with != strip_tags($orig[0]['with'])) {
|
||||||
$withchanged = true;
|
$withchanged = true;
|
||||||
$prf = '';
|
$prf = '';
|
||||||
$lookup = $with;
|
$lookup = $with;
|
||||||
if (strpos($lookup,'@') === 0) {
|
if(strpos($lookup,'@') === 0)
|
||||||
$lookup = substr($lookup,1);
|
$lookup = substr($lookup,1);
|
||||||
}
|
|
||||||
$lookup = str_replace('_',' ', $lookup);
|
$lookup = str_replace('_',' ', $lookup);
|
||||||
if (strpos($lookup,'@') || (strpos($lookup,'http://'))) {
|
if(strpos($lookup,'@') || (strpos($lookup,'http://'))) {
|
||||||
$newname = $lookup;
|
$newname = $lookup;
|
||||||
/// @TODO Maybe kill those error/debugging-surpressing @ characters
|
|
||||||
$links = @Probe::lrdd($lookup);
|
$links = @Probe::lrdd($lookup);
|
||||||
if (count($links)) {
|
if(count($links)) {
|
||||||
foreach ($links as $link) {
|
foreach($links as $link) {
|
||||||
if ($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') {
|
if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') {
|
||||||
$prf = $link['@attributes']['href'];
|
$prf = $link['@attributes']['href'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$newname = $lookup;
|
$newname = $lookup;
|
||||||
/* if (strstr($lookup,' ')) {
|
/* if(strstr($lookup,' ')) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($newname),
|
dbesc($newname),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `nick` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `nick` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($lookup),
|
dbesc($lookup),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -281,7 +280,7 @@ function profiles_post(App $a) {
|
||||||
dbesc($newname),
|
dbesc($newname),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if (! $r) {
|
if(! $r) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `nick` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `nick` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($lookup),
|
dbesc($lookup),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -293,9 +292,9 @@ function profiles_post(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($prf) {
|
if($prf) {
|
||||||
$with = str_replace($lookup,'<a href="' . $prf . '">' . $newname . '</a>', $with);
|
$with = str_replace($lookup,'<a href="' . $prf . '">' . $newname . '</a>', $with);
|
||||||
if (strpos($with,'@') === 0)
|
if(strpos($with,'@') === 0)
|
||||||
$with = substr($with,1);
|
$with = substr($with,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -334,61 +333,61 @@ function profiles_post(App $a) {
|
||||||
|
|
||||||
$changes = array();
|
$changes = array();
|
||||||
$value = '';
|
$value = '';
|
||||||
if ($is_default) {
|
if($is_default) {
|
||||||
if ($marital != $orig[0]['marital']) {
|
if($marital != $orig[0]['marital']) {
|
||||||
$changes[] = '[color=#ff0000]♥[/color] ' . t('Marital Status');
|
$changes[] = '[color=#ff0000]♥[/color] ' . t('Marital Status');
|
||||||
$value = $marital;
|
$value = $marital;
|
||||||
}
|
}
|
||||||
if ($withchanged) {
|
if($withchanged) {
|
||||||
$changes[] = '[color=#ff0000]♥[/color] ' . t('Romantic Partner');
|
$changes[] = '[color=#ff0000]♥[/color] ' . t('Romantic Partner');
|
||||||
$value = strip_tags($with);
|
$value = strip_tags($with);
|
||||||
}
|
}
|
||||||
if ($likes != $orig[0]['likes']) {
|
if($likes != $orig[0]['likes']) {
|
||||||
$changes[] = t('Likes');
|
$changes[] = t('Likes');
|
||||||
$value = $likes;
|
$value = $likes;
|
||||||
}
|
}
|
||||||
if ($dislikes != $orig[0]['dislikes']) {
|
if($dislikes != $orig[0]['dislikes']) {
|
||||||
$changes[] = t('Dislikes');
|
$changes[] = t('Dislikes');
|
||||||
$value = $dislikes;
|
$value = $dislikes;
|
||||||
}
|
}
|
||||||
if ($work != $orig[0]['work']) {
|
if($work != $orig[0]['work']) {
|
||||||
$changes[] = t('Work/Employment');
|
$changes[] = t('Work/Employment');
|
||||||
}
|
}
|
||||||
if ($religion != $orig[0]['religion']) {
|
if($religion != $orig[0]['religion']) {
|
||||||
$changes[] = t('Religion');
|
$changes[] = t('Religion');
|
||||||
$value = $religion;
|
$value = $religion;
|
||||||
}
|
}
|
||||||
if ($politic != $orig[0]['politic']) {
|
if($politic != $orig[0]['politic']) {
|
||||||
$changes[] = t('Political Views');
|
$changes[] = t('Political Views');
|
||||||
$value = $politic;
|
$value = $politic;
|
||||||
}
|
}
|
||||||
if ($gender != $orig[0]['gender']) {
|
if($gender != $orig[0]['gender']) {
|
||||||
$changes[] = t('Gender');
|
$changes[] = t('Gender');
|
||||||
$value = $gender;
|
$value = $gender;
|
||||||
}
|
}
|
||||||
if ($sexual != $orig[0]['sexual']) {
|
if($sexual != $orig[0]['sexual']) {
|
||||||
$changes[] = t('Sexual Preference');
|
$changes[] = t('Sexual Preference');
|
||||||
$value = $sexual;
|
$value = $sexual;
|
||||||
}
|
}
|
||||||
if ($xmpp != $orig[0]['xmpp']) {
|
if($xmpp != $orig[0]['xmpp']) {
|
||||||
$changes[] = t('XMPP');
|
$changes[] = t('XMPP');
|
||||||
$value = $xmpp;
|
$value = $xmpp;
|
||||||
}
|
}
|
||||||
if ($homepage != $orig[0]['homepage']) {
|
if($homepage != $orig[0]['homepage']) {
|
||||||
$changes[] = t('Homepage');
|
$changes[] = t('Homepage');
|
||||||
$value = $homepage;
|
$value = $homepage;
|
||||||
}
|
}
|
||||||
if ($interest != $orig[0]['interest']) {
|
if($interest != $orig[0]['interest']) {
|
||||||
$changes[] = t('Interests');
|
$changes[] = t('Interests');
|
||||||
$value = $interest;
|
$value = $interest;
|
||||||
}
|
}
|
||||||
if ($address != $orig[0]['address']) {
|
if($address != $orig[0]['address']) {
|
||||||
$changes[] = t('Address');
|
$changes[] = t('Address');
|
||||||
// New address not sent in notifications, potential privacy issues
|
// New address not sent in notifications, potential privacy issues
|
||||||
// in case this leaks to unintended recipients. Yes, it's in the public
|
// in case this leaks to unintended recipients. Yes, it's in the public
|
||||||
// profile but that doesn't mean we have to broadcast it to everybody.
|
// profile but that doesn't mean we have to broadcast it to everybody.
|
||||||
}
|
}
|
||||||
if ($locality != $orig[0]['locality'] || $region != $orig[0]['region']
|
if($locality != $orig[0]['locality'] || $region != $orig[0]['region']
|
||||||
|| $country_name != $orig[0]['country-name']) {
|
|| $country_name != $orig[0]['country-name']) {
|
||||||
$changes[] = t('Location');
|
$changes[] = t('Location');
|
||||||
$comma1 = ((($locality) && ($region || $country_name)) ? ', ' : ' ');
|
$comma1 = ((($locality) && ($region || $country_name)) ? ', ' : ' ');
|
||||||
|
|
@ -474,12 +473,11 @@ function profiles_post(App $a) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($r) {
|
if($r)
|
||||||
info( t('Profile updated.') . EOL);
|
info( t('Profile updated.') . EOL);
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ($namechanged && $is_default) {
|
if($namechanged && $is_default) {
|
||||||
$r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `self` = 1 AND `uid` = %d",
|
$r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `self` = 1 AND `uid` = %d",
|
||||||
dbesc($name),
|
dbesc($name),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
|
|
@ -491,7 +489,7 @@ function profiles_post(App $a) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($is_default) {
|
if($is_default) {
|
||||||
$location = formatted_location(array("locality" => $locality, "region" => $region, "country-name" => $country_name));
|
$location = formatted_location(array("locality" => $locality, "region" => $region, "country-name" => $country_name));
|
||||||
|
|
||||||
q("UPDATE `contact` SET `about` = '%s', `location` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `self` AND `uid` = %d",
|
q("UPDATE `contact` SET `about` = '%s', `location` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `self` AND `uid` = %d",
|
||||||
|
|
@ -521,13 +519,13 @@ function profiles_post(App $a) {
|
||||||
function profile_activity($changed, $value) {
|
function profile_activity($changed, $value) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if (! local_user() || ! is_array($changed) || ! count($changed))
|
if(! local_user() || ! is_array($changed) || ! count($changed))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ($a->user['hidewall'] || get_config('system','block_public'))
|
if($a->user['hidewall'] || get_config('system','block_public'))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (! get_pconfig(local_user(),'system','post_profilechange'))
|
if(! get_pconfig(local_user(),'system','post_profilechange'))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
require_once('include/items.php');
|
require_once('include/items.php');
|
||||||
|
|
@ -536,7 +534,7 @@ function profile_activity($changed, $value) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! count($self))
|
if(! count($self))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$arr = array();
|
$arr = array();
|
||||||
|
|
@ -561,8 +559,8 @@ function profile_activity($changed, $value) {
|
||||||
$changes = '';
|
$changes = '';
|
||||||
$t = count($changed);
|
$t = count($changed);
|
||||||
$z = 0;
|
$z = 0;
|
||||||
foreach ($changed as $ch) {
|
foreach($changed as $ch) {
|
||||||
if (strlen($changes)) {
|
if(strlen($changes)) {
|
||||||
if ($z == ($t - 1))
|
if ($z == ($t - 1))
|
||||||
$changes .= t(' and ');
|
$changes .= t(' and ');
|
||||||
else
|
else
|
||||||
|
|
@ -574,7 +572,7 @@ function profile_activity($changed, $value) {
|
||||||
|
|
||||||
$prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]';
|
$prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]';
|
||||||
|
|
||||||
if ($t == 1 && strlen($value)) {
|
if($t == 1 && strlen($value)) {
|
||||||
$message = sprintf( t('%1$s changed %2$s to “%3$s”'), $A, $changes, $value);
|
$message = sprintf( t('%1$s changed %2$s to “%3$s”'), $A, $changes, $value);
|
||||||
$message .= "\n\n" . sprintf( t(' - Visit %1$s\'s %2$s'), $A, $prof);
|
$message .= "\n\n" . sprintf( t(' - Visit %1$s\'s %2$s'), $A, $prof);
|
||||||
}
|
}
|
||||||
|
|
@ -612,7 +610,7 @@ function profiles_content(App $a) {
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
if (($a->argc > 1) && (intval($a->argv[1]))) {
|
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($a->argv[1]),
|
intval($a->argv[1]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -654,7 +652,7 @@ function profiles_content(App $a) {
|
||||||
$detailled_profile = (get_pconfig(local_user(),'system','detailled_profile') AND $personal_account);
|
$detailled_profile = (get_pconfig(local_user(),'system','detailled_profile') AND $personal_account);
|
||||||
|
|
||||||
$f = get_config('system','birthday_input_format');
|
$f = get_config('system','birthday_input_format');
|
||||||
if (! $f)
|
if(! $f)
|
||||||
$f = 'ymd';
|
$f = 'ymd';
|
||||||
|
|
||||||
$is_default = (($r[0]['is-default']) ? 1 : 0);
|
$is_default = (($r[0]['is-default']) ? 1 : 0);
|
||||||
|
|
@ -756,7 +754,7 @@ function profiles_content(App $a) {
|
||||||
else {
|
else {
|
||||||
|
|
||||||
//If we don't support multi profiles, don't display this list.
|
//If we don't support multi profiles, don't display this list.
|
||||||
if (!feature_enabled(local_user(),'multi_profiles')){
|
if(!feature_enabled(local_user(),'multi_profiles')){
|
||||||
$r = q(
|
$r = q(
|
||||||
"SELECT * FROM `profile` WHERE `uid` = %d AND `is-default`=1",
|
"SELECT * FROM `profile` WHERE `uid` = %d AND `is-default`=1",
|
||||||
local_user()
|
local_user()
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ function profperm_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($a->argc < 2) {
|
if($a->argc < 2) {
|
||||||
notice( t('Invalid profile identifier.') . EOL );
|
notice( t('Invalid profile identifier.') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -30,13 +30,13 @@ function profperm_content(App $a) {
|
||||||
// Switch to text mod interface if we have more than 'n' contacts or group members
|
// Switch to text mod interface if we have more than 'n' contacts or group members
|
||||||
|
|
||||||
$switchtotext = get_pconfig(local_user(),'system','groupedit_image_limit');
|
$switchtotext = get_pconfig(local_user(),'system','groupedit_image_limit');
|
||||||
if ($switchtotext === false)
|
if($switchtotext === false)
|
||||||
$switchtotext = get_config('system','groupedit_image_limit');
|
$switchtotext = get_config('system','groupedit_image_limit');
|
||||||
if ($switchtotext === false)
|
if($switchtotext === false)
|
||||||
$switchtotext = 400;
|
$switchtotext = 400;
|
||||||
|
|
||||||
|
|
||||||
if (($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) {
|
if(($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) {
|
||||||
$r = q("SELECT `id` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `self` = 0
|
$r = q("SELECT `id` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `self` = 0
|
||||||
AND `network` = '%s' AND `id` = %d AND `uid` = %d LIMIT 1",
|
AND `network` = '%s' AND `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
|
|
@ -48,7 +48,7 @@ function profperm_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (($a->argc > 1) && (intval($a->argv[1]))) {
|
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is-default` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `profile` WHERE `id` = %d AND `uid` = %d AND `is-default` = 0 LIMIT 1",
|
||||||
intval($a->argv[1]),
|
intval($a->argv[1]),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -66,13 +66,13 @@ function profperm_content(App $a) {
|
||||||
|
|
||||||
$ingroup = array();
|
$ingroup = array();
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $member)
|
foreach($r as $member)
|
||||||
$ingroup[] = $member['id'];
|
$ingroup[] = $member['id'];
|
||||||
|
|
||||||
$members = $r;
|
$members = $r;
|
||||||
|
|
||||||
if ($change) {
|
if($change) {
|
||||||
if (in_array($change,$ingroup)) {
|
if(in_array($change,$ingroup)) {
|
||||||
q("UPDATE `contact` SET `profile-id` = 0 WHERE `id` = %d AND `uid` = %d",
|
q("UPDATE `contact` SET `profile-id` = 0 WHERE `id` = %d AND `uid` = %d",
|
||||||
intval($change),
|
intval($change),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -96,7 +96,7 @@ function profperm_content(App $a) {
|
||||||
|
|
||||||
$ingroup = array();
|
$ingroup = array();
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
foreach ($r as $member)
|
foreach($r as $member)
|
||||||
$ingroup[] = $member['id'];
|
$ingroup[] = $member['id'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,7 +109,7 @@ function profperm_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$o .= '<div id="prof-update-wrapper">';
|
$o .= '<div id="prof-update-wrapper">';
|
||||||
if ($change)
|
if($change)
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
$o .= '<div id="prof-members-title">';
|
$o .= '<div id="prof-members-title">';
|
||||||
|
|
@ -119,8 +119,8 @@ function profperm_content(App $a) {
|
||||||
|
|
||||||
$textmode = (($switchtotext && (count($members) > $switchtotext)) ? true : false);
|
$textmode = (($switchtotext && (count($members) > $switchtotext)) ? true : false);
|
||||||
|
|
||||||
foreach ($members as $member) {
|
foreach($members as $member) {
|
||||||
if ($member['url']) {
|
if($member['url']) {
|
||||||
$member['click'] = 'profChangeMember(' . $profile['id'] . ',' . $member['id'] . '); return true;';
|
$member['click'] = 'profChangeMember(' . $profile['id'] . ',' . $member['id'] . '); return true;';
|
||||||
$o .= micropro($member,true,'mpprof', $textmode);
|
$o .= micropro($member,true,'mpprof', $textmode);
|
||||||
}
|
}
|
||||||
|
|
@ -141,8 +141,8 @@ function profperm_content(App $a) {
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
$textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false);
|
$textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false);
|
||||||
foreach ($r as $member) {
|
foreach($r as $member) {
|
||||||
if (! in_array($member['id'],$ingroup)) {
|
if(! in_array($member['id'],$ingroup)) {
|
||||||
$member['click'] = 'profChangeMember(' . $profile['id'] . ',' . $member['id'] . '); return true;';
|
$member['click'] = 'profChangeMember(' . $profile['id'] . ',' . $member['id'] . '); return true;';
|
||||||
$o .= micropro($member,true,'mpprof',$textmode);
|
$o .= micropro($member,true,'mpprof',$textmode);
|
||||||
}
|
}
|
||||||
|
|
@ -151,7 +151,7 @@ function profperm_content(App $a) {
|
||||||
|
|
||||||
$o .= '</div><div id="prof-all-contacts-end"></div>';
|
$o .= '</div><div id="prof-all-contacts-end"></div>';
|
||||||
|
|
||||||
if ($change) {
|
if($change) {
|
||||||
echo $o;
|
echo $o;
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
function hub_return($valid,$body) {
|
function hub_return($valid,$body) {
|
||||||
|
|
||||||
if ($valid) {
|
if($valid) {
|
||||||
header($_SERVER["SERVER_PROTOCOL"] . ' 200 ' . 'OK');
|
header($_SERVER["SERVER_PROTOCOL"] . ' 200 ' . 'OK');
|
||||||
echo $body;
|
echo $body;
|
||||||
killme();
|
killme();
|
||||||
|
|
@ -31,7 +31,7 @@ function pubsub_init(App $a) {
|
||||||
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
||||||
$contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0 );
|
$contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0 );
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
if($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||||
|
|
||||||
$hub_mode = ((x($_GET,'hub_mode')) ? notags(trim($_GET['hub_mode'])) : '');
|
$hub_mode = ((x($_GET,'hub_mode')) ? notags(trim($_GET['hub_mode'])) : '');
|
||||||
$hub_topic = ((x($_GET,'hub_topic')) ? notags(trim($_GET['hub_topic'])) : '');
|
$hub_topic = ((x($_GET,'hub_topic')) ? notags(trim($_GET['hub_topic'])) : '');
|
||||||
|
|
@ -68,7 +68,7 @@ function pubsub_init(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($hub_topic)
|
if ($hub_topic)
|
||||||
if (! link_compare($hub_topic,$r[0]['poll'])) {
|
if(! link_compare($hub_topic,$r[0]['poll'])) {
|
||||||
logger('pubsub: hub topic ' . $hub_topic . ' != ' . $r[0]['poll']);
|
logger('pubsub: hub topic ' . $hub_topic . ' != ' . $r[0]['poll']);
|
||||||
// should abort but let's humour them.
|
// should abort but let's humour them.
|
||||||
}
|
}
|
||||||
|
|
@ -78,8 +78,8 @@ function pubsub_init(App $a) {
|
||||||
// We must initiate an unsubscribe request with a verify_token.
|
// We must initiate an unsubscribe request with a verify_token.
|
||||||
// Don't allow outsiders to unsubscribe us.
|
// Don't allow outsiders to unsubscribe us.
|
||||||
|
|
||||||
if ($hub_mode === 'unsubscribe') {
|
if($hub_mode === 'unsubscribe') {
|
||||||
if (! strlen($hub_verify)) {
|
if(! strlen($hub_verify)) {
|
||||||
logger('pubsub: bogus unsubscribe');
|
logger('pubsub: bogus unsubscribe');
|
||||||
hub_return(false, '');
|
hub_return(false, '');
|
||||||
}
|
}
|
||||||
|
|
@ -106,7 +106,7 @@ function pubsub_post(App $a) {
|
||||||
logger('pubsub: user-agent: ' . $_SERVER['HTTP_USER_AGENT'] );
|
logger('pubsub: user-agent: ' . $_SERVER['HTTP_USER_AGENT'] );
|
||||||
logger('pubsub: data: ' . $xml, LOGGER_DATA);
|
logger('pubsub: data: ' . $xml, LOGGER_DATA);
|
||||||
|
|
||||||
// if (! stristr($xml,'<?xml')) {
|
// if(! stristr($xml,'<?xml')) {
|
||||||
// logger('pubsub_post: bad xml');
|
// logger('pubsub_post: bad xml');
|
||||||
// hub_post_return();
|
// hub_post_return();
|
||||||
// }
|
// }
|
||||||
|
|
@ -142,9 +142,8 @@ function pubsub_post(App $a) {
|
||||||
// we have no way to match Diaspora guid's with atom post id's and could get duplicates.
|
// we have no way to match Diaspora guid's with atom post id's and could get duplicates.
|
||||||
// we'll assume that direct delivery is robust (and this is a bad assumption, but the duplicates are messy).
|
// we'll assume that direct delivery is robust (and this is a bad assumption, but the duplicates are messy).
|
||||||
|
|
||||||
if ($r[0]['network'] === NETWORK_DIASPORA) {
|
if($r[0]['network'] === NETWORK_DIASPORA)
|
||||||
hub_post_return();
|
hub_post_return();
|
||||||
}
|
|
||||||
|
|
||||||
$feedhub = '';
|
$feedhub = '';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ function pubsubhubbub_init(App $a) {
|
||||||
// [hub_secret] => af11...
|
// [hub_secret] => af11...
|
||||||
// [hub_topic] => http://friendica.local/dfrn_poll/sazius
|
// [hub_topic] => http://friendica.local/dfrn_poll/sazius
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
if($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
$hub_mode = post_var('hub_mode');
|
$hub_mode = post_var('hub_mode');
|
||||||
$hub_callback = post_var('hub_callback');
|
$hub_callback = post_var('hub_callback');
|
||||||
$hub_verify = post_var('hub_verify');
|
$hub_verify = post_var('hub_verify');
|
||||||
|
|
@ -32,7 +32,7 @@ function pubsubhubbub_init(App $a) {
|
||||||
// check for valid hub_mode
|
// check for valid hub_mode
|
||||||
if ($hub_mode === 'subscribe') {
|
if ($hub_mode === 'subscribe') {
|
||||||
$subscribe = 1;
|
$subscribe = 1;
|
||||||
} elseif ($hub_mode === 'unsubscribe') {
|
} else if ($hub_mode === 'unsubscribe') {
|
||||||
$subscribe = 0;
|
$subscribe = 0;
|
||||||
} else {
|
} else {
|
||||||
logger("pubsubhubbub: invalid hub_mode=$hub_mode, ignoring.");
|
logger("pubsubhubbub: invalid hub_mode=$hub_mode, ignoring.");
|
||||||
|
|
@ -81,7 +81,7 @@ function pubsubhubbub_init(App $a) {
|
||||||
$contact = $r[0];
|
$contact = $r[0];
|
||||||
|
|
||||||
// sanity check that topic URLs are the same
|
// sanity check that topic URLs are the same
|
||||||
if (!link_compare($hub_topic, $contact['poll'])) {
|
if(!link_compare($hub_topic, $contact['poll'])) {
|
||||||
logger('pubsubhubbub: hub topic ' . $hub_topic . ' != ' .
|
logger('pubsubhubbub: hub topic ' . $hub_topic . ' != ' .
|
||||||
$contact['poll']);
|
$contact['poll']);
|
||||||
http_status_exit(404);
|
http_status_exit(404);
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,12 @@ function qsearch_init(App $a) {
|
||||||
|
|
||||||
$search = ((x($_GET,'s')) ? notags(trim(urldecode($_GET['s']))) : '');
|
$search = ((x($_GET,'s')) ? notags(trim(urldecode($_GET['s']))) : '');
|
||||||
|
|
||||||
if (! strlen($search)) {
|
if(! strlen($search))
|
||||||
killme();
|
killme();
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if ($search) {
|
if($search)
|
||||||
$search = dbesc($search);
|
$search = dbesc($search);
|
||||||
}
|
|
||||||
|
|
||||||
$results = array();
|
$results = array();
|
||||||
|
|
||||||
|
|
@ -27,9 +25,9 @@ function qsearch_init(App $a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
|
||||||
|
foreach($r as $rr)
|
||||||
$results[] = array( 0, (int) $rr['id'], $rr['name'], '', '');
|
$results[] = array( 0, (int) $rr['id'], $rr['name'], '', '');
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql_extra = ((strlen($search)) ? " AND (`name` REGEXP '$search' OR `nick` REGEXP '$search') " : "");
|
$sql_extra = ((strlen($search)) ? " AND (`name` REGEXP '$search' OR `nick` REGEXP '$search') " : "");
|
||||||
|
|
@ -42,9 +40,9 @@ function qsearch_init(App $a) {
|
||||||
|
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
|
||||||
|
foreach($r as $rr)
|
||||||
$results[] = array( (int) $rr['id'], 0, $rr['name'],$rr['url'],$rr['photo']);
|
$results[] = array( (int) $rr['id'], 0, $rr['name'],$rr['url'],$rr['photo']);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode((object) $results);
|
echo json_encode((object) $results);
|
||||||
|
|
|
||||||
|
|
@ -14,19 +14,19 @@ function receive_post(App $a) {
|
||||||
|
|
||||||
|
|
||||||
$enabled = intval(get_config('system','diaspora_enabled'));
|
$enabled = intval(get_config('system','diaspora_enabled'));
|
||||||
if (! $enabled) {
|
if(! $enabled) {
|
||||||
logger('mod-diaspora: disabled');
|
logger('mod-diaspora: disabled');
|
||||||
http_status_exit(500);
|
http_status_exit(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
$public = false;
|
$public = false;
|
||||||
|
|
||||||
if (($a->argc == 2) && ($a->argv[1] === 'public')) {
|
if(($a->argc == 2) && ($a->argv[1] === 'public')) {
|
||||||
$public = true;
|
$public = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
if ($a->argc != 3 || $a->argv[1] !== 'users')
|
if($a->argc != 3 || $a->argv[1] !== 'users')
|
||||||
http_status_exit(500);
|
http_status_exit(500);
|
||||||
|
|
||||||
$guid = $a->argv[2];
|
$guid = $a->argv[2];
|
||||||
|
|
@ -49,7 +49,7 @@ function receive_post(App $a) {
|
||||||
|
|
||||||
logger('mod-diaspora: new salmon ' . $xml, LOGGER_DATA);
|
logger('mod-diaspora: new salmon ' . $xml, LOGGER_DATA);
|
||||||
|
|
||||||
if (! $xml)
|
if(! $xml)
|
||||||
http_status_exit(500);
|
http_status_exit(500);
|
||||||
|
|
||||||
logger('mod-diaspora: message is okay', LOGGER_DEBUG);
|
logger('mod-diaspora: message is okay', LOGGER_DEBUG);
|
||||||
|
|
@ -60,13 +60,13 @@ function receive_post(App $a) {
|
||||||
|
|
||||||
logger('mod-diaspora: decoded msg: ' . print_r($msg,true), LOGGER_DATA);
|
logger('mod-diaspora: decoded msg: ' . print_r($msg,true), LOGGER_DATA);
|
||||||
|
|
||||||
if (! is_array($msg))
|
if(! is_array($msg))
|
||||||
http_status_exit(500);
|
http_status_exit(500);
|
||||||
|
|
||||||
logger('mod-diaspora: dispatching', LOGGER_DEBUG);
|
logger('mod-diaspora: dispatching', LOGGER_DEBUG);
|
||||||
|
|
||||||
$ret = 0;
|
$ret = 0;
|
||||||
if ($public) {
|
if($public) {
|
||||||
Diaspora::dispatch_public($msg);
|
Diaspora::dispatch_public($msg);
|
||||||
} else {
|
} else {
|
||||||
$ret = Diaspora::dispatch($importer,$msg);
|
$ret = Diaspora::dispatch($importer,$msg);
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@ function redir_init(App $a) {
|
||||||
|
|
||||||
// traditional DFRN
|
// traditional DFRN
|
||||||
|
|
||||||
if ( $con_url || (local_user() && $a->argc > 1 && intval($a->argv[1])) ) {
|
if( $con_url || (local_user() && $a->argc > 1 && intval($a->argv[1])) ) {
|
||||||
|
|
||||||
if ($con_url) {
|
if($con_url) {
|
||||||
$con_url = str_replace('https', 'http', $con_url);
|
$con_url = str_replace('https', 'http', $con_url);
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
|
|
@ -18,7 +18,7 @@ function redir_init(App $a) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if ((! dbm::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN))
|
if((! dbm::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN))
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
|
|
||||||
$cid = $r[0]['id'];
|
$cid = $r[0]['id'];
|
||||||
|
|
@ -31,17 +31,17 @@ function redir_init(App $a) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
|
|
||||||
if ((! dbm::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN))
|
if((! dbm::is_result($r)) || ($r[0]['network'] !== NETWORK_DFRN))
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
}
|
}
|
||||||
|
|
||||||
$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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ require_once('include/enotify.php');
|
||||||
require_once('include/bbcode.php');
|
require_once('include/bbcode.php');
|
||||||
require_once('include/user.php');
|
require_once('include/user.php');
|
||||||
|
|
||||||
if (! function_exists('register_post')) {
|
if(! function_exists('register_post')) {
|
||||||
function register_post(App $a) {
|
function register_post(App $a) {
|
||||||
|
|
||||||
global $lang;
|
global $lang;
|
||||||
|
|
@ -16,9 +16,9 @@ function register_post(App $a) {
|
||||||
call_hooks('register_post', $arr);
|
call_hooks('register_post', $arr);
|
||||||
|
|
||||||
$max_dailies = intval(get_config('system','max_daily_registrations'));
|
$max_dailies = intval(get_config('system','max_daily_registrations'));
|
||||||
if ($max_dailies) {
|
if($max_dailies) {
|
||||||
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
|
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
|
||||||
if ($r && $r[0]['total'] >= $max_dailies) {
|
if($r && $r[0]['total'] >= $max_dailies) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -38,7 +38,7 @@ function register_post(App $a) {
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case REGISTER_CLOSED:
|
case REGISTER_CLOSED:
|
||||||
if ((! x($_SESSION,'authenticated') && (! x($_SESSION,'administrator')))) {
|
if((! x($_SESSION,'authenticated') && (! x($_SESSION,'administrator')))) {
|
||||||
notice( t('Permission denied.') . EOL );
|
notice( t('Permission denied.') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -56,14 +56,14 @@ function register_post(App $a) {
|
||||||
|
|
||||||
$result = create_user($arr);
|
$result = create_user($arr);
|
||||||
|
|
||||||
if (! $result['success']) {
|
if(! $result['success']) {
|
||||||
notice($result['message']);
|
notice($result['message']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$user = $result['user'];
|
$user = $result['user'];
|
||||||
|
|
||||||
if ($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) {
|
if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) {
|
||||||
$url = App::get_baseurl() . '/profile/' . $user['nickname'];
|
$url = App::get_baseurl() . '/profile/' . $user['nickname'];
|
||||||
proc_run(PRIORITY_LOW, "include/directory.php", $url);
|
proc_run(PRIORITY_LOW, "include/directory.php", $url);
|
||||||
}
|
}
|
||||||
|
|
@ -73,9 +73,9 @@ function register_post(App $a) {
|
||||||
$invite_id = ((x($_POST,'invite_id')) ? notags(trim($_POST['invite_id'])) : '');
|
$invite_id = ((x($_POST,'invite_id')) ? notags(trim($_POST['invite_id'])) : '');
|
||||||
|
|
||||||
|
|
||||||
if ( $a->config['register_policy'] == REGISTER_OPEN ) {
|
if( $a->config['register_policy'] == REGISTER_OPEN ) {
|
||||||
|
|
||||||
if ($using_invites && $invite_id) {
|
if($using_invites && $invite_id) {
|
||||||
q("delete * from register where hash = '%s' limit 1", dbesc($invite_id));
|
q("delete * from register where hash = '%s' limit 1", dbesc($invite_id));
|
||||||
set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
|
set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
|
||||||
}
|
}
|
||||||
|
|
@ -89,7 +89,7 @@ function register_post(App $a) {
|
||||||
$user['username'],
|
$user['username'],
|
||||||
$result['password']);
|
$result['password']);
|
||||||
|
|
||||||
if ($res) {
|
if($res) {
|
||||||
info( t('Registration successful. Please check your email for further instructions.') . EOL ) ;
|
info( t('Registration successful. Please check your email for further instructions.') . EOL ) ;
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -106,8 +106,8 @@ function register_post(App $a) {
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($a->config['register_policy'] == REGISTER_APPROVE) {
|
elseif($a->config['register_policy'] == REGISTER_APPROVE) {
|
||||||
if (! strlen($a->config['admin_email'])) {
|
if(! strlen($a->config['admin_email'])) {
|
||||||
notice( t('Your registration can not be processed.') . EOL);
|
notice( t('Your registration can not be processed.') . EOL);
|
||||||
goaway(z_root());
|
goaway(z_root());
|
||||||
}
|
}
|
||||||
|
|
@ -123,7 +123,7 @@ function register_post(App $a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
// invite system
|
// invite system
|
||||||
if ($using_invites && $invite_id) {
|
if($using_invites && $invite_id) {
|
||||||
q("delete * from register where hash = '%s' limit 1", dbesc($invite_id));
|
q("delete * from register where hash = '%s' limit 1", dbesc($invite_id));
|
||||||
set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
|
set_pconfig($user['uid'],'system','invites_remaining',$num_invites);
|
||||||
}
|
}
|
||||||
|
|
@ -171,7 +171,7 @@ function register_post(App $a) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (! function_exists('register_content')) {
|
if(! function_exists('register_content')) {
|
||||||
function register_content(App $a) {
|
function register_content(App $a) {
|
||||||
|
|
||||||
// logged in users can register others (people/pages/groups)
|
// logged in users can register others (people/pages/groups)
|
||||||
|
|
@ -180,29 +180,29 @@ function register_content(App $a) {
|
||||||
|
|
||||||
$block = get_config('system','block_extended_register');
|
$block = get_config('system','block_extended_register');
|
||||||
|
|
||||||
if (local_user() && ($block)) {
|
if(local_user() && ($block)) {
|
||||||
notice("Permission denied." . EOL);
|
notice("Permission denied." . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((! local_user()) && ($a->config['register_policy'] == REGISTER_CLOSED)) {
|
if((! local_user()) && ($a->config['register_policy'] == REGISTER_CLOSED)) {
|
||||||
notice("Permission denied." . EOL);
|
notice("Permission denied." . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$max_dailies = intval(get_config('system','max_daily_registrations'));
|
$max_dailies = intval(get_config('system','max_daily_registrations'));
|
||||||
if ($max_dailies) {
|
if($max_dailies) {
|
||||||
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
|
$r = q("select count(*) as total from user where register_date > UTC_TIMESTAMP - INTERVAL 1 day");
|
||||||
if ($r && $r[0]['total'] >= $max_dailies) {
|
if($r && $r[0]['total'] >= $max_dailies) {
|
||||||
logger('max daily registrations exceeded.');
|
logger('max daily registrations exceeded.');
|
||||||
notice( t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL);
|
notice( t('This site has exceeded the number of allowed daily account registrations. Please try again tomorrow.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_SESSION,'theme'))
|
if(x($_SESSION,'theme'))
|
||||||
unset($_SESSION['theme']);
|
unset($_SESSION['theme']);
|
||||||
if (x($_SESSION,'mobile-theme'))
|
if(x($_SESSION,'mobile-theme'))
|
||||||
unset($_SESSION['mobile-theme']);
|
unset($_SESSION['mobile-theme']);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -215,7 +215,7 @@ function register_content(App $a) {
|
||||||
|
|
||||||
$noid = get_config('system','no_openid');
|
$noid = get_config('system','no_openid');
|
||||||
|
|
||||||
if ($noid) {
|
if($noid) {
|
||||||
$oidhtml = '';
|
$oidhtml = '';
|
||||||
$fillwith = '';
|
$fillwith = '';
|
||||||
$fillext = '';
|
$fillext = '';
|
||||||
|
|
@ -232,7 +232,7 @@ function register_content(App $a) {
|
||||||
|
|
||||||
$realpeople = ''; // t('Members of this network prefer to communicate with real people who use their real names.');
|
$realpeople = ''; // t('Members of this network prefer to communicate with real people who use their real names.');
|
||||||
|
|
||||||
if (get_config('system','publish_all')) {
|
if(get_config('system','publish_all')) {
|
||||||
$profile_publish_reg = '<input type="hidden" name="profile_publish_reg" value="1" />';
|
$profile_publish_reg = '<input type="hidden" name="profile_publish_reg" value="1" />';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ function user_allow($hash) {
|
||||||
|
|
||||||
pop_lang();
|
pop_lang();
|
||||||
|
|
||||||
if ($res) {
|
if($res) {
|
||||||
info( t('Account approved.') . EOL );
|
info( t('Account approved.') . EOL );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -72,9 +72,8 @@ function user_deny($hash) {
|
||||||
dbesc($hash)
|
dbesc($hash)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! dbm::is_result($register)) {
|
if(! dbm::is_result($register))
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
$user = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
|
$user = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
|
||||||
intval($register[0]['uid'])
|
intval($register[0]['uid'])
|
||||||
|
|
|
||||||
0
mod/repair_ostatus.php
Normal file → Executable file
0
mod/repair_ostatus.php
Normal file → Executable file
|
|
@ -8,9 +8,9 @@ require_once('include/follow.php');
|
||||||
|
|
||||||
function salmon_return($val) {
|
function salmon_return($val) {
|
||||||
|
|
||||||
if ($val >= 400)
|
if($val >= 400)
|
||||||
$err = 'Error';
|
$err = 'Error';
|
||||||
if ($val >= 200 && $val < 300)
|
if($val >= 200 && $val < 300)
|
||||||
$err = 'OK';
|
$err = 'OK';
|
||||||
|
|
||||||
logger('mod-salmon returns ' . $val);
|
logger('mod-salmon returns ' . $val);
|
||||||
|
|
@ -43,14 +43,14 @@ function salmon_post(App $a) {
|
||||||
|
|
||||||
// figure out where in the DOM tree our data is hiding
|
// figure out where in the DOM tree our data is hiding
|
||||||
|
|
||||||
if ($dom->provenance->data)
|
if($dom->provenance->data)
|
||||||
$base = $dom->provenance;
|
$base = $dom->provenance;
|
||||||
elseif ($dom->env->data)
|
elseif($dom->env->data)
|
||||||
$base = $dom->env;
|
$base = $dom->env;
|
||||||
elseif ($dom->data)
|
elseif($dom->data)
|
||||||
$base = $dom;
|
$base = $dom;
|
||||||
|
|
||||||
if (! $base) {
|
if(! $base) {
|
||||||
logger('mod-salmon: unable to locate salmon data in xml ');
|
logger('mod-salmon: unable to locate salmon data in xml ');
|
||||||
http_status_exit(400);
|
http_status_exit(400);
|
||||||
}
|
}
|
||||||
|
|
@ -88,7 +88,7 @@ function salmon_post(App $a) {
|
||||||
$author = ostatus::salmon_author($data,$importer);
|
$author = ostatus::salmon_author($data,$importer);
|
||||||
$author_link = $author["author-link"];
|
$author_link = $author["author-link"];
|
||||||
|
|
||||||
if (! $author_link) {
|
if(! $author_link) {
|
||||||
logger('mod-salmon: Could not retrieve author URI.');
|
logger('mod-salmon: Could not retrieve author URI.');
|
||||||
http_status_exit(400);
|
http_status_exit(400);
|
||||||
}
|
}
|
||||||
|
|
@ -99,7 +99,7 @@ function salmon_post(App $a) {
|
||||||
|
|
||||||
$key = get_salmon_key($author_link,$keyhash);
|
$key = get_salmon_key($author_link,$keyhash);
|
||||||
|
|
||||||
if (! $key) {
|
if(! $key) {
|
||||||
logger('mod-salmon: Could not retrieve author key.');
|
logger('mod-salmon: Could not retrieve author key.');
|
||||||
http_status_exit(400);
|
http_status_exit(400);
|
||||||
}
|
}
|
||||||
|
|
@ -117,17 +117,17 @@ function salmon_post(App $a) {
|
||||||
|
|
||||||
$verify = rsa_verify($compliant_format,$signature,$pubkey);
|
$verify = rsa_verify($compliant_format,$signature,$pubkey);
|
||||||
|
|
||||||
if (! $verify) {
|
if(! $verify) {
|
||||||
logger('mod-salmon: message did not verify using protocol. Trying padding hack.');
|
logger('mod-salmon: message did not verify using protocol. Trying padding hack.');
|
||||||
$verify = rsa_verify($signed_data,$signature,$pubkey);
|
$verify = rsa_verify($signed_data,$signature,$pubkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $verify) {
|
if(! $verify) {
|
||||||
logger('mod-salmon: message did not verify using padding. Trying old statusnet hack.');
|
logger('mod-salmon: message did not verify using padding. Trying old statusnet hack.');
|
||||||
$verify = rsa_verify($stnet_signed_data,$signature,$pubkey);
|
$verify = rsa_verify($stnet_signed_data,$signature,$pubkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $verify) {
|
if(! $verify) {
|
||||||
logger('mod-salmon: Message did not verify. Discarding.');
|
logger('mod-salmon: Message did not verify. Discarding.');
|
||||||
http_status_exit(400);
|
http_status_exit(400);
|
||||||
}
|
}
|
||||||
|
|
@ -153,9 +153,9 @@ function salmon_post(App $a) {
|
||||||
);
|
);
|
||||||
if (! dbm::is_result($r)) {
|
if (! dbm::is_result($r)) {
|
||||||
logger('mod-salmon: Author unknown to us.');
|
logger('mod-salmon: Author unknown to us.');
|
||||||
if (get_pconfig($importer['uid'],'system','ostatus_autofriend')) {
|
if(get_pconfig($importer['uid'],'system','ostatus_autofriend')) {
|
||||||
$result = new_contact($importer['uid'],$author_link);
|
$result = new_contact($importer['uid'],$author_link);
|
||||||
if ($result['success']) {
|
if($result['success']) {
|
||||||
$r = q("SELECT * FROM `contact` WHERE `network` = '%s' AND ( `url` = '%s' OR `alias` = '%s')
|
$r = q("SELECT * FROM `contact` WHERE `network` = '%s' AND ( `url` = '%s' OR `alias` = '%s')
|
||||||
AND `uid` = %d LIMIT 1",
|
AND `uid` = %d LIMIT 1",
|
||||||
dbesc(NETWORK_OSTATUS),
|
dbesc(NETWORK_OSTATUS),
|
||||||
|
|
@ -170,7 +170,7 @@ function salmon_post(App $a) {
|
||||||
// Have we ignored the person?
|
// Have we ignored the person?
|
||||||
// If so we can not accept this post.
|
// If so we can not accept this post.
|
||||||
|
|
||||||
//if ((dbm::is_result($r)) && (($r[0]['readonly']) || ($r[0]['rel'] == CONTACT_IS_FOLLOWER) || ($r[0]['blocked']))) {
|
//if((dbm::is_result($r)) && (($r[0]['readonly']) || ($r[0]['rel'] == CONTACT_IS_FOLLOWER) || ($r[0]['blocked']))) {
|
||||||
if (dbm::is_result($r) && $r[0]['blocked']) {
|
if (dbm::is_result($r) && $r[0]['blocked']) {
|
||||||
logger('mod-salmon: Ignoring this author.');
|
logger('mod-salmon: Ignoring this author.');
|
||||||
http_status_exit(202);
|
http_status_exit(202);
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ function search_saved_searches() {
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
if (! feature_enabled(local_user(),'savedsearch'))
|
if(! feature_enabled(local_user(),'savedsearch'))
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
$r = q("SELECT `id`,`term` FROM `search` WHERE `uid` = %d",
|
$r = q("SELECT `id`,`term` FROM `search` WHERE `uid` = %d",
|
||||||
|
|
@ -47,8 +47,8 @@ function search_init(App $a) {
|
||||||
|
|
||||||
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||||
|
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
if (x($_GET,'save') && $search) {
|
if(x($_GET,'save') && $search) {
|
||||||
$r = q("SELECT * FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1",
|
$r = q("SELECT * FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc($search)
|
dbesc($search)
|
||||||
|
|
@ -60,7 +60,7 @@ function search_init(App $a) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (x($_GET,'remove') && $search) {
|
if(x($_GET,'remove') && $search) {
|
||||||
q("DELETE FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1",
|
q("DELETE FROM `search` WHERE `uid` = %d AND `term` = '%s' LIMIT 1",
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc($search)
|
dbesc($search)
|
||||||
|
|
@ -82,19 +82,19 @@ function search_init(App $a) {
|
||||||
|
|
||||||
|
|
||||||
function search_post(App $a) {
|
function search_post(App $a) {
|
||||||
if (x($_POST,'search'))
|
if(x($_POST,'search'))
|
||||||
$a->data['search'] = $_POST['search'];
|
$a->data['search'] = $_POST['search'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function search_content(App $a) {
|
function search_content(App $a) {
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
notice( t('Public access denied.') . EOL);
|
notice( t('Public access denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_config('system','local_search') AND !local_user()) {
|
if(get_config('system','local_search') AND !local_user()) {
|
||||||
http_status_exit(403,
|
http_status_exit(403,
|
||||||
array("title" => t("Public access denied."),
|
array("title" => t("Public access denied."),
|
||||||
"description" => t("Only logged in users are permitted to perform a search.")));
|
"description" => t("Only logged in users are permitted to perform a search.")));
|
||||||
|
|
@ -132,13 +132,13 @@ function search_content(App $a) {
|
||||||
|
|
||||||
nav_set_selected('search');
|
nav_set_selected('search');
|
||||||
|
|
||||||
if (x($a->data,'search'))
|
if(x($a->data,'search'))
|
||||||
$search = notags(trim($a->data['search']));
|
$search = notags(trim($a->data['search']));
|
||||||
else
|
else
|
||||||
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||||
|
|
||||||
$tag = false;
|
$tag = false;
|
||||||
if (x($_GET,'tag')) {
|
if(x($_GET,'tag')) {
|
||||||
$tag = true;
|
$tag = true;
|
||||||
$search = ((x($_GET,'tag')) ? notags(trim(rawurldecode($_GET['tag']))) : '');
|
$search = ((x($_GET,'tag')) ? notags(trim(rawurldecode($_GET['tag']))) : '');
|
||||||
}
|
}
|
||||||
|
|
@ -151,18 +151,18 @@ function search_content(App $a) {
|
||||||
'$content' => search($search,'search-box','search',((local_user()) ? true : false), false)
|
'$content' => search($search,'search-box','search',((local_user()) ? true : false), false)
|
||||||
));
|
));
|
||||||
|
|
||||||
if (strpos($search,'#') === 0) {
|
if(strpos($search,'#') === 0) {
|
||||||
$tag = true;
|
$tag = true;
|
||||||
$search = substr($search,1);
|
$search = substr($search,1);
|
||||||
}
|
}
|
||||||
if (strpos($search,'@') === 0) {
|
if(strpos($search,'@') === 0) {
|
||||||
return dirfind_content($a);
|
return dirfind_content($a);
|
||||||
}
|
}
|
||||||
if (strpos($search,'!') === 0) {
|
if(strpos($search,'!') === 0) {
|
||||||
return dirfind_content($a);
|
return dirfind_content($a);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x($_GET,'search-option'))
|
if(x($_GET,'search-option'))
|
||||||
switch($_GET['search-option']) {
|
switch($_GET['search-option']) {
|
||||||
case 'fulltext':
|
case 'fulltext':
|
||||||
break;
|
break;
|
||||||
|
|
@ -177,7 +177,7 @@ function search_content(App $a) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $search)
|
if(! $search)
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
if (get_config('system','only_tag_search'))
|
if (get_config('system','only_tag_search'))
|
||||||
|
|
@ -188,7 +188,7 @@ function search_content(App $a) {
|
||||||
// OR your own posts if you are a logged in member
|
// OR your own posts if you are a logged in member
|
||||||
// No items will be shown if the member has a blocked profile wall.
|
// No items will be shown if the member has a blocked profile wall.
|
||||||
|
|
||||||
if ($tag) {
|
if($tag) {
|
||||||
logger("Start tag search for '".$search."'", LOGGER_DEBUG);
|
logger("Start tag search for '".$search."'", LOGGER_DEBUG);
|
||||||
|
|
||||||
$r = q("SELECT %s
|
$r = q("SELECT %s
|
||||||
|
|
@ -226,7 +226,7 @@ function search_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($tag)
|
if($tag)
|
||||||
$title = sprintf( t('Items tagged with: %s'), $search);
|
$title = sprintf( t('Items tagged with: %s'), $search);
|
||||||
else
|
else
|
||||||
$title = sprintf( t('Results for: %s'), $search);
|
$title = sprintf( t('Results for: %s'), $search);
|
||||||
|
|
|
||||||
149
mod/settings.php
149
mod/settings.php
|
|
@ -47,7 +47,7 @@ function settings_init(App $a) {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (get_features()) {
|
if(get_features()) {
|
||||||
$tabs[] = array(
|
$tabs[] = array(
|
||||||
'label' => t('Additional features'),
|
'label' => t('Additional features'),
|
||||||
'url' => 'settings/features',
|
'url' => 'settings/features',
|
||||||
|
|
@ -189,23 +189,23 @@ function settings_post(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 1) && ($a->argv[1] == 'addon')) {
|
if(($a->argc > 1) && ($a->argv[1] == 'addon')) {
|
||||||
check_form_security_token_redirectOnErr('/settings/addon', 'settings_addon');
|
check_form_security_token_redirectOnErr('/settings/addon', 'settings_addon');
|
||||||
|
|
||||||
call_hooks('plugin_settings_post', $_POST);
|
call_hooks('plugin_settings_post', $_POST);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 1) && ($a->argv[1] == 'connectors')) {
|
if(($a->argc > 1) && ($a->argv[1] == 'connectors')) {
|
||||||
|
|
||||||
check_form_security_token_redirectOnErr('/settings/connectors', 'settings_connectors');
|
check_form_security_token_redirectOnErr('/settings/connectors', 'settings_connectors');
|
||||||
|
|
||||||
if (x($_POST, 'general-submit')) {
|
if(x($_POST, 'general-submit')) {
|
||||||
set_pconfig(local_user(), 'system', 'no_intelligent_shortening', intval($_POST['no_intelligent_shortening']));
|
set_pconfig(local_user(), 'system', 'no_intelligent_shortening', intval($_POST['no_intelligent_shortening']));
|
||||||
set_pconfig(local_user(), 'system', 'ostatus_autofriend', intval($_POST['snautofollow']));
|
set_pconfig(local_user(), 'system', 'ostatus_autofriend', intval($_POST['snautofollow']));
|
||||||
set_pconfig(local_user(), 'ostatus', 'default_group', $_POST['group-selection']);
|
set_pconfig(local_user(), 'ostatus', 'default_group', $_POST['group-selection']);
|
||||||
set_pconfig(local_user(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']);
|
set_pconfig(local_user(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']);
|
||||||
} elseif (x($_POST, 'imap-submit')) {
|
} elseif(x($_POST, 'imap-submit')) {
|
||||||
|
|
||||||
$mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : '');
|
$mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : '');
|
||||||
$mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : '');
|
$mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : '');
|
||||||
|
|
@ -219,10 +219,10 @@ function settings_post(App $a) {
|
||||||
|
|
||||||
|
|
||||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||||
if (get_config('system','dfrn_only'))
|
if(get_config('system','dfrn_only'))
|
||||||
$mail_disabled = 1;
|
$mail_disabled = 1;
|
||||||
|
|
||||||
if (! $mail_disabled) {
|
if(! $mail_disabled) {
|
||||||
$failed = false;
|
$failed = false;
|
||||||
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
|
|
@ -232,7 +232,7 @@ function settings_post(App $a) {
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (strlen($mail_pass)) {
|
if(strlen($mail_pass)) {
|
||||||
$pass = '';
|
$pass = '';
|
||||||
openssl_public_encrypt($mail_pass,$pass,$a->user['pubkey']);
|
openssl_public_encrypt($mail_pass,$pass,$a->user['pubkey']);
|
||||||
q("UPDATE `mailacct` SET `pass` = '%s' WHERE `uid` = %d",
|
q("UPDATE `mailacct` SET `pass` = '%s' WHERE `uid` = %d",
|
||||||
|
|
@ -261,18 +261,18 @@ function settings_post(App $a) {
|
||||||
$eacct = $r[0];
|
$eacct = $r[0];
|
||||||
require_once('include/email.php');
|
require_once('include/email.php');
|
||||||
$mb = construct_mailbox_name($eacct);
|
$mb = construct_mailbox_name($eacct);
|
||||||
if (strlen($eacct['server'])) {
|
if(strlen($eacct['server'])) {
|
||||||
$dcrpass = '';
|
$dcrpass = '';
|
||||||
openssl_private_decrypt(hex2bin($eacct['pass']),$dcrpass,$a->user['prvkey']);
|
openssl_private_decrypt(hex2bin($eacct['pass']),$dcrpass,$a->user['prvkey']);
|
||||||
$mbox = email_connect($mb,$mail_user,$dcrpass);
|
$mbox = email_connect($mb,$mail_user,$dcrpass);
|
||||||
unset($dcrpass);
|
unset($dcrpass);
|
||||||
if (! $mbox) {
|
if(! $mbox) {
|
||||||
$failed = true;
|
$failed = true;
|
||||||
notice( t('Failed to connect with email account using the settings provided.') . EOL);
|
notice( t('Failed to connect with email account using the settings provided.') . EOL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $failed)
|
if(! $failed)
|
||||||
info( t('Email settings updated.') . EOL);
|
info( t('Email settings updated.') . EOL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -283,8 +283,8 @@ function settings_post(App $a) {
|
||||||
|
|
||||||
if (($a->argc > 1) && ($a->argv[1] === 'features')) {
|
if (($a->argc > 1) && ($a->argv[1] === 'features')) {
|
||||||
check_form_security_token_redirectOnErr('/settings/features', 'settings_features');
|
check_form_security_token_redirectOnErr('/settings/features', 'settings_features');
|
||||||
foreach ($_POST as $k => $v) {
|
foreach($_POST as $k => $v) {
|
||||||
if (strpos($k,'feature_') === 0) {
|
if(strpos($k,'feature_') === 0) {
|
||||||
set_pconfig(local_user(),'feature',substr($k,8),((intval($v)) ? 1 : 0));
|
set_pconfig(local_user(),'feature',substr($k,8),((intval($v)) ? 1 : 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -320,7 +320,7 @@ function settings_post(App $a) {
|
||||||
$itemspage_mobile_network = 100;
|
$itemspage_mobile_network = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mobile_theme !== '') {
|
if($mobile_theme !== '') {
|
||||||
set_pconfig(local_user(),'system','mobile_theme',$mobile_theme);
|
set_pconfig(local_user(),'system','mobile_theme',$mobile_theme);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -364,45 +364,41 @@ function settings_post(App $a) {
|
||||||
|
|
||||||
call_hooks('settings_post', $_POST);
|
call_hooks('settings_post', $_POST);
|
||||||
|
|
||||||
if ((x($_POST,'password')) || (x($_POST,'confirm'))) {
|
if((x($_POST,'password')) || (x($_POST,'confirm'))) {
|
||||||
|
|
||||||
$newpass = $_POST['password'];
|
$newpass = $_POST['password'];
|
||||||
$confirm = $_POST['confirm'];
|
$confirm = $_POST['confirm'];
|
||||||
$oldpass = hash('whirlpool', $_POST['opassword']);
|
$oldpass = hash('whirlpool', $_POST['opassword']);
|
||||||
|
|
||||||
$err = false;
|
$err = false;
|
||||||
if ($newpass != $confirm ) {
|
if($newpass != $confirm ) {
|
||||||
notice( t('Passwords do not match. Password unchanged.') . EOL);
|
notice( t('Passwords do not match. Password unchanged.') . EOL);
|
||||||
$err = true;
|
$err = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((! x($newpass)) || (! x($confirm))) {
|
if((! x($newpass)) || (! x($confirm))) {
|
||||||
notice( t('Empty passwords are not allowed. Password unchanged.') . EOL);
|
notice( t('Empty passwords are not allowed. Password unchanged.') . EOL);
|
||||||
$err = true;
|
$err = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if the old password was supplied correctly before
|
// check if the old password was supplied correctly before
|
||||||
// changing it to the new value
|
// changing it to the new value
|
||||||
$r = q("SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1", intval(local_user()));
|
$r = q("SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1", intval(local_user()));
|
||||||
if (!dbm::is_result($r)) {
|
if( $oldpass != $r[0]['password'] ) {
|
||||||
/// @todo Don't quit silently here
|
notice( t('Wrong password.') . EOL);
|
||||||
killme();
|
$err = true;
|
||||||
} elseif ( $oldpass != $r[0]['password'] ) {
|
}
|
||||||
notice( t('Wrong password.') . EOL);
|
|
||||||
$err = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $err) {
|
if(! $err) {
|
||||||
$password = hash('whirlpool',$newpass);
|
$password = hash('whirlpool',$newpass);
|
||||||
$r = q("UPDATE `user` SET `password` = '%s' WHERE `uid` = %d",
|
$r = q("UPDATE `user` SET `password` = '%s' WHERE `uid` = %d",
|
||||||
dbesc($password),
|
dbesc($password),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if ($r) {
|
if($r)
|
||||||
info( t('Password changed.') . EOL);
|
info( t('Password changed.') . EOL);
|
||||||
} else {
|
else
|
||||||
notice( t('Password update failed. Please try again.') . EOL);
|
notice( t('Password update failed. Please try again.') . EOL);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -446,41 +442,32 @@ function settings_post(App $a) {
|
||||||
|
|
||||||
$notify = 0;
|
$notify = 0;
|
||||||
|
|
||||||
if (x($_POST,'notify1')) {
|
if(x($_POST,'notify1'))
|
||||||
$notify += intval($_POST['notify1']);
|
$notify += intval($_POST['notify1']);
|
||||||
}
|
if(x($_POST,'notify2'))
|
||||||
if (x($_POST,'notify2')) {
|
|
||||||
$notify += intval($_POST['notify2']);
|
$notify += intval($_POST['notify2']);
|
||||||
}
|
if(x($_POST,'notify3'))
|
||||||
if (x($_POST,'notify3')) {
|
|
||||||
$notify += intval($_POST['notify3']);
|
$notify += intval($_POST['notify3']);
|
||||||
}
|
if(x($_POST,'notify4'))
|
||||||
if (x($_POST,'notify4')) {
|
|
||||||
$notify += intval($_POST['notify4']);
|
$notify += intval($_POST['notify4']);
|
||||||
}
|
if(x($_POST,'notify5'))
|
||||||
if (x($_POST,'notify5')) {
|
|
||||||
$notify += intval($_POST['notify5']);
|
$notify += intval($_POST['notify5']);
|
||||||
}
|
if(x($_POST,'notify6'))
|
||||||
if (x($_POST,'notify6')) {
|
|
||||||
$notify += intval($_POST['notify6']);
|
$notify += intval($_POST['notify6']);
|
||||||
}
|
if(x($_POST,'notify7'))
|
||||||
if (x($_POST,'notify7')) {
|
|
||||||
$notify += intval($_POST['notify7']);
|
$notify += intval($_POST['notify7']);
|
||||||
}
|
if(x($_POST,'notify8'))
|
||||||
if (x($_POST,'notify8')) {
|
|
||||||
$notify += intval($_POST['notify8']);
|
$notify += intval($_POST['notify8']);
|
||||||
}
|
|
||||||
|
|
||||||
// Adjust the page flag if the account type doesn't fit to the page flag.
|
// Adjust the page flag if the account type doesn't fit to the page flag.
|
||||||
if (($account_type == ACCOUNT_TYPE_PERSON) AND !in_array($page_flags, array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE))) {
|
if (($account_type == ACCOUNT_TYPE_PERSON) AND !in_array($page_flags, array(PAGE_NORMAL, PAGE_SOAPBOX, PAGE_FREELOVE)))
|
||||||
$page_flags = PAGE_NORMAL;
|
$page_flags = PAGE_NORMAL;
|
||||||
} elseif (($account_type == ACCOUNT_TYPE_ORGANISATION) AND !in_array($page_flags, array(PAGE_SOAPBOX))) {
|
elseif (($account_type == ACCOUNT_TYPE_ORGANISATION) AND !in_array($page_flags, array(PAGE_SOAPBOX)))
|
||||||
$page_flags = PAGE_SOAPBOX;
|
$page_flags = PAGE_SOAPBOX;
|
||||||
} elseif (($account_type == ACCOUNT_TYPE_NEWS) AND !in_array($page_flags, array(PAGE_SOAPBOX))) {
|
elseif (($account_type == ACCOUNT_TYPE_NEWS) AND !in_array($page_flags, array(PAGE_SOAPBOX)))
|
||||||
$page_flags = PAGE_SOAPBOX;
|
$page_flags = PAGE_SOAPBOX;
|
||||||
} elseif (($account_type == ACCOUNT_TYPE_COMMUNITY) AND !in_array($page_flags, array(PAGE_COMMUNITY, PAGE_PRVGROUP))) {
|
elseif (($account_type == ACCOUNT_TYPE_COMMUNITY) AND !in_array($page_flags, array(PAGE_COMMUNITY, PAGE_PRVGROUP)))
|
||||||
$page_flags = PAGE_COMMUNITY;
|
$page_flags = PAGE_COMMUNITY;
|
||||||
}
|
|
||||||
|
|
||||||
$email_changed = false;
|
$email_changed = false;
|
||||||
|
|
||||||
|
|
@ -488,17 +475,15 @@ function settings_post(App $a) {
|
||||||
|
|
||||||
$name_change = false;
|
$name_change = false;
|
||||||
|
|
||||||
if ($username != $a->user['username']) {
|
if($username != $a->user['username']) {
|
||||||
$name_change = true;
|
$name_change = true;
|
||||||
if (strlen($username) > 40) {
|
if(strlen($username) > 40)
|
||||||
$err .= t(' Please use a shorter name.');
|
$err .= t(' Please use a shorter name.');
|
||||||
}
|
if(strlen($username) < 3)
|
||||||
if (strlen($username) < 3) {
|
|
||||||
$err .= t(' Name too short.');
|
$err .= t(' Name too short.');
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($email != $a->user['email']) {
|
if($email != $a->user['email']) {
|
||||||
$email_changed = true;
|
$email_changed = true;
|
||||||
// check for the correct password
|
// check for the correct password
|
||||||
$r = q("SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1", intval(local_user()));
|
$r = q("SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1", intval(local_user()));
|
||||||
|
|
@ -508,12 +493,11 @@ function settings_post(App $a) {
|
||||||
$email = $a->user['email'];
|
$email = $a->user['email'];
|
||||||
}
|
}
|
||||||
// check the email is valid
|
// check the email is valid
|
||||||
if (! valid_email($email)) {
|
if(! valid_email($email))
|
||||||
$err .= t(' Not valid email.');
|
$err .= t(' Not valid email.');
|
||||||
}
|
|
||||||
// ensure new email is not the admin mail
|
// ensure new email is not the admin mail
|
||||||
//if ((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0)) {
|
//if((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0)) {
|
||||||
if (x($a->config,'admin_email')) {
|
if(x($a->config,'admin_email')) {
|
||||||
$adminlist = explode(",", str_replace(" ", "", strtolower($a->config['admin_email'])));
|
$adminlist = explode(",", str_replace(" ", "", strtolower($a->config['admin_email'])));
|
||||||
if (in_array(strtolower($email), $adminlist)) {
|
if (in_array(strtolower($email), $adminlist)) {
|
||||||
$err .= t(' Cannot change to that email.');
|
$err .= t(' Cannot change to that email.');
|
||||||
|
|
@ -522,13 +506,14 @@ function settings_post(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($err)) {
|
if(strlen($err)) {
|
||||||
notice($err . EOL);
|
notice($err . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($timezone != $a->user['timezone'] && strlen($timezone)) {
|
if($timezone != $a->user['timezone']) {
|
||||||
date_default_timezone_set($timezone);
|
if(strlen($timezone))
|
||||||
|
date_default_timezone_set($timezone);
|
||||||
}
|
}
|
||||||
|
|
||||||
$str_group_allow = perms2str($_POST['group_allow']);
|
$str_group_allow = perms2str($_POST['group_allow']);
|
||||||
|
|
@ -541,17 +526,17 @@ function settings_post(App $a) {
|
||||||
|
|
||||||
// If openid has changed or if there's an openid but no openidserver, try and discover it.
|
// If openid has changed or if there's an openid but no openidserver, try and discover it.
|
||||||
|
|
||||||
if ($openid != $a->user['openid'] || (strlen($openid) && (! strlen($openidserver)))) {
|
if($openid != $a->user['openid'] || (strlen($openid) && (! strlen($openidserver)))) {
|
||||||
$tmp_str = $openid;
|
$tmp_str = $openid;
|
||||||
if (strlen($tmp_str) && validate_url($tmp_str)) {
|
if(strlen($tmp_str) && validate_url($tmp_str)) {
|
||||||
logger('updating openidserver');
|
logger('updating openidserver');
|
||||||
require_once('library/openid.php');
|
require_once('library/openid.php');
|
||||||
$open_id_obj = new LightOpenID;
|
$open_id_obj = new LightOpenID;
|
||||||
$open_id_obj->identity = $openid;
|
$open_id_obj->identity = $openid;
|
||||||
$openidserver = $open_id_obj->discover($open_id_obj->identity);
|
$openidserver = $open_id_obj->discover($open_id_obj->identity);
|
||||||
} else {
|
|
||||||
$openidserver = '';
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
$openidserver = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
set_pconfig(local_user(),'expire','items', $expire_items);
|
set_pconfig(local_user(),'expire','items', $expire_items);
|
||||||
|
|
@ -567,13 +552,14 @@ function settings_post(App $a) {
|
||||||
|
|
||||||
set_pconfig(local_user(),'system','email_textonly', $email_textonly);
|
set_pconfig(local_user(),'system','email_textonly', $email_textonly);
|
||||||
|
|
||||||
if ($page_flags == PAGE_PRVGROUP) {
|
if($page_flags == PAGE_PRVGROUP) {
|
||||||
$hidewall = 1;
|
$hidewall = 1;
|
||||||
if ((! $str_contact_allow) && (! $str_group_allow) && (! $str_contact_deny) && (! $str_group_deny)) {
|
if((! $str_contact_allow) && (! $str_group_allow) && (! $str_contact_deny) && (! $str_group_deny)) {
|
||||||
if ($def_gid) {
|
if($def_gid) {
|
||||||
info( t('Private forum has no privacy permissions. Using default privacy group.'). EOL);
|
info( t('Private forum has no privacy permissions. Using default privacy group.'). EOL);
|
||||||
$str_group_allow = '<' . $def_gid . '>';
|
$str_group_allow = '<' . $def_gid . '>';
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
notice( t('Private forum has no privacy permissions and no default privacy group.') . EOL);
|
notice( t('Private forum has no privacy permissions and no default privacy group.') . EOL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -613,9 +599,8 @@ function settings_post(App $a) {
|
||||||
dbesc($language),
|
dbesc($language),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if ($r) {
|
if($r)
|
||||||
info( t('Settings updated.') . EOL);
|
info( t('Settings updated.') . EOL);
|
||||||
}
|
|
||||||
|
|
||||||
// clear session language
|
// clear session language
|
||||||
unset($_SESSION['language']);
|
unset($_SESSION['language']);
|
||||||
|
|
@ -634,7 +619,7 @@ function settings_post(App $a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
if ($name_change) {
|
if($name_change) {
|
||||||
q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `uid` = %d AND `self`",
|
q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `uid` = %d AND `self`",
|
||||||
dbesc($username),
|
dbesc($username),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
|
|
@ -684,6 +669,8 @@ function settings_content(App $a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (($a->argc > 1) && ($a->argv[1] === 'oauth')) {
|
if (($a->argc > 1) && ($a->argv[1] === 'oauth')) {
|
||||||
|
|
||||||
if (($a->argc > 2) && ($a->argv[2] === 'add')) {
|
if (($a->argc > 2) && ($a->argv[2] === 'add')) {
|
||||||
|
|
@ -728,7 +715,7 @@ function settings_content(App $a) {
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($a->argc > 3) && ($a->argv[2] === 'delete')) {
|
if(($a->argc > 3) && ($a->argv[2] === 'delete')) {
|
||||||
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth', 't');
|
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth', 't');
|
||||||
|
|
||||||
$r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
|
$r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
|
||||||
|
|
@ -866,10 +853,10 @@ function settings_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||||
if (get_config('system','dfrn_only'))
|
if(get_config('system','dfrn_only'))
|
||||||
$mail_disabled = 1;
|
$mail_disabled = 1;
|
||||||
|
|
||||||
if (! $mail_disabled) {
|
if(! $mail_disabled) {
|
||||||
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
|
||||||
local_user()
|
local_user()
|
||||||
);
|
);
|
||||||
|
|
@ -1177,7 +1164,7 @@ function settings_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$opt_tpl = get_markup_template("field_yesno.tpl");
|
$opt_tpl = get_markup_template("field_yesno.tpl");
|
||||||
if (get_config('system','publish_all')) {
|
if(get_config('system','publish_all')) {
|
||||||
$profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />';
|
$profile_in_dir = '<input type="hidden" name="profile_in_directory" value="1" />';
|
||||||
} else {
|
} else {
|
||||||
$profile_in_dir = replace_macros($opt_tpl,array(
|
$profile_in_dir = replace_macros($opt_tpl,array(
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
function share_init(App $a) {
|
function share_init(App $a) {
|
||||||
|
|
||||||
$post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
|
$post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
|
||||||
if ((! $post_id) || (! local_user()))
|
if((! $post_id) || (! local_user()))
|
||||||
killme();
|
killme();
|
||||||
|
|
||||||
$r = q("SELECT item.*, contact.network FROM `item`
|
$r = q("SELECT item.*, contact.network FROM `item`
|
||||||
|
|
@ -12,7 +12,7 @@ function share_init(App $a) {
|
||||||
intval($post_id),
|
intval($post_id),
|
||||||
intval(local_user())
|
intval(local_user())
|
||||||
);
|
);
|
||||||
if (! dbm::is_result($r) || ($r[0]['private'] == 1))
|
if(! dbm::is_result($r) || ($r[0]['private'] == 1))
|
||||||
killme();
|
killme();
|
||||||
|
|
||||||
if (strpos($r[0]['body'], "[/share]") !== false) {
|
if (strpos($r[0]['body'], "[/share]") !== false) {
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,12 @@ function smilies_content(App $a) {
|
||||||
if ($a->argv[1]==="json"){
|
if ($a->argv[1]==="json"){
|
||||||
$tmp = Smilies::get_list();
|
$tmp = Smilies::get_list();
|
||||||
$results = array();
|
$results = array();
|
||||||
for ($i = 0; $i < count($tmp['texts']); $i++) {
|
for($i = 0; $i < count($tmp['texts']); $i++) {
|
||||||
$results[] = array('text' => $tmp['texts'][$i], 'icon' => $tmp['icons'][$i]);
|
$results[] = array('text' => $tmp['texts'][$i], 'icon' => $tmp['icons'][$i]);
|
||||||
}
|
}
|
||||||
json_return_and_die($results);
|
json_return_and_die($results);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
return Smilies::replace('',true);
|
return Smilies::replace('',true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ require_once('include/items.php');
|
||||||
|
|
||||||
function subthread_content(App $a) {
|
function subthread_content(App $a) {
|
||||||
|
|
||||||
if (! local_user() && ! remote_user()) {
|
if(! local_user() && ! remote_user()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -20,7 +20,7 @@ function subthread_content(App $a) {
|
||||||
dbesc($item_id)
|
dbesc($item_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! $item_id || (! dbm::is_result($r))) {
|
if(! $item_id || (! dbm::is_result($r))) {
|
||||||
logger('subthread: no item ' . $item_id);
|
logger('subthread: no item ' . $item_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -29,13 +29,13 @@ function subthread_content(App $a) {
|
||||||
|
|
||||||
$owner_uid = $item['uid'];
|
$owner_uid = $item['uid'];
|
||||||
|
|
||||||
if (! can_write_wall($a,$owner_uid)) {
|
if(! can_write_wall($a,$owner_uid)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$remote_owner = null;
|
$remote_owner = null;
|
||||||
|
|
||||||
if (! $item['wall']) {
|
if(! $item['wall']) {
|
||||||
// The top level post may have been written by somebody on another system
|
// The top level post may have been written by somebody on another system
|
||||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($item['contact-id']),
|
intval($item['contact-id']),
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ require_once('include/items.php');
|
||||||
|
|
||||||
function tagger_content(App $a) {
|
function tagger_content(App $a) {
|
||||||
|
|
||||||
if (! local_user() && ! remote_user()) {
|
if(! local_user() && ! remote_user()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@ function tagger_content(App $a) {
|
||||||
// no commas allowed
|
// no commas allowed
|
||||||
$term = str_replace(array(',',' '),array('','_'),$term);
|
$term = str_replace(array(',',' '),array('','_'),$term);
|
||||||
|
|
||||||
if (! $term)
|
if(! $term)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
|
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
|
||||||
|
|
@ -27,7 +27,7 @@ function tagger_content(App $a) {
|
||||||
dbesc($item_id)
|
dbesc($item_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (! $item_id || (! dbm::is_result($r))) {
|
if(! $item_id || (! dbm::is_result($r))) {
|
||||||
logger('tagger: no item ' . $item_id);
|
logger('tagger: no item ' . $item_id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -44,7 +44,7 @@ function tagger_content(App $a) {
|
||||||
$blocktags = $r[0]['blocktags'];
|
$blocktags = $r[0]['blocktags'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (local_user() != $owner_uid)
|
if(local_user() != $owner_uid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$r = q("select * from contact where self = 1 and uid = %d limit 1",
|
$r = q("select * from contact where self = 1 and uid = %d limit 1",
|
||||||
|
|
@ -146,7 +146,7 @@ EOT;
|
||||||
// );
|
// );
|
||||||
|
|
||||||
|
|
||||||
if (! $item['visible']) {
|
if(! $item['visible']) {
|
||||||
$r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d",
|
$r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d",
|
||||||
intval($item['id']),
|
intval($item['id']),
|
||||||
intval($owner_uid)
|
intval($owner_uid)
|
||||||
|
|
@ -158,7 +158,7 @@ EOT;
|
||||||
intval($item['id']),
|
intval($item['id']),
|
||||||
dbesc($term)
|
dbesc($term)
|
||||||
);
|
);
|
||||||
if ((! $blocktags) && $t[0]['tcount']==0 ) {
|
if((! $blocktags) && $t[0]['tcount']==0 ) {
|
||||||
/*q("update item set tag = '%s' where id = %d",
|
/*q("update item set tag = '%s' where id = %d",
|
||||||
dbesc($item['tag'] . (strlen($item['tag']) ? ',' : '') . '#[url=' . App::get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'),
|
dbesc($item['tag'] . (strlen($item['tag']) ? ',' : '') . '#[url=' . App::get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'),
|
||||||
intval($item['id'])
|
intval($item['id'])
|
||||||
|
|
@ -187,18 +187,18 @@ EOT;
|
||||||
intval($r[0]['id']),
|
intval($r[0]['id']),
|
||||||
dbesc($term)
|
dbesc($term)
|
||||||
);
|
);
|
||||||
if (count($x) && !$x[0]['blocktags'] && $t[0]['tcount']==0){
|
if(count($x) && !$x[0]['blocktags'] && $t[0]['tcount']==0){
|
||||||
q("INSERT INTO term (oid, otype, type, term, url, uid) VALUE (%d, %d, %d, '%s', '%s', %d)",
|
q("INSERT INTO term (oid, otype, type, term, url, uid) VALUE (%d, %d, %d, '%s', '%s', %d)",
|
||||||
intval($r[0]['id']),
|
intval($r[0]['id']),
|
||||||
$term_objtype,
|
$term_objtype,
|
||||||
TERM_HASHTAG,
|
TERM_HASHTAG,
|
||||||
dbesc($term),
|
dbesc($term),
|
||||||
dbesc(App::get_baseurl() . '/search?tag=' . $term),
|
dbesc(App::get_baseurl() . '/search?tag=' . $term),
|
||||||
intval($owner_uid)
|
intval($owner_uid)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if (count($x) && !$x[0]['blocktags'] && (! stristr($r[0]['tag'], ']' . $term . '['))) {
|
/*if(count($x) && !$x[0]['blocktags'] && (! stristr($r[0]['tag'], ']' . $term . '['))) {
|
||||||
q("update item set tag = '%s' where id = %d",
|
q("update item set tag = '%s' where id = %d",
|
||||||
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . App::get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'),
|
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . App::get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'),
|
||||||
intval($r[0]['id'])
|
intval($r[0]['id'])
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,9 @@ function _uexport_multirow($query) {
|
||||||
$result = array();
|
$result = array();
|
||||||
$r = q($query);
|
$r = q($query);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr){
|
foreach($r as $rr){
|
||||||
$p = array();
|
$p = array();
|
||||||
foreach ($rr as $k => $v) {
|
foreach($rr as $k => $v) {
|
||||||
$p[$k] = $v;
|
$p[$k] = $v;
|
||||||
}
|
}
|
||||||
$result[] = $p;
|
$result[] = $p;
|
||||||
|
|
@ -66,8 +66,8 @@ function _uexport_row($query) {
|
||||||
$result = array();
|
$result = array();
|
||||||
$r = q($query);
|
$r = q($query);
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr) {
|
||||||
foreach ($rr as $k => $v) {
|
foreach($rr as $k => $v) {
|
||||||
$result[$k] = $v;
|
$result[$k] = $v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -151,8 +151,8 @@ function uexport_all(App $a) {
|
||||||
intval(500)
|
intval(500)
|
||||||
);
|
);
|
||||||
/*if (dbm::is_result($r)) {
|
/*if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr)
|
foreach($r as $rr)
|
||||||
foreach ($rr as $k => $v)
|
foreach($rr as $k => $v)
|
||||||
$item[][$k] = $v;
|
$item[][$k] = $v;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@ require_once('include/redir.php');
|
||||||
|
|
||||||
function videos_init(App $a) {
|
function videos_init(App $a) {
|
||||||
|
|
||||||
if ($a->argc > 1)
|
if($a->argc > 1)
|
||||||
auto_redir($a, $a->argv[1]);
|
auto_redir($a, $a->argv[1]);
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -19,15 +19,14 @@ function videos_init(App $a) {
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
$nick = $a->argv[1];
|
$nick = $a->argv[1];
|
||||||
$user = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
|
$user = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
|
||||||
dbesc($nick)
|
dbesc($nick)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!dbm::is_result($user)) {
|
if(! count($user))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$a->data['user'] = $user[0];
|
$a->data['user'] = $user[0];
|
||||||
$a->profile_uid = $user[0]['uid'];
|
$a->profile_uid = $user[0]['uid'];
|
||||||
|
|
@ -53,35 +52,35 @@ function videos_init(App $a) {
|
||||||
intval($a->data['user']['uid'])
|
intval($a->data['user']['uid'])
|
||||||
);
|
);
|
||||||
|
|
||||||
if (count($albums)) {
|
if(count($albums)) {
|
||||||
$a->data['albums'] = $albums;
|
$a->data['albums'] = $albums;
|
||||||
|
|
||||||
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);
|
$albums_visible = ((intval($a->data['user']['hidewall']) && (! local_user()) && (! remote_user())) ? false : true);
|
||||||
|
|
||||||
if ($albums_visible) {
|
if($albums_visible) {
|
||||||
$o .= '<div id="sidebar-photos-albums" class="widget">';
|
$o .= '<div id="sidebar-photos-albums" class="widget">';
|
||||||
$o .= '<h3>' . '<a href="' . App::get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '">' . t('Photo Albums') . '</a></h3>';
|
$o .= '<h3>' . '<a href="' . App::get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '">' . t('Photo Albums') . '</a></h3>';
|
||||||
|
|
||||||
$o .= '<ul>';
|
$o .= '<ul>';
|
||||||
foreach ($albums as $album) {
|
foreach($albums as $album) {
|
||||||
|
|
||||||
// don't show contact photos. We once translated this name, but then you could still access it under
|
// don't show contact photos. We once translated this name, but then you could still access it under
|
||||||
// a different language setting. Now we store the name in English and check in English (and translated for legacy albums).
|
// a different language setting. Now we store the name in English and check in English (and translated for legacy albums).
|
||||||
|
|
||||||
if ((! strlen($album['album'])) || ($album['album'] === 'Contact Photos') || ($album['album'] === t('Contact Photos')))
|
if((! strlen($album['album'])) || ($album['album'] === 'Contact Photos') || ($album['album'] === t('Contact Photos')))
|
||||||
continue;
|
continue;
|
||||||
$o .= '<li>' . '<a href="photos/' . $a->argv[1] . '/album/' . bin2hex($album['album']) . '" >' . $album['album'] . '</a></li>';
|
$o .= '<li>' . '<a href="photos/' . $a->argv[1] . '/album/' . bin2hex($album['album']) . '" >' . $album['album'] . '</a></li>';
|
||||||
}
|
}
|
||||||
$o .= '</ul>';
|
$o .= '</ul>';
|
||||||
}
|
}
|
||||||
if (local_user() && $a->data['user']['uid'] == local_user()) {
|
if(local_user() && $a->data['user']['uid'] == local_user()) {
|
||||||
$o .= '<div id="photo-albums-upload-link"><a href="' . App::get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/upload" >' .t('Upload New Photos') . '</a></div>';
|
$o .= '<div id="photo-albums-upload-link"><a href="' . App::get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/upload" >' .t('Upload New Photos') . '</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$o .= '</div>';
|
$o .= '</div>';
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if (! x($a->page,'aside'))
|
if(! x($a->page,'aside'))
|
||||||
$a->page['aside'] = '';
|
$a->page['aside'] = '';
|
||||||
$a->page['aside'] .= $vcard_widget;
|
$a->page['aside'] .= $vcard_widget;
|
||||||
|
|
||||||
|
|
@ -195,7 +194,7 @@ function videos_content(App $a) {
|
||||||
// videos/name/video/xxxxx/edit
|
// videos/name/video/xxxxx/edit
|
||||||
|
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
notice( t('Public access denied.') . EOL);
|
notice( t('Public access denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -205,7 +204,7 @@ function videos_content(App $a) {
|
||||||
require_once('include/security.php');
|
require_once('include/security.php');
|
||||||
require_once('include/conversation.php');
|
require_once('include/conversation.php');
|
||||||
|
|
||||||
if (! x($a->data,'user')) {
|
if(! x($a->data,'user')) {
|
||||||
notice( t('No videos selected') . EOL );
|
notice( t('No videos selected') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -218,16 +217,16 @@ function videos_content(App $a) {
|
||||||
// Parse arguments
|
// Parse arguments
|
||||||
//
|
//
|
||||||
|
|
||||||
if ($a->argc > 3) {
|
if($a->argc > 3) {
|
||||||
$datatype = $a->argv[2];
|
$datatype = $a->argv[2];
|
||||||
$datum = $a->argv[3];
|
$datum = $a->argv[3];
|
||||||
}
|
}
|
||||||
elseif (($a->argc > 2) && ($a->argv[2] === 'upload'))
|
elseif(($a->argc > 2) && ($a->argv[2] === 'upload'))
|
||||||
$datatype = 'upload';
|
$datatype = 'upload';
|
||||||
else
|
else
|
||||||
$datatype = 'summary';
|
$datatype = 'summary';
|
||||||
|
|
||||||
if ($a->argc > 4)
|
if($a->argc > 4)
|
||||||
$cmd = $a->argv[4];
|
$cmd = $a->argv[4];
|
||||||
else
|
else
|
||||||
$cmd = 'view';
|
$cmd = 'view';
|
||||||
|
|
@ -246,19 +245,19 @@ function videos_content(App $a) {
|
||||||
|
|
||||||
$community_page = (($a->data['user']['page-flags'] == PAGE_COMMUNITY) ? true : false);
|
$community_page = (($a->data['user']['page-flags'] == PAGE_COMMUNITY) ? true : false);
|
||||||
|
|
||||||
if ((local_user()) && (local_user() == $owner_uid))
|
if((local_user()) && (local_user() == $owner_uid))
|
||||||
$can_post = true;
|
$can_post = true;
|
||||||
else {
|
else {
|
||||||
if ($community_page && remote_user()) {
|
if($community_page && remote_user()) {
|
||||||
if (is_array($_SESSION['remote'])) {
|
if(is_array($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $v) {
|
foreach($_SESSION['remote'] as $v) {
|
||||||
if ($v['uid'] == $owner_uid) {
|
if($v['uid'] == $owner_uid) {
|
||||||
$contact_id = $v['cid'];
|
$contact_id = $v['cid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($contact_id) {
|
if($contact_id) {
|
||||||
|
|
||||||
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($contact_id),
|
intval($contact_id),
|
||||||
|
|
@ -276,17 +275,17 @@ function videos_content(App $a) {
|
||||||
|
|
||||||
// perhaps they're visiting - but not a community page, so they wouldn't have write access
|
// perhaps they're visiting - but not a community page, so they wouldn't have write access
|
||||||
|
|
||||||
if (remote_user() && (! $visitor)) {
|
if(remote_user() && (! $visitor)) {
|
||||||
$contact_id = 0;
|
$contact_id = 0;
|
||||||
if (is_array($_SESSION['remote'])) {
|
if(is_array($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $v) {
|
foreach($_SESSION['remote'] as $v) {
|
||||||
if ($v['uid'] == $owner_uid) {
|
if($v['uid'] == $owner_uid) {
|
||||||
$contact_id = $v['cid'];
|
$contact_id = $v['cid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($contact_id) {
|
if($contact_id) {
|
||||||
$groups = init_groups_visitor($contact_id);
|
$groups = init_groups_visitor($contact_id);
|
||||||
$r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($contact_id),
|
intval($contact_id),
|
||||||
|
|
@ -299,14 +298,14 @@ function videos_content(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $remote_contact) {
|
if(! $remote_contact) {
|
||||||
if (local_user()) {
|
if(local_user()) {
|
||||||
$contact_id = $_SESSION['cid'];
|
$contact_id = $_SESSION['cid'];
|
||||||
$contact = $a->contact;
|
$contact = $a->contact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($a->data['user']['hidewall'] && (local_user() != $owner_uid) && (! $remote_contact)) {
|
if($a->data['user']['hidewall'] && (local_user() != $owner_uid) && (! $remote_contact)) {
|
||||||
notice( t('Access to this item is restricted.') . EOL);
|
notice( t('Access to this item is restricted.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -324,13 +323,13 @@ function videos_content(App $a) {
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
if ($datatype === 'upload') {
|
if($datatype === 'upload') {
|
||||||
return; // no uploading for now
|
return; // no uploading for now
|
||||||
|
|
||||||
// DELETED -- look at mod/photos.php if you want to implement
|
// DELETED -- look at mod/photos.php if you want to implement
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($datatype === 'album') {
|
if($datatype === 'album') {
|
||||||
|
|
||||||
return; // no albums for now
|
return; // no albums for now
|
||||||
|
|
||||||
|
|
@ -338,7 +337,7 @@ function videos_content(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($datatype === 'video') {
|
if($datatype === 'video') {
|
||||||
|
|
||||||
return; // no single video view for now
|
return; // no single video view for now
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,8 @@ function view_init($a){
|
||||||
if ($a->argc == 4){
|
if ($a->argc == 4){
|
||||||
$theme = $a->argv[2];
|
$theme = $a->argv[2];
|
||||||
$THEMEPATH = "view/theme/$theme";
|
$THEMEPATH = "view/theme/$theme";
|
||||||
if (file_exists("view/theme/$theme/style.php")) {
|
if(file_exists("view/theme/$theme/style.php"))
|
||||||
require_once("view/theme/$theme/style.php");
|
require_once("view/theme/$theme/style.php");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
killme();
|
killme();
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,13 @@ require_once('include/contact_selectors.php');
|
||||||
|
|
||||||
function viewcontacts_init(App $a) {
|
function viewcontacts_init(App $a) {
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav_set_selected('home');
|
nav_set_selected('home');
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
$nick = $a->argv[1];
|
$nick = $a->argv[1];
|
||||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1",
|
||||||
dbesc($nick)
|
dbesc($nick)
|
||||||
|
|
@ -32,7 +32,7 @@ function viewcontacts_init(App $a) {
|
||||||
function viewcontacts_content(App $a) {
|
function viewcontacts_content(App $a) {
|
||||||
require_once("mod/proxy.php");
|
require_once("mod/proxy.php");
|
||||||
|
|
||||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||||
notice( t('Public access denied.') . EOL);
|
notice( t('Public access denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -42,7 +42,7 @@ function viewcontacts_content(App $a) {
|
||||||
// tabs
|
// tabs
|
||||||
$o .= profile_tabs($a,$is_owner, $a->data['user']['nickname']);
|
$o .= profile_tabs($a,$is_owner, $a->data['user']['nickname']);
|
||||||
|
|
||||||
if (((! count($a->profile)) || ($a->profile['hide-friends']))) {
|
if(((! count($a->profile)) || ($a->profile['hide-friends']))) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
@ -90,11 +90,10 @@ function viewcontacts_content(App $a) {
|
||||||
|
|
||||||
$is_owner = ((local_user() && ($a->profile['profile_uid'] == local_user())) ? true : false);
|
$is_owner = ((local_user() && ($a->profile['profile_uid'] == local_user())) ? true : false);
|
||||||
|
|
||||||
if ($is_owner && ($rr['network'] === NETWORK_DFRN) && ($rr['rel'])) {
|
if($is_owner && ($rr['network'] === NETWORK_DFRN) && ($rr['rel']))
|
||||||
$url = 'redir/' . $rr['id'];
|
$url = 'redir/' . $rr['id'];
|
||||||
} else {
|
else
|
||||||
$url = zrl($url);
|
$url = zrl($url);
|
||||||
}
|
|
||||||
|
|
||||||
$contact_details = get_contact_details_by_url($rr['url'], $a->profile['uid'], $rr);
|
$contact_details = get_contact_details_by_url($rr['url'], $a->profile['uid'], $rr);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ function viewsrc_content(App $a) {
|
||||||
|
|
||||||
$item_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
|
$item_id = (($a->argc > 1) ? intval($a->argv[1]) : 0);
|
||||||
|
|
||||||
if (! $item_id) {
|
if(! $item_id) {
|
||||||
$a->error = 404;
|
$a->error = 404;
|
||||||
notice( t('Item not found.') . EOL);
|
notice( t('Item not found.') . EOL);
|
||||||
return;
|
return;
|
||||||
|
|
@ -25,7 +25,7 @@ function viewsrc_content(App $a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dbm::is_result($r))
|
if (dbm::is_result($r))
|
||||||
if (is_ajax()) {
|
if(is_ajax()) {
|
||||||
echo str_replace("\n",'<br />',$r[0]['body']);
|
echo str_replace("\n",'<br />',$r[0]['body']);
|
||||||
killme();
|
killme();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ function wall_attach_post(App $a) {
|
||||||
|
|
||||||
$r_json = (x($_GET,'response') && $_GET['response']=='json');
|
$r_json = (x($_GET,'response') && $_GET['response']=='json');
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
$nick = $a->argv[1];
|
$nick = $a->argv[1];
|
||||||
$r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
|
$r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
|
||||||
dbesc($nick)
|
dbesc($nick)
|
||||||
|
|
@ -36,20 +36,20 @@ function wall_attach_post(App $a) {
|
||||||
$page_owner_nick = $r[0]['nickname'];
|
$page_owner_nick = $r[0]['nickname'];
|
||||||
$community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
|
$community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
|
||||||
|
|
||||||
if ((local_user()) && (local_user() == $page_owner_uid))
|
if((local_user()) && (local_user() == $page_owner_uid))
|
||||||
$can_post = true;
|
$can_post = true;
|
||||||
else {
|
else {
|
||||||
if ($community_page && remote_user()) {
|
if($community_page && remote_user()) {
|
||||||
$contact_id = 0;
|
$contact_id = 0;
|
||||||
if (is_array($_SESSION['remote'])) {
|
if(is_array($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $v) {
|
foreach($_SESSION['remote'] as $v) {
|
||||||
if ($v['uid'] == $page_owner_uid) {
|
if($v['uid'] == $page_owner_uid) {
|
||||||
$contact_id = $v['cid'];
|
$contact_id = $v['cid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($contact_id) {
|
if($contact_id) {
|
||||||
|
|
||||||
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($contact_id),
|
intval($contact_id),
|
||||||
|
|
@ -62,7 +62,7 @@ function wall_attach_post(App $a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $can_post) {
|
if(! $can_post) {
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>t('Permission denied.')));
|
echo json_encode(array('error'=>t('Permission denied.')));
|
||||||
killme();
|
killme();
|
||||||
|
|
@ -71,7 +71,7 @@ function wall_attach_post(App $a) {
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! x($_FILES,'userfile')) {
|
if(! x($_FILES,'userfile')) {
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>t('Invalid request.')));
|
echo json_encode(array('error'=>t('Invalid request.')));
|
||||||
}
|
}
|
||||||
|
|
@ -90,7 +90,7 @@ function wall_attach_post(App $a) {
|
||||||
* Then Filesize gets <= 0.
|
* Then Filesize gets <= 0.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($filesize <=0) {
|
if($filesize <=0) {
|
||||||
$msg = t('Sorry, maybe your upload is bigger than the PHP configuration allows') . EOL .(t('Or - did you try to upload an empty file?'));
|
$msg = t('Sorry, maybe your upload is bigger than the PHP configuration allows') . EOL .(t('Or - did you try to upload an empty file?'));
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>$msg));
|
echo json_encode(array('error'=>$msg));
|
||||||
|
|
@ -101,7 +101,7 @@ function wall_attach_post(App $a) {
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($maxfilesize) && ($filesize > $maxfilesize)) {
|
if(($maxfilesize) && ($filesize > $maxfilesize)) {
|
||||||
$msg = sprintf(t('File exceeds size limit of %s'), formatBytes($maxfilesize));
|
$msg = sprintf(t('File exceeds size limit of %s'), formatBytes($maxfilesize));
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>$msg));
|
echo json_encode(array('error'=>$msg));
|
||||||
|
|
@ -154,7 +154,7 @@ function wall_attach_post(App $a) {
|
||||||
|
|
||||||
@unlink($src);
|
@unlink($src);
|
||||||
|
|
||||||
if (! $r) {
|
if(! $r) {
|
||||||
$msg = t('File upload failed.');
|
$msg = t('File upload failed.');
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>$msg));
|
echo json_encode(array('error'=>$msg));
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
|
|
||||||
$r_json = (x($_GET,'response') && $_GET['response']=='json');
|
$r_json = (x($_GET,'response') && $_GET['response']=='json');
|
||||||
|
|
||||||
if ($a->argc > 1) {
|
if($a->argc > 1) {
|
||||||
if (! x($_FILES,'media')) {
|
if(! x($_FILES,'media')) {
|
||||||
$nick = $a->argv[1];
|
$nick = $a->argv[1];
|
||||||
$r = q("SELECT `user`.*, `contact`.`id` FROM `user` INNER JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
|
$r = q("SELECT `user`.*, `contact`.`id` FROM `user` INNER JOIN `contact` on `user`.`uid` = `contact`.`uid` WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1",
|
||||||
dbesc($nick)
|
dbesc($nick)
|
||||||
|
|
@ -44,20 +44,20 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
$page_owner_nick = $r[0]['nickname'];
|
$page_owner_nick = $r[0]['nickname'];
|
||||||
$community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
|
$community_page = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
|
||||||
|
|
||||||
if ((local_user()) && (local_user() == $page_owner_uid))
|
if((local_user()) && (local_user() == $page_owner_uid))
|
||||||
$can_post = true;
|
$can_post = true;
|
||||||
else {
|
else {
|
||||||
if ($community_page && remote_user()) {
|
if($community_page && remote_user()) {
|
||||||
$contact_id = 0;
|
$contact_id = 0;
|
||||||
if (is_array($_SESSION['remote'])) {
|
if(is_array($_SESSION['remote'])) {
|
||||||
foreach ($_SESSION['remote'] as $v) {
|
foreach($_SESSION['remote'] as $v) {
|
||||||
if ($v['uid'] == $page_owner_uid) {
|
if($v['uid'] == $page_owner_uid) {
|
||||||
$contact_id = $v['cid'];
|
$contact_id = $v['cid'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($contact_id) {
|
if($contact_id) {
|
||||||
|
|
||||||
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
|
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
|
||||||
intval($contact_id),
|
intval($contact_id),
|
||||||
|
|
@ -72,7 +72,7 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (! $can_post) {
|
if(! $can_post) {
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>t('Permission denied.')));
|
echo json_encode(array('error'=>t('Permission denied.')));
|
||||||
killme();
|
killme();
|
||||||
|
|
@ -81,7 +81,7 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! x($_FILES,'userfile') && ! x($_FILES,'media')){
|
if(! x($_FILES,'userfile') && ! x($_FILES,'media')){
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>t('Invalid request.')));
|
echo json_encode(array('error'=>t('Invalid request.')));
|
||||||
}
|
}
|
||||||
|
|
@ -89,13 +89,13 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$src = "";
|
$src = "";
|
||||||
if (x($_FILES,'userfile')) {
|
if(x($_FILES,'userfile')) {
|
||||||
$src = $_FILES['userfile']['tmp_name'];
|
$src = $_FILES['userfile']['tmp_name'];
|
||||||
$filename = basename($_FILES['userfile']['name']);
|
$filename = basename($_FILES['userfile']['name']);
|
||||||
$filesize = intval($_FILES['userfile']['size']);
|
$filesize = intval($_FILES['userfile']['size']);
|
||||||
$filetype = $_FILES['userfile']['type'];
|
$filetype = $_FILES['userfile']['type'];
|
||||||
}
|
}
|
||||||
elseif (x($_FILES,'media')) {
|
elseif(x($_FILES,'media')) {
|
||||||
if (is_array($_FILES['media']['tmp_name']))
|
if (is_array($_FILES['media']['tmp_name']))
|
||||||
$src = $_FILES['media']['tmp_name'][0];
|
$src = $_FILES['media']['tmp_name'][0];
|
||||||
else
|
else
|
||||||
|
|
@ -147,7 +147,7 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
|
|
||||||
$maximagesize = get_config('system','maximagesize');
|
$maximagesize = get_config('system','maximagesize');
|
||||||
|
|
||||||
if (($maximagesize) && ($filesize > $maximagesize)) {
|
if(($maximagesize) && ($filesize > $maximagesize)) {
|
||||||
$msg = sprintf( t('Image exceeds size limit of %s'), formatBytes($maximagesize));
|
$msg = sprintf( t('Image exceeds size limit of %s'), formatBytes($maximagesize));
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>$msg));
|
echo json_encode(array('error'=>$msg));
|
||||||
|
|
@ -182,7 +182,7 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
$imagedata = @file_get_contents($src);
|
$imagedata = @file_get_contents($src);
|
||||||
$ph = new Photo($imagedata, $filetype);
|
$ph = new Photo($imagedata, $filetype);
|
||||||
|
|
||||||
if (! $ph->is_valid()) {
|
if(! $ph->is_valid()) {
|
||||||
$msg = t('Unable to process image.');
|
$msg = t('Unable to process image.');
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>$msg));
|
echo json_encode(array('error'=>$msg));
|
||||||
|
|
@ -197,9 +197,9 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
@unlink($src);
|
@unlink($src);
|
||||||
|
|
||||||
$max_length = get_config('system','max_image_length');
|
$max_length = get_config('system','max_image_length');
|
||||||
if (! $max_length)
|
if(! $max_length)
|
||||||
$max_length = MAX_IMAGE_LENGTH;
|
$max_length = MAX_IMAGE_LENGTH;
|
||||||
if ($max_length > 0) {
|
if($max_length > 0) {
|
||||||
$ph->scaleImage($max_length);
|
$ph->scaleImage($max_length);
|
||||||
logger("File upload: Scaling picture to new size ".$max_length, LOGGER_DEBUG);
|
logger("File upload: Scaling picture to new size ".$max_length, LOGGER_DEBUG);
|
||||||
}
|
}
|
||||||
|
|
@ -215,7 +215,7 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
|
|
||||||
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm);
|
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm);
|
||||||
|
|
||||||
if (! $r) {
|
if(! $r) {
|
||||||
$msg = t('Image upload failed.');
|
$msg = t('Image upload failed.');
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>$msg));
|
echo json_encode(array('error'=>$msg));
|
||||||
|
|
@ -225,20 +225,18 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($width > 640 || $height > 640) {
|
if($width > 640 || $height > 640) {
|
||||||
$ph->scaleImage(640);
|
$ph->scaleImage(640);
|
||||||
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, $defperm);
|
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, $defperm);
|
||||||
if ($r) {
|
if($r)
|
||||||
$smallest = 1;
|
$smallest = 1;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($width > 320 || $height > 320) {
|
if($width > 320 || $height > 320) {
|
||||||
$ph->scaleImage(320);
|
$ph->scaleImage(320);
|
||||||
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm);
|
$r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm);
|
||||||
if ($r AND ($smallest == 0)) {
|
if($r AND ($smallest == 0))
|
||||||
$smallest = 2;
|
$smallest = 2;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$basename = basename($filename);
|
$basename = basename($filename);
|
||||||
|
|
@ -246,7 +244,7 @@ function wall_upload_post(App $a, $desktopmode = true) {
|
||||||
if (!$desktopmode) {
|
if (!$desktopmode) {
|
||||||
|
|
||||||
$r = q("SELECT `id`, `datasize`, `width`, `height`, `type` FROM `photo` WHERE `resource-id` = '%s' ORDER BY `width` DESC LIMIT 1", $hash);
|
$r = q("SELECT `id`, `datasize`, `width`, `height`, `type` FROM `photo` WHERE `resource-id` = '%s' ORDER BY `width` DESC LIMIT 1", $hash);
|
||||||
if (!dbm::is_result($r)) {
|
if (!$r){
|
||||||
if ($r_json) {
|
if ($r_json) {
|
||||||
echo json_encode(array('error'=>''));
|
echo json_encode(array('error'=>''));
|
||||||
killme();
|
killme();
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ require_once('include/message.php');
|
||||||
function wallmessage_post(App $a) {
|
function wallmessage_post(App $a) {
|
||||||
|
|
||||||
$replyto = get_my_url();
|
$replyto = get_my_url();
|
||||||
if (! $replyto) {
|
if(! $replyto) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -14,7 +14,7 @@ function wallmessage_post(App $a) {
|
||||||
$body = ((x($_REQUEST,'body')) ? escape_tags(trim($_REQUEST['body'])) : '');
|
$body = ((x($_REQUEST,'body')) ? escape_tags(trim($_REQUEST['body'])) : '');
|
||||||
|
|
||||||
$recipient = (($a->argc > 1) ? notags($a->argv[1]) : '');
|
$recipient = (($a->argc > 1) ? notags($a->argv[1]) : '');
|
||||||
if ((! $recipient) || (! $body)) {
|
if((! $recipient) || (! $body)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ function wallmessage_post(App $a) {
|
||||||
|
|
||||||
$user = $r[0];
|
$user = $r[0];
|
||||||
|
|
||||||
if (! intval($user['unkmail'])) {
|
if(! intval($user['unkmail'])) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -38,7 +38,7 @@ function wallmessage_post(App $a) {
|
||||||
intval($user['uid'])
|
intval($user['uid'])
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($r[0]['total'] > $user['cntunkmail']) {
|
if($r[0]['total'] > $user['cntunkmail']) {
|
||||||
notice( sprintf( t('Number of daily wall messages for %s exceeded. Message failed.', $user['username'])));
|
notice( sprintf( t('Number of daily wall messages for %s exceeded. Message failed.', $user['username'])));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -69,14 +69,14 @@ function wallmessage_post(App $a) {
|
||||||
|
|
||||||
function wallmessage_content(App $a) {
|
function wallmessage_content(App $a) {
|
||||||
|
|
||||||
if (! get_my_url()) {
|
if(! get_my_url()) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$recipient = (($a->argc > 1) ? $a->argv[1] : '');
|
$recipient = (($a->argc > 1) ? $a->argv[1] : '');
|
||||||
|
|
||||||
if (! $recipient) {
|
if(! $recipient) {
|
||||||
notice( t('No recipient.') . EOL);
|
notice( t('No recipient.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -93,19 +93,16 @@ function wallmessage_content(App $a) {
|
||||||
|
|
||||||
$user = $r[0];
|
$user = $r[0];
|
||||||
|
|
||||||
if (! intval($user['unkmail'])) {
|
if(! intval($user['unkmail'])) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT COUNT(*) AS `total` FROM `mail` WHERE `uid` = %d AND `created` > UTC_TIMESTAMP() - INTERVAL 1 DAY AND `unknown` = 1",
|
$r = q("select count(*) as total from mail where uid = %d and created > UTC_TIMESTAMP() - INTERVAL 1 day and unknown = 1",
|
||||||
intval($user['uid'])
|
intval($user['uid'])
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!dbm::is_result($r)) {
|
if($r[0]['total'] > $user['cntunkmail']) {
|
||||||
///@TODO Output message to use of failed query
|
|
||||||
return;
|
|
||||||
} elseif ($r[0]['total'] > $user['cntunkmail']) {
|
|
||||||
notice( sprintf( t('Number of daily wall messages for %s exceeded. Message failed.', $user['username'])));
|
notice( sprintf( t('Number of daily wall messages for %s exceeded. Message failed.', $user['username'])));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ function webfinger_content(App $a) {
|
||||||
|
|
||||||
$o .= '<br /><br />';
|
$o .= '<br /><br />';
|
||||||
|
|
||||||
if (x($_GET,'addr')) {
|
if(x($_GET,'addr')) {
|
||||||
$addr = trim($_GET['addr']);
|
$addr = trim($_GET['addr']);
|
||||||
$res = Probe::lrdd($addr);
|
$res = Probe::lrdd($addr);
|
||||||
$o .= '<pre>';
|
$o .= '<pre>';
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,14 @@ function xrd_init(App $a) {
|
||||||
|
|
||||||
$uri = urldecode(notags(trim($_GET['uri'])));
|
$uri = urldecode(notags(trim($_GET['uri'])));
|
||||||
|
|
||||||
if (substr($uri,0,4) === 'http') {
|
if(substr($uri,0,4) === 'http') {
|
||||||
$acct = false;
|
$acct = false;
|
||||||
$name = basename($uri);
|
$name = basename($uri);
|
||||||
} else {
|
} else {
|
||||||
$acct = true;
|
$acct = true;
|
||||||
$local = str_replace('acct:', '', $uri);
|
$local = str_replace('acct:', '', $uri);
|
||||||
if (substr($local,0,2) == '//') {
|
if(substr($local,0,2) == '//')
|
||||||
$local = substr($local,2);
|
$local = substr($local,2);
|
||||||
}
|
|
||||||
|
|
||||||
$name = substr($local,0,strpos($local,'@'));
|
$name = substr($local,0,strpos($local,'@'));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
if (class_exists('BaseObject')) {
|
if(class_exists('BaseObject'))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
require_once('boot.php');
|
require_once('boot.php');
|
||||||
|
|
||||||
|
|
@ -19,9 +18,8 @@ class BaseObject {
|
||||||
* Same as get_app from boot.php
|
* Same as get_app from boot.php
|
||||||
*/
|
*/
|
||||||
public function get_app() {
|
public function get_app() {
|
||||||
if (self::$app) {
|
if(self::$app)
|
||||||
return self::$app;
|
return self::$app;
|
||||||
}
|
|
||||||
|
|
||||||
self::$app = get_app();
|
self::$app = get_app();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
if (class_exists('Conversation')) {
|
if(class_exists('Conversation'))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
require_once('boot.php');
|
require_once('boot.php');
|
||||||
require_once('object/BaseObject.php');
|
require_once('object/BaseObject.php');
|
||||||
|
|
@ -29,7 +28,7 @@ class Conversation extends BaseObject {
|
||||||
* Set the mode we'll be displayed on
|
* Set the mode we'll be displayed on
|
||||||
*/
|
*/
|
||||||
private function set_mode($mode) {
|
private function set_mode($mode) {
|
||||||
if ($this->get_mode() == $mode)
|
if($this->get_mode() == $mode)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$a = $this->get_app();
|
$a = $this->get_app();
|
||||||
|
|
@ -93,11 +92,11 @@ class Conversation extends BaseObject {
|
||||||
*/
|
*/
|
||||||
public function add_thread($item) {
|
public function add_thread($item) {
|
||||||
$item_id = $item->get_id();
|
$item_id = $item->get_id();
|
||||||
if (!$item_id) {
|
if(!$item_id) {
|
||||||
logger('[ERROR] Conversation::add_thread : Item has no ID!!', LOGGER_DEBUG);
|
logger('[ERROR] Conversation::add_thread : Item has no ID!!', LOGGER_DEBUG);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ($this->get_thread($item->get_id())) {
|
if($this->get_thread($item->get_id())) {
|
||||||
logger('[WARN] Conversation::add_thread : Thread already exists ('. $item->get_id() .').', LOGGER_DEBUG);
|
logger('[WARN] Conversation::add_thread : Thread already exists ('. $item->get_id() .').', LOGGER_DEBUG);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -105,11 +104,11 @@ class Conversation extends BaseObject {
|
||||||
/*
|
/*
|
||||||
* Only add will be displayed
|
* Only add will be displayed
|
||||||
*/
|
*/
|
||||||
if ($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid')) {
|
if($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid')) {
|
||||||
logger('[WARN] Conversation::add_thread : Thread is a mail ('. $item->get_id() .').', LOGGER_DEBUG);
|
logger('[WARN] Conversation::add_thread : Thread is a mail ('. $item->get_id() .').', LOGGER_DEBUG);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ($item->get_data_value('verb') === ACTIVITY_LIKE || $item->get_data_value('verb') === ACTIVITY_DISLIKE) {
|
if($item->get_data_value('verb') === ACTIVITY_LIKE || $item->get_data_value('verb') === ACTIVITY_DISLIKE) {
|
||||||
logger('[WARN] Conversation::add_thread : Thread is a (dis)like ('. $item->get_id() .').', LOGGER_DEBUG);
|
logger('[WARN] Conversation::add_thread : Thread is a (dis)like ('. $item->get_id() .').', LOGGER_DEBUG);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -133,14 +132,13 @@ class Conversation extends BaseObject {
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
foreach ($this->threads as $item) {
|
foreach($this->threads as $item) {
|
||||||
if ($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid')) {
|
if($item->get_data_value('network') === NETWORK_MAIL && local_user() != $item->get_data_value('uid'))
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
$item_data = $item->get_template_data($conv_responses);
|
$item_data = $item->get_template_data($conv_responses);
|
||||||
|
|
||||||
if (!$item_data) {
|
if(!$item_data) {
|
||||||
logger('[ERROR] Conversation::get_template_data : Failed to get item template data ('. $item->get_id() .').', LOGGER_DEBUG);
|
logger('[ERROR] Conversation::get_template_data : Failed to get item template data ('. $item->get_id() .').', LOGGER_DEBUG);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -158,10 +156,9 @@ class Conversation extends BaseObject {
|
||||||
* _ false on failure
|
* _ false on failure
|
||||||
*/
|
*/
|
||||||
private function get_thread($id) {
|
private function get_thread($id) {
|
||||||
foreach ($this->threads as $item) {
|
foreach($this->threads as $item) {
|
||||||
if ($item->get_id() == $id) {
|
if($item->get_id() == $id)
|
||||||
return $item;
|
return $item;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
if (class_exists('Item')) {
|
if(class_exists('Item'))
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
require_once('object/BaseObject.php');
|
require_once('object/BaseObject.php');
|
||||||
require_once('include/text.php');
|
require_once('include/text.php');
|
||||||
|
|
@ -182,19 +181,19 @@ class Item extends BaseObject {
|
||||||
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate));
|
$location = ((strlen($locate['html'])) ? $locate['html'] : render_location_dummy($locate));
|
||||||
|
|
||||||
$searchpath = "search?tag=";
|
$searchpath = "search?tag=";
|
||||||
$tags = array();
|
$tags=array();
|
||||||
$hashtags = array();
|
$hashtags = array();
|
||||||
$mentions = array();
|
$mentions = array();
|
||||||
|
|
||||||
|
|
||||||
/*foreach (explode(',',$item['tag']) as $tag){
|
/*foreach(explode(',',$item['tag']) as $tag){
|
||||||
$tag = trim($tag);
|
$tag = trim($tag);
|
||||||
if ($tag!="") {
|
if ($tag!="") {
|
||||||
$t = bbcode($tag);
|
$t = bbcode($tag);
|
||||||
$tags[] = $t;
|
$tags[] = $t;
|
||||||
if ($t[0] == '#')
|
if($t[0] == '#')
|
||||||
$hashtags[] = $t;
|
$hashtags[] = $t;
|
||||||
elseif ($t[0] == '@')
|
elseif($t[0] == '@')
|
||||||
$mentions[] = $t;
|
$mentions[] = $t;
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
@ -259,7 +258,7 @@ class Item extends BaseObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
$tagger = '';
|
$tagger = '';
|
||||||
if (feature_enabled($conv->get_profile_owner(),'commtag')) {
|
if(feature_enabled($conv->get_profile_owner(),'commtag')) {
|
||||||
$tagger = array(
|
$tagger = array(
|
||||||
'add' => t("add tag"),
|
'add' => t("add tag"),
|
||||||
'class' => "",
|
'class' => "",
|
||||||
|
|
@ -504,7 +503,7 @@ class Item extends BaseObject {
|
||||||
*/
|
*/
|
||||||
protected function set_parent($item) {
|
protected function set_parent($item) {
|
||||||
$parent = $this->get_parent();
|
$parent = $this->get_parent();
|
||||||
if ($parent) {
|
if($parent) {
|
||||||
$parent->remove_child($this);
|
$parent->remove_child($this);
|
||||||
}
|
}
|
||||||
$this->parent = $item;
|
$this->parent = $item;
|
||||||
|
|
@ -735,9 +734,9 @@ class Item extends BaseObject {
|
||||||
$conv = $this->get_conversation();
|
$conv = $this->get_conversation();
|
||||||
$this->wall_to_wall = false;
|
$this->wall_to_wall = false;
|
||||||
|
|
||||||
if ($this->is_toplevel()) {
|
if($this->is_toplevel()) {
|
||||||
if ($conv->get_mode() !== 'profile') {
|
if($conv->get_mode() !== 'profile') {
|
||||||
if ($this->get_data_value('wall') AND !$this->get_data_value('self')) {
|
if($this->get_data_value('wall') AND !$this->get_data_value('self')) {
|
||||||
// On the network page, I am the owner. On the display page it will be the profile owner.
|
// On the network page, I am the owner. On the display page it will be the profile owner.
|
||||||
// This will have been stored in $a->page_contact by our calling page.
|
// This will have been stored in $a->page_contact by our calling page.
|
||||||
// Put this person as the wall owner of the wall-to-wall notice.
|
// Put this person as the wall owner of the wall-to-wall notice.
|
||||||
|
|
@ -746,7 +745,7 @@ class Item extends BaseObject {
|
||||||
$this->owner_photo = $a->page_contact['thumb'];
|
$this->owner_photo = $a->page_contact['thumb'];
|
||||||
$this->owner_name = $a->page_contact['name'];
|
$this->owner_name = $a->page_contact['name'];
|
||||||
$this->wall_to_wall = true;
|
$this->wall_to_wall = true;
|
||||||
} elseif ($this->get_data_value('owner-link')) {
|
} elseif($this->get_data_value('owner-link')) {
|
||||||
|
|
||||||
$owner_linkmatch = (($this->get_data_value('owner-link')) && link_compare($this->get_data_value('owner-link'),$this->get_data_value('author-link')));
|
$owner_linkmatch = (($this->get_data_value('owner-link')) && link_compare($this->get_data_value('owner-link'),$this->get_data_value('author-link')));
|
||||||
$alias_linkmatch = (($this->get_data_value('alias')) && link_compare($this->get_data_value('alias'),$this->get_data_value('author-link')));
|
$alias_linkmatch = (($this->get_data_value('alias')) && link_compare($this->get_data_value('alias'),$this->get_data_value('author-link')));
|
||||||
|
|
|
||||||
|
|
@ -15,8 +15,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
if (($_SERVER["argc"] > 1) && isset($_SERVER["argv"][1])) {
|
if(($_SERVER["argc"] > 1) && isset($_SERVER["argv"][1]))
|
||||||
echo $_SERVER["argv"][1];
|
echo $_SERVER["argv"][1];
|
||||||
} else {
|
else
|
||||||
echo '';
|
echo '';
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -44,23 +44,23 @@ function q($sql) {
|
||||||
$args=func_get_args();
|
$args=func_get_args();
|
||||||
|
|
||||||
//last parameter is always (in this test) uid, so, it should be 11
|
//last parameter is always (in this test) uid, so, it should be 11
|
||||||
if ($args[count($args)-1]!=11) {
|
if($args[count($args)-1]!=11) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (3==count($args)) {
|
if(3==count($args)) {
|
||||||
//first call in handle_body, id only
|
//first call in handle_body, id only
|
||||||
if ($result[0]['id']==$args[1]) {
|
if($result[0]['id']==$args[1]) {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
//second call in handle_body, name
|
//second call in handle_body, name
|
||||||
if ($result[0]['name']===$args[1]) {
|
if($result[0]['name']===$args[1]) {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//third call in handle_body, nick or attag
|
//third call in handle_body, nick or attag
|
||||||
if ($result[0]['nick']===$args[2] || $result[0]['attag']===$args[1]) {
|
if($result[0]['nick']===$args[2] || $result[0]['attag']===$args[1]) {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -108,7 +108,7 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
$inform='';
|
$inform='';
|
||||||
$str_tags='';
|
$str_tags='';
|
||||||
foreach ($tags as $tag) {
|
foreach($tags as $tag) {
|
||||||
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
|
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -197,7 +197,7 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
$inform='';
|
$inform='';
|
||||||
$str_tags='';
|
$str_tags='';
|
||||||
foreach ($tags as $tag) {
|
foreach($tags as $tag) {
|
||||||
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
|
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -257,7 +257,7 @@ class GetTagsTest extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
$inform='';
|
$inform='';
|
||||||
$str_tags='';
|
$str_tags='';
|
||||||
foreach ($tags as $tag) {
|
foreach($tags as $tag) {
|
||||||
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
|
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,19 +13,19 @@ class TemplateMockApp {
|
||||||
public $theme_info=array();
|
public $theme_info=array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!function_exists('current_theme')) {
|
if(!function_exists('current_theme')) {
|
||||||
function current_theme() {
|
function current_theme() {
|
||||||
return 'clean';
|
return 'clean';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!function_exists('x')) {
|
if(!function_exists('x')) {
|
||||||
function x($s,$k = NULL) {
|
function x($s,$k = NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!function_exists('get_app')) {
|
if(!function_exists('get_app')) {
|
||||||
function get_app() {
|
function get_app() {
|
||||||
return new TemplateMockApp();
|
return new TemplateMockApp();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
396
update.php
396
update.php
|
|
@ -37,7 +37,7 @@ define('UPDATE_VERSION' , 1216);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/// @TODO These old updates need to have UPDATE_SUCCESS returned on success?
|
|
||||||
function update_1000() {
|
function update_1000() {
|
||||||
|
|
||||||
q("ALTER TABLE `item` DROP `like`, DROP `dislike` ");
|
q("ALTER TABLE `item` DROP `like`, DROP `dislike` ");
|
||||||
|
|
@ -148,7 +148,7 @@ function update_1014() {
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
$ph = new Photo($rr['data']);
|
$ph = new Photo($rr['data']);
|
||||||
if ($ph->is_valid()) {
|
if($ph->is_valid()) {
|
||||||
$ph->scaleImage(48);
|
$ph->scaleImage(48);
|
||||||
$ph->store($rr['uid'],$rr['contact-id'],$rr['resource-id'],$rr['filename'],$rr['album'],6,(($rr['profile']) ? 1 : 0));
|
$ph->store($rr['uid'],$rr['contact-id'],$rr['resource-id'],$rr['filename'],$rr['album'],6,(($rr['profile']) ? 1 : 0));
|
||||||
}
|
}
|
||||||
|
|
@ -157,15 +157,14 @@ function update_1014() {
|
||||||
$r = q("SELECT * FROM `contact` WHERE 1");
|
$r = q("SELECT * FROM `contact` WHERE 1");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if (stristr($rr['thumb'],'avatar')) {
|
if(stristr($rr['thumb'],'avatar'))
|
||||||
q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d",
|
q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d",
|
||||||
dbesc(str_replace('avatar','micro',$rr['thumb'])),
|
dbesc(str_replace('avatar','micro',$rr['thumb'])),
|
||||||
intval($rr['id']));
|
intval($rr['id']));
|
||||||
} else {
|
else
|
||||||
q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d",
|
q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d",
|
||||||
dbesc(str_replace('5.jpg','6.jpg',$rr['thumb'])),
|
dbesc(str_replace('5.jpg','6.jpg',$rr['thumb'])),
|
||||||
intval($rr['id']));
|
intval($rr['id']));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -309,9 +308,9 @@ function update_1030() {
|
||||||
function update_1031() {
|
function update_1031() {
|
||||||
// Repair any bad links that slipped into the item table
|
// Repair any bad links that slipped into the item table
|
||||||
$r = q("SELECT `id`, `object` FROM `item` WHERE `object` != '' ");
|
$r = q("SELECT `id`, `object` FROM `item` WHERE `object` != '' ");
|
||||||
if (dbm::is_result($r)) {
|
if($r && dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
if (strstr($rr['object'],'type="http')) {
|
if(strstr($rr['object'],'type="http')) {
|
||||||
q("UPDATE `item` SET `object` = '%s' WHERE `id` = %d",
|
q("UPDATE `item` SET `object` = '%s' WHERE `id` = %d",
|
||||||
dbesc(str_replace('type="http','href="http',$rr['object'])),
|
dbesc(str_replace('type="http','href="http',$rr['object'])),
|
||||||
intval($rr['id'])
|
intval($rr['id'])
|
||||||
|
|
@ -369,11 +368,13 @@ function update_1036() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1037() {
|
function update_1037() {
|
||||||
|
|
||||||
q("ALTER TABLE `contact` CHANGE `lrdd` `alias` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
|
q("ALTER TABLE `contact` CHANGE `lrdd` `alias` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1038() {
|
function update_1038() {
|
||||||
q("ALTER TABLE `item` ADD `plink` CHAR( 255 ) NOT NULL AFTER `target` ");
|
q("ALTER TABLE `item` ADD `plink` CHAR( 255 ) NOT NULL AFTER `target` ");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1039() {
|
function update_1039() {
|
||||||
|
|
@ -530,12 +531,9 @@ function update_1065() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1066() {
|
function update_1066() {
|
||||||
$r = q("ALTER TABLE `item` ADD `received` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `edited` ");
|
$r = q("ALTER TABLE `item` ADD `received` DATETIME NOT NULL DEFAULT '0001-01-01 00:00:00' AFTER `edited` ");
|
||||||
|
if($r)
|
||||||
/// @TODO Decide to use dbm::is_result() here, what does $r include?
|
|
||||||
if ($r) {
|
|
||||||
q("ALTER TABLE `item` ADD INDEX ( `received` ) ");
|
q("ALTER TABLE `item` ADD INDEX ( `received` ) ");
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("UPDATE `item` SET `received` = `edited` WHERE 1");
|
$r = q("UPDATE `item` SET `received` = `edited` WHERE 1");
|
||||||
}
|
}
|
||||||
|
|
@ -597,11 +595,10 @@ function update_1074() {
|
||||||
q("ALTER TABLE `user` ADD `hidewall` TINYINT( 1) NOT NULL DEFAULT '0' AFTER `blockwall` ");
|
q("ALTER TABLE `user` ADD `hidewall` TINYINT( 1) NOT NULL DEFAULT '0' AFTER `blockwall` ");
|
||||||
$r = q("SELECT `uid` FROM `profile` WHERE `is-default` = 1 AND `hidewall` = 1");
|
$r = q("SELECT `uid` FROM `profile` WHERE `is-default` = 1 AND `hidewall` = 1");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
q("UPDATE `user` SET `hidewall` = 1 WHERE `uid` = %d",
|
q("UPDATE `user` SET `hidewall` = 1 WHERE `uid` = %d",
|
||||||
intval($rr['uid'])
|
intval($rr['uid'])
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
q("ALTER TABLE `profile` DROP `hidewall`");
|
q("ALTER TABLE `profile` DROP `hidewall`");
|
||||||
}
|
}
|
||||||
|
|
@ -617,9 +614,8 @@ function update_1075() {
|
||||||
$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 (!dbm::is_result($x)) {
|
if(! count($x))
|
||||||
$found = false;
|
$found = false;
|
||||||
}
|
|
||||||
} while ($found == true );
|
} while ($found == true );
|
||||||
|
|
||||||
q("UPDATE `user` SET `guid` = '%s' WHERE `uid` = %d",
|
q("UPDATE `user` SET `guid` = '%s' WHERE `uid` = %d",
|
||||||
|
|
@ -688,19 +684,14 @@ function update_1082() {
|
||||||
q("ALTER TABLE `photo` ADD `guid` CHAR( 64 ) NOT NULL AFTER `contact-id`,
|
q("ALTER TABLE `photo` ADD `guid` CHAR( 64 ) NOT NULL AFTER `contact-id`,
|
||||||
ADD INDEX ( `guid` ) ");
|
ADD INDEX ( `guid` ) ");
|
||||||
// make certain the following code is only executed once
|
// make certain the following code is only executed once
|
||||||
|
$r = q("select `id` from `photo` where `guid` != '' limit 1");
|
||||||
$r = q("SELECT `id` FROM `photo` WHERE `guid` != '' LIMIT 1");
|
if (dbm::is_result($r))
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
$r = q("SELECT distinct(`resource-id`) FROM `photo` WHERE 1 group by `id`");
|
$r = q("SELECT distinct(`resource-id`) FROM `photo` WHERE 1 group by `id`");
|
||||||
|
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
$guid = get_guid();
|
$guid = get_guid();
|
||||||
q("UPDATE `photo` SET `guid` = '%s' WHERE `resource-id` = '%s'",
|
q("update `photo` set `guid` = '%s' where `resource-id` = '%s'",
|
||||||
dbesc($guid),
|
dbesc($guid),
|
||||||
dbesc($rr['resource-id'])
|
dbesc($rr['resource-id'])
|
||||||
);
|
);
|
||||||
|
|
@ -745,13 +736,11 @@ function update_1087() {
|
||||||
$x = q("SELECT max(`created`) AS `cdate` FROM `item` WHERE `parent` = %d LIMIT 1",
|
$x = q("SELECT max(`created`) AS `cdate` FROM `item` WHERE `parent` = %d LIMIT 1",
|
||||||
intval($rr['id'])
|
intval($rr['id'])
|
||||||
);
|
);
|
||||||
|
if(count($x))
|
||||||
if (dbm::is_result($x)) {
|
|
||||||
q("UPDATE `item` SET `commented` = '%s' WHERE `id` = %d",
|
q("UPDATE `item` SET `commented` = '%s' WHERE `id` = %d",
|
||||||
dbesc($x[0]['cdate']),
|
dbesc($x[0]['cdate']),
|
||||||
intval($rr['id'])
|
intval($rr['id'])
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -860,14 +849,14 @@ function update_1099() {
|
||||||
|
|
||||||
function update_1100() {
|
function update_1100() {
|
||||||
q("ALTER TABLE `contact` ADD `nurl` CHAR( 255 ) NOT NULL AFTER `url` ");
|
q("ALTER TABLE `contact` ADD `nurl` CHAR( 255 ) NOT NULL AFTER `url` ");
|
||||||
q("ALTER TABLE `contact` ADD INDEX (`nurl`) ");
|
q("alter table contact add index (`nurl`) ");
|
||||||
|
|
||||||
require_once('include/text.php');
|
require_once('include/text.php');
|
||||||
|
|
||||||
$r = q("SELECT `id`, `url` FROM `contact` WHERE `url` != '' AND `nurl` = '' ");
|
$r = q("select id, url from contact where url != '' and nurl = '' ");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
q("UPDATE `contact` SET `nurl` = '%s' WHERE `id` = %d",
|
q("update contact set nurl = '%s' where id = %d",
|
||||||
dbesc(normalise_link($rr['url'])),
|
dbesc(normalise_link($rr['url'])),
|
||||||
intval($rr['id'])
|
intval($rr['id'])
|
||||||
);
|
);
|
||||||
|
|
@ -897,7 +886,6 @@ function update_1102() {
|
||||||
|
|
||||||
|
|
||||||
function update_1103() {
|
function update_1103() {
|
||||||
/// @TODO Commented out:
|
|
||||||
// q("ALTER TABLE `item` ADD INDEX ( `wall` ) ");
|
// q("ALTER TABLE `item` ADD INDEX ( `wall` ) ");
|
||||||
q("ALTER TABLE `item` ADD FULLTEXT ( `tag` ) ");
|
q("ALTER TABLE `item` ADD FULLTEXT ( `tag` ) ");
|
||||||
q("ALTER TABLE `contact` ADD INDEX ( `pending` ) ");
|
q("ALTER TABLE `contact` ADD INDEX ( `pending` ) ");
|
||||||
|
|
@ -1043,11 +1031,9 @@ function update_1120() {
|
||||||
|
|
||||||
$r = q("describe item");
|
$r = q("describe item");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach($r as $rr)
|
||||||
if ($rr['Field'] == 'spam') {
|
if($rr['Field'] == 'spam')
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
q("ALTER TABLE `item` ADD `spam` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `visible` , ADD INDEX (`spam`) ");
|
q("ALTER TABLE `item` ADD `spam` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `visible` , ADD INDEX (`spam`) ");
|
||||||
|
|
||||||
|
|
@ -1081,16 +1067,16 @@ function update_1121() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1122() {
|
function update_1122() {
|
||||||
q("ALTER TABLE `notify` ADD `hash` CHAR( 64 ) NOT NULL AFTER `id` ,
|
q("ALTER TABLE `notify` ADD `hash` CHAR( 64 ) NOT NULL AFTER `id` ,
|
||||||
ADD INDEX ( `hash` ) ");
|
ADD INDEX ( `hash` ) ");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1123() {
|
function update_1123() {
|
||||||
set_config('system','allowed_themes','dispy,quattro,testbubble,vier,darkbubble,darkzero,duepuntozero,greenzero,purplezero,quattro-green,slackr');
|
set_config('system','allowed_themes','dispy,quattro,testbubble,vier,darkbubble,darkzero,duepuntozero,greenzero,purplezero,quattro-green,slackr');
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1124() {
|
function update_1124() {
|
||||||
q("ALTER TABLE `item` ADD INDEX (`author-name`) ");
|
q("alter table item add index (`author-name`) ");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1125() {
|
function update_1125() {
|
||||||
|
|
@ -1102,7 +1088,7 @@ function update_1125() {
|
||||||
`receiver-uid` INT NOT NULL,
|
`receiver-uid` INT NOT NULL,
|
||||||
INDEX ( `master-parent-item` ),
|
INDEX ( `master-parent-item` ),
|
||||||
INDEX ( `receiver-uid` )
|
INDEX ( `receiver-uid` )
|
||||||
) DEFAULT CHARSET=utf8");
|
) ENGINE = MyISAM DEFAULT CHARSET=utf8");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1126() {
|
function update_1126() {
|
||||||
|
|
@ -1121,12 +1107,12 @@ function update_1127() {
|
||||||
INDEX ( `spam` ),
|
INDEX ( `spam` ),
|
||||||
INDEX ( `ham` ),
|
INDEX ( `ham` ),
|
||||||
INDEX ( `term` )
|
INDEX ( `term` )
|
||||||
) DEFAULT CHARSET=utf8");
|
) ENGINE = MyISAM DEFAULT CHARSET=utf8");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function update_1128() {
|
function update_1128() {
|
||||||
q("ALTER TABLE `spam` ADD `date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `term` ");
|
q("alter table spam add `date` DATETIME NOT NULL DEFAULT '0001-01-01 00:00:00' AFTER `term` ");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1129() {
|
function update_1129() {
|
||||||
|
|
@ -1147,14 +1133,14 @@ function update_1132() {
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||||
`username` CHAR( 255 ) NOT NULL,
|
`username` CHAR( 255 ) NOT NULL,
|
||||||
INDEX ( `username` )
|
INDEX ( `username` )
|
||||||
) ");
|
) ENGINE = MYISAM ");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1133() {
|
function update_1133() {
|
||||||
q("ALTER TABLE `user` ADD `unkmail` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `blocktags` , ADD INDEX ( `unkmail` ) ");
|
q("ALTER TABLE `user` ADD `unkmail` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `blocktags` , ADD INDEX ( `unkmail` ) ");
|
||||||
q("ALTER TABLE `user` ADD `cntunkmail` INT NOT NULL DEFAULT '10' AFTER `unkmail` , ADD INDEX ( `cntunkmail` ) ");
|
q("ALTER TABLE `user` ADD `cntunkmail` INT NOT NULL DEFAULT '10' AFTER `unkmail` , ADD INDEX ( `cntunkmail` ) ");
|
||||||
q("ALTER TABLE `mail` ADD `unknown` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `replied` , ADD INDEX ( `unknown` ) ");
|
q("ALTER TABLE `mail` ADD `unknown` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `replied` , ADD INDEX ( `unknown` ) ");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1134() {
|
function update_1134() {
|
||||||
|
|
@ -1181,38 +1167,38 @@ function update_1136() {
|
||||||
|
|
||||||
// order in reverse so that we save the newest entry
|
// order in reverse so that we save the newest entry
|
||||||
|
|
||||||
$r = q("SELECT * FROM `config` WHERE 1 ORDER BY `id` DESC");
|
$r = q("select * from config where 1 order by id desc");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
$found = false;
|
$found = false;
|
||||||
foreach ($arr as $x) {
|
foreach($arr as $x) {
|
||||||
if ($x['cat'] == $rr['cat'] && $x['k'] == $rr['k']) {
|
if($x['cat'] == $rr['cat'] && $x['k'] == $rr['k']) {
|
||||||
$found = true;
|
$found = true;
|
||||||
q("DELETE FROM `config` WHERE `id` = %d",
|
q("delete from config where id = %d",
|
||||||
intval($rr['id'])
|
intval($rr['id'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $found) {
|
if(! $found) {
|
||||||
$arr[] = $rr;
|
$arr[] = $rr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$arr = array();
|
$arr = array();
|
||||||
$r = q("SELECT * FROM `pconfig` WHERE 1 ORDER BY `id` DESC");
|
$r = q("select * from pconfig where 1 order by id desc");
|
||||||
if (dbm::is_result($r)) {
|
if (dbm::is_result($r)) {
|
||||||
foreach ($r as $rr) {
|
foreach ($r as $rr) {
|
||||||
$found = false;
|
$found = false;
|
||||||
foreach ($arr as $x) {
|
foreach($arr as $x) {
|
||||||
if ($x['uid'] == $rr['uid'] && $x['cat'] == $rr['cat'] && $x['k'] == $rr['k']) {
|
if($x['uid'] == $rr['uid'] && $x['cat'] == $rr['cat'] && $x['k'] == $rr['k']) {
|
||||||
$found = true;
|
$found = true;
|
||||||
q("DELETE FROM `pconfig` WHERE `id` = %d",
|
q("delete from pconfig where id = %d",
|
||||||
intval($rr['id'])
|
intval($rr['id'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! $found) {
|
if(! $found) {
|
||||||
$arr[] = $rr;
|
$arr[] = $rr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1224,153 +1210,114 @@ function update_1136() {
|
||||||
|
|
||||||
|
|
||||||
function update_1137() {
|
function update_1137() {
|
||||||
q("ALTER TABLE `item_id` DROP `face` , DROP `dspr` , DROP `twit` , DROP `stat` ");
|
q("alter table item_id DROP `face` , DROP `dspr` , DROP `twit` , DROP `stat` ");
|
||||||
q("ALTER TABLE `item_id` ADD `sid` CHAR( 255 ) NOT NULL AFTER `uid` , ADD `service` CHAR( 255 ) NOT NULL AFTER `sid` , ADD INDEX (`sid`), ADD INDEX ( `service`) ");
|
q("ALTER TABLE `item_id` ADD `sid` CHAR( 255 ) NOT NULL AFTER `uid` , ADD `service` CHAR( 255 ) NOT NULL AFTER `sid` , add index (`sid`), add index ( `service`) ");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1138() {
|
function update_1138() {
|
||||||
q("ALTER TABLE `contact` ADD `archive` TINYINT(1) NOT NULL DEFAULT '0' AFTER `hidden`, ADD INDEX (`archive`)");
|
q("alter table contact add archive tinyint(1) not null default '0' after hidden, add index (archive)");
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1139() {
|
function update_1139() {
|
||||||
$r = q("ALTER TABLE `user` ADD `account_removed` TINYINT(1) NOT NULL DEFAULT '0' AFTER `expire`, ADD INDEX(`account_removed`)");
|
$r = q("alter table user add account_removed tinyint(1) not null default '0' after expire, add index(account_removed) ");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1140() {
|
function update_1140() {
|
||||||
$r = q("ALTER TABLE `addon` ADD `hidden` TINYINT(1) NOT NULL DEFAULT '0' AFTER `installed`, ADD INDEX(`hidden`) ");
|
$r = q("alter table addon add hidden tinyint(1) not null default '0' after installed, add index(hidden) ");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1141() {
|
function update_1141() {
|
||||||
$r = q("ALTER TABLE `glink` ADD `zcid` INT(11) NOT NULL AFTER `gcid`, ADD INDEX(`zcid`) ");
|
$r = q("alter table glink add zcid int(11) not null after gcid, add index(zcid) ");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function update_1142() {
|
function update_1142() {
|
||||||
$r = q("ALTER TABLE `user` ADD `service_class` CHAR(32) NOT NULL AFTER `expire_notification_sent`, ADD INDEX(`service_class`) ");
|
$r = q("alter table user add service_class char(32) not null after expire_notification_sent, add index(service_class) ");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1143() {
|
function update_1143() {
|
||||||
$r = q("ALTER TABLE `user` ADD `def_gid` INT(11) NOT NULL DEFAULT '0' AFTER `service_class`");
|
$r = q("alter table user add def_gid int(11) not null default '0' after service_class");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1144() {
|
function update_1144() {
|
||||||
$r = q("ALTER TABLE `contact` ADD `prv` TINYINT(1) NOT NULL DEFAULT '0' AFTER `forum`");
|
$r = q("alter table contact add prv tinyint(1) not null default '0' after forum");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1145() {
|
function update_1145() {
|
||||||
$r = q("ALTER TABLE `profile` ADD `howlong` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `with`");
|
$r = q("alter table profile add howlong datetime not null default '0001-01-01 00:00:00' after `with`");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1146() {
|
function update_1146() {
|
||||||
$r = q("ALTER TABLE `profile` ADD `hometown` CHAR(255) NOT NULL AFTER `country-name`, ADD INDEX ( `hometown` ) ");
|
$r = q("alter table profile add hometown char(255) not null after `country-name`, add index ( `hometown` ) ");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1147() {
|
function update_1147() {
|
||||||
$r1 = q("ALTER TABLE `sign` ALTER `iid` SET DEFAULT '0'");
|
$r1 = q("ALTER TABLE `sign` ALTER `iid` SET DEFAULT '0'");
|
||||||
$r2 = q("ALTER TABLE `sign` ADD `retract_iid` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `iid`");
|
$r2 = q("ALTER TABLE `sign` ADD `retract_iid` INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `iid`");
|
||||||
$r3 = q("ALTER TABLE `sign` ADD INDEX ( `retract_iid` )");
|
$r3 = q("ALTER TABLE `sign` ADD INDEX ( `retract_iid` )");
|
||||||
|
if((! $r1) || (! $r2) || (! $r3))
|
||||||
if ($r1 && $r2 && $r3) {
|
return UPDATE_FAILED ;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS ;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1148() {
|
function update_1148() {
|
||||||
$r = q("ALTER TABLE `photo` ADD `type` CHAR(128) NOT NULL DEFAULT 'image/jpeg' AFTER `filename`");
|
$r = q("ALTER TABLE photo ADD type CHAR(128) NOT NULL DEFAULT 'image/jpeg' AFTER filename");
|
||||||
|
if (!$r)
|
||||||
if ($r) {
|
return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function update_1149() {
|
function update_1149() {
|
||||||
$r1 = q("ALTER TABLE `profile` ADD `likes` TEXT NOT NULL AFTER `prv_keywords`");
|
$r1 = q("ALTER TABLE profile ADD likes text NOT NULL after prv_keywords");
|
||||||
$r2 = q("ALTER TABLE `profile` ADD `dislikes` TEXT NOT NULL AFTER `likes`");
|
$r2 = q("ALTER TABLE profile ADD dislikes text NOT NULL after likes");
|
||||||
|
if (! ($r1 && $r2))
|
||||||
if ($r1 && $r2) {
|
return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function update_1150() {
|
function update_1150() {
|
||||||
$r = q("ALTER TABLE `event` ADD `summary` TEXT NOT NULL AFTER `finish`, ADD INDEX ( `uid` ), ADD INDEX ( `cid` ), ADD INDEX ( `uri` ), ADD INDEX ( `start` ), ADD INDEX ( `finish` ), ADD INDEX ( `type` ), ADD INDEX ( `adjust` ) ");
|
$r = q("ALTER TABLE event ADD summary text NOT NULL after finish, add index ( uid ), add index ( cid ), add index ( uri ), add index ( `start` ), add index ( finish ), add index ( `type` ), add index ( adjust ) ");
|
||||||
|
if(! $r)
|
||||||
if ($r) {
|
return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function update_1151() {
|
function update_1151() {
|
||||||
$r = q("CREATE TABLE IF NOT EXISTS `locks` (
|
$r = q("CREATE TABLE IF NOT EXISTS locks (
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||||
`name` CHAR( 128 ) NOT NULL ,
|
name CHAR( 128 ) NOT NULL ,
|
||||||
`locked` TINYINT( 1 ) NOT NULL DEFAULT '0'
|
locked TINYINT( 1 ) NOT NULL DEFAULT '0'
|
||||||
) DEFAULT CHARSET=utf8 ");
|
) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
|
||||||
|
if (!$r)
|
||||||
if ($r) {
|
return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS ;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1152() {
|
function update_1152() {
|
||||||
|
|
@ -1385,33 +1332,24 @@ function update_1152() {
|
||||||
KEY `otype` ( `otype` ),
|
KEY `otype` ( `otype` ),
|
||||||
KEY `type` ( `type` ),
|
KEY `type` ( `type` ),
|
||||||
KEY `term` ( `term` )
|
KEY `term` ( `term` )
|
||||||
) DEFAULT CHARSET=utf8 ");
|
) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
|
||||||
|
if (!$r)
|
||||||
if ($r) {
|
return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1153() {
|
function update_1153() {
|
||||||
$r = q("ALTER TABLE `hook` ADD `priority` INT(11) UNSIGNED NOT NULL DEFAULT '0'");
|
$r = q("ALTER TABLE `hook` ADD `priority` INT(11) UNSIGNED NOT NULL DEFAULT '0'");
|
||||||
|
|
||||||
if ($r) {
|
if(!$r) return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1154() {
|
function update_1154() {
|
||||||
$r = q("ALTER TABLE `event` ADD `ignore` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `adjust` , ADD INDEX ( `ignore` )");
|
$r = q("ALTER TABLE `event` ADD `ignore` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `adjust` , ADD INDEX ( `ignore` )");
|
||||||
|
|
||||||
if ($r) {
|
if(!$r) return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1155() {
|
function update_1155() {
|
||||||
|
|
@ -1419,9 +1357,8 @@ function update_1155() {
|
||||||
$r2 = q("ALTER TABLE `item_id` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST");
|
$r2 = q("ALTER TABLE `item_id` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST");
|
||||||
$r3 = q("ALTER TABLE `item_id` ADD INDEX ( `iid` ) ");
|
$r3 = q("ALTER TABLE `item_id` ADD INDEX ( `iid` ) ");
|
||||||
|
|
||||||
if ($r1 && $r2 && $r3) {
|
if($r1 && $r2 && $r3)
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
return UPDATE_FAILED;
|
||||||
}
|
}
|
||||||
|
|
@ -1430,15 +1367,12 @@ function update_1156() {
|
||||||
$r = q("ALTER TABLE `photo` ADD `datasize` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `width` ,
|
$r = q("ALTER TABLE `photo` ADD `datasize` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `width` ,
|
||||||
ADD INDEX ( `datasize` ) ");
|
ADD INDEX ( `datasize` ) ");
|
||||||
|
|
||||||
if ($r) {
|
if(!$r) return UPDATE_FAILED;
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1157() {
|
function update_1157() {
|
||||||
$r = q("CREATE TABLE IF NOT EXISTS `dsprphotoq` (
|
$r = q("CREATE TABLE IF NOT EXISTS `dsprphotoq` (
|
||||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`uid` int(11) NOT NULL,
|
`uid` int(11) NOT NULL,
|
||||||
`msg` mediumtext NOT NULL,
|
`msg` mediumtext NOT NULL,
|
||||||
|
|
@ -1447,11 +1381,8 @@ function update_1157() {
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8"
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8"
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($r) {
|
if($r)
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1158() {
|
function update_1158() {
|
||||||
|
|
@ -1464,9 +1395,8 @@ function update_1158() {
|
||||||
$r = q("CREATE INDEX event_id ON item(`event-id`)");
|
$r = q("CREATE INDEX event_id ON item(`event-id`)");
|
||||||
set_config('system', 'maintenance', 0);
|
set_config('system', 'maintenance', 0);
|
||||||
|
|
||||||
if ($r) {
|
if($r)
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_SUCCESS;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
return UPDATE_FAILED;
|
||||||
}
|
}
|
||||||
|
|
@ -1477,11 +1407,10 @@ function update_1159() {
|
||||||
ADD INDEX (`uid`),
|
ADD INDEX (`uid`),
|
||||||
ADD INDEX (`aid`)");
|
ADD INDEX (`aid`)");
|
||||||
|
|
||||||
if ($r) {
|
if(!$r)
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_FAILED;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
return UPDATE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1160() {
|
function update_1160() {
|
||||||
|
|
@ -1494,21 +1423,19 @@ function update_1160() {
|
||||||
$r = q("ALTER TABLE `item` ADD `mention` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX (`mention`)");
|
$r = q("ALTER TABLE `item` ADD `mention` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX (`mention`)");
|
||||||
set_config('system', 'maintenance', 0);
|
set_config('system', 'maintenance', 0);
|
||||||
|
|
||||||
if ($r) {
|
if(!$r)
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_FAILED;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
return UPDATE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1161() {
|
function update_1161() {
|
||||||
$r = q("ALTER TABLE `pconfig` ADD INDEX (`cat`)");
|
$r = q("ALTER TABLE `pconfig` ADD INDEX (`cat`)");
|
||||||
|
|
||||||
if ($r) {
|
if(!$r)
|
||||||
return UPDATE_SUCCESS;
|
return UPDATE_FAILED;
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
return UPDATE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1162() {
|
function update_1162() {
|
||||||
|
|
@ -1524,12 +1451,10 @@ function update_1163() {
|
||||||
$r = q("ALTER TABLE `item` ADD `network` char(32) NOT NULL");
|
$r = q("ALTER TABLE `item` ADD `network` char(32) NOT NULL");
|
||||||
|
|
||||||
set_config('system', 'maintenance', 0);
|
set_config('system', 'maintenance', 0);
|
||||||
|
if(!$r)
|
||||||
|
return UPDATE_FAILED;
|
||||||
|
|
||||||
if ($r) {
|
return UPDATE_SUCCESS;
|
||||||
return UPDATE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
function update_1164() {
|
function update_1164() {
|
||||||
set_config('system', 'maintenance', 1);
|
set_config('system', 'maintenance', 1);
|
||||||
|
|
@ -1586,21 +1511,19 @@ function update_1164() {
|
||||||
|
|
||||||
function update_1165() {
|
function update_1165() {
|
||||||
$r = q("CREATE TABLE IF NOT EXISTS `push_subscriber` (
|
$r = q("CREATE TABLE IF NOT EXISTS `push_subscriber` (
|
||||||
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
`uid` INT NOT NULL,
|
`uid` INT NOT NULL,
|
||||||
`callback_url` CHAR( 255 ) NOT NULL,
|
`callback_url` CHAR( 255 ) NOT NULL,
|
||||||
`topic` CHAR( 255 ) NOT NULL,
|
`topic` CHAR( 255 ) NOT NULL,
|
||||||
`nickname` CHAR( 255 ) NOT NULL,
|
`nickname` CHAR( 255 ) NOT NULL,
|
||||||
`push` INT NOT NULL,
|
`push` INT NOT NULL,
|
||||||
`last_update` DATETIME NOT NULL,
|
`last_update` DATETIME NOT NULL,
|
||||||
`secret` CHAR( 255 ) NOT NULL
|
`secret` CHAR( 255 ) NOT NULL
|
||||||
) DEFAULT CHARSET=utf8 ");
|
) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
|
||||||
|
if (!$r)
|
||||||
|
return UPDATE_FAILED;
|
||||||
|
|
||||||
if ($r) {
|
return UPDATE_SUCCESS;
|
||||||
return UPDATE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1166() {
|
function update_1166() {
|
||||||
|
|
@ -1611,33 +1534,27 @@ function update_1166() {
|
||||||
`name` CHAR(255) NOT NULL,
|
`name` CHAR(255) NOT NULL,
|
||||||
`avatar` CHAR(255) NOT NULL,
|
`avatar` CHAR(255) NOT NULL,
|
||||||
INDEX (`url`)
|
INDEX (`url`)
|
||||||
) DEFAULT CHARSET=utf8 ");
|
) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
|
||||||
|
if (!$r)
|
||||||
|
return UPDATE_FAILED;
|
||||||
|
|
||||||
if ($r) {
|
return UPDATE_SUCCESS;
|
||||||
return UPDATE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1167() {
|
function update_1167() {
|
||||||
$r = q("ALTER TABLE `contact` ADD `notify_new_posts` TINYINT(1) NOT NULL DEFAULT '0'");
|
$r = q("ALTER TABLE `contact` ADD `notify_new_posts` TINYINT(1) NOT NULL DEFAULT '0'");
|
||||||
|
if (!$r)
|
||||||
|
return UPDATE_FAILED;
|
||||||
|
|
||||||
if ($r) {
|
return UPDATE_SUCCESS;
|
||||||
return UPDATE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1168() {
|
function update_1168() {
|
||||||
$r = q("ALTER TABLE `contact` ADD `fetch_further_information` TINYINT(1) NOT NULL DEFAULT '0'");
|
$r = q("ALTER TABLE `contact` ADD `fetch_further_information` TINYINT(1) NOT NULL DEFAULT '0'");
|
||||||
|
if (!$r)
|
||||||
|
return UPDATE_FAILED;
|
||||||
|
|
||||||
if ($r) {
|
return UPDATE_SUCCESS;
|
||||||
return UPDATE_SUCCESS ;
|
|
||||||
}
|
|
||||||
|
|
||||||
return UPDATE_FAILED ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_1169() {
|
function update_1169() {
|
||||||
|
|
@ -1675,10 +1592,8 @@ function update_1169() {
|
||||||
KEY `uid_created` (`uid`,`created`),
|
KEY `uid_created` (`uid`,`created`),
|
||||||
KEY `uid_commented` (`uid`,`commented`)
|
KEY `uid_commented` (`uid`,`commented`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
|
||||||
|
if (!$r)
|
||||||
if (!$r) {
|
|
||||||
return UPDATE_FAILED;
|
return UPDATE_FAILED;
|
||||||
}
|
|
||||||
|
|
||||||
proc_run(PRIORITY_LOW, "include/threadupdate.php");
|
proc_run(PRIORITY_LOW, "include/threadupdate.php");
|
||||||
|
|
||||||
|
|
@ -1756,7 +1671,7 @@ function update_1190() {
|
||||||
$plugins = get_config('system','addon');
|
$plugins = get_config('system','addon');
|
||||||
$plugins_arr = array();
|
$plugins_arr = array();
|
||||||
|
|
||||||
if ($plugins) {
|
if($plugins) {
|
||||||
$plugins_arr = explode(",",str_replace(" ", "",$plugins));
|
$plugins_arr = explode(",",str_replace(" ", "",$plugins));
|
||||||
|
|
||||||
$idx = array_search($plugin, $plugins_arr);
|
$idx = array_search($plugin, $plugins_arr);
|
||||||
|
|
@ -1784,22 +1699,19 @@ function update_1190() {
|
||||||
$key = $rr['k'];
|
$key = $rr['k'];
|
||||||
$value = $rr['v'];
|
$value = $rr['v'];
|
||||||
|
|
||||||
if ($key === 'randomise') {
|
if ($key === 'randomise')
|
||||||
del_pconfig($uid,$family,$key);
|
del_pconfig($uid,$family,$key);
|
||||||
}
|
|
||||||
|
|
||||||
if ($key === 'show_on_profile') {
|
if ($key === 'show_on_profile') {
|
||||||
if ($value) {
|
if ($value)
|
||||||
set_pconfig($uid,feature,forumlist_profile,$value);
|
set_pconfig($uid,feature,forumlist_profile,$value);
|
||||||
}
|
|
||||||
|
|
||||||
del_pconfig($uid,$family,$key);
|
del_pconfig($uid,$family,$key);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($key === 'show_on_network') {
|
if ($key === 'show_on_network') {
|
||||||
if ($value) {
|
if ($value)
|
||||||
set_pconfig($uid,feature,forumlist_widget,$value);
|
set_pconfig($uid,feature,forumlist_widget,$value);
|
||||||
}
|
|
||||||
|
|
||||||
del_pconfig($uid,$family,$key);
|
del_pconfig($uid,$family,$key);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ echo "Old DB VERSION: " . $build . "\n";
|
||||||
echo "New DB VERSION: " . DB_UPDATE_VERSION . "\n";
|
echo "New DB VERSION: " . DB_UPDATE_VERSION . "\n";
|
||||||
|
|
||||||
|
|
||||||
if ($build != DB_UPDATE_VERSION) {
|
if($build != DB_UPDATE_VERSION) {
|
||||||
echo "Updating database...";
|
echo "Updating database...";
|
||||||
check_db($a);
|
check_db($a);
|
||||||
echo "Done\n";
|
echo "Done\n";
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
*/
|
*/
|
||||||
function namesList($fileset) {
|
function namesList($fileset) {
|
||||||
$fsparam="";
|
$fsparam="";
|
||||||
foreach ($fileset as $file) {
|
foreach($fileset as $file) {
|
||||||
$fsparam=$fsparam.",".$file;
|
$fsparam=$fsparam.",".$file;
|
||||||
}
|
}
|
||||||
return $fsparam;
|
return $fsparam;
|
||||||
|
|
@ -50,7 +50,7 @@ function namesList($fileset) {
|
||||||
function runs($fileset) {
|
function runs($fileset) {
|
||||||
$fsParam=namesList($fileset);
|
$fsParam=namesList($fileset);
|
||||||
exec('docblox -t phpdoc_out -f '.$fsParam);
|
exec('docblox -t phpdoc_out -f '.$fsParam);
|
||||||
if (file_exists("phpdoc_out/index.html")) {
|
if(file_exists("phpdoc_out/index.html")) {
|
||||||
echo "\n Subset ".$fsParam." is okay. \n";
|
echo "\n Subset ".$fsParam." is okay. \n";
|
||||||
exec('rm -r phpdoc_out');
|
exec('rm -r phpdoc_out');
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -79,7 +79,7 @@ function reduce($fileset, $ps) {
|
||||||
//filter working subsets...
|
//filter working subsets...
|
||||||
$parts=array_filter($parts, "runs");
|
$parts=array_filter($parts, "runs");
|
||||||
//melt remaining parts together
|
//melt remaining parts together
|
||||||
if (is_array($parts)) {
|
if(is_array($parts)) {
|
||||||
return array_reduce($parts, "array_merge", array());
|
return array_reduce($parts, "array_merge", array());
|
||||||
}
|
}
|
||||||
return array();
|
return array();
|
||||||
|
|
@ -94,17 +94,17 @@ $dirstack=array();
|
||||||
$filelist=array();
|
$filelist=array();
|
||||||
|
|
||||||
//loop over all files in $dir
|
//loop over all files in $dir
|
||||||
while ($dh=opendir($dir)) {
|
while($dh=opendir($dir)) {
|
||||||
while ($file=readdir($dh)) {
|
while($file=readdir($dh)) {
|
||||||
if (is_dir($dir."/".$file)) {
|
if(is_dir($dir."/".$file)) {
|
||||||
//add to directory stack
|
//add to directory stack
|
||||||
if ($file!=".." && $file!=".") {
|
if($file!=".." && $file!=".") {
|
||||||
array_push($dirstack, $dir."/".$file);
|
array_push($dirstack, $dir."/".$file);
|
||||||
echo "dir ".$dir."/".$file."\n";
|
echo "dir ".$dir."/".$file."\n";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//test if it is a source file and add to filelist
|
//test if it is a source file and add to filelist
|
||||||
if (substr($file, strlen($file)-4)==".php") {
|
if(substr($file, strlen($file)-4)==".php") {
|
||||||
array_push($filelist, $dir."/".$file);
|
array_push($filelist, $dir."/".$file);
|
||||||
echo $dir."/".$file."\n";
|
echo $dir."/".$file."\n";
|
||||||
}
|
}
|
||||||
|
|
@ -115,7 +115,7 @@ while ($dh=opendir($dir)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//check the entire set
|
//check the entire set
|
||||||
if (runs($filelist)) {
|
if(runs($filelist)) {
|
||||||
echo "I can not detect a problem. \n";
|
echo "I can not detect a problem. \n";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
@ -128,15 +128,15 @@ do {
|
||||||
echo $i."/".count($fileset)." elements remaining. \n";
|
echo $i."/".count($fileset)." elements remaining. \n";
|
||||||
$res=reduce($res, count($res)/2);
|
$res=reduce($res, count($res)/2);
|
||||||
shuffle($res);
|
shuffle($res);
|
||||||
} while (count($res)<$i);
|
} while(count($res)<$i);
|
||||||
|
|
||||||
//check one file after another
|
//check one file after another
|
||||||
$needed=array();
|
$needed=array();
|
||||||
|
|
||||||
while (count($res)!=0) {
|
while(count($res)!=0) {
|
||||||
$file=array_pop($res);
|
$file=array_pop($res);
|
||||||
|
|
||||||
if (runs(array_merge($res, $needed))) {
|
if(runs(array_merge($res, $needed))) {
|
||||||
echo "needs: ".$file." and file count ".count($needed);
|
echo "needs: ".$file." and file count ".count($needed);
|
||||||
array_push($needed, $file);
|
array_push($needed, $file);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
$files = array_merge($files,glob('mod/*'),glob('include/*'),glob('addon/*/*'));
|
$files = array_merge($files,glob('mod/*'),glob('include/*'),glob('addon/*/*'));
|
||||||
|
|
||||||
|
|
||||||
foreach ($files as $file) {
|
foreach($files as $file) {
|
||||||
$str = file_get_contents($file);
|
$str = file_get_contents($file);
|
||||||
|
|
||||||
$pat = '| t\(([^\)]*)\)|';
|
$pat = '| t\(([^\)]*)\)|';
|
||||||
|
|
@ -16,14 +16,14 @@
|
||||||
preg_match_all($patt, $str, $matchestt);
|
preg_match_all($patt, $str, $matchestt);
|
||||||
|
|
||||||
|
|
||||||
if (count($matches)){
|
if(count($matches)){
|
||||||
foreach ($matches[1] as $match) {
|
foreach($matches[1] as $match) {
|
||||||
if (! in_array($match,$arr))
|
if(! in_array($match,$arr))
|
||||||
$arr[] = $match;
|
$arr[] = $match;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (count($matchestt)){
|
if(count($matchestt)){
|
||||||
foreach ($matchestt[1] as $match) {
|
foreach($matchestt[1] as $match) {
|
||||||
$matchtkns = preg_split("|[ \t\r\n]*,[ \t\r\n]*|",$match);
|
$matchtkns = preg_split("|[ \t\r\n]*,[ \t\r\n]*|",$match);
|
||||||
if (count($matchtkns)==3 && !in_array($matchtkns,$arr)){
|
if (count($matchtkns)==3 && !in_array($matchtkns,$arr)){
|
||||||
$arr[] = $matchtkns;
|
$arr[] = $matchtkns;
|
||||||
|
|
@ -41,26 +41,23 @@ function string_plural_select($n){
|
||||||
|
|
||||||
';
|
';
|
||||||
|
|
||||||
foreach ($arr as $a) {
|
foreach($arr as $a) {
|
||||||
if (is_array($a)){
|
if (is_array($a)){
|
||||||
if (substr($a[1],0,1) == '$') {
|
if(substr($a[1],0,1) == '$')
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
$s .= '$a->strings[' . $a[0] . "] = array(\n";
|
$s .= '$a->strings[' . $a[0] . "] = array(\n";
|
||||||
$s .= "\t0 => ". $a[0]. ",\n";
|
$s .= "\t0 => ". $a[0]. ",\n";
|
||||||
$s .= "\t1 => ". $a[1]. ",\n";
|
$s .= "\t1 => ". $a[1]. ",\n";
|
||||||
$s .= ");\n";
|
$s .= ");\n";
|
||||||
} else {
|
} else {
|
||||||
if (substr($a,0,1) == '$') {
|
if(substr($a,0,1) == '$')
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
$s .= '$a->strings[' . $a . '] = '. $a . ';' . "\n";
|
$s .= '$a->strings[' . $a . '] = '. $a . ';' . "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$zones = timezone_identifiers_list();
|
$zones = timezone_identifiers_list();
|
||||||
foreach ($zones as $zone) {
|
foreach($zones as $zone)
|
||||||
$s .= '$a->strings[\'' . $zone . '\'] = \'' . $zone . '\';' . "\n";
|
$s .= '$a->strings[\'' . $zone . '\'] = \'' . $zone . '\';' . "\n";
|
||||||
}
|
|
||||||
|
|
||||||
echo $s;
|
echo $s;
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
DEFINE("NORM_REGEXP", "|[\\\]|");
|
DEFINE("NORM_REGEXP", "|[\\\]|");
|
||||||
|
|
||||||
|
|
||||||
if (! class_exists('App')) {
|
if(! class_exists('App')) {
|
||||||
class TmpA {
|
class TmpA {
|
||||||
public $strings = Array();
|
public $strings = Array();
|
||||||
}
|
}
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$infile = file($phpfile);
|
$infile = file($phpfile);
|
||||||
foreach ($infile as $l) {
|
foreach($infile as $l) {
|
||||||
$l = trim($l);
|
$l = trim($l);
|
||||||
if (startsWith($l, 'function string_plural_select_')) {
|
if (startsWith($l, 'function string_plural_select_')) {
|
||||||
$lang = str_replace( 'function string_plural_select_' , '', str_replace( '($n){','', $l) );
|
$lang = str_replace( 'function string_plural_select_' , '', str_replace( '($n){','', $l) );
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
$norm_base_msgids = array();
|
$norm_base_msgids = array();
|
||||||
$base_f = file("util/messages.po") or die("No base messages.po\n");
|
$base_f = file("util/messages.po") or die("No base messages.po\n");
|
||||||
$_f = 0; $_mid = ""; $_mids = array();
|
$_f = 0; $_mid = ""; $_mids = array();
|
||||||
foreach ( $base_f as $l) {
|
foreach( $base_f as $l) {
|
||||||
$l = trim($l);
|
$l = trim($l);
|
||||||
//~ print $l."\n";
|
//~ print $l."\n";
|
||||||
|
|
||||||
|
|
@ -165,7 +165,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$warnings = "";
|
$warnings = "";
|
||||||
foreach ($a->strings as $key=>$str) {
|
foreach($a->strings as $key=>$str) {
|
||||||
$msgid = massage_string($key);
|
$msgid = massage_string($key);
|
||||||
|
|
||||||
if (preg_match("|%[sd0-9](\$[sn])*|", $msgid)) {
|
if (preg_match("|%[sd0-9](\$[sn])*|", $msgid)) {
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,10 @@ function po2php_run(&$argv, &$argc) {
|
||||||
$pofile = $argv[1];
|
$pofile = $argv[1];
|
||||||
$outfile = dirname($pofile)."/strings.php";
|
$outfile = dirname($pofile)."/strings.php";
|
||||||
|
|
||||||
if (strstr($outfile,'util')) {
|
if(strstr($outfile,'util'))
|
||||||
$lang = 'en';
|
$lang = 'en';
|
||||||
} else {
|
else
|
||||||
$lang = str_replace('-','_',basename(dirname($pofile)));
|
$lang = str_replace('-','_',basename(dirname($pofile)));
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -42,45 +41,34 @@ function po2php_run(&$argv, &$argc) {
|
||||||
foreach ($infile as $l) {
|
foreach ($infile as $l) {
|
||||||
$l = str_replace('\"', DQ_ESCAPE, $l);
|
$l = str_replace('\"', DQ_ESCAPE, $l);
|
||||||
$len = strlen($l);
|
$len = strlen($l);
|
||||||
if ($l[0]=="#") {
|
if ($l[0]=="#") $l="";
|
||||||
$l="";
|
if (substr($l,0,15)=='"Plural-Forms: '){
|
||||||
}
|
|
||||||
if (substr($l,0,15) == '"Plural-Forms: '){
|
|
||||||
$match=Array();
|
$match=Array();
|
||||||
preg_match("|nplurals=([0-9]*); *plural=(.*)[;\\\\]|", $l, $match);
|
preg_match("|nplurals=([0-9]*); *plural=(.*)[;\\\\]|", $l, $match);
|
||||||
$cond = str_replace('n','$n',$match[2]);
|
$cond = str_replace('n','$n',$match[2]);
|
||||||
// define plural select function if not already defined
|
// define plural select function if not already defined
|
||||||
$fnname = 'string_plural_select_' . $lang;
|
$fnname = 'string_plural_select_' . $lang;
|
||||||
$out .= 'if (! function_exists("'.$fnname.'")) {'."\n";
|
$out .= 'if(! function_exists("'.$fnname.'")) {'."\n";
|
||||||
$out .= 'function '. $fnname . '($n){'."\n";
|
$out .= 'function '. $fnname . '($n){'."\n";
|
||||||
$out .= ' return '.$cond.';'."\n";
|
$out .= ' return '.$cond.';'."\n";
|
||||||
$out .= '}}'."\n";
|
$out .= '}}'."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($k!="" && substr($l,0,7) == "msgstr "){
|
|
||||||
if ($ink) {
|
|
||||||
$ink = False;
|
|
||||||
$out .= '$a->strings["'.$k.'"] = ';
|
if ($k!="" && substr($l,0,7)=="msgstr "){
|
||||||
}
|
if ($ink) { $ink = False; $out .= '$a->strings["'.$k.'"] = '; }
|
||||||
if ($inv) {
|
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
|
||||||
$inv = False;
|
|
||||||
$out .= '"'.$v.'"';
|
|
||||||
}
|
|
||||||
|
|
||||||
$v = substr($l,8,$len-10);
|
$v = substr($l,8,$len-10);
|
||||||
$v = preg_replace_callback($escape_s_exp,'escape_s',$v);
|
$v = preg_replace_callback($escape_s_exp,'escape_s',$v);
|
||||||
$inv = True;
|
$inv = True;
|
||||||
//$out .= $v;
|
//$out .= $v;
|
||||||
}
|
}
|
||||||
if ($k!="" && substr($l,0,7) == "msgstr["){
|
if ($k!="" && substr($l,0,7)=="msgstr["){
|
||||||
if ($ink) {
|
if ($ink) { $ink = False; $out .= '$a->strings["'.$k.'"] = '; }
|
||||||
$ink = False;
|
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
|
||||||
$out .= '$a->strings["'.$k.'"] = ';
|
|
||||||
}
|
|
||||||
if ($inv) {
|
|
||||||
$inv = False;
|
|
||||||
$out .= '"'.$v.'"';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$arr) {
|
if (!$arr) {
|
||||||
$arr=True;
|
$arr=True;
|
||||||
|
|
@ -96,6 +84,7 @@ function po2php_run(&$argv, &$argc) {
|
||||||
|
|
||||||
if (substr($l,0,6)=="msgid_") { $ink = False; $out .= '$a->strings["'.$k.'"] = '; };
|
if (substr($l,0,6)=="msgid_") { $ink = False; $out .= '$a->strings["'.$k.'"] = '; };
|
||||||
|
|
||||||
|
|
||||||
if ($ink) {
|
if ($ink) {
|
||||||
$k .= trim($l,"\"\r\n");
|
$k .= trim($l,"\"\r\n");
|
||||||
$k = preg_replace_callback($escape_s_exp,'escape_s',$k);
|
$k = preg_replace_callback($escape_s_exp,'escape_s',$k);
|
||||||
|
|
@ -103,14 +92,9 @@ function po2php_run(&$argv, &$argc) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($l,0,6)=="msgid "){
|
if (substr($l,0,6)=="msgid "){
|
||||||
if ($inv) {
|
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
|
||||||
$inv = False;
|
if ($k!="") $out .= $arr?");\n":";\n";
|
||||||
$out .= '"'.$v.'"';
|
$arr=False;
|
||||||
}
|
|
||||||
if ($k != "") {
|
|
||||||
$out .= $arr?");\n":";\n";
|
|
||||||
}
|
|
||||||
$arr = False;
|
|
||||||
$k = str_replace("msgid ","",$l);
|
$k = str_replace("msgid ","",$l);
|
||||||
if ($k != '""' ) {
|
if ($k != '""' ) {
|
||||||
$k = trim($k,"\"\r\n");
|
$k = trim($k,"\"\r\n");
|
||||||
|
|
@ -131,13 +115,8 @@ function po2php_run(&$argv, &$argc) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($inv) {
|
if ($inv) { $inv = False; $out .= '"'.$v.'"'; }
|
||||||
$inv = False;
|
if ($k!="") $out .= $arr?");\n":";\n";
|
||||||
$out .= '"'.$v.'"';
|
|
||||||
}
|
|
||||||
if ($k!="") {
|
|
||||||
$out .= $arr?");\n":";\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
$out = str_replace(DQ_ESCAPE, '\"', $out);
|
$out = str_replace(DQ_ESCAPE, '\"', $out);
|
||||||
file_put_contents($outfile, $out);
|
file_put_contents($outfile, $out);
|
||||||
|
|
|
||||||
|
|
@ -1,58 +1,59 @@
|
||||||
<?php
|
<?php
|
||||||
// Tired of chasing typos and finding them after a commit.
|
// Tired of chasing typos and finding them after a commit.
|
||||||
// Run this from cmdline in basedir and quickly see if we've
|
// Run this from cmdline in basedir and quickly see if we've
|
||||||
// got any parse errors in our application files.
|
// got any parse errors in our application files.
|
||||||
|
|
||||||
|
|
||||||
error_reporting(E_ERROR | E_WARNING | E_PARSE );
|
error_reporting(E_ERROR | E_WARNING | E_PARSE );
|
||||||
ini_set('display_errors', '1');
|
ini_set('display_errors', '1');
|
||||||
ini_set('log_errors','0');
|
ini_set('log_errors','0');
|
||||||
|
|
||||||
include 'boot.php';
|
include 'boot.php';
|
||||||
|
|
||||||
$a = new App();
|
$a = new App();
|
||||||
|
|
||||||
if (x($a->config,'php_path')) {
|
if(x($a->config,'php_path'))
|
||||||
$phpath = $a->config['php_path'];
|
$phpath = $a->config['php_path'];
|
||||||
} else {
|
else
|
||||||
$phpath = 'php';
|
$phpath = 'php';
|
||||||
}
|
|
||||||
|
|
||||||
echo "Directory: mod\n";
|
|
||||||
$files = glob('mod/*.php');
|
|
||||||
foreach ($files as $file) {
|
|
||||||
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "Directory: include\n";
|
echo "Directory: mod\n";
|
||||||
$files = glob('include/*.php');
|
$files = glob('mod/*.php');
|
||||||
foreach ($files as $file) {
|
foreach($files as $file) {
|
||||||
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
||||||
}
|
|
||||||
|
|
||||||
echo "Directory: object\n";
|
|
||||||
$files = glob('object/*.php');
|
|
||||||
foreach ($files as $file) {
|
|
||||||
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "Directory: addon\n";
|
|
||||||
$dirs = glob('addon/*');
|
|
||||||
|
|
||||||
foreach ($dirs as $dir) {
|
|
||||||
$addon = basename($dir);
|
|
||||||
$files = glob($dir . '/' . $addon . '.php');
|
|
||||||
foreach ($files as $file) {
|
|
||||||
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
echo "String files\n";
|
echo "Directory: include\n";
|
||||||
|
$files = glob('include/*.php');
|
||||||
|
foreach($files as $file) {
|
||||||
|
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
||||||
|
}
|
||||||
|
|
||||||
echo 'util/strings.php' . "\n";
|
echo "Directory: object\n";
|
||||||
passthru("$phpath -l util/strings.php", $ret); $ret===0 or die();
|
$files = glob('object/*.php');
|
||||||
|
foreach($files as $file) {
|
||||||
|
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
||||||
|
}
|
||||||
|
|
||||||
$files = glob('view/lang/*/strings.php');
|
echo "Directory: addon\n";
|
||||||
foreach ($files as $file) {
|
$dirs = glob('addon/*');
|
||||||
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
|
||||||
}
|
foreach($dirs as $dir) {
|
||||||
|
$addon = basename($dir);
|
||||||
|
$files = glob($dir . '/' . $addon . '.php');
|
||||||
|
foreach($files as $file) {
|
||||||
|
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
echo "String files\n";
|
||||||
|
|
||||||
|
echo 'util/strings.php' . "\n";
|
||||||
|
passthru("$phpath -l util/strings.php", $ret); $ret===0 or die();
|
||||||
|
|
||||||
|
$files = glob('view/lang/*/strings.php');
|
||||||
|
foreach($files as $file) {
|
||||||
|
passthru("$phpath -l $file", $ret); $ret===0 or die();
|
||||||
|
}
|
||||||
|
|
|
||||||
0
view/smarty3/.gitignore
vendored
Normal file → Executable file
0
view/smarty3/.gitignore
vendored
Normal file → Executable file
|
|
@ -4,30 +4,23 @@ function duepuntozero_init(App $a) {
|
||||||
|
|
||||||
set_template_engine($a, 'smarty3');
|
set_template_engine($a, 'smarty3');
|
||||||
|
|
||||||
$colorset = get_pconfig( local_user(), 'duepuntozero','colorset');
|
$colorset = get_pconfig( local_user(), 'duepuntozero','colorset');
|
||||||
if (!$colorset) {
|
if (!$colorset)
|
||||||
$colorset = get_config('duepuntozero', 'colorset'); // user setting have priority, then node settings
|
$colorset = get_config('duepuntozero', 'colorset'); // user setting have priority, then node settings
|
||||||
}
|
if ($colorset) {
|
||||||
if ($colorset) {
|
if ($colorset == 'greenzero')
|
||||||
if ($colorset == 'greenzero') {
|
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/greenzero.css" type="text/css" media="screen" />'."\n";
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/greenzero.css" type="text/css" media="screen" />'."\n";
|
if ($colorset == 'purplezero')
|
||||||
}
|
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/purplezero.css" type="text/css" media="screen" />'."\n";
|
||||||
if ($colorset == 'purplezero') {
|
if ($colorset == 'easterbunny')
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/purplezero.css" type="text/css" media="screen" />'."\n";
|
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/easterbunny.css" type="text/css" media="screen" />'."\n";
|
||||||
}
|
if ($colorset == 'darkzero')
|
||||||
if ($colorset == 'easterbunny') {
|
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/darkzero.css" type="text/css" media="screen" />'."\n";
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/easterbunny.css" type="text/css" media="screen" />'."\n";
|
if ($colorset == 'comix')
|
||||||
}
|
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/comix.css" type="text/css" media="screen" />'."\n";
|
||||||
if ($colorset == 'darkzero') {
|
if ($colorset == 'slackr')
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/darkzero.css" type="text/css" media="screen" />'."\n";
|
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/slackr.css" type="text/css" media="screen" />'."\n";
|
||||||
}
|
}
|
||||||
if ($colorset == 'comix') {
|
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/comix.css" type="text/css" media="screen" />'."\n";
|
|
||||||
}
|
|
||||||
if ($colorset == 'slackr') {
|
|
||||||
$a->page['htmlhead'] .= '<link rel="stylesheet" href="view/theme/duepuntozero/deriv/slackr.css" type="text/css" media="screen" />'."\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$a->page['htmlhead'] .= <<< EOT
|
$a->page['htmlhead'] .= <<< EOT
|
||||||
<script>
|
<script>
|
||||||
function insertFormatting(BBcode, id) {
|
function insertFormatting(BBcode, id) {
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A color utility that helps manipulate HEX colors
|
* A color utility that helps manipulate HEX colors
|
||||||
* @todo convert space -> tab
|
|
||||||
*/
|
*/
|
||||||
class Color {
|
class Color {
|
||||||
|
|
||||||
|
|
@ -34,9 +33,9 @@ class Color {
|
||||||
$color = str_replace("#", "", $hex);
|
$color = str_replace("#", "", $hex);
|
||||||
|
|
||||||
// Make sure it's 6 digits
|
// Make sure it's 6 digits
|
||||||
if ( strlen($color) === 3 ) {
|
if( strlen($color) === 3 ) {
|
||||||
$color = $color[0].$color[0].$color[1].$color[1].$color[2].$color[2];
|
$color = $color[0].$color[0].$color[1].$color[1].$color[2].$color[2];
|
||||||
} elseif ( strlen($color) != 6 ) {
|
} else if( strlen($color) != 6 ) {
|
||||||
throw new Exception("HEX color needs to be 6 or 3 digits long");
|
throw new Exception("HEX color needs to be 6 or 3 digits long");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -113,19 +112,19 @@ class Color {
|
||||||
*/
|
*/
|
||||||
public static function hslToHex( $hsl = array() ){
|
public static function hslToHex( $hsl = array() ){
|
||||||
// Make sure it's HSL
|
// Make sure it's HSL
|
||||||
if (empty($hsl) || !isset($hsl["H"]) || !isset($hsl["S"]) || !isset($hsl["L"]) ) {
|
if(empty($hsl) || !isset($hsl["H"]) || !isset($hsl["S"]) || !isset($hsl["L"]) ) {
|
||||||
throw new Exception("Param was not an HSL array");
|
throw new Exception("Param was not an HSL array");
|
||||||
}
|
}
|
||||||
|
|
||||||
list($H,$S,$L) = array( $hsl['H']/360,$hsl['S'],$hsl['L'] );
|
list($H,$S,$L) = array( $hsl['H']/360,$hsl['S'],$hsl['L'] );
|
||||||
|
|
||||||
if ( $S == 0 ) {
|
if( $S == 0 ) {
|
||||||
$r = $L * 255;
|
$r = $L * 255;
|
||||||
$g = $L * 255;
|
$g = $L * 255;
|
||||||
$b = $L * 255;
|
$b = $L * 255;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if ($L<0.5) {
|
if($L<0.5) {
|
||||||
$var_2 = $L*(1+$S);
|
$var_2 = $L*(1+$S);
|
||||||
} else {
|
} else {
|
||||||
$var_2 = ($L+$S) - ($S*$L);
|
$var_2 = ($L+$S) - ($S*$L);
|
||||||
|
|
@ -184,7 +183,7 @@ class Color {
|
||||||
*/
|
*/
|
||||||
public static function rgbToHex( $rgb = array() ){
|
public static function rgbToHex( $rgb = array() ){
|
||||||
// Make sure it's RGB
|
// Make sure it's RGB
|
||||||
if (empty($rgb) || !isset($rgb["R"]) || !isset($rgb["G"]) || !isset($rgb["B"]) ) {
|
if(empty($rgb) || !isset($rgb["R"]) || !isset($rgb["G"]) || !isset($rgb["B"]) ) {
|
||||||
throw new Exception("Param was not an RGB array");
|
throw new Exception("Param was not an RGB array");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -245,7 +244,7 @@ class Color {
|
||||||
*/
|
*/
|
||||||
public function makeGradient( $amount = self::DEFAULT_ADJUST ) {
|
public function makeGradient( $amount = self::DEFAULT_ADJUST ) {
|
||||||
// Decide which color needs to be made
|
// Decide which color needs to be made
|
||||||
if ( $this->isLight() ) {
|
if( $this->isLight() ) {
|
||||||
$lightColor = $this->_hex;
|
$lightColor = $this->_hex;
|
||||||
$darkColor = $this->darken($amount);
|
$darkColor = $this->darken($amount);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -388,7 +387,7 @@ class Color {
|
||||||
*/
|
*/
|
||||||
private function _darken( $hsl, $amount = self::DEFAULT_ADJUST){
|
private function _darken( $hsl, $amount = self::DEFAULT_ADJUST){
|
||||||
// Check if we were provided a number
|
// Check if we were provided a number
|
||||||
if ( $amount ) {
|
if( $amount ) {
|
||||||
$hsl['L'] = ($hsl['L'] * 100) - $amount;
|
$hsl['L'] = ($hsl['L'] * 100) - $amount;
|
||||||
$hsl['L'] = ($hsl['L'] < 0) ? 0:$hsl['L']/100;
|
$hsl['L'] = ($hsl['L'] < 0) ? 0:$hsl['L']/100;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -407,7 +406,7 @@ class Color {
|
||||||
*/
|
*/
|
||||||
private function _lighten( $hsl, $amount = self::DEFAULT_ADJUST){
|
private function _lighten( $hsl, $amount = self::DEFAULT_ADJUST){
|
||||||
// Check if we were provided a number
|
// Check if we were provided a number
|
||||||
if ( $amount ) {
|
if( $amount ) {
|
||||||
$hsl['L'] = ($hsl['L'] * 100) + $amount;
|
$hsl['L'] = ($hsl['L'] * 100) + $amount;
|
||||||
$hsl['L'] = ($hsl['L'] > 100) ? 1:$hsl['L']/100;
|
$hsl['L'] = ($hsl['L'] > 100) ? 1:$hsl['L']/100;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -447,23 +446,23 @@ class Color {
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
private static function _huetorgb( $v1,$v2,$vH ) {
|
private static function _huetorgb( $v1,$v2,$vH ) {
|
||||||
if ( $vH < 0 ) {
|
if( $vH < 0 ) {
|
||||||
$vH += 1;
|
$vH += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $vH > 1 ) {
|
if( $vH > 1 ) {
|
||||||
$vH -= 1;
|
$vH -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (6*$vH) < 1 ) {
|
if( (6*$vH) < 1 ) {
|
||||||
return ($v1 + ($v2 - $v1) * 6 * $vH);
|
return ($v1 + ($v2 - $v1) * 6 * $vH);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (2*$vH) < 1 ) {
|
if( (2*$vH) < 1 ) {
|
||||||
return $v2;
|
return $v2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (3*$vH) < 2 ) {
|
if( (3*$vH) < 2 ) {
|
||||||
return ($v1 + ($v2-$v1) * ( (2/3)-$vH ) * 6);
|
return ($v1 + ($v2-$v1) * ( (2/3)-$vH ) * 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -482,9 +481,9 @@ class Color {
|
||||||
$color = str_replace("#", "", $hex);
|
$color = str_replace("#", "", $hex);
|
||||||
|
|
||||||
// Make sure it's 6 digits
|
// Make sure it's 6 digits
|
||||||
if ( strlen($color) == 3 ) {
|
if( strlen($color) == 3 ) {
|
||||||
$color = $color[0].$color[0].$color[1].$color[1].$color[2].$color[2];
|
$color = $color[0].$color[0].$color[1].$color[1].$color[2].$color[2];
|
||||||
} elseif ( strlen($color) != 6 ) {
|
} else if( strlen($color) != 6 ) {
|
||||||
throw new Exception("HEX color needs to be 6 or 3 digits long");
|
throw new Exception("HEX color needs to be 6 or 3 digits long");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,12 +78,12 @@ function frio_item_photo_links(App $a, &$body_info) {
|
||||||
$occurence = 1;
|
$occurence = 1;
|
||||||
$p = bb_find_open_close($body_info['html'], "<a", ">");
|
$p = bb_find_open_close($body_info['html'], "<a", ">");
|
||||||
|
|
||||||
while ($p !== false && ($occurence++ < 500)) {
|
while($p !== false && ($occurence++ < 500)) {
|
||||||
$link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']);
|
$link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']);
|
||||||
$matches = array();
|
$matches = array();
|
||||||
|
|
||||||
preg_match("/\/photos\/[\w]+\/image\/([\w]+)/", $link, $matches);
|
preg_match("/\/photos\/[\w]+\/image\/([\w]+)/", $link, $matches);
|
||||||
if ($matches) {
|
if($matches) {
|
||||||
// Replace the link for the photo's page with a direct link to the photo itself
|
// Replace the link for the photo's page with a direct link to the photo itself
|
||||||
$newlink = str_replace($matches[0], "/photo/{$matches[1]}", $link);
|
$newlink = str_replace($matches[0], "/photo/{$matches[1]}", $link);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,12 +49,12 @@ function frost_item_photo_links(App $a, &$body_info) {
|
||||||
|
|
||||||
$occurence = 1;
|
$occurence = 1;
|
||||||
$p = bb_find_open_close($body_info['html'], "<a", ">");
|
$p = bb_find_open_close($body_info['html'], "<a", ">");
|
||||||
while ($p !== false && ($occurence++ < 500)) {
|
while($p !== false && ($occurence++ < 500)) {
|
||||||
$link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']);
|
$link = substr($body_info['html'], $p['start'], $p['end'] - $p['start']);
|
||||||
|
|
||||||
$matches = array();
|
$matches = array();
|
||||||
preg_match("/\/photos\/[\w]+\/image\/([\w]+)/", $link, $matches);
|
preg_match("/\/photos\/[\w]+\/image\/([\w]+)/", $link, $matches);
|
||||||
if ($matches) {
|
if($matches) {
|
||||||
|
|
||||||
// Replace the link for the photo's page with a direct link to the photo itself
|
// Replace the link for the photo's page with a direct link to the photo itself
|
||||||
$newlink = str_replace($matches[0], "/photo/{$matches[1]}", $link);
|
$newlink = str_replace($matches[0], "/photo/{$matches[1]}", $link);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue