Make WordPress Core

Ticket #49166: 49166-is_dashicons_exists.diff

File 49166-is_dashicons_exists.diff, 9.1 KB (added by sebastienserre, 4 years ago)

Add a kind of proof of concept

  • wp-includes/class-dashicons.php

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
     1<?php
     2
     3namespace WordPress\Dashicons;
     4
     5if ( ! defined( 'ABSPATH' ) ) {
     6        exit;
     7} // Exit if accessed directly.
     8
     9/**
     10 * Class Dashicons
     11 *
     12 * @package WordPress
     13 * @author  Sébastien SERRE
     14 * @since   5.4 :-p
     15 */
     16class Dashicons {
     17
     18        private static $dashicons;
     19
     20        public function __construct() {
     21                self::$dashicons = self::set_dashicons();
     22        }
     23
     24        /**
     25         * @return array array with list of existing Dashicons / WP Version / CSS Code
     26         * @author  Sébastien SERRE
     27         * @package WordPress
     28         * @since   5.4 :-p
     29         */
     30        public static function get_dashicons_list() {
     31                $dashicons =
     32                        array(
     33                                'dashicons-menu'                      => array(
     34                                        'wp_version'  => '3.8',
     35                                        'css_content' => 'f333',
     36                                ),
     37                                'dashicons-buddicons-activity'        => array(
     38                                        'wp_version'  => '5.2',
     39                                        'css_content' => 'f452',
     40                                ),
     41                                'dashicons-buddicons-bbpress-logo'    => array(
     42                                        'wp_version'  => '5.2',
     43                                        'css_content' => 'f477',
     44                                ),
     45                                'dashicons-buddicons-buddypress-logo' => array(
     46                                        'wp_version'  => '5.2',
     47                                        'css_content' => 'f448',
     48                                ),
     49                                'dashicons-dashboard',
     50                                'dashicons-admin-site',
     51                                'dashicons-admin-media',
     52                                'dashicons-admin-page',
     53                                'dashicons-admin-comments',
     54                                'dashicons-admin-appearance',
     55                                'dashicons-admin-plugins',
     56                                'dashicons-admin-users',
     57                                'dashicons-admin-tools',
     58                                'dashicons-admin-settings',
     59                                'dashicons-admin-network',
     60                                'dashicons-admin-generic',
     61                                'dashicons-admin-home',
     62                                'dashicons-admin-collapse',
     63                                'dashicons-admin-links',
     64                                'dashicons-admin-post',
     65                                'dashicons-format-standard',
     66                                'dashicons-format-image',
     67                                'dashicons-format-gallery',
     68                                'dashicons-format-audio',
     69                                'dashicons-format-video',
     70                                'dashicons-format-links',
     71                                'dashicons-format-chat',
     72                                'dashicons-format-status',
     73                                'dashicons-format-aside',
     74                                'dashicons-format-quote',
     75                                'dashicons-welcome-write-blog',
     76                                'dashicons-welcome-edit-page',
     77                                'dashicons-welcome-add-page',
     78                                'dashicons-welcome-view-site',
     79                                'dashicons-welcome-widgets-menus',
     80                                'dashicons-welcome-comments',
     81                                'dashicons-welcome-learn-more',
     82                                'dashicons-image-crop',
     83                                'dashicons-image-rotate-left',
     84                                'dashicons-image-rotate-right',
     85                                'dashicons-image-flip-vertical',
     86                                'dashicons-image-flip-horizontal',
     87                                'dashicons-undo',
     88                                'dashicons-redo',
     89                                'dashicons-editor-bold',
     90                                'dashicons-editor-italic',
     91                                'dashicons-editor-ul',
     92                                'dashicons-editor-ol',
     93                                'dashicons-editor-quote',
     94                                'dashicons-editor-alignleft',
     95                                'dashicons-editor-aligncenter',
     96                                'dashicons-editor-alignright',
     97                                'dashicons-editor-insertmore',
     98                                'dashicons-editor-spellcheck',
     99                                'dashicons-editor-distractionfree',
     100                                'dashicons-editor-expand',
     101                                'dashicons-editor-contract',
     102                                'dashicons-editor-kitchensink',
     103                                'dashicons-editor-underline',
     104                                'dashicons-editor-justify',
     105                                'dashicons-editor-textcolor',
     106                                'dashicons-editor-paste-word',
     107                                'dashicons-editor-paste-text',
     108                                'dashicons-editor-removeformatting',
     109                                'dashicons-editor-video',
     110                                'dashicons-editor-customchar',
     111                                'dashicons-editor-outdent',
     112                                'dashicons-editor-indent',
     113                                'dashicons-editor-help',
     114                                'dashicons-editor-strikethrough',
     115                                'dashicons-editor-unlink',
     116                                'dashicons-editor-rtl',
     117                                'dashicons-editor-break',
     118                                'dashicons-editor-code',
     119                                'dashicons-editor-paragraph',
     120                                'dashicons-align-left',
     121                                'dashicons-align-right',
     122                                'dashicons-align-center',
     123                                'dashicons-align-none',
     124                                'dashicons-lock',
     125                                'dashicons-calendar',
     126                                'dashicons-visibility',
     127                                'dashicons-post-status',
     128                                'dashicons-edit',
     129                                'dashicons-post-trash',
     130                                'dashicons-trash',
     131                                'dashicons-external',
     132                                'dashicons-arrow-up',
     133                                'dashicons-arrow-down',
     134                                'dashicons-arrow-left',
     135                                'dashicons-arrow-right',
     136                                'dashicons-arrow-up-alt',
     137                                'dashicons-arrow-down-alt',
     138                                'dashicons-arrow-left-alt',
     139                                'dashicons-arrow-right-alt',
     140                                'dashicons-arrow-up-alt2',
     141                                'dashicons-arrow-down-alt2',
     142                                'dashicons-arrow-left-alt2',
     143                                'dashicons-arrow-right-alt2',
     144                                'dashicons-leftright',
     145                                'dashicons-sort',
     146                                'dashicons-randomize',
     147                                'dashicons-list-view',
     148                                'dashicons-exerpt-view',
     149                                'dashicons-hammer',
     150                                'dashicons-art',
     151                                'dashicons-migrate',
     152                                'dashicons-performance',
     153                                'dashicons-universal-access',
     154                                'dashicons-universal-access-alt',
     155                                'dashicons-tickets',
     156                                'dashicons-nametag',
     157                                'dashicons-clipboard',
     158                                'dashicons-heart',
     159                                'dashicons-megaphone',
     160                                'dashicons-schedule',
     161                                'dashicons-wordpress',
     162                                'dashicons-wordpress-alt',
     163                                'dashicons-pressthis,',
     164                                'dashicons-update,',
     165                                'dashicons-screenoptions',
     166                                'dashicons-info',
     167                                'dashicons-cart',
     168                                'dashicons-feedback',
     169                                'dashicons-cloud',
     170                                'dashicons-translation',
     171                                'dashicons-tag',
     172                                'dashicons-category',
     173                                'dashicons-archive',
     174                                'dashicons-tagcloud',
     175                                'dashicons-text',
     176                                'dashicons-media-archive',
     177                                'dashicons-media-audio',
     178                                'dashicons-media-code',
     179                                'dashicons-media-default',
     180                                'dashicons-media-document',
     181                                'dashicons-media-interactive',
     182                                'dashicons-media-spreadsheet',
     183                                'dashicons-media-text',
     184                                'dashicons-media-video',
     185                                'dashicons-playlist-audio',
     186                                'dashicons-playlist-video',
     187                                'dashicons-yes',
     188                                'dashicons-no',
     189                                'dashicons-no-alt',
     190                                'dashicons-plus',
     191                                'dashicons-plus-alt',
     192                                'dashicons-minus',
     193                                'dashicons-dismiss',
     194                                'dashicons-marker',
     195                                'dashicons-star-filled',
     196                                'dashicons-star-half',
     197                                'dashicons-star-empty',
     198                                'dashicons-flag',
     199                                'dashicons-share',
     200                                'dashicons-share1',
     201                                'dashicons-share-alt',
     202                                'dashicons-share-alt2',
     203                                'dashicons-twitter',
     204                                'dashicons-rss',
     205                                'dashicons-email',
     206                                'dashicons-email-alt',
     207                                'dashicons-facebook',
     208                                'dashicons-facebook-alt',
     209                                'dashicons-networking',
     210                                'dashicons-googleplus',
     211                                'dashicons-location',
     212                                'dashicons-location-alt',
     213                                'dashicons-camera',
     214                                'dashicons-images-alt',
     215                                'dashicons-images-alt2',
     216                                'dashicons-video-alt',
     217                                'dashicons-video-alt2',
     218                                'dashicons-video-alt3',
     219                                'dashicons-vault',
     220                                'dashicons-shield',
     221                                'dashicons-shield-alt',
     222                                'dashicons-sos',
     223                                'dashicons-search',
     224                                'dashicons-slides',
     225                                'dashicons-analytics',
     226                                'dashicons-chart-pie',
     227                                'dashicons-chart-bar',
     228                                'dashicons-chart-line',
     229                                'dashicons-chart-area',
     230                                'dashicons-groups',
     231                                'dashicons-businessman',
     232                                'dashicons-id',
     233                                'dashicons-id-alt',
     234                                'dashicons-products',
     235                                'dashicons-awards',
     236                                'dashicons-forms',
     237                                'dashicons-testimonial',
     238                                'dashicons-portfolio',
     239                                'dashicons-book',
     240                                'dashicons-book-alt',
     241                                'dashicons-download',
     242                                'dashicons-upload',
     243                                'dashicons-backup',
     244                                'dashicons-clock',
     245                                'dashicons-lightbulb',
     246                                'dashicons-microphone',
     247                                'dashicons-desktop',
     248                                'dashicons-tablet',
     249                                'dashicons-smartphone',
     250                                'dashicons-smiley',
     251                        );
     252
     253                return $dashicons;
     254        }
     255
     256        public static function set_dashicons() {
     257                $dashicons = self::get_dashicons_list();
     258
     259                return $dashicons;
     260        }
     261
     262        /**
     263         * @param $dashicons
     264         *
     265         * @return bool
     266         * @author  Sébastien SERRE
     267         * @package WordPress
     268         * @since   :-p
     269         *
     270         */
     271        public static function is_dashicons_exists( $dashicons ) {
     272                $dashicons_list = self::$dashicons;
     273                if ( isset( $dashicons_list[ $dashicons ] ) ) {
     274                        return true;
     275                }
     276
     277                return false;
     278        }
     279
     280}
     281
     282new Dashicons();
  • wp-settings.php

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    3737require( ABSPATH . WPINC . '/class-wp-recovery-mode.php' );
    3838require( ABSPATH . WPINC . '/error-protection.php' );
    3939require( ABSPATH . WPINC . '/default-constants.php' );
     40require( ABSPATH . WPINC . '/class-dashicons.php' );
    4041require_once( ABSPATH . WPINC . '/plugin.php' );
    4142
    4243/**
  • wp-includes/template.php

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    724724                require( $_template_file );
    725725        }
    726726}
     727
     728/**
     729 * Wrapper to facilitate
     730 * @param $dashicons
     731 *
     732 * @return bool
     733 * @author  Sébastien SERRE
     734 * @package WordPress
     735 * @since
     736 */
     737function is_dashicons_exists( $dashicons ){
     738        return WordPress\Dashicons\Dashicons::is_dashicons_exists( $dashicons );
     739}