X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FObject%2FPost.php;h=847135d3621bf10945d71a652e694c4b9faa4a8f;hb=f40c57fc204ff47a3cf9f7eab75e8a635566275c;hp=a1d6c1eab0c23b883b36a3719ad7b6e460e28de3;hpb=55e54bb9500f54bb075dcbc2054018de0969d9e7;p=friendica.git diff --git a/src/Object/Post.php b/src/Object/Post.php index a1d6c1eab0..847135d362 100644 --- a/src/Object/Post.php +++ b/src/Object/Post.php @@ -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() {