View file vmag/inc/widgets/vmag-widget-fields.php

File size: 11.87Kb
<?php
/**
 * Define custom fields for widgets
 * 
 * @package VMag
 */
function vmag_widgets_show_widget_field( $instance = '', $widget_field = '', $athm_field_value = '' ) {
    
    extract( $widget_field );

    switch ( $vmag_widgets_field_type ) {

    	// Standard text field
        case 'text' :
        ?>
            <p>
                <label for="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>"><?php echo esc_html( $vmag_widgets_title ); ?>:</label>
                <input class="widefat" id="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>" name="<?php echo esc_attr( $instance->get_field_name( $vmag_widgets_name ) ); ?>" type="text" value="<?php echo esc_html( $athm_field_value ); ?>" />

                <?php if ( isset( $vmag_widgets_description ) ) { ?>
                    <br />
                    <small><?php echo esc_html( $vmag_widgets_description ); ?></small>
                <?php } ?>
            </p>
        <?php
            break;

        // Standard url field
        case 'url' :
        ?>
            <p>
                <label for="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>"><?php echo esc_html( $vmag_widgets_title ); ?>:</label>
                <input class="widefat" id="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>" name="<?php echo esc_html( $instance->get_field_name( $vmag_widgets_name ) ); ?>" type="text" value="<?php echo esc_html( $athm_field_value ); ?>" />

                <?php if ( isset( $vmag_widgets_description ) ) { ?>
                    <br />
                    <small><?php echo esc_html( $vmag_widgets_description ); ?></small>
                <?php } ?>
            </p>
        <?php
            break;

        // Textarea field
        case 'textarea' :
        ?>
            <p>
                <label for="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>"><?php echo esc_html( $vmag_widgets_title ); ?>:</label>
                <textarea class="widefat" rows="<?php echo esc_attr($vmag_widgets_row); ?>" id="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>" name="<?php echo esc_html( $instance->get_field_name( $vmag_widgets_name ) ); ?>"><?php echo esc_html( $athm_field_value ); ?></textarea>
            </p>
        <?php
            break;

        // Checkbox field
        case 'checkbox' :
        ?>
            <p>
                <input id="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>" name="<?php echo esc_html( $instance->get_field_name( $vmag_widgets_name ) ); ?>" type="checkbox" value="1" <?php checked('1', $athm_field_value); ?>/>
                <label for="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>"><?php echo esc_html( $vmag_widgets_title ); ?></label>

                <?php if ( isset( $vmag_widgets_description ) ) { ?>
                    <br />
                    <small><?php echo esc_html( $vmag_widgets_description ); ?></small>
                <?php } ?>
            </p>
        <?php
            break;

        // Radio fields
        case 'radio' :
        	if( empty( $athm_field_value ) ) {
        		$athm_field_value = $vmag_widgets_default;
        	}
        ?>
            <p>
                <?php
                echo esc_html( $vmag_widgets_title );
                echo '<br />';
                foreach ( $vmag_widgets_field_options as $athm_option_name => $athm_option_title ) {
                    ?>
                    <input id="<?php echo esc_attr( $instance->get_field_id( $athm_option_name ) ); ?>" name="<?php echo esc_html( $instance->get_field_name( $vmag_widgets_name ) ); ?>" type="radio" value="<?php echo esc_attr($athm_option_name); ?>" <?php checked( $athm_option_name, $athm_field_value ); ?> />
                    <label for="<?php echo esc_attr( $instance->get_field_id( $athm_option_name ) ); ?>"><?php echo esc_html($athm_option_title); ?></label>
                    <br />
                <?php } ?>

                <?php if ( isset( $vmag_widgets_description ) ) { ?>
                    <small><?php echo esc_html( $vmag_widgets_description ); ?></small>
                <?php } ?>
            </p>
        <?php
            break;

        // Select field
        case 'select' :
            if( empty( $athm_field_value ) ) {
                $athm_field_value = $vmag_widgets_default;
            }
        ?>
            <p>
                <label for="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>"><?php echo esc_html( $vmag_widgets_title ); ?>:</label>
                <select name="<?php echo esc_attr( $instance->get_field_name( $vmag_widgets_name ) ); ?>" id="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>" class="widefat">
                    <?php foreach ( $vmag_widgets_field_options as $athm_option_name => $athm_option_title ) { ?>
                        <option value="<?php echo esc_attr($athm_option_name); ?>" id="<?php echo esc_attr( $instance->get_field_id($athm_option_name ) ); ?>" <?php selected( $athm_option_name, $athm_field_value ); ?>><?php echo esc_html( $athm_option_title ); ?></option>
                    <?php } ?>
                </select>

                <?php if ( isset( $vmag_widgets_description ) ) { ?>
                    <br />
                    <small><?php echo esc_html( $vmag_widgets_description ); ?></small>
                <?php } ?>
            </p>
        <?php
            break;

        case 'number' :
        	if( empty( $athm_field_value ) ) {
        		$athm_field_value = $vmag_widgets_default;
        	}
        ?>
            <p>
                <label for="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>"><?php echo esc_html( $vmag_widgets_title ); ?>:</label><br />
                <input name="<?php echo esc_html( $instance->get_field_name( $vmag_widgets_name ) ); ?>" type="number" step="1" min="1" id="<?php echo esc_attr( $instance->get_field_id( $vmag_widgets_name ) ); ?>" value="<?php echo esc_html( $athm_field_value ); ?>" class="small-text" />

                <?php if ( isset( $vmag_widgets_description ) ) { ?>
                    <br />
                    <small><?php echo esc_html( $vmag_widgets_description ); ?></small>
                <?php } ?>
            </p>
       	<?php
            break;

        case 'section_header':
        ?>
        	<span class="section-header"><?php echo esc_attr( $vmag_widgets_title ); ?></span>
        <?php
        	break;

        case 'widget_layout_image':
        ?>
            <div class="layout-image-wrapper">
                <span class="image-title"><?php echo esc_attr( $vmag_widgets_title ); ?></span>
                <img src="<?php echo esc_url( $vmag_widgets_layout_img ); ?>" title="<?php esc_html_e( 'Widget Layout', 'vmag' ); ?>" />
            </div>
        <?php
            break;

        case 'upload' :

            $id = $instance->get_field_id($vmag_widgets_name);
            $class = '';
            $int = '';
            $value = $athm_field_value;
            $name = $instance->get_field_name($vmag_widgets_name);


            if ($value) {
                $class = ' has-file';
            }
            ?>
            <div class="sub-option widget-upload">
            <label for="<?php echo esc_attr($instance->get_field_id($vmag_widgets_name)); ?>"><?php esc_html($vmag_widgets_title); ?></label><br/>
            <input id="<?php echo esc_attr($id); ?>" class="upload <?php echo esc_attr($class); ?>" type="text" name="<?php echo esc_attr($name); ?>" value="<?php echo esc_url($value); ?>" placeholder="<?php esc_html_e('No file chosen', 'vmag'); ?>" />
            <?php
            if (function_exists('wp_enqueue_media')) {
            ?>
                <input id="upload-<?php echo esc_attr($id); ?>" class="ap-upload-button button" type="button" value="<?php esc_html_e('Upload', 'vmag'); ?>" />
            <?php
            } else {
            ?>
                <p><i><?php esc_html_e('Upgrade your version of WordPress for full media support.', 'vmag'); ?></i></p>
            <?php
            }
            ?>
            <div class="screenshot team-thumb" id="<?php echo esc_attr($id); ?>-image"><br/>
            <?php
            if ($value != '') {
                $attachment_id = attachment_url_to_postid($value);

                $image_array = wp_get_attachment_image_src($attachment_id, 'medium');
                $image = preg_match('/(^.*\.jpg|jpeg|png|gif|ico*)/i', $value);
                if ($image) {
                    ?>
                    <img width="100%" height="" src="<?php echo esc_url($image_array[0]); ?>" alt="" /><a class="remove-image remove-screenshot"><?php esc_html_e( 'Remove', 'vmag' ); ?></a>
                    <?php
                } else {
                    $parts = explode("/", $value);
                    for ($i = 0; $i < sizeof($parts); ++$i) {
                        $title = $parts[$i];
                    }

                    // Standard generic output if it's not an image.
                    $title = esc_html__('View File', 'vmag');
                    ?>
                    <div class="no-image"><span class="file_link"><a href="' . $value . '" target="_blank" rel="external"><?php esc_html($title); ?></a></span></div>
                    <?php
                }
            }
            ?>
            </div></div><br/>
            <?php
            break;

        //Multi checkboxes
        case 'multicheckboxes':
            if( isset( $vmag_widgets_title ) ) {
            ?>
                <label><?php echo esc_html( $vmag_widgets_title ); ?>:</label>
            <?php
            }
            foreach ( $vmag_widgets_field_options as $athm_option_name => $athm_option_title) {

                if( isset( $athm_field_value[$athm_option_name] ) ) {
                    $athm_field_value[$athm_option_name] = 1;
                }else{
                    $athm_field_value[$athm_option_name] = 0;
                }
                
            ?>
                <p>
                    <input id="<?php echo esc_attr( $instance->get_field_id( $athm_option_name ) );?>" name="<?php echo esc_attr( $instance->get_field_name( $vmag_widgets_name ).'['.$athm_option_name.']' ); ?>" type="checkbox" value="1" <?php checked( '1', $athm_field_value[$athm_option_name] ); ?>/>
                    <label for="<?php echo esc_attr( $instance->get_field_id( $athm_option_name ) );?>"><?php echo esc_html($athm_option_title); ?></label>
                </p>
            <?php
                }
                if ( isset( $vmag_widgets_description ) ) {
            ?>
                    <small><em><?php echo esc_html( $vmag_widgets_description ); ?></em></small>
            <?php
                }
        break;
    }
}

function vmag_widgets_updated_field_value( $widget_field, $new_field_value ) {

    extract( $widget_field );

    // Allow only integers in number fields
    if ( $vmag_widgets_field_type == 'number') {
        return vmag_sanitize_number( $new_field_value );

        // Allow some tags in textareas
    } elseif ( $vmag_widgets_field_type == 'textarea' ) {
        // Check if field array specified allowed tags
        if ( !isset( $vmag_widgets_allowed_tags ) ) {
            // If not, fallback to default tags
            $vmag_widgets_allowed_tags = '<p><strong><em><a>';
        }
        return strip_tags( $new_field_value, $vmag_widgets_allowed_tags );

        // No allowed tags for all other fields
    } elseif ( $vmag_widgets_field_type == 'url' ) {
        return esc_url( $new_field_value );
    } elseif ( $vmag_widgets_field_type == 'multicheckboxes' ) {
        return $new_field_value;
    } else {
        return strip_tags( $new_field_value );
    }
}