mock = $mock; return $this; } public function setImages(array $images) { $this->images = $images; return $this; } public function render() { if (!$this->mock) { throw new PhutilInvalidStateException('setMock'); } $mock = $this->mock; $images_to_show = array(); $thumbnail = null; if (!empty($this->images)) { $images_to_show = array_intersect_key( $this->mock->getImages(), array_flip($this->images)); } $xform = PhabricatorFileTransform::getTransformByKey( PhabricatorFileThumbnailTransform::TRANSFORM_PINBOARD); if ($images_to_show) { $image = head($images_to_show); $thumbfile = $image->getFile(); $header = 'M'.$mock->getID().' '.$mock->getName(). ' (#'.$image->getID().')'; $uri = '/M'.$this->mock->getID().'/'.$image->getID().'/'; } else { $thumbfile = $mock->getCoverFile(); $header = 'M'.$mock->getID().' '.$mock->getName(); $uri = '/M'.$this->mock->getID(); } $thumbnail = $thumbfile->getURIForTransform($xform); list($x, $y) = $xform->getTransformedDimensions($thumbfile); $item = id(new PHUIPinboardItemView()) ->setUser($this->getUser()) ->setObject($mock) ->setHeader($header) ->setURI($uri) ->setImageURI($thumbnail) ->setImageSize($x, $y) ->setDisabled($mock->isClosed()) ->addIconCount('fa-picture-o', count($mock->getImages())) ->addIconCount('fa-trophy', $mock->getTokenCount()); return $item; } }