1
0
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:
Nils Adermann 2008-03-29 00:08:34 +00:00
parent 22c304092e
commit 195cd7e148

View File

@ -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();
}
}