File: /var/www/html/wp-content/plugins/photo-gallery/admin/views/Albums.php
<?php
/**
* Class AlbumsView_bwg
*/
class AlbumsView_bwg extends AdminView_bwg {
public function __construct() {
wp_enqueue_script(BWG()->prefix . '_jquery.ui.touch-punch.min');
parent::__construct();
}
/**
* Display page.
*
* @param $params
*/
public function display( $params = array() ) {
wp_enqueue_script(BWG()->prefix . '_jquery.ui.touch-punch.min');
ob_start();
echo $this->body($params);
// Pass the content to form.
$form_attr = array(
'id' => BWG()->prefix . '_albums',
'name' => BWG()->prefix . '_albums',
'class' => BWG()->prefix . '_albums wd-form',
'action' => add_query_arg(array( 'page' => 'albums_' . BWG()->prefix ), 'admin.php'),
);
echo $this->form(ob_get_clean(), $form_attr);
}
/**
* Generate page body.
*
* @param $params
*/
public function body( $params = array() ) {
echo $this->title( array(
'title' => $params['page_title'],
'title_class' => 'wd-header',
'add_new_button' => array(
'href' => add_query_arg(array( 'page' => $params['page'], 'task' => 'edit' ), admin_url('admin.php')),
),
'add_new_button_text' => __('Add new group', BWG()->prefix),
'how_to_button' => true,
)
);
echo $this->search();
?>
<div class="tablenav top">
<?php
echo $this->bulk_actions($params['actions'], TRUE);
echo $this->pagination($params['page_url'], $params['total'], $params['items_per_page']);
?>
</div>
<table class="images_table adminlist table table-striped wp-list-table widefat fixed pages media bwg-gallery-lists">
<thead class="alternate">
<td id="cb" class="column-cb check-column">
<label class="screen-reader-text" for="cb-select-all-1"><?php _e('Select all', BWG()->prefix); ?></label>
<input id="check_all" type="checkbox" onclick="spider_check_all(this)" />
</td>
<?php echo WDWLibrary::ordering('name', $params['orderby'], $params['order'], __('Title', BWG()->prefix), $params['page_url'], 'column-primary'); ?>
<?php echo WDWLibrary::ordering('author', $params['orderby'], $params['order'], __('Author', BWG()->prefix), $params['page_url']); ?>
</thead>
<tbody>
<?php
if ( $params['rows'] ) {
$alternate = 'alternate';
foreach ( $params['rows'] as $row ) {
$user = get_userdata($row->author);
$alternate = (!isset($alternate) || $alternate == '') ? 'class="alternate"' : '';
$edit_url = add_query_arg(array(
'page' => $params['page'],
'task' => 'edit',
'current_id' => $row->id,
), admin_url('admin.php'));
$publish_url = add_query_arg(array(
'task' => ($row->published ? 'unpublish' : 'publish'),
'current_id' => $row->id,
), $params['page_url']);
$duplicate_url = add_query_arg(array( 'task' => 'duplicate', 'current_id' => $row->id ), $params['page_url']);
$delete_url = add_query_arg(array( 'task' => 'delete', 'current_id' => $row->id ), $params['page_url']);
$preview_url = WDWLibrary::get_custom_post_permalink( array('slug' => $row->slug, 'post_type' => 'album' ));
$preview_image = BWG()->plugin_url . '/images/no-image.png';
if ( !empty($row->preview_image) ) {
$preview_image = BWG()->upload_url . $row->preview_image;
}
if ( !empty($row->random_preview_image)) {
$preview_image = BWG()->upload_url . $row->random_preview_image;
if ( WDWLibrary::check_external_link($row->random_preview_image) ) {
$preview_image = $row->random_preview_image;
}
}
?>
<tr id="tr_<?php echo $row->id; ?>" <?php echo $alternate; ?>>
<th class="check-column">
<input type="checkbox" id="check_<?php echo $row->id; ?>" name="check[<?php echo $row->id; ?>]" onclick="spider_check_all(this)" />
</th>
<td class="column-primary column-title" data-colname="<?php _e('Title', BWG()->prefix); ?>">
<strong class="has-media-icon">
<a href="<?php echo $edit_url; ?>">
<span class="media-icon image-icon">
<img class="preview-image" title="<?php echo esc_attr( $row->name ); ?>" src="<?php echo $preview_image; ?>" width="60" height="60" />
</span>
<?php echo esc_html( $row->name ); ?>
</a>
<?php if ( !$row->published ) { ?>
— <span class="post-state"><?php _e('Unpublished', BWG()->prefix); ?></span>
<?php } ?>
</strong>
<div class="row-actions">
<span><a href="<?php echo $edit_url; ?>"><?php _e('Edit', BWG()->prefix); ?></a> |</span>
<span><a href="<?php echo $publish_url; ?>"><?php echo ($row->published ? __('Unpublish', BWG()->prefix) : __('Publish', BWG()->prefix)); ?></a> |</span>
<span><a href="<?php echo $duplicate_url; ?>"><?php _e('Duplicate', BWG()->prefix); ?></a> |</span>
<span class="trash"><a onclick="if (!confirm('<?php echo addslashes(__('Do you want to delete selected item?', BWG()->prefix)); ?>')) {return false;}" href="<?php echo $delete_url; ?>"><?php _e('Delete', BWG()->prefix); ?></a> |</span>
<span><a href="<?php echo esc_url( $preview_url ); ?>" target="_blank"><?php _e('Preview', BWG()->prefix); ?></a></span>
</div>
<button class="toggle-row" type="button">
<span class="screen-reader-text"><?php _e('Show more details', BWG()->prefix); ?></span>
</button>
</td>
<td data-colname="<?php _e('Author', BWG()->prefix); ?>"><?php echo ( $user ) ? $user->display_name : ''; ?></td>
</tr>
<?php
}
}
else {
echo WDWLibrary::no_items('gallery groups', 3);
}
?>
</tbody>
</table>
<div class="tablenav bottom">
<?php echo $this->pagination($params['page_url'], $params['total'], $params['items_per_page']); ?>
</div>
<?php
}
/**
* Add/Edit.
*
* @param array $params .
*
* @return string html.
*/
public function edit( $params = array() ) {
wp_enqueue_script('jquery-ui-sortable');
wp_admin_css('thickbox');
wp_enqueue_media();
ob_start();
echo $this->edit_body($params);
// Pass the content to form.
$form_attr = array(
'id' => BWG()->prefix . '_albums',
'name' => BWG()->prefix . '_albums',
'class' => BWG()->prefix . '_albums wd-form',
'action' => $params['form_action'],
'current_id' => $params['id'],
);
echo $this->form(ob_get_clean(), $form_attr);
}
/**
* Generate page edit body.
*
* @param $params
*/
public function edit_body( $params = array() ) {
wp_enqueue_style('thickbox');
wp_enqueue_script('thickbox');
$row = $params['row'];
$enable_wp_editor = isset(BWG()->options->enable_wp_editor) ? BWG()->options->enable_wp_editor : 0;
/* Preview Section - set album_galleries types */
$demo_url_for_free = 'https://demo.10web.io/photo-gallery/';
$get_album_gallery_types = array(
'album_compact_preview' => array(
'title' => __('Compact', BWG()->prefix),
'preview_url' => add_query_arg('bwg-preview-type', 'album_compact_preview', $params['preview_action']),
),
'album_masonry_preview' => array(
'title' => __('Masonry', BWG()->prefix) . (!BWG()->is_pro ? '<span class="pro_btn">' . __('Premium', BWG()->prefix) . '</span>' : ''),
'preview_url' => !BWG()->is_pro ? $demo_url_for_free : add_query_arg('bwg-preview-type', 'album_masonry_preview', $params['preview_action']),
),
'album_extended_preview' => array(
'title' => __('Extended', BWG()->prefix),
'preview_url' => add_query_arg('bwg-preview-type', 'album_extended_preview', $params['preview_action']),
),
);
?>
<div class="bwg-page-header wd-list-view-header<?php echo !BWG()->is_pro ? ' bwg-page-header-free' : ''?>">
<div class="wd-page-title wd-header wd-list-view-header-left">
<div>
<h1 class="wp-heading-inline bwg-heading"><?php _e('Gallery Group Title', BWG()->prefix); ?></h1>
<input type="text" id="name" name="name" value="<?php echo !empty($row->name) ? esc_attr( $row->name ) : ''; ?>">
</div>
<div class="bwg-page-actions">
<button class="tw-button-primary button-large" onclick="if (spider_check_required('name', 'Title')) {return false;}; spider_set_input_value('task', 'save')">
<?php echo ($params['id']) ? __('Update', BWG()->prefix) : __('Publish', BWG()->prefix); ?>
</button>
<?php /* Preview Section */
if ( $params['id'] && $params['preview_action'] ) { ?>
<div class="tw-button-secondary bwg-preview-button " id ="bwg-preview-button" onclick="bwg_preview_section(this);"><?php _e('Preview', BWG()->prefix); ?></div>
<div class="bwg-preview-section album">
<p><?php _e('Preview gallery group in:', BWG()->prefix); ?></p>
<?php foreach ( $get_album_gallery_types as $key => $value ) { ?>
<div class="bwg-preview-gallery-type" onclick="window.open('<?php echo $value['preview_url']; ?>')">
<div class="bwg-preview-gallery-type-icon"></div>
<div class="bwg-preview-gallery-type-title">
<?php echo $value["title"]; ?>
</div>
</div>
<?php } ?>
</div>
<?php } ?>
<?php
if ( $params['shortcode_id'] ) {
require BWG()->plugin_dir . '/framework/howto/howto.php';
}
?>
</div>
</div>
<?php
if (!BWG()->is_pro) {
WDWLibrary::topbar_upgrade_ask_question();
}?>
<div class="bwg-clear"></div>
</div>
<div class="wd-table meta-box-sortables">
<div class="wd-table-row wd-table-col-100 wd-table-col-left">
<div class="wd-box-section">
<div class="postbox <?php echo $params['id'] ? 'closed' : '' ?>">
<button class="button-link handlediv" type="button" aria-expanded="true">
<span class="screen-reader-text"><?php _e('Toggle panel:', BWG()->prefix); ?></span>
<span class="toggle-indicator" aria-hidden="true"></span>
</button>
<h2 class="hndle">
<span><?php _e('Basic', BWG()->prefix); ?></span>
</h2>
<div class="inside">
<div class="wd-box-content">
<div class="wd-group">
<label class="wd-label" for="preview_image"><?php _e('Preview image', BWG()->prefix); ?></label>
<div>
<a href="<?php echo $params['add_preview_image_action']; ?>" id="button_preview_image" class="button wd-preview-image-btn thickbox thickbox-preview <?php echo ($row->preview_image == '') ? 'bwg_not-preview-image' : '' ?>" title="<?php _e('Add Preview Image', BWG()->prefix); ?>" onclick="return false;" style="<?php echo !empty($row->preview_image) ? 'display:none;' : '' ?>">
<span class="dashicons dashicons-camera"></span><?php _e('Add', BWG()->prefix); ?>
</a>
<img id="img_preview_image" src="<?php echo $row->preview_image ? (BWG()->upload_url . $row->preview_image) : ''; ?>" style="<?php echo empty($row->preview_image) ? 'display:none;' : '' ?>" />
<span id="delete_preview_image" class="spider_delete_img dashicons dashicons-no-alt" onclick="spider_remove_url('button_preview_image', 'preview_image', 'delete_preview_image', 'img_preview_image')" style="<?php echo empty($row->preview_image) ? 'display:none;' : '' ?>"></span>
<input type="hidden" id="preview_image" name="preview_image" value="<?php echo $row->preview_image; ?>" />
<p class="description"><?php _e('Add a preview image, which will be displayed as the cover image of the gallery group when it is published in a parent gallery group.', BWG()->prefix); ?></p>
</div>
</div>
<div class="wd-group">
<label class="wd-label"><?php _e('Published', BWG()->prefix); ?></label>
<input type="radio" class="inputbox" id="published1" name="published" <?php echo(($row->published == 1 || !$params['id']) ? 'checked="checked"' : ''); ?> value="1" />
<label for="published1"><?php _e('Yes', BWG()->prefix); ?></label>
<input type="radio" class="inputbox" id="published0" name="published" <?php echo(($row->published) ? '' : 'checked="checked"'); ?> value="0" />
<label for="published0"><?php _e('No', BWG()->prefix); ?></label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wd-table-row wd-table-col-100 wd-table-col-left">
<div class="wd-box-section">
<div class="postbox closed">
<button class="button-link handlediv" type="button" aria-expanded="true">
<span class="screen-reader-text"><?php _e('Toggle panel:', BWG()->prefix); ?></span>
<span class="toggle-indicator" aria-hidden="false"></span>
</button>
<h2 class="hndle">
<span><?php _e('Advanced', BWG()->prefix); ?></span>
</h2>
<div class="inside bwg-flex bwg-flex-wrap bwg-align-items-top">
<div class="wd-table-col-50">
<div class="wd-box-section">
<div class="wd-box-content">
<div class="wd-group">
<label class="wd-label"><?php _e('Author', BWG()->prefix); ?></label>
<span><?php echo esc_html($row->author); ?></span>
</div>
<div class="wd-group">
<label class="wd-label" for="slug"><?php _e('Slug', BWG()->prefix); ?></label>
<input type="text" id="slug" name="slug" value="<?php echo esc_attr($row->slug); ?>">
<input type="hidden" id="old_slug" name="old_slug" value="<?php echo esc_attr($row->slug); ?>">
</div>
<div class="wd-group">
<label class="wd-label" for="description"><?php _e('Description', BWG()->prefix); ?> </label>
<?php
if ( user_can_richedit() && $enable_wp_editor ) {
wp_editor(esc_html($row->description), 'description', array(
'teeny' => TRUE,
'textarea_name' => 'description',
'media_buttons' => FALSE,
'textarea_rows' => 5,
));
}
else {
?>
<textarea cols="36" rows="5" id="description" name="description"
class="wd-resize-vertical"><?php echo esc_html($row->description); ?></textarea>
<?php
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="wd-table">
<div class="wd-table-col wd-table-col-100 meta-box-sortables">
<div class="wd-box-section">
<div class="wd-box-content">
<div class="wd-group">
<h2 class="wd-titles"><?php _e('Galleries and Gallery Groups', BWG()->prefix); ?></h2>
<div id="bwg_tabs" class="bwg_tabs hidden">
<?php
foreach ( $params['albums_galleries'] as $item ) {
$item->published = !$item->published ? 'dashicons-hidden' : 'bwg-hidden';
$item->preview_image = 'style="background-image:url("' . $item->preview_image . '")"';
echo $this->albumgallery_template($item);
}
$template = new stdClass();
$template->alb_gal_id = '%%alb_gal_id%%';
$template->is_album = '%%is_album%%';
$template->preview_image = '%%preview_image%%';
$template->name = '%%name%%';
$template->published = '%%status%%';
echo $this->albumgallery_template($template, TRUE);
?>
<div class="bwg_subtab">
<div class="new_tab_image">
<a class="new_tab_link thickbox-preview" onclick="jQuery('#loading_div').show();" href="<?php echo $params['add_albums_galleries_action']; ?>">
<p id="add_album_gallery_text"><?php _e('Add', BWG()->prefix); ?></p>
</a>
</div>
</div>
</div>
<input type="hidden" id="albums_galleries" name="albumgallery_ids" value="" />
</div>
</div>
</div>
</div>
</div>
<div id="loading_div" class="bwg_show"></div>
<input type="hidden" value="<?php echo !empty($row->modified_date) ? $row->modified_date : time() ?>" id="modified_date" name="modified_date" />
<?php
}
public function albumgallery_template($albumgallery_row, $template = false) {
$edit_url = add_query_arg(array(
'page' => $albumgallery_row->is_album == 0 ? 'galleries_bwg' : 'albums_bwg',
'task' => 'edit',
'current_id' => $albumgallery_row->alb_gal_id,
), admin_url('admin.php'));
ob_start();
if ($template) {
?>
<div id="bwg_template">
<?php
}
?>
<div class="bwg_subtab connectedSortable <?php echo 'bwg_subtab_' . $albumgallery_row->published; ?>" data-id="<?php echo $albumgallery_row->alb_gal_id; ?>" data-is-album="<?php echo $albumgallery_row->is_album; ?>" data-status="<?php echo $albumgallery_row->published; ?>">
<div <?php echo $albumgallery_row->preview_image; ?> class="tab_image">
<div class="tab_buttons">
<div class="handle_wrap">
<span class="bwg_move dashicons dashicons-move" title="<?php _e('Drag to re-order', BWG()->prefix); ?>"></span>
</div>
<div class="bwg_tab_title_wrap" title="<?php echo $albumgallery_row->name; ?>">
<a href="<?php echo $edit_url?>" target="_blank">
<label class="bwg_tab_title" title="<?php echo $albumgallery_row->name; ?>"><?php echo $albumgallery_row->name; ?></label>
</a>
</div>
</div>
<div class="overlay">
<div class="hover_buttons">
<span class="bwg_tab_remove dashicons dashicons-trash" title="<?php _e('Remove', BWG()->prefix); ?>" onclick="bwg_remove_album_gallery(this)"></span>
<span class="bwg_tab_status dashicons <?php echo $albumgallery_row->published; ?>" title="<?php _e('Unpublished', BWG()->prefix); ?>"></span>
<span class="bwg_clear"></span>
</div>
</div>
</div>
</div>
<?php
if ($template) {
?>
</div>
<?php
}
return ob_get_clean();
}
}