mirror of
https://github.com/phpbb/phpbb.git
synced 2025-04-26 18:43:33 +02:00
Go away evil carriage returns\!
git-svn-id: file:///svn/phpbb/trunk@8477 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
22c304092e
commit
195cd7e148
@ -1,298 +1,298 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @version
|
||||
* @copyright (c) 2005 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
if (!defined('IN_PHPBB'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formatted text class to handle any text that can contain BBCodes, smielys, magic URLs or under word censor.
|
||||
*/
|
||||
class formatted_text
|
||||
{
|
||||
/**
|
||||
* Unformated text.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $text;
|
||||
|
||||
/**
|
||||
* Internal representation (first_pass data).
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $meta;
|
||||
|
||||
/**
|
||||
* Formatting options as bit flag.
|
||||
*
|
||||
* @see bbcode_parser
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $flags;
|
||||
|
||||
/**
|
||||
* Compiled $text. For dispaly.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $compiled;
|
||||
|
||||
/**
|
||||
* Set to true if text, meta or flags have been changed, false otherwise.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $changed;
|
||||
|
||||
/**
|
||||
* DB table to update
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $update_table = '';
|
||||
|
||||
/**
|
||||
* Column in $update_table to update.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $update_column = '';
|
||||
|
||||
/**
|
||||
* Where clause for auto update.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $update_where = '';
|
||||
|
||||
/**
|
||||
* Creates a new instance.
|
||||
*
|
||||
* @param string $text
|
||||
* @param string $meta
|
||||
* @param int $flags
|
||||
*/
|
||||
public function __construct($text, $meta = '', $flags = 0)
|
||||
{
|
||||
$this->text = $text;
|
||||
$this->meta = $meta;
|
||||
$this->flags = $flags;
|
||||
$this->compiled = '';
|
||||
|
||||
if ($meta == '')
|
||||
{
|
||||
$this->changed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->changed = false;
|
||||
}
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
if ($this->changed && $this->update_table)
|
||||
{
|
||||
$this->to_db($this->update_table, $this->update_column, $this->update_where);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convieniently initialize a formatted_text object from
|
||||
* a database result set. The array must contain the following indexes:
|
||||
* $column, {$column}_meta and {$column}_flags
|
||||
*
|
||||
*
|
||||
* @param array $data
|
||||
* @param string $column
|
||||
* @return formatted_text
|
||||
*/
|
||||
public static function from_db_data(array $data, $column)
|
||||
{
|
||||
return new formatted_text($data[$column], $data[$column . '_meta'], (int) $data[$column . '_flags']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the $text formatted, ready to be displayed on a webpage.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function to_display()
|
||||
{
|
||||
$this->set_compiled();
|
||||
return $this->compiled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates $table, sets $column, {$column}_meta and {$column}_flags.
|
||||
* All 3 columns must exist.
|
||||
*
|
||||
* @param string $table
|
||||
* @param string $column
|
||||
* @param string $where
|
||||
* @return bool
|
||||
*/
|
||||
public function to_db($table, $column, $where = '1')
|
||||
{
|
||||
global $db;
|
||||
$this->changed = false;
|
||||
|
||||
$sql = 'UPDATE ' . $table . ' SET ' . $db->sql_build_query('UPDATE', $this->to_db_data($column))
|
||||
. ' WHERE ' . $where;
|
||||
return (bool) $db->sql_query($sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array containing $column, {$column}_meta and {$column}_flags
|
||||
* indexes to be used with query generating functions.
|
||||
*
|
||||
* @param string $column
|
||||
* @return array
|
||||
*/
|
||||
public function to_db_data($column)
|
||||
{
|
||||
$this->set_meta();
|
||||
return array($column => $this->text, $column . '_meta' => $this->meta, $column . '_flags' => $this->flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable automatic database update on
|
||||
*
|
||||
* @param string $table
|
||||
* @param string $column
|
||||
* @param string $where
|
||||
*/
|
||||
public function set_auto_update($table, $column, $where = '1')
|
||||
{
|
||||
$this->update_table = $table;
|
||||
$this->update_column = $column;
|
||||
$this->update_where = $where;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets $meta if not set.
|
||||
*/
|
||||
private function set_meta()
|
||||
{
|
||||
if (strlen($this->meta))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$parser = new phpbb_bbcode_parser;
|
||||
$this->meta = $parser->first_pass($this->text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets $compiled if not set.
|
||||
*/
|
||||
private function set_compiled()
|
||||
{
|
||||
$this->set_meta();
|
||||
|
||||
if (strlen($this->compiled))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$parser = new phpbb_bbcode_parser;
|
||||
$parser->set_flags($this->flags);
|
||||
$this->compiled = $parser->second_pass($this->meta);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets $text.
|
||||
*
|
||||
* @param string $text
|
||||
*/
|
||||
public function set_text($text)
|
||||
{
|
||||
if ($this->text != $text)
|
||||
{
|
||||
$this->text = (string) $text;
|
||||
$this->meta = '';
|
||||
$this->compiled = '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets $flags.
|
||||
*
|
||||
* @param int $flags
|
||||
*/
|
||||
public function set_flags($flags)
|
||||
{
|
||||
$flags = (int) $flags;
|
||||
if ($this->flags != $flags)
|
||||
{
|
||||
$this->flags = $flags;
|
||||
$this->compiled = '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current text.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_text()
|
||||
{
|
||||
return $this->text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current(!!) metadata.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_meta()
|
||||
{
|
||||
return $this->meta;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current flags.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_flags()
|
||||
{
|
||||
return $this->flags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if $this is equal to $other.
|
||||
* Objects are only equal if $text and $flags are equal.
|
||||
*
|
||||
* @param formatted_text $other
|
||||
* @return bool
|
||||
*/
|
||||
public function eq(formatted_text $other)
|
||||
{
|
||||
return $this->flags == $other->get_flags() && $this->text == $other->get_text();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast to string. Object is represented by the formatted version of $text with respect to $flags.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->to_display();
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* @package phpBB3
|
||||
* @version
|
||||
* @copyright (c) 2005 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
if (!defined('IN_PHPBB'))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Formatted text class to handle any text that can contain BBCodes, smielys, magic URLs or under word censor.
|
||||
*/
|
||||
class formatted_text
|
||||
{
|
||||
/**
|
||||
* Unformated text.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $text;
|
||||
|
||||
/**
|
||||
* Internal representation (first_pass data).
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $meta;
|
||||
|
||||
/**
|
||||
* Formatting options as bit flag.
|
||||
*
|
||||
* @see bbcode_parser
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private $flags;
|
||||
|
||||
/**
|
||||
* Compiled $text. For dispaly.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $compiled;
|
||||
|
||||
/**
|
||||
* Set to true if text, meta or flags have been changed, false otherwise.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $changed;
|
||||
|
||||
/**
|
||||
* DB table to update
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $update_table = '';
|
||||
|
||||
/**
|
||||
* Column in $update_table to update.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $update_column = '';
|
||||
|
||||
/**
|
||||
* Where clause for auto update.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $update_where = '';
|
||||
|
||||
/**
|
||||
* Creates a new instance.
|
||||
*
|
||||
* @param string $text
|
||||
* @param string $meta
|
||||
* @param int $flags
|
||||
*/
|
||||
public function __construct($text, $meta = '', $flags = 0)
|
||||
{
|
||||
$this->text = $text;
|
||||
$this->meta = $meta;
|
||||
$this->flags = $flags;
|
||||
$this->compiled = '';
|
||||
|
||||
if ($meta == '')
|
||||
{
|
||||
$this->changed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->changed = false;
|
||||
}
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
if ($this->changed && $this->update_table)
|
||||
{
|
||||
$this->to_db($this->update_table, $this->update_column, $this->update_where);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convieniently initialize a formatted_text object from
|
||||
* a database result set. The array must contain the following indexes:
|
||||
* $column, {$column}_meta and {$column}_flags
|
||||
*
|
||||
*
|
||||
* @param array $data
|
||||
* @param string $column
|
||||
* @return formatted_text
|
||||
*/
|
||||
public static function from_db_data(array $data, $column)
|
||||
{
|
||||
return new formatted_text($data[$column], $data[$column . '_meta'], (int) $data[$column . '_flags']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the $text formatted, ready to be displayed on a webpage.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function to_display()
|
||||
{
|
||||
$this->set_compiled();
|
||||
return $this->compiled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates $table, sets $column, {$column}_meta and {$column}_flags.
|
||||
* All 3 columns must exist.
|
||||
*
|
||||
* @param string $table
|
||||
* @param string $column
|
||||
* @param string $where
|
||||
* @return bool
|
||||
*/
|
||||
public function to_db($table, $column, $where = '1')
|
||||
{
|
||||
global $db;
|
||||
$this->changed = false;
|
||||
|
||||
$sql = 'UPDATE ' . $table . ' SET ' . $db->sql_build_query('UPDATE', $this->to_db_data($column))
|
||||
. ' WHERE ' . $where;
|
||||
return (bool) $db->sql_query($sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array containing $column, {$column}_meta and {$column}_flags
|
||||
* indexes to be used with query generating functions.
|
||||
*
|
||||
* @param string $column
|
||||
* @return array
|
||||
*/
|
||||
public function to_db_data($column)
|
||||
{
|
||||
$this->set_meta();
|
||||
return array($column => $this->text, $column . '_meta' => $this->meta, $column . '_flags' => $this->flags);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable automatic database update on
|
||||
*
|
||||
* @param string $table
|
||||
* @param string $column
|
||||
* @param string $where
|
||||
*/
|
||||
public function set_auto_update($table, $column, $where = '1')
|
||||
{
|
||||
$this->update_table = $table;
|
||||
$this->update_column = $column;
|
||||
$this->update_where = $where;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets $meta if not set.
|
||||
*/
|
||||
private function set_meta()
|
||||
{
|
||||
if (strlen($this->meta))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$parser = new phpbb_bbcode_parser;
|
||||
$this->meta = $parser->first_pass($this->text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets $compiled if not set.
|
||||
*/
|
||||
private function set_compiled()
|
||||
{
|
||||
$this->set_meta();
|
||||
|
||||
if (strlen($this->compiled))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$parser = new phpbb_bbcode_parser;
|
||||
$parser->set_flags($this->flags);
|
||||
$this->compiled = $parser->second_pass($this->meta);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets $text.
|
||||
*
|
||||
* @param string $text
|
||||
*/
|
||||
public function set_text($text)
|
||||
{
|
||||
if ($this->text != $text)
|
||||
{
|
||||
$this->text = (string) $text;
|
||||
$this->meta = '';
|
||||
$this->compiled = '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets $flags.
|
||||
*
|
||||
* @param int $flags
|
||||
*/
|
||||
public function set_flags($flags)
|
||||
{
|
||||
$flags = (int) $flags;
|
||||
if ($this->flags != $flags)
|
||||
{
|
||||
$this->flags = $flags;
|
||||
$this->compiled = '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current text.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_text()
|
||||
{
|
||||
return $this->text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current(!!) metadata.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function get_meta()
|
||||
{
|
||||
return $this->meta;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current flags.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function get_flags()
|
||||
{
|
||||
return $this->flags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if $this is equal to $other.
|
||||
* Objects are only equal if $text and $flags are equal.
|
||||
*
|
||||
* @param formatted_text $other
|
||||
* @return bool
|
||||
*/
|
||||
public function eq(formatted_text $other)
|
||||
{
|
||||
return $this->flags == $other->get_flags() && $this->text == $other->get_text();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast to string. Object is represented by the formatted version of $text with respect to $flags.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return $this->to_display();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user