- Added method loadPhrases to FHC_Conroller as a wrapper to load phrases

- Added method getLanguage to Person_model to load the language for a user by the given UID
- Added comments to method getPhrasesByCategoryAndLanguage of system/Phrase_model, ORDER BY and more fields to SQL statement
This commit is contained in:
Paolo
2018-04-17 16:00:19 +02:00
parent 794fb7f6ac
commit 08c5733298
4 changed files with 66 additions and 15 deletions
@@ -22,20 +22,22 @@ class Phrase extends APIv1_Controller
public function __construct()
{
parent::__construct();
// Loads the phrases library
$this->load->library('PhrasesLib');
}
/**
* @return void
*
*/
public function getPhrase()
{
$phrase_id = $this->get('phrase_id');
if (isset($phrase_id))
{
$result = $this->phraseslib->getPhrase($phrase_id);
$this->response($result, REST_Controller::HTTP_OK);
}
else
@@ -43,9 +45,9 @@ class Phrase extends APIv1_Controller
$this->response();
}
}
/**
* @return void
*
*/
public function getPhrases()
{
@@ -55,11 +57,11 @@ class Phrase extends APIv1_Controller
$orgeinheit_kurzbz = $this->get('orgeinheit_kurzbz');
$orgform_kurzbz = $this->get('orgform_kurzbz');
$blockTags = $this->get('blockTags');
if (isset($app) && isset($sprache))
{
$result = $this->phraseslib->getPhrases($app, $sprache, $phrase, $orgeinheit_kurzbz, $orgform_kurzbz, $blockTags);
$this->response($result, REST_Controller::HTTP_OK);
}
else
@@ -69,7 +71,7 @@ class Phrase extends APIv1_Controller
}
/**
* @return void
*
*/
public function postPhrase()
{
@@ -83,7 +85,7 @@ class Phrase extends APIv1_Controller
{
$result = $this->PhraseModel->insert($this->post());
}
$this->response($result, REST_Controller::HTTP_OK);
}
else
@@ -91,9 +93,12 @@ class Phrase extends APIv1_Controller
$this->response();
}
}
/**
*
*/
private function _validate($phrase = null)
{
return false;
}
}
}
+11 -1
View File
@@ -10,7 +10,17 @@ class FHC_Controller extends CI_Controller
public function __construct()
{
parent::__construct();
$this->load->helper('fhcauth');
}
/**
* Wrapper to load phrases using the PhrasesLib
* NOTE: The library is loaded with the alias 'p', so must me used with this alias in the rest of the code.
* EX: $this->p->t(<category>, <phrase name>)
*/
public function loadPhrases($categories, $language = null)
{
$this->load->library('PhrasesLib', array($categories, $language), 'p');
}
}
@@ -213,4 +213,37 @@ class Person_model extends DB_Model
return $this->loadWhere(array('uid' => $uid));
}
/**
* Retrives the language of the user by the UID
* Gets all the persons related to the given UID and starting from the most recent person in DB
* tries to find a valid language (!= null), if found is returned, otherwise is returned the
* default global language of the system
*/
public function getLanguage($uid)
{
$language = DEFAULT_LANGUAGE;
$this->addJoin('public.tbl_benutzer', 'person_id');
$this->addOrder('public.tbl_person.updateamum', 'DESC');
$this->addOrder('public.tbl_person.insertvon', 'DESC');
$persons = $this->loadWhere(array('uid' => $uid));
if (hasData($persons))
{
for ($i = 0; $i < count($persons->retval); $i++)
{
$person = $persons->retval[$i];
if (!empty($person->sprache))
{
$language = $person->sprache;
break;
}
}
}
return $language;
}
}
+6 -3
View File
@@ -62,15 +62,18 @@ class Phrase_model extends DB_Model
}
/**
*
* Loads phrases using category(s) and language as keys
* The retrived fields are category, phrase, orgeinheit_kurzbz, orgform_kurzbz and text
* They are ordered by p.category, p.phrase, pt.orgeinheit_kurzbz DESC and pt.orgform_kurzbz DESC'
*/
public function getPhrasesByCategoryAndLanguage($categories, $language)
{
$query = 'SELECT p.category, p.phrase, pt.text
$query = 'SELECT p.category, p.phrase, pt.orgeinheit_kurzbz, pt.orgform_kurzbz, pt.text
FROM system.tbl_phrase p
INNER JOIN system.tbl_phrasentext pt USING(phrase_id)
WHERE p.category IN ?
AND pt.sprache = ?';
AND pt.sprache = ?
ORDER BY p.category, p.phrase, pt.orgeinheit_kurzbz DESC, pt.orgform_kurzbz DESC';
return $this->execQuery($query, array($categories, $language));
}