File indexing completed on 2024-12-29 05:24:30

0001 <?php
0002 
0003 /**
0004  *  ocs-webserver
0005  *
0006  *  Copyright 2016 by pling GmbH.
0007  *
0008  *    This file is part of ocs-webserver.
0009  *
0010  *    This program is free software: you can redistribute it and/or modify
0011  *    it under the terms of the GNU Affero General Public License as
0012  *    published by the Free Software Foundation, either version 3 of the
0013  *    License, or (at your option) any later version.
0014  *
0015  *    This program is distributed in the hope that it will be useful,
0016  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0017  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0018  *    GNU Affero General Public License for more details.
0019  *
0020  *    You should have received a copy of the GNU Affero General Public License
0021  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0022  *
0023  * Created: 07.07.2017
0024  */
0025 class Default_Form_Validator_Category extends Zend_Validate_Abstract
0026 {
0027 
0028     const ERROR_CAT_NOT_THE_LAST = 'cat_not_last';
0029 
0030     /**
0031      * @var array Message templates
0032      */
0033     protected $_messageTemplates = array(
0034         self::ERROR_CAT_NOT_THE_LAST => "Please select a children for this category.",
0035     );
0036 
0037     /**
0038      *  This method will check if the given cat_id has no children and is the last in hierarchy
0039      *
0040      * @param  mixed $value
0041      *
0042      * @return boolean
0043      * @throws Zend_Validate_Exception If validation of $value is impossible
0044      */
0045     public function isValid($value)
0046     {
0047         $valid = true;
0048         $this->_setValue($value);
0049 
0050         $tableCat = new Default_Model_DbTable_ProjectCategory();
0051         $catChildIds = $tableCat->fetchChildIds($value);
0052         if (count($catChildIds)) {
0053             $valid = false;
0054             $this->_error(self::ERROR_CAT_NOT_THE_LAST);
0055         }
0056 
0057         return $valid;
0058     }
0059 
0060 }