summaryrefslogtreecommitdiff
path: root/hugo/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'hugo/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php')
-rw-r--r--hugo/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php116
1 files changed, 116 insertions, 0 deletions
diff --git a/hugo/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php b/hugo/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php
new file mode 100644
index 0000000..2de48e6
--- /dev/null
+++ b/hugo/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php
@@ -0,0 +1,116 @@
+<?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 void
+ */
+ 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 = 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;
+ }
+
+ /**
+ * 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";
+ }
+}
+?> \ No newline at end of file