From 7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8 Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 7 Jan 2020 13:06:14 +0100 Subject: Added wordpress --- .../classes/class-twentynineteen-svg-icons.php | 458 +++++++++++++++++++++ .../class-twentynineteen-walker-comment.php | 128 ++++++ 2 files changed, 586 insertions(+) create mode 100644 srcs/wordpress/wp-content/themes/twentynineteen/classes/class-twentynineteen-svg-icons.php create mode 100644 srcs/wordpress/wp-content/themes/twentynineteen/classes/class-twentynineteen-walker-comment.php (limited to 'srcs/wordpress/wp-content/themes/twentynineteen/classes') diff --git a/srcs/wordpress/wp-content/themes/twentynineteen/classes/class-twentynineteen-svg-icons.php b/srcs/wordpress/wp-content/themes/twentynineteen/classes/class-twentynineteen-svg-icons.php new file mode 100644 index 0000000..cc10fcc --- /dev/null +++ b/srcs/wordpress/wp-content/themes/twentynineteen/classes/class-twentynineteen-svg-icons.php @@ -0,0 +1,458 @@ + source on its own array key, without adding the + * both `width` and `height` attributes, since these are added dynamically, + * before rendering the SVG code. + * + * All icons are assumed to have equal width and height, hence the option + * to only specify a `$size` parameter in the svg methods. + * + * @since 1.0.0 + */ +class TwentyNineteen_SVG_Icons { + + /** + * Gets the SVG code for a given icon. + */ + public static function get_svg( $group, $icon, $size ) { + if ( 'ui' == $group ) { + $arr = self::$ui_icons; + } elseif ( 'social' == $group ) { + $arr = self::$social_icons; + } else { + $arr = array(); + } + if ( array_key_exists( $icon, $arr ) ) { + $repl = sprintf( '\s*<', $svg ); // Remove white space between SVG tags. + return $svg; + } + return null; + } + + /** + * Detects the social network from a URL and returns the SVG code for its icon. + */ + public static function get_social_link_svg( $uri, $size ) { + static $regex_map; // Only compute regex map once, for performance. + if ( ! isset( $regex_map ) ) { + $regex_map = array(); + $map = &self::$social_icons_map; // Use reference instead of copy, to save memory. + foreach ( array_keys( self::$social_icons ) as $icon ) { + $domains = array_key_exists( $icon, $map ) ? $map[ $icon ] : array( sprintf( '%s.com', $icon ) ); + $domains = array_map( 'trim', $domains ); // Remove leading/trailing spaces, to prevent regex from failing to match. + $domains = array_map( 'preg_quote', $domains ); + $regex_map[ $icon ] = sprintf( '/(%s)/i', implode( '|', $domains ) ); + } + } + foreach ( $regex_map as $icon => $regex ) { + if ( preg_match( $regex, $uri ) ) { + return self::get_svg( 'social', $icon, $size ); + } + } + return null; + } + + /** + * User Interface icons – svg sources. + * + * @var array + */ + static $ui_icons = array( + 'link' => /* material-design – link */ ' + + + +', + + 'watch' => /* material-design – watch-later */ ' + + + + + + + + +', + + 'archive' => /* material-design – folder */ ' + + + +', + + 'tag' => /* material-design – local_offer */ ' + + + +', + + 'comment' => /* material-design – comment */ ' + + + +', + + 'person' => /* material-design – person */ ' + + + +', + + 'edit' => /* material-design – edit */ ' + + + +', + + 'chevron_left' => /* material-design – chevron_left */ ' + + + +', + + 'chevron_right' => /* material-design – chevron_right */ ' + + + +', + + 'check' => /* material-design – check */ ' + + + +', + + 'arrow_drop_down_circle' => /* material-design – arrow_drop_down_circle */ ' + + + +', + + 'keyboard_arrow_down' => /* material-design – keyboard_arrow_down */ ' + + + +', + + 'keyboard_arrow_right' => /* material-design – keyboard_arrow_right */ ' + + + +', + + 'keyboard_arrow_left' => /* material-design – keyboard_arrow_left */ ' + + + +', + + 'arrow_drop_down_ellipsis' => /* custom – arrow_drop_down_ellipsis */ ' + + + + + +', + + ); + + /** + * Social Icons – domain mappings. + * + * By default, each Icon ID is matched against a .com TLD. To override this behavior, + * specify all the domains it covers (including the .com TLD too, if applicable). + * + * @var array + */ + static $social_icons_map = array( + 'amazon' => array( + 'amazon.com', + 'amazon.cn', + 'amazon.in', + 'amazon.fr', + 'amazon.de', + 'amazon.it', + 'amazon.nl', + 'amazon.es', + 'amazon.co', + 'amazon.ca', + ), + 'apple' => array( + 'apple.com', + 'itunes.com', + ), + 'behance' => array( + 'behance.net', + ), + 'codepen' => array( + 'codepen.io', + ), + 'facebook' => array( + 'facebook.com', + 'fb.me', + ), + 'feed' => array( + 'feed', + ), + 'google-plus' => array( + 'plus.google.com', + ), + 'lastfm' => array( + 'last.fm', + ), + 'mail' => array( + 'mailto:', + ), + 'slideshare' => array( + 'slideshare.net', + ), + 'pocket' => array( + 'getpocket.com', + ), + 'twitch' => array( + 'twitch.tv', + ), + 'wordpress' => array( + 'wordpress.com', + 'wordpress.org', + ), + ); + + /** + * Social Icons – svg sources. + * + * @var array + */ + static $social_icons = array( + '500px' => ' + + +', + + 'amazon' => ' + + +', + + 'apple' => ' + + +', + + 'bandcamp' => ' + + +', + + 'behance' => ' + + +', + + 'chain' => ' + + +', + + 'codepen' => ' + + +', + + 'deviantart' => ' + + +', + + 'digg' => ' + + +', + + 'dribbble' => ' + + +', + + 'dropbox' => ' + + +', + + 'etsy' => ' + + +', + + 'facebook' => ' + + +', + + 'feed' => ' + + +', + + 'flickr' => ' + + +', + + 'foursquare' => ' + + +', + + 'goodreads' => ' + + +', + + 'google-plus' => ' + + +', + + 'google' => ' + + +', + + 'github' => ' + + +', + + 'instagram' => ' + + +', + + 'lastfm' => ' + + +', + + 'linkedin' => ' + + +', + + 'mail' => ' + + +', + + 'meetup' => ' + + +', + + 'medium' => ' + + +', + + 'pinterest' => ' + + +', + + 'pocket' => ' + + +', + + 'reddit' => ' + + +', + + 'skype' => ' + + +', + + 'slideshare' => ' + + +', + + 'snapchat' => ' + + +', + + 'soundcloud' => ' + + +', + + 'spotify' => ' + + +', + + 'stumbleupon' => ' + + +', + + 'tumblr' => ' + + +', + + 'twitch' => ' + + +', + + 'twitter' => ' + + +', + + 'vimeo' => ' + + +', + + 'vk' => ' + + +', + + 'wordpress' => ' + + +', + + 'yelp' => ' + + +', + + 'youtube' => ' + + +', + + ); + +} diff --git a/srcs/wordpress/wp-content/themes/twentynineteen/classes/class-twentynineteen-walker-comment.php b/srcs/wordpress/wp-content/themes/twentynineteen/classes/class-twentynineteen-walker-comment.php new file mode 100644 index 0000000..cded91d --- /dev/null +++ b/srcs/wordpress/wp-content/themes/twentynineteen/classes/class-twentynineteen-walker-comment.php @@ -0,0 +1,128 @@ + + < id="comment-" has_children ? 'parent' : '', $comment ); ?>> +
+