]> git.mxchange.org Git - friendica.git/blobdiff - mod/item.php
Force avatar update for Contact Advanced page
[friendica.git] / mod / item.php
index 58f9c02fabddd1822b65baec6aa267a68f256d4c..3edf49f86c4e3127c768816cf51325d223e65e56 100644 (file)
@@ -33,6 +33,7 @@ use Friendica\Model\FileTag;
 use Friendica\Model\Item;
 use Friendica\Model\Photo;
 use Friendica\Model\Term;
+use Friendica\Network\HTTPException;
 use Friendica\Object\EMail\ItemCCEMail;
 use Friendica\Protocol\Activity;
 use Friendica\Protocol\Diaspora;
@@ -45,7 +46,7 @@ require_once __DIR__ . '/../include/items.php';
 
 function item_post(App $a) {
        if (!Session::isAuthenticated()) {
-               return 0;
+               throw new HTTPException\ForbiddenException();
        }
 
        $uid = local_user();
@@ -118,11 +119,11 @@ function item_post(App $a) {
                }
 
                if (!DBA::isResult($toplevel_item)) {
-                       notice(DI::l10n()->t('Unable to locate original post.') . EOL);
+                       notice(DI::l10n()->t('Unable to locate original post.'));
                        if ($return_path) {
                                DI::baseUrl()->redirect($return_path);
                        }
-                       exit();
+                       throw new HTTPException\NotFoundException(DI::l10n()->t('Unable to locate original post.'));
                }
 
                $toplevel_item_id = $toplevel_item['id'];
@@ -165,12 +166,12 @@ function item_post(App $a) {
 
        // Now check that valid personal details have been provided
        if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) {
-               notice(DI::l10n()->t('Permission denied.') . EOL);
+               notice(DI::l10n()->t('Permission denied.'));
                if ($return_path) {
                        DI::baseUrl()->redirect($return_path);
                }
 
-               exit();
+               throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
        }
 
        // Init post instance
@@ -319,11 +320,13 @@ function item_post(App $a) {
                        if ($preview) {
                                System::jsonExit(['preview' => '']);
                        }
-                       info(DI::l10n()->t('Empty post discarded.') . EOL);
+
+                       info(DI::l10n()->t('Empty post discarded.'));
                        if ($return_path) {
                                DI::baseUrl()->redirect($return_path);
                        }
-                       exit();
+
+                       throw new HTTPException\BadRequestException(DI::l10n()->t('Empty post discarded.'));
                }
        }
 
@@ -500,9 +503,6 @@ function item_post(App $a) {
 
        $body = DI::bbCodeVideo()->transform($body);
 
-       // Fold multi-line [code] sequences
-       $body = preg_replace('/\[\/code\]\s*\[code\]/ism', "\n", $body);
-
        $body = BBCode::scaleExternalImages($body);
 
        // Setting the object type if not defined before
@@ -703,10 +703,12 @@ function item_post(App $a) {
                // update filetags in pconfig
                FileTag::updatePconfig($uid, $categories_old, $categories_new, 'category');
 
+               info(DI::l10n()->t('Post updated.'));
                if ($return_path) {
                        DI::baseUrl()->redirect($return_path);
                }
-               exit();
+
+               throw new HTTPException\OKException(DI::l10n()->t('Post updated.'));
        }
 
        unset($datarray['edit']);
@@ -727,6 +729,8 @@ function item_post(App $a) {
                if ($return_path) {
                        DI::baseUrl()->redirect($return_path);
                }
+
+               throw new HTTPException\InternalServerErrorException(DI::l10n()->t('Item wasn\'t stored.'));
        }
 
        $datarray = Item::selectFirst(Item::ITEM_FIELDLIST, ['id' => $post_id]);
@@ -736,6 +740,8 @@ function item_post(App $a) {
                if ($return_path) {
                        DI::baseUrl()->redirect($return_path);
                }
+
+               throw new HTTPException\InternalServerErrorException(DI::l10n()->t('Item couldn\'t be fetched.'));
        }
 
        // update filetags in pconfig
@@ -816,15 +822,13 @@ function item_post(App $a) {
                return $post_id;
        }
 
+       info(DI::l10n()->t('Post published.'));
        item_post_return(DI::baseUrl(), $api_source, $return_path);
        // NOTREACHED
 }
 
 function item_post_return($baseurl, $api_source, $return_path)
 {
-       // figure out how to return, depending on from whence we came
-    $a = DI::app();
-
        if ($api_source) {
                return;
        }
@@ -886,7 +890,7 @@ function item_content(App $a)
  *
  * @return array|bool ['replaced' => $replaced, 'contact' => $contact];
  * @throws ImagickException
- * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws HTTPException\InternalServerErrorException
  */
 function handle_tag(&$body, &$inform, &$str_tags, $profile_uid, $tag, $network = "")
 {