Path: blob/master/src/view/phui/PHUIDocumentView.php
12249 views
<?php12final class PHUIDocumentView extends AphrontTagView {34private $header;5private $bookname;6private $bookdescription;7private $fluid;8private $toc;9private $foot;10private $curtain;11private $banner;1213public function setHeader(PHUIHeaderView $header) {14$header->setTall(true);15$this->header = $header;16return $this;17}1819public function setBook($name, $description) {20$this->bookname = $name;21$this->bookdescription = $description;22return $this;23}2425public function setFluid($fluid) {26$this->fluid = $fluid;27return $this;28}2930public function setToc($toc) {31$this->toc = $toc;32return $this;33}3435public function setFoot($foot) {36$this->foot = $foot;37return $this;38}3940public function setCurtain(PHUICurtainView $curtain) {41$this->curtain = $curtain;42return $this;43}4445public function getCurtain() {46return $this->curtain;47}4849public function setBanner($banner) {50$this->banner = $banner;51return $this;52}5354public function getBanner() {55return $this->banner;56}5758protected function getTagAttributes() {59$classes = array();6061$classes[] = 'phui-document-container';62if ($this->fluid) {63$classes[] = 'phui-document-fluid';64}65if ($this->foot) {66$classes[] = 'document-has-foot';67}6869return array(70'class' => implode(' ', $classes),71);72}7374protected function getTagContent() {75require_celerity_resource('phui-document-view-css');76require_celerity_resource('phui-document-view-pro-css');77Javelin::initBehavior('phabricator-reveal-content');7879$classes = array();80$classes[] = 'phui-document-view';81$classes[] = 'phui-document-view-pro';8283if ($this->curtain) {84$classes[] = 'has-curtain';85} else {86$classes[] = 'has-no-curtain';87}8889if ($this->curtain) {90$action_list = $this->curtain->getActionList();91$this->header->setActionListID($action_list->getID());92}9394$book = null;95if ($this->bookname) {96$book = pht('%s (%s)', $this->bookname, $this->bookdescription);97}9899$main_content = $this->renderChildren();100101if ($book) {102$this->header->setSubheader($book);103}104105$table_of_contents = null;106if ($this->toc) {107$toc = array();108$toc_id = celerity_generate_unique_node_id();109$toc[] = id(new PHUIButtonView())110->setTag('a')111->setIcon('fa-align-left')112->setButtonType(PHUIButtonView::BUTTONTYPE_SIMPLE)113->addClass('phui-document-toc')114->addSigil('jx-toggle-class')115->setMetaData(array(116'map' => array(117$toc_id => 'phui-document-toc-open',118),119));120121$toc[] = phutil_tag(122'div',123array(124'class' => 'phui-list-sidenav phui-document-toc-list',125),126$this->toc);127128$table_of_contents = phutil_tag(129'div',130array(131'class' => 'phui-document-toc-container',132'id' => $toc_id,133),134$toc);135}136137$foot_content = null;138if ($this->foot) {139$foot_content = phutil_tag(140'div',141array(142'class' => 'phui-document-foot-content',143),144$this->foot);145}146147$curtain = null;148if ($this->curtain) {149$curtain = phutil_tag(150'div',151array(152'class' => 'phui-document-curtain',153),154$this->curtain);155}156157$main_content = phutil_tag(158'div',159array(160'class' => 'phui-document-content-view',161),162$main_content);163164$content_inner = phutil_tag(165'div',166array(167'class' => 'phui-document-inner',168),169array(170$table_of_contents,171$this->header,172$this->banner,173phutil_tag(174'div',175array(176'class' => 'phui-document-content-outer',177),178phutil_tag(179'div',180array(181'class' => 'phui-document-content-inner',182),183array(184$main_content,185$curtain,186))),187$foot_content,188));189190$content = phutil_tag(191'div',192array(193'class' => 'phui-document-content',194),195$content_inner);196197return phutil_tag(198'div',199array(200'class' => implode(' ', $classes),201),202$content);203}204205}206207208