/** * BOL_LanguageService constructor. * @param bool $includeCache */ private function __construct($includeCache = true) { $this->languageDao = BOL_LanguageDao::getInstance(); $this->prefixDao = BOL_LanguagePrefixDao::getInstance(); $this->keyDao = BOL_LanguageKeyDao::getInstance(); $this->valueDao = BOL_LanguageValueDao::getInstance(); if ($includeCache) { $this->loadFromCache(); } }
public function getPrefixXML($id, $languageId) { /* @var $prefix BOL_LanguagePrefix */ if (($prefix = BOL_LanguagePrefixDao::getInstance()->findById($id)) == null) { throw new Exception("Prefix with id: {$id}, doesn't exist"); } $xml = new DOMDocument('1.0', 'utf-8'); $language = $this->findById($languageId); /* @var $rootElement DomElement */ $rootElement = $xml->createElement('prefix'); $rootElement->setAttribute('name', $prefix->getPrefix()); $rootElement->setAttribute('label', $prefix->getLabel()); $rootElement->setAttribute('language_tag', $language->getTag()); $rootElement->setAttribute('language_label', $language->getLabel()); $keyDao = $this->keyDao; $keys = $keyDao->findAllPrefixKeys($id); foreach ($keys as $key) { $keyElement = $xml->createElement('key'); /* @var $keyElement DomElement */ $keyElement->setAttribute('name', $key->getKey()); $valDao = $this->valueDao; $value = $valDao->findValue($languageId, $key->getId()); if ($value != null) { $valueNode = $xml->createElement('value'); $valueNode->appendChild($xml->createTextNode($value->getValue())); $keyElement->appendChild($valueNode); } $rootElement->appendChild($keyElement); } $xml->appendChild($rootElement); $XML = $xml->saveXML(); return $XML; }
public function countKeySearchResultKeys($languageId, $search) { $search = $this->dbo->escapeString($search); $_query = "\n\t\t\t SELECT COUNT(*)\n\t\t\t FROM `" . BOL_LanguageKeyDao::getInstance()->getTableName() . "` as `k`\n\t\t\t INNER JOIN `" . BOL_LanguagePrefixDao::getInstance()->getTableName() . "` as `p`\n\t\t\t ON( `k`.`prefixId` = `p`.`id` )\n\t\t\t WHERE `k`.`key` LIKE :keySearch\n\t\t\t"; return $this->dbo->queryForColumn($_query, array('keySearch' => "%{$search}%")); }
public function findMissingKeyCount($languageId) { $query = "\n SELECT COUNT(*)\n FROM `" . BOL_LanguageKeyDao::getInstance()->getTableName() . "` as k\n LEFT JOIN `" . BOL_LanguageValueDao::getInstance()->getTableName() . "` as v\n ON( k.id = v.keyId and v.`languageId` = ? )\n INNER JOIN `" . BOL_LanguagePrefixDao::getInstance()->getTableName() . "` as p\n ON(k.`prefixId` = p.id)\n WHERE v.keyId IS NULL OR (`v`.`value` IS NOT NULL AND LENGTH(`v`.`value`) = 0 )\n\t\t\t"; return $this->dbo->queryForColumn($query, array($languageId)); }