File "Widget.php"
Full Path: /home/laciafrdyl/www/wp-content/plugins/photo-gallery/admin/views/Widget.php
File size: 10.54 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Class WidgetView_bwg
*/
class WidgetView_bwg {
/**
* @param $args
* @param $instance
*/
function widget($args, $instance) {
extract($args);
$title = (!empty($instance['title']) ? sanitize_text_field($instance['title']) : "");
$type = (!empty($instance['type']) ? sanitize_text_field($instance['type']) : "gallery");
$view_type = (!empty($instance['view_type']) ? sanitize_text_field($instance['view_type']) : "thumbnails");
$gallery_id = (!empty($instance['gallery_id']) ? intval($instance['gallery_id']) : 0);
$album_id = (!empty($instance['album_id']) ? intval($instance['album_id']) : 0);
$theme_id = (!empty($instance['theme_id']) ? intval($instance['theme_id']) : 0);
$show = (!empty($instance['show']) ? sanitize_text_field($instance['show']) : "random");
$sort_by = 'order';
if ($show == 'random') {
$sort_by = 'random';
}
$order_by = 'ASC';
if ($show == 'last') {
$order_by = 'DESC';
}
$count = (!empty($instance['count']) ? intval($instance['count']) : intval(BWG()->options->image_column_number));
$width = (!empty($instance['width']) ? intval($instance['width']) : intval(BWG()->options->thumb_width));
$height = (!empty($instance['height']) ? intval($instance['height']) : intval(BWG()->options->thumb_height));
// Before widget.
echo $before_widget;
// Title of widget.
if ($title) {
echo $before_title . $title . $after_title;
}
// Widget output.
$params = array (
'from' => 'widget',
'theme_id' => intval($theme_id),
'sort_by' => sanitize_text_field($sort_by),
'order_by' => sanitize_text_field($order_by),
'image_enable_page' => 0
);
require_once(BWG()->plugin_dir . '/frontend/controllers/controller.php');
$controller_class = 'BWGControllerSite';
if ($type == 'gallery') {
if ($view_type == 'thumbnails') {
$gallery_type = 'thumbnails';
$view = 'Thumbnails';
}
else if ($view_type == 'masonry') {
$gallery_type = 'thumbnails_masonry';
$view = 'Thumbnails_masonry';
}
$params['gallery_type'] = sanitize_text_field($gallery_type);
$params['gallery_id'] = intval($gallery_id);
$params['thumb_width'] = intval($width);
$params['thumb_height'] = intval($height);
$params['image_column_number'] = intval($count);
$params['images_per_page'] = intval($count);
}
else {
$view = 'Album_compact_preview';
$params['gallery_type'] = 'album_compact_preview';
$params['album_id'] = $album_id;
$params['compuct_albums_per_page'] = intval($count);
$params['compuct_album_thumb_width'] = intval($width);
$params['compuct_album_thumb_height'] = intval($height);
$params['compuct_album_image_thumb_width'] = intval($width);
$params['compuct_album_image_thumb_height'] = intval($height);
$params['all_album_sort_by'] = sanitize_text_field($sort_by);
$params['all_album_order_by'] = sanitize_text_field($order_by);
$params['compuct_album_enable_page'] = 0;
}
$controller = new $controller_class($view);
$bwg = WDWLibrary::unique_number();
$pairs = WDWLibrary::get_shortcode_option_params( $params );
$controller->execute($pairs, 1, $bwg);
// After widget.
echo $after_widget;
}
/**
* Widget Control Panel.
*
* @param $params
* @param $instance
*/
function form($params, $instance) {
extract($params);
$defaults = array(
'title' => __('Photo Gallery', 'photo-gallery'),
'type' => 'gallery',
'view_type' => 'thumbnails',
'gallery_id' => 0,
'album_id' => 0,
'show' => 'random',
'count' => 4,
'width' => 100,
'height' => 100,
'theme_id' => 0,
);
$instance = wp_parse_args( (array) $instance, $defaults );
if (!isset($instance['view_type'])) {
$instance['view_type'] = "thumbnails";
}
?>
<p>
<label for="<?php echo esc_attr($id_title); ?>"><?php esc_html_e('Title:', 'photo-gallery'); ?></label>
<input class="widefat" id="<?php echo esc_attr($id_title); ?>" name="<?php echo esc_attr($name_title); ?>'" type="text" value="<?php echo htmlspecialchars( $instance['title'] ); ?>"/>
</p>
<p>
<label for="<?php echo esc_attr($id_show); ?>"><?php esc_html_e('Type:', 'photo-gallery'); ?></label><br>
<input type="radio" name="<?php echo esc_attr($name_type); ?>" id="<?php echo esc_attr($id_type . "_1"); ?>" value="gallery" class="sel_gallery" onclick="bwg_change_type(event, this)" <?php if ($instance['type'] == "gallery") echo 'checked="checked"'; ?> /><label for="<?php echo esc_attr($id_type . "_1"); ?>"><?php esc_html_e('Gallery', 'photo-gallery'); ?></label><br>
<input type="radio" name="<?php echo esc_attr($name_type); ?>" id="<?php echo esc_attr($id_type . "_2"); ?>" value="album" class="sel_album" onclick="bwg_change_type(event, this)" <?php if ($instance['type'] == "album") echo 'checked="checked"'; ?> /><label for="<?php echo esc_attr($id_type . "_2"); ?>"><?php esc_html_e('Gallery groups', 'photo-gallery'); ?></label>
</p>
<p id="p_galleries" style="display:<?php echo ($instance['type'] == "gallery") ? "" : "none" ?>;">
<label for="<?php echo esc_attr($id_gallery_id); ?>"><?php esc_html_e('Galleries:', 'photo-gallery'); ?></label><br>
<select name="<?php echo esc_attr($name_gallery_id); ?>" id="<?php echo esc_attr($id_gallery_id); ?>" class="widefat">
<option value="0"><?php esc_html_e('All images', 'photo-gallery'); ?></option>
<?php
foreach ($gallery_rows as $gallery_row) {
?>
<option value="<?php echo intval($gallery_row->id); ?>" <?php echo (($instance['gallery_id'] == $gallery_row->id) ? 'selected="selected"' : ''); ?>><?php echo esc_html($gallery_row->name); ?></option>
<?php
}
?>
</select>
</p>
<p id="view_type_container" style="display: <?php echo $instance['type'] != 'album' ? 'block' : 'none'; ?>;">
<label for="<?php echo esc_attr($id_view_type); ?>"><?php esc_html_e('Gallery Type:', 'photo-gallery'); ?></label><br>
<input type="radio" name="<?php echo esc_attr($name_view_type); ?>" id="<?php echo esc_attr($id_view_type . "_1"); ?>" value="thumbnails" class="sel_thumbnail_gallery" <?php if (isset($instance['view_type']) && $instance['view_type'] == "thumbnails") echo 'checked="checked"'; ?> /><label for="<?php echo esc_attr($id_view_type . "_1"); ?>"><?php esc_html_e('Thumbnail', 'photo-gallery'); ?></label><br>
<input type="radio" name="<?php echo esc_attr($name_view_type); ?>" id="<?php echo esc_attr($id_view_type . "_2"); ?>" value="masonry" class="sel_masonry_gallery" <?php if (isset($instance['view_type']) && $instance['view_type'] == "masonry") echo 'checked="checked"'; ?> /><label for="<?php echo esc_attr($id_view_type . "_2"); ?>"><?php esc_html_e('Masonry', 'photo-gallery'); ?></label>
</p>
<p id="p_albums" style="display:<?php echo ($instance['type'] == "album") ? "" : "none" ?>;">
<label for="<?php echo esc_attr($id_album_id); ?>"><?php esc_html_e('Gallery Groups:', 'photo-gallery'); ?></label><br>
<select name="<?php echo esc_attr($name_album_id); ?>" id="<?php echo esc_attr($id_album_id); ?>" class="widefat">
<option value="0"><?php esc_html_e('All Galleries', 'photo-gallery'); ?></option>
<?php
foreach ($album_rows as $album_row) {
?>
<option value="<?php echo intval($album_row->id); ?>" <?php echo (($instance['album_id'] == $album_row->id) ? 'selected="selected"' : ''); ?>><?php echo esc_html($album_row->name); ?></option>
<?php
}
?>
</select>
</p>
<p>
<label for="<?php echo esc_attr($id_show); ?>"><?php esc_html_e('Sort:', 'photo-gallery'); ?></label><br>
<input type="radio" name="<?php echo esc_attr($name_show); ?>" id="<?php echo esc_attr($id_show . "_1"); ?>" value="random" <?php if ($instance['show'] == "random") echo 'checked="checked"'; ?> /><label for="<?php echo esc_attr($id_show . "_1"); ?>"><?php esc_html_e('Random', 'photo-gallery'); ?></label><br>
<input type="radio" name="<?php echo esc_attr($name_show); ?>" id="<?php echo esc_attr($id_show . "_2"); ?>" value="first" <?php if ($instance['show'] == "first") echo 'checked="checked"'; ?> /><label for="<?php echo esc_attr($id_show . "_2"); ?>"><?php esc_html_e('First', 'photo-gallery'); ?></label><br>
<input type="radio" name="<?php echo esc_attr($name_show); ?>" id="<?php echo esc_attr($id_show . "_3"); ?>" value="last" <?php if ($instance['show'] == "last") echo 'checked="checked"'; ?> /><label for="<?php echo esc_attr($id_show . "_3"); ?>"><?php esc_html_e('Last', 'photo-gallery'); ?></label>
</p>
<p>
<label for="<?php echo esc_attr($id_count); ?>"><?php esc_html_e('Count:', 'photo-gallery'); ?></label><br>
<input class="widefat" style="width:25%;" id="<?php echo esc_attr($id_count); ?>" name="<?php echo esc_attr($name_count); ?>'" type="text" value="<?php echo intval($instance['count']); ?>"/>
</p>
<p>
<label for="<?php echo esc_attr($id_width); ?>"><?php esc_html_e('Dimensions:', 'photo-gallery'); ?></label><br>
<input class="widefat" style="width:25%;" id="<?php echo esc_attr($id_width); ?>" name="<?php echo esc_attr($name_width); ?>'" type="text" value="<?php echo intval($instance['width']); ?>"/> x
<input class="widefat" style="width:25%;" id="<?php echo esc_attr($id_height); ?>" name="<?php echo esc_attr($name_height); ?>'" type="text" value="<?php echo intval($instance['height']); ?>"/> px
</p>
<p>
<label for="<?php echo esc_attr($id_theme_id); ?>"><?php esc_html_e('Themes:', 'photo-gallery'); ?></label><br>
<select name="<?php echo esc_attr($name_theme_id); ?>" id="<?php echo esc_attr($id_theme_id); ?>" class="widefat">
<?php
foreach ($theme_rows as $theme_row) {
?>
<option value="<?php echo intval($theme_row->id); ?>" <?php echo (($instance['theme_id'] == $theme_row->id || $theme_row->default_theme == 1) ? 'selected="selected"' : ''); ?>><?php echo esc_html($theme_row->name); ?></option>
<?php
}
?>
</select>
</p>
<script>
function bwg_change_type(event, obj) {
var div = jQuery(obj).closest("div");
if (jQuery(jQuery(div).find(".sel_gallery")[0]).prop("checked")) {
jQuery(jQuery(div).find("#p_galleries")).css("display", "");
jQuery(jQuery(div).find("#p_albums")).css("display", "none");
jQuery(jQuery(div).find("#view_type_container")).css("display", "block");
jQuery(jQuery(div).find("#view_type_container")).next("p.description").css("display", "block");
}
else {
jQuery(jQuery(div).find("#p_galleries")).css("display", "none");
jQuery(jQuery(div).find("#p_albums")).css("display", "");
jQuery(jQuery(div).find("#view_type_container")).css("display", "none");
jQuery(jQuery(div).find("#view_type_container")).next("p.description").css("display", "none");
}
}
</script>
<?php
}
}