コード例 #1
0
 /**
  * Validate Web Search Options
  *
  * @param  array $options
  * @return void
  * @throws Zend_Service_Exception
  */
 protected function _validateWebSearch(array $options)
 {
     $validOptions = array('appid', 'query', 'results', 'start', 'language', 'type', 'format', 'adult_ok', 'similar_ok', 'country', 'site', 'subscription', 'license', 'region');
     $this->_compareOptions($options, $validOptions);
     /**
      * @see Zend_Validate_Between
      */
     //require_once 'Zend/Validate/Between.php';
     $between = new Zend_Validate_Between(1, 100, true);
     if (isset($options['results']) && !$between->setMin(1)->setMax(100)->isValid($options['results'])) {
         /**
          * @see Zend_Service_Exception
          */
         //require_once 'Zend/Service/Exception.php';
         throw new Zend_Service_Exception("Invalid value for option 'results': {$options['results']}");
     }
     if (isset($options['start']) && !$between->setMin(1)->setMax(1000)->isValid($options['start'])) {
         /**
          * @see Zend_Service_Exception
          */
         //require_once 'Zend/Service/Exception.php';
         throw new Zend_Service_Exception("Invalid value for option 'start': {$options['start']}");
     }
     if (isset($options['language'])) {
         $this->_validateLanguage($options['language']);
     }
     $this->_validateInArray('type', $options['type'], array('all', 'any', 'phrase'));
     $this->_validateInArray('format', $options['format'], array('any', 'html', 'msword', 'pdf', 'ppt', 'rss', 'txt', 'xls'));
     if (isset($options['license'])) {
         $this->_validateInArray('license', $options['license'], array('any', 'cc_any', 'cc_commercial', 'cc_modifiable'));
     }
     if (isset($options['region'])) {
         $this->_validateInArray('region', $options['region'], array('ar', 'au', 'at', 'br', 'ca', 'ct', 'dk', 'fi', 'fr', 'de', 'in', 'id', 'it', 'my', 'mx', 'nl', 'no', 'ph', 'ru', 'sg', 'es', 'se', 'ch', 'th', 'uk', 'us'));
     }
 }
コード例 #2
0
ファイル: Yahoo.php プロジェクト: jorgenils/zend-framework
 /**
  * Validate Web Search Options
  *
  * @param array $options
  */
 protected function _validateWebSearch($options)
 {
     $valid_options = array('appid', 'query', 'results', 'start', 'language', 'type', 'format', 'adult_ok', 'similar_ok', 'country', 'site', 'subscription', 'license');
     if (!is_array($options)) {
         return;
     }
     $this->_compareOptions($options, $valid_options);
     /**
      * @see Zend_Validate_Between
      */
     require_once 'Zend/Validate/Between.php';
     $between = new Zend_Validate_Between(1, 20, true);
     if (isset($options['results'])) {
         if (!$between->setMin(1)->setMax(20)->isValid($options['results'])) {
             throw new Zend_Service_Exception($options['results'] . ' is not valid for the "results" option.');
         }
     }
     if (isset($options['start'])) {
         if (!$between->setMin(1)->setMax(1000)->isValid($options['start'])) {
             throw new Zend_Service_Exception($options['start'] . ' is not valid for the "start" option.');
         }
     }
     $this->_validateLanguage($options['language']);
     $this->_validateInArray('query type', $options['type'], array('all', 'any', 'phrase'));
     $this->_validateInArray('format', $options['format'], array('any', 'html', 'msword', 'pdf', 'ppt', 'rss', 'txt', 'xls'));
     $this->_validateInArray('license', $options['license'], array('any', 'cc_any', 'cc_commercial', 'cc_modifiable'));
 }