From 6cc256693c25de60d6877cdccf47243c545c5531 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 29 Apr 2015 11:41:41 -0600 Subject: [PATCH] CRM-16354 - Upgrade code for wysiwyg changes --- CRM/Admin/Form/Preferences/Display.php | 2 +- CRM/Upgrade/Incremental/php/FourSeven.php | 135 ++++++++++++++++++ .../Incremental/sql/4.7.alpha1.mysql.tpl | 8 +- 3 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 CRM/Upgrade/Incremental/php/FourSeven.php diff --git a/CRM/Admin/Form/Preferences/Display.php b/CRM/Admin/Form/Preferences/Display.php index f005472063..332cc28b17 100644 --- a/CRM/Admin/Form/Preferences/Display.php +++ b/CRM/Admin/Form/Preferences/Display.php @@ -140,7 +140,7 @@ class CRM_Admin_Form_Preferences_Display extends CRM_Admin_Form_Preferences { * @return void */ public function buildQuickForm() { - $wysiwyg_options = array('' => ts('Textarea')) + CRM_Core_OptionGroup::values('wysiwyg_editor'); + $wysiwyg_options = CRM_Core_OptionGroup::values('wysiwyg_editor'); //changes for freezing the invoices/credit notes checkbox if invoicing is uncheck $invoiceSettings = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME, 'contribution_invoice_settings'); diff --git a/CRM/Upgrade/Incremental/php/FourSeven.php b/CRM/Upgrade/Incremental/php/FourSeven.php new file mode 100644 index 0000000000..599be257c6 --- /dev/null +++ b/CRM/Upgrade/Incremental/php/FourSeven.php @@ -0,0 +1,135 @@ +processSQL($rev); + + return TRUE; + } + + /** + * Syntactic sugar for adding a task which (a) is in this class and (b) has + * a high priority. + * + * After passing the $funcName, you can also pass parameters that will go to + * the function. Note that all params must be serializable. + */ + protected function addTask($title, $funcName) { + $queue = CRM_Queue_Service::singleton()->load(array( + 'type' => 'Sql', + 'name' => CRM_Upgrade_Form::QUEUE_NAME, + )); + + $args = func_get_args(); + $title = array_shift($args); + $funcName = array_shift($args); + $task = new CRM_Queue_Task( + array(get_class($this), $funcName), + $args, + $title + ); + $queue->createItem($task, array('weight' => -1)); + } + + /** + * Upgrade function. + * + * @param string $rev + */ + public function upgrade_4_7_alpha1($rev) { + // Task to process sql. + $this->addTask(ts('Update wysiwyg editor settings.'), 'updateWysiwyg'); + } + + /** + * CRM-16354 + * + * @param \CRM_Queue_TaskContext $ctx + * + * @return bool + */ + public static function updateWysiwyg(CRM_Queue_TaskContext $ctx) { + $editorID = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'editor_id'); + // Previously any value indicated one of 4 wysiwyg editors shipped in core, and no value indicated 'Textfield' + // Now Textfield is 1, CKEditor is 2, and the rest have been dropped from core. + $editorID = $editorID ? 2 : 1; + CRM_Core_BAO_Setting::setItem($editorID, CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'editor_id'); + + return TRUE; + } + +} diff --git a/CRM/Upgrade/Incremental/sql/4.7.alpha1.mysql.tpl b/CRM/Upgrade/Incremental/sql/4.7.alpha1.mysql.tpl index 4dd10fd59c..28fb04ba90 100644 --- a/CRM/Upgrade/Incremental/sql/4.7.alpha1.mysql.tpl +++ b/CRM/Upgrade/Incremental/sql/4.7.alpha1.mysql.tpl @@ -2,5 +2,11 @@ -- CRM-16354 SELECT @option_group_id_wysiwyg := max(id) from civicrm_option_group where name = 'wysiwyg_editor'; -DELETE FROM civicrm_option_value WHERE name IN ('TinyMCE', 'Joomla Default Editor', 'Drupal Default Editor') + +UPDATE civicrm_option_group SET name = 'Textarea', {localize field='label'}label = 'Textarea'{/localize} + WHERE value = 1 AND option_group_id = @option_group_id_wysiwyg; + +DELETE FROM civicrm_option_value WHERE name IN ('Joomla Default Editor', 'Drupal Default Editor') AND option_group_id = @option_group_id_wysiwyg; + +UPDATE civicrm_option_group SET is_active = 1, is_reserved = 1 WHERE option_group_id = @option_group_id_wysiwyg; \ No newline at end of file -- 2.25.1