WordPress.org

Plugin Directory

Changeset 1692415


Ignore:
Timestamp:
07/07/17 10:29:03 (2 weeks ago)
Author:
ThemeZee
Message:

added support for SVG Icons in Social Icons widget

Location:
themezee-widget-bundle
Files:
34 added
4 edited

Legend:

Unmodified
Added
Removed
  • themezee-widget-bundle/trunk/includes/widgets/widget-social-icons.php

    r1656428 r1692415  
    3535            ) // Args. 
    3636        ); 
     37 
     38        // Filter Social Menu to add SVG icons. 
     39        add_filter( 'walker_nav_menu_start_el',  array( $this, 'nav_menu_social_icons' ), 10, 4 ); 
    3740 
    3841        // Delete Widget Cache on certain actions. 
     
    160163 
    161164    /** 
     165     * Display SVG icons in social links menu. 
     166     * 
     167     * @param  string  $item_output The menu item output. 
     168     * @param  WP_Post $item        Menu item object. 
     169     * @param  int     $depth       Depth of the menu. 
     170     * @param  array   $args        wp_nav_menu() arguments. 
     171     * @return string  $item_output The menu item output with social icon. 
     172     */ 
     173    function nav_menu_social_icons( $item_output, $item, $depth, $args ) { 
     174 
     175        // Return early if theme adds no support for Widget Bundle. 
     176        if ( ! current_theme_supports( 'themezee-widget-bundle' ) ) : 
     177            return $item_output; 
     178        endif; 
     179 
     180        $theme_support = get_theme_support( 'themezee-widget-bundle' ); 
     181 
     182        // Return early if theme adds no support for SVG Icons. 
     183        if ( ! isset( $theme_support[0]['svg_icons'] ) || false === $theme_support[0]['svg_icons'] ) : 
     184            return $item_output; 
     185        endif; 
     186 
     187        // Get supported social icons. 
     188        $social_icons = $this->supported_social_icons(); 
     189 
     190        // Get Social Menu. 
     191        $widget_options_all = get_option( $this->option_name ); 
     192        $options = $widget_options_all[ $this->number ]; 
     193        $social_menu = $options['menu']; 
     194 
     195        // Change SVG icon inside social links menu if there is supported URL. 
     196        if ( $social_menu === $args->menu ) { 
     197            $icon = 'star'; 
     198            foreach ( $social_icons as $attr => $value ) { 
     199                if ( false !== strpos( $item_output, $attr ) ) { 
     200                    $icon = esc_attr( $value ); 
     201                } 
     202            } 
     203            $item_output = str_replace( $args->link_after, '</span>' . $this->get_svg( $icon ), $item_output ); 
     204        } 
     205 
     206        return $item_output; 
     207    } 
     208 
     209    /** 
     210     * Return SVG markup. 
     211     * 
     212     * @param string $icon SVG icon id. 
     213     * @return string $svg SVG markup. 
     214     */ 
     215    function get_svg( $icon = null ) { 
     216        // Return early if no icon was defined. 
     217        if ( empty( $icon ) ) { 
     218            return; 
     219        } 
     220 
     221        // Create SVG markup. 
     222        $svg = '<svg class="icon icon-' . esc_attr( $icon ) . '" aria-hidden="true" role="img">'; 
     223        $svg .= ' <use xlink:href="' . TZWB_PLUGIN_URL . 'assets/icons/social-icons.svg#icon-' . esc_html( $icon ) . '"></use> '; 
     224        $svg .= '</svg>'; 
     225 
     226        return $svg; 
     227    } 
     228 
     229    /** 
     230     * Returns an array of supported social links (URL and icon name). 
     231     * 
     232     * @return array $social_links_icons 
     233     */ 
     234    function supported_social_icons() { 
     235        // Supported social links icons. 
     236        $supported_social_icons = array( 
     237            '500px.com'       => '500px', 
     238            'amazon'          => 'amazon', 
     239            'apple'           => 'apple', 
     240            'bandcamp.com'    => 'bandcamp', 
     241            'behance.net'     => 'behance', 
     242            'bitbucket.org'   => 'bitbucket', 
     243            'codepen.io'      => 'codepen', 
     244            'deviantart.com'  => 'deviantart', 
     245            'digg.com'        => 'digg', 
     246            'dribbble.com'    => 'dribbble', 
     247            'dropbox.com'     => 'dropbox', 
     248            'etsy.com'        => 'etsy', 
     249            'facebook.com'    => 'facebook', 
     250            'feed'            => 'feed', 
     251            'flickr.com'      => 'flickr', 
     252            'foursquare.com'  => 'foursquare', 
     253            'plus.google.com' => 'google-plus', 
     254            'github.com'      => 'github', 
     255            'instagram.com'   => 'instagram', 
     256            'linkedin.com'    => 'linkedin', 
     257            'mailto:'         => 'envelope-o', 
     258            'medium.com'      => 'medium', 
     259            'meetup.com'      => 'meetup', 
     260            'pinterest.com'   => 'pinterest-p', 
     261            'getpocket.com'   => 'get-pocket', 
     262            'reddit.com'      => 'reddit-alien', 
     263            'skype.com'       => 'skype', 
     264            'skype:'          => 'skype', 
     265            'slideshare.net'  => 'slideshare', 
     266            'snapchat.com'    => 'snapchat-ghost', 
     267            'soundcloud.com'  => 'soundcloud', 
     268            'spotify.com'     => 'spotify', 
     269            'stumbleupon.com' => 'stumbleupon', 
     270            'tumblr.com'      => 'tumblr', 
     271            'twitch.tv'       => 'twitch', 
     272            'twitter.com'     => 'twitter', 
     273            'vimeo.com'       => 'vimeo', 
     274            'vine.co'         => 'vine', 
     275            'vk.com'          => 'vk', 
     276            'wordpress.org'   => 'wordpress', 
     277            'wordpress.com'   => 'wordpress', 
     278            'xing.com'        => 'xing', 
     279            'yelp.com'        => 'yelp', 
     280            'youtube.com'     => 'youtube', 
     281        ); 
     282 
     283        return $supported_social_icons; 
     284    } 
     285 
     286    /** 
    162287     * Update Widget Settings 
    163288     * 
  • themezee-widget-bundle/trunk/languages/themezee-widget-bundle.pot

    r1656428 r1692415  
    44"Project-Id-Version: ThemeZee Widget Bundle\n" 
    55"Report-Msgid-Bugs-To: https://themezee.com/\n" 
    6 "POT-Creation-Date: 2017-02-07 17:06+0100\n" 
     6"POT-Creation-Date: 2017-07-07 12:22+0200\n" 
    77"PO-Revision-Date: 2015-12-29 14:56+0100\n" 
    88"Last-Translator: \n" 
     
    1212"Content-Type: text/plain; charset=UTF-8\n" 
    1313"Content-Transfer-Encoding: 8bit\n" 
    14 "X-Generator: Poedit 1.8.11\n" 
     14"X-Generator: Poedit 1.8.12\n" 
    1515"X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;" 
    1616"_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;" 
     
    127127#: includes/widgets/widget-recent-comments.php:262 
    128128#: includes/widgets/widget-recent-posts.php:307 
    129 #: includes/widgets/widget-social-icons.php:193 
     129#: includes/widgets/widget-social-icons.php:318 
    130130#: includes/widgets/widget-tabbed-content.php:455 
    131131#: includes/widgets/widget-tabbed-content.php:486 
     
    272272msgstr "" 
    273273 
    274 #: includes/widgets/widget-social-icons.php:199 
     274#: includes/widgets/widget-social-icons.php:324 
    275275msgid "Select Social Menu:" 
    276276msgstr "" 
     
    325325msgstr "" 
    326326 
    327 #: themezee-widget-bundle.php:239 
     327#: themezee-widget-bundle.php:252 
    328328msgid "Settings" 
    329329msgstr "" 
    330330 
    331 #: themezee-widget-bundle.php:257 
     331#: themezee-widget-bundle.php:270 
    332332#, php-format 
    333333msgid "Version %s" 
    334334msgstr "" 
    335335 
    336 #: themezee-widget-bundle.php:261 
     336#: themezee-widget-bundle.php:274 
    337337msgid "Plugin Settings" 
    338338msgstr "" 
    339339 
    340 #: themezee-widget-bundle.php:262 
     340#: themezee-widget-bundle.php:275 
    341341msgid "View Documentation" 
    342342msgstr "" 
  • themezee-widget-bundle/trunk/readme.txt

    r1656583 r1692415  
    66Requires at least: 4.4 
    77Tested up to: 4.8 
    8 Stable tag: 1.1 
     8Stable tag: 1.0.6 
    99License: GPLv2 or later 
    1010 
     
    4444== Changelog == 
    4545 
     46= 1.2 = 
     47 
     48* added support for SVG Icons in Social Icons Widget 
     49 
    4650= 1.1 = 
    4751 
     
    7983 
    8084* Initial Release 
     85 
     86== Ressources == 
     87 
     88The ThemeZee Widget Bundle plugin includes the following third-party resources: 
     89 
     901. Genericons Icon Font - http://genericons.com 
     91License: Distributed under the terms of the GPLv2 (https://www.gnu.org/licenses/gpl-2.0.html) 
     92Copyright: 2015 Automattic, Inc., https://automattic.com/ 
     93 
     942. Social Icons Subset from Font Awesome - http://fontawesome.io/ 
     95License: Distributed under the terms of the SIL OFL 1.1 (scripts.sil.org/OFL) 
     96Copyright: 2017 Dave Gandy, http://fontawesome.io/ 
  • themezee-widget-bundle/trunk/themezee-widget-bundle.php

    r1656573 r1692415  
    77 * Author: ThemeZee 
    88 * Author URI: https://themezee.com/ 
    9  * Version: 1.1 
     9 * Version: 1.2 
    1010 * Text Domain: themezee-widget-bundle 
    1111 * Domain Path: /languages/ 
     
    6363 
    6464        // Define Version Number. 
    65         define( 'TZWB_VERSION', '1.1' ); 
     65        define( 'TZWB_VERSION', '1.2' ); 
    6666 
    6767        // Plugin Folder Path. 
Note: See TracChangeset for help on using the changeset viewer.