mirror of
https://github.com/YunoHost-Apps/limesurvey_ynh.git
synced 2024-09-03 19:36:32 +02:00
[dev][fix] Add the patchs :whistle:
This commit is contained in:
parent
b02660cf9d
commit
d574e836c9
2 changed files with 194 additions and 0 deletions
107
patches/app-0001-14c81c8.patch
Normal file
107
patches/app-0001-14c81c8.patch
Normal file
|
@ -0,0 +1,107 @@
|
|||
From 14c81c86b7692794e7b251de3628f9afe353e020 Mon Sep 17 00:00:00 2001
|
||||
From: Denis Chenu <denis@sondages.pro>
|
||||
Date: Wed, 15 Feb 2017 01:15:35 +0100
|
||||
Subject: [PATCH] [feature][yunohost] Allow update via PHP cli - Included in
|
||||
LimeSurvey 3.0
|
||||
|
||||
---
|
||||
application/commands/UpdateCommand.php | 90 ++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 90 insertions(+)
|
||||
create mode 100644 application/commands/UpdateCommand.php
|
||||
|
||||
diff --git a/application/commands/UpdateCommand.php b/application/commands/UpdateCommand.php
|
||||
new file mode 100644
|
||||
index 0000000..faa216f
|
||||
--- /dev/null
|
||||
+++ b/application/commands/UpdateCommand.php
|
||||
@@ -0,0 +1,90 @@
|
||||
+<?php
|
||||
+ /*
|
||||
+ * @author Denis Chenu <denis@sondages.pro>
|
||||
+ * @license GPL v3
|
||||
+ * @version 0.1.1
|
||||
+ * @deprecated in LimeSurvey 3.0/develop UpdateDbCommand do it
|
||||
+ *
|
||||
+ * Copyright (C) 2017 Denis Chenu
|
||||
+ * This program is free software: you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU Affero General Public License as published by
|
||||
+ * the Free Software Foundation, either version 3 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ */
|
||||
+class UpdateCommand extends CConsoleCommand
|
||||
+{
|
||||
+ public function run(){
|
||||
+ $this->_setConfigs();
|
||||
+ $newDbVersion = (float)Yii::app()->getConfig('dbversionnumber');
|
||||
+ $currentDbVersion = (float)Yii::app()->getConfig('DBVersion');
|
||||
+ if($newDbVersion > $currentDbVersion){
|
||||
+ echo "Update ".Yii::app()->db->connectionString.", prefix :".Yii::app()->db->tablePrefix." from {$currentDbVersion} to {$newDbVersion}\n";
|
||||
+ Yii::import('application.helpers.common_helper', true);
|
||||
+ Yii::import('application.helpers.update.updatedb_helper', true);
|
||||
+ $result=db_upgrade_all($currentDbVersion);/* @todo : fix bad echoing here */
|
||||
+ if ($result) {
|
||||
+ echo "Database has been successfully upgraded to version $newDbVersion \n";
|
||||
+ } else {
|
||||
+ echo "Please fix this error in your database and try again\n";
|
||||
+ return 1;
|
||||
+ }
|
||||
+ } else {
|
||||
+ echo "no need update ".$newDbVersion ." ". $currentDbVersion ."\n";
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Fonction to set all needed (and unneeded) config
|
||||
+ * @deprecated in LimeSurvey 3.0/develop version config is set by LimeSurvey Core
|
||||
+ * @return void
|
||||
+ */
|
||||
+ private function _setConfigs(){
|
||||
+ /* default config */
|
||||
+ $aDefaultConfigs = require(Yii::app()->basePath. DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config-defaults.php');
|
||||
+ foreach($aDefaultConfigs as $sConfig=>$defaultConfig){
|
||||
+ Yii::app()->setConfig($sConfig,$defaultConfig);
|
||||
+ }
|
||||
+ /* Fix for badly set rootdir */
|
||||
+ $sRootDir=realpath(Yii::app()->basePath. DIRECTORY_SEPARATOR . "..") ;
|
||||
+ Yii::app()->setConfig('rootdir',$sRootDir);
|
||||
+ Yii::app()->setConfig('publicdir',$sRootDir);
|
||||
+ Yii::app()->setConfig('homedir',$sRootDir);
|
||||
+ Yii::app()->setConfig('tempdir',$sRootDir.DIRECTORY_SEPARATOR."tmp");
|
||||
+ Yii::app()->setConfig('imagedir',$sRootDir.DIRECTORY_SEPARATOR."images");
|
||||
+ Yii::app()->setConfig('uploaddir',$sRootDir.DIRECTORY_SEPARATOR."upload");
|
||||
+ Yii::app()->setConfig('standardtemplaterootdir',$sRootDir.DIRECTORY_SEPARATOR."templates");
|
||||
+ Yii::app()->setConfig('usertemplaterootdir',$sRootDir.DIRECTORY_SEPARATOR."upload".DIRECTORY_SEPARATOR."templates");
|
||||
+ Yii::app()->setConfig('styledir',$sRootDir.DIRECTORY_SEPARATOR."styledir");
|
||||
+ /* version */
|
||||
+ $aVersionConfigs = require(Yii::app()->basePath. DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'version.php');
|
||||
+ foreach($aVersionConfigs as $sConfig=>$versionConfig){
|
||||
+ Yii::app()->setConfig($sConfig,$versionConfig);
|
||||
+ }
|
||||
+
|
||||
+ if(file_exists(Yii::app()->basePath. DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php'))
|
||||
+ {
|
||||
+ $config = require(Yii::app()->basePath. DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'config.php');
|
||||
+ if(is_array($config['config']) && !empty($config['config']))
|
||||
+ {
|
||||
+ foreach($config['config'] as $key=>$value) {
|
||||
+ Yii::app()->setConfig($key,$value);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ $oSettings=SettingGlobal::model()->findAll();
|
||||
+ if (count($oSettings) > 0)
|
||||
+ {
|
||||
+ foreach ($oSettings as $oSetting)
|
||||
+ {
|
||||
+ Yii::app()->setConfig($oSetting->getAttribute('stg_name'), $oSetting->getAttribute('stg_value'));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+}
|
87
patches/app-0002-301de6e.patch
Normal file
87
patches/app-0002-301de6e.patch
Normal file
|
@ -0,0 +1,87 @@
|
|||
From 301de6eb25dda2b9342a006baadaa068c42b115e Mon Sep 17 00:00:00 2001
|
||||
From: Denis Chenu <denis@sondages.pro>
|
||||
Date: Wed, 15 Feb 2017 01:59:12 +0100
|
||||
Subject: [PATCH] [feature][yunohost] Activate a plugin by command - Needed for
|
||||
update
|
||||
|
||||
---
|
||||
application/commands/ActivatePluginCommand.php | 70 ++++++++++++++++++++++++++
|
||||
1 file changed, 70 insertions(+)
|
||||
create mode 100644 application/commands/ActivatePluginCommand.php
|
||||
|
||||
diff --git a/application/commands/ActivatePluginCommand.php b/application/commands/ActivatePluginCommand.php
|
||||
new file mode 100644
|
||||
index 0000000..512e9a4
|
||||
--- /dev/null
|
||||
+++ b/application/commands/ActivatePluginCommand.php
|
||||
@@ -0,0 +1,70 @@
|
||||
+<?php
|
||||
+/**
|
||||
+ * Description
|
||||
+ *
|
||||
+ * @author Denis Chenu <denis@sondages.pro>
|
||||
+ * @copyright 2015 Denis Chenu <http://www.sondages.pro>
|
||||
+ * @license GPL v3
|
||||
+ * @version 0.0.1
|
||||
+ *
|
||||
+ * This program is free software: you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation, either version 3 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ */
|
||||
+class ActivatePluginCommand extends CConsoleCommand
|
||||
+{
|
||||
+
|
||||
+ /**
|
||||
+ * @var string $defaultAction
|
||||
+ * @see http://www.yiiframework.com/doc/api/1.1/CConsoleCommand#defaultAction-detail
|
||||
+ */
|
||||
+ public $defaultAction='activate';
|
||||
+ /**
|
||||
+ * Activate a plugin by name
|
||||
+ * @param string $name The plugin Class name
|
||||
+ * @return void
|
||||
+ */
|
||||
+ public function actionActivate($classname)
|
||||
+ {
|
||||
+ $oPluginManager = \Yii::app()->pluginManager;
|
||||
+ $aDiscoveredPlugins = $oPluginManager->scanPlugins();
|
||||
+ if(!array_key_exists($classname,$aDiscoveredPlugins)) {
|
||||
+ echo "Plugin {$classname} are not in your plugin directory\n";
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ $oPlugin=Plugin::model()->find("name=:name",array(":name"=>$classname));
|
||||
+ /* If plugin is not installed : just install it */
|
||||
+ if(!$oPlugin) {
|
||||
+ $oPlugin = new Plugin();
|
||||
+ $oPlugin->name = $classname;
|
||||
+ $oPlugin->active = 0;
|
||||
+ $oPlugin->save();
|
||||
+ }
|
||||
+ /* Activate the plugin with the event beforeActivate */
|
||||
+ if ($oPlugin->active == 0)
|
||||
+ {
|
||||
+ /* Load the plugin and dispatch beforeActivate event */
|
||||
+ App()->getPluginManager()->loadPlugin($oPlugin->name, $oPlugin->id);
|
||||
+ $result = App()->getPluginManager()->dispatchEvent(new PluginEvent('beforeActivate',$this), $oPlugin->name);
|
||||
+ if ($result->get('success', true)) {
|
||||
+ $oPlugin->active = 1;
|
||||
+ if(!$oPlugin->save()){
|
||||
+ return 1; /* This must not happen */
|
||||
+ }
|
||||
+ } else {
|
||||
+ echo $result->get('message', 'Failed to activate the plugin.')."\n";
|
||||
+ return 1;
|
||||
+ }
|
||||
+ } else {
|
||||
+ // No error if try to activate an already activated plugin
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+}
|
Loading…
Add table
Reference in a new issue