<?php #[\AllowDynamicProperties] abstract class ViewWpf extends BaseObjectWpf { /* * @deprecated */ protected $_tpl = WPF_DEFAULT; /* * @var string name of theme to load from templates, if empty - default values will be used */ protected $_theme = ''; /* * @var string module code for this view */ protected $_code = ''; public function display( $tpl = '' ) { $tpl = ( empty($tpl) ) ? $this->_tpl : $tpl; $content = $this->getContent($tpl); if (false !== $content) { HtmlWpf::echoEscapedHtml($content); } } public function getPath( $tpl ) { $path = ''; $parentModule = FrameWpf::_()->getModule( $this->_code ); if (file_exists($parentModule->getModDir() . 'views' . DS . 'tpl' . DS . $tpl . '.php')) { //Then try to find it in module directory $path = $parentModule->getModDir() . DS . 'views' . DS . 'tpl' . DS . $tpl . '.php'; } return $path; } public function getModule() { return FrameWpf::_()->getModule( $this->_code ); } public function getModel( $code = '' ) { return FrameWpf::_()->getModule( $this->_code )->getController()->getModel($code); } public function getContent( $tpl = '' ) { $tpl = ( empty($tpl) ) ? $this->_tpl : $tpl; $path = $this->getPath($tpl); $parentModule = FrameWpf::_()->getModule( $this->_code ); if ($path) { $content = ''; ob_start(); require $parentModule->getModDir() . DS . 'views' . DS . 'tpl' . DS . $tpl . '.php'; $content = ob_get_contents(); ob_end_clean(); return $content; } return false; } public function setTheme( $theme ) { $this->_theme = $theme; } public function getTheme() { return $this->_theme; } public function setTpl( $tpl ) { $this->_tpl = $tpl; } public function getTpl() { return $this->_tpl; } public function init() { } public function assign( $name, $value ) { $this->$name = $value; } public function setCode( $code ) { $this->_code = $code; } public function getCode() { return $this->_code; } /** * This will display form for our widgets */ public function displayWidgetForm( $data = array(), $widget = array(), $formTpl = 'form' ) { $this->assign('data', $data); $this->assign('widget', $widget); if (FrameWpf::_()->isTplEditor()) { if ($this->getPath($formTpl . '_ext')) { $formTpl .= '_ext'; } } self::display($formTpl); } public function sizeToPxPt( $size ) { if (!strpos($size, 'px') && !strpos($size, '%')) { $size .= 'px'; } return $size; } public function getInlineContent( $tpl = '' ) { return preg_replace('/\s+/', ' ', $this->getContent($tpl)); } }