customClass = $custom_class; return $this; } public function getCustomClass() { return $this->customClass; } public function setFilePHID($file_phid) { $this->filePHID = $file_phid; return $this; } private function getFilePHID() { return $this->filePHID; } public function setFileMonogram($monogram) { $this->fileMonogram = $monogram; return $this; } private function getFileMonogram() { return $this->fileMonogram; } public function setFileViewable($file_viewable) { $this->fileViewable = $file_viewable; return $this; } private function getFileViewable() { return $this->fileViewable; } public function setFileViewURI($file_view_uri) { $this->fileViewURI = $file_view_uri; return $this; } private function getFileViewURI() { return $this->fileViewURI; } public function setFileDownloadURI($file_download_uri) { $this->fileDownloadURI = $file_download_uri; return $this; } private function getFileDownloadURI() { return $this->fileDownloadURI; } public function setFileName($file_name) { $this->fileName = $file_name; return $this; } private function getFileName() { return $this->fileName; } public function setFileSize($file_size) { $this->fileSize = $file_size; return $this; } private function getFileSize() { return $this->fileSize; } public function getMetadata() { return array( 'phid' => $this->getFilePHID(), 'viewable' => $this->getFileViewable(), 'uri' => $this->getFileViewURI(), 'dUri' => $this->getFileDownloadURI(), 'name' => $this->getFileName(), 'monogram' => $this->getFileMonogram(), ); } public function render() { require_celerity_resource('phabricator-remarkup-css'); require_celerity_resource('phui-lightbox-css'); $mustcapture = true; $sigil = 'lightboxable'; $meta = $this->getMetadata(); $class = 'phabricator-remarkup-embed-layout-link'; if ($this->getCustomClass()) { $class = $this->getCustomClass(); } $filename = $this->getFileName(); $type_icon = FileTypeIcon::getFileIcon($filename); $icon = id(new PHUIIconView()) ->setIcon($type_icon); $info = phutil_tag( 'span', array( 'class' => 'phabricator-remarkup-embed-layout-info', ), $this->getFileSize()); $name = phutil_tag( 'span', array( 'class' => 'phabricator-remarkup-embed-layout-name', ), $filename); $inner = phutil_tag( 'span', array( 'class' => 'phabricator-remarkup-embed-layout-info-block', ), array( $name, $info, )); return javelin_tag( 'a', array( 'href' => $this->getFileViewURI(), 'class' => $class, 'sigil' => $sigil, 'meta' => $meta, 'mustcapture' => $mustcapture, ), array( $icon, $inner, )); } }