Files
torebki-fabiola.pl/wp-content/plugins/mapster-wp-maps/includes/acf-photo-gallery-field/navz-photo-gallery.php
2026-03-05 13:07:40 +01:00

134 lines
3.8 KiB
PHP

<?php
/*
Plugin Name: ACF Photo Gallery Field
Plugin URI: http://www.navz.me/
Description: An extension for Advance Custom Fields which lets you add photo gallery functionality on your websites.
Version: 1.8.0
Author: Navneil Naicker
Author URI: http://www.navz.me/
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
// exit if accessed directly
if( ! defined( 'ABSPATH' ) ) exit;
// check if class already exists
if( !class_exists('acf_plugin_photo_gallery') ) :
class acf_plugin_photo_gallery{
// vars
var $settings;
/*
* __construct
*
* This function will setup the class functionality
*
* @type function
* @date 17/02/2016
* @since 1.0.0
*
* @param n/a
* @return n/a
*/
function __construct() {
$this->settings = array(
'version' => '1.8.0',
'url' => plugin_dir_url( __FILE__ ),
'path' => plugin_dir_path( __FILE__ )
);
load_plugin_textdomain( 'acf-photo_gallery', false, plugin_basename( dirname( __FILE__ ) ) . '/lang' );
add_action( 'admin_enqueue_scripts', array($this, 'acf_photo_gallery_sortable') );
add_action('acf/include_field_types', array($this, 'include_field_types')); // v5
add_action('acf/register_fields', array($this, 'include_field_types')); // v4
add_filter( 'acf_photo_gallery_caption_from_attachment', '__return_false' );
add_filter("rest_prepare_page", array($this, 'rest_prepare_post'), 10, 3);
add_action('elementor/dynamic_tags/register_tags', array($this, 'register_tags'));
}
function register_tags( $dynamic_tags ){
if (class_exists('ElementorPro\Modules\DynamicTags\Tags\Base\Data_Tag')) {
\Elementor\Plugin::$instance->dynamic_tags->register_group( 'acf-photo-gallery', [
'title' => 'ACF'
]);
include(__DIR__ . '/includes/elementor_register_tag.php');
$dynamic_tags->register_tag( 'register_tag' );
}
}
//Add in jquery-ui-sortable script
function acf_photo_gallery_sortable($hook) {
if ( 'post.php' == $hook ) { wp_enqueue_script( 'jquery-ui-sortable', 'jquery-ui-sortable', 'jquery', '9999', true); }
}
/*
* include_field_types
*
* This function will include the field type class
*
* @type function
* @date 17/02/2016
* @since 1.0.0
*
* @param $version (int) major ACF version. Defaults to false
* @return n/a
*/
function include_field_types( $version = false ) {
// support empty $version
if( !$version ) $version = 4;
// include
include_once('fields/acf-photo_gallery-v' . $version . '.php');
}
function rest_prepare_post( $data, $post, $request ){
$images = array();
$field_groups = acf_get_field_groups(array('post_id' => $post->ID));
foreach ( $field_groups as $group ){
$fields = get_posts(array(
'posts_per_page' => -1,
'post_type' => 'acf-field',
'orderby' => 'menu_order',
'order' => 'ASC',
'suppress_filters' => true,
'post_parent' => $group['ID'],
'post_status' => 'publish',
'update_post_meta_cache' => false
));
foreach ( $fields as $field ) {
$object = get_field_object($field->post_name);
if( $object['type'] == 'photo_gallery' ){
$images[] = acf_photo_gallery($object['name'], $post->ID);
$data->data['acf']['photo_gallery'][$object['name']] = $images;
}
}
}
return $data;
}
}
// initialize
new acf_plugin_photo_gallery();
// class_exists check
endif;
//Helper function for pulling the images
require_once( dirname(__FILE__) . '/includes/acf_photo_gallery.php' );
//Resizes the image
require_once( dirname(__FILE__) . '/includes/acf_photo_gallery_resize_image.php' );
//Set the default fields for the edit gallery
require_once( dirname(__FILE__) . '/includes/acf_photo_gallery_image_fields.php' );
//Metabox for the photo edit
require_once( dirname(__FILE__) . '/includes/acf_photo_gallery_edit.php' );