Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix multiple issues with theme assets (#1048)
Fixed issue #13606 : Unable to reset manually single asset Dev: hash function use for whole path, then global var set here Dev: generatePath is used path by path Fixed issue #13497 : Editor screen can be loaded without css after save Dev: moving global reset to only this template Dev: less time to generate assets Fixed issue #13596: template assets is not resetted when update config Dev: need to do it if user add a file in TemplateConfiguration_files_* Dev: do it only for global theme (?) Dev: move injectglobalsettings to LSYii_Application Dev: maybe create a now function to set all config ? Dev: Fix installmer and move all set configs part to one function Dev: Create a DB for asset version number and use it for Template Dev: fix upgrade , remove dev test lien :/ Fixed issue : reset asset when upload or delete a template file Dev: rename Template functions to be more clear (we don't delete really the asset directory)
- Loading branch information
Showing
9 changed files
with
215 additions
and
69 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
<?php if (!defined('BASEPATH')) {exit('No direct script access allowed');} | ||
/* | ||
* LimeSurvey | ||
* Copyright (C) 2018 The LimeSurvey Project Team / Carsten Schmitz | ||
* All rights reserved. | ||
* License: GNU/GPL License v3 or later, see LICENSE.php | ||
* LimeSurvey is free software. This version may have been modified pursuant | ||
* to the GNU General Public License, and as distributed it includes or | ||
* is derivative of works licensed under the GNU General Public License or | ||
* other free or open source software licenses. | ||
* See COPYRIGHT.php for copyright notices and details. | ||
* | ||
*/ | ||
|
||
/** | ||
* Class AssetVersion | ||
* | ||
* @property integer $id pk | ||
* @property string $path | ||
* @property integer $version number | ||
*/ | ||
class AssetVersion extends LSActiveRecord | ||
{ | ||
/** | ||
* @inheritdoc | ||
*/ | ||
public static function model($class = __CLASS__) | ||
{ | ||
return parent::model($class); | ||
} | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
public function init() | ||
{ | ||
$this->path = ""; | ||
$this->version = 0; | ||
} | ||
/** @inheritdoc */ | ||
public function tableName() | ||
{ | ||
return '{{asset_version}}'; | ||
} | ||
|
||
/** @inheritdoc */ | ||
public function rules() | ||
{ | ||
return array( | ||
array('path', 'required'), | ||
array('path', 'unique'), | ||
array('version', 'required'), | ||
array('version', 'numerical', 'integerOnly'=>true), | ||
); | ||
} | ||
|
||
/** | ||
* get current assetVersion | ||
* @param string $path | ||
* @return integer | ||
*/ | ||
public static function getAssetVersion($path) | ||
{ | ||
if(Yii::app()->getConfig('DBVersion') < 349) { | ||
return 0; | ||
} | ||
$oAssetVersion = self::model()->find('path = :path',array(":path"=>$path)); | ||
if(!$oAssetVersion) { | ||
return 0; | ||
} | ||
return $oAssetVersion->version; | ||
} | ||
|
||
/** | ||
* increment (and create if needed) asset version number | ||
* @param string $path | ||
* @return integer (current version) | ||
*/ | ||
public static function incrementAssetVersion($path) | ||
{ | ||
if(Yii::app()->getConfig('DBVersion') < 349) { | ||
return 0; | ||
} | ||
/* This increment case insensitivity , (extend_vanilla at same time than Extend_Vanilla) no real issue (update 2 assets in one) , but … */ | ||
$oAssetVersion = self::model()->find('path = :path',array(":path"=>$path)); | ||
if(!$oAssetVersion) { | ||
$oAssetVersion = new self; | ||
$oAssetVersion->path = $path; | ||
$oAssetVersion->version = 0; | ||
} | ||
$oAssetVersion->version++; | ||
$oAssetVersion->save(); // Not need to test : can not break rules. DB error can happen ? | ||
return $oAssetVersion->version; | ||
} | ||
|
||
/** | ||
* delete assets version related to path | ||
* @param string $path | ||
* @return integer (0|1) | ||
*/ | ||
public static function deleteAssetVersion($path) | ||
{ | ||
if(Yii::app()->getConfig('DBVersion') < 349) { | ||
return 0; | ||
} | ||
return self::model()->deleteAll('path = :path',array(":path"=>$path)); | ||
} | ||
} |
Oops, something went wrong.