/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&amp;ct=application/octet-stream&amp;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'] . '&amp;resize=jpeg&amp;newWidth=' . (isset($options[0]) ? $options[0] : '100') . '&amp;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'] . '&amp;resize=png&amp;newWidth=' . (isset($options[0]) ? $options[0] : '100') . '&amp;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;
}
 
?>