Skip to content
Snippets Groups Projects
Select Git revision
  • cec90ca497d70ff9ebbdc27958f9540844395e7f
  • main default protected
  • step-3263
  • feature/plugins-cli
  • feature/vite
  • step-2484-peerreview
  • biest/issue-5051
  • tests/simplify-jsonapi-tests
  • fix/typo-in-1a70031
  • feature/broadcasting
  • database-seeders-and-factories
  • feature/peer-review-2
  • feature-feedback-jsonapi
  • feature/peerreview
  • feature/balloon-plus
  • feature/stock-images-unsplash
  • tic-2588
  • 5.0
  • 5.2
  • biest/unlock-blocks
  • biest-1514
21 results

OptionsWidget.php

Blame
  • Forked from Stud.IP / Stud.IP
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    SmileyFormat.php 1.43 KiB
    <?php
    /**
     * SmileyFormat.php
     *
     * Provides a formatting object for smileys.
     *
     * @author   Jan-Hendrik Willms <tleilax+studip@gmail.com>
     * @category Stud.IP
     * @package  smiley
     * @since    2.3
     * @uses     Smiley
     */
    class SmileyFormat extends TextFormat
    {
        const REGEXP = '(\>|^|\s):([_a-zA-Z][_a-z0-9A-Z-]*):(?=$|\<|\s)';
    
        function __construct()
        {
            $rules = [];
    
            // Smiley rule
            $rules['smileys'] = [
                'start'    => self::REGEXP,
                'callback' => 'SmileyFormat::smiley'
            ];
    
            // Smiley short notation rule
            $needles = array_keys(Smiley::getShort());
            $needles = array_map('preg_quote', $needles);
            $rules['smileys_short'] = [
                'start'    => '(>|^|\s)(' . implode('|', $needles) . ')(?=$|<|\s)',
                'callback' => 'SmileyFormat::short'
            ];
    
            parent::__construct($rules);
        }
    
        /**
         * Smiley notation defined by name (:name:)
         */
        static function smiley($markup, $matches)
        {
            return $matches[1] . Smiley::getByName($matches[2])->getImageTag() . $matches[3];
        }
    
        /**
         * Smiley short notation as defined in database
         */
        static function short($markup, $matches)
        {
            $smileys = Smiley::getShort();
            $name    = $smileys[$matches[2]] ?? '';
            return $name
                ? $matches[1] . Smiley::getByName($name)->getImageTag() . $matches[3]
                : $matches[0];
        }
    }