<?php

/**

 * Joom!Fish - Multi Lingual extention and translation manager for Joomla!

 * Copyright (C) 2003-2009 Think Network GmbH, Munich

 *

 * All rights reserved.  The Joom!Fish project is a set of extentions for

 * the content management system Joomla!. It enables Joomla!

 * to manage multi lingual sites especially in all dynamic information

 * which are stored in the database.

 *

 * This program 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.

 *

 * This program 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 this program; if not, write to the Free Software

 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.

 *

 * The "GNU General Public License" (GPL) is available at

 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

 * -----------------------------------------------------------------------------

 * $Id: ContentElementTableField.php 1391 2009-08-10 12:40:55Z geraint $

 * @package joomfish

 * @subpackage Models

 *

*/



// Don't allow direct linking

defined( 'JPATH_BASE' ) or die( 'Direct Access to this location is not allowed.' );



/**

 * Description of a table field

 *

 * @package joomfish

 * @subpackage administrator

 * @copyright 2003-2009 Think Network GmbH

 * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License

 * @version $Revision: 1296 $

 * @author Alex Kempkens <joomfish@thinknetwork.com>

 */

class ContentElementTablefield {

	var $Type='';

	var $Name='';

	var $Lable='';

	var $Translate=false;

	var $Option='';

	var $Length=30;

	var $MaxLength=80;

	var $Rows=15;

	var $Columns=30;

	var $posthandler="";

	var $prehandler="";

	var $prehandleroriginal="";

	var $prehandlertranslation="";

	

	// Can be boolean or array, if boolean defines if the buttons are displayed, if array defines a list of buttons not to show.

	var $ebuttons=true;



	// boolean to determine where to show this field if original is not blank e.g. content in modules

	var $ignoreifblank=0;

	

	/** originalValue value of the corresponding content table */

	var $originalValue;



	/** translationContent reference to the actual translation db object */

	var $translationContent;



	/** changed Flag that says if a field is changed or not */

	var $changed=false;



	/** this Flag explains if the original is empty or not */

	var $originalEmpty=false;



	/** Standard constructur

	*/

	function ContentElementTablefield( $tablefieldElement ) {

		$this->Type = trim( $tablefieldElement->getAttribute( 'type' ) );

		$this->Name = trim( $tablefieldElement->getAttribute( 'name' ) );

		$this->Lable = trim( $tablefieldElement->getText() );

		$this->Translate = trim( $tablefieldElement->getAttribute( 'translate' ) );

		$this->Option = trim( $tablefieldElement->getAttribute( 'option' ) );

		$this->Length = intval( $tablefieldElement->getAttribute( 'length' ) );

		$this->MaxLength = intval( $tablefieldElement->getAttribute( 'maxlength' ) );

		$this->Rows = intval( $tablefieldElement->getAttribute( 'rows' ) );

		$this->Columns = intval( $tablefieldElement->getAttribute( 'columns' ) );

		$this->posthandler = trim( $tablefieldElement->getAttribute( 'posthandler' ) );

		$this->prehandler = trim( $tablefieldElement->getAttribute( 'prehandler' ) );

		$this->prehandlertranslation = trim( $tablefieldElement->getAttribute( 'prehandlertranslation' ) );

		$this->prehandleroriginal = trim( $tablefieldElement->getAttribute( 'prehandleroriginal' ) );

		$this->ignoreifblank = intval( $tablefieldElement->getAttribute( 'ignoreifblank' ) );

		

		$this->ebuttons = trim( $tablefieldElement->getAttribute( 'ebuttons' ) );

		if (strpos($this->ebuttons,",")>0){

			$this->ebuttons = explode(",",$this->ebuttons);

		}

		else if ($this->ebuttons=="1"  || strtolower($this->ebuttons)=="true"){

			$this->ebuttons = true;

		}

		else if (strlen($this->ebuttons)==0) {

			$this->ebuttons = array("readmore");

		}

		else if ($this->ebuttons=="0"  || strtolower($this->ebuttons)=="false"){

			$this->ebuttons = false;

		}

		else if (strlen($this->ebuttons)>0){

			$this->ebuttons = array($this->ebuttons);

		}

	}

	

	function preHandle($element){

		if ($this->prehandler!="" && method_exists($this,$this->prehandler)){

			$prehandler=$this->prehandler;

			$this->$prehandler($element);

		}

	}

	function checkUrlType($element){

		if ($element->IndexedFields["type"]->originalValue=="url") $this->Type="text";

	}

}



?>

