Welcome, Guest
Username: Password: Remember me

TOPIC: Create a new view in plugin

Create a new view in plugin 1 year 1 month ago #106827

  • elvey
  • elvey's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 2
  • Karma: 0
I'm developing a plugin that requires me to create an additional view. Unfortunately documentation on the plugin environment is a little slim and I can't find for the life of me how to create a new view/controller in my plugin.
Would someone be able to point me towards the appropriate resources for this task? Thanks you
The administrator has disabled public write access.

Create a new view in plugin 1 year 1 month ago #106876

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 7144
  • Thank you received: 977
  • Karma: 285
Hi,

There are no existing included solution actually, have some hack to do it actually

Starting by
$aData['clang'] = $clang = Yii::app()->lang;
            $aData['sImageURL'] = Yii::app()->getConfig('adminimageurl');
            $aData['surveyid']=$aData['iSurveyID']=$aData['iSurveyId'] = $this->iSurveyId;
            $sViewPath = '/admin/survey';
            $oAdminController=new AdminController('admin');
            $oCommonAction = new Survey_Common_Action($oAdminController,'survey');
The administrator has disabled public write access.

Create a new view in plugin 1 year 1 month ago #106914

  • elvey
  • elvey's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 2
  • Karma: 0
Thanks for your help. I will however ask for a little more guidance if possible.

I am guessing this is creating a new action which is then saved to the admin controller. However I am unsure where the action code is set. Is there a parameter I can use to set a callback method? Otherwise I see most existing actions have classes that extend Survey_Common_Action in application/controllers/admin so could I create another class such as this that can be loaded from within my plugin directory?

Finally I'm not sure what to do with $sViewPath. Should this be set in $aData?
The administrator has disabled public write access.

Create a new view in plugin 11 months 1 week ago #109957

  • atlet
  • atlet's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 17
  • Karma: 0
Any luck with creation of new view? I'll looking to create a plugin and will need to create a nev view in admin area...
elvey wrote:
Thanks for your help. I will however ask for a little more guidance if possible.

I am guessing this is creating a new action which is then saved to the admin controller. However I am unsure where the action code is set. Is there a parameter I can use to set a callback method? Otherwise I see most existing actions have classes that extend Survey_Common_Action in application/controllers/admin so could I create another class such as this that can be loaded from within my plugin directory?

Finally I'm not sure what to do with $sViewPath. Should this be set in $aData?
The administrator has disabled public write access.

Create a new view in plugin 11 months 1 week ago #109961

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 7144
  • Thank you received: 977
  • Karma: 285
In one of my old plugin (surely need better suystem and adpatation, i use this (adding a new page for survey)
private function displayContent($aData=false)
        {
            if(!$aData){$aData=array();}
            $aData['clang'] = $clang = Yii::app()->lang;
            $aData['sImageURL'] = Yii::app()->getConfig('adminimageurl');
            $aData['surveyid']=$aData['iSurveyID']=$aData['iSurveyId'] = $this->iSurveyId;
            $sViewPath = '/admin/survey';
            $oAdminController=new AdminController('admin');
            $oCommonAction = new Survey_Common_Action($oAdminController,'survey');
            ob_start();
            //header("Content-type: text/html; charset=UTF-8"); // needed for correct UTF-8 encoding
            $oAdminController->_getAdminHeader();
            $oAdminController->_showadminmenu($this->iSurveyId);
            if($this->iSurveyId)
                $oCommonAction->_surveybar($this->iSurveyId);
            if($this->fContent){
                self::render($this->fContent,$aData);// Surely better with ->render ....
            }
            $oAdminController->_loadEndScripts();
            $oAdminController->_getAdminFooter('http://manual.limesurvey.org', $clang->gT('LimeSurvey online manual'));
            $sOutput = ob_get_contents();
            ob_clean();
            App()->getClientScript()->render($sOutput);
            echo $sOutput;
            Yii::app()->end();
        }
        private function render($file,$aData=false){
            if($aData)
            {
                foreach($aData as $data=>$value){
                    $$data=$value;
                }
            }
            include_once(dirname(__FILE__)."/".$this->fContent);// Surely better with ->render ....
        }
Last Edit: 11 months 1 week ago by DenisChenu.
The administrator has disabled public write access.

Create a new view in plugin 9 months 3 days ago #111804

  • sparkbird
  • sparkbird's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 1
  • Thank you received: 2
  • Karma: 0
The administrator has disabled public write access.
The following user(s) said Thank You: david2013, jdd2405

Create a new view in plugin 5 months 2 weeks ago #115159

  • david2013
  • david2013's Avatar
  • OFFLINE
  • Senior Lime
  • Posts: 44
  • Thank you received: 7
  • Karma: 3
Thank you for sharing. We need more document ion regarding plugin.

When I download it using latest version. I doesn't work. After I change the line below, it works for me
'href' => "plugins/direct/rewards?function=assignRewards",
to
'href' => $this->api->createUrl('plugins/direct', array('plugin' => 'Rewards', 'function' => 'assignRewards')),
Last Edit: 5 months 2 weeks ago by david2013.
The administrator has disabled public write access.
The following user(s) said Thank You: jdd2405

Create a new view in plugin 3 months 6 days ago #117420

  • jdd2405
  • jdd2405's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 1
  • Karma: 0
The Plugin from sparkbird is great to begin with a new admin menu item. Thanks david2013 for the fix. I wouldn't have been able to do that...

Anyway, the admin menu item only shows up when visiting the plugins page. On the admin start page and all the other admin pages there is no additional menu item visible. Why is that?
The administrator has disabled public write access.

Create a new view in plugin 3 months 5 days ago #117425

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 7144
  • Thank you received: 977
  • Karma: 285
jdd2405 wrote:
Anyway, the admin menu item only shows up when visiting the plugins page. On the admin start page and all the other admin pages there is no additional menu item visible. Why is that?
Because only plugin page use the new menu extension.
The administrator has disabled public write access.
The following user(s) said Thank You: jdd2405
Time to create page: 0.863 seconds
Donation Image