%PDF- %PDF-
Direktori : /home/dopla/www/wp-content/plugins/kingcomposer/includes/ |
Current File : /home/dopla/www/wp-content/plugins/kingcomposer/includes/kc.widgets.php |
<?php /** * * King Composer * (c) KingComposer.com * */ if(!defined('KC_FILE')) { header('HTTP/1.0 403 Forbidden'); exit; } add_action( 'widgets_init', 'kc_register_widgets' ); function kc_register_widgets() { register_widget( 'kc_widget_content' ); } class kc_widget_content extends WP_Widget { function __construct() { $widget = array( 'classname' => 'kc_widget_content', 'description' => __('Display content is built by KingComposer Page Builder','kingcomposer') ); $control= array( 'width' => 250, 'height' => 350, 'id_base' => 'kc_widget_content' ); parent::__construct('kc_widget_content','KC Content', $widget, $control); } function widget( $args, $instance ) { global $kc, $post, $kc_prevent_infinity_loop; if (!isset($kc_prevent_infinity_loop)) $kc_prevent_infinity_loop = array(); extract( $args ); $title = empty( $instance['title'] ) ? '' : $instance['title']; $title_as = empty( $instance['title_as'] ) ? '' : $instance['title_as']; $id = empty( $instance['id'] ) ? '' : $instance['id']; $class = empty( $instance['class'] ) ? '' : $instance['class']; if (strpos ($id, '#') !== false) { $id = explode('#', $id); $id = trim ($id[1]); if (isset($post) && (is_object($post) && $id == $post->ID) || (isset($kc_prevent_infinity_loop[$id]) && $kc_prevent_infinity_loop[$id] === true)) { echo '<div class="kc-content-widget">Error: Infinite loop, do not include widget into itself.</div>'; return false; } $kc_prevent_infinity_loop[$id] = true; if($title_as == 'yes') $title = get_the_title($id); }else{ echo '<div class="kc-content-widget">Error: Please select a widget content to display</div>'; return false; } if( !empty( $instance['class'] ) ){ $before_widget = str_replace( 'class="', 'class="'.$class.' ', $before_widget ); } echo $before_widget; if (!empty($title)) { echo $before_title; echo $title; echo $after_title; } echo '<div class="kc-content-widget">'; echo $kc->do_shortcode( kc_raw_content($id) ); echo '</div>'; unset ($kc_prevent_infinity_loop[$id]); echo $after_widget; } function update( $new, $old ) { $inst = $old; $inst['title'] = strip_tags( $new['title'] ); $inst['title_as'] = strip_tags( $new['title_as'] ); $inst['id'] = strip_tags( $new['id'] ); $inst['class'] = strip_tags( $new['class'] ); return $inst; } function form( $instance ) { $defaults = array( 'title' => __('KC Widget Content', 'kingcomposer'), 'title_as' => '', 'id' => '', 'class' => '' ); $instance = wp_parse_args( (array) $instance, $defaults ); ?> <!--label class="notice" style="color:red">Notice: Not work on localhost</label--> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"> <?php _e('Title', 'kingcomposer'); ?>: </label> <input id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" class="widefat" type="text" /> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'title_as' ) ); ?>"> <?php _e('Use post title', 'kingcomposer'); ?>?: </label> <input id="<?php echo esc_attr( $this->get_field_id( 'title_as' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title_as' ) ); ?>" value="yes"<?php if (esc_attr( $instance['title_as'] ) == 'yes') { echo ' checked="checked"'; } ?>" class="checkbox" type="checkbox" /> </p> <p class="kc-widget-content-pid"> <label for="<?php echo esc_attr( $this->get_field_id( 'id' ) ); ?>"> <?php _e('Content Filters', 'kingcomposer'); ?>: </label> <input class="widefat" type="text" onkeyup="<?php ob_start(); ?> if (this.value.length < 2) return; _$ = jQuery; rst = _$(this.parentNode.parentNode).find('select#<?php echo esc_attr( $this->get_field_id( 'select' ) );?>'); rid = _$(this.parentNode.parentNode).find('input#<?php echo esc_attr( $this->get_field_id( 'id' ) );?>'); rst.show().html('<option>Loading...</option>').off('change').on('change', function(){ rid.attr('value', this.value); }); _$.post( ajaxurl, { 'action': 'kc_suggestion', 'security': '<?php echo wp_create_nonce( "kc-nonce" ); ?>', 's': this.value, 'field_name': 'widget_content' }, function( result ){ rst.html(''); for( n in result ) { if (rst.html() === '') { rid.attr('value', result[n]+' #'+n); } rst.append('<option value="'+result[n]+' #'+n+'">'+result[n]+'</option>'); } } ); <?php $content = ob_get_contents(); ob_end_clean(); echo esc_attr (str_replace (array(" ", " ", "\n"), array('', ' ', ''), $content)); ?>" placeholder="<?php _e('Type least 2 characters', 'kingcomposer'); ?>" /> <select style="display:none;width: 100%;max-width: 100%;margin-top: -1px;" id="<?php echo esc_attr( $this->get_field_id( 'select' ) ); ?>" class="widefat"></select> </p> <p> <input id="<?php echo esc_attr( $this->get_field_id( 'id' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'id' ) ); ?>" value="<?php echo esc_attr( $instance['id'] ); ?>" class="widefat" type="text" readonly /> <?php $id = explode( ':', esc_attr( $instance['id'] ) ); ?> <a class="button" onclick="var id=this.parentNode.getElementsByTagName('input')[0].value.split('#')[1];if(id!=='')window.open(this.href+id);return false;" href="<?php echo admin_url('/post.php?action=edit&post='); ?>" style="margin-top:8px;"> <?php _e('Edit widget', 'kingcomposer'); ?> </a> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'class' ) ); ?>"> <?php _e('Widget Class', 'kingcomposer'); ?>: </label> <input id="<?php echo esc_attr( $this->get_field_id( 'class' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'class' ) ); ?>" value="<?php echo esc_attr( $instance['class'] ); ?>" class="widefat" type="text" /> </p> <?php } }