diff --git a/ChangeLog b/ChangeLog
index e0faaad9b..af2bdddbe 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -29,6 +29,10 @@ $Source$
directions, so with this mode you can see about 6 columns at once on a single screen.
* tbl_properties.inc.php3: Fixed bug when certain fields are not
enabled, they threw an undefined offset. [2nd try, now for real :)]
+ * Documentation.html: Updated for my new features. Should include
+ everyting, I hope. But seriously needs a proofread.
+ * config.inc.php3: Inserted new directives for empty
+ $cfg['Servers'][$i].
2003-02-26 Garvin Hicking Upgrading from an older version:
+Introduction -
+Usage -
+File structure -
+ To enable transformations, you have to setup the column_info table and the proper
+directives. Please see the Configuration section on how to do so. You can apply different transformations to the contents of each field. The
+transformation will take the content of each field and transform it with
+certain rules defined in the selected transformation. Say you have a field 'filename' which contains a filename. Normale you would see
+in phpMyAdmin only this filename. Using transformations you can transform that filename
+into a html link, so you can click inside of the phpMyAdmin structure on the field's
+link and will see the file displayed in a new browser window. Using transformation
+options you can also specify strings to append/prepend to a string or the format you
+want the output stored in. For a general overview of all available transformations and their options, you can
+consult your <www.your-host.com>/<your-install-dir>/libraries/transformations/overview.php3
+installation. Go to your tbl_properties.inc.php3 page (i.e. reached through clicking on the
+'properties' link for a table). There you will see three new fields at the end of the
+line. They are called 'MIME-type', 'Browser transformation' and 'Transformation options'. All mimetypes and their transformations are defined through single files in
+the directory 'libraries/transformations/'. They are stored in files to ease up customization and easy adding of new
+transformations. Because the user cannot enter own mimetypes, it is kept sure that transformations
+always work. It makes no sense to apply a transformation to a mimetype, the
+transform-function doesn't know to handle. One can, however, use empty mime-types and global transformations which should work
+for many mimetypes. You can also use transforms on a different mimetype they where built
+for, but pay attention to option usage as well as what the transformation does to your
+field. There is a basic file called 'global.inc.php3'. This function can be included by
+any other transform function and provides some basic functions. There are 5 possible file names: So generally use '_' to split up mimetype and subtype, and '__' to provide a
+transform function. All filenames containing no '__' in themselves are not shown as valid transform
+functions in the dropdown. Please see the libraries/transformations/TEMPLATE file for adding your own transform
+function. See the libraries/transformations/TEMPLATE_MIMETYPE for adding a mimetype
+without a transform function. Also note the introduction of a function description in
+the language files. For each function a $strTransformation_[filename without .inc.php3]
+has to exist. You can use the template generator to generate new functions and entries in the
+language file. To create a new transform function please see libraries/transformations/template_generator.sh.
+To create a new, empty mimetype please see libraries/transformations/template_generator_mimetype.sh.
+ Transformations -
FAQ -
Developers -
Credits -
@@ -108,6 +110,8 @@
+
+ Starting with release 2.5.0, comments are consequently used on the table property
+ pages and table browse view, showing up as tooltips above the column name (properties page)
+ or embedded withing the header of table in browse view. They can also be shown
+ in a table dump. Please see the relevant configuration directives later on.
+
+ Also new in release 2.5.0 is a mime-transformation system which is also based on
+ the following table structure. See Transformations
+ for further information. To use the mime-transformation system, your column_info
+ table has to have the three new fields 'mimetype', 'transformation', 'transformation_options'.
+
To allow the usage of this functionality the superuser has to:
column_name varchar(64) NOT NULL default '',
`comment` varchar(255) NOT NULL default '',
+ mimetype varchar(255) NOT NULL default '',
+ transformation varchar(255) NOT NULL default '',
+ transformation_options varchar(255) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY db_name (db_name, table_name, column_name)
) TYPE=MyISAM COMMENT='Comments for Columns';
@@ -784,6 +810,67 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
+
+ $cfg['Servers'][$i]['history'] string
+
+
+ Using $cfg['QueryHistoryMax'] you can specify an amount of history items
+ you want to have on hold. On every login, this list gets cut to the maximum amount.
+
+
+ The query history is only available if you use the JavaScript-based query window,
+ see $cfg['QueryFrame'].
+
+
+ To allow the usage of this functionality the superuser has to:
+
+
+
+ CREATE TABLE `PMA_history` (
+ `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
+ `username` VARCHAR( 64 ) NOT NULL ,
+ `db` VARCHAR( 64 ) NOT NULL ,
+ `table` VARCHAR( 64 ) NOT NULL ,
+ `timevalue` TIMESTAMP NOT NULL ,
+ `sqlquery` TEXT NOT NULL ,
+ PRIMARY KEY ( `id` ) ,
+ INDEX ( `username` , `db` , `table` , `timevalue` )
+ ) TYPE=MyISAM COMMENT='SQL history';
+
+
+
+ $cfg['Servers'][$i]['verbose_check'] string
+
+
+ You can disable this checking behavior by setting the variable to false, which
+ should offer a performance increase.
+
+ Recommended to set to FALSE, when you are sure, your table structure is up to date.
+
+
+
+
+
+
+
+ $cfg['HeaderFlipType'] string
+
+ The HeaderFlipType can be set to 'css' or 'faked'. When using 'css' the rotation
+ of the header for horizontalflipped is done via CSS. If set to 'faked' php
+ does the transformation for you, but of course this does not look as good as CSS.
+
+
+
+ $cfg['ShowPropertyComments'] boolean
+
+
+ $cfg['QueryFrameJS'] boolean
+ $cfg['QueryFrameDebug'] boolean
+ $cfg['QueryWindowWidth'] integer
+ $cfg['QueryWindowHeight'] integer
+ $cfg['QueryHistoryDB'] boolean
+ $cfg['QueryWindowDefTab'] string
+ $cfg['QueryHistoryMax'] integer
+
+ When $cfg['QueryFrameJS'] is set to true, clicking on that link opens a new
+ custom sized browser window ($cfg['QueryWindowWidth'], $cfg['QueryWindowWidth'] -
+ both integers for the size in pixels). If set to false, clicking on the link
+ only opens the sql input in the mainframe.
+ The usage of the JavaScript query window is recommended if you have a JavaScript
+ enabled browser. Basic functions are used to exchange quite a few variables, so
+ most 4th generation browsers should be capable to use that feature. It currently
+ is only tested with IE6 and Mozilla 1.x.
+ If $cfg['QueryHistoryDB'] is set to TRUE, all your Queries are logged to a table,
+ which has to be created by you (see $cfg['Servers'][$i]['history']).
+ If set to FALSE, all your queries will be appended to the form, but only as long
+ as your window is opened they remain saved.
+ When using the JavaScript based query window, it will always get updated when you
+ click on a new table/db to browse and will focus if you click on "Edit SQL" after
+ using a query.
+ If $cfg['QueryHistoryDB'] is set to TRUE you can specify the amount of saved
+ history items using $cfg['QueryHistoryMax'].
+ The query window also has a custom tabbed look to group the features. Using the
+ variable $cfg['QueryWindowDefTab'] you can specify the default tab to be used
+ when opening the query window. It can be set to either 'sql', 'files', 'history'
+ or 'full'.
+ The variable $cfg['QueryFrameDebug'] can be used by developers for easier future
+ feature integration.
+
+
+Transformations
+
+
+[1. Introduction]
+
+
+
+
+
+
+
+
+
+
+
+[2. Usage]
+
+
+
+
+
+
+
+
+
+
+There are global transformations and mimetype-bound transformations. Global transformations
+can be used for any mimetype. They will take the mimetype, if neccessary, into regard.
+Mimetype-bound transformations usually only operate on a certain mimetype. There are
+transformations which operate on the main mimetype (like 'image'), which will most likely
+take the subtype into regard, and those who only operate on a
+specific subtype (like 'image/jpeg').
+
+You can use transformations on mimetypes for which the function was not defined for. There
+is no security check for you selected the right transformation, so take care of what the
+output will be like.
+
+
+
+Much like the ENUM/SET-Fields, you have to split up several options using the format
+'a','b','c',...(NOTE THE MISSING BLANKS). This is because internally the options will be
+parsed as an array, leaving the first value the first element in the array, and so
+forth.
+
+If you want to specify a MIME charset you can define it in the transformation_options.
+You have to put that outside of the pre-defined options of the specific mime-transform,
+as the last value of the set. Use the format "'; charset=XXX'". If you use a transform,
+for which you can specify 2 options and you want to append a charset, enter "'first
+parameter','second parameter','charset=us-ascii'". You can, however use the defaults for
+the parameters: "'','','charset=us-ascii'".
+
+[3. File structure]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [mimetype]_[subtype]__[transform].inc.php3
+
+ Please not that mimetype and subtype are seperated via '_', which shall not be
+ contained in their names. The transform function/filename may contain only
+ characters which cause no problems in the file system as well as the PHP function
+ naming convention.
+
+ The transform function will the be called 'PMA_transform_[mimetype]_[subtype]__[transform]()'.
+
+ Example:
+
+ text_html__formatted.inc.php3
+ PMA_transform_text_html__formatted()
+
+
+
+ [mimetype]__[transform].inc.php3
+
+ Please note that there are no single '_' characters.
+ The transform function/filename may contain only characters which cause no problems
+ in the file system as well as the PHP function naming convention.
+
+ The transform function will the be called 'PMA_transform_[mimetype]__[transform]()'.
+
+ Example:
+
+ text__formatted.inc.php3
+ PMA_transform_text__formatted()
+
+
+
+ [mimetype]_[subtype].inc.php3
+
+ Please note that there are no '__' characters in the filename. Do not use special
+ characters in the filename causing problems with the file system.
+
+ No transformation function is defined in the file itself.
+
+ Example:
+
+ text_plain.inc.php3
+ (No function)
+
+
+
+ [mimetype].inc.php3
+
+ Please note that there are no '_' characters in the filename. Do not use special
+ characters in the filename causing problems with the file system.
+
+ No transformation function is defined in the file itself.
+
+ Example:
+
+ text.inc.php3
+ (No function)
+
+
+
+ global__[transform].inc.php3
+
+ The transform function will the be called 'PMA_transform_global__[transform]()'.
+
+ Example:
+
+ global__formatted
+ PMA_transform_global__formatted()
+
+
+
+
+
+
+
+
+
@@ -1467,7 +1851,7 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
Multi-user -
Browsers -
Usage tips -
-Project
+Project -
You can use Ctrl+arrows for moving on most pages with plenty editing
- fields (table structure changes, row editing, etc.).
+ fields (table structure changes, row editing, etc.). You can also have
+ a look at the directive $cfg['DefaultPropDisplay'] ('vertical') and see
+ if this eases up editing for you.
+
+
+ Slow down :). Defining mimetypes is of no use, if you can't put transformations on them.
+ Otherwise you could just put a comment on the field. Because entering your own mimetype will
+ cause serious syntax checking issues and validation, this introduces a high-risk false-user-input
+ situation. Instead you have to initialize mimetypes using functions or empty mimetype definitions.
+
+ Plus, you have a whole overview of available mimetypes. Who knows all those mimetypes by heart so
+ he/she can enter it at will?