Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

lang_helper.php

Zuletzt modifiziert: 09.10.2024, 12:52 - Dateigröße: 3.18 KiB


 001  <?php
 002  /**
 003  *
 004  * This file is part of the phpBB Forum Software package.
 005  *
 006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
 007  * @license GNU General Public License, version 2 (GPL-2.0)
 008  *
 009  * For full copyright and license information, please see
 010  * the docs/CREDITS.txt file.
 011  *
 012  */
 013   
 014  namespace phpbb\profilefields;
 015   
 016  /**
 017  * Custom Profile Fields
 018  */
 019  class lang_helper
 020  {
 021      /**
 022      * Array with the language option, grouped by field and language
 023      * @var array
 024      */
 025      protected $options_lang = array();
 026   
 027      /**
 028      * Database object
 029      * @var \phpbb\db\driver\driver_interface
 030      */
 031      protected $db;
 032   
 033      /**
 034      * Table where the language strings are stored
 035      * @var string
 036      */
 037      protected $language_table;
 038   
 039      /**
 040      * Construct
 041      *
 042      * @param    \phpbb\db\driver\driver_interface    $db        Database object
 043      * @param    string        $language_table        Table where the language strings are stored
 044      */
 045      public function __construct($db, $language_table)
 046      {
 047          $this->db = $db;
 048          $this->language_table = $language_table;
 049      }
 050   
 051      /**
 052      * Loads preview options into language entries for options
 053      *
 054      * @param    int        $field_id
 055      * @param    int        $lang_id
 056      * @param    mixed    $preview_options
 057      */
 058      public function load_preview_options($field_id, $lang_id, $preview_options)
 059      {
 060          $lang_options = (!is_array($preview_options)) ? explode("\n", $preview_options) : $preview_options;
 061   
 062          foreach ($lang_options as $num => $var)
 063          {
 064              if (!isset($this->options_lang[$field_id]))
 065              {
 066                  $this->options_lang[$field_id] = array();
 067              }
 068              if (!isset($this->options_lang[$field_id][$lang_id]))
 069              {
 070                  $this->options_lang[$field_id][$lang_id] = array();
 071              }
 072              $this->options_lang[$field_id][$lang_id][($num + 1)] = $var;
 073          }
 074      }
 075   
 076      /**
 077      * Fetches language entries for options from DB
 078      *
 079      * @param    int        $lang_id
 080      */
 081      public function load_option_lang($lang_id)
 082      {
 083          $sql = 'SELECT field_id, option_id, lang_value
 084                  FROM ' . $this->language_table . '
 085                  WHERE lang_id = ' . (int) $lang_id . "
 086                  ORDER BY option_id";
 087   
 088          $result = $this->db->sql_query($sql);
 089   
 090          while ($row = $this->db->sql_fetchrow($result))
 091          {
 092              $this->options_lang[$row['field_id']][$lang_id][($row['option_id'] + 1)] = $row['lang_value'];
 093          }
 094   
 095          $this->db->sql_freeresult($result);
 096      }
 097   
 098      /**
 099      * Are language options set for this field?
 100      *
 101      * @param    int        $field_id        Database ID of the field
 102      * @param    int        $lang_id        ID of the language
 103      * @param    int        $field_value    Selected value of the field
 104      * @return boolean
 105      */
 106      public function is_set($field_id, $lang_id = null, $field_value = null)
 107      {
 108          $is_set = isset($this->options_lang[$field_id]);
 109   
 110          if ($is_set && (!is_null($lang_id) || !is_null($field_value)))
 111          {
 112              $is_set = isset($this->options_lang[$field_id][$lang_id]);
 113          }
 114   
 115          if ($is_set && !is_null($field_value))
 116          {
 117              $is_set = isset($this->options_lang[$field_id][$lang_id][$field_value]);
 118          }
 119   
 120          return $is_set;
 121      }
 122   
 123      /**
 124      * Get the selected language string
 125      *
 126      * @param    int        $field_id        Database ID of the field
 127      * @param    int        $lang_id        ID of the language
 128      * @param    int        $field_value    Selected value of the field
 129      * @return string
 130      */
 131      public function get($field_id, $lang_id, $field_value = null)
 132      {
 133          if (is_null($field_value))
 134          {
 135              return $this->options_lang[$field_id][$lang_id];
 136          }
 137   
 138          return $this->options_lang[$field_id][$lang_id][$field_value];
 139      }
 140  }
 141