]> git.mxchange.org Git - friendica.git/blobdiff - mod/item.php
Replace deprecated Addon::callHooks with Hook::callAll
[friendica.git] / mod / item.php
index 739e09ab0fecc03c39c74c0a3d1cee9c250f4e7b..3d6d886eeb33042f05457529edf9bc0cb150fd56 100644 (file)
@@ -19,8 +19,8 @@ use Friendica\App;
 use Friendica\Content\Pager;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
-use Friendica\Core\Addon;
 use Friendica\Core\Config;
+use Friendica\Core\Hook;
 use Friendica\Core\L10n;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
@@ -31,15 +31,13 @@ use Friendica\Model\Contact;
 use Friendica\Model\Conversation;
 use Friendica\Model\FileTag;
 use Friendica\Model\Item;
+use Friendica\Model\Photo;
 use Friendica\Protocol\Diaspora;
 use Friendica\Protocol\Email;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Emailer;
 use Friendica\Util\Security;
-
-require_once 'include/enotify.php';
-require_once 'include/text.php';
-require_once 'include/items.php';
+use Friendica\Util\Strings;
 
 function item_post(App $a) {
        if (!local_user() && !remote_user()) {
@@ -53,10 +51,10 @@ function item_post(App $a) {
                drop_items($arr_drop);
                $json = ['success' => 1];
                echo json_encode($json);
-               killme();
+               exit();
        }
 
-       Addon::callHooks('post_local_start', $_REQUEST);
+       Hook::callAll('post_local_start', $_REQUEST);
 
        Logger::log('postvars ' . print_r($_REQUEST, true), Logger::DATA);
 
@@ -120,7 +118,7 @@ function item_post(App $a) {
                        if (!empty($_REQUEST['return'])) {
                                $a->internalRedirect($return_path);
                        }
-                       killme();
+                       exit();
                }
 
                $parent = $parent_item['id'];
@@ -165,13 +163,13 @@ function item_post(App $a) {
 
        // Now check that valid personal details have been provided
        if (!Security::canWriteToUserWall($profile_uid) && !$allow_comment) {
-               notice(L10n::t('Permission denied.') . EOL) ;
+               notice(L10n::t('Permission denied.') . EOL);
 
                if (!empty($_REQUEST['return'])) {
                        $a->internalRedirect($return_path);
                }
 
-               killme();
+               exit();
        }
 
        // Init post instance
@@ -203,8 +201,8 @@ function item_post(App $a) {
                $objecttype        = $orig_post['object-type'];
                $app               = $orig_post['app'];
                $categories        = $orig_post['file'];
-               $title             = notags(trim($_REQUEST['title']));
-               $body              = escape_tags(trim($_REQUEST['body']));
+               $title             = Strings::escapeTags(trim($_REQUEST['title']));
+               $body              = Strings::escapeHtml(trim($_REQUEST['body']));
                $private           = $orig_post['private'];
                $pubmail_enabled   = $orig_post['pubmail'];
                $network           = $orig_post['network'];
@@ -235,14 +233,14 @@ function item_post(App $a) {
                        $str_contact_deny  = perms2str(defaults($_REQUEST, 'contact_deny', ''));
                }
 
-               $title             =      notags(trim(defaults($_REQUEST, 'title'   , '')));
-               $location          =      notags(trim(defaults($_REQUEST, 'location', '')));
-               $coord             =      notags(trim(defaults($_REQUEST, 'coord'   , '')));
-               $verb              =      notags(trim(defaults($_REQUEST, 'verb'    , '')));
-               $emailcc           =      notags(trim(defaults($_REQUEST, 'emailcc' , '')));
-               $body              = escape_tags(trim(defaults($_REQUEST, 'body'    , '')));
-               $network           =      notags(trim(defaults($_REQUEST, 'network' , Protocol::DFRN)));
-               $guid              =      System::createUUID();
+               $title             = Strings::escapeTags(trim(defaults($_REQUEST, 'title'   , '')));
+               $location          = Strings::escapeTags(trim(defaults($_REQUEST, 'location', '')));
+               $coord             = Strings::escapeTags(trim(defaults($_REQUEST, 'coord'   , '')));
+               $verb              = Strings::escapeTags(trim(defaults($_REQUEST, 'verb'    , '')));
+               $emailcc           = Strings::escapeTags(trim(defaults($_REQUEST, 'emailcc' , '')));
+               $body              = Strings::escapeHtml(trim(defaults($_REQUEST, 'body'    , '')));
+               $network           = Strings::escapeTags(trim(defaults($_REQUEST, 'network' , Protocol::DFRN)));
+               $guid              = System::createUUID();
 
                $postopts = defaults($_REQUEST, 'postopts', '');
 
@@ -282,13 +280,13 @@ function item_post(App $a) {
 
                if (!strlen($body)) {
                        if ($preview) {
-                               killme();
+                               exit();
                        }
                        info(L10n::t('Empty post discarded.') . EOL);
                        if (!empty($_REQUEST['return'])) {
                                $a->internalRedirect($return_path);
                        }
-                       killme();
+                       exit();
                }
        }
 
@@ -347,7 +345,7 @@ function item_post(App $a) {
        $str_tags = '';
        $inform   = '';
 
-       $tags = get_tags($body);
+       $tags = BBCode::getTags($body);
 
        // Add a tag if the parent contact is from ActivityPub or OStatus (This will notify them)
        if ($parent && in_array($thr_parent_contact['network'], [Protocol::OSTATUS, Protocol::ACTIVITYPUB])) {
@@ -459,16 +457,18 @@ function item_post(App $a) {
                                // Ensure to only modify photos that you own
                                $srch = '<' . intval($original_contact_id) . '>';
 
-                               $condition = ['allow_cid' => $srch, 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '',
-                                               'resource-id' => $image_uri, 'uid' => $profile_uid];
-                               if (!DBA::exists('photo', $condition)) {
+                               $condition = [
+                                       'allow_cid' => $srch, 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '',
+                                       'resource-id' => $image_uri, 'uid' => $profile_uid
+                               ];
+                               if (!Photo::exists($condition)) {
                                        continue;
                                }
 
                                $fields = ['allow_cid' => $str_contact_allow, 'allow_gid' => $str_group_allow,
                                                'deny_cid' => $str_contact_deny, 'deny_gid' => $str_group_deny];
-                               $condition = ['resource-id' => $image_uri, 'uid' => $profile_uid, 'album' => L10n::t('Wall Photos')];
-                               DBA::update('photo', $fields, $condition);
+                               $condition = ['resource-id' => $image_uri, 'uid' => $profile_uid];
+                               Photo::update($fields, $condition);
                        }
                }
        }
@@ -667,7 +667,6 @@ function item_post(App $a) {
 
        // preview mode - prepare the body for display and send it via json
        if ($preview) {
-               require_once 'include/conversation.php';
                // We set the datarray ID to -1 because in preview mode the dataray
                // doesn't have an ID.
                $datarray["id"] = -1;
@@ -680,7 +679,7 @@ function item_post(App $a) {
                exit();
        }
 
-       Addon::callHooks('post_local',$datarray);
+       Hook::callAll('post_local',$datarray);
 
        if (!empty($datarray['cancel'])) {
                Logger::log('mod_item: post cancelled by addon.');
@@ -689,19 +688,18 @@ function item_post(App $a) {
                }
 
                $json = ['cancel' => 1];
-               if (!empty($_REQUEST['jsreload']) && strlen($_REQUEST['jsreload'])) {
+               if (!empty($_REQUEST['jsreload'])) {
                        $json['reload'] = System::baseUrl() . '/' . $_REQUEST['jsreload'];
                }
 
                echo json_encode($json);
-               killme();
+               exit();
        }
 
-       if ($orig_post) {
-
+       if ($orig_post) {
                // Fill the cache field
                // This could be done in Item::update as well - but we have to check for the existance of some fields.
-               put_item_in_cache($datarray);
+               Item::putInCache($datarray);
 
                $fields = [
                        'title' => $datarray['title'],
@@ -723,7 +721,7 @@ function item_post(App $a) {
                        Logger::log('return: ' . $return_path);
                        $a->internalRedirect($return_path);
                }
-               killme();
+               exit();
        } else {
                $post_id = 0;
        }
@@ -797,7 +795,7 @@ function item_post(App $a) {
                }
        }
 
-       Addon::callHooks('post_local_end', $datarray);
+       Hook::callAll('post_local_end', $datarray);
 
        if (strlen($emailcc) && $profile_uid == local_user()) {
                $erecips = explode(',', $emailcc);
@@ -817,7 +815,7 @@ function item_post(App $a) {
                                        $subject = Email::encodeHeader('[Friendica]' . ' ' . L10n::t('%s posted an update.', $a->user['username']), 'UTF-8');
                                }
                                $link = '<a href="' . System::baseUrl() . '/profile/' . $a->user['nickname'] . '"><img src="' . $author['thumb'] . '" alt="' . $a->user['username'] . '" /></a><br /><br />';
-                               $html    = prepare_body($datarray);
+                               $html    = Item::prepareBody($datarray);
                                $message = '<html><body>' . $link . $html . $disclaimer . '</body></html>';
                                $params =  [
                                        'fromName' => $a->user['username'],
@@ -858,7 +856,7 @@ function item_post(App $a) {
 function item_post_return($baseurl, $api_source, $return_path)
 {
        // figure out how to return, depending on from whence we came
-    $a = get_app();
+    $a = \get_app();
 
        if ($api_source) {
                return;
@@ -869,14 +867,14 @@ function item_post_return($baseurl, $api_source, $return_path)
        }
 
        $json = ['success' => 1];
-       if (!empty($_REQUEST['jsreload']) && strlen($_REQUEST['jsreload'])) {
+       if (!empty($_REQUEST['jsreload'])) {
                $json['reload'] = $baseurl . '/' . $_REQUEST['jsreload'];
        }
 
        Logger::log('post_json: ' . print_r($json, true), Logger::DEBUG);
 
        echo json_encode($json);
-       killme();
+       exit();
 }
 
 function item_content(App $a)
@@ -902,7 +900,7 @@ function item_content(App $a)
                if ($a->isAjax()) {
                        // ajax return: [<item id>, 0 (no perm) | <owner id>]
                        echo json_encode([intval($a->argv[2]), intval($o)]);
-                       killme();
+                       exit();
                }
        }
 
@@ -914,7 +912,7 @@ function item_content(App $a)
  * the appropiate link.
  *
  * @param App $a Application instance @TODO is unused in this function's scope (excluding included files)
- * @param unknown_type $body the text to replace the tag in
+ * @param string $body the text to replace the tag in
  * @param string $inform a comma-seperated string containing everybody to inform
  * @param string $str_tags string to add the tag to
  * @param integer $profile_uid