mirror of
https://github.com/stylersnico/librenms.git
synced 2026-08-01 00:24:21 +02:00
Resolved a large number index issues and update Console_Color to V2
This commit is contained in:
+101
-103
@@ -2,75 +2,41 @@
|
||||
/**
|
||||
* Color.php
|
||||
*
|
||||
* PHP version 4
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* Copyright (c) 2007 Stefan Walk
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to
|
||||
* deal in the Software without restriction, including without limitation the
|
||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the Software is
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to
|
||||
* deal in the Software without restriction, including without limitation the
|
||||
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*
|
||||
* @category Console
|
||||
* @package Console_Color
|
||||
* @package Console_Color2
|
||||
* @author Stefan Walk <et@php.net>
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
* @link http://pear.php.net/package/Console_Color
|
||||
* @link http://pear.php.net/package/Console_Color2
|
||||
*/
|
||||
|
||||
$GLOBALS['_CONSOLE_COLOR_CODES'] = array (
|
||||
'color' => array(
|
||||
'black' => 30,
|
||||
'red' => 31,
|
||||
'green' => 32,
|
||||
'brown' => 33,
|
||||
'blue' => 34,
|
||||
'purple' => 35,
|
||||
'cyan' => 36,
|
||||
'grey' => 37,
|
||||
'yellow' => 33
|
||||
),
|
||||
'style' => array(
|
||||
'normal' => 0,
|
||||
'bold' => 1,
|
||||
'light' => 1,
|
||||
'underscore' => 4,
|
||||
'underline' => 4,
|
||||
'blink' => 5,
|
||||
'inverse' => 6,
|
||||
'hidden' => 8,
|
||||
'concealed' => 8
|
||||
),
|
||||
'background' => array(
|
||||
'black' => 40,
|
||||
'red' => 41,
|
||||
'green' => 42,
|
||||
'brown' => 43,
|
||||
'yellow' => 43,
|
||||
'blue' => 44,
|
||||
'purple' => 45,
|
||||
'cyan' => 46,
|
||||
'grey' => 47
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* A simple class to use ANSI Colorcodes.
|
||||
*
|
||||
* Of all the functions, you probably only want to use convert() and escape().
|
||||
* Of all the functions, you probably only want to use convert() and escape().
|
||||
* They are easier to use. However, if you want to access colorcodes more
|
||||
* directly, look into the other functions.
|
||||
*
|
||||
@@ -80,34 +46,84 @@ $GLOBALS['_CONSOLE_COLOR_CODES'] = array (
|
||||
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
||||
* @link http://pear.php.net/package/Console_Color
|
||||
*/
|
||||
class Console_Color
|
||||
class Console_Color2
|
||||
{
|
||||
|
||||
protected $color_codes;
|
||||
|
||||
public function __construct() {
|
||||
$this->setColorCodes(array(
|
||||
'color' => array(
|
||||
'black' => 30,
|
||||
'red' => 31,
|
||||
'green' => 32,
|
||||
'brown' => 33,
|
||||
'blue' => 34,
|
||||
'purple' => 35,
|
||||
'cyan' => 36,
|
||||
'grey' => 37,
|
||||
'yellow' => 33
|
||||
),
|
||||
'style' => array(
|
||||
'normal' => 0,
|
||||
'bold' => 1,
|
||||
'light' => 1,
|
||||
'underscore' => 4,
|
||||
'underline' => 4,
|
||||
'blink' => 5,
|
||||
'inverse' => 6,
|
||||
'hidden' => 8,
|
||||
'concealed' => 8
|
||||
),
|
||||
'background' => array(
|
||||
'black' => 40,
|
||||
'red' => 41,
|
||||
'green' => 42,
|
||||
'brown' => 43,
|
||||
'yellow' => 43,
|
||||
'blue' => 44,
|
||||
'purple' => 45,
|
||||
'cyan' => 46,
|
||||
'grey' => 47
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public function setColorCodes($color_codes)
|
||||
{
|
||||
$this->color_codes = $color_codes;
|
||||
}
|
||||
|
||||
public function getColorCodes()
|
||||
{
|
||||
return $this->color_codes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an ANSI-Controlcode
|
||||
*
|
||||
*
|
||||
* Takes 1 to 3 Arguments: either 1 to 3 strings containing the name of the
|
||||
* FG Color, style and BG color, or one array with the indices color, style
|
||||
* or background.
|
||||
*
|
||||
* @param mixed $color Optional.
|
||||
* Either a string with the name of the foreground
|
||||
* color, or an array with the indices 'color',
|
||||
* color, or an array with the indices 'color',
|
||||
* 'style', 'background' and corresponding names as
|
||||
* values.
|
||||
* @param string $style Optional name of the style
|
||||
* @param string $background Optional name of the background color
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
function color($color = null, $style = null, $background = null) // {{{
|
||||
public function color($color = null, $style = null, $background = null) // {{{
|
||||
{
|
||||
$colors = &$GLOBALS['_CONSOLE_COLOR_CODES'];
|
||||
$colors = $this->getColorCodes();
|
||||
if (is_array($color)) {
|
||||
$style = @$color['style'];
|
||||
$background = @$color['background'];
|
||||
$color = @$color['color'];
|
||||
$style = isset($color['style']) ? $color['style'] : null;
|
||||
$background = isset($color['background']) ? $color['background'] : null;
|
||||
$color = isset($color['color']) ? $color['color'] : null;
|
||||
}
|
||||
|
||||
if ($color == 'reset') {
|
||||
@@ -115,14 +131,14 @@ class Console_Color
|
||||
}
|
||||
|
||||
$code = array();
|
||||
if (isset($color)) {
|
||||
$code[] = $colors['color'][$color];
|
||||
}
|
||||
|
||||
if (isset($style)) {
|
||||
$code[] = $colors['style'][$style];
|
||||
}
|
||||
|
||||
if (isset($color)) {
|
||||
$code[] = $colors['color'][$color];
|
||||
}
|
||||
|
||||
if (isset($background)) {
|
||||
$code[] = $colors['background'][$background];
|
||||
}
|
||||
@@ -140,40 +156,25 @@ class Console_Color
|
||||
*
|
||||
* @param string $name Name of controlcode
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
function fgcolor($name)
|
||||
public function fgcolor($name)
|
||||
{
|
||||
$colors = &$GLOBALS['_CONSOLE_COLOR_CODES'];
|
||||
$colors = $this->getColorCodes();
|
||||
|
||||
return "\033[".$colors['color'][$name].'m';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a style controlcode
|
||||
*
|
||||
* @param string $name Name of controlcode
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
function style($name)
|
||||
{
|
||||
$colors = &$GLOBALS['_CONSOLE_COLOR_CODES'];
|
||||
return "\033[".$colors['style'][$name].'m';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a BG color controlcode
|
||||
*
|
||||
* @param string $name Name of controlcode
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
function bgcolor($name)
|
||||
{
|
||||
$colors = &$GLOBALS['_CONSOLE_COLOR_CODES'];
|
||||
$colors = $this->getColorCodes();
|
||||
return "\033[".$colors['background'][$name].'m';
|
||||
}
|
||||
|
||||
@@ -181,7 +182,7 @@ class Console_Color
|
||||
* Converts colorcodes in the format %y (for yellow) into ansi-control
|
||||
* codes. The conversion table is: ('bold' meaning 'light' on some
|
||||
* terminals). It's almost the same conversion table irssi uses.
|
||||
* <pre>
|
||||
* <pre>
|
||||
* text text background
|
||||
* ------------------------------------------------
|
||||
* %k %K %0 black dark grey black
|
||||
@@ -209,23 +210,22 @@ class Console_Color
|
||||
* @param string $string String to convert
|
||||
* @param bool $colored Should the string be colored?
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
function convert($string, $colored = true)
|
||||
public function convert($string, $colored = true)
|
||||
{
|
||||
static $conversions = array ( // static so the array doesn't get built
|
||||
// everytime
|
||||
// %y - yellow, and so on... {{{
|
||||
'%y' => array('color' => 'yellow'),
|
||||
'%g' => array('color' => 'green' ),
|
||||
'%b' => array('color' => 'blue' ),
|
||||
'%r' => array('color' => 'red' ),
|
||||
'%p' => array('color' => 'purple'),
|
||||
'%m' => array('color' => 'purple'),
|
||||
'%c' => array('color' => 'cyan' ),
|
||||
'%w' => array('color' => 'grey' ),
|
||||
'%k' => array('color' => 'black' ),
|
||||
'%y' => array('color' => 'yellow', 'style' => 'normal'),
|
||||
'%g' => array('color' => 'green', 'style' => 'normal'),
|
||||
'%b' => array('color' => 'blue', 'style' => 'normal'),
|
||||
'%r' => array('color' => 'red', 'style' => 'normal'),
|
||||
'%p' => array('color' => 'purple', 'style' => 'normal'),
|
||||
'%m' => array('color' => 'purple', 'style' => 'normal'),
|
||||
'%c' => array('color' => 'cyan', 'style' => 'normal'),
|
||||
'%w' => array('color' => 'grey', 'style' => 'normal'),
|
||||
'%k' => array('color' => 'black', 'style' => 'normal'),
|
||||
'%n' => array('color' => 'reset' ),
|
||||
'%Y' => array('color' => 'yellow', 'style' => 'light'),
|
||||
'%G' => array('color' => 'green', 'style' => 'light'),
|
||||
@@ -257,7 +257,7 @@ class Console_Color
|
||||
if ($colored) {
|
||||
$string = str_replace('%%', '% ', $string);
|
||||
foreach ($conversions as $key => $value) {
|
||||
$string = str_replace($key, Console_Color::color($value),
|
||||
$string = str_replace($key, $this->color($value),
|
||||
$string);
|
||||
}
|
||||
$string = str_replace('% ', '%', $string);
|
||||
@@ -271,13 +271,12 @@ class Console_Color
|
||||
|
||||
/**
|
||||
* Escapes % so they don't get interpreted as color codes
|
||||
*
|
||||
*
|
||||
* @param string $string String to escape
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
function escape($string)
|
||||
public function escape($string)
|
||||
{
|
||||
return str_replace('%', '%%', $string);
|
||||
}
|
||||
@@ -290,10 +289,9 @@ class Console_Color
|
||||
* @acess public
|
||||
* @return string
|
||||
*/
|
||||
function strip($string)
|
||||
public function strip($string)
|
||||
{
|
||||
return preg_replace('/\033\[[\d;]+m/', '', $string);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user