From dda8da10d36bf3ae8f2cefbb9b4402cac48a2cae Mon Sep 17 00:00:00 2001 From: Olle Haerstedt Date: Mon, 25 Jul 2016 15:19:44 +0200 Subject: [PATCH] Dev: Plugins can use $this->renderPartial to render views Dev: Views must be stored in views/ folder --- application/libraries/PluginManager/PluginBase.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/application/libraries/PluginManager/PluginBase.php b/application/libraries/PluginManager/PluginBase.php index a8fb61a1531..063e6c69907 100644 --- a/application/libraries/PluginManager/PluginBase.php +++ b/application/libraries/PluginManager/PluginBase.php @@ -290,6 +290,20 @@ protected function getDir() return dirname($fileName); } + /** + * Look for views in plugin views/ folder and render it (no echo) + * + * @param string $viewfile Filename of view in views/ folder + * @param array $data + * @return string; + */ + public function renderPartial($viewfile, $data) + { + $alias = 'plugin_views_folder' . $this->id; + \Yii::setPathOfAlias($alias, $this->getDir()); + return \Yii::app()->controller->renderPartial($alias .'.views.' . $viewfile, $data, true); + } + /** * Translation for plugin *