File indexing completed on 2024-05-12 06:02:11

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 class Local_Validate_PartialUrl extends Zend_Validate_Abstract
0024 {
0025 
0026     const INVALID_URL = 'invalidUrl';
0027 
0028     protected $_messageTemplates = array(
0029         self::INVALID_URL => "'%value%' is not a valid URL. Please check your input."
0030     );
0031 
0032     public function isValid($value)
0033     {
0034         $valueString = ( string )$value;
0035         $this->_setValue($valueString);
0036 
0037         Zend_Uri::setConfig(array('allow_unwise' => true));
0038 
0039         // Check if the url contain the words http:// or https://
0040         if (strpos($value, 'http://') !== false || strpos($value, 'https://') !== false) {
0041             $isValidURL = Zend_Uri::check($value);
0042         } else {
0043             $isValidURL = Zend_Uri::check('http://' . $value);
0044         }
0045 
0046         if (false == $isValidURL) {
0047             $this->_error(self::INVALID_URL);
0048             return false;
0049         }
0050 
0051         return true;
0052     }
0053 
0054 }