C:\xampp\phpMyAdmin\libraries\classes\Plugins\Transformations\Abs\TextLinkTransformationsPlugin.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Abstract class for the link transformations plugins
 *
 * @package    PhpMyAdmin-Transformations
 * @subpackage Link
 */
namespace PhpMyAdmin\Plugins\Transformations\Abs;

use 
PhpMyAdmin\Plugins\TransformationsPlugin;
use 
PhpMyAdmin\Sanitize;

if (!
defined('PHPMYADMIN')) {
    exit;
}

/**
 * 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 "https://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, array $options = array(), $meta '')
    {
        
$cfg $GLOBALS['cfg'];
        
$options $this->getOptions($options$cfg['DefaultTransformations']['TextLink']);
        
$url = (isset($options[0]) ? $options[0] : '') . ((isset($options[2]) && $options[2]) ? '' $buffer);
        
/* Do not allow javascript links */
        
if (! Sanitize::checkLink($urltruetrue)) {
            return 
htmlspecialchars($url);
        }
        return 
'<a href="'
            
htmlspecialchars($url)
            . 
'" title="'
            
htmlspecialchars(isset($options[1]) ? $options[1] : '')
            . 
'" target="_blank" rel="noopener noreferrer">'
            
htmlspecialchars(isset($options[1]) ? $options[1] : $buffer)
            . 
'</a>';
    }


    
/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */

    /**
     * Gets the transformation name of the specific plugin
     *
     * @return string
     */
    
public static function getName()
    {
        return 
"TextLink";
    }
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586