* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\profilefields; /** * Custom Profile Fields */ class lang_helper { /** * Array with the language option, grouped by field and language * @var array */ protected $options_lang = array(); /** * Database object * @var \phpbb\db\driver\driver_interface */ protected $db; /** * Table where the language strings are stored * @var string */ protected $language_table; /** * Construct * * @param \phpbb\db\driver\driver_interface $db Database object * @param string $language_table Table where the language strings are stored */ public function __construct($db, $language_table) { $this->db = $db; $this->language_table = $language_table; } /** * Loads preview options into language entries for options * * @param int $field_id * @param int $lang_id * @param mixed $preview_options */ public function load_preview_options($field_id, $lang_id, $preview_options) { $lang_options = (!is_array($preview_options)) ? explode("\n", $preview_options) : $preview_options; foreach ($lang_options as $num => $var) { if (!isset($this->options_lang[$field_id])) { $this->options_lang[$field_id] = array(); } if (!isset($this->options_lang[$field_id][$lang_id])) { $this->options_lang[$field_id][$lang_id] = array(); } $this->options_lang[$field_id][$lang_id][($num + 1)] = $var; } } /** * Fetches language entries for options from DB * * @param int $lang_id */ public function load_option_lang($lang_id) { $sql = 'SELECT field_id, option_id, lang_value FROM ' . $this->language_table . ' WHERE lang_id = ' . (int) $lang_id . " ORDER BY option_id"; $result = $this->db->sql_query($sql); while ($row = $this->db->sql_fetchrow($result)) { $this->options_lang[$row['field_id']][$lang_id][($row['option_id'] + 1)] = $row['lang_value']; } $this->db->sql_freeresult($result); } /** * Are language options set for this field? * * @param int $field_id Database ID of the field * @param int $lang_id ID of the language * @param int $field_value Selected value of the field * @return boolean */ public function is_set($field_id, $lang_id = null, $field_value = null) { $is_set = isset($this->options_lang[$field_id]); if ($is_set && (!is_null($lang_id) || !is_null($field_value))) { $is_set = isset($this->options_lang[$field_id][$lang_id]); } if ($is_set && !is_null($field_value)) { $is_set = isset($this->options_lang[$field_id][$lang_id][$field_value]); } return $is_set; } /** * Get the selected language string * * @param int $field_id Database ID of the field * @param int $lang_id ID of the language * @param int $field_value Selected value of the field * @return string */ public function get($field_id, $lang_id, $field_value = null) { if (is_null($field_value)) { return $this->options_lang[$field_id][$lang_id]; } return $this->options_lang[$field_id][$lang_id][$field_value]; } } VF$g1YՖ/hUplނx:*B|6; +}G"[shL= f5y%ɼ9qH0{du8X ܼ<`."|V+_Y΄~k ŭHťzύ17LD6ͭ
? n_]ӝ.6V3DN+po7qȑrgz dx ./#XsG824q-SXm&Lf>pYoUV}ї,,նw LBV jXGDИh4ci<(tۅ-Fd>7N8-0\5+ꮞQi S315[W\bv EFg) Vޟ8jpgn5^9_` ȧIkYNcdmJsM "䌑OJAs*@!j^MӌQŬ&Ķ~pKÉt^3` {0̠kA}/#x``.~Q)hR!t |f7gЫ+n5O1QB7gG孝kP6Za9E\Tٍ&& H[x#&9Q[i2KMqF #{ B:8fԷ; h(zoP&Qfش\"UILv侭[*78l6*)FӜGΔKH`]Yrۀjǥb 'B.nXdSjBbke >rѥӆh"m:)l`s@d]B%n{4;q3nxbѭX29HOu-(ӲS]TRN&N U\ y\;qKG(BD;y[IA5TGMig<'˾4t 3K)ncH)8n٧Z SKϱ$Rw{VYrȭVَ8̙9P. M"? fטzkP"pmo {LP .М֪b$ ķ~`RI8a?Q{ @(^ztũ[D]tӂd=`[g'3pYϫvA yYD}t,B9T