Дозаливка
This commit is contained in:
+84
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the append transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Append
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the append transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Append
|
||||
*/
|
||||
abstract class AppendTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Appends text to a string. The only option is the text to be appended'
|
||||
. ' (enclosed in single quotes, default empty string).'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
if (! isset($options[0]) || $options[0] == '') {
|
||||
$options[0] = '';
|
||||
}
|
||||
//just append the option to the original text
|
||||
return $buffer . htmlspecialchars($options[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Append";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+178
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the date format transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage DateFormat
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the date format transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class DateFormatTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays a TIME, TIMESTAMP, DATETIME or numeric unix timestamp'
|
||||
. ' column as formatted date. The first option is the offset (in'
|
||||
. ' hours) which will be added to the timestamp (Default: 0). Use'
|
||||
. ' second option to specify a different date/time format string.'
|
||||
. ' Third option determines whether you want to see local date or'
|
||||
. ' UTC one (use "local" or "utc" strings) for that. According to'
|
||||
. ' that, date format has different value - for "local" see the'
|
||||
. ' documentation for PHP\'s strftime() function and for "utc" it'
|
||||
. ' is done using gmdate() function.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
// possibly use a global transform and feed it with special options
|
||||
|
||||
// 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] = strtolower($options[2]);
|
||||
}
|
||||
|
||||
if (empty($options[1])) {
|
||||
if ($options[2] == 'local') {
|
||||
$options[1] = __('%B %d, %Y at %I:%M %p');
|
||||
} else {
|
||||
$options[1] = 'Y-m-d H:i:s';
|
||||
}
|
||||
}
|
||||
|
||||
$timestamp = -1;
|
||||
|
||||
// INT columns will be treated as UNIX timestamps
|
||||
// and need to be detected before the verification for
|
||||
// MySQL TIMESTAMP
|
||||
if ($meta->type == 'int') {
|
||||
$timestamp = $buffer;
|
||||
|
||||
// Detect TIMESTAMP(6 | 8 | 10 | 12 | 14)
|
||||
// TIMESTAMP (2 | 4) not supported here.
|
||||
// (Note: prior to MySQL 4.1, TIMESTAMP has a display size
|
||||
// for example TIMESTAMP(8) means YYYYMMDD)
|
||||
} else 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 {
|
||||
if (preg_match('/^[0-9]\d{1,9}$/', $buffer)) {
|
||||
$timestamp = (int)$buffer;
|
||||
} 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;
|
||||
if ($options[2] == 'local') {
|
||||
$text = PMA_Util::localisedDate(
|
||||
$timestamp,
|
||||
$options[1]
|
||||
);
|
||||
} elseif ($options[2] == 'utc') {
|
||||
$text = gmdate($options[1], $timestamp);
|
||||
} else {
|
||||
$text = 'INVALID DATE TYPE';
|
||||
}
|
||||
$buffer = '<dfn onclick="alert(\'' . $source . '\');" title="'
|
||||
. $source . '">' . $text . '</dfn>';
|
||||
}
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Date Format";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the download transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Download
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the download transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class DownloadTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays a link to download the binary data of the column. You can'
|
||||
. ' use the first option to specify the filename, or use the second'
|
||||
. ' option as the name of a column which contains the filename. If'
|
||||
. ' you use the second option, you need to set the first option to'
|
||||
. ' the empty string.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
global $row, $fields_meta;
|
||||
|
||||
if (isset($options[0]) && !empty($options[0])) {
|
||||
$cn = $options[0]; // filename
|
||||
} else {
|
||||
if (isset($options[1]) && !empty($options[1])) {
|
||||
foreach ($fields_meta as $key => $val) {
|
||||
if ($val->name == $options[1]) {
|
||||
$pos = $key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isset($pos)) {
|
||||
$cn = $row[$pos];
|
||||
}
|
||||
}
|
||||
if (empty($cn)) {
|
||||
$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)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Download";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the external transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage External
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the external transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class ExternalTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'LINUX ONLY: Launches an external application and feeds it the column'
|
||||
. ' data via standard input. Returns the standard output of the'
|
||||
. ' application. The default is Tidy, to pretty-print HTML code.'
|
||||
. ' For security reasons, you have to manually edit the file'
|
||||
. ' libraries/plugins/transformations/Text_Plain_External'
|
||||
. '.class.php and list the tools you want to make available.'
|
||||
. ' The first option is then the number of the program you want to'
|
||||
. ' use and the second option is the parameters for the program.'
|
||||
. ' The third option, if set to 1, will convert the output using'
|
||||
. ' htmlspecialchars() (Default 1). The fourth option, if set to 1,'
|
||||
. ' will prevent wrapping and ensure that the output appears all on'
|
||||
. ' one line (Default 1).'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enables no-wrapping
|
||||
*
|
||||
* @param array $options transformation options
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function applyTransformationNoWrap($options = array())
|
||||
{
|
||||
if (! isset($options[3]) || $options[3] == '') {
|
||||
$nowrap = true;
|
||||
} elseif ($options[3] == '1' || $options[3] == 1) {
|
||||
$nowrap = true;
|
||||
} else {
|
||||
$nowrap = false;
|
||||
}
|
||||
|
||||
return $nowrap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
// possibly use a global transform and feed it with special options
|
||||
|
||||
// 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
|
||||
proc_close($process);
|
||||
}
|
||||
|
||||
if ($options[2] == 1 || $options[2] == '2') {
|
||||
$retstring = htmlspecialchars($newstring);
|
||||
} else {
|
||||
$retstring = $newstring;
|
||||
}
|
||||
|
||||
return $retstring;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "External";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the formatted transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Formatted
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the formatted transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class FormattedTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays the contents of the column as-is, without running it'
|
||||
. ' through htmlspecialchars(). That is, the column is assumed'
|
||||
. ' to contain valid HTML.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Formatted";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the hex transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Hex
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the hex transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class HexTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays hexadecimal representation of data. Optional first'
|
||||
. ' parameter specifies how often space will be added (defaults'
|
||||
. ' to 2 nibbles).'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
// possibly use a global transform and feed it with special options
|
||||
if (!isset($options[0])) {
|
||||
$options[0] = 2;
|
||||
} else {
|
||||
$options[0] = (int)$options[0];
|
||||
}
|
||||
|
||||
if ($options[0] < 1) {
|
||||
return bin2hex($buffer);
|
||||
} else {
|
||||
return chunk_split(bin2hex($buffer), $options[0], ' ');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Hex";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the link transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Link
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
/* For PMA_Transformation_globalHtmlReplace */
|
||||
require_once 'libraries/transformations.lib.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the link transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class ImageLinkTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays a link to download this image.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
$transform_options = array (
|
||||
'string' => '<a href="transformation_wrapper.php'
|
||||
. $options['wrapper_link'] . '" alt="[__BUFFER__]">[BLOB]</a>'
|
||||
);
|
||||
return PMA_Transformation_globalHtmlReplace(
|
||||
$buffer,
|
||||
$transform_options
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "ImageLink";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the inline transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Inline
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
/* For PMA_Transformation_globalHtmlReplace */
|
||||
require_once 'libraries/transformations.lib.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the inline transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class InlineTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays a clickable thumbnail. The options are the maximum width'
|
||||
. ' and height in pixels. The original aspect ratio is preserved.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
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" />'
|
||||
);
|
||||
}
|
||||
return PMA_Transformation_globalHtmlReplace(
|
||||
$buffer,
|
||||
$transform_options
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Inline";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the long to IPv4 transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage LongToIPv4
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the long to IPv4 transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class LongToIPv4TransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Converts an (IPv4) Internet network address into a string in'
|
||||
. ' Internet standard dotted format.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
if ($buffer < 0 || $buffer > 4294967295) {
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
return long2ip($buffer);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Long To IPv4";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the SQL transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage SQL
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the SQL transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class SQLTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Formats text as SQL query with syntax highlighting.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
// see PMA_highlightSQL()
|
||||
$result = PMA_Util::formatSql($buffer);
|
||||
// Need to clear error state not to break subsequent queries display.
|
||||
PMA_SQP_resetError();
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "SQL";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the substring transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Substring
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the substring transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class SubstringTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays a part of a string. The first option is the number of'
|
||||
. ' characters to skip from the beginning of the string (Default 0).'
|
||||
. ' The second option is the number of characters to return (Default:'
|
||||
. ' until end of string). The third option is the string to append'
|
||||
. ' and/or prepend when truncation occurs (Default: "…").'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
// possibly use a global transform and feed it with special options
|
||||
|
||||
// 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 = $GLOBALS['PMA_String']->substr(
|
||||
$buffer, $options[0], $options[1]
|
||||
);
|
||||
} else {
|
||||
$newtext = $GLOBALS['PMA_String']->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;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Substring";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the image link transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage ImageLink
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
/* For PMA_Transformation_globalHtmlReplace */
|
||||
require_once 'libraries/transformations.lib.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the image link transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class TextImageLinkTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays an image and a link; the column contains the filename. The'
|
||||
. ' first option is a URL prefix like "http://www.example.com/". The'
|
||||
. ' second and third options are the width and the height in pixels.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
$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_globalHtmlReplace(
|
||||
$buffer,
|
||||
$transform_options
|
||||
);
|
||||
|
||||
return $buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "Image Link";
|
||||
}
|
||||
}
|
||||
?>
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Abstract class for the link transformations plugins
|
||||
*
|
||||
* @package PhpMyAdmin-Transformations
|
||||
* @subpackage Link
|
||||
*/
|
||||
if (! defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/* Get the transformations interface */
|
||||
require_once 'libraries/plugins/TransformationsPlugin.class.php';
|
||||
/* For PMA_Transformation_globalHtmlReplace */
|
||||
require_once 'libraries/transformations.lib.php';
|
||||
|
||||
/**
|
||||
* Provides common methods for all of the link transformations plugins.
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
abstract class TextLinkTransformationsPlugin extends TransformationsPlugin
|
||||
{
|
||||
/**
|
||||
* Gets the transformation description of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getInfo()
|
||||
{
|
||||
return __(
|
||||
'Displays a link; the column contains the filename. The first option'
|
||||
. ' is a URL prefix like "http://www.example.com/". The second option'
|
||||
. ' is a title for the link.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the actual work of each specific transformations plugin.
|
||||
*
|
||||
* @param string $buffer text to be transformed
|
||||
* @param array $options transformation options
|
||||
* @param string $meta meta information
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function applyTransformation($buffer, $options = array(), $meta = '')
|
||||
{
|
||||
|
||||
$append_part = (isset($options[2]) && $options[2]) ? '' : $buffer;
|
||||
|
||||
$transform_options = array (
|
||||
'string' => '<a href="'
|
||||
. PMA_linkURL((isset($options[0]) ? $options[0] : '') . $append_part)
|
||||
. '" title="'
|
||||
. htmlspecialchars(isset($options[1]) ? $options[1] : '')
|
||||
. '" target="_new">'
|
||||
. htmlspecialchars(isset($options[1]) ? $options[1] : $buffer)
|
||||
. '</a>'
|
||||
);
|
||||
|
||||
return PMA_Transformation_globalHtmlReplace(
|
||||
$buffer,
|
||||
$transform_options
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called when any PluginManager to which the observer
|
||||
* is attached calls PluginManager::notify()
|
||||
*
|
||||
* @param SplSubject $subject The PluginManager notifying the observer
|
||||
* of an update.
|
||||
*
|
||||
* @todo implement
|
||||
* @return void
|
||||
*/
|
||||
public function update (SplSubject $subject)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
|
||||
|
||||
|
||||
/**
|
||||
* Gets the transformation name of the specific plugin
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getName()
|
||||
{
|
||||
return "TextLink";
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user