diff --git a/Library/NCL.NameCase.ru.php b/Library/NCL.NameCase.ru.php index 110d51d..63394c6 100644 --- a/Library/NCL.NameCase.ru.php +++ b/Library/NCL.NameCase.ru.php @@ -1,9 +1,9 @@ setGender($man, $woman); } - - /** + + /** * Определение пола по правилам фамилий * @param NCLNameCaseWord $word обьект класса слов, для которого нужно определить пол */ @@ -571,8 +568,8 @@ class NCLNameCaseRu extends NCLNameCaseCore implements NCLNameCaseInterface $word->setGender($man, $woman); } - - /** + + /** * Определение пола по правилам отчеств * @param NCLNameCaseWord $word обьект класса слов, для которого нужно определить пол */ @@ -590,14 +587,14 @@ class NCLNameCaseRu extends NCLNameCaseCore implements NCLNameCaseInterface } } - /** + /** * Идетифицирует слово определяе имя это, или фамилия, или отчество * - N - имя * - S - фамилия * - F - отчество * @param NCLNameCaseWord $word обьект класса слов, который необходимо идентифицировать */ - protected function detectNamePart(NCLNameCaseWord $word) + protected function detectNamePart(NCLNameCaseWord $word) { $namepart = $word->getWord(); $this->setWorkingWord($namepart); diff --git a/Library/NCL.NameCase.ua.php b/Library/NCL.NameCase.ua.php index aa233b7..cbb8469 100644 --- a/Library/NCL.NameCase.ua.php +++ b/Library/NCL.NameCase.ua.php @@ -1,9 +1,9 @@ Визначення групи для іменників 2-ї відміни * 1 - тверда @@ -553,7 +546,6 @@ class NCLNameCaseUa extends NCLNameCaseCore implements NCLNameCaseInterface * Функція намагається застосувати ланцюг правил для чоловічих прізвищ * @return boolean true - якщо було задіяно правило з переліку, false - якщо правило не знайдено */ - protected function manSecondName() { return $this->RulesChain('man', array(5, 1, 2, 3, 4)); @@ -595,7 +587,7 @@ class NCLNameCaseUa extends NCLNameCaseCore implements NCLNameCaseInterface } return false; } - + /** * Визначення статі, за правилами імені * @param NCLNameCaseWord $word об’єкт класу зі словом, для якого необхідно визначити стать @@ -612,12 +604,12 @@ class NCLNameCaseUa extends NCLNameCaseCore implements NCLNameCaseInterface { $man+=0.9; } - - if($this->inNames($this->workingWord, 'Петро')) + + if ($this->inNames($this->workingWord, 'Петро')) { $man+=30; } - + if ($this->in($this->Last(2), array('он', 'ов', 'ав', 'ам', 'ол', 'ан', 'рд', 'мп', 'ко', 'ло'))) { $man+=0.5; @@ -650,7 +642,7 @@ class NCLNameCaseUa extends NCLNameCaseCore implements NCLNameCaseInterface $word->setGender($man, $woman); } - + /** * Визначення статі, за правилами прізвища * @param NCLNameCaseWord $word об’єкт класу зі словом, для якого необхідно визначити стать @@ -679,7 +671,7 @@ class NCLNameCaseUa extends NCLNameCaseCore implements NCLNameCaseInterface $word->setGender($man, $woman); } - + /** * Визначення статі, за правилами по-батькові * @param NCLNameCaseWord $word об’єкт класу зі словом, для якого необхідно визначити стать diff --git a/Library/NCL/NCLNameCaseCore.php b/Library/NCL/NCLNameCaseCore.php index cc27e5a..9da782c 100644 --- a/Library/NCL/NCLNameCaseCore.php +++ b/Library/NCL/NCLNameCaseCore.php @@ -14,7 +14,6 @@ if (!defined('NCL_DIR')) require_once NCL_DIR . '/NCL.php'; require_once NCL_DIR . '/NCLStr.php'; -require_once NCL_DIR . '/NCLNameCaseInterface.php'; require_once NCL_DIR . '/NCLNameCaseWord.php'; /** @@ -966,7 +965,7 @@ class NCLNameCaseCore extends NCL $this->AllWordCases(); return $this->getFormatted($caseNum, $format); } - + /** * Определяет пол человека по ФИО * @param string $fullname ФИО @@ -978,15 +977,109 @@ class NCLNameCaseCore extends NCL $this->splitFullName($fullname); return $this->genderAutoDetect(); } - + /** * Возвращает внутренний массив $this->words каждая запись имеет тип NCLNameCaseWord * @return array Массив всех слов в системе */ public function getWordsArray() { - return $this->words; + return $this->words; } + + /** + * Функция пытается применить цыпочку правил для мужских имен + * @return boolean true - если было использовано правило из списка, false - если правило не было найденым + */ + protected function manFirstName() + { + return false; + } + + /** + * Функция пытается применить цыпочку правил для женских имен + * @return boolean true - если было использовано правило из списка, false - если правило не было найденым + */ + protected function womanFirstName() + { + return false; + } + + /** + * Функция пытается применить цыпочку правил для мужских фамилий + * @return boolean true - если было использовано правило из списка, false - если правило не было найденым + */ + protected function manSecondName() + { + return false; + } + + /** + * Функция пытается применить цыпочку правил для женских фамилий + * @return boolean true - если было использовано правило из списка, false - если правило не было найденым + */ + protected function womanSecondName() + { + return false; + } + + /** + * Функция склоняет мужский отчества + * @return boolean true - если слово было успешно изменено, false - если не получилось этого сделать + */ + protected function manFatherName() + { + return false; + } + + /** + * Функция склоняет женские отчества + * @return boolean true - если слово было успешно изменено, false - если не получилось этого сделать + */ + protected function womanFatherName() + { + return false; + } + + /** + * Определение пола по правилам имен + * @param NCLNameCaseWord $word обьект класса слов, для которого нужно определить пол + */ + protected function GenderByFirstName(NCLNameCaseWord $word) + { + + } + + /** + * Определение пола по правилам фамилий + * @param NCLNameCaseWord $word обьект класса слов, для которого нужно определить пол + */ + protected function GenderBySecondName(NCLNameCaseWord $word) + { + + } + + /** + * Определение пола по правилам отчеств + * @param NCLNameCaseWord $word обьект класса слов, для которого нужно определить пол + */ + protected function GenderByFatherName(NCLNameCaseWord $word) + { + + } + + /** + * Идетифицирует слово определяе имя это, или фамилия, или отчество + * - N - имя + * - S - фамилия + * - F - отчество + * @param NCLNameCaseWord $word обьект класса слов, который необходимо идентифицировать + */ + protected function detectNamePart(NCLNameCaseWord $word) + { + + } + } ?> diff --git a/Library/NCL/NCLNameCaseInterface.php b/Library/NCL/NCLNameCaseInterface.php deleted file mode 100644 index c5ad5cf..0000000 --- a/Library/NCL/NCLNameCaseInterface.php +++ /dev/null @@ -1,58 +0,0 @@ - - * @version 0.4 - * @package NameCaseLib - */ -interface NCLNameCaseInterface -{ - - public function setFirstName($firstname=""); - - public function setSecondName($secondname=""); - - public function setFatherName($fathername=""); - - public function setGender($gender=0); - - public function setFullName($secondName="", $firstName="", $fatherName=""); - - public function setName($firstname=""); - - public function setLastName($secondname=""); - - public function setSirname($secondname=""); - - public function genderAutoDetect(); - - public function getFullNameFormat($fullname); - - public function getFirstNameCase($number=null); - - public function getSecondNameCase($number=null); - - public function getFatherNameCase($number=null); - - public function qFirstName($firstName, $CaseNumber=null, $gender=0); - - public function qSecondName($secondName, $CaseNumber=null, $gender=0); - - public function qFatherName($fatherName, $CaseNumber=null, $gender=0); - - public function getFormattedArray($format); - - public function getFormatted($caseNum=0, $format="S N F"); - - public function qFullName($secondName="", $firstName="", $fatherName="", $gender=0, $caseNum=0, $format="S N F"); - - public function q($fullname, $caseNum=null, $gender=null); -} - -?> diff --git a/Library/NCL/NCLNameCaseWord.php b/Library/NCL/NCLNameCaseWord.php index 61e5804..8005fd4 100644 --- a/Library/NCL/NCLNameCaseWord.php +++ b/Library/NCL/NCLNameCaseWord.php @@ -171,6 +171,20 @@ class NCLNameCaseWord return $this->NameCases; } + /** + * Возвращает строку с нужным падежом текущего слова + * @param int $number нужный падеж + * @return string строка с нужным падежом текущего слова + */ + public function getNameCase($number) + { + if(isset($this->NameCases[$number])) + { + return $this->NameCases[$number]; + } + return false; + } + /** * Расчитывает и возвращает пол текущего слова * @return int пол текущего слова