| Server IP : 87.229.120.60 / Your IP : 216.73.216.86 Web Server : Apache System : Linux outside 5.4.8_Algonet_ZeroMAC_0.9.4.8 #6 SMP Mon Feb 3 20:36:07 CET 2020 x86_64 User : server ( 1002) PHP Version : 8.3.20 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/faktorteam/www/wp-content/plugins/searchwp-live-ajax-search/includes/ |
Upload File : |
<?php
/**
* Class SearchWP_Live_Search_Widget
*
* The SearchWP Live Ajax Search Widget
*
* @since 1.0
*/
class SearchWP_Live_Search_Widget extends WP_Widget {
/**
* Register the Widget with WordPress
*/
function __construct() {
parent::__construct(
'searchwp_live_search',
__( 'SearchWP Live Search', 'searchwp-live-ajax-search' ),
array( 'description' => __( 'SearchWP Live Search', 'searchwp-live-ajax-search' ), )
);
}
/**
* 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 ) {
$title = apply_filters( 'widget_title', $instance['title'] );
$destination = empty( $instance['destination'] ) ? '' : $instance['destination'];
$placeholder = empty( $instance['placeholder'] ) ? __( 'Search for...', 'searchwp-live-ajax-search' ) : $instance['placeholder'];
$engine = empty( $instance['engine'] ) ? 'default' : $instance['engine'];
$config = empty( $instance['config'] ) ? 'default' : $instance['config'];
echo wp_kses_post( $args['before_widget'] );
do_action( 'searchwp_live_search_before_widget' );
if ( ! empty( $title ) ) {
echo wp_kses_post( $args['before_title'] . $title . $args['after_title'] );
}
do_action( 'searchwp_live_search_widget_title', array(
'before_title' => $args['before_title'],
'title' => $title,
'after_title' => $args['after_title'],
) );
?>
<?php do_action( 'searchwp_live_search_widget_before_form' ); ?>
<form role="search" method="get" class="searchwp-live-search-widget-search-form" action="<?php echo esc_url( $destination ); ?>">
<?php do_action( 'searchwp_live_search_widget_before_field' ); ?>
<label>
<span class="screen-reader-text"><?php esc_html_e( 'Search for:', 'searchwp-live-ajax-search' ); ?></span>
<input type="search" class="search-field" placeholder="<?php echo esc_attr( $placeholder ); ?>" value="" name="swpquery" data-swplive="true" data-swpengine="<?php echo esc_attr( $engine ); ?>" data-swpconfig="<?php echo esc_attr( $config ); ?>" title="<?php echo esc_attr( $placeholder ); ?>" autocomplete="off">
</label>
<?php do_action( 'searchwp_live_search_widget_after_field' ); ?>
<input type="submit" class="search-submit" value="<?php esc_html_e( 'Search', 'searchwp-live-ajax-search' ); ?>">
<?php do_action( 'searchwp_live_search_widget_after_submit' ); ?>
</form>
<?php do_action( 'searchwp_live_search_widget_after_form' ); ?>
<?php
echo wp_kses_post( $args['after_widget'] );
do_action( 'searchwp_live_search_after_widget' );
}
/**
* Back-end widget form.
*
* @see WP_Widget::form()
*
* @param array $instance Previously saved values from database.
*
* @return string|void
*/
public function form( $instance ) {
$widget_title = isset( $instance['title'] ) ? $instance['title'] : __( 'Search', 'searchwp-live-ajax-search' );
$widget_placeholder = isset( $instance['placeholder'] ) ? $instance['placeholder'] : __( 'Search for...', 'searchwp-live-ajax-search' );
$widget_destination = isset( $instance['destination'] ) ? $instance['destination'] : '';
// We'll piggyback SearchWP itself to pull a list of search engines.
$widget_engine = isset( $instance['engine'] ) ? $instance['engine'] : 'default';
$engines = array();
if ( class_exists( 'SearchWP' ) ) {
if ( class_exists( '\\SearchWP\\Settings' ) ) {
$searchwp_engines = \SearchWP\Settings::get_engines();
foreach ( $searchwp_engines as $engine => $engine_settings ) {
$engines[ $engine ] = $engine_settings->get_label();
}
} else if ( method_exists( 'SearchWP', 'instance' ) ) {
$engines['default'] = 'Default';
$searchwp = SearchWP::instance();
$searchwp_engines = $searchwp->settings['engines'];
foreach ( $searchwp_engines as $engine => $engine_settings ) {
if ( isset( $engine_settings['searchwp_engine_label'] ) ) {
$engines[ $engine ] = $engine_settings['searchwp_engine_label'];
}
}
}
}
// we're going to utilize SearchWP_Live_Search_Form to populate the config dropdown
$widget_config = isset( $instance['config'] ) ? $instance['config'] : 'default';
if ( ! class_exists( 'SearchWP_Live_Search_Form' ) ) {
include_once( dirname( __FILE__ ) . '/class-form.php' );
}
$form = new SearchWP_Live_Search_Form();
$form->setup();
?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'searchwp-live-ajax-search' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $widget_title ); ?>">
</p>
<?php if ( ! empty( $engines ) ) : ?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'engine' ) ); ?>"><?php esc_html_e( 'SearchWP Engine:', 'searchwp-live-ajax-search' ); ?></label>
<select name="<?php echo esc_attr( $this->get_field_name( 'engine' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'engine' ) ); ?>">
<?php foreach ( $engines as $engine_name => $engine_label ) : ?>
<option value="<?php echo esc_attr( $engine_name ); ?>" <?php selected( $widget_engine, $engine_name ); ?>><?php echo esc_html( $engine_label ); ?></option>
<?php endforeach; ?>
</select>
</p>
<?php endif; ?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'config' ) ); ?>"><?php esc_html_e( 'Configuration:', 'searchwp-live-ajax-search' ); ?></label>
<select name="<?php echo esc_attr( $this->get_field_name( 'config' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'config' ) ); ?>">
<?php foreach ( $form->configs as $config => $val ) : ?>
<option value="<?php echo esc_attr( $config ); ?>" <?php selected( $widget_config, $config ); ?>><?php echo esc_html( $config ); ?></option>
<?php endforeach; ?>
</select>
</p>
<?php $swpuniqid = uniqid( 'swp' ); ?>
<p><a href="#" class="button searchwp-widget-<?php echo $swpuniqid; ?>"><?php esc_html_e( 'Advanced', 'searchwp-live-ajax-search' ); ?></a></p>
<div class="searchwp-live-search-widget-advanced" style="display:none;">
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'placeholder' ) ); ?>"><?php esc_html_e( 'Placeholder:', 'searchwp-live-ajax-search' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'placeholder' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'placeholder' ) ); ?>" type="placeholder" value="<?php echo esc_attr( $widget_placeholder ); ?>">
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'destination' ) ); ?>"><?php esc_html_e( 'Destination fallback URL (optional):', 'searchwp-live-ajax-search' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'destination' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'destination' ) ); ?>" type="text" value="<?php echo esc_attr( $widget_destination ); ?>">
</p>
</div>
<script type="text/javascript">
jQuery(document).ready(function($){
$('.searchwp-widget-<?php echo esc_attr( $swpuniqid ); ?>').click(function(){
var $advanced = $(this).parents().find('.searchwp-live-search-widget-advanced');
if($advanced.is(':visible')){
$advanced.hide();
}else{
$advanced.show();
}
return false;
});
});
</script>
<?php
}
/**
* 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 = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
$instance['destination'] = ( ! empty( $new_instance['destination'] ) ) ? strip_tags( $new_instance['destination'] ) : '';
$instance['placeholder'] = ( ! empty( $new_instance['placeholder'] ) ) ? strip_tags( $new_instance['placeholder'] ) : '';
$instance['engine'] = ( ! empty( $new_instance['engine'] ) ) ? strip_tags( $new_instance['engine'] ) : '';
$instance['config'] = ( ! empty( $new_instance['config'] ) ) ? strip_tags( $new_instance['config'] ) : '';
return $instance;
}
}
function searchwp_live_search_register_widget() {
register_widget( 'SearchWP_Live_Search_Widget' );
}
add_action( 'widgets_init', 'searchwp_live_search_register_widget' );