Fix unused code in include
- Fix local formatting - Remove unused variable - Fix unreached breaks - Remove commented out code - Add some documentation
This commit is contained in:
		
					parent
					
						
							
								722782d553
							
						
					
				
			
			
				commit
				
					
						3b23f89ca2
					
				
			
		
					 24 changed files with 379 additions and 419 deletions
				
			
		
							
								
								
									
										13
									
								
								boot.php
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								boot.php
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -697,11 +697,8 @@ function check_url(App $a)
 | 
			
		|||
	// and www.example.com vs example.com.
 | 
			
		||||
	// We will only change the url to an ip address if there is no existing setting
 | 
			
		||||
 | 
			
		||||
	if (empty($url)) {
 | 
			
		||||
		$url = Config::set('system', 'url', System::baseUrl());
 | 
			
		||||
	}
 | 
			
		||||
	if ((!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname))) {
 | 
			
		||||
		$url = Config::set('system', 'url', System::baseUrl());
 | 
			
		||||
	if (empty($url) || (!link_compare($url, System::baseUrl())) && (!preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/", $a->get_hostname))) {
 | 
			
		||||
		Config::set('system', 'url', System::baseUrl());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return;
 | 
			
		||||
| 
						 | 
				
			
			@ -711,7 +708,7 @@ function check_url(App $a)
 | 
			
		|||
 * @brief Automatic database updates
 | 
			
		||||
 * @param object $a App
 | 
			
		||||
 */
 | 
			
		||||
function update_db(App $a)
 | 
			
		||||
function update_db()
 | 
			
		||||
{
 | 
			
		||||
	$build = Config::get('system', 'build');
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -800,7 +797,6 @@ function run_update_function($x)
 | 
			
		|||
		Config::set('system', 'build', $x + 1);
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -1051,7 +1047,6 @@ function current_theme()
 | 
			
		|||
 | 
			
		||||
	if ($is_mobile) {
 | 
			
		||||
		if (isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
 | 
			
		||||
			$system_theme = $standard_system_theme;
 | 
			
		||||
			$theme_name = $standard_theme_name;
 | 
			
		||||
		} else {
 | 
			
		||||
			$system_theme = Config::get('system', 'mobile-theme', '');
 | 
			
		||||
| 
						 | 
				
			
			@ -1062,7 +1057,6 @@ function current_theme()
 | 
			
		|||
 | 
			
		||||
			if ($theme_name === '---') {
 | 
			
		||||
				// user has selected to have the mobile theme be the same as the normal one
 | 
			
		||||
				$system_theme = $standard_system_theme;
 | 
			
		||||
				$theme_name = $standard_theme_name;
 | 
			
		||||
 | 
			
		||||
				if ($page_theme) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1071,7 +1065,6 @@ function current_theme()
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		$system_theme = $standard_system_theme;
 | 
			
		||||
		$theme_name = $standard_theme_name;
 | 
			
		||||
 | 
			
		||||
		if ($page_theme) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -744,11 +744,10 @@ function navbar_complete(App $a) {
 | 
			
		|||
	if (! $localsearch) {
 | 
			
		||||
		$p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
 | 
			
		||||
 | 
			
		||||
		$x = z_fetch_url(get_server().'/lsearch?f=' . $p .  '&search=' . urlencode($search));
 | 
			
		||||
		$x = z_fetch_url(get_server() . '/lsearch?f=' . $p .  '&search=' . urlencode($search));
 | 
			
		||||
		if ($x['success']) {
 | 
			
		||||
			$t = 0;
 | 
			
		||||
			$j = json_decode($x['body'],true);
 | 
			
		||||
			if ($j && $j['results']) {
 | 
			
		||||
			if ($j && isset($j['results'])) {
 | 
			
		||||
				return $j['results'];
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,8 +67,6 @@ function bb_attachment($Text, $simplehtml = false, $tryoembed = true) {
 | 
			
		|||
	} else {
 | 
			
		||||
		if ($simplehtml != 4) {
 | 
			
		||||
			$text = sprintf('<span class="type-%s">', $data["type"]);
 | 
			
		||||
		} else {
 | 
			
		||||
			$span_end = '';
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$bookmark = array(sprintf('[bookmark=%s]%s[/bookmark]', $data["url"], $data["title"]), $data["url"], $data["title"]);
 | 
			
		||||
| 
						 | 
				
			
			@ -270,7 +268,6 @@ function bb_spacefy($st) {
 | 
			
		|||
 * returning [i]italic[/i]
 | 
			
		||||
 */
 | 
			
		||||
function bb_unspacefy_and_trim($st) {
 | 
			
		||||
	$whole_match = $st[0];
 | 
			
		||||
	$captured = $st[1];
 | 
			
		||||
	$unspacefied = preg_replace("/\[ (.*?)\ ]/", "[$1]", $captured);
 | 
			
		||||
	return $unspacefied;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
<?php
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @file include/contact_widgets.php
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -11,8 +12,8 @@ use Friendica\Model\GContact;
 | 
			
		|||
 | 
			
		||||
require_once 'include/contact_selectors.php';
 | 
			
		||||
 | 
			
		||||
function follow_widget($value = "") {
 | 
			
		||||
 | 
			
		||||
function follow_widget($value = "")
 | 
			
		||||
{
 | 
			
		||||
	return replace_macros(get_markup_template('follow.tpl'), array(
 | 
			
		||||
		'$connect' => t('Add New Contact'),
 | 
			
		||||
		'$desc' => t('Enter address or web location'),
 | 
			
		||||
| 
						 | 
				
			
			@ -20,10 +21,10 @@ function follow_widget($value = "") {
 | 
			
		|||
		'$value' => $value,
 | 
			
		||||
		'$follow' => t('Connect')
 | 
			
		||||
	));
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function findpeople_widget() {
 | 
			
		||||
function findpeople_widget()
 | 
			
		||||
{
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
	$global_dir = Config::get('system', 'directory');
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -31,8 +32,8 @@ function findpeople_widget() {
 | 
			
		|||
		$x = PConfig::get(local_user(), 'system', 'invites_remaining');
 | 
			
		||||
		if ($x || is_site_admin()) {
 | 
			
		||||
			$a->page['aside'] .= '<div class="side-link" id="side-invite-remain">'
 | 
			
		||||
			. sprintf( tt('%d invitation available', '%d invitations available', $x), $x)
 | 
			
		||||
			. '</div>' . $inv;
 | 
			
		||||
				. tt('%d invitation available', '%d invitations available', $x)
 | 
			
		||||
				. '</div>' . $inv;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -49,12 +50,10 @@ function findpeople_widget() {
 | 
			
		|||
		'$directory' => t('View Global Directory'),
 | 
			
		||||
		'$global_dir' => $global_dir
 | 
			
		||||
	));
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function unavailable_networks() {
 | 
			
		||||
	$network_filter = "";
 | 
			
		||||
 | 
			
		||||
function unavailable_networks()
 | 
			
		||||
{
 | 
			
		||||
	$networks = array();
 | 
			
		||||
 | 
			
		||||
	if (!plugin_enabled("appnet")) {
 | 
			
		||||
| 
						 | 
				
			
			@ -100,10 +99,8 @@ function unavailable_networks() {
 | 
			
		|||
	return $network_filter;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function networks_widget($baseurl, $selected = '') {
 | 
			
		||||
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
function networks_widget($baseurl, $selected = '')
 | 
			
		||||
{
 | 
			
		||||
	if (!local_user()) {
 | 
			
		||||
		return '';
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -138,21 +135,21 @@ function networks_widget($baseurl, $selected = '') {
 | 
			
		|||
		'$all' => t('All Networks'),
 | 
			
		||||
		'$nets' => $nets,
 | 
			
		||||
		'$base' => $baseurl,
 | 
			
		||||
 | 
			
		||||
	));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function fileas_widget($baseurl, $selected = '') {
 | 
			
		||||
	if (! local_user()) {
 | 
			
		||||
function fileas_widget($baseurl, $selected = '')
 | 
			
		||||
{
 | 
			
		||||
	if (!local_user()) {
 | 
			
		||||
		return '';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! Feature::isEnabled(local_user(), 'filing')) {
 | 
			
		||||
	if (!Feature::isEnabled(local_user(), 'filing')) {
 | 
			
		||||
		return '';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$saved = PConfig::get(local_user(), 'system', 'filetags');
 | 
			
		||||
	if (! strlen($saved)) {
 | 
			
		||||
	if (!strlen($saved)) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -173,20 +170,19 @@ function fileas_widget($baseurl, $selected = '') {
 | 
			
		|||
		'$all' => t('Everything'),
 | 
			
		||||
		'$terms' => $terms,
 | 
			
		||||
		'$base' => $baseurl,
 | 
			
		||||
 | 
			
		||||
	));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function categories_widget($baseurl, $selected = '') {
 | 
			
		||||
 | 
			
		||||
function categories_widget($baseurl, $selected = '')
 | 
			
		||||
{
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	if (! Feature::isEnabled($a->profile['profile_uid'], 'categories')) {
 | 
			
		||||
	if (!Feature::isEnabled($a->profile['profile_uid'], 'categories')) {
 | 
			
		||||
		return '';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$saved = PConfig::get($a->profile['profile_uid'], 'system', 'filetags');
 | 
			
		||||
	if (! strlen($saved)) {
 | 
			
		||||
	if (!strlen($saved)) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -208,14 +204,11 @@ function categories_widget($baseurl, $selected = '') {
 | 
			
		|||
		'$all' => t('Everything'),
 | 
			
		||||
		'$terms' => $terms,
 | 
			
		||||
		'$base' => $baseurl,
 | 
			
		||||
 | 
			
		||||
	));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function common_friends_visitor_widget($profile_uid) {
 | 
			
		||||
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
function common_friends_visitor_widget($profile_uid)
 | 
			
		||||
{
 | 
			
		||||
	if (local_user() == $profile_uid) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -231,7 +224,7 @@ function common_friends_visitor_widget($profile_uid) {
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! $cid) {
 | 
			
		||||
	if (!$cid) {
 | 
			
		||||
		if (get_my_url()) {
 | 
			
		||||
			$r = dba::select('contact', array('id'),
 | 
			
		||||
					array('nurl' => normalise_link(get_my_url()), 'uid' => $profile_uid), array('limit' => 1));
 | 
			
		||||
| 
						 | 
				
			
			@ -239,8 +232,9 @@ function common_friends_visitor_widget($profile_uid) {
 | 
			
		|||
				$cid = $r['id'];
 | 
			
		||||
			} else {
 | 
			
		||||
				$r = dba::select('gcontact', array('id'), array('nurl' => normalise_link(get_my_url())), array('limit' => 1));
 | 
			
		||||
				if (DBM::is_result($r))
 | 
			
		||||
				if (DBM::is_result($r)) {
 | 
			
		||||
					$zcid = $r['id'];
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -254,7 +248,8 @@ function common_friends_visitor_widget($profile_uid) {
 | 
			
		|||
	} else {
 | 
			
		||||
		$t = GContact::countCommonFriendsZcid($profile_uid, $zcid);
 | 
			
		||||
	}
 | 
			
		||||
	if (! $t) {
 | 
			
		||||
 | 
			
		||||
	if (!$t) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -265,7 +260,7 @@ function common_friends_visitor_widget($profile_uid) {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	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' => tt("%d contact in common", "%d contacts in common", $t),
 | 
			
		||||
		'$base' => System::baseUrl(),
 | 
			
		||||
		'$uid' => $profile_uid,
 | 
			
		||||
		'$cid' => (($cid) ? $cid : '0'),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -589,11 +589,8 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
 | 
			
		|||
 | 
			
		||||
	$page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	if ($update) {
 | 
			
		||||
		$return_url = $_SESSION['return_url'];
 | 
			
		||||
	} else {
 | 
			
		||||
		$return_url = $_SESSION['return_url'] = $a->query_string;
 | 
			
		||||
	if (!$update) {
 | 
			
		||||
		$_SESSION['return_url'] = $a->query_string;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$cb = array('items' => $items, 'mode' => $mode, 'update' => $update, 'preview' => $preview);
 | 
			
		||||
| 
						 | 
				
			
			@ -601,9 +598,6 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
 | 
			
		|||
 | 
			
		||||
	$items = $cb['items'];
 | 
			
		||||
 | 
			
		||||
	$cmnt_tpl    = get_markup_template('comment_item.tpl');
 | 
			
		||||
	$hide_comments_tpl = get_markup_template('hide_comments.tpl');
 | 
			
		||||
 | 
			
		||||
	$conv_responses = array(
 | 
			
		||||
		'like' => array('title' => t('Likes','title')), 'dislike' => array('title' => t('Dislikes','title')),
 | 
			
		||||
		'attendyes' => array('title' => t('Attending','title')), 'attendno' => array('title' => t('Not attending','title')), 'attendmaybe' => array('title' => t('Might attend','title'))
 | 
			
		||||
| 
						 | 
				
			
			@ -759,7 +753,6 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
 | 
			
		|||
 | 
			
		||||
				$lock = false;
 | 
			
		||||
				$likebuttons = false;
 | 
			
		||||
				$shareable = false;
 | 
			
		||||
 | 
			
		||||
				$body = prepare_body($item, true, $preview);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -844,9 +837,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
 | 
			
		|||
			 * this shouldn't be needed, as we should have only them in our array
 | 
			
		||||
			 * But for now, this array respects the old style, just in case
 | 
			
		||||
			 */
 | 
			
		||||
			$threads = array();
 | 
			
		||||
			foreach ($items as $item) {
 | 
			
		||||
 | 
			
		||||
				if ($arr_blocked) {
 | 
			
		||||
					$blocked = false;
 | 
			
		||||
					foreach ($arr_blocked as $b) {
 | 
			
		||||
| 
						 | 
				
			
			@ -883,7 +874,6 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
 | 
			
		|||
			}
 | 
			
		||||
 | 
			
		||||
			$threads = $conv->getTemplateData($conv_responses);
 | 
			
		||||
 | 
			
		||||
			if (!$threads) {
 | 
			
		||||
				logger('[ERROR] conversation : Failed to get template data.', LOGGER_DEBUG);
 | 
			
		||||
				$threads = array();
 | 
			
		||||
| 
						 | 
				
			
			@ -1000,7 +990,6 @@ function item_photo_menu($item) {
 | 
			
		|||
	$status_link = '';
 | 
			
		||||
	$photos_link = '';
 | 
			
		||||
	$posts_link = '';
 | 
			
		||||
	$network = '';
 | 
			
		||||
 | 
			
		||||
	if ((local_user()) && local_user() == $item['uid'] && $item['parent'] == $item['id'] && (! $item['self'])) {
 | 
			
		||||
		$sub_link = 'javascript:dosubthread(' . $item['id'] . '); return false;';
 | 
			
		||||
| 
						 | 
				
			
			@ -1026,7 +1015,6 @@ function item_photo_menu($item) {
 | 
			
		|||
		$status_link = $profile_link . '?url=status';
 | 
			
		||||
		$photos_link = $profile_link . '?url=photos';
 | 
			
		||||
		$profile_link = $profile_link . '?url=profile';
 | 
			
		||||
		$zurl = '';
 | 
			
		||||
	} else {
 | 
			
		||||
		$profile_link = zrl($profile_link);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1113,7 +1101,6 @@ function builtin_activity_puller($item, &$conv_responses) {
 | 
			
		|||
				break;
 | 
			
		||||
			default:
 | 
			
		||||
				return;
 | 
			
		||||
				break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1655,22 +1642,25 @@ function get_responses($conv_responses, $response_verbs, $ob, $item) {
 | 
			
		|||
	return $ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function get_response_button_text($v, $count) {
 | 
			
		||||
function get_response_button_text($v, $count)
 | 
			
		||||
{
 | 
			
		||||
	switch ($v) {
 | 
			
		||||
		case 'like':
 | 
			
		||||
			return tt('Like', 'Likes', $count, 'noun');
 | 
			
		||||
			$return = tt('Like', 'Likes', $count);
 | 
			
		||||
			break;
 | 
			
		||||
		case 'dislike':
 | 
			
		||||
			return tt('Dislike', 'Dislikes', $count, 'noun');
 | 
			
		||||
			$return = tt('Dislike', 'Dislikes', $count);
 | 
			
		||||
			break;
 | 
			
		||||
		case 'attendyes':
 | 
			
		||||
			return tt('Attending', 'Attending', $count, 'noun');
 | 
			
		||||
			$return = tt('Attending', 'Attending', $count);
 | 
			
		||||
			break;
 | 
			
		||||
		case 'attendno':
 | 
			
		||||
			return tt('Not Attending', 'Not Attending', $count, 'noun');
 | 
			
		||||
			$return = tt('Not Attending', 'Not Attending', $count);
 | 
			
		||||
			break;
 | 
			
		||||
		case 'attendmaybe':
 | 
			
		||||
			return tt('Undecided', 'Undecided', $count, 'noun');
 | 
			
		||||
			$return = tt('Undecided', 'Undecided', $count);
 | 
			
		||||
			break;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return $return;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -177,8 +177,9 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
 | 
			
		|||
 * @param string $dob Date of Birth
 | 
			
		||||
 * @return string Formatted html
 | 
			
		||||
 */
 | 
			
		||||
function dob($dob) {
 | 
			
		||||
	list($year,$month,$day) = sscanf($dob,'%4d-%2d-%2d');
 | 
			
		||||
function dob($dob)
 | 
			
		||||
{
 | 
			
		||||
	list($year, $month, $day) = sscanf($dob, '%4d-%2d-%2d');
 | 
			
		||||
 | 
			
		||||
	if ($dob <= '0001-01-01') {
 | 
			
		||||
		$value = '';
 | 
			
		||||
| 
						 | 
				
			
			@ -211,8 +212,6 @@ function dob($dob) {
 | 
			
		|||
/**
 | 
			
		||||
 * @brief Returns a date selector
 | 
			
		||||
 *
 | 
			
		||||
 * @param string $format
 | 
			
		||||
 *  Format string, e.g. 'ymd' or 'mdy'. Not currently supported
 | 
			
		||||
 * @param string $min
 | 
			
		||||
 *  Unix timestamp of minimum date
 | 
			
		||||
 * @param string $max
 | 
			
		||||
| 
						 | 
				
			
			@ -613,7 +612,7 @@ function update_contact_birthdays() {
 | 
			
		|||
			$bdtext = sprintf( t('%s\'s birthday'), $rr['name']);
 | 
			
		||||
			$bdtext2 = sprintf( t('Happy Birthday %s'), ' [url=' . $rr['url'] . ']' . $rr['name'] . '[/url]') ;
 | 
			
		||||
 | 
			
		||||
			$r = q("INSERT INTO `event` (`uid`,`cid`,`created`,`edited`,`start`,`finish`,`summary`,`desc`,`type`,`adjust`)
 | 
			
		||||
			q("INSERT INTO `event` (`uid`,`cid`,`created`,`edited`,`start`,`finish`,`summary`,`desc`,`type`,`adjust`)
 | 
			
		||||
				VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d' ) ",
 | 
			
		||||
				intval($rr['uid']),
 | 
			
		||||
			 	intval($rr['id']),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,12 +20,11 @@ require_once 'include/html2bbcode.php';
 | 
			
		|||
			source_link, activity, preamble, notify_flags,
 | 
			
		||||
			language, show_in_notification_page
 | 
			
		||||
 */
 | 
			
		||||
function notification($params) {
 | 
			
		||||
 | 
			
		||||
function notification($params)
 | 
			
		||||
{
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	// from here on everything is in the recipients language
 | 
			
		||||
 | 
			
		||||
	push_lang($params['language']);
 | 
			
		||||
 | 
			
		||||
	$banner = t('Friendica Notification');
 | 
			
		||||
| 
						 | 
				
			
			@ -33,21 +32,22 @@ function notification($params) {
 | 
			
		|||
	$siteurl = System::baseUrl(true);
 | 
			
		||||
	$thanks = t('Thank You,');
 | 
			
		||||
	$sitename = $a->config['sitename'];
 | 
			
		||||
	if (!x($a->config['admin_name']))
 | 
			
		||||
	if (!x($a->config['admin_name'])) {
 | 
			
		||||
	    $site_admin = sprintf(t('%s Administrator'), $sitename);
 | 
			
		||||
	else
 | 
			
		||||
	} else {
 | 
			
		||||
	    $site_admin = sprintf(t('%1$s, %2$s Administrator'), $a->config['admin_name'], $sitename);
 | 
			
		||||
 | 
			
		||||
	$nickname = "";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$sender_name = $sitename;
 | 
			
		||||
	$hostname = $a->get_hostname();
 | 
			
		||||
	if (strpos($hostname, ':'))
 | 
			
		||||
	if (strpos($hostname, ':')) {
 | 
			
		||||
		$hostname = substr($hostname, 0, strpos($hostname, ':'));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$sender_email = $a->config['sender_email'];
 | 
			
		||||
	if (empty($sender_email))
 | 
			
		||||
	if (empty($sender_email)) {
 | 
			
		||||
		$sender_email = t('noreply').'@'.$hostname;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ($params['type'] != SYSTEM_EMAIL) {
 | 
			
		||||
		$user = dba::select('user', array('nickname', 'page-flags'),
 | 
			
		||||
| 
						 | 
				
			
			@ -77,21 +77,21 @@ function notification($params) {
 | 
			
		|||
	if (array_key_exists('item', $params)) {
 | 
			
		||||
		$title = $params['item']['title'];
 | 
			
		||||
		$body = $params['item']['body'];
 | 
			
		||||
	} else
 | 
			
		||||
	} else {
 | 
			
		||||
		$title = $body = '';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// e.g. "your post", "David's photo", etc.
 | 
			
		||||
	$possess_desc = t('%s <!item_type!>');
 | 
			
		||||
 | 
			
		||||
	if (isset($params['item']['id']))
 | 
			
		||||
	if (isset($params['item']['id'])) {
 | 
			
		||||
		$item_id = $params['item']['id'];
 | 
			
		||||
	else
 | 
			
		||||
	} else {
 | 
			
		||||
		$item_id = 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (isset($params['parent']))
 | 
			
		||||
	if (isset($params['parent'])) {
 | 
			
		||||
		$parent_id = $params['parent'];
 | 
			
		||||
	else
 | 
			
		||||
	} else {
 | 
			
		||||
		$parent_id = 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ($params['type'] == NOTIFY_MAIL) {
 | 
			
		||||
		$subject = sprintf(t('[Friendica:Notify] New mail received at %s'), $sitename);
 | 
			
		||||
| 
						 | 
				
			
			@ -117,8 +117,6 @@ function notification($params) {
 | 
			
		|||
 | 
			
		||||
		// Check to see if there was already a tag notify or comment notify for this post.
 | 
			
		||||
		// If so don't create a second notification
 | 
			
		||||
 | 
			
		||||
		$p = null;
 | 
			
		||||
		$p = q("SELECT `id` FROM `notify` WHERE `type` IN (%d, %d, %d) AND `link` = '%s' AND `uid` = %d LIMIT 1",
 | 
			
		||||
			intval(NOTIFY_TAGSELF),
 | 
			
		||||
			intval(NOTIFY_COMMENT),
 | 
			
		||||
| 
						 | 
				
			
			@ -151,19 +149,21 @@ function notification($params) {
 | 
			
		|||
								$item_post_type);
 | 
			
		||||
 | 
			
		||||
		// "George Bull's post"
 | 
			
		||||
		if ($p)
 | 
			
		||||
		if ($p) {
 | 
			
		||||
			$dest_str = sprintf(t('%1$s commented on [url=%2$s]%3$s\'s %4$s[/url]'),
 | 
			
		||||
						'[url='.$params['source_link'].']'.$params['source_name'].'[/url]',
 | 
			
		||||
						$itemlink,
 | 
			
		||||
						$p[0]['author-name'],
 | 
			
		||||
						$item_post_type);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// "your post"
 | 
			
		||||
		if ($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall'])
 | 
			
		||||
		if ($p[0]['owner-name'] == $p[0]['author-name'] && $p[0]['wall']) {
 | 
			
		||||
			$dest_str = sprintf(t('%1$s commented on [url=%2$s]your %3$s[/url]'),
 | 
			
		||||
								'[url='.$params['source_link'].']'.$params['source_name'].'[/url]',
 | 
			
		||||
								$itemlink,
 | 
			
		||||
								$item_post_type);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Some mail softwares relies on subject field for threading.
 | 
			
		||||
		// So, we cannot have different subjects for notifications of the same thread.
 | 
			
		||||
| 
						 | 
				
			
			@ -413,7 +413,6 @@ function notification($params) {
 | 
			
		|||
 | 
			
		||||
	$body      = $h['body'];
 | 
			
		||||
 | 
			
		||||
	$sitelink  = $h['sitelink'];
 | 
			
		||||
	$tsitelink = $h['tsitelink'];
 | 
			
		||||
	$hsitelink = $h['hsitelink'];
 | 
			
		||||
	$itemlink  = $h['itemlink'];
 | 
			
		||||
| 
						 | 
				
			
			@ -455,8 +454,7 @@ function notification($params) {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		// create notification entry in DB
 | 
			
		||||
 | 
			
		||||
		$r = q("INSERT INTO `notify` (`hash`, `name`, `url`, `photo`, `date`, `uid`, `link`, `iid`, `parent`, `type`, `verb`, `otype`, `name_cache`)
 | 
			
		||||
		q("INSERT INTO `notify` (`hash`, `name`, `url`, `photo`, `date`, `uid`, `link`, `iid`, `parent`, `type`, `verb`, `otype`, `name_cache`)
 | 
			
		||||
			values('%s', '%s', '%s', '%s', '%s', %d, '%s', %d, %d, %d, '%s', '%s', '%s')",
 | 
			
		||||
			dbesc($datarray['hash']),
 | 
			
		||||
			dbesc($datarray['name']),
 | 
			
		||||
| 
						 | 
				
			
			@ -477,17 +475,15 @@ function notification($params) {
 | 
			
		|||
			dbesc($hash),
 | 
			
		||||
			intval($params['uid'])
 | 
			
		||||
		);
 | 
			
		||||
		if ($r)
 | 
			
		||||
		if ($r) {
 | 
			
		||||
			$notify_id = $r[0]['id'];
 | 
			
		||||
		else {
 | 
			
		||||
		} else {
 | 
			
		||||
			pop_lang();
 | 
			
		||||
			return False;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// we seem to have a lot of duplicate comment notifications due to race conditions, mostly from forums
 | 
			
		||||
		// After we've stored everything, look again to see if there are any duplicates and if so remove them
 | 
			
		||||
 | 
			
		||||
		$p = null;
 | 
			
		||||
		$p = q("SELECT `id` FROM `notify` WHERE `type` IN (%d, %d) AND `link` = '%s' AND `uid` = %d ORDER BY `id`",
 | 
			
		||||
			intval(NOTIFY_TAGSELF),
 | 
			
		||||
			intval(NOTIFY_COMMENT),
 | 
			
		||||
| 
						 | 
				
			
			@ -500,14 +496,12 @@ function notification($params) {
 | 
			
		|||
			}
 | 
			
		||||
 | 
			
		||||
			// only continue on if we stored the first one
 | 
			
		||||
 | 
			
		||||
			if ($notify_id != $p[0]['id']) {
 | 
			
		||||
				pop_lang();
 | 
			
		||||
				return False;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		$itemlink = System::baseUrl().'/notify/view/'.$notify_id;
 | 
			
		||||
		$msg = replace_macros($epreamble, array('$itemlink' => $itemlink));
 | 
			
		||||
		$msg_cache = format_notification_message($datarray['name_cache'], strip_tags(bbcode($msg)));
 | 
			
		||||
| 
						 | 
				
			
			@ -539,7 +533,7 @@ function notification($params) {
 | 
			
		|||
 | 
			
		||||
			if (!$r) {
 | 
			
		||||
				logger("notify_id:".intval($notify_id).", parent: ".intval($params['parent'])."uid: ".intval($params['uid']), LOGGER_DEBUG);
 | 
			
		||||
				$r = q("INSERT INTO `notify-threads` (`notify-id`, `master-parent-item`, `receiver-uid`, `parent-item`)
 | 
			
		||||
				q("INSERT INTO `notify-threads` (`notify-id`, `master-parent-item`, `receiver-uid`, `parent-item`)
 | 
			
		||||
					values(%d, %d, %d, %d)",
 | 
			
		||||
					intval($notify_id),
 | 
			
		||||
					intval($params['parent']),
 | 
			
		||||
| 
						 | 
				
			
			@ -637,7 +631,6 @@ function notification($params) {
 | 
			
		|||
		));
 | 
			
		||||
 | 
			
		||||
		// use the Emailer class to send the message
 | 
			
		||||
 | 
			
		||||
		return Emailer::send(
 | 
			
		||||
			array(
 | 
			
		||||
			'uid' => $params['uid'],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -261,13 +261,10 @@ function event_store($arr) {
 | 
			
		|||
		$contact = $c[0];
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	// Existing event being modified.
 | 
			
		||||
 | 
			
		||||
	if ($arr['id']) {
 | 
			
		||||
 | 
			
		||||
		// has the event actually changed?
 | 
			
		||||
 | 
			
		||||
		$r = q("SELECT * FROM `event` WHERE `id` = %d AND `uid` = %d LIMIT 1",
 | 
			
		||||
			intval($arr['id']),
 | 
			
		||||
			intval($arr['uid'])
 | 
			
		||||
| 
						 | 
				
			
			@ -275,7 +272,6 @@ function event_store($arr) {
 | 
			
		|||
		if ((! DBM::is_result($r)) || ($r[0]['edited'] === $arr['edited'])) {
 | 
			
		||||
 | 
			
		||||
			// Nothing has changed. Grab the item id to return.
 | 
			
		||||
 | 
			
		||||
			$r = q("SELECT * FROM `item` WHERE `event-id` = %d AND `uid` = %d LIMIT 1",
 | 
			
		||||
				intval($arr['id']),
 | 
			
		||||
				intval($arr['uid'])
 | 
			
		||||
| 
						 | 
				
			
			@ -284,8 +280,7 @@ function event_store($arr) {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		// The event changed. Update it.
 | 
			
		||||
 | 
			
		||||
		$r = q("UPDATE `event` SET
 | 
			
		||||
		q("UPDATE `event` SET
 | 
			
		||||
			`edited` = '%s',
 | 
			
		||||
			`start` = '%s',
 | 
			
		||||
			`finish` = '%s',
 | 
			
		||||
| 
						 | 
				
			
			@ -309,6 +304,7 @@ function event_store($arr) {
 | 
			
		|||
			intval($arr['id']),
 | 
			
		||||
			intval($arr['uid'])
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		$r = q("SELECT * FROM `item` WHERE `event-id` = %d AND `uid` = %d LIMIT 1",
 | 
			
		||||
			intval($arr['id']),
 | 
			
		||||
			intval($arr['uid'])
 | 
			
		||||
| 
						 | 
				
			
			@ -336,8 +332,7 @@ function event_store($arr) {
 | 
			
		|||
		return $item_id;
 | 
			
		||||
	} else {
 | 
			
		||||
		// New event. Store it.
 | 
			
		||||
 | 
			
		||||
		$r = q("INSERT INTO `event` (`uid`,`cid`,`guid`,`uri`,`created`,`edited`,`start`,`finish`,`summary`, `desc`,`location`,`type`,
 | 
			
		||||
		q("INSERT INTO `event` (`uid`,`cid`,`guid`,`uri`,`created`,`edited`,`start`,`finish`,`summary`, `desc`,`location`,`type`,
 | 
			
		||||
			`adjust`,`nofinish`,`allow_cid`,`allow_gid`,`deny_cid`,`deny_gid`)
 | 
			
		||||
			VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' ) ",
 | 
			
		||||
			intval($arr['uid']),
 | 
			
		||||
| 
						 | 
				
			
			@ -403,21 +398,7 @@ function event_store($arr) {
 | 
			
		|||
		$item_arr['object'] .= '</object>' . "\n";
 | 
			
		||||
 | 
			
		||||
		$item_id = item_store($item_arr);
 | 
			
		||||
 | 
			
		||||
		$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
 | 
			
		||||
			intval($arr['uid'])
 | 
			
		||||
		);
 | 
			
		||||
		//if (DBM::is_result($r))
 | 
			
		||||
		//	$plink = System::baseUrl() . '/display/' . $r[0]['nickname'] . '/' . $item_id;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		if ($item_id) {
 | 
			
		||||
			//q("UPDATE `item` SET `plink` = '%s', `event-id` = %d  WHERE `uid` = %d AND `id` = %d",
 | 
			
		||||
			//	dbesc($plink),
 | 
			
		||||
			//	intval($event['id']),
 | 
			
		||||
			//	intval($arr['uid']),
 | 
			
		||||
			//	intval($item_id)
 | 
			
		||||
			//);
 | 
			
		||||
			q("UPDATE `item` SET `event-id` = %d  WHERE `uid` = %d AND `id` = %d",
 | 
			
		||||
				intval($event['id']),
 | 
			
		||||
				intval($arr['uid']),
 | 
			
		||||
| 
						 | 
				
			
			@ -675,9 +656,12 @@ function process_events($arr) {
 | 
			
		|||
 * @param string $timezone The timezone of the user (not implemented yet).
 | 
			
		||||
 *
 | 
			
		||||
 * @return string Content according to selected export format.
 | 
			
		||||
 *
 | 
			
		||||
 * @todo Implement timezone support
 | 
			
		||||
 */
 | 
			
		||||
function event_format_export ($events, $format = 'ical', $timezone) {
 | 
			
		||||
	if (! ((is_array($events)) && count($events))) {
 | 
			
		||||
function event_format_export($events, $format = 'ical', $timezone)
 | 
			
		||||
{
 | 
			
		||||
	if (!((is_array($events)) && count($events))) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,11 @@
 | 
			
		|||
<?php
 | 
			
		||||
function create_files_from_item($itemid) {
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
function create_files_from_item($itemid)
 | 
			
		||||
{
 | 
			
		||||
	$messages = q("SELECT `guid`, `uid`, `id`, `edited`, `deleted`, `file`, `parent` FROM `item` WHERE `id` = %d LIMIT 1", intval($itemid));
 | 
			
		||||
 | 
			
		||||
	if (!$messages)
 | 
			
		||||
	if (!$messages) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$message = $messages[0];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -19,18 +19,23 @@ function create_files_from_item($itemid) {
 | 
			
		|||
	if ($message["deleted"])
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	if (preg_match_all("/\[(.*?)\]/ism", $message["file"], $files))
 | 
			
		||||
		foreach ($files[1] as $file)
 | 
			
		||||
			$r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')",
 | 
			
		||||
	if (preg_match_all("/\[(.*?)\]/ism", $message["file"], $files)) {
 | 
			
		||||
		foreach ($files[1] as $file) {
 | 
			
		||||
			q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')",
 | 
			
		||||
				intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_FILE), dbesc($file));
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (preg_match_all("/\<(.*?)\>/ism", $message["file"], $files))
 | 
			
		||||
		foreach ($files[1] as $file)
 | 
			
		||||
			$r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')",
 | 
			
		||||
	if (preg_match_all("/\<(.*?)\>/ism", $message["file"], $files)) {
 | 
			
		||||
		foreach ($files[1] as $file) {
 | 
			
		||||
			q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`) VALUES (%d, %d, %d, %d, '%s')",
 | 
			
		||||
				intval($message["uid"]), intval($itemid), intval(TERM_OBJ_POST), intval(TERM_CATEGORY), dbesc($file));
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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));
 | 
			
		||||
 | 
			
		||||
	if (count($messages)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -39,11 +44,12 @@ function create_files_from_itemuri($itemuri, $uid) {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function update_files_for_items() {
 | 
			
		||||
function update_files_for_items()
 | 
			
		||||
{
 | 
			
		||||
	$messages = q("SELECT `id` FROM `item` where file !=''");
 | 
			
		||||
 | 
			
		||||
	foreach ($messages as $message) {
 | 
			
		||||
		echo $message["id"]."\n";
 | 
			
		||||
		echo $message["id"] . "\n";
 | 
			
		||||
		create_files_from_item($message["id"]);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
<?php
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @file include/follow.php
 | 
			
		||||
 */
 | 
			
		||||
| 
						 | 
				
			
			@ -16,21 +17,24 @@ use Friendica\Protocol\OStatus;
 | 
			
		|||
use Friendica\Protocol\PortableContact;
 | 
			
		||||
use Friendica\Protocol\Salmon;
 | 
			
		||||
 | 
			
		||||
function update_contact($id) {
 | 
			
		||||
function update_contact($id)
 | 
			
		||||
{
 | 
			
		||||
	/*
 | 
			
		||||
	Warning: Never ever fetch the public key via Probe::uri and write it into the contacts.
 | 
			
		||||
	This will reliably kill your communication with Friendica contacts.
 | 
			
		||||
	*/
 | 
			
		||||
	  Warning: Never ever fetch the public key via Probe::uri and write it into the contacts.
 | 
			
		||||
	  This will reliably kill your communication with Friendica contacts.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	$r = q("SELECT `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `network` FROM `contact` WHERE `id` = %d", intval($id));
 | 
			
		||||
	if (!$r)
 | 
			
		||||
	if (!$r) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$ret = Probe::uri($r[0]["url"]);
 | 
			
		||||
 | 
			
		||||
	// If Probe::uri fails the network code will be different
 | 
			
		||||
	if ($ret["network"] != $r[0]["network"])
 | 
			
		||||
	if ($ret["network"] != $r[0]["network"]) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$update = false;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -43,8 +47,9 @@ function update_contact($id) {
 | 
			
		|||
			$update = true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!$update)
 | 
			
		||||
	if (!$update) {
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	q("UPDATE `contact` SET `url` = '%s', `nurl` = '%s', `addr` = '%s', `alias` = '%s', `batch` = '%s', `notify` = '%s', `poll` = '%s', `poco` = '%s' WHERE `id` = %d",
 | 
			
		||||
		dbesc($ret['url']),
 | 
			
		||||
| 
						 | 
				
			
			@ -64,29 +69,34 @@ function update_contact($id) {
 | 
			
		|||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Takes a $uid and a url/handle and adds a new contact
 | 
			
		||||
// Currently if the contact is DFRN, interactive needs to be true, to redirect to the
 | 
			
		||||
// dfrn_request page.
 | 
			
		||||
 | 
			
		||||
// Otherwise this can be used to bulk add statusnet contacts, twitter contacts, etc.
 | 
			
		||||
// Returns an array
 | 
			
		||||
//  $return['success'] boolean true if successful
 | 
			
		||||
//  $return['message'] error text if success is false.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		||||
 | 
			
		||||
	$result = array('cid' => -1, 'success' => false,'message' => '');
 | 
			
		||||
/**
 | 
			
		||||
 * Takes a $uid and a url/handle and adds a new contact
 | 
			
		||||
 * Currently if the contact is DFRN, interactive needs to be true, to redirect to the
 | 
			
		||||
 * dfrn_request page.
 | 
			
		||||
 *
 | 
			
		||||
 * Otherwise this can be used to bulk add statusnet contacts, twitter contacts, etc.
 | 
			
		||||
 *
 | 
			
		||||
 * Returns an array
 | 
			
		||||
 * $return['success'] boolean true if successful
 | 
			
		||||
 * $return['message'] error text if success is false.
 | 
			
		||||
 *
 | 
			
		||||
 * @brief Takes a $uid and a url/handle and adds a new contact
 | 
			
		||||
 * @param int    $uid
 | 
			
		||||
 * @param string $url
 | 
			
		||||
 * @param bool   $interactive
 | 
			
		||||
 * @param string $network
 | 
			
		||||
 * @return boolean|string
 | 
			
		||||
 */
 | 
			
		||||
function new_contact($uid, $url, $interactive = false, $network = '')
 | 
			
		||||
{
 | 
			
		||||
	$result = array('cid' => -1, 'success' => false, 'message' => '');
 | 
			
		||||
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	// remove ajax junk, e.g. Twitter
 | 
			
		||||
	$url = str_replace('/#!/', '/', $url);
 | 
			
		||||
 | 
			
		||||
	$url = str_replace('/#!/','/',$url);
 | 
			
		||||
 | 
			
		||||
	if (! allowed_url($url)) {
 | 
			
		||||
	if (!allowed_url($url)) {
 | 
			
		||||
		$result['message'] = t('Disallowed profile URL.');
 | 
			
		||||
		return $result;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -96,7 +106,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		|||
		return $result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! $url) {
 | 
			
		||||
	if (!$url) {
 | 
			
		||||
		$result['message'] = t('Connect URL missing.');
 | 
			
		||||
		return $result;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -105,14 +115,14 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		|||
 | 
			
		||||
	call_hooks('follow', $arr);
 | 
			
		||||
 | 
			
		||||
	if (x($arr['contact'],'name')) {
 | 
			
		||||
	if (x($arr['contact'], 'name')) {
 | 
			
		||||
		$ret = $arr['contact'];
 | 
			
		||||
	} else {
 | 
			
		||||
		$ret = Probe::uri($url, $network, $uid, false);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (($network != '') && ($ret['network'] != $network)) {
 | 
			
		||||
		logger('Expected network '.$network.' does not match actual network '.$ret['network']);
 | 
			
		||||
		logger('Expected network ' . $network . ' does not match actual network ' . $ret['network']);
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -128,7 +138,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		|||
 | 
			
		||||
			// NOTREACHED
 | 
			
		||||
		}
 | 
			
		||||
	} elseif (Config::get('system','dfrn_only')) {
 | 
			
		||||
	} elseif (Config::get('system', 'dfrn_only')) {
 | 
			
		||||
		$result['message'] = t('This site is not configured to allow communications with other networks.') . EOL;
 | 
			
		||||
		$result['message'] != t('No compatible communication protocols or feeds were discovered.') . EOL;
 | 
			
		||||
		return $result;
 | 
			
		||||
| 
						 | 
				
			
			@ -136,36 +146,36 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		|||
 | 
			
		||||
	// This extra param just confuses things, remove it
 | 
			
		||||
	if ($ret['network'] === NETWORK_DIASPORA) {
 | 
			
		||||
		$ret['url'] = str_replace('?absolute=true','',$ret['url']);
 | 
			
		||||
		$ret['url'] = str_replace('?absolute=true', '', $ret['url']);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// do we have enough information?
 | 
			
		||||
 | 
			
		||||
	if (! ((x($ret,'name')) && (x($ret,'poll')) && ((x($ret,'url')) || (x($ret,'addr'))))) {
 | 
			
		||||
		$result['message'] .=  t('The profile address specified does not provide adequate information.') . EOL;
 | 
			
		||||
		if (! x($ret,'poll')) {
 | 
			
		||||
	if (!((x($ret, 'name')) && (x($ret, 'poll')) && ((x($ret, 'url')) || (x($ret, 'addr'))))) {
 | 
			
		||||
		$result['message'] .= t('The profile address specified does not provide adequate information.') . EOL;
 | 
			
		||||
		if (!x($ret, 'poll')) {
 | 
			
		||||
			$result['message'] .= t('No compatible communication protocols or feeds were discovered.') . EOL;
 | 
			
		||||
		}
 | 
			
		||||
		if (! x($ret,'name')) {
 | 
			
		||||
			$result['message'] .=  t('An author or name was not found.') . EOL;
 | 
			
		||||
		if (!x($ret, 'name')) {
 | 
			
		||||
			$result['message'] .= t('An author or name was not found.') . EOL;
 | 
			
		||||
		}
 | 
			
		||||
		if (! x($ret,'url')) {
 | 
			
		||||
			$result['message'] .=  t('No browser URL could be matched to this address.') . EOL;
 | 
			
		||||
		if (!x($ret, 'url')) {
 | 
			
		||||
			$result['message'] .= t('No browser URL could be matched to this address.') . EOL;
 | 
			
		||||
		}
 | 
			
		||||
		if (strpos($url,'@') !== false) {
 | 
			
		||||
			$result['message'] .=  t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL;
 | 
			
		||||
			$result['message'] .=  t('Use mailto: in front of address to force email check.') . EOL;
 | 
			
		||||
		if (strpos($url, '@') !== false) {
 | 
			
		||||
			$result['message'] .= t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL;
 | 
			
		||||
			$result['message'] .= t('Use mailto: in front of address to force email check.') . EOL;
 | 
			
		||||
		}
 | 
			
		||||
		return $result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ($ret['network'] === NETWORK_OSTATUS && Config::get('system','ostatus_disabled')) {
 | 
			
		||||
	if ($ret['network'] === NETWORK_OSTATUS && Config::get('system', 'ostatus_disabled')) {
 | 
			
		||||
		$result['message'] .= t('The profile address specified belongs to a network which has been disabled on this site.') . EOL;
 | 
			
		||||
		$ret['notify'] = '';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! $ret['notify']) {
 | 
			
		||||
		$result['message'] .=  t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL;
 | 
			
		||||
	if (!$ret['notify']) {
 | 
			
		||||
		$result['message'] .= t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$writeable = ((($ret['network'] === NETWORK_OSTATUS) && ($ret['notify'])) ? 1 : 0);
 | 
			
		||||
| 
						 | 
				
			
			@ -189,10 +199,11 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		|||
		dbesc($ret['network'])
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	if (!DBM::is_result($r))
 | 
			
		||||
	if (!DBM::is_result($r)) {
 | 
			
		||||
		$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` = '%s' LIMIT 1",
 | 
			
		||||
			intval($uid), dbesc(normalise_link($url)), dbesc($ret['network'])
 | 
			
		||||
	);
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (DBM::is_result($r)) {
 | 
			
		||||
		// update contact
 | 
			
		||||
| 
						 | 
				
			
			@ -204,7 +215,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		|||
		$new_relation = ((in_array($ret['network'], array(NETWORK_MAIL))) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING);
 | 
			
		||||
 | 
			
		||||
		// create contact record
 | 
			
		||||
		$r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `network`, `pubkey`, `rel`, `priority`,
 | 
			
		||||
		q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `network`, `pubkey`, `rel`, `priority`,
 | 
			
		||||
			`writable`, `hidden`, `blocked`, `readonly`, `pending`, `subhub` )
 | 
			
		||||
			VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0, %d ) ",
 | 
			
		||||
			intval($uid),
 | 
			
		||||
| 
						 | 
				
			
			@ -235,13 +246,13 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		|||
		intval($uid)
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	if (! DBM::is_result($r)) {
 | 
			
		||||
		$result['message'] .=  t('Unable to retrieve contact information.') . EOL;
 | 
			
		||||
	if (!DBM::is_result($r)) {
 | 
			
		||||
		$result['message'] .= t('Unable to retrieve contact information.') . EOL;
 | 
			
		||||
		return $result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$contact = $r[0];
 | 
			
		||||
	$contact_id  = $r[0]['id'];
 | 
			
		||||
	$contact_id = $r[0]['id'];
 | 
			
		||||
	$result['cid'] = $contact_id;
 | 
			
		||||
 | 
			
		||||
	Group::addMember(User::getDefaultGroup($uid, $contact["network"]), $contact_id);
 | 
			
		||||
| 
						 | 
				
			
			@ -270,7 +281,7 @@ function new_contact($uid, $url, $interactive = false, $network = '') {
 | 
			
		|||
 | 
			
		||||
		if ($contact['network'] == NETWORK_DIASPORA) {
 | 
			
		||||
			$ret = Diaspora::sendShare($a->user, $contact);
 | 
			
		||||
			logger('share returns: '.$ret);
 | 
			
		||||
			logger('share returns: ' . $ret);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,15 +1,14 @@
 | 
			
		|||
<?php
 | 
			
		||||
require_once("include/html2bbcode.php");
 | 
			
		||||
 | 
			
		||||
require_once 'include/html2bbcode.php';
 | 
			
		||||
 | 
			
		||||
function breaklines($line, $level, $wraplength = 75)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
	if ($wraplength == 0)
 | 
			
		||||
	if ($wraplength == 0) {
 | 
			
		||||
		$wraplength = 2000000;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//	return($line);
 | 
			
		||||
 | 
			
		||||
	$wraplen = $wraplength-$level;
 | 
			
		||||
	$wraplen = $wraplength - $level;
 | 
			
		||||
 | 
			
		||||
	$newlines = array();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -20,27 +19,28 @@ function breaklines($line, $level, $wraplength = 75)
 | 
			
		|||
 | 
			
		||||
		$pos = strrpos($subline, ' ');
 | 
			
		||||
 | 
			
		||||
		if ($pos == 0)
 | 
			
		||||
		if ($pos == 0) {
 | 
			
		||||
			$pos = strpos($line, ' ');
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (($pos > 0) && strlen($line) > $wraplen) {
 | 
			
		||||
			$newline = trim(substr($line, 0, $pos));
 | 
			
		||||
			if ($level > 0)
 | 
			
		||||
                		$newline = str_repeat(">", $level).' '.$newline;
 | 
			
		||||
			if ($level > 0) {
 | 
			
		||||
				$newline = str_repeat(">", $level) . ' ' . $newline;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$newlines[] = $newline." ";
 | 
			
		||||
			$line = substr($line, $pos+1);
 | 
			
		||||
			$newlines[] = $newline . " ";
 | 
			
		||||
			$line = substr($line, $pos + 1);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	} while ((strlen($line) > $wraplen) && !($oldline == $line));
 | 
			
		||||
 | 
			
		||||
	if ($level > 0)
 | 
			
		||||
		$line = str_repeat(">", $level).' '.$line;
 | 
			
		||||
	if ($level > 0) {
 | 
			
		||||
		$line = str_repeat(">", $level) . ' ' . $line;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$newlines[] = $line;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	return(implode($newlines, "\n"));
 | 
			
		||||
	return implode($newlines, "\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function quotelevel($message, $wraplength = 75)
 | 
			
		||||
| 
						 | 
				
			
			@ -49,62 +49,72 @@ function quotelevel($message, $wraplength = 75)
 | 
			
		|||
 | 
			
		||||
	$newlines = array();
 | 
			
		||||
	$level = 0;
 | 
			
		||||
	foreach ($lines as $line) {;
 | 
			
		||||
	foreach ($lines as $line) {
 | 
			
		||||
		$line = trim($line);
 | 
			
		||||
		$startquote = false;
 | 
			
		||||
		while (strpos("*".$line, '[quote]') > 0) {
 | 
			
		||||
		while (strpos("*" . $line, '[quote]') > 0) {
 | 
			
		||||
			$level++;
 | 
			
		||||
			$pos = strpos($line, '[quote]');
 | 
			
		||||
			$line = substr($line, 0, $pos).substr($line, $pos+7);
 | 
			
		||||
			$line = substr($line, 0, $pos) . substr($line, $pos + 7);
 | 
			
		||||
			$startquote = true;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$currlevel = $level;
 | 
			
		||||
 | 
			
		||||
		while (strpos("*".$line, '[/quote]') > 0) {
 | 
			
		||||
		while (strpos("*" . $line, '[/quote]') > 0) {
 | 
			
		||||
			$level--;
 | 
			
		||||
			if ($level < 0)
 | 
			
		||||
			if ($level < 0) {
 | 
			
		||||
				$level = 0;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			$pos = strpos($line, '[/quote]');
 | 
			
		||||
			$line = substr($line, 0, $pos).substr($line, $pos+8);
 | 
			
		||||
			$line = substr($line, 0, $pos) . substr($line, $pos + 8);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (!$startquote || ($line != ''))
 | 
			
		||||
		if (!$startquote || ($line != '')) {
 | 
			
		||||
			$newlines[] = breaklines($line, $currlevel, $wraplength);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return(implode($newlines, "\n"));
 | 
			
		||||
 | 
			
		||||
	return implode($newlines, "\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function collecturls($message) {
 | 
			
		||||
function collecturls($message)
 | 
			
		||||
{
 | 
			
		||||
	$pattern = '/<a.*?href="(.*?)".*?>(.*?)<\/a>/is';
 | 
			
		||||
	preg_match_all($pattern, $message, $result, PREG_SET_ORDER);
 | 
			
		||||
 | 
			
		||||
	$urls = array();
 | 
			
		||||
	foreach ($result as $treffer) {
 | 
			
		||||
 | 
			
		||||
		$ignore = false;
 | 
			
		||||
 | 
			
		||||
		// A list of some links that should be ignored
 | 
			
		||||
		$list = array("/user/", "/tag/", "/group/", "/profile/", "/search?search=", "/search?tag=", "mailto:", "/u/", "/node/",
 | 
			
		||||
				"//facebook.com/profile.php?id=", "//plus.google.com/", "//twitter.com/");
 | 
			
		||||
		foreach ($list as $listitem)
 | 
			
		||||
			if (strpos($treffer[1], $listitem) !== false)
 | 
			
		||||
			"//facebook.com/profile.php?id=", "//plus.google.com/", "//twitter.com/");
 | 
			
		||||
		foreach ($list as $listitem) {
 | 
			
		||||
			if (strpos($treffer[1], $listitem) !== false) {
 | 
			
		||||
				$ignore = true;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ((strpos($treffer[1], "//twitter.com/") !== false) && (strpos($treffer[1], "/status/") !== false))
 | 
			
		||||
				$ignore = false;
 | 
			
		||||
		if ((strpos($treffer[1], "//twitter.com/") !== false) && (strpos($treffer[1], "/status/") !== false)) {
 | 
			
		||||
			$ignore = false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ((strpos($treffer[1], "//plus.google.com/") !== false) && (strpos($treffer[1], "/posts") !== false))
 | 
			
		||||
				$ignore = false;
 | 
			
		||||
		if ((strpos($treffer[1], "//plus.google.com/") !== false) && (strpos($treffer[1], "/posts") !== false)) {
 | 
			
		||||
			$ignore = false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if ((strpos($treffer[1], "//plus.google.com/") !== false) && (strpos($treffer[1], "/photos") !== false))
 | 
			
		||||
				$ignore = false;
 | 
			
		||||
		if ((strpos($treffer[1], "//plus.google.com/") !== false) && (strpos($treffer[1], "/photos") !== false)) {
 | 
			
		||||
			$ignore = false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (!$ignore)
 | 
			
		||||
		if (!$ignore) {
 | 
			
		||||
			$urls[$treffer[1]] = $treffer[1];
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return($urls);
 | 
			
		||||
 | 
			
		||||
	return $urls;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function html2plain($html, $wraplength = 75, $compact = false)
 | 
			
		||||
| 
						 | 
				
			
			@ -140,20 +150,21 @@ function html2plain($html, $wraplength = 75, $compact = false)
 | 
			
		|||
 | 
			
		||||
	// MyBB-Auszeichnungen
 | 
			
		||||
	/*
 | 
			
		||||
	node2bbcode($doc, 'span', array('style'=>'text-decoration: underline;'), '_', '_');
 | 
			
		||||
	node2bbcode($doc, 'span', array('style'=>'font-style: italic;'), '/', '/');
 | 
			
		||||
	node2bbcode($doc, 'span', array('style'=>'font-weight: bold;'), '*', '*');
 | 
			
		||||
	  node2bbcode($doc, 'span', array('style'=>'text-decoration: underline;'), '_', '_');
 | 
			
		||||
	  node2bbcode($doc, 'span', array('style'=>'font-style: italic;'), '/', '/');
 | 
			
		||||
	  node2bbcode($doc, 'span', array('style'=>'font-weight: bold;'), '*', '*');
 | 
			
		||||
 | 
			
		||||
	node2bbcode($doc, 'strong', array(), '*', '*');
 | 
			
		||||
	node2bbcode($doc, 'b', array(), '*', '*');
 | 
			
		||||
	node2bbcode($doc, 'i', array(), '/', '/');
 | 
			
		||||
	node2bbcode($doc, 'u', array(), '_', '_');
 | 
			
		||||
	*/
 | 
			
		||||
	  node2bbcode($doc, 'strong', array(), '*', '*');
 | 
			
		||||
	  node2bbcode($doc, 'b', array(), '*', '*');
 | 
			
		||||
	  node2bbcode($doc, 'i', array(), '/', '/');
 | 
			
		||||
	  node2bbcode($doc, 'u', array(), '_', '_');
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	if ($compact)
 | 
			
		||||
	if ($compact) {
 | 
			
		||||
		node2bbcode($doc, 'blockquote', array(), "»", "«");
 | 
			
		||||
	else
 | 
			
		||||
	} else {
 | 
			
		||||
		node2bbcode($doc, 'blockquote', array(), '[quote]', "[/quote]\n");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	node2bbcode($doc, 'br', array(), "\n", '');
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -166,7 +177,7 @@ function html2plain($html, $wraplength = 75, $compact = false)
 | 
			
		|||
	//node2bbcode($doc, 'ol', array(), "\n[list=1]", "[/list]\n");
 | 
			
		||||
	node2bbcode($doc, 'li', array(), "\n* ", "\n");
 | 
			
		||||
 | 
			
		||||
	node2bbcode($doc, 'hr', array(), "\n".str_repeat("-", 70)."\n", "");
 | 
			
		||||
	node2bbcode($doc, 'hr', array(), "\n" . str_repeat("-", 70) . "\n", "");
 | 
			
		||||
 | 
			
		||||
	node2bbcode($doc, 'tr', array(), "\n", "");
 | 
			
		||||
	node2bbcode($doc, 'td', array(), "\t", "");
 | 
			
		||||
| 
						 | 
				
			
			@ -184,12 +195,13 @@ function html2plain($html, $wraplength = 75, $compact = false)
 | 
			
		|||
	//node2bbcode($doc, 'img', array('alt'=>'/(.+)/'), '$1', '');
 | 
			
		||||
	//node2bbcode($doc, 'img', array('title'=>'/(.+)/'), '$1', '');
 | 
			
		||||
	//node2bbcode($doc, 'img', array(), '', '');
 | 
			
		||||
	if (!$compact)
 | 
			
		||||
		node2bbcode($doc, 'img', array('src'=>'/(.+)/'), ' [img]$1', '[/img] ');
 | 
			
		||||
	else
 | 
			
		||||
		node2bbcode($doc, 'img', array('src'=>'/(.+)/'), ' ', ' ');
 | 
			
		||||
	if (!$compact) {
 | 
			
		||||
		node2bbcode($doc, 'img', array('src' => '/(.+)/'), ' [img]$1', '[/img] ');
 | 
			
		||||
	} else {
 | 
			
		||||
		node2bbcode($doc, 'img', array('src' => '/(.+)/'), ' ', ' ');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), ' $1 ', '', true);
 | 
			
		||||
	node2bbcode($doc, 'iframe', array('src' => '/(.+)/'), ' $1 ', '', true);
 | 
			
		||||
 | 
			
		||||
	$message = $doc->saveHTML();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +212,7 @@ function html2plain($html, $wraplength = 75, $compact = false)
 | 
			
		|||
 | 
			
		||||
	// was ersetze ich da?
 | 
			
		||||
	// Irgendein stoerrisches UTF-Zeug
 | 
			
		||||
	$message = str_replace(chr(194).chr(160), ' ', $message);
 | 
			
		||||
	$message = str_replace(chr(194) . chr(160), ' ', $message);
 | 
			
		||||
 | 
			
		||||
	$message = str_replace(" ", " ", $message);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -212,13 +224,12 @@ function html2plain($html, $wraplength = 75, $compact = false)
 | 
			
		|||
 | 
			
		||||
	$message = html_entity_decode($message, ENT_QUOTES, 'UTF-8');
 | 
			
		||||
 | 
			
		||||
	if (!$compact && ($message != "")) {
 | 
			
		||||
		$counter = 1;
 | 
			
		||||
		foreach ($urls as $id=>$url)
 | 
			
		||||
			if ($url != "")
 | 
			
		||||
				if (strpos($message, $url) === false)
 | 
			
		||||
					$message .= "\n".$url." ";
 | 
			
		||||
					//$message .= "\n[".($counter++)."] ".$url;
 | 
			
		||||
	if (!$compact && ($message != '')) {
 | 
			
		||||
		foreach ($urls as $id => $url) {
 | 
			
		||||
			if ($url != '' && strpos($message, $url) === false) {
 | 
			
		||||
				$message .= "\n" . $url . ' ';
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$message = str_replace("\n«", "«\n", $message);
 | 
			
		||||
| 
						 | 
				
			
			@ -231,5 +242,5 @@ function html2plain($html, $wraplength = 75, $compact = false)
 | 
			
		|||
 | 
			
		||||
	$message = quotelevel(trim($message), $wraplength);
 | 
			
		||||
 | 
			
		||||
	return(trim($message));
 | 
			
		||||
	return trim($message);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -230,7 +230,6 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
 | 
			
		|||
 | 
			
		||||
	$o = '';
 | 
			
		||||
	$location = false;
 | 
			
		||||
	$address = false;
 | 
			
		||||
 | 
			
		||||
	// This function can also use contact information in $profile
 | 
			
		||||
	$is_contact = x($profile, 'cid');
 | 
			
		||||
| 
						 | 
				
			
			@ -381,7 +380,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true)
 | 
			
		|||
	$xmpp     = x($profile, 'xmpp')     ? t('XMPP:')     : false;
 | 
			
		||||
 | 
			
		||||
	if ((x($profile, 'hidewall') || $block) && !local_user() && !remote_user()) {
 | 
			
		||||
		$location = $pdesc = $gender = $marital = $homepage = $about = false;
 | 
			
		||||
		$location = $gender = $marital = $homepage = $about = false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$split_name = Diaspora::splitName($profile['name']);
 | 
			
		||||
| 
						 | 
				
			
			@ -551,10 +550,8 @@ function get_birthdays()
 | 
			
		|||
				$cids[] = $rr['cid'];
 | 
			
		||||
 | 
			
		||||
				$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
 | 
			
		||||
				$sparkle = '';
 | 
			
		||||
				$url = $rr['url'];
 | 
			
		||||
				if ($rr['network'] === NETWORK_DFRN) {
 | 
			
		||||
					$sparkle = ' sparkle';
 | 
			
		||||
					$url = System::baseUrl() . '/redir/' . $rr['cid'];
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,13 +37,20 @@ function construct_verb($item) {
 | 
			
		|||
 | 
			
		||||
/* limit_body_size()
 | 
			
		||||
 *
 | 
			
		||||
 *		The purpose of this function is to apply system message length limits to
 | 
			
		||||
 *		imported messages without including any embedded photos in the length
 | 
			
		||||
 *
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
function limit_body_size($body) {
 | 
			
		||||
 | 
			
		||||
//	logger('limit_body_size: start', LOGGER_DEBUG);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The purpose of this function is to apply system message length limits to
 | 
			
		||||
 * imported messages without including any embedded photos in the length
 | 
			
		||||
 *
 | 
			
		||||
 * @brief Truncates imported message body string length to max_import_size
 | 
			
		||||
 * @param string $body
 | 
			
		||||
 * @return string
 | 
			
		||||
 */
 | 
			
		||||
function limit_body_size($body)
 | 
			
		||||
{
 | 
			
		||||
	$maxlen = get_max_import_size();
 | 
			
		||||
 | 
			
		||||
	// If the length of the body, including the embedded images, is smaller
 | 
			
		||||
| 
						 | 
				
			
			@ -55,7 +62,6 @@ function limit_body_size($body) {
 | 
			
		|||
		$orig_body = $body;
 | 
			
		||||
		$new_body = '';
 | 
			
		||||
		$textlen = 0;
 | 
			
		||||
		$max_found = false;
 | 
			
		||||
 | 
			
		||||
		$img_start = strpos($orig_body, '[img');
 | 
			
		||||
		$img_st_close = ($img_start !== false ? strpos(substr($orig_body, $img_start), ']') : false);
 | 
			
		||||
| 
						 | 
				
			
			@ -110,12 +116,10 @@ function limit_body_size($body) {
 | 
			
		|||
			if ($textlen < $maxlen) {
 | 
			
		||||
				logger('limit_body_size: the limit happens after the end of the last image', LOGGER_DEBUG);
 | 
			
		||||
				$new_body = $new_body . substr($orig_body, 0, $maxlen - $textlen);
 | 
			
		||||
				$textlen = $maxlen;
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			logger('limit_body_size: the text size with embedded images extracted did not violate the limit', LOGGER_DEBUG);
 | 
			
		||||
			$new_body = $new_body . $orig_body;
 | 
			
		||||
			$textlen += strlen($orig_body);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $new_body;
 | 
			
		||||
| 
						 | 
				
			
			@ -169,12 +173,6 @@ function add_page_info_data($data) {
 | 
			
		|||
		return "";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (sizeof($data["images"]) > 0) {
 | 
			
		||||
		$preview = $data["images"][0];
 | 
			
		||||
	} else {
 | 
			
		||||
		$preview = "";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Escape some bad characters
 | 
			
		||||
	$data["url"] = str_replace(array("[", "]"), array("[", "]"), htmlentities($data["url"], ENT_QUOTES, 'UTF-8', false));
 | 
			
		||||
	$data["title"] = str_replace(array("[", "]"), array("[", "]"), htmlentities($data["title"], ENT_QUOTES, 'UTF-8', false));
 | 
			
		||||
| 
						 | 
				
			
			@ -854,7 +852,6 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f
 | 
			
		|||
			logger("item_store: Checking if parent ".$parent_id." has to be tagged as mention for user ".$arr['uid'], LOGGER_DEBUG);
 | 
			
		||||
			$u = q("SELECT `nickname` FROM `user` WHERE `uid` = %d", intval($arr['uid']));
 | 
			
		||||
			if (DBM::is_result($u)) {
 | 
			
		||||
				$a = get_app();
 | 
			
		||||
				$self = normalise_link(System::baseUrl() . '/profile/' . $u[0]['nickname']);
 | 
			
		||||
				logger("item_store: 'myself' is ".$self." for parent ".$parent_id." checking against ".$arr['author-link']." and ".$arr['owner-link'], LOGGER_DEBUG);
 | 
			
		||||
				if ((normalise_link($arr['author-link']) == $self) || (normalise_link($arr['owner-link']) == $self)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1051,7 +1048,7 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	// Set parent id
 | 
			
		||||
	$r = dba::update('item', array('parent' => $parent_id), array('id' => $current_post));
 | 
			
		||||
	dba::update('item', array('parent' => $parent_id), array('id' => $current_post));
 | 
			
		||||
 | 
			
		||||
	$arr['id'] = $current_post;
 | 
			
		||||
	$arr['parent'] = $parent_id;
 | 
			
		||||
| 
						 | 
				
			
			@ -1205,8 +1202,6 @@ function item_body_set_hashtags(&$item) {
 | 
			
		|||
	// Otherwise there could be problems with hashtags like #test and #test2
 | 
			
		||||
	rsort($tags);
 | 
			
		||||
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	$URLSearchString = "^\[\]";
 | 
			
		||||
 | 
			
		||||
	// All hashtags should point to the home server if "local_tags" is activated
 | 
			
		||||
| 
						 | 
				
			
			@ -1315,7 +1310,6 @@ function get_item_contact($item, $contacts) {
 | 
			
		|||
	foreach ($contacts as $contact) {
 | 
			
		||||
		if ($contact['id'] == $item['contact-id']) {
 | 
			
		||||
			return $contact;
 | 
			
		||||
			break; // NOTREACHED
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return false;
 | 
			
		||||
| 
						 | 
				
			
			@ -1327,16 +1321,13 @@ function get_item_contact($item, $contacts) {
 | 
			
		|||
 * @param int $item_id
 | 
			
		||||
 * @return bool true if item was deleted, else false
 | 
			
		||||
 */
 | 
			
		||||
function tag_deliver($uid, $item_id) {
 | 
			
		||||
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
function tag_deliver($uid, $item_id)
 | 
			
		||||
{
 | 
			
		||||
	$mention = false;
 | 
			
		||||
 | 
			
		||||
	$u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
 | 
			
		||||
		intval($uid)
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	if (! DBM::is_result($u)) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -1344,7 +1335,6 @@ function tag_deliver($uid, $item_id) {
 | 
			
		|||
	$community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
 | 
			
		||||
	$prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	$i = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
 | 
			
		||||
		intval($item_id),
 | 
			
		||||
		intval($uid)
 | 
			
		||||
| 
						 | 
				
			
			@ -1674,15 +1664,13 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
 | 
			
		|||
	if (is_array($contact)) {
 | 
			
		||||
		if (($contact['network'] == NETWORK_OSTATUS && $contact['rel'] == CONTACT_IS_SHARING)
 | 
			
		||||
			|| ($sharing && $contact['rel'] == CONTACT_IS_FOLLOWER)) {
 | 
			
		||||
			$r = dba::update('contact', array('rel' => CONTACT_IS_FRIEND, 'writable' => true),
 | 
			
		||||
			dba::update('contact', array('rel' => CONTACT_IS_FRIEND, 'writable' => true),
 | 
			
		||||
					array('id' => $contact['id'], 'uid' => $importer['uid']));
 | 
			
		||||
		}
 | 
			
		||||
		// send email notification to owner?
 | 
			
		||||
	} else {
 | 
			
		||||
 | 
			
		||||
		// create contact record
 | 
			
		||||
 | 
			
		||||
		$r = q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `rel`,
 | 
			
		||||
		q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `rel`,
 | 
			
		||||
			`blocked`, `readonly`, `pending`, `writable`)
 | 
			
		||||
			VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, 0, 0, 1, 1)",
 | 
			
		||||
			intval($importer['uid']),
 | 
			
		||||
| 
						 | 
				
			
			@ -1695,6 +1683,7 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
 | 
			
		|||
			dbesc(NETWORK_OSTATUS),
 | 
			
		||||
			intval(CONTACT_IS_FOLLOWER)
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		$r = q("SELECT `id`, `network` FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `pending` = 1 LIMIT 1",
 | 
			
		||||
				intval($importer['uid']),
 | 
			
		||||
				dbesc($url)
 | 
			
		||||
| 
						 | 
				
			
			@ -1708,9 +1697,7 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
 | 
			
		|||
		$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
 | 
			
		||||
			intval($importer['uid'])
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		if (DBM::is_result($r) && !in_array($r[0]['page-flags'], array(PAGE_SOAPBOX, PAGE_FREELOVE, PAGE_COMMUNITY))) {
 | 
			
		||||
 | 
			
		||||
			// create notification
 | 
			
		||||
			$hash = random_string();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1742,7 +1729,7 @@ function new_follower($importer, $contact, $datarray, $item, $sharing = false) {
 | 
			
		|||
 | 
			
		||||
			}
 | 
			
		||||
		} elseif (DBM::is_result($r) && in_array($r[0]['page-flags'], array(PAGE_SOAPBOX, PAGE_FREELOVE, PAGE_COMMUNITY))) {
 | 
			
		||||
			$r = q("UPDATE `contact` SET `pending` = 0 WHERE `uid` = %d AND `url` = '%s' AND `pending` LIMIT 1",
 | 
			
		||||
			q("UPDATE `contact` SET `pending` = 0 WHERE `uid` = %d AND `url` = '%s' AND `pending` LIMIT 1",
 | 
			
		||||
					intval($importer['uid']),
 | 
			
		||||
					dbesc($url)
 | 
			
		||||
			);
 | 
			
		||||
| 
						 | 
				
			
			@ -1798,7 +1785,7 @@ function subscribe_to_hub($url, $importer, $contact, $hubmode = 'subscribe') {
 | 
			
		|||
	logger('subscribe_to_hub: ' . $hubmode . ' ' . $contact['name'] . ' to hub ' . $url . ' endpoint: '  . $push_url . ' with verifier ' . $verify_token);
 | 
			
		||||
 | 
			
		||||
	if (!strlen($contact['hub-verify']) || ($contact['hub-verify'] != $verify_token)) {
 | 
			
		||||
		$r = dba::update('contact', array('hub-verify' => $verify_token), array('id' => $contact['id']));
 | 
			
		||||
		dba::update('contact', array('hub-verify' => $verify_token), array('id' => $contact['id']));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	post_url($url, $params);
 | 
			
		||||
| 
						 | 
				
			
			@ -1809,16 +1796,22 @@ function subscribe_to_hub($url, $importer, $contact, $hubmode = 'subscribe') {
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function fix_private_photos($s, $uid, $item = null, $cid = 0) {
 | 
			
		||||
 | 
			
		||||
	if (Config::get('system','disable_embedded')) {
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @param string $s
 | 
			
		||||
 * @param int    $uid
 | 
			
		||||
 * @param array  $item
 | 
			
		||||
 * @param int    $cid
 | 
			
		||||
 * @return string
 | 
			
		||||
 */
 | 
			
		||||
function fix_private_photos($s, $uid, $item = null, $cid = 0)
 | 
			
		||||
{
 | 
			
		||||
	if (Config::get('system', 'disable_embedded')) {
 | 
			
		||||
		return $s;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	logger('fix_private_photos: check for photos', LOGGER_DEBUG);
 | 
			
		||||
	$site = substr(System::baseUrl(),strpos(System::baseUrl(),'://'));
 | 
			
		||||
	$site = substr(System::baseUrl(), strpos(System::baseUrl(), '://'));
 | 
			
		||||
 | 
			
		||||
	$orig_body = $s;
 | 
			
		||||
	$new_body = '';
 | 
			
		||||
| 
						 | 
				
			
			@ -1826,19 +1819,18 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
 | 
			
		|||
	$img_start = strpos($orig_body, '[img');
 | 
			
		||||
	$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);
 | 
			
		||||
	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
 | 
			
		||||
		$image = substr($orig_body, $img_start + $img_st_close, $img_len);
 | 
			
		||||
 | 
			
		||||
		logger('fix_private_photos: found photo ' . $image, LOGGER_DEBUG);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		if (stristr($image , $site . '/photo/')) {
 | 
			
		||||
		if (stristr($image, $site . '/photo/')) {
 | 
			
		||||
			// Only embed locally hosted photos
 | 
			
		||||
			$replace = false;
 | 
			
		||||
			$i = basename($image);
 | 
			
		||||
			$i = str_replace(array('.jpg', '.png', '.gif'),array('', '',''), $i);
 | 
			
		||||
			$i = str_replace(array('.jpg', '.png', '.gif'), array('', '', ''), $i);
 | 
			
		||||
			$x = strpos($i, '-');
 | 
			
		||||
 | 
			
		||||
			if ($x) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1848,7 +1840,6 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) {
 | 
			
		|||
					dbesc($i),
 | 
			
		||||
					intval($res),
 | 
			
		||||
					intval($uid)
 | 
			
		||||
 | 
			
		||||
				);
 | 
			
		||||
				if (DBM::is_result($r)) {
 | 
			
		||||
					/*
 | 
			
		||||
| 
						 | 
				
			
			@ -2161,7 +2152,7 @@ function drop_item($id, $interactive = true) {
 | 
			
		|||
		logger('delete item: ' . $item['id'], LOGGER_DEBUG);
 | 
			
		||||
 | 
			
		||||
		// delete the item
 | 
			
		||||
		$r = dba::update('item', array('deleted' => true, 'title' => '', 'body' => '',
 | 
			
		||||
		dba::update('item', array('deleted' => true, 'title' => '', 'body' => '',
 | 
			
		||||
					'edited' => datetime_convert(), 'changed' => datetime_convert()),
 | 
			
		||||
				array('id' => $item['id']));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,29 +7,32 @@ use Friendica\Core\System;
 | 
			
		|||
use Friendica\Core\Worker;
 | 
			
		||||
use Friendica\Database\DBM;
 | 
			
		||||
 | 
			
		||||
function send_message($recipient=0, $body='', $subject='', $replyto=''){
 | 
			
		||||
 | 
			
		||||
function send_message($recipient = 0, $body = '', $subject = '', $replyto = '')
 | 
			
		||||
{
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	if (! $recipient) return -1;
 | 
			
		||||
	if (!$recipient) {
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! strlen($subject))
 | 
			
		||||
	if (!strlen($subject)) {
 | 
			
		||||
		$subject = t('[no subject]');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$me = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
 | 
			
		||||
		intval(local_user())
 | 
			
		||||
	);
 | 
			
		||||
	$contact = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
 | 
			
		||||
			intval($recipient),
 | 
			
		||||
			intval(local_user())
 | 
			
		||||
		intval($recipient),
 | 
			
		||||
		intval(local_user())
 | 
			
		||||
	);
 | 
			
		||||
 | 
			
		||||
	if (! (count($me) && (count($contact)))) {
 | 
			
		||||
	if (!(count($me) && (count($contact)))) {
 | 
			
		||||
		return -2;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$guid = get_guid(32);
 | 
			
		||||
 	$uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
 | 
			
		||||
	$uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
 | 
			
		||||
 | 
			
		||||
	$convid = 0;
 | 
			
		||||
	$reply = false;
 | 
			
		||||
| 
						 | 
				
			
			@ -38,51 +41,50 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
 | 
			
		|||
 | 
			
		||||
	if (strlen($replyto)) {
 | 
			
		||||
		$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()),
 | 
			
		||||
			dbesc($replyto),
 | 
			
		||||
			dbesc($replyto)
 | 
			
		||||
		);
 | 
			
		||||
		if (DBM::is_result($r))
 | 
			
		||||
		if (DBM::is_result($r)) {
 | 
			
		||||
			$convid = $r[0]['convid'];
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! $convid) {
 | 
			
		||||
 | 
			
		||||
	if (!$convid) {
 | 
			
		||||
		// create a new conversation
 | 
			
		||||
 | 
			
		||||
		$recip_host = substr($contact[0]['url'],strpos($contact[0]['url'],'://')+3);
 | 
			
		||||
		$recip_host = substr($recip_host,0,strpos($recip_host,'/'));
 | 
			
		||||
		$recip_host = substr($contact[0]['url'], strpos($contact[0]['url'], '://') + 3);
 | 
			
		||||
		$recip_host = substr($recip_host, 0, strpos($recip_host, '/'));
 | 
			
		||||
 | 
			
		||||
		$recip_handle = (($contact[0]['addr']) ? $contact[0]['addr'] : $contact[0]['nick'] . '@' . $recip_host);
 | 
			
		||||
		$sender_handle = $a->user['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(),'://') + 3);
 | 
			
		||||
		$sender_handle = $a->user['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
 | 
			
		||||
 | 
			
		||||
		$conv_guid = get_guid(32);
 | 
			
		||||
		$convuri = $recip_handle.':'.$conv_guid;
 | 
			
		||||
		$convuri = $recip_handle . ':' . $conv_guid;
 | 
			
		||||
 | 
			
		||||
		$handles = $recip_handle . ';' . $sender_handle;
 | 
			
		||||
 | 
			
		||||
		$fields = array('uid' => local_user(), 'guid' => $conv_guid, 'creator' => $sender_handle,
 | 
			
		||||
				'created' => datetime_convert(), 'updated' => datetime_convert(),
 | 
			
		||||
				'subject' => $subject, 'recips' => $handles);
 | 
			
		||||
		$r = dba::insert('conv', $fields);
 | 
			
		||||
			'created' => datetime_convert(), 'updated' => datetime_convert(),
 | 
			
		||||
			'subject' => $subject, 'recips' => $handles);
 | 
			
		||||
		dba::insert('conv', $fields);
 | 
			
		||||
 | 
			
		||||
		$r = dba::select('conv', array('id'), array('guid' => $conv_guid, 'uid' => local_user()), array('limit' => 1));
 | 
			
		||||
		if (DBM::is_result($r))
 | 
			
		||||
		if (DBM::is_result($r)) {
 | 
			
		||||
			$convid = $r['id'];
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! $convid) {
 | 
			
		||||
	if (!$convid) {
 | 
			
		||||
		logger('send message: conversation not found.');
 | 
			
		||||
		return -4;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! strlen($replyto)) {
 | 
			
		||||
	if (!strlen($replyto)) {
 | 
			
		||||
		$replyto = $convuri;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	$r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
 | 
			
		||||
	q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
 | 
			
		||||
		`contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`)
 | 
			
		||||
		VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s' )",
 | 
			
		||||
		intval(local_user()),
 | 
			
		||||
| 
						 | 
				
			
			@ -107,8 +109,9 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
 | 
			
		|||
		dbesc($uri),
 | 
			
		||||
		intval(local_user())
 | 
			
		||||
	);
 | 
			
		||||
	if (DBM::is_result($r))
 | 
			
		||||
	if (DBM::is_result($r)) {
 | 
			
		||||
		$post_id = $r[0]['id'];
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 *
 | 
			
		||||
| 
						 | 
				
			
			@ -121,19 +124,17 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
 | 
			
		|||
	 * post and set them to the same permissions as the post itself.
 | 
			
		||||
	 *
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	$match = null;
 | 
			
		||||
 | 
			
		||||
	if (preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
 | 
			
		||||
	if (preg_match_all("/\[img\](.*?)\[\/img\]/", $body, $match)) {
 | 
			
		||||
		$images = $match[1];
 | 
			
		||||
		if (count($images)) {
 | 
			
		||||
			foreach ($images as $image) {
 | 
			
		||||
				if (! stristr($image,System::baseUrl() . '/photo/')) {
 | 
			
		||||
				if (!stristr($image, System::baseUrl() . '/photo/')) {
 | 
			
		||||
					continue;
 | 
			
		||||
				}
 | 
			
		||||
				$image_uri = substr($image,strrpos($image,'/') + 1);
 | 
			
		||||
				$image_uri = substr($image_uri,0, strpos($image_uri,'-'));
 | 
			
		||||
				$r = q("UPDATE `photo` SET `allow_cid` = '%s'
 | 
			
		||||
				$image_uri = substr($image, strrpos($image, '/') + 1);
 | 
			
		||||
				$image_uri = substr($image_uri, 0, strpos($image_uri, '-'));
 | 
			
		||||
				q("UPDATE `photo` SET `allow_cid` = '%s'
 | 
			
		||||
					WHERE `resource-id` = '%s' AND `album` = '%s' AND `uid` = %d ",
 | 
			
		||||
					dbesc('<' . $recipient . '>'),
 | 
			
		||||
					dbesc($image_uri),
 | 
			
		||||
| 
						 | 
				
			
			@ -150,46 +151,42 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
 | 
			
		|||
	} else {
 | 
			
		||||
		return -3;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
 | 
			
		||||
 | 
			
		||||
	if (! $recipient) {
 | 
			
		||||
function send_wallmessage($recipient = '', $body = '', $subject = '', $replyto = '')
 | 
			
		||||
{
 | 
			
		||||
	if (!$recipient) {
 | 
			
		||||
		return -1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (! strlen($subject)) {
 | 
			
		||||
	if (!strlen($subject)) {
 | 
			
		||||
		$subject = t('[no subject]');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$guid = get_guid(32);
 | 
			
		||||
 	$uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
 | 
			
		||||
 | 
			
		||||
	$convid = 0;
 | 
			
		||||
	$reply = false;
 | 
			
		||||
	$uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
 | 
			
		||||
 | 
			
		||||
	$me = Probe::uri($replyto);
 | 
			
		||||
 | 
			
		||||
	if (! $me['name']) {
 | 
			
		||||
	if (!$me['name']) {
 | 
			
		||||
		return -2;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$conv_guid = get_guid(32);
 | 
			
		||||
 | 
			
		||||
	$recip_handle = $recipient['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(),'://') + 3);
 | 
			
		||||
	$recip_handle = $recipient['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
 | 
			
		||||
 | 
			
		||||
	$sender_nick = basename($replyto);
 | 
			
		||||
	$sender_host = substr($replyto,strpos($replyto,'://')+3);
 | 
			
		||||
	$sender_host = substr($sender_host,0,strpos($sender_host,'/'));
 | 
			
		||||
	$sender_host = substr($replyto, strpos($replyto, '://') + 3);
 | 
			
		||||
	$sender_host = substr($sender_host, 0, strpos($sender_host, '/'));
 | 
			
		||||
	$sender_handle = $sender_nick . '@' . $sender_host;
 | 
			
		||||
 | 
			
		||||
	$handles = $recip_handle . ';' . $sender_handle;
 | 
			
		||||
 | 
			
		||||
	$fields = array('uid' => $recipient['uid'], 'guid' => $conv_guid, 'creator' => $sender_handle,
 | 
			
		||||
			'created' => datetime_convert(), 'updated' => datetime_convert(),
 | 
			
		||||
			'subject' => $subject, 'recips' => $handles);
 | 
			
		||||
	$r = dba::insert('conv', $fields);
 | 
			
		||||
		'created' => datetime_convert(), 'updated' => datetime_convert(),
 | 
			
		||||
		'subject' => $subject, 'recips' => $handles);
 | 
			
		||||
	dba::insert('conv', $fields);
 | 
			
		||||
 | 
			
		||||
	$r = dba::select('conv', array('id'), array('guid' => $conv_guid, 'uid' => $recipient['uid']), array('limit' => 1));
 | 
			
		||||
	if (!DBM::is_result($r)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -221,5 +218,4 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
 | 
			
		|||
	);
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -232,8 +232,6 @@ function z_fetch_url($url, $binary = false, &$redirects = 0, $opts = array())
 | 
			
		|||
	$a->set_curl_code($http_code);
 | 
			
		||||
	$a->set_curl_content_type($curl_info['content_type']);
 | 
			
		||||
 | 
			
		||||
	$body = substr($s, strlen($header));
 | 
			
		||||
 | 
			
		||||
	$rc = intval($http_code);
 | 
			
		||||
	$ret['return_code'] = $rc;
 | 
			
		||||
	$ret['success'] = (($rc >= 200 && $rc <= 299) ? true : false);
 | 
			
		||||
| 
						 | 
				
			
			@ -680,8 +678,6 @@ function scale_external_images($srctext, $include_link = true, $scale_replace =
 | 
			
		|||
		$include_link = false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	// Picture addresses can contain special characters
 | 
			
		||||
	$s = htmlspecialchars_decode($srctext);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -855,7 +851,6 @@ function original_url($url, $depth = 1, $fetchbody = false)
 | 
			
		|||
 | 
			
		||||
	$stamp1 = microtime(true);
 | 
			
		||||
 | 
			
		||||
	$siteinfo = array();
 | 
			
		||||
	$ch = curl_init();
 | 
			
		||||
	curl_setopt($ch, CURLOPT_URL, $url);
 | 
			
		||||
	curl_setopt($ch, CURLOPT_HEADER, 1);
 | 
			
		||||
| 
						 | 
				
			
			@ -864,7 +859,7 @@ function original_url($url, $depth = 1, $fetchbody = false)
 | 
			
		|||
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 | 
			
		||||
	curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
 | 
			
		||||
 | 
			
		||||
	$header = curl_exec($ch);
 | 
			
		||||
	curl_exec($ch);
 | 
			
		||||
	$curl_info = @curl_getinfo($ch);
 | 
			
		||||
	$http_code = $curl_info['http_code'];
 | 
			
		||||
	curl_close($ch);
 | 
			
		||||
| 
						 | 
				
			
			@ -936,7 +931,6 @@ function original_url($url, $depth = 1, $fetchbody = false)
 | 
			
		|||
		if (@$attr["http-equiv"] == 'refresh') {
 | 
			
		||||
			$path = $attr["content"];
 | 
			
		||||
			$pathinfo = explode(";", $path);
 | 
			
		||||
			$content = "";
 | 
			
		||||
			foreach ($pathinfo as $value) {
 | 
			
		||||
				if (substr(strtolower($value), 0, 4) == "url=") {
 | 
			
		||||
					return(original_url(substr($value, 4), ++$depth));
 | 
			
		||||
| 
						 | 
				
			
			@ -945,7 +939,7 @@ function original_url($url, $depth = 1, $fetchbody = false)
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return($url);
 | 
			
		||||
	return $url;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function short_link($url)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -292,30 +292,38 @@ function get_attached_data($body, $item = array()) {
 | 
			
		|||
	return $post;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function shortenmsg($msg, $limit, $twitter = false) {
 | 
			
		||||
	/// @TODO
 | 
			
		||||
	/// For Twitter URLs aren't shortened, but they have to be calculated as if.
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Shortens message
 | 
			
		||||
 *
 | 
			
		||||
 * @param type $msg
 | 
			
		||||
 * @param type $limit
 | 
			
		||||
 * @return type
 | 
			
		||||
 *
 | 
			
		||||
 * @todo For Twitter URLs aren't shortened, but they have to be calculated as if.
 | 
			
		||||
 */
 | 
			
		||||
function shortenmsg($msg, $limit)
 | 
			
		||||
{
 | 
			
		||||
	$lines = explode("\n", $msg);
 | 
			
		||||
	$msg = "";
 | 
			
		||||
	$recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8');
 | 
			
		||||
	$ellipsis = html_entity_decode("…", ENT_QUOTES, 'UTF-8');
 | 
			
		||||
	foreach ($lines AS $row=>$line) {
 | 
			
		||||
		if (iconv_strlen(trim($msg."\n".$line), "UTF-8") <= $limit)
 | 
			
		||||
			$msg = trim($msg."\n".$line);
 | 
			
		||||
		// Is the new message empty by now or is it a reshared message?
 | 
			
		||||
		elseif (($msg == "") || (($row == 1) && (substr($msg, 0, 4) == $recycle)))
 | 
			
		||||
			$msg = iconv_substr(iconv_substr(trim($msg."\n".$line), 0, $limit, "UTF-8"), 0, -3, "UTF-8").$ellipsis;
 | 
			
		||||
		else
 | 
			
		||||
	foreach ($lines AS $row => $line) {
 | 
			
		||||
		if (iconv_strlen(trim($msg . "\n" . $line), "UTF-8") <= $limit) {
 | 
			
		||||
			$msg = trim($msg . "\n" . $line);
 | 
			
		||||
		} elseif (($msg == "") || (($row == 1) && (substr($msg, 0, 4) == $recycle))) {
 | 
			
		||||
			// Is the new message empty by now or is it a reshared message?
 | 
			
		||||
			$msg = iconv_substr(iconv_substr(trim($msg . "\n" . $line), 0, $limit, "UTF-8"), 0, -3, "UTF-8") . $ellipsis;
 | 
			
		||||
		} else {
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return($msg);
 | 
			
		||||
 | 
			
		||||
	return $msg;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @brief Convert a message into plaintext for connectors to other networks
 | 
			
		||||
 *
 | 
			
		||||
 * @param App $a The application class
 | 
			
		||||
 * @param array $b The message array that is about to be posted
 | 
			
		||||
 * @param int $limit The maximum number of characters when posting to that network
 | 
			
		||||
 * @param bool $includedlinks Has an attached link to be included into the message?
 | 
			
		||||
| 
						 | 
				
			
			@ -324,7 +332,7 @@ function shortenmsg($msg, $limit, $twitter = false) {
 | 
			
		|||
 *
 | 
			
		||||
 * @return string The converted message
 | 
			
		||||
 */
 | 
			
		||||
function plaintext(App $a, $b, $limit = 0, $includedlinks = false, $htmlmode = 2, $target_network = "") {
 | 
			
		||||
function plaintext($b, $limit = 0, $includedlinks = false, $htmlmode = 2, $target_network = "") {
 | 
			
		||||
 | 
			
		||||
	// Remove the hash tags
 | 
			
		||||
	$URLSearchString = "^\[\]";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -182,14 +182,15 @@ function load_hooks() {
 | 
			
		|||
 * @param string $name of the hook to call
 | 
			
		||||
 * @param string|array &$data to transmit to the callback handler
 | 
			
		||||
 */
 | 
			
		||||
function call_hooks($name, &$data = null) {
 | 
			
		||||
	$stamp1 = microtime(true);
 | 
			
		||||
 | 
			
		||||
function call_hooks($name, &$data = null)
 | 
			
		||||
{
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	if (is_array($a->hooks) && array_key_exists($name, $a->hooks))
 | 
			
		||||
		foreach ($a->hooks[$name] as $hook)
 | 
			
		||||
	if (is_array($a->hooks) && array_key_exists($name, $a->hooks)) {
 | 
			
		||||
		foreach ($a->hooks[$name] as $hook) {
 | 
			
		||||
			call_single_hook($a, $name, $hook, $data);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -144,7 +144,7 @@ function post_update_1194() {
 | 
			
		|||
 | 
			
		||||
	logger("Progress: Start: ".$start_id." position: ".$pos_id." end: ".$end_id, LOGGER_DEBUG);
 | 
			
		||||
 | 
			
		||||
	$r = q("UPDATE `item` ".$query2." SET `item`.`global` = 1 ".$query3,
 | 
			
		||||
	q("UPDATE `item` ".$query2." SET `item`.`global` = 1 ".$query3,
 | 
			
		||||
		intval($start_id), intval($pos_id),
 | 
			
		||||
		dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,7 @@ function gender_selector($current="",$suffix="") {
 | 
			
		|||
	}
 | 
			
		||||
	$o .= '</select>';
 | 
			
		||||
	return $o;
 | 
			
		||||
}	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function sexpref_selector($current="",$suffix="") {
 | 
			
		||||
	$o = '';
 | 
			
		||||
| 
						 | 
				
			
			@ -34,16 +34,17 @@ function sexpref_selector($current="",$suffix="") {
 | 
			
		|||
	}
 | 
			
		||||
	$o .= '</select>';
 | 
			
		||||
	return $o;
 | 
			
		||||
}	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function marital_selector($current="",$suffix="") {
 | 
			
		||||
function marital_selector($current = "")
 | 
			
		||||
{
 | 
			
		||||
	$o = '';
 | 
			
		||||
	$select = array('', t('Single'), t('Lonely'), t('Available'), t('Unavailable'), t('Has crush'), t('Infatuated'), t('Dating'), t('Unfaithful'), t('Sex Addict'), t('Friends'), t('Friends/Benefits'), t('Casual'), t('Engaged'), t('Married'), t('Imaginarily married'), t('Partners'), t('Cohabiting'), t('Common law'), t('Happy'), t('Not looking'), t('Swinger'), t('Betrayed'), t('Separated'), t('Unstable'), t('Divorced'), t('Imaginarily divorced'), t('Widowed'), t('Uncertain'), t('It\'s complicated'), t('Don\'t care'), t('Ask me') );
 | 
			
		||||
	$select = array('', t('Single'), t('Lonely'), t('Available'), t('Unavailable'), t('Has crush'), t('Infatuated'), t('Dating'), t('Unfaithful'), t('Sex Addict'), t('Friends'), t('Friends/Benefits'), t('Casual'), t('Engaged'), t('Married'), t('Imaginarily married'), t('Partners'), t('Cohabiting'), t('Common law'), t('Happy'), t('Not looking'), t('Swinger'), t('Betrayed'), t('Separated'), t('Unstable'), t('Divorced'), t('Imaginarily divorced'), t('Widowed'), t('Uncertain'), t('It\'s complicated'), t('Don\'t care'), t('Ask me'));
 | 
			
		||||
 | 
			
		||||
	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) {
 | 
			
		||||
		if ($selection !== 'NOTRANSLATION') {
 | 
			
		||||
			$selected = (($selection == $current) ? ' selected="selected" ' : '');
 | 
			
		||||
| 
						 | 
				
			
			@ -52,4 +53,4 @@ function marital_selector($current="",$suffix="") {
 | 
			
		|||
	}
 | 
			
		||||
	$o .= '</select>';
 | 
			
		||||
	return $o;
 | 
			
		||||
}	
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,8 +24,6 @@ function remove_queue_item($id) {
 | 
			
		|||
 * @return bool The communication with this contact has currently problems
 | 
			
		||||
 */
 | 
			
		||||
function was_recently_delayed($cid) {
 | 
			
		||||
	$was_delayed = false;
 | 
			
		||||
 | 
			
		||||
	// Are there queue entries that were recently added?
 | 
			
		||||
	$r = q("SELECT `id` FROM `queue` WHERE `cid` = %d
 | 
			
		||||
		AND `last` > UTC_TIMESTAMP() - INTERVAL 15 MINUTE LIMIT 1",
 | 
			
		||||
| 
						 | 
				
			
			@ -59,7 +57,7 @@ function add_to_queue($cid,$network,$msg,$batch = false) {
 | 
			
		|||
		$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 ",
 | 
			
		||||
		intval($cid)
 | 
			
		||||
	);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,18 +4,18 @@ use Friendica\App;
 | 
			
		|||
use Friendica\Core\System;
 | 
			
		||||
use Friendica\Database\DBM;
 | 
			
		||||
 | 
			
		||||
function auto_redir(App $a, $contact_nick) {
 | 
			
		||||
 | 
			
		||||
function auto_redir(App $a, $contact_nick)
 | 
			
		||||
{
 | 
			
		||||
	// prevent looping
 | 
			
		||||
 | 
			
		||||
	if (x($_REQUEST,'redir') && intval($_REQUEST['redir']))
 | 
			
		||||
	if (x($_REQUEST,'redir') && intval($_REQUEST['redir'])) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ((! $contact_nick) || ($contact_nick === $a->user['nickname']))
 | 
			
		||||
	if ((! $contact_nick) || ($contact_nick === $a->user['nickname'])) {
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (local_user()) {
 | 
			
		||||
 | 
			
		||||
		// 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
 | 
			
		||||
		// same nickname as me on other hubs or other networks. Exclude these by requiring
 | 
			
		||||
| 
						 | 
				
			
			@ -26,8 +26,9 @@ function auto_redir(App $a, $contact_nick) {
 | 
			
		|||
 | 
			
		||||
		$baseurl = System::baseUrl();
 | 
			
		||||
		$domain_st = strpos($baseurl, "://");
 | 
			
		||||
		if ($domain_st === false)
 | 
			
		||||
		if ($domain_st === false) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		$baseurl = substr($baseurl, $domain_st + 3);
 | 
			
		||||
		$nurl = normalise_link($baseurl);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -39,7 +40,6 @@ function auto_redir(App $a, $contact_nick) {
 | 
			
		|||
				dbesc($baseurl),
 | 
			
		||||
				dbesc($nurl)
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		if ((! DBM::is_result($r)) || $r[0]['id'] == remote_user()) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -51,14 +51,13 @@ function auto_redir(App $a, $contact_nick) {
 | 
			
		|||
		       intval(local_user()),
 | 
			
		||||
		       dbesc($baseurl)
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		if (! DBM::is_result($r)) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$cid = $r[0]['id'];
 | 
			
		||||
 | 
			
		||||
		$dfrn_id = $orig_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']);
 | 
			
		||||
		$dfrn_id = (($r[0]['issued-id']) ? $r[0]['issued-id'] : $r[0]['dfrn-id']);
 | 
			
		||||
 | 
			
		||||
		if ($r[0]['duplex'] && $r[0]['issued-id']) {
 | 
			
		||||
			$orig_id = $r[0]['issued-id'];
 | 
			
		||||
| 
						 | 
				
			
			@ -72,8 +71,9 @@ 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
 | 
			
		||||
		// 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;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$sec = random_string();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ use Friendica\Database\DBM;
 | 
			
		|||
$session_exists = 0;
 | 
			
		||||
$session_expire = 180000;
 | 
			
		||||
 | 
			
		||||
function ref_session_open($s, $n)
 | 
			
		||||
function ref_session_open()
 | 
			
		||||
{
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -109,7 +109,7 @@ function ref_session_destroy($id)
 | 
			
		|||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function ref_session_gc($expire)
 | 
			
		||||
function ref_session_gc()
 | 
			
		||||
{
 | 
			
		||||
	dba::delete('session', array("`expire` < ?", time()));
 | 
			
		||||
	return true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,7 +97,7 @@ function create_tags_from_item($itemid)
 | 
			
		|||
			$global = (count($isglobal) > 0);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		$r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `guid`, `created`, `received`, `global`)
 | 
			
		||||
		q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`, `guid`, `created`, `received`, `global`)
 | 
			
		||||
				VALUES (%d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', %d)",
 | 
			
		||||
			intval($message['uid']), intval($itemid), intval(TERM_OBJ_POST), intval($type), dbesc($term),
 | 
			
		||||
			dbesc($link), dbesc($message['guid']), dbesc($message['created']), dbesc($message['received']), intval($global));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1003,7 +1003,6 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
 | 
			
		|||
	$redir = false;
 | 
			
		||||
 | 
			
		||||
	if ($redirect) {
 | 
			
		||||
		$a = get_app();
 | 
			
		||||
		$redirect_url = 'redir/' . $contact['id'];
 | 
			
		||||
		if (local_user() && ($contact['uid'] == local_user()) && ($contact['network'] === NETWORK_DFRN)) {
 | 
			
		||||
			$redir = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -1041,8 +1040,6 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
 | 
			
		|||
 * @param boolean $savedsearch show save search button
 | 
			
		||||
 */
 | 
			
		||||
function search($s, $id = 'search-box', $url = 'search', $save = false, $aside = true) {
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
 | 
			
		||||
	$values = array(
 | 
			
		||||
			'$s' => htmlspecialchars($s),
 | 
			
		||||
			'$id' => $id,
 | 
			
		||||
| 
						 | 
				
			
			@ -1471,9 +1468,8 @@ function prepare_text($text) {
 | 
			
		|||
 *       ]
 | 
			
		||||
 *  ]
 | 
			
		||||
 */
 | 
			
		||||
function get_cats_and_terms($item) {
 | 
			
		||||
 | 
			
		||||
	$a = get_app();
 | 
			
		||||
function get_cats_and_terms($item)
 | 
			
		||||
{
 | 
			
		||||
	$categories = array();
 | 
			
		||||
	$folders = array();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1901,9 +1897,10 @@ function file_tag_update_pconfig($uid, $file_old, $file_new, $type = 'file') {
 | 
			
		|||
function file_tag_save_file($uid, $item, $file) {
 | 
			
		||||
	require_once "include/files.php";
 | 
			
		||||
 | 
			
		||||
	$result = false;
 | 
			
		||||
	if (! intval($uid))
 | 
			
		||||
	if (! intval($uid)) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	$r = q("SELECT `file` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
 | 
			
		||||
		intval($item),
 | 
			
		||||
		intval($uid)
 | 
			
		||||
| 
						 | 
				
			
			@ -1931,9 +1928,9 @@ function file_tag_save_file($uid, $item, $file) {
 | 
			
		|||
function file_tag_unsave_file($uid, $item, $file, $cat = false) {
 | 
			
		||||
	require_once "include/files.php";
 | 
			
		||||
 | 
			
		||||
	$result = false;
 | 
			
		||||
	if (! intval($uid))
 | 
			
		||||
	if (! intval($uid)) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ($cat == true) {
 | 
			
		||||
		$pattern = '<' . file_tag_encode($file) . '>' ;
 | 
			
		||||
| 
						 | 
				
			
			@ -1943,7 +1940,6 @@ function file_tag_unsave_file($uid, $item, $file, $cat = false) {
 | 
			
		|||
		$termtype = TERM_FILE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	$r = q("SELECT `file` FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
 | 
			
		||||
		intval($item),
 | 
			
		||||
		intval($uid)
 | 
			
		||||
| 
						 | 
				
			
			@ -1964,8 +1960,8 @@ function file_tag_unsave_file($uid, $item, $file, $cat = false) {
 | 
			
		|||
		dbesc($file),
 | 
			
		||||
		intval(TERM_OBJ_POST),
 | 
			
		||||
		intval($termtype),
 | 
			
		||||
		intval($uid));
 | 
			
		||||
 | 
			
		||||
		intval($uid)
 | 
			
		||||
	);
 | 
			
		||||
	if (!DBM::is_result($r)) {
 | 
			
		||||
		$saved = PConfig::get($uid, 'system', 'filetags');
 | 
			
		||||
		PConfig::set($uid, 'system', 'filetags', str_replace($pattern, '', $saved));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue