<?php
/**
* This file is part of the easy-CMS project.
* easy-CMS is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* 
* easy-CMS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License
* along with easy-CMS; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

include_once('config.inc.php');
include_once('classes/core/CoreObject.class.php');


/**
* Allows texts operations and outputs.
*
* @access   private
* @author	Cedric Francoys <cedric.francoys@easy-cms.org>
* @version	Text.class, Sun Nov 28 13:27:39 CET 2004
* @package	Types
*/
class Text extends CoreObject {

  var $value;

	function Text($value = '') {
		$this->setValue($value);
  }

  function setValue(&$value) {
    $this->value = &$value;
  }

  function getType() {
    return EASY_CMS_TYPE_TEXT;
  }
		
  function compareTo(&$textObj){
    return strcmp($this->getValue(), $textObj->getValue());
  }
	
  function &getValue() {
    return $this->value;
  }

  function append($value) {
    $this->value .= $value;
  }

  function appendText($textObj) {
    $value = $textObj->getValue();
    $this->append($value);
  }

  function appendFile($fileName) {
    $this->append(implode('', file($fileName)));
  }

  function getTeaser($length) {
    $res = substr($this->text, 0, $length);
    if (strlen($this->text) > $length) $res .= ".";
    return $res;
  }

  function toString() {
    return $this->getValue();
  }

  function toXML() {
    return '<![CDATA['.$this->getValue().']]>';
  }

  function toSQL() {
		return $this->html_encode($this->getValue(), false);
  }
}
?>