Skip to content

Commit

Permalink
Dev: few fixes and some cleaning
Browse files Browse the repository at this point in the history
  • Loading branch information
LouisGac committed Jul 17, 2017
1 parent b11222d commit 45da438
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 125 deletions.
85 changes: 12 additions & 73 deletions application/controllers/admin/templates.php
Original file line number Diff line number Diff line change
Expand Up @@ -451,51 +451,6 @@ public function templaterename()
}
}

/**
* Function responsible to copy a template.
*
* @access public
* @return void
*/
public function atemplatecopy()
{
if (!Permission::model()->hasGlobalPermission('templates','create'))
{
die('No permission');
}
$newname=sanitize_dirname(Yii::app()->request->getPost("newname"));
$copydir=sanitize_dirname(Yii::app()->request->getPost("copydir"));
$action=Yii::app()->request->getPost("action");
if ($newname && $copydir) {
// Copies all the files from one template directory to a new one
Yii::app()->loadHelper('admin/template');
$newdirname = Yii::app()->getConfig('usertemplaterootdir') . "/" . $newname;
$copydirname = getTemplatePath($copydir);
$oFileHelper=new CFileHelper;
$mkdirresult = mkdir_p($newdirname);
if ($mkdirresult == 1) {
$oFileHelper->copyDirectory($copydirname,$newdirname);
$templatename = $newname;
$this->getController()->redirect(array("admin/templates/sa/view",'templatename'=>$newname));
}
elseif ($mkdirresult == 2)
{
Yii::app()->setFlashMessage(sprintf(gT("Directory with the name `%s` already exists - choose another name"), $newname),'error');
$this->getController()->redirect(array("admin/templates/sa/view",'templatename'=>$copydir));
}
else
{
Yii::app()->setFlashMessage(sprintf(gT("Unable to create directory `%s`."), $newname),'error');
Yii::app()->setFlashMessage(gT("Please check the directory permissions."));
$this->getController()->redirect(array("admin/templates/sa/view"));
}
}
else
{
$this->getController()->redirect(array("admin/templates/sa/view"));
}
}


/**
* Function responsible to copy a template.
Expand Down Expand Up @@ -732,8 +687,7 @@ protected function _templatesummary($templatename, $screenname, $editfile, $rela
$time = date("ymdHis");
// Prepare textarea class for optional javascript
$templateclasseditormode = getGlobalSetting('defaulttemplateeditormode'); // default
if (Yii::app()->session['templateeditormode'] == 'none')
{
if (Yii::app()->session['templateeditormode'] == 'none'){
$templateclasseditormode = 'none';
}

Expand All @@ -744,17 +698,16 @@ protected function _templatesummary($templatename, $screenname, $editfile, $rela
$aData['time'] = $time;
/* Load this template config, else 'survey-template' package can be outdated */
$oEditedTemplate = Template::model()->getTemplateConfiguration($templatename, '', true);
$oEditedTemplate->setTemplateConfiguration($templatename);
if (!$fnew) {
$aData['filenotwritten'] = true;
}
else
{
App()->getClientScript()->reset();
}else{
//App()->getClientScript()->reset();
@fwrite($fnew, getHeader());

App()->getClientScript()->registerScriptFile( App()->getConfig('generalscripts') . 'survey_runtime.js');
//App()->getClientScript()->registerScriptFile( App()->getConfig('generalscripts') . 'survey_runtime.js');
/* register template package : PS : use asset :) */
Yii::app()->clientScript->registerPackage( 'survey-template-'.$templatename );
//Yii::app()->clientScript->registerPackage( 'survey-template-'.$templatename );
/* some needed utils script from limesurvey-public package */
App()->getClientScript()->registerScript("activateActionLink","activateActionLink();",CClientScript::POS_END);/* show the button if needed */

Expand All @@ -774,8 +727,7 @@ protected function _templatesummary($templatename, $screenname, $editfile, $rela
$sExtension=substr(strrchr($editfile, '.'), 1);

// Select ACE editor mode
switch ($sExtension)
{
switch ($sExtension){
case 'css':$sEditorFileType='css';
break;
case 'pstpl':$sEditorFileType='html';
Expand Down Expand Up @@ -828,21 +780,7 @@ protected function _initialise($templatename, $screenname, $editfile, $showsumma
//$oEditedTemplate = Template::model()->getTemplateConfiguration($templatename, '', true);
$oEditedTemplate = Template::model()->getInstance($templatename, '', true);

// In survey mode, bootstrap is loaded via the app init.
// From template editor, we just add the bootstrap files to the js/css to load for template_helper::templatereplace()
if($oEditedTemplate->cssFramework=='bootstrap')
{
/* Actually broke : $oEditedTemplate->config->files->css->filename is a string */
// Core templates (are published only if exists)
//$oEditedTemplate->config->files->css->filename[-1]="../../styles-public/bootstrap-for-template-editor.css";
//$oEditedTemplate->config->files->js->filename[]="../../scripts/bootstrap-for-template-editor.js";

// User templates (are published only if exists)
//$oEditedTemplate->config->files->css->filename[-1]="../../../styles-public/bootstrap-for-template-editor.css";
//$oEditedTemplate->config->files->js->filename[]="../../../scripts/bootstrap-for-template-editor.js";
}

//App()->getClientScript()->reset();
//App()->getClientScript()->reset();
Yii::app()->loadHelper('surveytranslator');
Yii::app()->loadHelper('admin/template');
$files = $oEditedTemplate->getValidScreenFiles("view");
Expand Down Expand Up @@ -880,8 +818,7 @@ protected function _initialise($templatename, $screenname, $editfile, $showsumma
$templatename = sanitize_dirname($templatename);

// Checks if screen name is in the list of allowed screen names
if (!isset($screens[$screenname]))
{
if (!isset($screens[$screenname])){
Yii::app()->user->setFlash('error',gT('Invalid screen name'));
$this->getController()->redirect(array("admin/templates/sa/upload"));
}
Expand Down Expand Up @@ -1155,11 +1092,13 @@ protected function _initialise($templatename, $screenname, $editfile, $showsumma

if ($showsummary)
{
//$aCssfileseditable = (array) $oEditedTemplate->config->files_editable->css->filename;
//var_dump(Yii::app()->getClientScript()->packages[$oEditedTemplate->sPackageName]); die();
Yii::app()->clientScript->registerPackage( $oEditedTemplate->sPackageName );
$aViewUrls = array_merge($aViewUrls, $this->_templatesummary($templatename, $screenname, $sEditfile, $editfile, $aAllTemplates, $files, $cssfiles, $jsfiles, $otherfiles, $myoutput));
}

App()->getClientScript()->registerScriptFile( App()->getConfig('adminscripts') . 'admin_core.js');

return $aViewUrls;
}

Expand Down
7 changes: 5 additions & 2 deletions application/core/LSETwigViewRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,12 @@ public function renderTemplateFromFile($sView, $aDatas, $bReturn)
$oTemplate = $this->getTemplateForView($sView, $oRTemplate);
$line = file_get_contents($oTemplate->viewPath.$sView);
$result = $this->renderTemplateFromString( $line, $aDatas, $oRTemplate, $bReturn);

if ($bReturn){
Yii::app()->clientScript->registerPackage( $oRTemplate->sPackageName );
return $result;
}

return null;
}

Expand Down Expand Up @@ -239,8 +241,9 @@ public function renderTemplateFromString( $line, $aDatas, $oTemplate, $bReturn=f
$oTwigTemplate = $twig->createTemplate($line);
$nvLine = $oTwigTemplate->render($aDatas, false);

Yii::app()->clientScript->registerPackage( $oTemplate->sPackageName );
if (!$bReturn){

if (!$bReturn){
Yii::app()->clientScript->registerPackage( $oTemplate->sPackageName );
ob_start(function($buffer, $phase)
{
App()->getClientScript()->render($buffer);
Expand Down
94 changes: 47 additions & 47 deletions application/core/LSYii_ClientScript.php
Original file line number Diff line number Diff line change
Expand Up @@ -236,59 +236,59 @@ private function analyzeUrl($sUrl)
}


/**
* Renders the specified core javascript library.
*/
public function renderCoreScripts()
{
if($this->coreScripts===null)
return;
$cssFiles=array();
$jsFiles=array();
$jsFilesPositioned=array();
foreach($this->coreScripts as $name=>$package)
{
$baseUrl=$this->getPackageBaseUrl($name);
if(!empty($package['js']))
{
foreach($package['js'] as $js){
if(isset($package['position'])){
/**
* Renders the specified core javascript library.
*/
public function renderCoreScripts()
{
if($this->coreScripts===null)
return;
$cssFiles=array();
$jsFiles=array();
$jsFilesPositioned=array();
foreach($this->coreScripts as $name=>$package)
{
$baseUrl=$this->getPackageBaseUrl($name);
if(!empty($package['js']))
{
foreach($package['js'] as $js){
if(isset($package['position'])){
$jsFilesPositioned[$package['position']][$baseUrl.'/'.$js]=$baseUrl.'/'.$js;
} else {
$jsFiles[$baseUrl.'/'.$js]=$baseUrl.'/'.$js;
}
}
}
if(!empty($package['css']))
{
foreach($package['css'] as $css)
$cssFiles[$baseUrl.'/'.$css]='';
}
}
// merge in place
if($cssFiles!==array())
{
foreach($this->cssFiles as $cssFile=>$media)
$cssFiles[$cssFile]=$media;
$this->cssFiles=$cssFiles;
}
if($jsFiles!==array())
{
if(isset($this->scriptFiles[$this->coreScriptPosition]))
{
foreach($this->scriptFiles[$this->coreScriptPosition] as $url => $value)
$jsFiles[$url]=$value;
}
$this->scriptFiles[$this->coreScriptPosition]=$jsFiles;
}
if($jsFilesPositioned!==array())
{
}
if(!empty($package['css']))
{
foreach($package['css'] as $css)
$cssFiles[$baseUrl.'/'.$css]='';
}
}
// merge in place
if($cssFiles!==array())
{
foreach($this->cssFiles as $cssFile=>$media)
$cssFiles[$cssFile]=$media;
$this->cssFiles=$cssFiles;
}
if($jsFiles!==array())
{
if(isset($this->scriptFiles[$this->coreScriptPosition]))
{
foreach($this->scriptFiles[$this->coreScriptPosition] as $url => $value)
$jsFiles[$url]=$value;
}
$this->scriptFiles[$this->coreScriptPosition]=$jsFiles;
}
if($jsFilesPositioned!==array())
{
foreach($jsFilesPositioned as $position=>$fileArray){
if(isset($this->scriptFiles[$position]))
if(isset($this->scriptFiles[$position]))
foreach($this->scriptFiles[$position] as $url => $value)
$fileArray[$url]=$value;
$this->scriptFiles[$position]=$fileArray;
$fileArray[$url]=$value;
$this->scriptFiles[$position]=$fileArray;
}
}
}
}
}
}
6 changes: 4 additions & 2 deletions application/models/Template.php
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ public static function getTemplateConfiguration($sTemplateName='', $iSurveyId=''
$oTemplateConfigurationModel = new TemplateManifest;
}

$oTemplateConfigurationModel->setTemplateConfiguration($sTemplateName, $iSurveyId);
//$oTemplateConfigurationModel->setTemplateConfiguration($sTemplateName, $iSurveyId);
return $oTemplateConfigurationModel;
}

Expand Down Expand Up @@ -301,8 +301,9 @@ public static function getTemplateList()
&& (file_exists("{$sUserTemplateRootDir}/{$sTemplatePath}/config.xml"))) {

$oTemplate = self::getTemplateConfiguration($sTemplatePath, '', true);

if (is_object($oTemplate)){
$aTemplateList[$oTemplate->sTemplateName] = $sUserTemplateRootDir.DIRECTORY_SEPARATOR.$sTemplatePath;
$aTemplateList[$sTemplatePath] = $sUserTemplateRootDir.DIRECTORY_SEPARATOR.$sTemplatePath;
}
}
}
Expand Down Expand Up @@ -391,6 +392,7 @@ public static function getInstance($sTemplateName='', $iSurveyId='', $bForceXML=

if (empty(self::$instance)) {
self::$instance = self::getTemplateConfiguration($sTemplateName, $iSurveyId, $bForceXML);
self::$instance->setTemplateConfiguration($sTemplateName, $iSurveyId);
}
return self::$instance;
}
Expand Down
3 changes: 2 additions & 1 deletion application/models/TemplateConfiguration.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ public static function model($className=__CLASS__)
public static function importManifest($sTemplateName)
{
$oEditedTemplate = Template::model()->getTemplateConfiguration($sTemplateName, '', false);
$oEditedTemplate->setTemplateConfiguration($sTemplateName);
$oEditTemplateDb = Template::model()->findByPk($oEditedTemplate->oMotherTemplate->sTemplateName);
$oNewTemplate = new Template;
$oNewTemplate->name = $oEditedTemplate->sTemplateName;
Expand Down Expand Up @@ -294,7 +295,7 @@ protected function setMotherTemplates()
if(!empty($this->template->extends_templates_name)){
$sMotherTemplateName = $this->template->extends_templates_name;
$this->oMotherTemplate = Template::getTemplateConfiguration($sMotherTemplateName);

$this->oMotherTemplate->setTemplateConfiguration($sMotherTemplateName);
if ($this->oMotherTemplate->checkTemplate()){
$this->oMotherTemplate->setTemplateConfiguration($sMotherTemplateName); // Object Recursion
}else{
Expand Down

0 comments on commit 45da438

Please sign in to comment.