Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
   1  <?php
   2  
   3  /**
   4   * Validates tel (for phone numbers).
   5   *
   6   * The relevant specifications for this protocol are RFC 3966 and RFC 5341,
   7   * but this class takes a much simpler approach: we normalize phone
   8   * numbers so that they only include (possibly) a leading plus,
   9   * and then any number of digits and x'es.
  10   */
  11  
  12  class HTMLPurifier_URIScheme_tel extends HTMLPurifier_URIScheme
  13  {
  14      /**
  15       * @type bool
  16       */
  17      public $browsable = false;
  18  
  19      /**
  20       * @type bool
  21       */
  22      public $may_omit_host = true;
  23  
  24      /**
  25       * @param HTMLPurifier_URI $uri
  26       * @param HTMLPurifier_Config $config
  27       * @param HTMLPurifier_Context $context
  28       * @return bool
  29       */
  30      public function doValidate(&$uri, $config, $context)
  31      {
  32          $uri->userinfo = null;
  33          $uri->host     = null;
  34          $uri->port     = null;
  35  
  36          // Delete all non-numeric characters, non-x characters
  37          // from phone number, EXCEPT for a leading plus sign.
  38          $uri->path = preg_replace('/(?!^\+)[^\dx]/', '',
  39                       // Normalize e(x)tension to lower-case
  40                       str_replace('X', 'x', $uri->path));
  41  
  42          return true;
  43      }
  44  }
  45  
  46  // vim: et sw=4 sts=4