HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: /home/mmickelson/dragonexpert.com/wp-content/themes/coni/inc/widgets/service.php
<?php

add_action('admin_enqueue_scripts', 'coni_service_widget_scripts');

function coni_service_widget_scripts(){

    wp_enqueue_media();

    wp_enqueue_script( 'coni_service_widget_script', get_template_directory_uri() . '/js/widget.js', false, '1.0', true );

}


class coni_Service extends WP_Widget{

    /**
     * Register widget with WordPress.
     */
    function __construct() {
        parent::__construct(
            'service-widget', // Base ID
            esc_attr__( 'Coni - Service widget', 'coni' ), // Name
            array( 
                'description' => esc_attr__( 'Display a Service or Feature description.', 'coni' ),
            )
        );
    }



    /**
     * Front-end display of widget.
     *
     * @see WP_Widget::widget()
     *
     * @param array $args     Widget arguments.
     * @param array $instance Saved values from database.
     */
    public function widget( $args, $instance ){


        echo $args['before_widget'];

        ?>

            <div class="col-md-4 col-sm-6 service">

                <?php if( !empty($instance['image_uri']) ): ?>
                <div class="service-icon-wrap">
                    <img src="<?php echo esc_url( $instance['image_uri'] ); ?>" alt="" class="service-icon"/>
                </div>
                <?php endif; ?>

                <div class="service-text">
                    <h4><?php if( !empty( $instance['title'] ) ): echo apply_filters( 'widget_title', $instance['title'] ); endif; ?></h4>
                    <?php 
                    if( !empty($instance['text']) ):
                    
                        echo '<p>';
                            $wp_kses_args = array(
                                'a' => array(
                                    'href' => array(),
                                    'title' => array()
                                ),
                                'br' => array(),
                                'em' => array(),
                                'strong' => array(),
                            );
                            echo htmlspecialchars_decode( wp_kses( apply_filters( 'widget_title', $instance['text'] ), $wp_kses_args ) );
                        echo '</p>';
                    endif;
                    ?>  
                    <?php if( !empty( $instance['link'] ) ): ?>
                    <a href="<?php echo esc_url( $instance['link'] ); ?>" class="read-more"><?php if( !empty( $instance['link_title'] ) ): echo $instance['link_title']; endif; ?> <i class="fa fa-angle-right"></i></a>
                    <?php endif; ?>
                </div>
                <div class="clearfix"></div>
            </div><!-- service -->

        <?php

        echo $args['after_widget'];



    }





    /**
     * Sanitize widget form values as they are saved.
     *
     * @see WP_Widget::update()
     *
     * @param array $new_instance Values just sent to be saved.
     * @param array $old_instance Previously saved values from database.
     *
     * @return array Updated safe values to be saved.
     */
    public function update( $new_instance, $old_instance ) {

        $instance = $old_instance;

        $instance['text'] = stripslashes(wp_filter_post_kses($new_instance['text']));

        $instance['title'] = strip_tags($new_instance['title']);
		
		$instance['link_title'] = strip_tags( $new_instance['link_title'] );

        $instance['link'] = strip_tags( $new_instance['link'] );

        $instance['image_uri'] = strip_tags($new_instance['image_uri']);

        return $instance;

    }






    /**
     * Back-end widget form.
     *
     * @see WP_Widget::form()
     *
     * @param array $instance Previously saved values from database.
     */
    public function form( $instance ) {

        ?>
        <p>

            <label for="<?php echo $this->get_field_id('image_uri'); ?>"><?php esc_html_e('Image', 'coni'); ?></label><br/>



            <?php

            if ( !empty($instance['image_uri']) ) :

                echo '<img class="custom_media_image" src="' . $instance['image_uri'] . '" style="margin:0;padding:0;max-width:100px;float:left;display:inline-block" /><br />';

            endif;

            ?>



            <input type="text" class="widefat custom_media_url" name="<?php echo $this->get_field_name( 'image_uri' ); ?>"
                   id="<?php echo $this->get_field_id('image_uri'); ?>" value="<?php if( !empty( $instance['image_uri'] ) ): echo $instance['image_uri']; endif; ?>"
                   style="margin-top:5px;">


            <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
                   name="<?php echo $this->get_field_name('image_uri'); ?>" value="<?php esc_attr_e( 'Upload Image', 'coni' ); ?>"
                   style="margin-top:5px;"/>

        </p>


        <p>

            <label for="<?php echo $this->get_field_id('title'); ?>"><?php esc_html_e( 'Title', 'coni' ); ?></label><br/>

            <input type="text" name="<?php echo $this->get_field_name('title'); ?>"
                   id="<?php echo $this->get_field_id('title'); ?>" value="<?php if( !empty( $instance['title'] ) ): echo $instance['title']; endif; ?>"
                   class="widefat"/>

        </p>

        <p>

            <label for="<?php echo $this->get_field_id('text'); ?>"><?php esc_html_e( 'Text', 'coni' ); ?></label><br/>

            <textarea class="widefat" rows="8" cols="20" name="<?php echo $this->get_field_name( 'text' ); ?>"
                      id="<?php echo $this->get_field_id('text'); ?>"><?php
                        if( !empty( $instance['text'] ) ): echo htmlspecialchars_decode( $instance['text'] ); endif;
            ?></textarea>

        </p>
        
        <p>

            <label for="<?php echo $this->get_field_id('link_title'); ?>"><?php esc_html_e( 'Link Title','coni' ); ?></label><br />

            <input type="text" name="<?php echo $this->get_field_name('link_title'); ?>" id="<?php echo $this->get_field_id('link_title'); ?>" value="<?php if( !empty( $instance['link_title'] ) ): echo $instance['link_title']; endif; ?>" class="widefat" />

        </p>
        <p>

            <label for="<?php echo $this->get_field_id('link'); ?>"><?php esc_html_e( 'Link','coni' ); ?></label><br />

            <input type="text" name="<?php echo $this->get_field_name('link'); ?>" id="<?php echo $this->get_field_id('link'); ?>" value="<?php if( !empty( $instance['link'] ) ): echo $instance['link']; endif; ?>" class="widefat" />

        </p>

        



    <?php

    }

}


register_widget( 'coni_Service' );