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

type_string_common.php

Zuletzt modifiziert: 09.10.2024, 12:54 - Dateigröße: 4.25 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\type;
 015   
 016  abstract class type_string_common extends type_base
 017  {
 018      protected $validation_options = array(
 019          'CHARS_ANY'            => '.*',
 020          'NUMBERS_ONLY'        => '[0-9]+',
 021          'ALPHA_ONLY'        => '[\w]+',
 022          'ALPHA_UNDERSCORE'    => '[\w_]+',
 023          'ALPHA_DOTS'        => '[\w.]+',
 024          'ALPHA_SPACERS'        => '[\w\x20_+\-\[\]]+',
 025          'ALPHA_PUNCTUATION' => '[a-zA-Z][\w\.,\-_]+',
 026          'LETTER_NUM_ONLY'            => '[\p{Lu}\p{Ll}0-9]+',
 027          'LETTER_NUM_UNDERSCORE'        => '[\p{Lu}\p{Ll}0-9_]+',
 028          'LETTER_NUM_DOTS'            => '[\p{Lu}\p{Ll}0-9.]+',
 029          'LETTER_NUM_SPACERS'        => '[\p{Lu}\p{Ll}0-9\x20_+\-\[\]]+',
 030          'LETTER_NUM_PUNCTUATION'    => '[\p{Lu}\p{Ll}][\p{Lu}\p{Ll}0-9.,\-_]+',
 031      );
 032   
 033      /**
 034      * Return possible validation options
 035      */
 036      public function validate_options($field_data)
 037      {
 038          $validate_options = '';
 039          foreach ($this->validation_options as $lang => $value)
 040          {
 041              $selected = ($field_data['field_validation'] == $value) ? ' selected="selected"' : '';
 042              $validate_options .= '<option value="' . $value . '"' . $selected . '>' . $this->user->lang[$lang] . '</option>';
 043          }
 044   
 045          return $validate_options;
 046      }
 047   
 048      /**
 049      * {@inheritDoc}
 050      */
 051      public function get_default_field_value($field_data)
 052      {
 053          return $field_data['lang_default_value'];
 054      }
 055   
 056      /**
 057      * Validate entered profile field data
 058      *
 059      * @param string    $field_type            Field type (string or text)
 060      * @param mixed    $field_value        Field value to validate
 061      * @param array    $field_data            Array with requirements of the field
 062      * @return mixed        String with key of the error language string, false otherwise
 063      */
 064      public function validate_string_profile_field($field_type, &$field_value, $field_data)
 065      {
 066          if (trim($field_value) === '' && !$field_data['field_required'])
 067          {
 068              return false;
 069          }
 070          else if (trim($field_value) === '' && $field_data['field_required'])
 071          {
 072              return $this->user->lang('FIELD_REQUIRED', $this->get_field_name($field_data['lang_name']));
 073          }
 074   
 075          if ($field_data['field_minlen'] && utf8_strlen($field_value) < $field_data['field_minlen'])
 076          {
 077              return $this->user->lang('FIELD_TOO_SHORT', (int) $field_data['field_minlen'], $this->get_field_name($field_data['lang_name']));
 078          }
 079          else if ($field_data['field_maxlen'] && utf8_strlen(html_entity_decode($field_value)) > $field_data['field_maxlen'])
 080          {
 081              return $this->user->lang('FIELD_TOO_LONG', (int) $field_data['field_maxlen'], $this->get_field_name($field_data['lang_name']));
 082          }
 083   
 084          if (!empty($field_data['field_validation']) && $field_data['field_validation'] != '.*')
 085          {
 086              $field_validate = ($field_type != 'text') ? $field_value : bbcode_nl2br($field_value);
 087              if (!preg_match('#^' . str_replace('\\\\', '\\', $field_data['field_validation']) . '$#iu', $field_validate))
 088              {
 089                  $validation = array_search($field_data['field_validation'], $this->validation_options);
 090                  if ($validation)
 091                  {
 092                      return $this->user->lang('FIELD_INVALID_CHARS_' . $validation, $this->get_field_name($field_data['lang_name']));
 093                  }
 094                  return $this->user->lang('FIELD_INVALID_CHARS_INVALID', $this->get_field_name($field_data['lang_name']));
 095              }
 096          }
 097   
 098          return false;
 099      }
 100   
 101      /**
 102      * {@inheritDoc}
 103      */
 104      public function get_profile_value($field_value, $field_data)
 105      {
 106          if (($field_value === null || $field_value === '') && !$field_data['field_show_novalue'])
 107          {
 108              return null;
 109          }
 110   
 111          $field_value = make_clickable($field_value);
 112          $field_value = censor_text($field_value);
 113          $field_value = bbcode_nl2br($field_value);
 114          return $field_value;
 115      }
 116   
 117      /**
 118      * {@inheritDoc}
 119      */
 120      public function get_profile_value_raw($field_value, $field_data)
 121      {
 122          if (($field_value === null || $field_value === '') && !$field_data['field_show_novalue'])
 123          {
 124              return null;
 125          }
 126   
 127          return $field_value;
 128      }
 129   
 130      /**
 131      * {@inheritDoc}
 132      */
 133      public function get_profile_contact_value($field_value, $field_data)
 134      {
 135          return $this->get_profile_value_raw($field_value, $field_data);
 136      }
 137   
 138      /**
 139      * {@inheritDoc}
 140      */
 141      public function prepare_options_form(&$exclude_options, &$visibility_options)
 142      {
 143          $exclude_options[1][] = 'lang_default_value';
 144   
 145          return $this->request->variable('lang_options', '', true);
 146      }
 147  }
 148