122 Zeilen
3.3 KiB
PHP
122 Zeilen
3.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* File:
|
|
* class.language.php
|
|
*
|
|
* Description:
|
|
* cApi class
|
|
*
|
|
* @package Core
|
|
* @subpackage cApi
|
|
* @version $Rev$
|
|
* @since 2.0
|
|
* @author Ortwin Pinke <o.pinke@conlite.org>
|
|
* @copyright (c) 2015, conlite.org
|
|
* @license http://www.gnu.de/documents/gpl.en.html GPL v3 (english version)
|
|
* @license http://www.gnu.de/documents/gpl.de.html GPL v3 (deutsche Version)
|
|
* @link http://www.conlite.org ConLite.org
|
|
*
|
|
* $Id$
|
|
*/
|
|
if (!defined('CON_FRAMEWORK')) {
|
|
die('Illegal call');
|
|
}
|
|
|
|
class cApiLanguageCollection extends ItemCollection {
|
|
|
|
/**
|
|
* Constructor
|
|
*/
|
|
public function __construct() {
|
|
global $cfg;
|
|
parent::__construct($cfg["tab"]["lang"], "idlang");
|
|
$this->_setItemClass("cApiLanguage");
|
|
$this->_setJoinPartner("cApiClientLanguageCollection");
|
|
}
|
|
|
|
public function nextAccessible() {
|
|
global $perm, $client, $cfg, $lang;
|
|
|
|
$item = parent::next();
|
|
|
|
$db = new DB_ConLite();
|
|
$lang = Contenido_Security::toInteger($lang);
|
|
$client = Contenido_Security::toInteger($client);
|
|
|
|
$sql = "SELECT idclient FROM " . $cfg["tab"]["clients_lang"] . " WHERE idlang = '" . $lang . "'";
|
|
$db->query($sql);
|
|
|
|
if ($db->next_record()) {
|
|
if ($client != $db->f("idclient")) {
|
|
$item = $this->nextAccessible();
|
|
}
|
|
}
|
|
|
|
if ($item) {
|
|
if ($perm->have_perm_client("lang[" . $item->get("idlang") . "]") ||
|
|
$perm->have_perm_client("admin[" . $client . "]") ||
|
|
$perm->have_perm_client()) {
|
|
// Do nothing for now
|
|
} else {
|
|
$item = $this->nextAccessible();
|
|
}
|
|
|
|
return $item;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Returns an array with language ids or an array of values if $bWithValues is true
|
|
*
|
|
* @param int $iClient
|
|
* @param boolean $bWithValues
|
|
* @return array
|
|
*/
|
|
public function getClientLanguages($iClient, $bWithValues = false) {
|
|
$aList = array();
|
|
$oClientLangCol = new cApiClientLanguageCollection();
|
|
$oClientLangCol->setWhere("idclient", $iClient);
|
|
$oClientLangCol->query();
|
|
|
|
while ($oItem = $oClientLangCol->next()) {
|
|
$mTmpValues = '';
|
|
if ($bWithValues) {
|
|
$oLanguage = new cApiLanguage($oItem->get("idlang"));
|
|
$mTmpValues = array(
|
|
"idlang" => $oItem->get("idlang"),
|
|
"name" => $oLanguage->get("name"),
|
|
"active" => ($oLanguage->get("active")) ? true : false,
|
|
"encoding" => $oLanguage->get("encoding")
|
|
);
|
|
unset($oLanguage);
|
|
} else {
|
|
$mTmpValues = $oItem->get("idlang");
|
|
}
|
|
$aList[$oItem->get("idlang")] = $mTmpValues;
|
|
}
|
|
unset($oClientLangCol, $oItem);
|
|
return $aList;
|
|
}
|
|
|
|
}
|
|
|
|
class cApiLanguage extends Item {
|
|
|
|
/**
|
|
* Constructor Function
|
|
* @param mixed $mId Specifies the ID of item to load
|
|
*/
|
|
public function __construct($mId = false) {
|
|
global $cfg;
|
|
parent::__construct($cfg["tab"]["lang"], "idlang");
|
|
if ($mId !== false) {
|
|
$this->loadByPrimaryKey($mId);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
?>
|