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 * lang/german-*: better grammar. ;) diff --git a/Documentation.html b/Documentation.html index 814b8bef2..331fc1dec 100755 --- a/Documentation.html +++ b/Documentation.html @@ -21,7 +21,9 @@ Requirements  -  Introduction  -  Installation  -  - Configuration  -  + Configuration +
+ Transformations  -  FAQ  -  Developers  -  Credits  -  @@ -108,6 +110,8 @@
  • using Query-by-example (QBE), create complex queries automatically connecting required tables
  • create PDF graphics of your Database layout
  • search globally in a database or a subset of it
  • +
  • transform stored data into any format using a set of predefined functions, + like displaying BLOB-data as image or download-link or ...
  • communicate in 42 different languages @@ -175,6 +179,15 @@ in your browser. phpMyAdmin should now display a welcome screen and your databases, or a login dialog if using http or cookie authentication mode.
  • +
  • For a whole set of new features (bookmarks, comments, sql-history, pdf-generation) + you need to create a set of tables in your database. Please look at your scripts/ + directory, where you should find a file called create_tables.sql. + You can already use your phpMyAdmin to create the tables for you. Please be + aware that you may have to have special (adminstrator) privileges to create + the database and tables. After having imported the create_tables.sql file, + you should specify the table names in your config.inc.php3 file. The directives + used for that can be found in the Configuration section.
  • +

    Upgrading from an older version:

    @@ -758,7 +771,17 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' Since release 2.3.0 you can store comments to describe each column for each table. These will then be shown on the "printview". -
    +

    + 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:
    +
    +
    + $cfg['Servers'][$i]['history'] string +
    +
    + Since release 2.5.0 you can store your SQL history, which means all querys you + entered manually into the phpMyAdmin interface. If you don't want to use a table- + based history, you can use the JavaScript-based history. Using that, all your + history items are deleted when closing the window.

    + + 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: +
    +
    + +
    +
    + $cfg['Servers'][$i]['verbose_check'] string +
    +
    + Because release 2.5.0 introduced the new MIME-transformation support, the + column_info table got enhanced with thre new fields. If the above variable is + set to TRUE (default) phpMyAdmin will check if you have the latest table structure + available. If not, it will emit a warning to the superuser.

    + + 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['Servers'][$i]['AllowDeny']['order'] string
    @@ -939,6 +1026,21 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'

    +
    $cfg['ShowTooltipAliasDB'] boolean
    +
    + If tooltips are enabled and a DB comment is set, this will flip the comment + and the real name. That means, if you have a table called 'user0001' and add + the comment 'MyName' on it, you will see the name 'MyName' used consequently + in the left frame and the tooltip shows the real name of the DB. +

    +
    + +
    $cfg['ShowTooltipAliasTB'] boolean
    +
    + Same as $cfg['ShowTooltipAliasDB'], except this works for table names. +

    +
    +
    $cfg['ShowStats'] boolean
    Defines whether to display space usage and statistics about databases @@ -1066,6 +1168,22 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'

    +
    $cfg['LightTabs'] string
    +
    + If set to True, do use less graphically intense tabs on the top of the mainframe. +

    +
    + +
    $cfg['DefaultTabServer'] string
    +
    + Defines the tab displayed by default on server view. Possible + values: "main.php3" (recommended, + "server_databases.php3", "server_status.php3", + "server_variables.php3", "server_privileges.php3" or + "server_processlist.php3". +

    +
    +
    $cfg['DefaultTabDatabase'] string
    Defines the tab displayed by default on database view. Possible @@ -1281,10 +1399,39 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'

    -
    $cfg['DefaultDisplay'] string
    +
    $cfg['DefaultDisplay'] string
    + $cfg['HeaderFlipType'] string +
    - There are 2 display modes: horizontal and vertical. Define which one is - displayed by default. + There are 3 display modes: horizontal, horizontalflipped and vertical. Define + which one is displayed by default. The first mode displays each row on a + horiztonal line, the second rotates the headers by 90 degrees, so you can use + descriptive headers even though fields only contain small values and still + print them out. The vertical mode sorts each row on a vertical lineup.

    + 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['DefaultPropDisplay'] string
    +
    + When editing/creating new columns in a table all fields normally get lined up + one field a line. (default: 'horizontal'). If you set this to 'vertical' you + can have each field lined up vertically beneath each other. You can save up + a lot of place on the horizontal direction and no longer have to scroll. +

    +
    + +
    $cfg['ShowBrowseComments'] boolean
    + $cfg['ShowPropertyComments'] boolean
    +
    +
    + By setting the corresponding variable to TRUE you can enable the display of + column comments in Browse or Property display. In browse mode, the comments + are show inside the header. In property mode, comments are displayed using + a css-formatted dashed-line below the name of the field. The comment is shown + as a tooltip for that field.

    @@ -1307,7 +1454,52 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'
    $cfg['RepeatCells'] integer
    - Repeat the headers every X cells, or 0 to deactivate. + Repeat the headers every X cells, or 0 to deactivate. +

    +
    + +
    $cfg['QueryFrame'] boolean
    + $cfg['QueryFrameJS'] boolean
    + $cfg['QueryFrameDebug'] boolean
    + $cfg['QueryWindowWidth'] integer
    + $cfg['QueryWindowHeight'] integer
    + $cfg['QueryHistoryDB'] boolean
    + $cfg['QueryWindowDefTab'] string
    + $cfg['QueryHistoryMax'] integer +
    +
    + All those variables affect the new query frame/window. When $cfg['QueryFrame'] + is set to true a new frame is embedded on the left with a small area. Clicking + on that results in opening a direct interface to enter SQL queries.

    + 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. +

    +
    + +
    $cfg['BrowseMIME'] boolean
    +
    + Enable MIME-transformations.

    @@ -1455,6 +1647,198 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' + +
    +

    Transformations

    + +

    +Introduction  -  +Usage  -  +File structure  -  +

    + +
    +

    [1. Introduction]

    + +

    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.


    +
    + +
    +

    [2. Usage]

    + +

    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'.

    +
    + + + +
    +

    [3. File structure]

    + +

    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:

    + +
      +
    1. A mimetype+subtype transform:

      + + [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()


    2. + +
    3. A mimetype (w/o subtype) transform:

      + + [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()


    4. + +
    5. A mimetype+subtype without specific transform function

      + + [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)


    6. + +
    7. A mimetype (w/o subtype) without specific transform 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)


    8. + +
    9. A global transform function with no specific mimetype

      + + global__[transform].inc.php3

      + + The transform function will the be called 'PMA_transform_global__[transform]()'.

      + + Example:

      + + global__formatted
      + PMA_transform_global__formatted()
    10. +
    + +
    +

    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.



    @@ -1467,7 +1851,7 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' Multi-user  -  Browsers  -  Usage tips  -  -Project +Project  - 


    @@ -2470,7 +2854,8 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' once the INSERT verb and the table name.
    "Enclose table and field names with backquotes" ensures that field and table names formed with special characters are protected.
    -

    + "Include column comments as inline SQL-comments" includes any + column comments set in the PMA-DB in the dump as SQL comments (/* xxx */).

    [6.13] I would like to create a database with a dot in its name. @@ -2518,7 +2903,24 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'

    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. +
    +

    + +

    + [6.17] Transformations: I can't enter my own mimetype! WTF is this feature + then useful for? +

    +

    + 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?

    @@ -2594,8 +2996,6 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' Developers section.

    - -

    Developers Information

    @@ -2749,6 +3149,12 @@ CREDITS, in chronological order - Garvin Hicking <hicking_at_faktor-e.de> * built the patch for vertical display of table rows + * built the Javascript based Query window + SQL history + * Improvement of column/db comments + * (MIME)-Transformations for columns + * Use custom alias names for Databases in left frame + * vertical display of column properties page + * some bugfixes, smaller features - Yukihiro Kawada <kawada_at_den.fujifilm.co.jp> * japanese kanji encoding conversion feature @@ -2780,7 +3186,7 @@ Bernard M. Piller, Laurent Haas, "Sakamoto", Yuval Sarna, www.securereality.com.au, Alvar Soome, Siu Sun, Peter Svec, Michael Tacelosky, Rachim Tamsjadi, Kositer Uros, Luís V., Martijn W. van der Lee, Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai, -Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas. +Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, "Manuzhai". Original Credits of Version 2.1.0 diff --git a/config.inc.php3 b/config.inc.php3 index ccf57de01..d81ef7b39 100755 --- a/config.inc.php3 +++ b/config.inc.php3 @@ -125,6 +125,8 @@ $cfg['Servers'][$i]['table_info'] = ''; $cfg['Servers'][$i]['table_coords'] = ''; $cfg['Servers'][$i]['pdf_pages'] = ''; $cfg['Servers'][$i]['column_info'] = ''; +$cfg['Servers'][$i]['history'] = ''; +$cfg['Servers'][$i]['verbose_check'] = TRUE; $cfg['Servers'][$i]['AllowDeny']['order'] = ''; $cfg['Servers'][$i]['AllowDeny']['rules'] @@ -150,6 +152,9 @@ $cfg['Servers'][$i]['table_info'] = ''; $cfg['Servers'][$i]['table_coords'] = ''; $cfg['Servers'][$i]['pdf_pages'] = ''; $cfg['Servers'][$i]['column_info'] = ''; +$cfg['Servers'][$i]['history'] = ''; +$cfg['Servers'][$i]['verbose_check'] = TRUE; + $cfg['Servers'][$i]['AllowDeny']['order'] = ''; $cfg['Servers'][$i]['AllowDeny']['rules']