File: /var/www/karjerosdiena.lt/wp-content/plugins/wp-jobsearch/includes/widgets/featured-causes.php
<?php
/**
* JobSearch Featured Cause Class
*
* @package Featured Cause
*/
if (!class_exists('JobSearch_Featured_Cause')) {
/**
JobSearch Featured Cause class used to implement the Custom flicker gallery widget.
*/
class JobSearch_Featured_Cause extends WP_Widget {
/**
* Sets up a new jobsearch flicker widget instance.
*/
public function __construct() {
parent::__construct(
'jobsearch_featured_cause', // Base ID.
__('Featured Causes', 'wp-jobsearch'), // Name.
array('classname' => 'widget_feature', 'description' => __('Featured Causes widget.', 'wp-jobsearch'))
);
}
/**
* Outputs the jobsearch flicker widget settings form.
*
* @param array $instance Current settings.
*/
function form($instance) {
global $jobsearch_form_fields;
$instance = wp_parse_args((array) $instance, array('title' => '', 'cause' => ''));
$title = $instance['title'];
$cause = $instance['cause'];
$causes = jobsearch_all_causes(false, true);
?>
<div class="jobsearch-element-field">
<div class="elem-label">
<label><?php esc_html_e('Title', 'wp-jobsearch') ?></label>
</div>
<div class="elem-field">
<?php
$field_params = array(
'cus_name' => $this->get_field_name('title'),
'force_std' => $title,
);
$jobsearch_form_fields->input_field($field_params);
?>
</div>
</div>
<div class="jobsearch-element-field">
<div class="elem-label">
<label><?php esc_html_e('Select Causes', 'wp-jobsearch') ?></label>
</div>
<div class="elem-field">
<?php
$field_params = array(
'force_std' => $cause,
'cus_name' => $this->get_field_name('cause') . '[]',
'options' => $causes,
);
$jobsearch_form_fields->multi_select_field($field_params);
?>
</div>
</div>
<?php
}
/**
* Handles updating settings for the current jobsearch flicker widget instance.
*
* @param array $new_instance New settings for this instance as input by the user.
* @param array $old_instance Old settings for this instance.
* @return array Settings to save or bool false to cancel saving.
*/
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['title'] = $new_instance['title'];
$instance['cause'] = $new_instance['cause'];
return $instance;
}
/**
* Outputs the content for the current jobsearch flicker widget instance.
*
* @param array $args Display arguments including 'before_title', 'after_title',
* 'before_widget', and 'after_widget'.
* @param array $instance Settings for the current Text widget instance.
*/
function widget($args, $instance) {
extract($args, EXTR_SKIP);
$title = empty($instance['title']) ? '' : apply_filters('widget_title', $instance['title']);
$title = htmlspecialchars_decode(stripslashes($title));
$cause = empty($instance['cause']) ? '' : $instance['cause'];
$before_widget = isset($args['before_widget']) ? $args['before_widget'] : '';
$after_widget = isset($args['after_widget']) ? $args['after_widget'] : '';
$before_title = isset($args['before_title']) ? $args['before_title'] : '';
$after_title = isset($args['after_title']) ? $args['after_title'] : '';
echo ( $before_widget );
if ('' !== $title) {
echo ( $before_title ) . esc_html($title) . ( $after_title );
}
$args = array(
'post_type' => 'cause',
'posts_per_page' => -1,
'post_status' => 'publish',
'fields' => 'ids',
'order' => 'ASC',
'orderby' => 'post_title',
);
if (!empty($cause)) {
$args['post__in'] = $cause;
}
$cause_query = new WP_Query($args);
if ($cause_query->have_posts()) {
wp_enqueue_script('jobsearch-skill');
foreach ($cause_query->posts as $post_id) {
global $post;
$post_thumbnail_id = get_post_thumbnail_id($post_id);
$post_thumbnail_image = wp_get_attachment_image_src($post_thumbnail_id);
$post_thumbnail_src = isset($post_thumbnail_image[0]) && esc_url($post_thumbnail_image[0]) != '' ? $post_thumbnail_image[0] : '';
$cause_date = get_post_meta($post_id, 'jobsearch_field_cause_date', true);
$related_cause_goal_amount = get_post_meta($post_id, 'jobsearch_field_cause_goal_amount', true);
$related_cause_raised_amount = get_post_meta($post_id, 'jobsearch_field_cause_raised_amount', true);
$related_raised_percentage = 0;
if ($related_cause_goal_amount == '') {
$related_cause_goal_amount = 0;
}
if ($related_cause_raised_amount == '') {
$related_cause_raised_amount = 0;
}
if ($related_cause_raised_amount > 0 && $related_cause_goal_amount > 0) {
$related_raised_percentage = ( $related_cause_raised_amount / $related_cause_goal_amount ) * 100;
}
$causes_donors_count = jobsearch_donors_count_by_cause_id($post_id);
?>
<div class="featured-cause">
<figure>
<a href="<?php echo esc_url(get_permalink(get_the_ID())) ?>"><img src="<?php echo esc_url($post_thumbnail_src) ?>" alt=""></a>
<small>$<?php echo absint($related_cause_goal_amount); ?></small>
</figure>
<div class="jobsearch-widget-feature">
<time><i class="jobsearch-icon-time"></i><?php echo date_i18n(get_option('date_format'), strtotime($cause_date)) ?></time>
<h6><a href="<?php echo esc_url(get_permalink(get_the_ID())) ?>" title="<?php echo esc_html(get_the_title(get_the_ID())) ?>"><?php echo wp_trim_words(get_the_title(get_the_ID()), 4, '...') ?></a></h6>
<div class="jobsearch-skillst jobsearch-feature-cause">
<div class="skillbar" data-percent="<?php echo absint($related_raised_percentage); ?>%">
<div class="count"></div>
<div class="count-bar"></div>
</div>
<small><?php esc_html_e('completed', 'wp-jobsearch') ?></small>
</div>
</div>
<div class="clear"></div>
</div>
<?php
}
wp_reset_postdata();
?><script> jQuery(document).ready(function () {
jQuery('.skillbar').each(function () {
//alert('a');
jQuery(this).appear(function () {
jQuery(this).find('.count-bar').animate({
width: jQuery(this).attr('data-percent')
}, 3000);
var percent = jQuery(this).attr('data-percent');
jQuery(this).find('.count').html('<span>' + percent + '</span>');
});
});
});
</script><?php
}
?>
<?php
echo ( $after_widget );
}
}
}
add_action('widgets_init', function() {return register_widget("jobsearch_featured_cause");});