/Web/Maintenance/phpMyAdmin/libraries/transformations/README |
---|
0,0 → 1,4 |
TRANSFORMATION USAGE (Garvin Hicking, <me@supergarv.de>) |
==================== |
See the Documentation.html for complete instructions on how to use transformation plugins. |
/Web/Maintenance/phpMyAdmin/libraries/transformations/TEMPLATE |
---|
0,0 → 1,28 |
<?php |
/* $Id: TEMPLATE,v 2.1 2003/11/26 22:52:24 rabus Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
/** |
* Plugin function TEMPLATE (Garvin Hicking). |
* ----------------------------------------- |
* |
* For instructions, read the /Documentation.html file. |
* |
* The string [ENTER_FILENAME_HERE] shall be substituted with the filename without the '.inc.php' |
* extension. For further information regarding naming conventions see the /Documentation.html file. |
*/ |
function PMA_transformation_[ENTER_FILENAME_HERE]($buffer, $options = array(), $meta = '') { |
// possibly use a global transform and feed it with special options: |
// include('./libraries/transformations/global.inc.php'); |
// further operations on $buffer using the $options[] array. |
// You can evaluate the propagated $meta Object. It's contained fields are described in http://www.php.net/mysql_fetch_field. |
// This stored information can be used to get the field information about the transformed field. |
// $meta->mimetype contains the original MimeType of the field (i.e. 'text/plain', 'image/jpeg' etc.) |
return $buffer; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/TEMPLATE_MIMETYPE |
---|
0,0 → 1,13 |
<?php |
/* $Id: TEMPLATE_MIMETYPE,v 2.1 2003/11/26 22:52:24 rabus Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
/** |
* MIME-Init function TEMPLATE (Garvin Hicking). |
* ----------------------------------------- |
* |
* This files serves no function. It's only kept here to add a mimetype value for selection. |
* You can still use global or other mimetype's transforms with this mimetype. |
*/ |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/application_octetstream__download.inc.php |
---|
0,0 → 1,29 |
<?php |
/* $Id: application_octetstream__download.inc.php,v 2.0 2003/12/29 17:48:40 rabus Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_application_octetstream__download(&$buffer, $options = array(), $meta = '') { |
global $row; |
if (isset($options[0]) && !empty($options[0])) { |
$cn = $options[0]; // filename |
} else { |
if (isset($options[1]) && !empty($options[1]) && isset($row[$options[1]])) { |
$cn = $row[$options[1]]; |
} else { |
$cn = 'binary_file.dat'; |
} |
} |
return |
sprintf( |
'<a href="transformation_wrapper.php%s&ct=application/octet-stream&cn=%s" title="%s">%s</a>', |
$options['wrapper_link'], |
urlencode($cn), |
htmlspecialchars($cn), |
htmlspecialchars($cn) |
); |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/application_octetstream__hex.inc.php |
---|
0,0 → 1,12 |
<?php |
/* $Id: application_octetstream__hex.inc.php,v 1.1 2005/06/24 14:28:00 nijel Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_application_octetstream__hex($buffer, $options = array(), $meta = '') { |
// possibly use a global transform and feed it with special options: |
// include('./libraries/transformations/global.inc.php'); |
return chunk_split(bin2hex($buffer), 2, ' '); |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/generator.sh |
---|
0,0 → 1,33 |
#!/bin/bash |
# $Id: generator.sh,v 2.0 2003/11/18 15:20:44 nijel Exp $ |
# |
# Shell script that adds a new function file using a template. Should not be called directly |
# but instead by template_Generator.sh and template_generator_mimetype.sh |
# |
# |
# $1: Template |
# $2: Filename |
# $3: (optional) Description |
if [ $# == 0 ] |
then |
echo "Please call template_generator.sh or template_generator_mimetype.sh instead" |
echo "" |
exit 65 |
fi |
functionupper="`echo $2 | tr [:lower:] [:upper:]`" |
functionlower="`echo $2 | tr [:upper:] [:lower:]`" |
cat $1 | sed "s/\[ENTER_FILENAME_HERE\]/$functionupper/" | sed "s/\[enter_filename_here\]/$functionlower/" >> $2.inc.php |
if [ "$3" ] |
then |
echo "" |
echo "To do later:" |
echo "cd ../../lang" |
echo "./add_message.sh '\$strTransformation_${functionlower}' '$3'" |
echo "" |
fi |
echo "Created $2.inc.php" |
echo "" |
/Web/Maintenance/phpMyAdmin/libraries/transformations/global.inc.php |
---|
0,0 → 1,48 |
<?php |
/* $Id: global.inc.php,v 2.3 2003/11/26 22:52:24 rabus Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
/** |
* GLOBAL Plugin function (Garvin Hicking). |
* --------------- |
* |
* THIS FILE PROVIDES BASIC FUNCTIONS TO USE IN OTHER PLUGINS! |
* |
* The basic filename usage for any plugin, residing in the libraries/transformations directory is: |
* |
* -- <mime_type>_<mime_subtype>__<transformation_name>.inc.php |
* |
* The function name has to be the like above filename: |
* |
* -- function PMA_transformation_<mime_type>_<mime_subtype>__<transformation_name>.inc.php |
* |
* Please use short and expressive names. For now, special characters which aren't allowed in |
* filenames or functions should not be used. |
* |
* Please provide a comment for your function, what it does and what parameters are available. |
* |
*/ |
function PMA_transformation_global_plain($buffer, $options = array(), $meta = '') { |
return htmlspecialchars($buffer); |
} |
function PMA_transformation_global_html($buffer, $options = array(), $meta = '') { |
return $buffer; |
} |
function PMA_transformation_global_html_replace($buffer, $options = array(), $meta = '') { |
if (!isset($options['string'])) { |
$options['string'] = ''; |
} |
if (isset($options['regex']) && isset($options['regex_replace'])) { |
$buffer = preg_replace('@' . str_replace('@', '\@', $options['regex']) . '@si', $options['regex_replace'], $buffer); |
} |
// Replace occurences of [__BUFFER__] with actual text |
$return = str_replace("[__BUFFER__]", $buffer, $options['string']); |
return $return; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/image_jpeg__inline.inc.php |
---|
0,0 → 1,18 |
<?php |
/* $Id: image_jpeg__inline.inc.php,v 2.3 2005/05/22 17:09:27 lem9 Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_image_jpeg__inline($buffer, $options = array(), $meta = '') { |
require_once('./libraries/transformations/global.inc.php'); |
if (PMA_IS_GD2) { |
$transform_options = array ('string' => '<a href="transformation_wrapper.php' . $options['wrapper_link'] . '" target="_blank"><img src="transformation_wrapper.php' . $options['wrapper_link'] . '&resize=jpeg&newWidth=' . (isset($options[0]) ? $options[0] : '100') . '&newHeight=' . (isset($options[1]) ? $options[1] : 100) . '" alt="[__BUFFER__]" border="0" /></a>'); |
} else { |
$transform_options = array ('string' => '<img src="transformation_wrapper.php' . $options['wrapper_link'] . '" alt="[__BUFFER__]" width="320" height="240" />'); |
} |
$buffer = PMA_transformation_global_html_replace($buffer, $transform_options); |
return $buffer; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/image_jpeg__link.inc.php |
---|
0,0 → 1,14 |
<?php |
/* $Id: image_jpeg__link.inc.php,v 2.2 2003/12/02 15:49:21 lem9 Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_image_jpeg__link($buffer, $options = array(), $meta = '') { |
require_once('./libraries/transformations/global.inc.php'); |
$transform_options = array ('string' => '<a href="transformation_wrapper.php' . $options['wrapper_link'] . '" alt="[__BUFFER__]">[BLOB]</a>'); |
$buffer = PMA_transformation_global_html_replace($buffer, $transform_options); |
return $buffer; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/image_png__inline.inc.php |
---|
0,0 → 1,18 |
<?php |
/* $Id: image_png__inline.inc.php,v 2.3 2005/05/22 17:09:27 lem9 Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_image_png__inline($buffer, $options = array(), $meta = '') { |
require_once('./libraries/transformations/global.inc.php'); |
if (PMA_IS_GD2) { |
$transform_options = array ('string' => '<a href="transformation_wrapper.php' . $options['wrapper_link'] . '" target="_blank"><img src="transformation_wrapper.php' . $options['wrapper_link'] . '&resize=png&newWidth=' . (isset($options[0]) ? $options[0] : '100') . '&newHeight=' . (isset($options[1]) ? $options[1] : 100) . '" alt="[__BUFFER__]" border="0" /></a>'); |
} else { |
$transform_options = array ('string' => '<img src="transformation_wrapper.php' . $options['wrapper_link'] . '" alt="[__BUFFER__]" width="320" height="240" />'); |
} |
$buffer = PMA_transformation_global_html_replace($buffer, $transform_options); |
return $buffer; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/template_generator.sh |
---|
0,0 → 1,25 |
#!/bin/bash |
# $Id: template_generator.sh,v 2.0 2003/11/18 15:20:45 nijel Exp $ |
# |
# Shell script that adds a new mimetype with transform function. |
# |
# The filename should contain either 'mimetype_subtype' or 'mimetype'. |
# The suffix '.inc.php' is appended automatically! |
# |
# The 'description' parameter will add a new entry in the language file. Watch out for |
# special escaping. |
# |
# Example: template_generator.sh 'filename' 'description' |
# |
if [ $# == 0 ] |
then |
echo "Usage: template_generator.sh 'filename' 'description'" |
echo "" |
exit 65 |
fi |
./generator.sh 'TEMPLATE' "$1" "$2" |
echo " " |
echo "New TRANSFORM FUNCTION $1.inc.php added." |
/Web/Maintenance/phpMyAdmin/libraries/transformations/template_generator_mimetype.sh |
---|
0,0 → 1,20 |
#!/bin/bash |
# $Id: template_generator_mimetype.sh,v 2.0 2003/11/18 15:20:45 nijel Exp $ |
# |
# Shell script that adds a new mimetype without transform function. |
# |
# The filename should contain either 'mimetype_subtype' or 'mimetype'. |
# The suffix '.inc.php' is appended automatically! |
# |
# Example: template_generator_mimetype.sh 'filename' |
# |
if [ $# == 0 ] |
then |
echo "Usage: template_generator_mimetype.sh 'filename'" |
echo "" |
exit 65 |
fi |
./generator.sh 'TEMPLATE_MIMETYPE' "$1" |
echo " " |
echo "New MIMETYPE $1.inc.php added." |
/Web/Maintenance/phpMyAdmin/libraries/transformations/text_plain__dateformat.inc.php |
---|
0,0 → 1,61 |
<?php |
/* $Id: text_plain__dateformat.inc.php,v 2.3 2003/12/05 11:02:14 garvinhicking Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_text_plain__dateformat($buffer, $options = array(), $meta = '') { |
// possibly use a global transform and feed it with special options: |
// include('./libraries/transformations/global.inc.php'); |
// further operations on $buffer using the $options[] array. |
if (!isset($options[0]) || $options[0] == '') { |
$options[0] = 0; |
} |
if (!isset($options[1]) || $options[1] == '') { |
$options[1] = $GLOBALS['datefmt']; |
} |
$timestamp = -1; |
// Detect TIMESTAMP(6 | 8 | 10 | 12 | 14), (2 | 4) not supported here. |
if (preg_match('/^(\d{2}){3,7}$/', $buffer)) { |
if (strlen($buffer) == 14 || strlen($buffer) == 8) { |
$offset = 4; |
} else { |
$offset = 2; |
} |
$d = array(); |
$d['year'] = substr($buffer, 0, $offset); |
$d['month'] = substr($buffer, $offset, 2); |
$d['day'] = substr($buffer, $offset + 2, 2); |
$d['hour'] = substr($buffer, $offset + 4, 2); |
$d['minute'] = substr($buffer, $offset + 6, 2); |
$d['second'] = substr($buffer, $offset + 8, 2); |
if (checkdate($d['month'], $d['day'], $d['year'])) { |
$timestamp = mktime($d['hour'], $d['minute'], $d['second'], $d['month'], $d['day'], $d['year']); |
} |
// If all fails, assume one of the dozens of valid strtime() syntaxes (http://www.gnu.org/manual/tar-1.12/html_chapter/tar_7.html) |
} else { |
$timestamp = strtotime($buffer); |
} |
// If all above failed, maybe it's a Unix timestamp already? |
if ($timestamp < 0 && preg_match('/^[1-9]\d{1,9}$/', $buffer)) { |
$timestamp = $buffer; |
} |
// Reformat a valid timestamp |
if ($timestamp >= 0) { |
$timestamp -= $options[0] * 60 * 60; |
$source = $buffer; |
$buffer = '<dfn onclick="alert(\'' . $source . '\');" title="' . $source . '">' . PMA_localisedDate($timestamp, $options[1]) . '</dfn>'; |
} |
return $buffer; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/text_plain__external.inc.php |
---|
0,0 → 1,91 |
<?php |
/* $Id: text_plain__external.inc.php,v 2.8 2006/01/19 15:39:29 cybot_tm Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_text_plain__external_nowrap($options = array()) { |
if (!isset($options[3]) || $options[3] == '') { |
$nowrap = true; |
} elseif ($options[3] == '1' || $options[3] == 1) { |
$nowrap = true; |
} else { |
$nowrap = false; |
} |
return $nowrap; |
} |
function PMA_transformation_text_plain__external($buffer, $options = array(), $meta = '') { |
// possibly use a global transform and feed it with special options: |
// include('./libraries/transformations/global.inc.php'); |
// further operations on $buffer using the $options[] array. |
$allowed_programs = array(); |
// |
// WARNING: |
// |
// It's up to administrator to allow anything here. Note that users may |
// specify any parameters, so when programs allow output redirection or |
// any other possibly dangerous operations, you should write wrapper |
// script that will publish only functions you really want. |
// |
// Add here program definitions like (note that these are NOT safe |
// programs): |
// |
//$allowed_programs[0] = '/usr/local/bin/tidy'; |
//$allowed_programs[1] = '/usr/local/bin/validate'; |
// no-op when no allowed programs |
if (count($allowed_programs) == 0) { |
return $buffer; |
} |
if (!isset($options[0]) || $options[0] == '' || !isset($allowed_programs[$options[0]])) { |
$program = $allowed_programs[0]; |
} else { |
$program = $allowed_programs[$options[0]]; |
} |
if (!isset($options[1]) || $options[1] == '') { |
$poptions = '-f /dev/null -i -wrap -q'; |
} else { |
$poptions = $options[1]; |
} |
if (!isset($options[2]) || $options[2] == '') { |
$options[2] = 1; |
} |
if (!isset($options[3]) || $options[3] == '') { |
$options[3] = 1; |
} |
// needs PHP >= 4.3.0 |
$newstring = ''; |
$descriptorspec = array( |
0 => array("pipe", "r"), |
1 => array("pipe", "w") |
); |
$process = proc_open($program . ' ' . $poptions, $descriptorspec, $pipes); |
if (is_resource($process)) { |
fwrite($pipes[0], $buffer); |
fclose($pipes[0]); |
while (!feof($pipes[1])) { |
$newstring .= fgets($pipes[1], 1024); |
} |
fclose($pipes[1]); |
// we don't currently use the return value |
$return_value = proc_close($process); |
} |
if ($options[2] == 1 || $options[2] == '2') { |
$retstring = htmlspecialchars($newstring); |
} else { |
$retstring = $newstring; |
} |
return $retstring; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/text_plain__formatted.inc.php |
---|
0,0 → 1,9 |
<?php |
/* $Id: text_plain__formatted.inc.php,v 2.1 2003/11/26 22:52:24 rabus Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_text_plain__formatted($buffer, $options = array(), $meta = '') { |
return $buffer; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/text_plain__imagelink.inc.php |
---|
0,0 → 1,13 |
<?php |
/* $Id: text_plain__imagelink.inc.php,v 2.3 2005/05/22 17:09:27 lem9 Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_text_plain__imagelink($buffer, $options = array(), $meta = '') { |
require_once('./libraries/transformations/global.inc.php'); |
$transform_options = array ('string' => '<a href="' . (isset($options[0]) ? $options[0] : '') . $buffer . '" target="_blank"><img src="' . (isset($options[0]) ? $options[0] : '') . $buffer . '" border="0" width="' . (isset($options[1]) ? $options[1] : 100) . '" height="' . (isset($options[2]) ? $options[2] : 50) . '" />' . $buffer . '</a>'); |
$buffer = PMA_transformation_global_html_replace($buffer, $transform_options); |
return $buffer; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/text_plain__link.inc.php |
---|
0,0 → 1,18 |
<?php |
/* $Id: text_plain__link.inc.php,v 2.1 2003/11/26 22:52:24 rabus Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_text_plain__link($buffer, $options = array(), $meta = '') { |
require_once('./libraries/transformations/global.inc.php'); |
// $transform_options = array ('string' => '<a href="' . (isset($options[0]) ? $options[0] : '') . '%1$s" title="' . (isset($options[1]) ? $options[1] : '%1$s') . '">' . (isset($options[1]) ? $options[1] : '%1$s') . '</a>'); |
$transform_options = array ('string' => '<a href="' . (isset($options[0]) ? $options[0] : '') . $buffer . '" title="' . (isset($options[1]) ? $options[1] : '') . '">' . (isset($options[1]) ? $options[1] : $buffer) . '</a>'); |
$buffer = PMA_transformation_global_html_replace($buffer, $transform_options); |
return $buffer; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/text_plain__sql.inc.php |
---|
0,0 → 1,12 |
<?php |
/* $Id: text_plain__sql.inc.php,v 1.1 2005/10/16 16:16:36 nijel Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_text_plain__sql($buffer, $options = array(), $meta = '') { |
$result = PMA_SQP_formatHtml(PMA_SQP_parse($buffer)); |
// Need to clear error state not to break subsequent queries display. |
PMA_SQP_resetError(); |
return $result; |
} |
?> |
/Web/Maintenance/phpMyAdmin/libraries/transformations/text_plain__substr.inc.php |
---|
0,0 → 1,44 |
<?php |
/* $Id: text_plain__substr.inc.php,v 2.3 2004/03/09 15:02:28 nijel Exp $ */ |
// vim: expandtab sw=4 ts=4 sts=4: |
function PMA_transformation_text_plain__substr($buffer, $options = array(), $meta = '') { |
// possibly use a global transform and feed it with special options: |
// include('./libraries/transformations/global.inc.php'); |
// further operations on $buffer using the $options[] array. |
if (!isset($options[0]) || $options[0] == '') { |
$options[0] = 0; |
} |
if (!isset($options[1]) || $options[1] == '') { |
$options[1] = 'all'; |
} |
if (!isset($options[2]) || $options[2] == '') { |
$options[2] = '...'; |
} |
$newtext = ''; |
if ($options[1] != 'all') { |
$newtext = PMA_substr($buffer, $options[0], $options[1]); |
} else { |
$newtext = PMA_substr($buffer, $options[0]); |
} |
$length = strlen($newtext); |
$baselength = strlen($buffer); |
if ($length != $baselength) { |
if ($options[0] != 0) { |
$newtext = $options[2] . $newtext; |
} |
if (($length + $options[0]) != $baselength) { |
$newtext .= $options[2]; |
} |
} |
return $newtext; |
} |
?> |