<?php

/**

 * @copyright	Copyright (C) 2009-2011 ACYBA SARL - All rights reserved.

 * @license		http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL

 */

defined('_JEXEC') or die('Restricted access');

?>

<?php
class rulesClass extends acymailingClass{
	var $tables = array('rules');

	var $pkey = 'ruleid';

	var $errors = array();
	function getRules($all = true){

		$this->database->setQuery('SELECT * FROM `#__acymailing_rules` '.($all ? '' : 'WHERE published = 1').' ORDER BY `ordering` ASC');

		$rules = $this->database->loadObjectList();
		foreach($rules as $id => $rule){

			$rules[$id] = $this->_prepareRule($rule);

		}

		return $rules;

	}
	function get($ruleid){

		$query = 'SELECT * FROM '.acymailing_table('rules').' WHERE `ruleid` = '.intval($ruleid).' LIMIT 1';

		$this->database->setQuery($query);
		$rule = $this->database->loadObject();

		return $this->_prepareRule($rule);

	}
	function _prepareRule($rule){
		$vals = array('executed_on','action_message','action_user');

		foreach($vals as $oneVal){

			if(!empty($rule->$oneVal)) $rule->$oneVal = unserialize($rule->$oneVal);

		}
		return $rule;

	}
	function saveForm(){
    $rule = null;

    $rule->ruleid = acymailing_getCID('ruleid');

    if(empty( $rule->ruleid)){
    	$this->database->setQuery('SELECT max(ordering) FROM `#__acymailing_rules`');

		$rule->ordering = intval($this->database->loadResult()) + 1;

    }

    $rule->executed_on = '';

    $rule->action_message = '';

    $rule->action_user = '';
    $formData = JRequest::getVar( 'data', array(), '', 'array' );
    foreach($formData['rule'] as $column => $value){

    	acymailing_secureField($column);

		if(is_array($value)){

			$rule->$column = serialize($value);

		}else{

			$rule->$column = strip_tags($value);

		}

    }
    $ruleid = $this->save($rule);

    if(!$ruleid) return false;
    JRequest::setVar( 'ruleid', $ruleid);

    return true;
  }

}