/** * @param bool $_all * @param bool $_byPriority * @return array */ public function getList($_all = false, $_byPriority = false) { $db = new DB(); $return = array(); $result = null; $_table = $this->table; $where = ''; $order = ''; if ($_byPriority) { $order = 'ORDER BY priority ASC'; } if ($_all) { $where = "WHERE active = 1"; } $items = $db->query("SELECT id FROM {$_table} {$where} {$order}"); if (@$items) { $result = $items->fetchAll(); foreach ($result as $item) { $ob_lang = new Lang(); $return[] = $ob_lang->getFromId($item['id']); } } return @$return; }
<?php /* * Copyright (c) 2014 Alberto González * Distributed under MIT License * (see README for details) */ namespace Quaver\Controller; use Quaver\Model\Lang; $language = new Lang(); $langCurrent = $language->getFromSlug($this->url_var[1]); if ($langCurrent) { $language->setCookie(); if (!empty($_SERVER['HTTP_REFERER'])) { header("Location: " . $_SERVER['HTTP_REFERER']); exit; } else { $newLang = new url(); header("Location: " . $newLang->getFromId(1)->url); exit; } } else { header("Location: " . $this->getUrlFromId(2) . "?ref=" . $this->getUrl()); exit; }
/** * login. * * @param bool $remember default to false * * @return bool */ public function login($remember = false) { global $_lang; if (!$this->exists()) { return false; } $this->sessionLogin($remember ? $this->cookie() : $this->id, $remember); $this->updateLastLogin(); if (empty($this->language)) { $this->language = $_lang->id; $this->save(); } elseif ($_lang->id !== $this->language) { $_lang = new Lang(); $_lang->getFromId($this->language); $_lang->setCookie(); } return true; }
<?php /* * Copyright (c) 2014 Alberto González * Distributed under MIT License * (see README for details) */ namespace Quaver\App\Controller; use Quaver\Model\Lang; $language = new Lang(); $language->getFromSlug($this->getUrlPart(0)); if ($language) { $language->setCookie(); if ($_user->isLogged()) { $_user->language = $language->id; $_user->save(); } if (!empty($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_HOST'] === parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST)) { $this->redirect($_SERVER['HTTP_REFERER']); } else { $this->redirect('/'); } } else { $this->router->dispatch('e404'); exit; }
/** * Set main variables */ public function getGlobalTwigVars() { global $_lang; global $_user; // Language $this->addTwigVars("language", $_lang); // Environment $this->addTwigVars("_env", DEV_MODE); // Languages $languageVars = array(); $ob_l = new Lang(); foreach ($ob_l->getList() as $lang) { $item = array("id" => $lang->id, "name" => utf8_encode($lang->name), "slug" => $lang->slug, "locale" => $lang->locale); array_push($languageVars, $item); } $this->addTwigVars('languages', $languageVars); // Current url $this->addTwigVars('url', strip_tags($this->url_var[0])); // User $userVars = array("avatar" => $_user->avatar, "admin" => $_user->isAdmin(), "logged" => $_user->logged, "account" => $_user->account, "sessionHash" => $_user->cookie); $this->addTwigVars("user", $userVars); $this->addTwigVars("_user", $_user); // Login if (@isset($this->queryString['login-error'])) { $this->addTwigVars('loginError', true); } if (@isset($this->queryString['user-disabled'])) { $this->addTwigVars('userDisabled', true); } // Extra parametres $config = array("randomVar" => RANDOM_VAR, "css" => CSS_PATH, "js" => JS_PATH, "img" => IMG_PATH); $this->addTwigVars('qv', $config); }