| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2017-12-04 13:33:49 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2020-02-09 15:18:46 +00:00
										 |  |  |  * @copyright Copyright (C) 2020, Friendica | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @license GNU AGPL version 3 or any later version | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU Affero General Public License as | 
					
						
							|  |  |  |  * published by the Free Software Foundation, either version 3 of the | 
					
						
							|  |  |  |  * License, or (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU Affero General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |  * along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2017-12-04 13:33:49 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2019-01-07 06:23:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-30 04:07:00 +00:00
										 |  |  | use Friendica\App; | 
					
						
							| 
									
										
										
										
											2017-12-04 14:04:36 +00:00
										 |  |  | use Friendica\Content\Feature; | 
					
						
							| 
									
										
										
										
											2018-12-25 16:37:32 +00:00
										 |  |  | use Friendica\Core\Hook; | 
					
						
							| 
									
										
										
										
											2018-10-31 14:35:50 +00:00
										 |  |  | use Friendica\Core\Renderer; | 
					
						
							| 
									
										
										
										
											2019-10-22 21:57:44 +00:00
										 |  |  | use Friendica\Database\DBA; | 
					
						
							| 
									
										
										
										
											2019-12-30 19:02:09 +00:00
										 |  |  | use Friendica\DI; | 
					
						
							| 
									
										
										
										
											2019-10-22 21:57:44 +00:00
										 |  |  | use Friendica\Model\Contact; | 
					
						
							| 
									
										
										
										
											2018-10-31 17:42:38 +00:00
										 |  |  | use Friendica\Model\FileTag; | 
					
						
							| 
									
										
										
										
											2018-06-18 20:36:34 +00:00
										 |  |  | use Friendica\Model\Item; | 
					
						
							| 
									
										
										
										
											2018-11-05 08:37:03 +00:00
										 |  |  | use Friendica\Util\Crypto; | 
					
						
							| 
									
										
										
										
											2017-04-30 04:07:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-24 11:47:25 +00:00
										 |  |  | function editpost_content(App $a) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 	$o = ''; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-19 17:11:59 +00:00
										 |  |  | 	if (!local_user()) { | 
					
						
							| 
									
										
										
										
											2020-07-23 06:25:01 +00:00
										 |  |  | 		notice(DI::l10n()->t('Permission denied.')); | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$post_id = (($a->argc > 1) ? intval($a->argv[1]) : 0); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-19 17:11:59 +00:00
										 |  |  | 	if (!$post_id) { | 
					
						
							| 
									
										
										
										
											2020-07-23 06:25:01 +00:00
										 |  |  | 		notice(DI::l10n()->t('Item not found')); | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-18 20:36:34 +00:00
										 |  |  | 	$fields = ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', | 
					
						
							| 
									
										
										
										
											2018-10-16 17:14:55 +00:00
										 |  |  | 		'type', 'body', 'title', 'file', 'wall', 'post-type', 'guid']; | 
					
						
							| 
									
										
										
										
											2018-07-24 11:47:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-19 17:11:59 +00:00
										 |  |  | 	$item = Item::selectFirstForUser(local_user(), $fields, ['id' => $post_id, 'uid' => local_user()]); | 
					
						
							| 
									
										
										
										
											2018-07-24 11:47:25 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-21 12:46:04 +00:00
										 |  |  | 	if (!DBA::isResult($item)) { | 
					
						
							| 
									
										
										
										
											2020-07-23 06:25:01 +00:00
										 |  |  | 		notice(DI::l10n()->t('Item not found')); | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		return; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-12 02:25:09 +00:00
										 |  |  | 	$geotag = ''; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-31 14:44:06 +00:00
										 |  |  | 	$o .= Renderer::replaceMacros(Renderer::getMarkupTemplate("section_title.tpl"), [ | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$title' => DI::l10n()->t('Edit post') | 
					
						
							| 
									
										
										
										
											2018-01-15 13:05:12 +00:00
										 |  |  | 	]); | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-31 14:44:06 +00:00
										 |  |  | 	$tpl = Renderer::getMarkupTemplate('jot-header.tpl'); | 
					
						
							| 
									
										
										
										
											2019-12-30 19:02:09 +00:00
										 |  |  | 	DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [ | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$ispublic' => ' ', // DI::l10n()->t('Visible to <strong>everybody</strong>'),
 | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		'$geotag' => $geotag, | 
					
						
							| 
									
										
										
										
											2020-12-23 08:25:55 +00:00
										 |  |  | 		'$nickname' => $a->user['nickname'], | 
					
						
							|  |  |  | 		'$is_mobile' => DI::mode()->isMobile(), | 
					
						
							| 
									
										
										
										
											2018-01-15 13:05:12 +00:00
										 |  |  | 	]); | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-19 17:11:59 +00:00
										 |  |  | 	if (strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])) { | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		$lockstate = 'lock'; | 
					
						
							| 
									
										
										
										
											2018-02-12 21:26:25 +00:00
										 |  |  | 	} else { | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		$lockstate = 'unlock'; | 
					
						
							| 
									
										
										
										
											2018-02-12 21:26:25 +00:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	$jotplugins = ''; | 
					
						
							|  |  |  | 	$jotnets = ''; | 
					
						
							| 
									
										
										
										
											2011-04-18 06:27:11 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-25 16:37:32 +00:00
										 |  |  | 	Hook::callAll('jot_tool', $jotplugins); | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-25 16:37:32 +00:00
										 |  |  | 	$tpl = Renderer::getMarkupTemplate("jot.tpl"); | 
					
						
							| 
									
										
										
										
											2018-10-31 14:35:50 +00:00
										 |  |  | 	$o .= Renderer::replaceMacros($tpl, [ | 
					
						
							| 
									
										
										
										
											2015-12-04 18:29:13 +00:00
										 |  |  | 		'$is_edit' => true, | 
					
						
							| 
									
										
										
										
											2018-10-16 17:14:55 +00:00
										 |  |  | 		'$return_path' => '/display/' . $item['guid'], | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		'$action' => 'item', | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$share' => DI::l10n()->t('Save'), | 
					
						
							| 
									
										
										
										
											2020-01-30 03:50:10 +00:00
										 |  |  | 		'$loading' => DI::l10n()->t('Loading...'), | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$upload' => DI::l10n()->t('Upload photo'), | 
					
						
							|  |  |  | 		'$shortupload' => DI::l10n()->t('upload photo'), | 
					
						
							|  |  |  | 		'$attach' => DI::l10n()->t('Attach file'), | 
					
						
							|  |  |  | 		'$shortattach' => DI::l10n()->t('attach file'), | 
					
						
							|  |  |  | 		'$weblink' => DI::l10n()->t('Insert web link'), | 
					
						
							|  |  |  | 		'$shortweblink' => DI::l10n()->t('web link'), | 
					
						
							|  |  |  | 		'$video' => DI::l10n()->t('Insert video link'), | 
					
						
							|  |  |  | 		'$shortvideo' => DI::l10n()->t('video link'), | 
					
						
							|  |  |  | 		'$audio' => DI::l10n()->t('Insert audio link'), | 
					
						
							|  |  |  | 		'$shortaudio' => DI::l10n()->t('audio link'), | 
					
						
							|  |  |  | 		'$setloc' => DI::l10n()->t('Set your location'), | 
					
						
							|  |  |  | 		'$shortsetloc' => DI::l10n()->t('set location'), | 
					
						
							|  |  |  | 		'$noloc' => DI::l10n()->t('Clear browser location'), | 
					
						
							|  |  |  | 		'$shortnoloc' => DI::l10n()->t('clear location'), | 
					
						
							|  |  |  | 		'$wait' => DI::l10n()->t('Please wait'), | 
					
						
							|  |  |  | 		'$permset' => DI::l10n()->t('Permission settings'), | 
					
						
							| 
									
										
										
										
											2018-07-19 13:52:05 +00:00
										 |  |  | 		'$wall' => $item['wall'], | 
					
						
							|  |  |  | 		'$posttype' => $item['post-type'], | 
					
						
							| 
									
										
										
										
											2018-06-19 17:11:59 +00:00
										 |  |  | 		'$content' => undo_post_tagging($item['body']), | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		'$post_id' => $post_id, | 
					
						
							|  |  |  | 		'$defloc' => $a->user['default-location'], | 
					
						
							|  |  |  | 		'$visitor' => 'none', | 
					
						
							| 
									
										
										
										
											2011-05-20 08:15:02 +00:00
										 |  |  | 		'$pvisit' => 'none', | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$emailcc' => DI::l10n()->t('CC: email addresses'), | 
					
						
							|  |  |  | 		'$public' => DI::l10n()->t('Public post'), | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		'$jotnets' => $jotnets, | 
					
						
							| 
									
										
										
										
											2018-12-25 16:37:32 +00:00
										 |  |  | 		'$title' => $item['title'], | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$placeholdertitle' => DI::l10n()->t('Set title'), | 
					
						
							| 
									
										
										
										
											2018-10-30 18:51:45 +00:00
										 |  |  | 		'$category' => FileTag::fileToList($item['file'], 'category'), | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$placeholdercategory' => (Feature::isEnabled(local_user(),'categories') ? DI::l10n()->t("Categories \x28comma-separated list\x29") : ''), | 
					
						
							|  |  |  | 		'$emtitle' => DI::l10n()->t('Example: bob@example.com, mary@example.com'), | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 		'$lockstate' => $lockstate, | 
					
						
							| 
									
										
										
										
											2015-06-26 13:13:52 +00:00
										 |  |  | 		'$acl' => '', // populate_acl((($group) ? $group_acl : $a->user)),
 | 
					
						
							| 
									
										
										
										
											2018-02-13 00:20:16 +00:00
										 |  |  | 		'$bang' => ($lockstate === 'lock' ? '!' : ''), | 
					
						
							| 
									
										
										
										
											2011-07-20 09:08:42 +00:00
										 |  |  | 		'$profile_uid' => $_SESSION['uid'], | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$preview' => DI::l10n()->t('Preview'), | 
					
						
							| 
									
										
										
										
											2011-07-20 09:08:42 +00:00
										 |  |  | 		'$jotplugins' => $jotplugins, | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$sourceapp' => DI::l10n()->t($a->sourcename), | 
					
						
							|  |  |  | 		'$cancel' => DI::l10n()->t('Cancel'), | 
					
						
							| 
									
										
										
										
											2018-11-05 08:37:03 +00:00
										 |  |  | 		'$rand_num' => Crypto::randomDigits(12), | 
					
						
							| 
									
										
										
										
											2016-06-25 10:21:13 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		//jot nav tab (used in some themes)
 | 
					
						
							| 
									
										
										
										
											2020-01-18 19:52:34 +00:00
										 |  |  | 		'$message' => DI::l10n()->t('Message'), | 
					
						
							|  |  |  | 		'$browser' => DI::l10n()->t('Browser'), | 
					
						
							| 
									
										
										
										
											2020-09-08 01:25:04 +00:00
										 |  |  | 		'$shortpermset' => DI::l10n()->t('Permissions'), | 
					
						
							| 
									
										
										
										
											2020-04-01 14:10:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		'$compose_link_title' => DI::l10n()->t('Open Compose page'), | 
					
						
							| 
									
										
										
										
											2018-01-15 13:05:12 +00:00
										 |  |  | 	]); | 
					
						
							| 
									
										
										
										
											2011-03-18 07:30:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	return $o; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2019-10-22 21:57:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | function undo_post_tagging($s) { | 
					
						
							|  |  |  | 	$matches = null; | 
					
						
							|  |  |  | 	$cnt = preg_match_all('/([!#@])\[url=(.*?)\](.*?)\[\/url\]/ism', $s, $matches, PREG_SET_ORDER); | 
					
						
							|  |  |  | 	if ($cnt) { | 
					
						
							|  |  |  | 		foreach ($matches as $mtch) { | 
					
						
							|  |  |  | 			if (in_array($mtch[1], ['!', '@'])) { | 
					
						
							| 
									
										
										
										
											2020-07-15 17:06:48 +00:00
										 |  |  | 				$contact = Contact::getByURL($mtch[2], false, ['addr']); | 
					
						
							| 
									
										
										
										
											2019-10-22 21:57:44 +00:00
										 |  |  | 				$mtch[3] = empty($contact['addr']) ? $mtch[2] : $contact['addr']; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			$s = str_replace($mtch[0], $mtch[1] . $mtch[3],$s); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return $s; | 
					
						
							|  |  |  | } |