X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FObject%2FThread.php;h=cd055ee5ebfa4e17eb4cf963219afaca2bfabdd2;hb=807ad145218ab6d4c57b6d200f4c89f63620502f;hp=d159f41c96779d7459bf833022f066ad18646739;hpb=3772cf7544fd1f8be1894e56aa61b4f8c228c9c0;p=friendica.git diff --git a/src/Object/Thread.php b/src/Object/Thread.php index d159f41c96..cd055ee5eb 100644 --- a/src/Object/Thread.php +++ b/src/Object/Thread.php @@ -5,6 +5,7 @@ namespace Friendica\Object; use Friendica\BaseObject; +use Friendica\Core\Protocol; use Friendica\Object\Post; require_once 'boot.php'; @@ -17,7 +18,7 @@ require_once 'include/text.php'; */ class Thread extends BaseObject { - private $parents = array(); + private $parents = []; private $mode = null; private $writable = false; private $profile_owner = 0; @@ -27,11 +28,12 @@ class Thread extends BaseObject * Constructor * * @param string $mode The mode - * @param boolean $preview boolean value + * @param boolean $preview Are we in the preview mode? + * @param boolean $writable Override the writable check */ - public function __construct($mode, $preview) + public function __construct($mode, $preview, $writable = false) { - $this->setMode($mode); + $this->setMode($mode, $writable); $this->preview = $preview; } @@ -39,10 +41,11 @@ class Thread extends BaseObject * Set the mode we'll be displayed on * * @param string $mode The mode to set + * @param boolean $writable Override the writable check * * @return void */ - private function setMode($mode) + private function setMode($mode, $writable) { if ($this->getMode() == $mode) { return; @@ -58,11 +61,19 @@ class Thread extends BaseObject break; case 'profile': $this->profile_owner = $a->profile['profile_uid']; - $this->writable = can_write_wall($a, $this->profile_owner); + $this->writable = can_write_wall($this->profile_owner); break; case 'display': $this->profile_owner = $a->profile['uid']; - $this->writable = can_write_wall($a, $this->profile_owner); + $this->writable = can_write_wall($this->profile_owner) || $writable; + break; + case 'community': + $this->profile_owner = 0; + $this->writable = $writable; + break; + case 'contacts': + $this->profile_owner = 0; + $this->writable = $writable; break; default: logger('[ERROR] Conversation::setMode : Unhandled mode ('. $mode .').', LOGGER_DEBUG); @@ -137,7 +148,7 @@ class Thread extends BaseObject /* * Only add will be displayed */ - if ($item->getDataValue('network') === NETWORK_MAIL && local_user() != $item->getDataValue('uid')) { + if ($item->getDataValue('network') === Protocol::MAIL && local_user() != $item->getDataValue('uid')) { logger('[WARN] Conversation::addThread : Thread is a mail ('. $item->getId() .').', LOGGER_DEBUG); return false; } @@ -166,11 +177,11 @@ class Thread extends BaseObject public function getTemplateData($conv_responses) { $a = self::getApp(); - $result = array(); + $result = []; $i = 0; foreach ($this->parents as $item) { - if ($item->getDataValue('network') === NETWORK_MAIL && local_user() != $item->getDataValue('uid')) { + if ($item->getDataValue('network') === Protocol::MAIL && local_user() != $item->getDataValue('uid')) { continue; }