diff --git a/Doctrine/Validator/Country.class.php b/Doctrine/Validator/Country.class.php new file mode 100644 index 000000000..e3bffa041 --- /dev/null +++ b/Doctrine/Validator/Country.class.php @@ -0,0 +1,265 @@ + "Andorra", + "ae" => "United Arab Emirates", + "af" => "Afghanistan", + "ag" => "Antigua and Barbuda", + "ai" => "Anguilla", + "al" => "Albania", + "am" => "Armenia", + "an" => "Netherlands Antilles", + "ao" => "Angola", + "aq" => "Antarctica", + "ar" => "Argentina", + "as" => "American Samoa", + "at" => "Austria", + "au" => "Australia", + "aw" => "Aruba", + "az" => "Azerbaijan", + "ba" => "Bosnia Hercegovina", + "bb" => "Barbados", + "bd" => "Bangladesh", + "be" => "Belgium", + "bf" => "Burkina Faso", + "bg" => "Bulgaria", + "bh" => "Bahrain", + "bi" => "Burundi", + "bj" => "Benin", + "bm" => "Bermuda", + "bn" => "Brunei Darussalam", + "bo" => "Bolivia", + "br" => "Brazil", + "bs" => "Bahamas", + "bt" => "Bhutan", + "bv" => "Bouvet Island", + "bw" => "Botswana", + "by" => "Belarus (Byelorussia)", + "bz" => "Belize", + "ca" => "Canada", + "cc" => "Cocos Islands", + "cd" => 'Congo, The Democratic Republic of the', + "cf" => "Central African Republic", + "cg" => "Congo", + "ch" => "Switzerland", + "ci" => "Ivory Coast", + "ck" => "Cook Islands", + "cl" => "Chile", + "cm" => "Cameroon", + "cn" => "China", + "co" => "Colombia", + "cr" => "Costa Rica", + "cs" => "Czechoslovakia", + "cu" => "Cuba", + "cv" => "Cape Verde", + "cx" => "Christmas Island", + "cy" => "Cyprus", + "cz" => 'Czech Republic', + "de" => "Germany", + "dj" => "Djibouti", + "dk" => 'Denmark', + "dm" => "Dominica", + "do" => "Dominican Republic", + "dz" => "Algeria", + "ec" => "Ecuador", + "ee" => "Estonia", + "eg" => "Egypt", + "eh" => "Western Sahara", + "er" => 'Eritrea', + "es" => "Spain", + "et" => "Ethiopia", + "fi" => "Finland", + "fj" => "Fiji", + "fk" => "Falkland Islands", + "fm" => "Micronesia", + "fo" => "Faroe Islands", + "fr" => "France", + "fx" => 'France, Metropolitan FX', + "ga" => "Gabon", + "gb" => 'United Kingdom (Great Britain)', + "gd" => "Grenada", + "ge" => "Georgia", + "gf" => "French Guiana", + "gh" => "Ghana", + "gi" => "Gibraltar", + "gl" => "Greenland", + "gm" => "Gambia", + "gn" => "Guinea", + "gp" => "Guadeloupe", + "gq" => "Equatorial Guinea", + "gr" => "Greece", + "gs" => 'South Georgia and the South Sandwich Islands', + "gt" => "Guatemala", + "gu" => "Guam", + "gw" => "Guinea-bissau", + "gy" => "Guyana", + "hk" => "Hong Kong", + "hm" => "Heard and McDonald Islands", + "hn" => "Honduras", + "hr" => "Croatia", + "ht" => "Haiti", + "hu" => "Hungary", + "id" => "Indonesia", + "ie" => "Ireland", + "il" => "Israel", + "in" => "India", + "io" => "British Indian Ocean Territory", + "iq" => "Iraq", + "ir" => "Iran", + "is" => "Iceland", + "it" => "Italy", + "jm" => "Jamaica", + "jo" => "Jordan", + "jp" => "Japan", + "ke" => "Kenya", + "kg" => "Kyrgyzstan", + "kh" => "Cambodia", + "ki" => "Kiribati", + "km" => "Comoros", + "kn" => "Saint Kitts and Nevis", + "kp" => "North Korea", + "kr" => "South Korea", + "kw" => "Kuwait", + "ky" => "Cayman Islands", + "kz" => "Kazakhstan", + "la" => "Laos", + "lb" => "Lebanon", + "lc" => "Saint Lucia", + "li" => "Lichtenstein", + "lk" => "Sri Lanka", + "lr" => "Liberia", + "ls" => "Lesotho", + "lt" => "Lithuania", + "lu" => "Luxembourg", + "lv" => "Latvia", + "ly" => "Libya", + "ma" => "Morocco", + "mc" => "Monaco", + "md" => "Moldova Republic", + "mg" => "Madagascar", + "mh" => "Marshall Islands", + "mk" => 'Macedonia, The Former Yugoslav Republic of', + "ml" => "Mali", + "mm" => "Myanmar", + "mn" => "Mongolia", + "mo" => "Macau", + "mp" => "Northern Mariana Islands", + "mq" => "Martinique", + "mr" => "Mauritania", + "ms" => "Montserrat", + "mt" => "Malta", + "mu" => "Mauritius", + "mv" => "Maldives", + "mw" => "Malawi", + "mx" => "Mexico", + "my" => "Malaysia", + "mz" => "Mozambique", + "na" => "Namibia", + "nc" => "New Caledonia", + "ne" => "Niger", + "nf" => "Norfolk Island", + "ng" => "Nigeria", + "ni" => "Nicaragua", + "nl" => "Netherlands", + "no" => "Norway", + "np" => "Nepal", + "nr" => "Nauru", + "nt" => "Neutral Zone", + "nu" => "Niue", + "nz" => "New Zealand", + "om" => "Oman", + "pa" => "Panama", + "pe" => "Peru", + "pf" => "French Polynesia", + "pg" => "Papua New Guinea", + "ph" => "Philippines", + "pk" => "Pakistan", + "pl" => "Poland", + "pm" => "St. Pierre and Miquelon", + "pn" => "Pitcairn", + "pr" => "Puerto Rico", + "pt" => "Portugal", + "pw" => "Palau", + "py" => "Paraguay", + "qa" => 'Qatar', + "re" => "Reunion", + "ro" => "Romania", + "ru" => "Russia", + "rw" => "Rwanda", + "sa" => "Saudi Arabia", + "sb" => "Solomon Islands", + "sc" => "Seychelles", + "sd" => "Sudan", + "se" => "Sweden", + "sg" => "Singapore", + "sh" => "St. Helena", + "si" => "Slovenia", + "sj" => "Svalbard and Jan Mayen Islands", + "sk" => 'Slovakia (Slovak Republic)', + "sl" => "Sierra Leone", + "sm" => "San Marino", + "sn" => "Senegal", + "so" => "Somalia", + "sr" => "Suriname", + "st" => "Sao Tome and Principe", + "sv" => "El Salvador", + "sy" => "Syria", + "sz" => "Swaziland", + "tc" => "Turks and Caicos Islands", + "td" => "Chad", + "tf" => "French Southern Territories", + "tg" => "Togo", + "th" => "Thailand", + "tj" => "Tajikistan", + "tk" => "Tokelau", + "tm" => "Turkmenistan", + "tn" => "Tunisia", + "to" => "Tonga", + "tp" => "East Timor", + "tr" => "Turkey", + "tt" => "Trinidad, Tobago", + "tv" => "Tuvalu", + "tw" => "Taiwan", + "tz" => "Tanzania", + "ua" => "Ukraine", + "ug" => "Uganda", + "uk" => "United Kingdom", + "um" => "United States Minor Islands", + "us" => "United States of America", + "uy" => "Uruguay", + "uz" => "Uzbekistan", + "va" => "Vatican City", + "vc" => "Saint Vincent, Grenadines", + "ve" => "Venezuela", + "vg" => "Virgin Islands (British)", + "vi" => "Virgin Islands (USA)", + "vn" => "Viet Nam", + "vu" => "Vanuatu", + "wf" => 'Wallis and Futuna Islands', + "ws" => "Samoa", + "ye" => 'Yemen', + "yt" => 'Mayotte', + "yu" => "Yugoslavia", + "za" => "South Africa", + "zm" => "Zambia", + "zr" => "Zaire", + "zw" => "Zimbabwe"); + /** + * @return array + */ + public static function getCountries() { + return self::$countries; + } + /** + * @param Doctrine_Record $record + * @param string $key + * @param mixed $value + * @param string $args + * @return boolean + */ + public function validate(Doctrine_Record $record, $key, $value, $args) { + return isset(self::$countries[$value]); + } + +} +?> diff --git a/Doctrine/Validator/Date.class.php b/Doctrine/Validator/Date.class.php new file mode 100644 index 000000000..8606dbdfc --- /dev/null +++ b/Doctrine/Validator/Date.class.php @@ -0,0 +1,14 @@ + diff --git a/Doctrine/Validator/Email.class.php b/Doctrine/Validator/Email.class.php new file mode 100644 index 000000000..f88756918 --- /dev/null +++ b/Doctrine/Validator/Email.class.php @@ -0,0 +1,47 @@ + 64) + return false; + + if(strlen($parts[1]) < 1 || strlen($parts[1]) > 255) + return false; + + $local_array = explode(".", $parts[0]); + for ($i = 0; $i < sizeof($local_array); $i++) { + if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $parts[$i])) { + return false; + } + } + if (!ereg("^\[?[0-9\.]+\]?$", $parts[1])) { // Check if domain is IP. If not, it should be valid domain name + $domain_array = explode(".", $parts[1]); + if (count($domain_array) < 2) { + return false; // Not enough parts to domain + } + for ($i = 0; $i < sizeof($domain_array); $i++) { + if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) { + return false; + } + } + } + if(function_exists("checkdnsrr")) { + if( ! checkdnsrr($parts[1], "MX")) + return false; + } + + return true; + } +} +?> diff --git a/Doctrine/Validator/Enum.class.php b/Doctrine/Validator/Enum.class.php new file mode 100644 index 000000000..57e512c50 --- /dev/null +++ b/Doctrine/Validator/Enum.class.php @@ -0,0 +1,23 @@ + $max) + return false; + + return true; + } +} +?> diff --git a/Doctrine/Validator/Exception.php b/Doctrine/Validator/Exception.php new file mode 100644 index 000000000..8e8232ef8 --- /dev/null +++ b/Doctrine/Validator/Exception.php @@ -0,0 +1,13 @@ +validator = $validator; + } + public function getErrorStack() { + return $this->validator->getErrorStack(); + } +} +?> diff --git a/Doctrine/Validator/Htmlcolor.php b/Doctrine/Validator/Htmlcolor.php new file mode 100644 index 000000000..876719545 --- /dev/null +++ b/Doctrine/Validator/Htmlcolor.php @@ -0,0 +1,17 @@ + diff --git a/Doctrine/Validator/Interface.class.php b/Doctrine/Validator/Interface.class.php new file mode 100644 index 000000000..6ab15b219 --- /dev/null +++ b/Doctrine/Validator/Interface.class.php @@ -0,0 +1,5 @@ + diff --git a/Doctrine/Validator/Ip.php b/Doctrine/Validator/Ip.php new file mode 100644 index 000000000..2f7bc740c --- /dev/null +++ b/Doctrine/Validator/Ip.php @@ -0,0 +1,22 @@ +$v): + if(! is_numeric($v)) return false; + $v = (int) $v; + if($v < 0 || $v > 255) return false; + endforeach; + return true; + } +} +?> diff --git a/Doctrine/Validator/Nospace.php b/Doctrine/Validator/Nospace.php new file mode 100644 index 000000000..532cccf48 --- /dev/null +++ b/Doctrine/Validator/Nospace.php @@ -0,0 +1,17 @@ + diff --git a/Doctrine/Validator/Notblank.php b/Doctrine/Validator/Notblank.php new file mode 100644 index 000000000..fd83d8907 --- /dev/null +++ b/Doctrine/Validator/Notblank.php @@ -0,0 +1,21 @@ + diff --git a/Doctrine/Validator/Notnull.php b/Doctrine/Validator/Notnull.php new file mode 100644 index 000000000..f30122f8c --- /dev/null +++ b/Doctrine/Validator/Notnull.php @@ -0,0 +1,16 @@ + diff --git a/Doctrine/Validator/Protected.php b/Doctrine/Validator/Protected.php new file mode 100644 index 000000000..6595072c7 --- /dev/null +++ b/Doctrine/Validator/Protected.php @@ -0,0 +1,2 @@ + diff --git a/Doctrine/Validator/Range.php b/Doctrine/Validator/Range.php new file mode 100644 index 000000000..19bd3d3d5 --- /dev/null +++ b/Doctrine/Validator/Range.php @@ -0,0 +1,21 @@ + $e[1]) + return false; + + return true; + } +} +?> diff --git a/Doctrine/Validator/Regexp.php b/Doctrine/Validator/Regexp.php new file mode 100644 index 000000000..d66d9c309 --- /dev/null +++ b/Doctrine/Validator/Regexp.php @@ -0,0 +1,17 @@ + diff --git a/Doctrine/Validator/Required.php b/Doctrine/Validator/Required.php new file mode 100644 index 000000000..9419924aa --- /dev/null +++ b/Doctrine/Validator/Required.php @@ -0,0 +1,13 @@ + diff --git a/Doctrine/Validator/Unique.php b/Doctrine/Validator/Unique.php new file mode 100644 index 000000000..912fb92a8 --- /dev/null +++ b/Doctrine/Validator/Unique.php @@ -0,0 +1,18 @@ +getTable(); + $sql = "SELECT id FROM ".$table->getTableName()." WHERE ".$key." = ?"; + $stmt = $table->getSession()->getDBH()->prepare($sql); + $stmt->execute(array($value)); + return ( ! is_array($stmt->fetch())); + } +} +?> diff --git a/Doctrine/Validator/Usstate.php b/Doctrine/Validator/Usstate.php new file mode 100644 index 000000000..5545d32c2 --- /dev/null +++ b/Doctrine/Validator/Usstate.php @@ -0,0 +1,72 @@ + true, + "AL" => true, + "AR" => true, + "AZ" => true, + "CA" => true, + "CO" => true, + "CT" => true, + "DC" => true, + "DE" => true, + "FL" => true, + "GA" => true, + "HI" => true, + "IA" => true, + "ID" => true, + "IL" => true, + "IN" => true, + "KS" => true, + "KY" => true, + "LA" => true, + "MA" => true, + "MD" => true, + "ME" => true, + "MI" => true, + "MN" => true, + "MO" => true, + "MS" => true, + "MT" => true, + "NC" => true, + "ND" => true, + "NE" => true, + "NH" => true, + "NJ" => true, + "NM" => true, + "NV" => true, + "NY" => true, + "OH" => true, + "OK" => true, + "OR" => true, + "PA" => true, + "PR" => true, + "RI" => true, + "SC" => true, + "SD" => true, + "TN" => true, + "TX" => true, + "UT" => true, + "VA" => true, + "VI" => true, + "VT" => true, + "WA" => true, + "WI" => true, + "WV" => true, + "WY" => true + ); + public function getStates() { + return self::$states; + } + /** + * @param Doctrine_Record $record + * @param string $key + * @param mixed $value + * @param string $args + * @return boolean + */ + public function validate(Doctrine_Record $record, $key, $value, $args) { + return isset(self::$states[$value]); + } +} +?>