- Posts: 2
- Thank you received: 0
Ask the community, share ideas, and connect with other LimeSurvey users!
$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');
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?
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('https://www.limesurvey.org/manual', $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 .... }
'href' => "plugins/direct/rewards?function=assignRewards",
'href' => $this->api->createUrl('plugins/direct', array('plugin' => 'Rewards', 'function' => 'assignRewards')),
Because only plugin page use the new menu extension.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?
if(Permission::model()->hasSurveyPermission($surveyid,'yourpermission')){ //Add the menu }
I'll just ping you for some plugin development soonDenisChenu wrote:
Code:if(Permission::model()->hasSurveyPermission($surveyid,'yourpermission')){ //Add the menu }