コード例 #1
0
 public function formValidate()
 {
     $validation = new Phalcon\Validation();
     $validation->add('name', new PresenceOf(array('message' => 'name field is required')));
     $validation->add('details', new PresenceOf(array('message' => 'details field is required')));
     $validation->add('price', new PresenceOf(array('message' => 'price field is required')));
     $validation->add('thing_condition_id', new PresenceOf(array('message' => 'condition field is required')));
     $validation->add('thing_category_id', new PresenceOf(array('message' => 'category field is required')));
     return $validation->validate($_POST);
 }
コード例 #2
0
 public function testAlreadyTakenUniquenessWithCustomMessage()
 {
     $validation = new \Phalcon\Validation();
     $uniquenessOptions = array('table' => 'users', 'column' => 'login', 'message' => 'Login already taken.');
     $uniqueness = new Uniqueness($uniquenessOptions, $this->getDbStub());
     $validation->add('login', $uniqueness);
     $messages = $validation->validate(array('login' => 'login_taken'));
     $this->assertCount(1, $messages);
     $this->assertEquals('Login already taken.', $messages[0]);
 }
コード例 #3
0
ファイル: SameAsTest.php プロジェクト: vegas-cmf/validation
 public function testException()
 {
     $validation = new \Phalcon\Validation();
     $validation->add('field1', new SameAs());
     $values = array('field1' => 'foo', 'field2' => 'foo');
     try {
         $validation->validate($values);
         throw new \Exception('Not this exception.');
     } catch (\Exception $ex) {
         $this->assertInstanceOf('Vegas\\Validation\\Validator\\SameAs\\Exception\\MatchNotSetException', $ex);
     }
 }
コード例 #4
0
ファイル: UniqueTest.php プロジェクト: vegas-cmf/validation
 public function testException()
 {
     $validation = new \Phalcon\Validation();
     $validation->add('unique', new Unique());
     $values = array('unique' => 'foo');
     try {
         $validation->validate($values);
         throw new \Exception('Not this exception.');
     } catch (\Exception $ex) {
         $this->assertInstanceOf('Vegas\\Validation\\Validator\\Unique\\Exception\\ModelNameNotSetException', $ex);
     }
 }
コード例 #5
0
 public function formValidate()
 {
     $validation = new Phalcon\Validation();
     $validation->add('name', new PresenceOf(array('message' => 'name field is required')));
     $validation->add('website', new PresenceOf(array('message' => 'website field is required')));
     $validation->add('telephone', new PresenceOf(array('message' => 'telephone field is required')));
     $validation->add('event_info', new PresenceOf(array('message' => 'event information field is required')));
     $validation->add('street', new PresenceOf(array('message' => 'street field is required')));
     $validation->add('city', new PresenceOf(array('message' => 'city field is required')));
     $validation->add('country', new PresenceOf(array('message' => 'city field is required')));
     $validation->add('category', new PresenceOf(array('message' => 'category field is required')));
     return $validation->validate($_POST);
 }
コード例 #6
0
ファイル: Extender.php プロジェクト: vegas-cmf/forms
 /**
  * @param \Vegas\Forms\Element\Cloneable\Row $row
  * @param array $values
  * @return \Phalcon\Validation\Message\Group
  */
 protected function validateRowElements(\Vegas\Forms\Element\Cloneable\Row $row, $values)
 {
     $messagesGroup = new \Phalcon\Validation\Message\Group();
     $validation = new \Phalcon\Validation();
     foreach ($row->getElements() as $key => $element) {
         if (!$element->getValidators()) {
             break;
         }
         foreach ($element->getValidators() as $validator) {
             $validation->add($key, $validator);
         }
     }
     if (count($validation->getValidators())) {
         $messagesGroup = $validation->validate($values);
     }
     return $messagesGroup;
 }
コード例 #7
0
 public function formValidate()
 {
     $validation = new Phalcon\Validation();
     $validation->add('name', new PresenceOf(array('message' => 'name field is required')));
     $validation->add('street', new PresenceOf(array('message' => 'street field is required')));
     $validation->add('city', new PresenceOf(array('message' => 'city field is required')));
     $validation->add('country_id', new PresenceOf(array('message' => 'country field is required')));
     $validation->add('details', new PresenceOf(array('message' => 'details field is required')));
     $validation->add('price', new PresenceOf(array('message' => 'price field is required')));
     $validation->add('realty_condition_id', new PresenceOf(array('message' => 'condition field is required')));
     $validation->add('realty_type_id', new PresenceOf(array('message' => 'type field is required')));
     $validation->add('house_area', new PresenceOf(array('message' => 'house area field is required')));
     $validation->add('lot_area', new PresenceOf(array('message' => 'lot area field is required')));
     $validation->add('bedrooms', new PresenceOf(array('message' => 'bedroom field is required')));
     $validation->add('bathrooms', new PresenceOf(array('message' => 'bathroom field is required')));
     $validation->add('parking', new PresenceOf(array('message' => 'parking field is required')));
     $validation->add('pets_allowed', new PresenceOf(array('message' => 'pet allowed field is required')));
     return $validation->validate($_POST);
 }
コード例 #8
0
 public function formValidate()
 {
     $validation = new Phalcon\Validation();
     $validation->add('position', new PresenceOf(array('message' => 'position field is required')));
     $validation->add('job_category_id', new PresenceOf(array('message' => 'job category field is required')));
     $validation->add('job_description', new PresenceOf(array('message' => 'job description field is required')));
     $validation->add('requirements', new PresenceOf(array('message' => 'requirements field is required')));
     $validation->add('benefits', new PresenceOf(array('message' => 'benefits field is required')));
     $validation->add('how_to_apply', new PresenceOf(array('message' => 'how to apply field is required')));
     $validation->add('logo', new PresenceOf(array('message' => 'logo/image is required')));
     $validation->add('salary_from', new PresenceOf(array('message' => 'salary from field is required')));
     $validation->add('salary_to', new PresenceOf(array('message' => 'salary to field is required')));
     $validation->add('company', new PresenceOf(array('message' => 'company field is required')));
     $validation->add('website', new PresenceOf(array('message' => 'website field is required')));
     $validation->add('telephone', new PresenceOf(array('message' => 'telephone field is required')));
     $validation->add('email', new PresenceOf(array('message' => 'email field is required')));
     $validation->add('street', new PresenceOf(array('message' => 'street field is required')));
     $validation->add('city', new PresenceOf(array('message' => 'position field is required')));
     $validation->add('country_id', new PresenceOf(array('message' => 'position field is required')));
     return $validation->validate($_POST);
 }
コード例 #9
0
ファイル: ValidationTest.php プロジェクト: noikiy/public
 public function testValidationSetLabels()
 {
     $_POST = array('email' => '', 'firstname' => '');
     $validation = new Phalcon\Validation();
     $validation->add('email', new PresenceOf(array('message' => 'The :field is required')));
     $validation->add('email', new Email(array('message' => 'The :field must be email', 'label' => 'E-mail')));
     $validation->add('firstname', new PresenceOf(array('message' => 'The :field is required')));
     $validation->add('firstname', new StringLength(array('min' => 4, 'messageMinimum' => 'The :field is too short')));
     $validation->setLabels(array('firstname' => 'First name'));
     $messages = $validation->validate($_POST);
     $expectedMessages = Phalcon\Validation\Message\Group::__set_state(array('_messages' => array(0 => Phalcon\Validation\Message::__set_state(array('_type' => 'PresenceOf', '_message' => 'The email is required', '_field' => 'email', '_code' => '0')), 1 => Phalcon\Validation\Message::__set_state(array('_type' => 'Email', '_message' => 'The E-mail must be email', '_field' => 'email', '_code' => '0')), 2 => Phalcon\Validation\Message::__set_state(array('_type' => 'PresenceOf', '_message' => 'The First name is required', '_field' => 'firstname', '_code' => '0')), 3 => Phalcon\Validation\Message::__set_state(array('_type' => 'TooShort', '_message' => 'The First name is too short', '_field' => 'firstname', '_code' => '0')))));
     $this->assertEquals($expectedMessages, $messages);
 }
$validation->add('name', new Phalcon\Validation\Validator\StringLength(array('min' => 5, 'messageMinimum' => 'Значение поля name слишком короткое')));
/**
 * Аналогичный пример, но для проверки на максимальный размер строки в 10 символов
 */
$validation->add('name2', new Phalcon\Validation\Validator\StringLength(array('max' => 10, 'messageMaximum' => 'Значение поля name2 слишком длинное')));
/**
 * Можно указывать сразу и минимальную и максимальную длину строки
 */
$validation->add('name3', new Phalcon\Validation\Validator\StringLength(array('min' => 5, 'max' => 10)));
/**
 * Тексты сообщений при несоответсвии условиям длины строки так же можно указывать для каждого случая
 */
$validation->add('name4', new Phalcon\Validation\Validator\StringLength(array('min' => 5, 'max' => 10, 'messageMinimum' => 'Значение поля name4 слишком короткое', 'messageMaximum' => 'Значение поля name4 слишком длинное')));
/**
 * Тестовый набор данных для валидации
 */
$fields = ['name' => 'Привет!', 'name2' => 'тут', 'name3' => 'идёт работа с валидатором', 'name4' => 'длины строк'];
$messages = $validation->validate($fields);
if (count($messages)) {
    foreach ($messages as $message) {
        echo $message, PHP_EOL;
    }
} else {
    echo "Все строки соответсвуют условиям", PHP_EOL;
}
/**
 * Результат работы сценария будет примерно таким:
 * - Value of field 'name3' exceeds the maximum 10 characters
 * - Значение поля name4 слишком длинное
 * 
 */
コード例 #11
0
ファイル: ValidationTest.php プロジェクト: mattvb91/cphalcon
 public function testOptionAllowEmpty()
 {
     $expectedMessages = Phalcon\Validation\Message\Group::__set_state(array('_messages' => array(0 => Phalcon\Validation\Message::__set_state(array('_type' => 'Confirmation', '_message' => 'Field password must be the same as password2', '_field' => 'password', '_code' => '0')))));
     // allowEmpty: true
     $validation = new Phalcon\Validation();
     $validation->add('password', new Confirmation(array('allowEmpty' => true, 'with' => 'password2')));
     $this->assertEquals(count($validation->validate(array('password' => 'test123', 'password2' => 'test123'))), 0);
     $this->assertEquals(count($validation->validate(array('password' => null, 'password2' => 'test123'))), 0);
     // END
     // allowEmpty: false
     $validation = new Phalcon\Validation();
     $validation->add('password', new Confirmation(array('allowEmpty' => false, 'with' => 'password2')));
     $this->assertEquals(count($validation->validate(array('password' => 'test123', 'password2' => 'test123'))), 0);
     $messages = $validation->validate(array('password' => null, 'password2' => 'test123'));
     $this->assertEquals(count($messages), 1);
     $this->assertEquals($messages, $expectedMessages);
     // END
     // allowEmpty: DEFAULT
     $validation = new Phalcon\Validation();
     $validation->add('password', new Confirmation(array('with' => 'password2')));
     $this->assertEquals(count($validation->validate(array('password' => 'test123', 'password2' => 'test123'))), 0);
     $messages = $validation->validate(array('password' => null, 'password2' => 'test123'));
     $this->assertEquals(count($messages), 1);
     $this->assertEquals($messages, $expectedMessages);
     // END
 }
コード例 #12
0
ファイル: User.php プロジェクト: andresfranco/Phalcontest
 public function beforeValidationOnCreate()
 {
     $confirm_data = ['password' => $this->getPassword(), 'confirm_password' => $this->getConfirm_password()];
     $validator = new Phalcon\Validation();
     $validator->add('password', new \Phalcon\Validation\Validator\Confirmation(array('message' => $this->di->get('translate')->_('user.equal.confirm_password'), 'with' => 'confirm_password')));
     $messages = $validator->validate($confirm_data);
     if (count($messages)) {
         foreach ($messages as $message) {
             $model_message = new Phalcon\Mvc\Model\Message($message->getMessage(), 'password', 'confirm_password');
             $this->appendMessage($model_message);
         }
         return false;
     } else {
         return true;
     }
 }
コード例 #13
0
ファイル: BaseModel.php プロジェクト: 8191/opnsense-core
 /**
  * validate full model using all fields and data in a single (1 deep) array
  * @param bool $validateFullModel validate full model or only changed fields
  * @return \Phalcon\Validation\Message\Group
  */
 public function performValidation($validateFullModel = false)
 {
     // create a Phalcon validator and collect all model validations
     $validation = new \Phalcon\Validation();
     $validation_data = array();
     $all_nodes = $this->internalData->getFlatNodes();
     foreach ($all_nodes as $key => $node) {
         if ($validateFullModel || $node->isFieldChanged()) {
             $node_validators = $node->getValidators();
             foreach ($node_validators as $item_validator) {
                 $validation->add($key, $item_validator);
             }
             if (count($node_validators) > 0) {
                 $validation_data[$key] = $node->__toString();
             }
         }
     }
     if (count($validation_data) > 0) {
         $messages = $validation->validate($validation_data);
     } else {
         $messages = new \Phalcon\Validation\Message\Group();
     }
     return $messages;
 }
コード例 #14
0
 public function updateAction()
 {
     $ans = [];
     try {
         if (!$this->request->isPost()) {
             throw new Exception('请用正确的方式访问我们的API', 99);
         }
         $validation = new Phalcon\Validation();
         $validation->add('id', new PresenceOf(['message' => 'id is needed.']));
         $validation->add('id', new Regex(['pattern' => '/[0-9]{1,10}/u', 'message' => 'please give us a number.']));
         $validation->add('name', new PresenceOf(['message' => 'name is needed']));
         $validation->add('name', new StringLength(['max' => 30, 'messageMaximum' => 'The name is too long.']));
         $messages = $validation->validate($_POST);
         foreach ($messages as $message) {
             throw new Exception($message, 102);
         }
         $id = $this->request->getPost('id');
         $name = $this->request->getPost('name');
         $userGroup = UserGroup::findFirst($id);
         if ($userGroup == null) {
             throw new Exception('id is not find', 1201);
         }
         $userGroup->id = $id;
         $userGroup->name = $name;
         $succeed = $userGroup->save();
         if ($succeed) {
             $ans['ret'] = 0;
         } else {
             foreach ($userGroup->getMessages() as $message) {
                 throw new Exception($message, 100);
             }
         }
     } catch (Exception $e) {
         $ans['ret'] = -1;
         Utils::makeError($e, $ans);
     } finally {
         echo json_encode($ans);
     }
 }
コード例 #15
0
 public function testValidationFiltering()
 {
     $validation = new Phalcon\Validation();
     $validation->setDI(new Phalcon\DI\FactoryDefault());
     $validation->add('name', new PresenceOf(array('message' => 'The name is required')))->add('email', new PresenceOf(array('message' => 'The email is required')));
     $validation->setFilters('name', 'trim');
     $validation->setFilters('email', 'trim');
     $_POST = array('name' => '  ', 'email' => '    ');
     $messages = $validation->validate($_POST);
     $this->assertEquals(count($messages), 2);
     $filtered = $messages->filter('email');
     $expectedMessages = array(0 => Phalcon\Validation\Message::__set_state(array('_type' => 'PresenceOf', '_message' => 'The email is required', '_field' => 'email')));
     $this->assertEquals($filtered, $expectedMessages);
     $_POST = array();
 }
コード例 #16
0
 public function new_businessAction()
 {
     if ($this->request->isPost()) {
         $countryId = $this->request->getPost('country_id');
         $country = Countries::findFirst(array('columns' => '*', 'conditions' => 'id LIKE :id:', 'bind' => array('id' => $countryId)));
         $countryName = '';
         if ($country) {
             $countryName = $country->country;
         }
         $address = str_replace(' ', '+', $this->request->getPost('street') . '+' . $this->request->getPost('city') . '+' . $countryName);
         $userSession = $this->session->get("userSession");
         $content = file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address=' . $address . '&key=AIzaSyAbpLPfBH8sNdVSzMULD_BZN9qrAqbL3V8');
         $json = json_decode($content, true);
         $lat = $json['results'][0]['geometry']['location']['lat'];
         $lng = $json['results'][0]['geometry']['location']['lng'];
         //error_log('LAT : '.$lat.' LONG : '.$lng);
         $validation = new Phalcon\Validation();
         $validation->add('name', new PresenceOf(array('message' => 'name field is required is required')));
         $validation->add('street', new PresenceOf(array('message' => 'street field is required')));
         $validation->add('city', new PresenceOf(array('message' => 'city field is required')));
         $validation->add('country_id', new PresenceOf(array('message' => 'country field is required')));
         $validation->add('rate', new PresenceOf(array('message' => 'rate field is required')));
         $messages = $validation->validate($_POST);
         if (count($messages)) {
             $this->view->disable();
             $errorMsg = '';
             foreach ($messages as $msg) {
                 $errorMsg .= $msg . "<br>";
             }
             $this->flash->error('<button type="button" class="close" data-dismiss="alert">×</button>' . $errorMsg);
             return $this->response->redirect('review/new_business/');
         } else {
             $this->view->disable();
             echo "validation is either failed or passed";
         }
         $business = new Business();
         $business->created = date('Y-m-d H:i:s');
         $business->modified = date('Y-m-d H:i:s');
         $business->member_id = $userSession['id'];
         $business->name = $this->request->getPost('name');
         $business->website = $this->request->getPost('website');
         $business->telephone = $this->request->getPost('telephone');
         $business->street = $this->request->getPost('street');
         $business->city = $this->request->getPost('city');
         $business->country_id = $this->request->getPost('country_id');
         $business->lat = $lat;
         $business->lng = $lng;
         $business->average_rate = $this->request->getPost('rate');
         if (!empty($this->request->getPost('review'))) {
             $business->total_review = 1;
         }
         $opened = '';
         if (!empty($this->request->getPost('opened'))) {
             $opened = 'Opened';
         }
         if (empty($this->request->getPost('opened'))) {
             $opened = 'Opening Soon';
         }
         $business->opened = $opened;
         //$business->business_category_id = $this->request->getPost('business_category_id');
         // $business->business_sub_category_id = $this->request->getPost('business_sub_category_id');
         // $business->business_asub_category_id = $this->request->getPost('business_asub_category_id');
         if ($business->create()) {
             $id = $business->id;
             if (!empty($this->request->getPost('business_category_ids'))) {
                 $bCtegories = $this->request->getPost('business_category_ids');
                 $bCtegoryIds = explode(',', $bCtegories);
                 foreach ($bCtegoryIds as $key => $bCtegoryId) {
                     $businessCategoryLists = new BusinessCategoryLists();
                     $businessCategoryLists->created = date('Y-m-d H:i:s');
                     $businessCategoryLists->business_id = $id;
                     $businessCategoryLists->business_category_id = $bCtegoryId;
                     $businessCategoryLists->create();
                 }
             }
             $this->flash->success('<button type="button" class="close" data-dismiss="alert">×</button>New business has been created');
             if (!empty($this->request->getPost('review'))) {
                 $review = new Reviews();
                 $review->created = date('Y-m-d H:i:s');
                 $review->modified = date('Y-m-d H:i:s');
                 $review->member_id = $userSession['id'];
                 $review->business_id = $business->id;
                 $review->content = $this->request->getPost('review');
                 $review->rate = $this->request->getPost('rate');
                 if ($review->create()) {
                     $this->flash->success('<button type="button" class="close" data-dismiss="alert">×</button>You\'re review has been submitted.');
                 }
             }
             return $this->response->redirect('business/view/' . $id);
         }
     }
     $countries = Countries::find();
     $this->view->setVar('countries', $countries);
     $businessCategories = BusinessCategories::find();
     $this->view->setVar('businessCategories', $businessCategories);
 }
コード例 #17
0
 public function newAction()
 {
     if ($this->request->isPost()) {
         // validation
         $validation = new Phalcon\Validation();
         $validation->add('name', new PresenceOf(array('message' => 'name field is required')));
         $validation->add('location', new PresenceOf(array('message' => 'location field is required')));
         $validation->add('details', new PresenceOf(array('message' => 'details field is required')));
         $validation->add('price', new PresenceOf(array('message' => 'price field is required')));
         $validation->add('brand', new PresenceOf(array('message' => 'brand field is required')));
         $validation->add('model', new PresenceOf(array('message' => 'model field is required')));
         $validation->add('year_model', new PresenceOf(array('message' => 'year model field is required')));
         $validation->add('condition', new PresenceOf(array('message' => 'condition field is required')));
         $validation->add('body_type', new PresenceOf(array('message' => 'body type field is required')));
         $validation->add('transmission', new PresenceOf(array('message' => 'transmission field is required')));
         $validation->add('mileage', new PresenceOf(array('message' => 'mileage field is required')));
         $validation->add('fuel_type', new PresenceOf(array('message' => 'fuel type field is required')));
         $messages = $validation->validate($_POST);
         if (count($messages)) {
             $this->view->disable();
             $errorMsg = '';
             foreach ($messages as $msg) {
                 $errorMsg .= $msg . "<br>";
             }
             $this->flash->error('<button type="button" class="close" data-dismiss="alert">×</button>' . $errorMsg);
             return $this->response->redirect('car_and_truck/new/');
         } else {
             $this->view->disable();
             echo "validation is either failed or passed";
         }
         $name = $this->request->getPost('name');
         $location = $this->request->getPost("location");
         $details = $this->request->getPost("details");
         $price = $this->request->getPost("price");
         $brand = $this->request->getPost("brand");
         $model = $this->request->getPost("model");
         $yearModel = $this->request->getPost("year_model");
         $condition = $this->request->getPost("condition");
         $bodyType = $this->request->getPost("body_type");
         $transmission = $this->request->getPost("transmission");
         $mileage = $this->request->getPost("mileage");
         $fuelType = $this->request->getPost("fuel_type");
         $image = $this->request->getPost('image');
         $auto = new Automotives();
         $auto->created = date('Y-m-d H:i:s');
         $auto->modified = date('Y-m-d H:i:s');
         $auto->member_id = 1;
         $auto->location = $location;
         $auto->name = $name;
         $auto->details = $details;
         $auto->price = $price;
         $auto->brand = $brand;
         $auto->model = $model;
         $auto->year_model = $yearModel;
         $auto->condition_id = $condition;
         $auto->body_type = $bodyType;
         $auto->transmission = $transmission;
         $auto->mileage = $mileage;
         $auto->fuel_type_id = $fuelType;
         $this->view->disable();
         if ($auto->create()) {
             $id = $auto->id;
             if ($this->request->hasFiles() == true) {
                 $uploads = $this->request->getUploadedFiles();
                 $isUploaded = false;
                 $ctr = 1;
                 foreach ($uploads as $upload) {
                     # define a "unique" name and a path to where our file must go
                     $fileName = $upload->getname();
                     $fileInfo = new SplFileInfo($fileName);
                     $fileExt = $fileInfo->getExtension();
                     $fileExt = strtolower($fileExt);
                     $newFileName = substr(md5(uniqid(rand(), true)), 0, 10) . date('ymdhis') . '.' . $fileExt;
                     $fileImageExt = array('jpeg', 'jpg', 'png');
                     $fileType = '';
                     $filePath = '';
                     $path = '';
                     if (in_array($fileExt, $fileImageExt)) {
                         $path = 'img/car/' . $newFileName;
                         $filePath = 'img/car/';
                         //$fileType = 'Image';
                     }
                     # move the file and simultaneously check if everything was ok
                     $upload->moveTo($path) ? $isUploaded = true : ($isUploaded = false);
                     if ($isUploaded) {
                         $thingPhotos = new AutomotivePhotos();
                         $thingPhotos->created = date('Y-m-d H:i:s');
                         $thingPhotos->modified = date('Y-m-d H:i:s');
                         $thingPhotos->member_id = 1;
                         $thingPhotos->automotive_id = $id;
                         $thingPhotos->file_path = $filePath;
                         $thingPhotos->filename = $newFileName;
                         $thingPhotos->caption = $this->request->getPost('caption');
                         $ctr++;
                         if ($thingPhotos->create()) {
                             echo "success";
                         } else {
                             print_r($thingPhotos->getMessages());
                         }
                     }
                 }
             }
         } else {
             print_r($auto->getMessages());
         }
     }
     $this->view->setVars(['carConditions' => AutomotiveConditions::find(), 'carFuels' => AutomotiveFuels::find()]);
 }
コード例 #18
0
 /**
  * @Get('/Simple/{id:[0-9]+}')
  */
 public function simple_get_gAction($id)
 {
     $ans = [];
     try {
         $validation = new Phalcon\Validation();
         $validation->add('item_id', new PresenceOf(['message' => 'item_id is needed']));
         $validation->add('item_id', new Regex(['pattern' => '/[0-9]{0,10}/u', 'message' => "item_id need a number"]));
         $messages = $validation->validate($_GET);
         if (count($messages)) {
             foreach ($messages as $message) {
                 throw new Exception($message, 102);
             }
         }
         $item_id = $this->request->getQuery('item_id');
         $simple = SurveySimple::findFirst(['item=?0 AND user_id=?1', 'bind' => [$item_id, $id]]);
         if ($simple == null) {
             throw new Exception('item can not find', 1002);
         }
         $ans['value'] = $simple->value;
     } catch (Exception $e) {
         $ans['value'] = -1;
         Utils::makeError($e, $ans);
     } finally {
         echo json_encode($ans);
     }
 }
コード例 #19
0
<?php

use Phalcon\Validation\Validator\PresenceOf, Phalcon\Validation\Validator\Email;
$validation = new Phalcon\Validation();
$validation->add('name', new PresenceOf(array('message' => 'The name is required')));
$validation->add('email', new PresenceOf(array('message' => 'The e-mail is required')));
$validation->add('email', new Email(array('message' => 'The e-mail is not valid')));
$messages = $validation->validate($_POST);
if (count($messages)) {
    foreach ($messages as $message) {
        echo $message, '<br>';
    }
}
コード例 #20
0
ファイル: ItemController.php プロジェクト: hyfjjjj/HHA-Web
 public function getAction()
 {
     $ans = [];
     try {
         if (!$this->request->isGet()) {
             throw new Exception('请用正确的方式访问我们的API', 99);
         }
         $validation = new Phalcon\Validation();
         $validation->add('group_id', new Regex(['pattern' => '/[0-9]{0,10}/u', 'message' => 'please give us a number.']));
         $validation->add('user_id', new Regex(['pattern' => '/[0-9]{0,10}/u', 'message' => 'please give us a number.']));
         $messages = $validation->validate($_GET);
         foreach ($messages as $message) {
             throw new Exception($message, 102);
         }
         $group_id = $this->request->getQuery('group_id');
         $user_id = $this->request->getQuery('user_id');
         $group_ids = [];
         if (is_null($group_id)) {
             $group_ids = $this->findGroup($user_id);
             if (is_null($group_ids) || count($group_ids) == 0) {
                 throw new Exception('请提供必要的group_id或user_id', 1103);
             }
         } else {
             $group_ids = [];
             $group_ids[0] = $group_id;
         }
         $conditions = "user_group=" . $group_ids[0];
         for ($i = 1; $i < count($group_ids); $i++) {
             $conditions .= " or user_group=" . $group_ids[$i];
         }
         $items = Item::find($conditions);
         $data = [];
         $i = 0;
         foreach ($items as $item) {
             $p = [];
             $p['id'] = $item->id;
             $p['name'] = $item->name;
             $p['unit'] = $item->unit;
             $p['type'] = $item->type;
             $p['user_group'] = $item->user_group;
             $data[$i] = $p;
             $i++;
         }
         $ans['data'] = $data;
     } catch (Exception $e) {
         $ans['data'] = -1;
         Utils::makeError($e, $ans);
     } finally {
         echo json_encode($ans);
     }
 }
コード例 #21
0
 public function editAction()
 {
     $this->assets->collection('bottom-js')->addJs('js/moment/moment.min.js')->addJs('js/moment/ru.js')->addJs('js/datetimepicker/js/bootstrap-datetimepicker.js');
     $this->assets->collection('css')->addCss('js/datetimepicker/css/bootstrap-datetimepicker.min.css');
     $id = $this->dispatcher->getParam('id');
     $banner = Banners::findFirst($id);
     if ($id && $banner) {
         if ($this->request->isPost()) {
             $old_banner_type = $banner->type;
             $old_banner_content = $banner->content;
             $data = $this->request->getPost();
             $data['target_blank'] = (bool) $this->request->get('target_blank') ? '1' : '0';
             if ($this->request->getPost('start_date')) {
                 $start_date = date_parse_from_format('d.m.Y H:i', $data['start_date']);
                 $data['start_date'] = mktime($start_date['hour'], $start_date['minute'], 0, $start_date['month'], $start_date['day'], $start_date['year']);
             }
             if ($this->request->getPost('end_date')) {
                 $end_date = date_parse_from_format('d.m.Y H:i', $data['end_date']);
                 $data['end_date'] = mktime($end_date['hour'], $end_date['minute'], 0, $end_date['month'], $end_date['day'], $end_date['year']);
             }
             if (($data['type'] == "image" || $data['type'] == "flash") && $data['source'] == "local") {
                 $data['content'] = Banners::findFirst(array('id = :id:', 'bind' => array('id' => $data['content'])))->content;
             }
             $this->db->begin();
             if ($banner->save($data, array('name', 'width', 'height', 'link', 'target_blank', 'priority', 'type', 'content', 'max_impressions', 'start_date', 'end_date', 'url_mask', 'advertiser_id')) == false) {
                 $this->db->rollback();
                 foreach ($banner->getMessages() as $message) {
                     $this->flashSession->error($message->getMessage());
                 }
             } else {
                 if (($this->request->getPost('type') == "image" || $this->request->getPost('type') == "flash") && $this->request->getPost('source') == "file") {
                     if ($this->request->hasFiles(true)) {
                         $file = $this->request->getUploadedFiles()[0];
                         $validation = new \Phalcon\Validation();
                         $validation->add('file', new UploadValid());
                         if ($this->request->getPost('type') == "image") {
                             $validation->add('file', new UploadType(array('allowed' => array('jpg', 'jpeg', 'png', 'gif'))));
                             $validation->add('file', new UploadImage());
                         } elseif ($this->request->getPost('type') == "flash") {
                             $validation->add('file', new UploadType(array('allowed' => array('swf'))));
                         }
                         $messages = $validation->validate($_FILES);
                         if (count($messages)) {
                             $this->db->rollback();
                             foreach ($validation->getMessages() as $message) {
                                 $this->flashSession->error($message->getMessage());
                             }
                         } else {
                             $extension = pathinfo($file->getName(), PATHINFO_EXTENSION);
                             $name = $banner->id . '_' . time() . '.' . $extension;
                             $file->moveTo(($this->request->getPost('type') == "image" ? $this->config->banners->imagePath : $this->config->banners->flashPath) . $name);
                             if ($banner->save(array('content' => $name)) == false) {
                                 $this->db->rollback();
                                 foreach ($banner->getMessages() as $message) {
                                     $this->flashSession->error($message->getMessage());
                                 }
                             } else {
                                 if (($old_banner_type == "image" || $old_banner_type == "flash") && !empty($old_banner_content)) {
                                     unlink(($old_banner_type == "image" ? $this->config->banners->imagePath : $this->config->banners->flashPath) . $old_banner_content);
                                 }
                                 $this->db->commit();
                             }
                         }
                     } else {
                         $this->db->rollback();
                         $this->flashSession->error("Необходимо указать файл");
                     }
                 } else {
                     $this->db->commit();
                 }
                 BannersZones::find(array("banner_id=:banner:", 'bind' => array('banner' => $banner->id)))->delete();
                 if ($this->request->getPost('zones')) {
                     foreach ($this->request->getPost('zones') as $zone) {
                         $zone = Zones::findFirst($zone);
                         if ($zone) {
                             $m = new BannersZones();
                             $m->banner_id = $banner->id;
                             $m->zone_id = $zone->id;
                             $m->create();
                         }
                     }
                 }
                 return $this->response->redirect(array('for' => 'controller', 'controller' => 'banners'));
             }
         }
         $this->view->checked_zones = $this->request->getPost('zones') ? $this->request->getPost('zones') : array_column($banner->getZones(array('columns' => array('id')))->toArray(), 'id');
         $this->view->banner = $banner;
         $this->view->pick("banners/edit");
         $this->view->title = "Редактирование баннера";
         \Phalcon\Tag::prependTitle("Редактирование баннера");
     } else {
         $this->dispatcher->forward(array("namespace" => 'App\\Controllers', "controller" => "error", "action" => "notFound"));
     }
 }
コード例 #22
0
ファイル: Form.php プロジェクト: beauteprivee/phalcon
 /**
  * Validate One Element
  *
  * @param $oElement \Phalcon\Forms\ElementInterface || \BP\Phalcon\Forms\Form
  * @param $mData
  *
  * @return \Phalcon\Validation\Message\Group
  */
 protected function validateElement($oElement, $mData)
 {
     if ($oElement instanceof \BP\Phalcon\Forms\Form) {
         return $oElement->isValid($mData, true);
     } else {
         $aValidators = $oElement->getValidators();
         for ($i = 0, $c = count($aValidators), $aPreparedValidators = []; $i < $c; $i++) {
             $aPreparedValidators[] = [$oElement->getName(), $aValidators[$i]];
         }
         if (count($aPreparedValidators) != 0) {
             $oValidation = new \Phalcon\Validation($aPreparedValidators);
         }
         $aFilters = $oElement->getFilters();
         if (count($aFilters) != 0) {
             $oValidation->setFilters($oElement->getName(), $aFilters);
         }
         return $oValidation->validate($mData);
     }
 }
コード例 #23
0
ファイル: Auth.php プロジェクト: amazingdreams/phalcon-auth
 /**
  * Register a new user using given values
  *
  * @param  array  Values
  *
  * @return  Array of error messages
  */
 public function registerUser(array $values)
 {
     $validation = new \Phalcon\Validation();
     $validation->add('username', new PresenceOf());
     $validation->add('email', new PresenceOf());
     $validation->add('email', new Email());
     $validation->add('password', new StringLength(array('min' => 8)));
     $validation->add('password', new PresenceOf());
     $validation->add('password_confirm', new PresenceOf());
     $validation->add('password_confirm', new Confirmation(array('message' => 'The passwords are not the same', 'with' => 'password')));
     $messages = $validation->validate($values);
     if (count($messages) !== 0) {
         return $messages;
     }
     $user = new $this->_className();
     $user->username = $values['username'];
     $user->password = $this->hash($values['password']);
     $user->email = $values['email'];
     $user->password_version = self::$_latest_password_version;
     $user->save();
     return $user->getMessages();
 }