Open Monograph Press  3.3.0
LanguageDAO.inc.php
1 <?php
2 
19 import('lib.pkp.classes.language.Language');
20 
21 class LanguageDAO extends DAO {
25  public function __construct() {
26  // Parent constructor intentionally not called
27  }
28 
34  public function getLanguageByCode($code) {
35  $isoCodes = new \Sokil\IsoCodes\IsoCodesFactory();
36  $languages = $isoCodes->getLanguages(\Sokil\IsoCodes\IsoCodesFactory::OPTIMISATION_MEMORY);
37  $language = $languages->getByAlpha2($code);
38  return $language?$this->_fromIsoCodeFactoryObject($language):null;
39  }
40 
45  public function getLanguages() {
46  $isoCodes = new \Sokil\IsoCodes\IsoCodesFactory(\Sokil\IsoCodes\IsoCodesFactory::OPTIMISATION_IO);
47  return array_values(array_map(function($language) {
48  return $this->_fromIsoCodeFactoryObject($language);
49  }, array_filter(iterator_to_array($isoCodes->getLanguages()), function($language) {
50  return $language->getAlpha2() && $language->getType() == 'L' && $language->getScope() == 'I';
51  })));
52  }
53 
58  public function getLanguageNames() {
59  return array_map(function($language) {
60  return $language->getName();
61  }, $this->getLanguages());
62  }
63 
69  protected function _fromIsoCodeFactoryObject($language) {
70  $languageDataObject = new Language();
71  $languageDataObject->setCode($language->getAlpha2());
72  $languageDataObject->setName($language->getLocalName());
73  return $languageDataObject;
74  }
75 }
76 
77 
LanguageDAO\__construct
__construct()
Definition: LanguageDAO.inc.php:25
LanguageDAO\getLanguageNames
getLanguageNames()
Definition: LanguageDAO.inc.php:58
LanguageDAO
Operations for retrieving and modifying Language objects.
Definition: LanguageDAO.inc.php:21
LanguageDAO\getLanguages
getLanguages()
Definition: LanguageDAO.inc.php:45
LanguageDAO\getLanguageByCode
getLanguageByCode($code)
Definition: LanguageDAO.inc.php:34
LanguageDAO\_fromIsoCodeFactoryObject
_fromIsoCodeFactoryObject($language)
Definition: LanguageDAO.inc.php:69
DAO
Operations for retrieving and modifying objects from a database.
Definition: DAO.inc.php:31
Language
Basic class describing a language.
Definition: Language.inc.php:24