Merge branch 'dev' of https://framagit.org/hubzilla/core into dev
This commit is contained in:
		| @@ -2,6 +2,7 @@ | ||||
|  | ||||
| namespace Zotlabs\Lib; | ||||
|  | ||||
| use Zotlabs\Daemon\Master; | ||||
| use Zotlabs\Zot6\HTTPSig; | ||||
|  | ||||
| class Activity { | ||||
| @@ -868,7 +869,7 @@ class Activity { | ||||
| 					// Send an Accept back to them | ||||
|  | ||||
| 					set_abconfig($channel['channel_id'],$person_obj['id'],'pubcrawl','their_follow_id', $their_follow_id); | ||||
| 					\Zotlabs\Daemon\Master::Summon([ 'Notifier', 'permissions_accept', $contact['abook_id'] ]); | ||||
| 					Master::Summon([ 'Notifier', 'permissions_accept', $contact['abook_id'] ]); | ||||
| 					return; | ||||
|  | ||||
| 				case 'Accept': | ||||
| @@ -969,9 +970,9 @@ class Activity { | ||||
|  | ||||
| 				if($my_perms && $automatic) { | ||||
| 					// send an Accept for this Follow activity | ||||
| 					\Zotlabs\Daemon\Master::Summon([ 'Notifier', 'permissions_accept', $new_connection[0]['abook_id'] ]); | ||||
| 					Master::Summon([ 'Notifier', 'permissions_accept', $new_connection[0]['abook_id'] ]); | ||||
| 					// Send back a Follow notification to them | ||||
| 					\Zotlabs\Daemon\Master::Summon([ 'Notifier', 'permissions_create', $new_connection[0]['abook_id'] ]); | ||||
| 					Master::Summon([ 'Notifier', 'permissions_create', $new_connection[0]['abook_id'] ]); | ||||
| 				} | ||||
|  | ||||
| 				$clone = array(); | ||||
| @@ -1162,7 +1163,7 @@ class Activity { | ||||
|  | ||||
| 		$photos = import_xchan_photo($icon,$url); | ||||
| 		$r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_hash = '%s'", | ||||
| 			dbescdate(datetime_convert('UTC','UTC',$arr['photo_updated'])), | ||||
| 			dbescdate(datetime_convert('UTC','UTC',$photos[5])), | ||||
| 			dbesc($photos[0]), | ||||
| 			dbesc($photos[1]), | ||||
| 			dbesc($photos[2]), | ||||
| @@ -1406,7 +1407,7 @@ class Activity { | ||||
| 			if($parent) { | ||||
| 				if($s['owner_xchan'] === $channel['channel_hash']) { | ||||
| 					// We are the owner of this conversation, so send all received comments back downstream | ||||
| 					Zotlabs\Daemon\Master::Summon(array('Notifier','comment-import',$x['item_id'])); | ||||
| 					Master::Summon(array('Notifier','comment-import',$x['item_id'])); | ||||
| 				} | ||||
| 				$r = q("select * from item where id = %d limit 1", | ||||
| 					intval($x['item_id']) | ||||
| @@ -1790,7 +1791,7 @@ class Activity { | ||||
| 			$s['item_private'] = 1; | ||||
|  | ||||
| 		set_iconfig($s,'activitypub','recips',$act->raw_recips); | ||||
|  | ||||
| 		// @FIXME: $parent is not defined | ||||
| 		if($parent) { | ||||
| 			set_iconfig($s,'activitypub','rawmsg',$act->raw,1); | ||||
| 		} | ||||
| @@ -1921,10 +1922,11 @@ class Activity { | ||||
|  | ||||
|  | ||||
| 		if(is_array($x) && $x['item_id']) { | ||||
| 			// @FIXME: $parent is not defined | ||||
| 			if($parent) { | ||||
| 				if($s['owner_xchan'] === $channel['channel_hash']) { | ||||
| 					// We are the owner of this conversation, so send all received comments back downstream | ||||
| 					Zotlabs\Daemon\Master::Summon(array('Notifier','comment-import',$x['item_id'])); | ||||
| 					Master::Summon(array('Notifier','comment-import',$x['item_id'])); | ||||
| 				} | ||||
| 				$r = q("select * from item where id = %d limit 1", | ||||
| 					intval($x['item_id']) | ||||
| @@ -2060,7 +2062,7 @@ class Activity { | ||||
| 		if($result['success']) { | ||||
| 			// if the message isn't already being relayed, notify others | ||||
| 			if(intval($parent_item['item_origin'])) | ||||
| 					Zotlabs\Daemon\Master::Summon(array('Notifier','comment-import',$result['item_id'])); | ||||
| 					Master::Summon(array('Notifier','comment-import',$result['item_id'])); | ||||
| 				sync_an_item($channel['channel_id'],$result['item_id']); | ||||
| 		} | ||||
|  | ||||
|   | ||||
| @@ -16,17 +16,20 @@ class Dreport extends \Zotlabs\Web\Controller { | ||||
| 		$channel = \App::get_channel(); | ||||
| 		 | ||||
| 		$mid = ((argc() > 1) ? argv(1) : ''); | ||||
| 		$encoded_mid = ''; | ||||
|  | ||||
| 		if(strpos($mid,'b64.') === 0) | ||||
| 		if(strpos($mid,'b64.') === 0) { | ||||
| 			$encoded_mid = $mid; | ||||
| 			$mid = @base64url_decode(substr($mid,4)); | ||||
|  | ||||
|  | ||||
| 		} | ||||
| 		if($mid === 'push') { | ||||
| 			$table = 'push'; | ||||
| 			$mid = ((argc() > 2) ? argv(2) : ''); | ||||
|  | ||||
| 			if(strpos($mid,'b64.') === 0) | ||||
| 			if(strpos($mid,'b64.') === 0) { | ||||
| 				$encoded_mid = $mid; | ||||
| 				$mid = @base64url_decode(substr($mid,4)); | ||||
| 			} | ||||
|  | ||||
| 			if($mid) {	 | ||||
| 				$i = q("select id from item where mid = '%s' and uid = %d and ( author_xchan = '%s' or ( owner_xchan = '%s' and item_wall = 1 )) ", | ||||
| @@ -40,7 +43,7 @@ class Dreport extends \Zotlabs\Web\Controller { | ||||
| 				} | ||||
| 			} | ||||
| 			sleep(3); | ||||
| 			goaway(z_root() . '/dreport/' . urlencode($mid)); | ||||
| 			goaway(z_root() . '/dreport/' . (($encoded_mid) ? $encoded_mid : $mid)); | ||||
| 		} | ||||
|  | ||||
| 		if($mid === 'mail') { | ||||
|   | ||||
| @@ -5,6 +5,7 @@ namespace Zotlabs\Zot6; | ||||
| use Zotlabs\Lib\ActivityStreams; | ||||
| use Zotlabs\Lib\Webfinger; | ||||
| use Zotlabs\Web\HTTPHeaders; | ||||
| use Zotlabs\Lib\Libzot; | ||||
|  | ||||
| /** | ||||
|  * @brief Implements HTTP Signatures per draft-cavage-http-signatures-10. | ||||
| @@ -324,7 +325,7 @@ class HTTPSig { | ||||
| 					if($l['rel'] === 'http://purl.org/zot/protocol/6.0' && array_key_exists('href',$l) && $l['href'] !== EMPTY_STR) { | ||||
| 						$z = \Zotlabs\Lib\Zotfinger::exec($l['href']); | ||||
| 						if($z) { | ||||
| 							$i = Zotlabs\Lib\Libzot::import_xchan($z['data']); | ||||
| 							$i = Libzot::import_xchan($z['data']); | ||||
| 							if($i['success']) { | ||||
| 								$key['portable_id'] = $i['hash']; | ||||
|  | ||||
|   | ||||
| @@ -151,8 +151,7 @@ class Zot6Handler implements IHandler { | ||||
| 		/* | ||||
| 		 * fetch the requested conversation | ||||
| 		 */ | ||||
| 		/// @FIXME $sender_hash is undefined | ||||
| 		$messages = zot_feed($c[0]['channel_id'],$sender_hash, [ 'message_id' => $data['message_id'], 'encoding' => 'activitystreams' ]); | ||||
| 		$messages = zot_feed($c[0]['channel_id'], $sender, [ 'message_id' => $data['message_id'], 'encoding' => 'activitystreams' ]); | ||||
|  | ||||
| 		return (($messages) ? : [] ); | ||||
| 	} | ||||
|   | ||||
| @@ -142,12 +142,10 @@ function create_account($arr) { | ||||
| 	$invite_code = ((x($arr,'invite_code'))   ? notags(trim($arr['invite_code']))  : ''); | ||||
| 	$email       = ((x($arr,'email'))         ? notags(punify(trim($arr['email']))) : ''); | ||||
| 	$password    = ((x($arr,'password'))      ? trim($arr['password'])             : ''); | ||||
| 	$password2   = ((x($arr,'password2'))     ? trim($arr['password2'])            : ''); | ||||
| 	$parent      = ((x($arr,'parent'))        ? intval($arr['parent'])             : 0 ); | ||||
| 	$flags       = ((x($arr,'account_flags')) ? intval($arr['account_flags'])      : ACCOUNT_OK); | ||||
| 	$roles       = ((x($arr,'account_roles')) ? intval($arr['account_roles'])      : 0 ); | ||||
| 	$expires     = ((x($arr,'expires'))       ? intval($arr['expires'])            : NULL_DATE); | ||||
| 	$techlevel   = ((array_key_exists('techlevel',$arr)) ? intval($arr['techlevel']) : intval(get_config('system','techlevel'))); | ||||
|  | ||||
| 	$default_service_class = get_config('system','default_service_class'); | ||||
|  | ||||
| @@ -264,7 +262,6 @@ function create_account($arr) { | ||||
| function verify_email_address($arr) { | ||||
|  | ||||
| 	if(array_key_exists('resend',$arr)) { | ||||
| 		$email = $arr['email']; | ||||
| 		$a = q("select * from account where account_email = '%s' limit 1", | ||||
| 		    dbesc($arr['email']) | ||||
| 		); | ||||
| @@ -285,7 +282,7 @@ function verify_email_address($arr) { | ||||
| 	else { | ||||
| 		$hash = random_string(24); | ||||
|  | ||||
| 		$r = q("INSERT INTO register ( hash, created, uid, password, lang ) VALUES ( '%s', '%s', %d, '%s', '%s' ) ", | ||||
| 		q("INSERT INTO register ( hash, created, uid, password, lang ) VALUES ( '%s', '%s', %d, '%s', '%s' ) ", | ||||
| 			dbesc($hash), | ||||
| 			dbesc(datetime_convert()), | ||||
| 			intval($arr['account']['account_id']), | ||||
| @@ -304,7 +301,7 @@ function verify_email_address($arr) { | ||||
| 			'$email'    => $arr['email'], | ||||
| 			'$uid'      => $account['account_id'], | ||||
| 			'$hash'     => $hash, | ||||
| 			'$details'  => $details | ||||
| 			'$details'  => '' | ||||
| 	 	] | ||||
| 	); | ||||
|  | ||||
| @@ -318,9 +315,7 @@ function verify_email_address($arr) { | ||||
|  | ||||
| 	pop_lang(); | ||||
|  | ||||
| 	if($res) | ||||
| 		$delivered ++; | ||||
| 	else | ||||
| 	if(! $res) | ||||
| 		logger('send_reg_approval_email: failed to account_id: ' . $arr['account']['account_id']); | ||||
|  | ||||
| 	return $res; | ||||
| @@ -442,16 +437,17 @@ function account_allow($hash) { | ||||
| 	if(! $account) | ||||
| 		return $ret; | ||||
|  | ||||
| 	$r = q("DELETE FROM register WHERE hash = '%s'", | ||||
| 	q("DELETE FROM register WHERE hash = '%s'", | ||||
| 		dbesc($register[0]['hash']) | ||||
| 	); | ||||
|  | ||||
| 	$r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 	q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 		intval(ACCOUNT_BLOCKED), | ||||
| 		intval(ACCOUNT_BLOCKED), | ||||
| 		intval($register[0]['uid']) | ||||
| 	); | ||||
| 	$r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 	 | ||||
| 	q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 		intval(ACCOUNT_PENDING), | ||||
| 		intval(ACCOUNT_PENDING), | ||||
| 		intval($register[0]['uid']) | ||||
| @@ -516,11 +512,11 @@ function account_deny($hash) { | ||||
| 	if(! $account) | ||||
| 		return false; | ||||
|  | ||||
| 	$r = q("DELETE FROM account WHERE account_id = %d", | ||||
| 	q("DELETE FROM account WHERE account_id = %d", | ||||
| 		intval($register[0]['uid']) | ||||
| 	); | ||||
|  | ||||
| 	$r = q("DELETE FROM register WHERE id = %d", | ||||
| 	q("DELETE FROM register WHERE id = %d", | ||||
| 		dbesc($register[0]['id']) | ||||
| 	); | ||||
| 	notice( sprintf(t('Registration revoked for %s'), $account[0]['account_email']) . EOL); | ||||
| @@ -551,21 +547,23 @@ function account_approve($hash) { | ||||
| 	if(! $account) | ||||
| 		return $ret; | ||||
|  | ||||
| 	$r = q("DELETE FROM register WHERE hash = '%s' and password = 'verify'", | ||||
| 	q("DELETE FROM register WHERE hash = '%s' and password = 'verify'", | ||||
| 		dbesc($register[0]['hash']) | ||||
| 	); | ||||
|  | ||||
| 	$r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 	q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 		intval(ACCOUNT_BLOCKED), | ||||
| 		intval(ACCOUNT_BLOCKED), | ||||
| 		intval($register[0]['uid']) | ||||
| 	); | ||||
| 	$r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 	 | ||||
| 	q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 		intval(ACCOUNT_PENDING), | ||||
| 		intval(ACCOUNT_PENDING), | ||||
| 		intval($register[0]['uid']) | ||||
| 	); | ||||
| 	$r = q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 	 | ||||
| 	q("update account set account_flags = (account_flags & ~%d) where (account_flags & %d)>0 and account_id = %d", | ||||
| 		intval(ACCOUNT_UNVERIFIED), | ||||
| 		intval(ACCOUNT_UNVERIFIED), | ||||
| 		intval($register[0]['uid']) | ||||
| @@ -620,7 +618,7 @@ function downgrade_accounts() { | ||||
|  | ||||
| 	foreach($r as $rr) { | ||||
| 		if(($basic) && ($rr['account_service_class']) && ($rr['account_service_class'] != $basic)) { | ||||
| 			$x = q("UPDATE account set account_service_class = '%s', account_expires = '%s' | ||||
| 			q("UPDATE account set account_service_class = '%s', account_expires = '%s' | ||||
| 				where account_id = %d", | ||||
| 				dbesc($basic), | ||||
| 				dbesc(NULL_DATE), | ||||
| @@ -631,7 +629,7 @@ function downgrade_accounts() { | ||||
| 			logger('downgrade_accounts: Account id ' . $rr['account_id'] . ' downgraded.'); | ||||
| 		} | ||||
| 		else { | ||||
| 			$x = q("UPDATE account SET account_flags = (account_flags | %d) where account_id = %d", | ||||
| 			q("UPDATE account SET account_flags = (account_flags | %d) where account_id = %d", | ||||
| 				intval(ACCOUNT_EXPIRED), | ||||
| 				intval($rr['account_id']) | ||||
| 			); | ||||
|   | ||||
| @@ -84,7 +84,7 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti | ||||
| 	); | ||||
| 	if($r) { | ||||
| 		foreach($r as $rv) { | ||||
| 			$selected = (($single_group && 'vp.' . $rr['hash'] === $allow_gid[0]) ? ' selected = "selected" ' : ''); | ||||
| 			$selected = (($single_group && 'vp.' . $rv['profile_guid'] === $allow_gid[0]) ? ' selected = "selected" ' : ''); | ||||
| 			$groups .= '<option id="' . 'vp' . $rv['id'] . '" value="' . 'vp.' . $rv['profile_guid'] . '"' . $selected . '>' . t('Profile','acl') . ' ' . $rv['profile_name'] . '</option>' . "\r\n"; | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
| @@ -321,7 +321,6 @@ function attach_can_view_folder($uid,$ob_hash,$folder_hash) { | ||||
|  | ||||
| 	$sql_extra = permissions_sql($uid,$ob_hash); | ||||
| 	$hash = $folder_hash; | ||||
| 	$result = false; | ||||
|  | ||||
| 	if(! $folder_hash) { | ||||
| 		return perm_is_allowed($uid,$ob_hash,'view_storage'); | ||||
| @@ -352,7 +351,7 @@ function attach_can_view_folder($uid,$ob_hash,$folder_hash) { | ||||
|  * @param string $hash | ||||
|  * @param string $observer_hash | ||||
|  * @param int $rev (optional) revision default 0 | ||||
|  * @return associative array with everything except data | ||||
|  * @return array (associative) with everything except data | ||||
|  *  * \e boolean \b success boolean true or false | ||||
|  *  * \e string \b message (optional) only when success is false | ||||
|  *  * \e array \b data array of attach DB entry without data component | ||||
| @@ -1224,7 +1223,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) { | ||||
| 			$ret['success'] = true; | ||||
|  | ||||
| 			// update the parent folder's lastmodified timestamp | ||||
| 			$e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d", | ||||
| 			q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d", | ||||
| 				dbesc($created), | ||||
| 				dbesc($arr['folder']), | ||||
| 				intval($channel_id) | ||||
| @@ -1270,8 +1269,6 @@ function attach_mkdirp($channel, $observer_hash, $arr = null) { | ||||
| 	$ret = array('success' => false); | ||||
| 	$channel_id = $channel['channel_id']; | ||||
|  | ||||
| 	$sql_options = ''; | ||||
|  | ||||
| 	$basepath = 'store/' . $channel['channel_address']; | ||||
|  | ||||
| 	logger('basepath: ' . $basepath); | ||||
| @@ -1374,7 +1371,7 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	$x = q("update attach set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where hash = '%s' and uid = %d", | ||||
| 	q("update attach set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where hash = '%s' and uid = %d", | ||||
| 		dbesc($allow_cid), | ||||
| 		dbesc($allow_gid), | ||||
| 		dbesc($deny_cid), | ||||
| @@ -1383,7 +1380,7 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi | ||||
| 		intval($channel_id) | ||||
| 	); | ||||
| 	if($r[0]['is_photo']) { | ||||
| 		$x = q("update photo set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where resource_id = '%s' and uid = %d", | ||||
| 		q("update photo set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where resource_id = '%s' and uid = %d", | ||||
| 			dbesc($allow_cid), | ||||
| 			dbesc($allow_gid), | ||||
| 			dbesc($deny_cid), | ||||
| @@ -1482,7 +1479,7 @@ function attach_delete($channel_id, $resource, $is_photo = 0) { | ||||
| 	} | ||||
|  | ||||
| 	// delete from database | ||||
| 	$z = q("DELETE FROM attach WHERE hash = '%s' AND uid = %d", | ||||
| 	q("DELETE FROM attach WHERE hash = '%s' AND uid = %d", | ||||
| 		dbesc($resource), | ||||
| 		intval($channel_id) | ||||
| 	); | ||||
| @@ -1493,7 +1490,7 @@ function attach_delete($channel_id, $resource, $is_photo = 0) { | ||||
|  | ||||
|  | ||||
| 	// update the parent folder's lastmodified timestamp | ||||
| 	$e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d", | ||||
| 	q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d", | ||||
| 		dbesc(datetime_convert()), | ||||
| 		dbesc($r[0]['folder']), | ||||
| 		intval($channel_id) | ||||
| @@ -1815,7 +1812,7 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid, | ||||
| 		$u_jsonobject = json_encode($object); | ||||
|  | ||||
| 		//we have got the relevant info - delete the old item before we create the new one | ||||
| 		$z = q("DELETE FROM item WHERE obj_type = '%s' AND verb = '%s' AND mid = '%s'", | ||||
| 		q("DELETE FROM item WHERE obj_type = '%s' AND verb = '%s' AND mid = '%s'", | ||||
| 			dbesc(ACTIVITY_OBJ_FILE), | ||||
| 			dbesc(ACTIVITY_POST), | ||||
| 			dbesc($y[0]['mid']) | ||||
| @@ -1946,7 +1943,6 @@ function attach_recursive_perms($arr_allow_cid, $arr_allow_gid, $arr_deny_cid, $ | ||||
| 	$ret = array(); | ||||
| 	$parent_arr = array(); | ||||
| 	$count_values = array(); | ||||
| 	$poster = App::get_observer(); | ||||
|  | ||||
| 	//lookup all channels in sharee group and add them to sharee $arr_allow_cid | ||||
| 	if($arr_allow_gid) { | ||||
| @@ -2351,7 +2347,6 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) { | ||||
| 		if(! $n) | ||||
| 			return false; | ||||
|  | ||||
| 		$newdirname = $n[0]['filename']; | ||||
| 		$newalbumname = $n[0]['display_path']; | ||||
| 		$newstorepath = dbunescbin($n[0]['content']) . '/' . $resource_id; | ||||
| 	} | ||||
| @@ -2359,7 +2354,6 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) { | ||||
|  | ||||
| 		// root directory | ||||
|  | ||||
| 		$newdirname = EMPTY_STR; | ||||
| 		$newalbumname = EMPTY_STR; | ||||
| 		$newstorepath = 'store/' . $c['channel_address'] . '/' . $resource_id; | ||||
| 	} | ||||
| @@ -2428,7 +2422,7 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) { | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	$t = q("update attach set content = '%s', folder = '%s', filename = '%s' where id = %d", | ||||
| 	q("update attach set content = '%s', folder = '%s', filename = '%s' where id = %d", | ||||
| 		dbescbin($newstorepath), | ||||
| 		dbesc($new_folder_hash), | ||||
| 		dbesc($filename), | ||||
| @@ -2438,7 +2432,7 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) { | ||||
|  | ||||
| 	$x = attach_syspaths($channel_id,$resource_id); | ||||
|  | ||||
| 	$t1 = q("update attach set os_path = '%s', display_path = '%s' where id = %d", | ||||
| 	q("update attach set os_path = '%s', display_path = '%s' where id = %d", | ||||
| 		dbesc($x['os_path']), | ||||
| 		dbesc($x['path']), | ||||
| 		intval($r[0]['id']) | ||||
| @@ -2446,7 +2440,7 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) { | ||||
|  | ||||
|  | ||||
| 	if($r[0]['is_photo']) { | ||||
| 		$t = q("update photo set album = '%s', filename = '%s', os_path = '%s', display_path = '%s' | ||||
| 		q("update photo set album = '%s', filename = '%s', os_path = '%s', display_path = '%s' | ||||
| 			where resource_id = '%s' and uid = %d", | ||||
| 			dbesc($newalbumname), | ||||
| 			dbesc($filename), | ||||
| @@ -2456,7 +2450,7 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) { | ||||
| 			intval($channel_id) | ||||
| 		); | ||||
|  | ||||
| 		$t = q("update photo set content = '%s' where resource_id = '%s' and uid = %d and imgscale = 0", | ||||
| 		q("update photo set content = '%s' where resource_id = '%s' and uid = %d and imgscale = 0", | ||||
| 			dbescbin($newstorepath), | ||||
| 			dbesc($resource_id), | ||||
| 			intval($channel_id) | ||||
| @@ -2587,12 +2581,12 @@ function attach_upgrade() { | ||||
| 		foreach($r as $rv) { | ||||
| 			$x = attach_syspaths($rv['uid'],$rv['hash']); | ||||
| 			if($x) { | ||||
| 				$w = q("update attach set os_path = '%s', display_path = '%s' where id = %d", | ||||
| 				q("update attach set os_path = '%s', display_path = '%s' where id = %d", | ||||
| 					dbesc($x['os_path']), | ||||
| 					dbesc($x['path']), | ||||
| 					intval($rv['id']) | ||||
| 				); | ||||
| 				$y = q("update photo set os_path = '%s', display_path = '%s' where uid = %d and resource_id = '%s'", | ||||
| 				q("update photo set os_path = '%s', display_path = '%s' where uid = %d and resource_id = '%s'", | ||||
| 					dbesc($x['os_path']), | ||||
| 					dbesc($x['path']), | ||||
| 					intval($rv['uid']), | ||||
|   | ||||
| @@ -1439,7 +1439,7 @@ function profile_edit_menu($uid) { | ||||
|  * @param boolean $show_connect (optional) default true | ||||
|  * @param mixed $zcard (optional) default false | ||||
|  * | ||||
|  * @return HTML string suitable for sidebar inclusion | ||||
|  * @return string (HTML) suitable for sidebar inclusion | ||||
|  * Exceptions: Returns empty string if passed $profile is wrong type or not populated | ||||
|  */ | ||||
| function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = false) { | ||||
|   | ||||
| @@ -42,6 +42,10 @@ function nav($template = 'default') { | ||||
|  | ||||
| 	require_once('include/conversation.php'); | ||||
|  | ||||
| 	$nav_apps = []; | ||||
| 	$navbar_apps = []; | ||||
| 	$channel_apps = []; | ||||
| 	 | ||||
| 	$channel_apps[] = channel_apps($is_owner, App::$profile['channel_address']); | ||||
|  | ||||
|  | ||||
| @@ -378,16 +382,15 @@ function channel_apps($is_owner = false, $nickname = null) { | ||||
| 	if(App::$is_sys) | ||||
| 		return ''; | ||||
|  | ||||
| 	if(! get_pconfig($uid, 'system', 'channelapps','1')) | ||||
| 		return ''; | ||||
|  | ||||
| 	$channel = App::get_channel(); | ||||
|  | ||||
| 	if($channel && is_null($nickname)) | ||||
| 		$nickname = $channel['channel_address']; | ||||
|  | ||||
| 	$uid = ((App::$profile['profile_uid']) ? App::$profile['profile_uid'] : local_channel()); | ||||
| 	$account_id = ((App::$profile['profile_uid']) ? App::$profile['channel_account_id'] : App::$channel['channel_account_id']); | ||||
|  | ||||
| 	if(! get_pconfig($uid, 'system', 'channelapps','1')) | ||||
| 	    return; | ||||
|  | ||||
| 	if($uid == local_channel()) { | ||||
| 		return; | ||||
|   | ||||
| @@ -543,8 +543,6 @@ function article_catblock($uid,$count = 0,$authors = '',$owner = '', $flags = 0, | ||||
| function dir_tagblock($link,$r) { | ||||
| 	$o = ''; | ||||
|  | ||||
| 	$observer = get_observer_hash(); | ||||
|  | ||||
| 	if(! $r) | ||||
| 		$r = App::$data['directory_keywords']; | ||||
|  | ||||
|   | ||||
| @@ -20,7 +20,7 @@ define('RANDOM_STRING_TEXT', 0x01 ); | ||||
| /** | ||||
|  * @brief This is our template processor. | ||||
|  * | ||||
|  * @param string|SmartyEngine $s the string requiring macro substitution, | ||||
|  * @param string SmartyEngine $s the string requiring macro substitution, | ||||
|  *   or an instance of SmartyEngine | ||||
|  * @param array $r key value pairs (search => replace) | ||||
|  * | ||||
| @@ -2550,15 +2550,6 @@ function design_tools() { | ||||
|  */ | ||||
| function website_portation_tools() { | ||||
|  | ||||
| 	$channel  = App::get_channel(); | ||||
| 	$sys = false; | ||||
|  | ||||
| 	if(App::$is_sys && is_site_admin()) { | ||||
| 		require_once('include/channel.php'); | ||||
| 		$channel = get_sys_channel(); | ||||
| 		$sys = true; | ||||
| 	} | ||||
|  | ||||
| 	return replace_macros(get_markup_template('website_portation_tools.tpl'), [ | ||||
| 		'$title'               => t('Import'), | ||||
| 		'$import_label'        => t('Import website...'), | ||||
| @@ -2726,7 +2717,6 @@ function handle_tag(&$body, &$str_tags, $profile_uid, $tag, $in_network = true) | ||||
|  | ||||
| 		$name = substr($tag,(($exclusive) ? 2 : 1)); | ||||
| 		$newname = $name; // make a copy that we can mess with | ||||
| 		$tagcid = 0; | ||||
|  | ||||
| 		$r = null; | ||||
|  | ||||
| @@ -2785,14 +2775,9 @@ function handle_tag(&$body, &$str_tags, $profile_uid, $tag, $in_network = true) | ||||
|  | ||||
| 		} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| 		$fn_results = []; | ||||
| 		$access_tag = EMPTY_STR; | ||||
|  | ||||
|  | ||||
| 		// $r is set if we found something | ||||
|  | ||||
| 		if($r) { | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| <?php | ||||
|  | ||||
| use Zotlabs\Zot6\HTTPSig; | ||||
| use Zotlabs\Lib\Libzot; | ||||
|  | ||||
|  | ||||
| function xchan_store_lowlevel($arr) { | ||||
|   | ||||
| @@ -3,11 +3,11 @@ | ||||
| 		{{if $table == 'item'}} | ||||
| 		<div class="dropdown pull-right"> | ||||
| 			<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="{{$options}}"> | ||||
| 				<i class="fa fa-sort-desc"></i> | ||||
| 				<i class="fa fa-cog"></i> | ||||
| 			</button> | ||||
| 			<ul class="dropdown-menu"> | ||||
| 				<li><a href="dreport/push/{{$safe_mid}}">{{$push}}</a></li> | ||||
| 			</ul> | ||||
| 			<div class="dropdown-menu"> | ||||
| 				<a href="dreport/push/{{$safe_mid}}" class="dropdown-item">{{$push}}</a> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 		{{/if}} | ||||
| 		<h2>{{$title}}</h2> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user