diff --git a/Linse.php b/Linse.php index 61376554ede48d01ab902afa64f381660de63ede..3146ca80e302901cbf342a7c7f85efc7838552a4 100644 --- a/Linse.php +++ b/Linse.php @@ -599,4 +599,27 @@ class Linse { } else return ''; } + + + public function putArticleToFront($title) { + if(substr($title,-1) !=")") + return $title; + + foreach($this->exclu as $article) { + $compare = "(" . trim($article) . ")"; + $lg = strlen($compare); + if(strtoUpper(substr($title,-$lg)) == $compare) { + $deb = substr($title,- $lg); + $deb = str_replace("(","",$article); + $deb = str_replace(")","",$article); + if (substr($deb,-1)!="'") + $deb .= " "; + $new = $deb . trim(substr($title, 0, (strlen($title) - $lg))); + + return $new; + } + } + + return $title; + } } \ No newline at end of file diff --git a/tests/LinseTest.php b/tests/LinseTest.php index e6b1291249d37d210c811d2a23f3de642ca400e7..ec1c9aea4b00ff0f80726b5923b34ee93b0d2042 100644 --- a/tests/LinseTest.php +++ b/tests/LinseTest.php @@ -72,6 +72,12 @@ class LinseTest extends PHPUnit_Framework_TestCase { } + /** @test */ + public function putArticleToFrontForPianoLeShouldReturnLePiano() { + $this->assertEquals('LE Piano', $this->_model->putArticleToFront('Piano (le)')); + } + + public function titlesAndAlpha() { return [ [ 'Norvege, Islande', 'NORVEGE ISLANDE' ],