id = $id; $this->body = $body ? [$body] : []; parent::__construct(); $this->addClass(ZBX_STYLE_DASHBOARD_WIDGET); $this->setId($this->id.'_widget'); } /** * Set widget header. * * @param string $caption * @param array $controls * * @return $this */ public function setHeader($caption, array $controls = []) { $this->header = (new CDiv()) ->addClass(ZBX_STYLE_DASHBOARD_WIDGET_HEAD) ->addItem( (new CTag('h4', true, $caption))->setId($this->id.'_header') ); if ($controls) { $this->header->addItem(new CList($controls)); } return $this; } /** * Set widget footer. * * @param string|array|CTag $footer * @param bool $right */ public function setFooter($list) { $this->footer = $list; $this->footer->addClass(ZBX_STYLE_DASHBOARD_WIDGET_FOOT); return $this; } /** * Build widget header, body and footer. */ protected function build() { $body = (new CDiv($this->body)) ->setId($this->id); $this->cleanItems(); $this->addItem($this->header); $this->addItem($body); $this->addItem($this->footer); return $this; } /** * Get widget html. */ public function toString($destroy = true) { $this->build(); return parent::toString($destroy); } }