]> git.mxchange.org Git - friendica.git/blobdiff - src/Object/Post.php
2) Refactor App->config[] into Core\PConfig
[friendica.git] / src / Object / Post.php
index a1d6c1eab0c23b883b36a3719ad7b6e460e28de3..847135d3621bf10945d71a652e694c4b9faa4a8f 100644 (file)
@@ -16,7 +16,6 @@ use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\Database\DBA;
 use Friendica\Model\Contact;
-use Friendica\Model\Conversation;
 use Friendica\Model\Item;
 use Friendica\Model\Term;
 use Friendica\Util\Crypto;
@@ -61,6 +60,7 @@ class Post extends BaseObject
         * Constructor
         *
         * @param array $data data array
+        * @throws \Exception
         */
        public function __construct(array $data)
        {
@@ -116,6 +116,8 @@ class Post extends BaseObject
         *
         * @return mixed The data requested on success
         *               false on failure
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        public function getTemplateData(array $conv_responses, $thread_level = 1)
        {
@@ -248,7 +250,7 @@ class Post extends BaseObject
                        }
                }
 
-               $responses = get_responses($conv_responses, $response_verbs, $this, $item);
+               $responses = get_responses($conv_responses, $response_verbs, $item, $this);
 
                foreach ($response_verbs as $value => $verbs) {
                        $responses[$verbs]['output'] = !empty($conv_responses[$verbs][$item['uri']]) ? format_like($conv_responses[$verbs][$item['uri']], $conv_responses[$verbs][$item['uri'] . '-l'], $verbs, $item['uri']) : '';
@@ -501,6 +503,7 @@ class Post extends BaseObject
         * @param Post $item The child item to add
         *
         * @return mixed
+        * @throws \Exception
         */
        public function addChild(Post $item)
        {
@@ -590,6 +593,7 @@ class Post extends BaseObject
         * @param Post $item The child to be removed
         *
         * @return boolean Success or failure
+        * @throws \Exception
         */
        public function removeChild(Post $item)
        {
@@ -679,6 +683,7 @@ class Post extends BaseObject
         *
         * @param string $name template name
         * @return bool
+        * @throws \Exception
         */
        private function setTemplate($name)
        {
@@ -763,6 +768,44 @@ class Post extends BaseObject
                return $this->comment_box_template;
        }
 
+       /**
+        * Get default text for the comment box
+        *
+        * @return string
+        */
+       private function getDefaultText()
+       {
+               if (!local_user()) {
+                       return;
+               }
+
+               $a = self::getApp();
+
+               $item = Item::selectFirst(['author-addr'], ['id' => $this->getId()]);
+               if (!DBA::isResult($item) || empty($item['author-addr'])) {
+                       // Should not happen
+                       return '';
+               }
+
+               if ($item['author-addr'] != $a->profile['addr']) {
+                       $text = '@' . $item['author-addr'] . ' ';
+               } else {
+                       $text = '';
+               }
+
+               $terms = Term::tagArrayFromItemId($this->getId(), TERM_MENTION);
+
+               foreach ($terms as $term) {
+                       $profile = Contact::getDetailsByURL($term['url']);
+                       if (!empty($profile['addr']) && ($profile['contact-type'] != Contact::TYPE_COMMUNITY) &&
+                               ($profile['addr'] != $a->profile['addr']) && !strstr($text, $profile['addr'])) {
+                               $text .= '@' . $profile['addr'] . ' ';
+                       }
+               }
+
+               return $text;
+       }
+
        /**
         * Get the comment box
         *
@@ -770,6 +813,7 @@ class Post extends BaseObject
         *
         * @return mixed The comment box string (empty if no comment box)
         *               false on failure
+        * @throws \Exception
         */
        private function getCommentBox($indent)
        {
@@ -783,7 +827,7 @@ class Post extends BaseObject
                }
 
                if ($conv->isWritable() && $this->isWritable()) {
-                       $qc = $qcomment = null;
+                       $qcomment = null;
 
                        /*
                         * Hmmm, code depending on the presence of a particular addon?
@@ -798,6 +842,8 @@ class Post extends BaseObject
                        $uid = $conv->getProfileOwner();
                        $parent_uid = $this->getDataValue('uid');
 
+                       $default_text = $this->getDefaultText();
+
                        if (!is_null($parent_uid) && ($uid != $parent_uid)) {
                                $uid = $parent_uid;
                        }
@@ -811,6 +857,7 @@ class Post extends BaseObject
                                '$id'          => $this->getId(),
                                '$parent'      => $this->getId(),
                                '$qcomment'    => $qcomment,
+                               '$default'     => $default_text,
                                '$profile_uid' => $uid,
                                '$mylink'      => $a->removeBaseURL($a->contact['url']),
                                '$mytitle'     => L10n::t('This is you'),
@@ -849,6 +896,7 @@ class Post extends BaseObject
         * Check if we are a wall to wall item and set the relevant properties
         *
         * @return void
+        * @throws \Exception
         */
        protected function checkWallToWall()
        {