. */ if (! defined('BASEPATH')) exit('No direct script access allowed'); /** * This controller operates between (interface) the JS (GUI) and the PhrasesLib (back-end) * Provides data to the ajax get calls about the Phrasen plugin * This controller works with JSON calls on the HTTP GET and the output is always JSON */ class Phrasen extends FHCAPI_Controller { public function __construct() { parent::__construct([ 'loadModule' => self::PERM_ANONYMOUS, 'setLanguage' => self::PERM_ANONYMOUS, 'getLanguage' => self::PERM_ANONYMOUS, 'getAllLanguages' => self::PERM_ANONYMOUS, ]); $this->load->helper('hlp_language'); } //------------------------------------------------------------------------------------------------------------------ // Public methods /** * @param string $module */ public function loadModule($module) { $this->load->library('PhrasesLib', [$module], 'pj'); $this->terminateWithSuccess(json_decode($this->pj->getJSON())); } public function setLanguage() { $postParams = $this->getPostJSON(); $language = $postParams->language; $categories = $postParams->categories; setUserLanguage($language); $this->load->library('PhrasesLib', array($categories, $language), 'p'); $phrases = $this->p->setPhrases($categories, $language); $this->terminateWithSuccess($phrases); } // gets the langauge of the currently logged in user session and otherwhise the system language public function getLanguage() { $lang = getUserLanguage(); $this->terminateWithSuccess($lang); } // gets all languages that are set as active in the database public function getAllLanguages() { $langs = getDBActiveLanguages(); $langs = $this->getDataOrTerminateWithError($langs); $langs = array_map(function($lang){ return $lang->sprache; }, $langs); $this->terminateWithSuccess($langs); } }