X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FObject%2FThread.php;h=cd055ee5ebfa4e17eb4cf963219afaca2bfabdd2;hb=1fa37586caa351b3bdb44920649ba0fa90c36bd0;hp=2a72f0f659144f1621a3872ff61743eca1d44d76;hpb=70d047ba8e12e769c086f0048539b72ecdf8a46c;p=friendica.git diff --git a/src/Object/Thread.php b/src/Object/Thread.php index 2a72f0f659..cd055ee5eb 100644 --- a/src/Object/Thread.php +++ b/src/Object/Thread.php @@ -5,7 +5,8 @@ namespace Friendica\Object; use Friendica\BaseObject; -use Friendica\Object\Item; +use Friendica\Core\Protocol; +use Friendica\Object\Post; require_once 'boot.php'; require_once 'include/text.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); @@ -120,7 +131,7 @@ class Thread extends BaseObject * @return mixed The inserted item on success * false on failure */ - public function addParent($item) + public function addParent(Post $item) { $item_id = $item->getId(); @@ -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; }