<?php 
/**
* @version		$Id: categories.db.php 2593 2025-03-09 20:00:44Z IOS $
* @package		Elxis
* @subpackage	Database
* @copyright	Copyright (c) 2006-2025 Elxis CMS (httpS://www.elxis.org). All rights reserved.
* @license		Elxis Public License ( httpS://www.elxis.org/elxis-public-license.html )
* @author		Elxis Team ( httpS://www.elxis.org )
* @description 	Elxis CMS is free software. Read the license for copyright notices and details
*/

defined('_ELXIS_') or die ('Direct access to this location is not allowed.');


class categoriesDbTable extends elxisDbTable {


	/*************************************************/
	/* CONSTRUCT PARENT CLASS AND SET INITIAL VALUES */
	/*************************************************/
	public function __construct() {
		parent::__construct('#__categories', 'catid');

		$this->columns = array(
			'catid' => array('type' => 'integer', 'value' => null),
			'parent_id' => array('type' => 'integer', 'value' => 0),
			'title' => array('type' => 'string', 'value' => null),
			'seotitle' => array('type' => 'string', 'value' => null),
			'seolink' => array('type' => 'string', 'value' => null),
			'published' => array('type' => 'bit', 'value' => 0),
			'ordering' => array('type' => 'integer', 'value' => 0),
			'image' => array('type' => 'string', 'value' => null),
			'description' => array('type' => 'text', 'value' => null),
			'params' => array('type' => 'text', 'value' => null),
			'alevel' => array('type' => 'integer', 'value' => 0),
			'generator' => array('type' => 'string', 'value' => null)
		);
	}


	/**********************/
	/* CHECK ROW VALIDITY */
	/**********************/
	public function check() {
		$this->published = (int)$this->published;
		if ($this->published !== 1) { $this->published = 0; }
		$this->parent_id = (int)$this->parent_id;
		if ($this->parent_id < 0) { $this->parent_id = 0; }
		$this->ordering = (int)$this->ordering;
		if ($this->ordering < 1) { $this->ordering = 1; }
		$this->alevel = (int)$this->alevel;
		if ($this->alevel < 0) { $this->alevel = 0; }
		if ($this->alevel > 100000) { $this->alevel = 100000; }

		if (trim($this->title) == '') {
			$this->errorMsg = 'Category title can not be empty!';
			return false;
		}
		if (trim($this->seotitle) == '') {
			$this->errorMsg = 'Category seotitle can not be empty!';
			return false;
		}
        $ascii = preg_replace("/[^a-z0-9\-\_]/", '', $this->seotitle);
        if ($ascii != $this->seotitle) {
			$this->errorMsg = 'The SEO Title is invalid!';
			return false;
       	}
        if (strlen($this->seotitle) < 3) {
			$this->errorMsg = 'The SEO Title is too short!';
			return false;
       	}
		if ($this->parent_id == 0) {
			$this->seolink = $this->seotitle.'/';
		}
		if (trim($this->seolink) == '') {
			$this->errorMsg = 'Category seolink can not be empty!';
			return false;
		}

		return true;
	}
}

?>