コード例 #1
0
 public function testValidatorScalarInvalid()
 {
     $data = array('month' => '6abc ');
     $filters = array('month' => array());
     $validators = array('month' => 'digits');
     $input = new Zend_Filter_Input($filters, $validators, $data);
     $invalid = $input->getInvalid();
     $msg = $invalid['month'][0];
     $this->assertEquals("'6abc ' contains not only digit characters", $msg);
 }
コード例 #2
0
 public function testValidatorGetInvalid()
 {
     $data = array('month' => '6abc ');
     $validators = array('month' => 'digits', 'field2' => array('digits', 'presence' => 'required'));
     $input = new Zend_Filter_Input(null, $validators, $data);
     $this->assertTrue($input->hasMissing(), 'Expected hasMissing() to return true');
     $this->assertTrue($input->hasInvalid(), 'Expected hasInvalid() to return true');
     $this->assertFalse($input->hasUnknown(), 'Expected hasUnknown() to return false');
     $this->assertFalse($input->hasValid(), 'Expected hasValid() to return false');
     $messages = $input->getMessages();
     $invalid = $input->getInvalid();
     $missing = $input->getMissing();
     $this->assertType('array', $messages);
     $this->assertEquals(array('month', 'field2'), array_keys($messages));
     $this->assertType('array', $invalid);
     $this->assertEquals(array('month'), array_keys($invalid));
     $this->assertType('array', $missing);
     $this->assertEquals(array('field2'), array_keys($missing));
     $this->assertEquals(array_merge($invalid, $missing), $messages);
 }
コード例 #3
0
ファイル: Error.php プロジェクト: ThorstenSuckow/conjoon
 /**
  * Creates a Conjoon_Error_Form based on the fields that where marked as
  * errorneous in the passed filter-instance.
  *
  * @param Zend_Filter_Input $filter
  * @param Zend_Filter_Exception $e
  *
  * @return Conjoon_Error_Form
  */
 public static function fromFilter(Zend_Filter_Input $filter, Zend_Filter_Exception $e)
 {
     $error = self::fromException($e, 'Conjoon_Error_Form');
     $fields = array();
     if ($filter->hasMissing()) {
         foreach ($filter->getMissing() as $f => $mes) {
             $fields[$f] = array_values($mes);
         }
     } else {
         if ($filter->hasInvalid()) {
             foreach ($filter->getInvalid() as $f => $mes) {
                 $fields[$f] = array_values($mes);
             }
         }
     }
     $error->setMessage("Error in user input. The following fields " . "where missing or contained invalid data: " . implode('; ', array_keys($fields)));
     $error->setLevel(self::LEVEL_WARNING);
     $error->setFields($fields);
     return $error;
 }
コード例 #4
0
 /**
  * Save changes to an existing news article, or save a new article in the database. If a new article the function will return the ID.
  *
  * @return int
  */
 private function _saveNewsArticle()
 {
     // First of all we need to validate and sanitise the input from the form
     $requiredText = new Zend_Validate();
     $requiredText->addValidator(new Zend_Validate_NotEmpty());
     // $requiredText->addValidator(new Zend_Validate_Alnum(array('allowWhiteSpace' => true)));
     $filters = array('id' => 'Digits', 'newsTitle' => 'StringTrim', 'newsDate' => 'StringTrim', 'categoryList' => 'StringTrim');
     $validators = array('id' => array('allowEmpty' => true), 'newsTitle' => $requiredText, 'newsContent' => array('allowEmpty' => true), 'newsDate' => 'NotEmpty', 'categoryList' => array('allowEmpty' => true));
     $input = new Zend_Filter_Input($filters, $validators, $_POST);
     if ($input->isValid()) {
         // Data is all valid, formatted and sanitized so we can save it in the database
         $newsArticle = new Datasource_Cms_News();
         if (!$input->id) {
             // This is a new article so we need to create a new ID
             $newsID = $newsArticle->addNew($input->newsTitle, $input->newsDate, $input->getUnescaped('newsContent'));
         } else {
             // This is an existing article so we can just update the data
             $newsArticle->saveChanges($input->id, $input->newsTitle, $input->newsDate, $input->getUnescaped('newsContent'));
             $newsID = $input->id;
         }
         // Now we need to link the page to the categories selected
         $categoryList = $input->categoryList;
         $newsArticle->saveCategories($newsID, $categoryList);
         // Changes saved - so send them back with a nice success message
         $this->_helper->getHelper('FlashMessenger')->addMessage(array('saved' => true));
         $this->_helper->getHelper('Redirector')->goToUrl('/cms-admin/news/edit?id=' . $newsID);
     } else {
         // Invalid data in form
         print_r($_POST);
         print_r($input->getErrors());
         print_r($input->getInvalid());
     }
 }