diff --git a/doc/config.rst b/doc/config.rst
index 02ed25c2a7..69ac7ced67 100644
--- a/doc/config.rst
+++ b/doc/config.rst
@@ -3234,6 +3234,58 @@ MySQL settings
FUNC\_SPATIAL, FUNC\_UUID) and for ``first_timestamp``, which is used
for first timestamp column in table.
+Default options for Transformations
+-----------------------------------
+
+.. config:option:: $cfg['DefaultTransformations']
+
+ :type: array
+ :default: An array with below listed key-values
+
+.. config:option:: $cfg['DefaultTransformations']['Substring']
+
+ :type: array
+ :default: array(0, 'all', '…')
+
+.. config:option:: $cfg['DefaultTransformations']['Bool2Text']
+
+ :type: array
+ :default: array('T', 'F')
+
+.. config:option:: $cfg['DefaultTransformations']['External']
+
+ :type: array
+ :default: array(0, '-f /dev/null -i -wrap -q', 1, 1)
+
+.. config:option:: $cfg['DefaultTransformations']['PreApPend']
+
+ :type: array
+ :default: array('', '')
+
+.. config:option:: $cfg['DefaultTransformations']['Hex']
+
+ :type: array
+ :default: array('2')
+
+.. config:option:: $cfg['DefaultTransformations']['DateFormat']
+
+ :type: array
+ :default: array(0, '', 'local')
+
+.. config:option:: $cfg['DefaultTransformations']['Inline']
+
+ :type: array
+ :default: array('100', 100)
+
+.. config:option:: $cfg['DefaultTransformations']['TextImageLink']
+
+ :type: array
+ :default: array('', 100, 50)
+
+.. config:option:: $cfg['DefaultTransformations']['TextLink']
+
+ :type: array
+ :default: array('', '', '')
Developer
---------
diff --git a/doc/transformations.rst b/doc/transformations.rst
index f04f80c455..02f43c5454 100644
--- a/doc/transformations.rst
+++ b/doc/transformations.rst
@@ -79,7 +79,8 @@ They are called 'MIME-type', 'Browser transformation' and
which you can specify 2 options and you want to append a character
set, enter "'first parameter','second parameter','charset=us-ascii'".
You can, however use the defaults for the parameters: "'','','charset
- =us-ascii'".
+ =us-ascii'". The default options can be configured using
+ :config:option:`$cfg['DefaultTransformations']`
.. _transformationsfiles:
diff --git a/libraries/classes/Plugins/Transformations/Abs/Bool2TextTransformationsPlugin.php b/libraries/classes/Plugins/Transformations/Abs/Bool2TextTransformationsPlugin.php
index 76f3589ebf..584ef55598 100644
--- a/libraries/classes/Plugins/Transformations/Abs/Bool2TextTransformationsPlugin.php
+++ b/libraries/classes/Plugins/Transformations/Abs/Bool2TextTransformationsPlugin.php
@@ -42,7 +42,8 @@ abstract class Bool2TextTransformationsPlugin extends TransformationsPlugin
*/
public function applyTransformation($buffer, $options = array(), $meta = '')
{
- $options = $this->getOptions($options, array('T', 'F'));
+ $cfg = $GLOBALS['cfg'];
+ $options = $this->getOptions($options, $cfg['DefaultTransformations']['Bool2Text']);
if ($buffer == '0') {
return $options[1]; // return false label
diff --git a/libraries/classes/Plugins/Transformations/Abs/DateFormatTransformationsPlugin.php b/libraries/classes/Plugins/Transformations/Abs/DateFormatTransformationsPlugin.php
index 0a284bdef3..4372f871d8 100644
--- a/libraries/classes/Plugins/Transformations/Abs/DateFormatTransformationsPlugin.php
+++ b/libraries/classes/Plugins/Transformations/Abs/DateFormatTransformationsPlugin.php
@@ -51,17 +51,11 @@ abstract class DateFormatTransformationsPlugin extends TransformationsPlugin
public function applyTransformation($buffer, $options = array(), $meta = '')
{
// possibly use a global transform and feed it with special options
+ $cfg = $GLOBALS['cfg'];
+ $options = $this->getOptions($options, $cfg['DefaultTransformations']['DateFormat']);
// further operations on $buffer using the $options[] array.
- if (empty($options[0])) {
- $options[0] = 0;
- }
-
- if (empty($options[2])) {
- $options[2] = 'local';
- } else {
- $options[2] = mb_strtolower($options[2]);
- }
+ $options[2] = mb_strtolower($options[2]);
if (empty($options[1])) {
if ($options[2] == 'local') {
diff --git a/libraries/classes/Plugins/Transformations/Abs/ExternalTransformationsPlugin.php b/libraries/classes/Plugins/Transformations/Abs/ExternalTransformationsPlugin.php
index f0c06756a1..92f4da1d59 100644
--- a/libraries/classes/Plugins/Transformations/Abs/ExternalTransformationsPlugin.php
+++ b/libraries/classes/Plugins/Transformations/Abs/ExternalTransformationsPlugin.php
@@ -96,9 +96,10 @@ abstract class ExternalTransformationsPlugin extends TransformationsPlugin
return $buffer;
}
+ $cfg = $GLOBALS['cfg'];
$options = $this->getOptions(
$options,
- array(0, '-f /dev/null -i -wrap -q', 1, 1)
+ $cfg['DefaultTransformations']['External']
);
if (isset($allowed_programs[$options[0]])) {
diff --git a/libraries/classes/Plugins/Transformations/Abs/HexTransformationsPlugin.php b/libraries/classes/Plugins/Transformations/Abs/HexTransformationsPlugin.php
index 8216d99554..81bc36b77e 100644
--- a/libraries/classes/Plugins/Transformations/Abs/HexTransformationsPlugin.php
+++ b/libraries/classes/Plugins/Transformations/Abs/HexTransformationsPlugin.php
@@ -43,7 +43,8 @@ abstract class HexTransformationsPlugin extends TransformationsPlugin
public function applyTransformation($buffer, $options = array(), $meta = '')
{
// possibly use a global transform and feed it with special options
- $options = $this->getOptions($options, array('2'));
+ $cfg = $GLOBALS['cfg'];
+ $options = $this->getOptions($options, $cfg['DefaultTransformations']['Hex']);
$options[0] = intval($options[0]);
if ($options[0] < 1) {
diff --git a/libraries/classes/Plugins/Transformations/Abs/InlineTransformationsPlugin.php b/libraries/classes/Plugins/Transformations/Abs/InlineTransformationsPlugin.php
index 8d40ff651a..d00c9819bd 100644
--- a/libraries/classes/Plugins/Transformations/Abs/InlineTransformationsPlugin.php
+++ b/libraries/classes/Plugins/Transformations/Abs/InlineTransformationsPlugin.php
@@ -45,13 +45,16 @@ abstract class InlineTransformationsPlugin extends TransformationsPlugin
*/
public function applyTransformation($buffer, $options = array(), $meta = '')
{
+ $cfg = $GLOBALS['cfg'];
+ $options = $this->getOptions($options, $cfg['DefaultTransformations']['Inline']);
+
if (PMA_IS_GD2) {
return '
';
} else {
return ', $meta = '')
{
- $options = $this->getOptions($options, array('', ''));
+ $cfg = $GLOBALS['cfg'];
+ $options = $this->getOptions($options, $cfg['DefaultTransformations']['PreApPend']);
//just prepend and/or append the options to the original text
return htmlspecialchars($options[0]) . htmlspecialchars($buffer)
diff --git a/libraries/classes/Plugins/Transformations/Abs/SubstringTransformationsPlugin.php b/libraries/classes/Plugins/Transformations/Abs/SubstringTransformationsPlugin.php
index 90d06b6a3a..69b1c6647d 100644
--- a/libraries/classes/Plugins/Transformations/Abs/SubstringTransformationsPlugin.php
+++ b/libraries/classes/Plugins/Transformations/Abs/SubstringTransformationsPlugin.php
@@ -47,7 +47,8 @@ abstract class SubstringTransformationsPlugin extends TransformationsPlugin
// possibly use a global transform and feed it with special options
// further operations on $buffer using the $options[] array.
- $options = $this->getOptions($options, array(0, 'all', '…'));
+ $cfg = $GLOBALS['cfg'];
+ $options = $this->getOptions($options, $cfg['DefaultTransformations']['Substring']);
if ($options[1] != 'all') {
$newtext = mb_substr(
diff --git a/libraries/classes/Plugins/Transformations/Abs/TextImageLinkTransformationsPlugin.php b/libraries/classes/Plugins/Transformations/Abs/TextImageLinkTransformationsPlugin.php
index 908e5a417d..4a09a9a007 100644
--- a/libraries/classes/Plugins/Transformations/Abs/TextImageLinkTransformationsPlugin.php
+++ b/libraries/classes/Plugins/Transformations/Abs/TextImageLinkTransformationsPlugin.php
@@ -47,15 +47,17 @@ abstract class TextImageLinkTransformationsPlugin extends TransformationsPlugin
*/
public function applyTransformation($buffer, $options = array(), $meta = '')
{
- $url = (isset($options[0]) ? $options[0] : '') . $buffer;
+ $cfg = $GLOBALS['cfg'];
+ $options = $this->getOptions($options, $cfg['DefaultTransformations']['TextImageLink']);
+ $url = $options[0] . $buffer;
/* Do not allow javascript links */
if (! Sanitize::checkLink($url, true, true)) {
return htmlspecialchars($url);
}
return '<a href=)
'
+ . '" border="0" width="' . intval($options[1])
+ . '" height="' . intval($options[2]) . '" />'
. htmlspecialchars($buffer) . '';
}
diff --git a/libraries/classes/Plugins/Transformations/Abs/TextLinkTransformationsPlugin.php b/libraries/classes/Plugins/Transformations/Abs/TextLinkTransformationsPlugin.php
index caeef5d7fa..762c58a861 100644
--- a/libraries/classes/Plugins/Transformations/Abs/TextLinkTransformationsPlugin.php
+++ b/libraries/classes/Plugins/Transformations/Abs/TextLinkTransformationsPlugin.php
@@ -47,6 +47,8 @@ abstract class TextLinkTransformationsPlugin extends TransformationsPlugin
*/
public function applyTransformation($buffer, $options = array(), $meta = '')
{
+ $cfg = $GLOBALS['cfg'];
+ $options = $this->getOptions($options, $cfg['DefaultTransformations']['TextLink']);
$url = (isset($options[0]) ? $options[0] : '') . ((isset($options[2]) && $options[2]) ? '' : $buffer);
/* Do not allow javascript links */
if (! Sanitize::checkLink($url, true, true)) {
diff --git a/libraries/config.default.php b/libraries/config.default.php
index f8c6dae9cb..3ba4db76a4 100644
--- a/libraries/config.default.php
+++ b/libraries/config.default.php
@@ -3105,3 +3105,79 @@ $cfg['MysqlMinVersion'] = array(
* @global array $cfg['DisableShortcutKeys']
*/
$cfg['DisableShortcutKeys'] = false;
+
+
+/*******************************************************************************
+ * Default options for transformations
+ */
+
+/**
+ * Initialize default transformations array
+ *
+ * @global array $cfg['DefaultTransformations']
+ */
+$cfg['DefaultTransformations'] = array();
+
+/**
+ * Default transformations for Substring
+ *
+ * @global array $cfg['DefaultTransformations']['Substring']
+ */
+$cfg['DefaultTransformations']['Substring'] = array(0, 'all', '…');
+
+/**
+ * Default transformations for Bool2Text
+ *
+ * @global array $cfg['DefaultTransformations']['Bool2Text']
+ */
+$cfg['DefaultTransformations']['Bool2Text'] = array('T', 'F');
+
+/**
+ * Default transformations for External
+ *
+ * @global array $cfg['DefaultTransformations']['External']
+ */
+$cfg['DefaultTransformations']['External'] = array(0, '-f /dev/null -i -wrap -q', 1, 1);
+
+/**
+ * Default transformations for PreApPend
+ *
+ * @global array $cfg['DefaultTransformations']['PreApPend']
+ */
+$cfg['DefaultTransformations']['PreApPend'] = array('', '');
+
+/**
+ * Default transformations for Hex
+ *
+ * @global array $cfg['DefaultTransformations']['Hex']
+ */
+$cfg['DefaultTransformations']['Hex'] = array('2');
+
+/**
+ * Default transformations for DateFormat
+ *
+ * @global array $cfg['DefaultTransformations']['DateFormat']
+ */
+$cfg['DefaultTransformations']['DateFormat'] = array(0, '', 'local');
+
+/**
+ * Default transformations for Inline
+ *
+ * @global array $cfg['DefaultTransformations']['Inline']
+ */
+$cfg['DefaultTransformations']['Inline'] = array('100', 100);
+$cfg['DefaultTransformations']['Inline']['wrapper_link'] = null;
+
+/**
+ * Default transformations for TextImageLink
+ *
+ * @global array $cfg['DefaultTransformations']['TextImageLink']
+ */
+$cfg['DefaultTransformations']['TextImageLink'] = array(null, 100, 50);
+
+/**
+ * Default transformations for TextLink
+ *
+ * @global array $cfg['DefaultTransformations']['TextLink']
+ */
+$cfg['DefaultTransformations']['TextLink'] = array(null, null, null);
diff --git a/libraries/config/messages.inc.php b/libraries/config/messages.inc.php
index e39ed2ac1b..ab3cfbd1bc 100644
--- a/libraries/config/messages.inc.php
+++ b/libraries/config/messages.inc.php
@@ -118,6 +118,25 @@ $strConfigShowColumnComments_name = __('Show column comments');
$strConfigShowColumnComments_desc
= __('Whether column comments should be shown in table structure view');
$strConfigHideStructureActions_name = __('Hide table structure actions');
+$strConfigDefaultTransformations_Hex_name = __('Default transformations for Hex');
+$strConfigDefaultTransformations_Hex_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+$strConfigDefaultTransformations_Substring_name = __('Default transformations for Substring');
+$strConfigDefaultTransformations_Substring_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+$strConfigDefaultTransformations_Bool2Text_name = __('Default transformations for Bool2Text');
+$strConfigDefaultTransformations_Bool2Text_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+$strConfigDefaultTransformations_External_name = __('Default transformations for External');
+$strConfigDefaultTransformations_External_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+$strConfigDefaultTransformations_PreApPend_name = __('Default transformations for PreApPend');
+$strConfigDefaultTransformations_PreApPend_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+$strConfigDefaultTransformations_DateFormat_name = __('Default transformations for DateFormat');
+$strConfigDefaultTransformations_DateFormat_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+$strConfigDefaultTransformations_Inline_name = __('Default transformations for Inline');
+$strConfigDefaultTransformations_Inline_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+$strConfigDefaultTransformations_TextImageLink_name = __('Default transformations for TextImageLink');
+$strConfigDefaultTransformations_TextImageLink_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+$strConfigDefaultTransformations_TextLink_name = __('Default transformations for TextLink');
+$strConfigDefaultTransformations_TextLink_desc = __('Values for options list for default transformations. These will be overwritten if tranformation is filled in at table structure page.');
+
$strConfigDisplayServersList_desc
= __('Show server listing as a list instead of a drop down.');
$strConfigDisplayServersList_name = __('Display servers as a list');
diff --git a/libraries/config/user_preferences.forms.php b/libraries/config/user_preferences.forms.php
index 650a2ad718..233f5af8f3 100644
--- a/libraries/config/user_preferences.forms.php
+++ b/libraries/config/user_preferences.forms.php
@@ -120,7 +120,19 @@ $forms['Main_panel']['DbStructure'] = array(
'ShowDbStructureLastCheck');
$forms['Main_panel']['TableStructure'] = array(
'HideStructureActions',
- 'ShowColumnComments');
+ 'ShowColumnComments',
+ ':group:' . __('Default transformations'),
+ 'DefaultTransformations/Hex',
+ 'DefaultTransformations/Substring',
+ 'DefaultTransformations/Bool2Text',
+ 'DefaultTransformations/External',
+ 'DefaultTransformations/PreApPend',
+ 'DefaultTransformations/DateFormat',
+ 'DefaultTransformations/Inline',
+ 'DefaultTransformations/TextImageLink',
+ 'DefaultTransformations/TextLink',
+ ':group:end'
+);
$forms['Main_panel']['Browse'] = array(
'TableNavigationLinksMode',
'ActionLinksMode',