51 lines
1.6 KiB
PHP
51 lines
1.6 KiB
PHP
<?php
|
|
defined( 'WPINC' ) OR exit;
|
|
|
|
// register for all handled actions
|
|
add_action( 'wp_ajax_dg_generate_icons', array( 'DG_AjaxHandler', 'generateIcons' ) );
|
|
add_action( 'wp_ajax_nopriv_dg_generate_icons', array( 'DG_AjaxHandler', 'generateIcons' ) );
|
|
|
|
add_action( 'wp_ajax_dg_generate_gallery', array( 'DG_AjaxHandler', 'generateGallery' ) );
|
|
add_action( 'wp_ajax_nopriv_dg_generate_gallery', array( 'DG_AjaxHandler', 'generateGallery' ) );
|
|
|
|
/**
|
|
* Handler to isolate AJAX request handling.
|
|
*
|
|
* @author drossiter
|
|
*/
|
|
class DG_AjaxHandler {
|
|
|
|
/**
|
|
* Accepts AJAX request containing list of IDs to be generated and returned.
|
|
* Returns associative array mapping ID to thumbnail URL for all icons that were generated,
|
|
* skipping any that could not be processed.
|
|
*/
|
|
public static function generateIcons() {
|
|
$ret = array();
|
|
|
|
if ( isset( $_REQUEST['ids'] ) ) {
|
|
foreach ( $_REQUEST['ids'] as $id ) {
|
|
// only return URL if different from default -- default image is already displayed on the client side
|
|
$url = DG_Thumber::getInstance()->getThumbnail( $id, 1, true, $is_default );
|
|
if ( ! $is_default ) {
|
|
$ret[$id] = $url;
|
|
}
|
|
}
|
|
}
|
|
|
|
wp_send_json($ret);
|
|
}
|
|
|
|
/**
|
|
* Accepts AJAX request containing an array matching any allowable params for the [dg] shortcode.
|
|
* Returns the resultant gallery HTML.
|
|
*/
|
|
public static function generateGallery() {
|
|
if ( isset( $_REQUEST['atts'] ) ) {
|
|
@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
|
|
echo DocumentGallery::doShortcode( $_REQUEST['atts'] );
|
|
}
|
|
|
|
wp_die();
|
|
}
|
|
} |