initial commit
This commit is contained in:
229
hamrokhaanpaan/wp-content/__plugins/litespeed-cache/thirdparty/nextgengallery.cls.php
vendored
Normal file
229
hamrokhaanpaan/wp-content/__plugins/litespeed-cache/thirdparty/nextgengallery.cls.php
vendored
Normal file
@@ -0,0 +1,229 @@
|
||||
<?php
|
||||
/**
|
||||
* The Third Party integration with the NextGen Gallery plugin.
|
||||
*
|
||||
* @since 1.0.5
|
||||
*/
|
||||
namespace LiteSpeed\Thirdparty ;
|
||||
|
||||
defined( 'WPINC' ) || exit ;
|
||||
|
||||
// Try preload instead
|
||||
// todo: need test
|
||||
// add_action('load_nextgen_gallery_modules', 'NextGenGallery::detect') ;
|
||||
|
||||
class NextGenGallery
|
||||
{
|
||||
const CACHETAG_ALBUMS = 'NGG_A.' ;
|
||||
const CACHETAG_GALLERIES = 'NGG_G.' ;
|
||||
const CACHETAG_TAGS = 'NGG_T.' ;
|
||||
|
||||
/**
|
||||
* Detect is triggered at the load_nextgen_gallery_modules action.
|
||||
*
|
||||
* If this action is triggered, assume NextGen Gallery is used.
|
||||
*
|
||||
* @since 1.0.5
|
||||
* @access public
|
||||
*/
|
||||
public static function preload()
|
||||
{
|
||||
add_action( 'ngg_added_new_image', __CLASS__ . '::add_image' ) ;
|
||||
add_action( 'ngg_ajax_image_save', __CLASS__ . '::update_image' ) ;
|
||||
add_action( 'ngg_delete_picture', __CLASS__ . '::delete_image' ) ;
|
||||
add_action( 'ngg_moved_images', __CLASS__ . '::move_image', 10, 3 ) ;
|
||||
add_action( 'ngg_copied_images', __CLASS__ . '::copy_image', 10, 3 ) ;
|
||||
add_action( 'ngg_generated_image', __CLASS__ . '::gen_image' ) ;
|
||||
add_action( 'ngg_recovered_image', __CLASS__ . '::gen_image' ) ;
|
||||
|
||||
add_action( 'ngg_gallery_sort', __CLASS__ . '::update_gallery' ) ;
|
||||
add_action( 'ngg_delete_gallery', __CLASS__ . '::update_gallery' ) ;
|
||||
|
||||
add_action( 'ngg_update_album', __CLASS__ . '::update_album' ) ;
|
||||
add_action( 'ngg_delete_album', __CLASS__ . '::update_album' ) ;
|
||||
|
||||
add_filter( 'ngg_displayed_gallery_cache_params', __CLASS__ . '::add_container' ) ;
|
||||
}
|
||||
|
||||
/**
|
||||
* When an image is added, need to purge all pages that displays its gallery.
|
||||
*
|
||||
* @since 1.0.5
|
||||
* @access public
|
||||
* @param string $image The image object added.
|
||||
*/
|
||||
public static function add_image($image)
|
||||
{
|
||||
if ( ! $image || ! method_exists( $image, 'get_gallery' ) ) {
|
||||
return ;
|
||||
}
|
||||
$gallery = $image->get_gallery() ;
|
||||
if ( $gallery && $gallery->pageid ) {
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gallery->pageid ) ;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* When an image is updated, need to purge all pages that displays its gallery.
|
||||
*
|
||||
* @since 1.0.5
|
||||
* @access public
|
||||
*/
|
||||
public static function update_image()
|
||||
{
|
||||
if ( isset( $_REQUEST[ 'gallery_id' ] ) ) {
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key( $_REQUEST[ 'gallery_id' ] ) );
|
||||
return ;
|
||||
}
|
||||
|
||||
if ( isset( $_POST[ 'task_list' ] ) ) {
|
||||
$task_list = str_replace( '\\', '', $_POST[ 'task_list' ] ) ;
|
||||
$task_list = json_decode( $task_list, true ) ;
|
||||
|
||||
if ( ! empty( $task_list[ 0 ][ 'query' ][ 'id' ] ) ) {
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key( $task_list[ 0 ][ 'query' ][ 'id' ] ) );
|
||||
return ;
|
||||
}
|
||||
}
|
||||
|
||||
if ( isset($_POST['id']) ) {
|
||||
$id = (int)$_POST['id'] ;
|
||||
}
|
||||
elseif ( isset($_POST['image']) ) {
|
||||
$id = (int)$_POST['image'] ;
|
||||
}
|
||||
elseif ( isset($_GET['pid']) ) {
|
||||
$id = (int)$_GET['pid'] ;
|
||||
}
|
||||
else {
|
||||
error_log('LiteSpeed_Cache hit ngg_ajax_image_save with no post image id.') ;
|
||||
return ;
|
||||
}
|
||||
$image = \C_Image_Mapper::get_instance()->find($id) ;
|
||||
if ( $image ) {
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $image->galleryid );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* When an image is deleted, need to purge all pages that displays its gallery.
|
||||
*
|
||||
* @since 1.0.5
|
||||
* @access public
|
||||
*/
|
||||
public static function delete_image()
|
||||
{
|
||||
if ( isset($_GET['gid']) ) {
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key( $_GET['gid'] ) );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* When an image is moved, need to purge all old galleries and the new gallery.
|
||||
*
|
||||
* @since 1.0.8
|
||||
* @access public
|
||||
* @param array $images unused
|
||||
* @param array $old_gallery_ids Source gallery ids for the images.
|
||||
* @param integer $new_gallery_id Destination gallery id.
|
||||
*/
|
||||
public static function move_image($images, $old_gallery_ids, $new_gallery_id)
|
||||
{
|
||||
foreach ($old_gallery_ids as $gid) {
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gid );
|
||||
}
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $new_gallery_id );
|
||||
}
|
||||
|
||||
/**
|
||||
* When an image is copied, need to purge the destination gallery.
|
||||
*
|
||||
* @param array $image_pid_map unused
|
||||
* @param array $old_gallery_ids unused
|
||||
* @param integer $new_gallery_id Destination gallery id.
|
||||
*/
|
||||
public static function copy_image($image_pid_map, $old_gallery_ids, $new_gallery_id)
|
||||
{
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $new_gallery_id );
|
||||
}
|
||||
|
||||
/**
|
||||
* When an image is re-generated, need to purge the gallery it belongs to.
|
||||
* Also applies to recovered images.
|
||||
*
|
||||
* @param Image $image The re-generated image.
|
||||
*/
|
||||
public static function gen_image($image)
|
||||
{
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $image->galleryid );
|
||||
}
|
||||
|
||||
/**
|
||||
* When a gallery is updated, need to purge all pages that display the gallery.
|
||||
*
|
||||
* @since 1.0.5
|
||||
* @access public
|
||||
* @param integer $gid The gallery id of the gallery updated.
|
||||
*/
|
||||
public static function update_gallery($gid)
|
||||
{
|
||||
// New version input will be an object with gid value
|
||||
if ( is_object( $gid ) && ! empty( $gid->gid ) ) {
|
||||
$gid = $gid->gid ;
|
||||
}
|
||||
|
||||
do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gid );
|
||||
}
|
||||
|
||||
/**
|
||||
* When an album is updated, need to purge all pages that display the album.
|
||||
*
|
||||
* @since 1.0.5
|
||||
* @access public
|
||||
* @param integer $aid The album id of the album updated.
|
||||
*/
|
||||
public static function update_album($aid)
|
||||
{
|
||||
do_action( 'litespeed_purge', self::CACHETAG_ALBUMS . $aid );
|
||||
}
|
||||
|
||||
/**
|
||||
* When rendering a page, if the page has a gallery, album or tag cloud,
|
||||
* it needs to be tagged appropriately.
|
||||
*
|
||||
* @since 1.0.5
|
||||
* @access public
|
||||
* @param object $render_parms Parameters used to render the associated part of the page.
|
||||
* @return mixed Null if passed in null, $render_parms otherwise.
|
||||
*/
|
||||
public static function add_container($render_parms)
|
||||
{
|
||||
// Check if null. If it is null, can't continue.
|
||||
if ( is_null($render_parms) ) {
|
||||
return null ;
|
||||
}
|
||||
$src = $render_parms[0]->source ;
|
||||
$container_ids = $render_parms[0]->container_ids ;
|
||||
// Can switch on first char if we end up with more sources.
|
||||
switch ($src) {
|
||||
case 'albums':
|
||||
$tag = self::CACHETAG_ALBUMS ;
|
||||
break ;
|
||||
case 'galleries':
|
||||
$tag = self::CACHETAG_GALLERIES ;
|
||||
break ;
|
||||
case 'tags':
|
||||
$tag = self::CACHETAG_TAGS ;
|
||||
break ;
|
||||
default:
|
||||
return $render_parms ;
|
||||
}
|
||||
|
||||
foreach ($container_ids as $id) {
|
||||
do_action( 'litespeed_tag_add', $tag . $id );
|
||||
}
|
||||
|
||||
return $render_parms ;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user