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 пол текущего слова