Forum Replies Created

Viewing 11 replies - 136 through 146 (of 146 total)
  • Thread Starter Hyyan Abo Fakher

    (@hyyan)

    Hey , thank for reply

    What I mean is , if the wordpress dashboard is in another lang than en for example arabic then the dashboard direction will be rtl and the plugin do something in css so it miss the preview in this mode .

    The solution will be by adding an new css file which support RTL , I think I can do that easily , And I will send PR in github to fix this issue if you are interested, just let me know .

    Thanks

    Thread Starter Hyyan Abo Fakher

    (@hyyan)

    Thanks a lot , yes it answer my question , I was looking in export json file but I didn’t see my options so I thought it is not working .

    Thanks again

    Thread Starter Hyyan Abo Fakher

    (@hyyan)

    Thanks for replay I think the widget should output the style before the widget is displayed directly not in the header of the page , in other words the css function must be called in the widget method like this : $this->css() and thats I can apply a style for every instance , What do you think about ? of course the css mehtod must be modified too to handle the generation of unique class for every widget .

    Any way this is a modified version of this awesome widget :

    class Simple_Social_Icons_Widget extends WP_Widget {
    
        /**
         * Default widget values.
         *
         * @var array
         */
        protected $defaults;
    
        /**
         * Default widget values.
         *
         * @var array
         */
        protected $sizes;
    
        /**
         * Default widget profile glyphs.
         *
         * @var array
         */
        protected $glyphs;
    
        /**
         * Default widget profile values.
         *
         * @var array
         */
        protected $profiles;
    
        /**
         * Constructor method.
         *
         * Set some global values and create widget.
         */
        function __construct() {
    
            // add translation
            load_plugin_textdomain(
                    'ssiw'
                    , false
                    , trailingslashit(basename(dirname(__FILE__))) . 'languages/'
            );
    
            /**
             * Default widget option values.
             */
            $this->defaults = apply_filters('simple_social_default_styles', array(
                'title' => '',
                'new_window' => 1,
                'size' => 36,
                'border_radius' => 3,
                'icon_color' => '#ffffff',
                'icon_color_hover' => '#f1f1f1',
                'background_color' => '#ca0000',
                'background_color_hover' => '#970000',
                'alignment' => 'aligncenter',
                'dribbble' => '',
                'email' => '',
                'facebook' => '#',
                'flickr' => '',
                'github' => '',
                'gplus' => '',
                'instagram' => '',
                'linkedin' => '#',
                'pinterest' => '',
                'rss' => '',
                'stumbleupon' => '',
                'tumblr' => '',
                'twitter' => '#',
                'vimeo' => '#',
                'youtube' => '#',
            ));
    
            /**
             * Social profile glyphs.
             */
            $this->glyphs = apply_filters('simple_social_default_glyphs', array(
                'dribbble' => '',
                'email' => '',
                'facebook' => '',
                'flickr' => '',
                'github' => '',
                'gplus' => '',
                'instagram' => '',
                'linkedin' => '',
                'pinterest' => '',
                'rss' => '',
                'stumbleupon' => '',
                'tumblr' => '',
                'twitter' => '',
                'vimeo' => '',
                'youtube' => '',
            ));
    
            /**
             * Social profile choices.
             */
            $this->profiles = apply_filters('simple_social_default_profiles', array(
                'dribbble' => array(
                    'label' => __('Dribbble URI', 'ssiw'),
                    'pattern' => '<li class="social-dribbble"><a href="%s" %s>' . $this->glyphs['dribbble'] . '</a></li>',
                ),
                'email' => array(
                    'label' => __('Email URI', 'ssiw'),
                    'pattern' => '<li class="social-email"><a href="%s" %s>' . $this->glyphs['email'] . '</a></li>',
                ),
                'facebook' => array(
                    'label' => __('Facebook URI', 'ssiw'),
                    'pattern' => '<li class="social-facebook"><a href="%s" %s>' . $this->glyphs['facebook'] . '</a></li>',
                ),
                'flickr' => array(
                    'label' => __('Flickr URI', 'ssiw'),
                    'pattern' => '<li class="social-flickr"><a href="%s" %s>' . $this->glyphs['flickr'] . '</a></li>',
                ),
                'github' => array(
                    'label' => __('GitHub URI', 'ssiw'),
                    'pattern' => '<li class="social-github"><a href="%s" %s>' . $this->glyphs['github'] . '</a></li>',
                ),
                'gplus' => array(
                    'label' => __('Google+ URI', 'ssiw'),
                    'pattern' => '<li class="social-gplus"><a href="%s" %s>' . $this->glyphs['gplus'] . '</a></li>',
                ),
                'instagram' => array(
                    'label' => __('Instagram URI', 'ssiw'),
                    'pattern' => '<li class="social-instagram"><a href="%s" %s>' . $this->glyphs['instagram'] . '</a></li>',
                ),
                'linkedin' => array(
                    'label' => __('Linkedin URI', 'ssiw'),
                    'pattern' => '<li class="social-linkedin"><a href="%s" %s>' . $this->glyphs['linkedin'] . '</a></li>',
                ),
                'pinterest' => array(
                    'label' => __('Pinterest URI', 'ssiw'),
                    'pattern' => '<li class="social-pinterest"><a href="%s" %s>' . $this->glyphs['pinterest'] . '</a></li>',
                ),
                'rss' => array(
                    'label' => __('RSS URI', 'ssiw'),
                    'pattern' => '<li class="social-rss"><a href="%s" %s>' . $this->glyphs['rss'] . '</a></li>',
                ),
                'stumbleupon' => array(
                    'label' => __('StumbleUpon URI', 'ssiw'),
                    'pattern' => '<li class="social-stumbleupon"><a href="%s" %s>' . $this->glyphs['stumbleupon'] . '</a></li>',
                ),
                'tumblr' => array(
                    'label' => __('Tumblr URI', 'ssiw'),
                    'pattern' => '<li class="social-tumblr"><a href="%s" %s>' . $this->glyphs['tumblr'] . '</a></li>',
                ),
                'twitter' => array(
                    'label' => __('Twitter URI', 'ssiw'),
                    'pattern' => '<li class="social-twitter"><a href="%s" %s>' . $this->glyphs['twitter'] . '</a></li>',
                ),
                'vimeo' => array(
                    'label' => __('Vimeo URI', 'ssiw'),
                    'pattern' => '<li class="social-vimeo"><a href="%s" %s>' . $this->glyphs['vimeo'] . '</a></li>',
                ),
                'youtube' => array(
                    'label' => __('YouTube URI', 'ssiw'),
                    'pattern' => '<li class="social-youtube"><a href="%s" %s>' . $this->glyphs['youtube'] . '</a></li>',
                ),
            ));
    
            $widget_ops = array(
                'classname' => 'simple-social-icons',
                'description' => __('Displays select social icons.', 'ssiw'),
            );
    
            $control_ops = array(
                'id_base' => 'simple-social-icons',
            );
    
            $this->WP_Widget('simple-social-icons', __('Simple Social Icons', 'ssiw'), $widget_ops, $control_ops);
    
            /** Enqueue icon font */
            add_action('wp_enqueue_scripts', array($this, 'enqueue_css'));
        }
    
        /**
         * Widget Form.
         *
         * Outputs the widget form that allows users to control the output of the widget.
         *
         */
        function form($instance) {
    
            /** Merge with defaults */
            $instance = wp_parse_args((array) $instance, $this->defaults);
            ?>
    
            <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($instance['title']); ?>" /></p>
    
            <p><label><input id="<?php echo $this->get_field_id('new_window'); ?>" type="checkbox" name="<?php echo $this->get_field_name('new_window'); ?>" value="1" <?php checked(1, $instance['new_window']); ?>/> <?php esc_html_e('Open links in new window?', 'ssiw'); ?></label></p>
    
            <p><label for="<?php echo $this->get_field_id('size'); ?>"><?php _e('Icon Size', 'ssiw'); ?>:</label> <input id="<?php echo $this->get_field_id('size'); ?>" name="<?php echo $this->get_field_name('size'); ?>" type="text" value="<?php echo esc_attr($instance['size']); ?>" size="3" />px</p>
    
            <p><label for="<?php echo $this->get_field_id('border_radius'); ?>"><?php _e('Icon Border Radius:', 'ssiw'); ?></label> <input id="<?php echo $this->get_field_id('border_radius'); ?>" name="<?php echo $this->get_field_name('border_radius'); ?>" type="text" value="<?php echo esc_attr($instance['border_radius']); ?>" size="3" />px</p>
    
            <p>
                <label for="<?php echo $this->get_field_id('alignment'); ?>"><?php _e('Alignment', 'ssiw'); ?>:</label>
                <select id="<?php echo $this->get_field_id('alignment'); ?>" name="<?php echo $this->get_field_name('alignment'); ?>">
                    <option value="alignleft" <?php selected('alignright', $instance['alignment']) ?>><?php _e('Align Left', 'ssiw'); ?></option>
                    <option value="aligncenter" <?php selected('aligncenter', $instance['alignment']) ?>><?php _e('Align Center', 'ssiw'); ?></option>
                    <option value="alignright" <?php selected('alignright', $instance['alignment']) ?>><?php _e('Align Right', 'ssiw'); ?></option>
                </select>
            </p>
    
            <hr style="background: #ccc; border: 0; height: 1px; margin: 20px 0;" />
    
            <p><label for="<?php echo $this->get_field_id('background_color'); ?>"><?php _e('Icon Font Color:', 'ssiw'); ?></label> <input id="<?php echo $this->get_field_id('icon_color'); ?>" name="<?php echo $this->get_field_name('icon_color'); ?>" type="text" value="<?php echo esc_attr($instance['icon_color']); ?>" size="6" /></p>
    
            <p><label for="<?php echo $this->get_field_id('background_color_hover'); ?>"><?php _e('Icon Font Hover Color:', 'ssiw'); ?></label> <input id="<?php echo $this->get_field_id('icon_color_hover'); ?>" name="<?php echo $this->get_field_name('icon_color_hover'); ?>" type="text" value="<?php echo esc_attr($instance['icon_color_hover']); ?>" size="6" /></p>
    
            <p><label for="<?php echo $this->get_field_id('background_color'); ?>"><?php _e('Background Color:', 'ssiw'); ?></label> <input id="<?php echo $this->get_field_id('background_color'); ?>" name="<?php echo $this->get_field_name('background_color'); ?>" type="text" value="<?php echo esc_attr($instance['background_color']); ?>" size="6" /></p>
    
            <p><label for="<?php echo $this->get_field_id('background_color_hover'); ?>"><?php _e('Background Hover Color:', 'ssiw'); ?></label> <input id="<?php echo $this->get_field_id('background_color_hover'); ?>" name="<?php echo $this->get_field_name('background_color_hover'); ?>" type="text" value="<?php echo esc_attr($instance['background_color_hover']); ?>" size="6" /></p>
    
            <hr style="background: #ccc; border: 0; height: 1px; margin: 20px 0;" />
    
            <?php
            foreach ((array) $this->profiles as $profile => $data) {
    
                printf('<p><label for="%s">%s:</label></p>', esc_attr($this->get_field_id($profile)), esc_attr($data['label']));
                printf('<p><input type="text" id="%s" name="%s" value="%s" class="widefat" />', esc_attr($this->get_field_id($profile)), esc_attr($this->get_field_name($profile)), esc_url($instance[$profile]));
                printf('</p>');
            }
        }
    
        /**
         * Form validation and sanitization.
         *
         * Runs when you save the widget form. Allows you to validate or sanitize widget options before they are saved.
         *
         */
        function update($newinstance, $oldinstance) {
    
            foreach ($newinstance as $key => $value) {
    
                /** Border radius and Icon size must not be empty, must be a digit */
                if (( 'border_radius' == $key || 'size' == $key ) && ( '' == $value || !ctype_digit($value) )) {
                    $newinstance[$key] = 0;
                }
    
                /** Validate hex code colors */ elseif (strpos($key, '_color') && 0 == preg_match('/^#(([a-fA-F0-9]{3}$)|([a-fA-F0-9]{6}$))/', $value)) {
                    $newinstance[$key] = $oldinstance[$key];
                }
    
                /** Sanitize Profile URIs */ elseif (array_key_exists($key, (array) $this->profiles)) {
                    $newinstance[$key] = esc_url($newinstance[$key]);
                }
            }
    
            return $newinstance;
        }
    
        /**
         * Widget Output.
         *
         * Outputs the actual widget on the front-end based on the widget options the user selected.
         *
         */
        function widget($args, $instance) {
    
            extract($args);
    
            /** Merge with defaults */
            $instance = wp_parse_args((array) $instance, $this->defaults);
    
            $this->css();
            echo $before_widget;
    
            if (!empty($instance['title']))
                echo $before_title . apply_filters('widget_title', $instance['title'], $instance, $this->id_base) . $after_title;
    
            $output = '';
    
            $new_window = $instance['new_window'] ? 'target="_blank"' : '';
    
            $profiles = (array) $this->profiles;
    
            foreach ($profiles as $profile => $data) {
    
                if (empty($instance[$profile]))
                    continue;
    
                if (is_email($instance[$profile]))
                    $output .= sprintf($data['pattern'], 'mailto:' . esc_attr($instance[$profile]), $new_window);
                else
                    $output .= sprintf($data['pattern'], esc_url($instance[$profile]), $new_window);
            }
    
            if ($output)
                printf('<ul class="%s">%s</ul>', $instance['alignment'], $output);
    
            echo $after_widget;
        }
    
        function enqueue_css() {
    
            $cssfile = apply_filters('simple_social_default_css', plugin_dir_url(__FILE__) . 'css/style.css');
    
            wp_enqueue_style('simple-social-icons-font', esc_url($cssfile), array(), '1.0.5', 'all');
        }
    
        /**
         * Custom CSS.
         *
         * Outputs custom CSS to control the look of the icons.
         */
        function css() {
    
            /** Pull widget settings, merge with defaults */
            $all_instances = $this->get_settings();
            $instance = @wp_parse_args($all_instances[$this->number], $this->defaults);
    
            $font_size = round((int) $instance['size'] / 2);
            $icon_padding = round((int) $font_size / 2);
    
            /** The CSS to output */
            $css = <<<EOF
    		.{$this->id} ul li a,
    		.{$this->id} ul li a:hover {
    			background-color:  {$instance['background_color']} !important;
    			border-radius: {$instance['border_radius']}px;
    			color: {$instance['icon_color']} !important;
    			font-size: {$font_size}px;
    			padding: {$icon_padding}px;
    		}
    
    		.{$this->id} ul li a:hover {
    			background-color: {$instance['background_color_hover']} !important;
    			color: {$instance['icon_color_hover']} !important;
    		};
    EOF;
    
            /** Minify a bit */
            $css = str_replace("\t", '', $css);
            $css = str_replace(array("\n", "\r"), ' ', $css);
    
            /** Echo the CSS */
            echo '<style type="text/css" media="screen">' . $css . '</style>';
        }
    
    }
    
    add_action('widgets_init', 'ssiw_load_widget');
    
    /**
     * Widget Registration.
     *
     * Register Simple Social Icons widget.
     *
     */
    function ssiw_load_widget() {
    
        register_widget('Simple_Social_Icons_Widget');
    }

    Maybe you might consider such a update , Thanks a lot

    Thread Starter Hyyan Abo Fakher

    (@hyyan)

    Yes you are write , and I am using wordpess 4.0 , is there anything I can do about that , I really like this plugin

    Thread Starter Hyyan Abo Fakher

    (@hyyan)

    Thanks for replay , Acutely that is what I was doing before reporting this issue here , deactivate all plugins , activate this plugin , and then repeated this for every plugin and wp-ajaxify-comments plugin is the only one which causing this fatal error .

    HI @raptor2771 , this plugin is really awesome but it lacks support ??

    Anyway can’t you just sournd the service with Link shortcode ?it will make the icon and the text clickable .

    You could try to reset the plugin to default options to delete the cache, It might work , I thing the plugin have a problem with cache .

    Thread Starter Hyyan Abo Fakher

    (@hyyan)

    I think I have to use delete_transient( 'su/generator/popup' ); in order to clear the popup cache . so the UI responds to the language switch but the setting page still not responding cause the cache for setting ain’t cleared .

    Plugin Author Hyyan Abo Fakher

    (@hyyan)

    @digiman1 Thanks , and I am glad to help

    Plugin Author Hyyan Abo Fakher

    (@hyyan)

    @digiman1 Just to be sure are you using php5.3 and above ? because the plugin makes use of Anonymous functions which become available in PHP5.3

    Plugin Author Hyyan Abo Fakher

    (@hyyan)

    @digiman1 1.0.1 release doesn’t add anything new but it prevents direct
    access for the plugin file by checking the “ABSPATH”. nothing more than
    that. I’ve just tested the plugin and seemed to work perfectly, please can you post the error message to check . thanks

Viewing 11 replies - 136 through 146 (of 146 total)