Skip to content

Commit

Permalink
Initial Commit
Browse files Browse the repository at this point in the history
  • Loading branch information
k1LoW committed Oct 19, 2012
0 parents commit a760585
Show file tree
Hide file tree
Showing 3 changed files with 121 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*~
*#
71 changes: 71 additions & 0 deletions Model/Behavior/AdditionalValidationPatternsBehavior.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?php
/**
* AdditionalValidationPatternsBehavior
*
* jpn: Cakeplus用のカスタムバリデーションパターン
*/
class AdditionalValidationPatternsBehavior extends ModelBehavior {

public $validationPatterns = array(
'required' => array(
'required' => array(
'rule' => '/.*/',
'required' => true,
'last' => true,
),
),
'notempty' => array(
'notEmpty' => array('rule' => array('notEmpty'),
'required' => false,
'last' => true
),
),
// jpn: 数値チェック用
'numeric' => array(
'numeric' => array(
'rule' => '/^[0-9]+$/',
'last' => true,
),
),

// jpn:
'zenkaku_only' => array(
'zenkakuOnly' => array(
'rule' => array('zenkakuOnly'),
'allowEmpty' => true,
'last' => true,
),
),
'katakana_only' => array(
'katakanaOnly' => array(
'rule' => array('zenkakuOnly'),
'allowEmpty' => true,
'last' => true,
),
),
'katakana_and_space' => array(
'katakanaAndSpace' => array(
'rule' => array('katakanaAndSpace'),
'allowEmpty' => true,
'last' => true,
),
),
);

/**
* setUp
*
*/
public function setUp(Model $model){
$this->mergeValidationPatterns($model);
}

/**
* mergeValidationPatterns
*
*/
private function mergeValidationPatterns(Model $model){
$model->validation_patterns = Hash::merge($this->validationPatterns, $model->validation_patterns);
}

}
48 changes: 48 additions & 0 deletions Model/Behavior/AdditionalValidationRulesBehavior.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?php
/**
* AdditionalValidationRulesBehavior
*
* jpn: 追加のバリデーションルール
*/
class AdditionalValidationRulesBehavior extends ModelBehavior {

/**
* setUp
*
* @param Model $model
*/
public function setUp(Model $model){
}

/**
* notEmptyWith
* jpn: $withに指定されたフィールドに1つでも値が入っていたらnotEmptyを発動
*
*/
public function notEmptyWith(Model $model, $field, $with = array()){
if (empty($with)) {
return true;
}
$key = key($field);
$value = array_shift($field);
$v = new Validation();
foreach ((array)$with as $withField) {
if($v->notEmpty($model->data[$model->alias][$withField])) {
return $v->notEmpty($value);
}
}
return true;
}

/**
* katakanaAndSpace
* jpn: 全角カタカナと全角スペースのみ
* @param Model $model, $field
*/
public function katakanaAndSpace(Model $model, $field){
$key = key($field);
$value = array_shift($field);
$field = array($key => preg_replace('/ /','', $value));
return $model->katakanaOnly($field);
}
}

0 comments on commit a760585

Please sign in to comment.