PluginProbe
Document Gallery / 5.1.0
Document Gallery v5.1.0
trunk 0.8 0.8.5 1.0 1.0.1 1.0.2 1.0.3 1.0.4 1.1 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 2.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 94 releases
document-gallery / document-gallery.php

document-gallery.php in Document Gallery 5.1.0, at document-gallery.php

157 lines 5.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined( 'WPINC' ) OR exit;
3
4 /**
5 * Plugin Name: Document Gallery
6 * Plugin URI: https://wordpress.org/plugins/document-gallery/
7 * Description: Display non-images (and images) in gallery format on a page or post.
8 * Version: 5.1.0
9 * Requires at least: 6.1
10 * Requires PHP: 5.6
11 * Author: Dan Rossiter
12 * Author URI: https://www.linkedin.com/in/danrossiter/
13 * License: GPLv3
14 * License URI: https://www.gnu.org/licenses/gpl-3.0.html
15 * Text Domain: document-gallery
16 *
17 * @package create-block
18 */
19
20 define( 'DG_VERSION', '5.1.0' );
21
22 if ( version_compare( PHP_VERSION, '5.6', '<' ) ) {
23 add_action( 'admin_notices', 'dg_php_lt_five_six' );
24 function dg_php_lt_five_six() { ?>
25 <div class="error"><p>
26 <?php printf( __( 'Document Gallery requires PHP &ge; 5.6. Your server is running version %s.', 'document-gallery' ), PHP_VERSION ); ?>
27 </p></div>
28 <?php }
29
30 return;
31 }
32
33 // define helper paths & URLs
34 define( 'DG_BASENAME', plugin_basename( __FILE__ ) );
35 define( 'DG_URL', plugin_dir_url( __FILE__ ) . 'src/' );
36 define( 'DG_PATH', plugin_dir_path( __FILE__ ) . 'src/' );
37 define( 'DG_WPINC_PATH', ABSPATH . WPINC . '/' );
38 define( 'DG_WPADMIN_PATH', ABSPATH . 'wp-admin/' );
39
40 // init DG options for use throughout plugin
41 global $dg_options;
42 define( 'DG_OPTION_NAME', 'document_gallery' );
43 $dg_options = get_option( DG_OPTION_NAME, null );
44
45 // core functionality
46 include_once DG_PATH . 'inc/class-document-gallery.php';
47 include_once DG_PATH . 'inc/class-thumb.php';
48 include_once DG_PATH . 'inc/class-util.php';
49
50 // logging functionality
51 include_once DG_PATH . 'inc/class-logger.php';
52 add_action( DG_Logger::PurgeLogsAction, array( 'DG_Logger', 'purgeExpiredEntries' ) );
53
54 // handle activation, updates, and uninstallation
55 include_once DG_PATH . 'inc/class-setup.php';
56 register_activation_hook( __FILE__, array( 'DG_Setup', 'activate' ) );
57 add_action( 'wpmu_new_blog', array( 'DG_Setup', 'activateNewBlog' ) );
58 register_uninstall_hook( __FILE__, array( 'DG_Setup', 'uninstall' ) );
59 DG_Setup::maybeUpdate();
60
61 // ensure we don't allow invalid option structure
62 add_action( 'init', array( 'DocumentGallery', 'addValidation' ) );
63
64 // I18n
65 add_action( 'plugins_loaded', array( 'DocumentGallery', 'loadTextDomain' ) );
66
67 if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
68 add_action( ( is_admin() ? 'admin' : 'wp' ) . '_footer', 'dg_debug_data' );
69 function dg_debug_data() {
70 echo '<!-- ' . PHP_EOL;
71 echo 'Document Gallery Count: ' . ( class_exists( 'DG_Gallery' ) ? count( DG_Gallery::getGalleries() ) : 0 ) . PHP_EOL;
72 echo ' -->' . PHP_EOL;
73 }
74 }
75
76 // cleanup cached data when thumbed attachment deleted
77 include_once DG_PATH . 'inc/class-thumber.php';
78 add_action( 'delete_attachment', array( 'DG_Thumb', 'cleanupAttachmentMeta' ) );
79
80 if ( is_admin() ) {
81 // admin house keeping
82 include_once DG_PATH . 'admin/class-admin.php';
83
84 // AJAX handling
85 include_once DG_PATH . 'admin/class-ajax-handler.php';
86
87 // add links to plugin index
88 add_filter( 'plugin_action_links_' . DG_BASENAME, array( 'DG_Admin', 'addSettingsLink' ) );
89 add_filter( 'plugin_row_meta', array( 'DG_Admin', 'addDonateLink' ), 10, 2 );
90
91 // build options page
92 add_action( 'admin_menu', array( 'DG_Admin', 'addAdminPage' ) );
93
94 // add meta box for managing thumbnail generation to attachment Edit Media page
95 add_action( 'add_meta_boxes', array( 'DG_Admin', 'addMetaBox' ) );
96 add_action( 'wp_ajax_dg_upload_thumb', array( 'DG_Admin', 'saveMetaBox' ) );
97
98 if ( DG_Admin::doRegisterSettings() ) {
99 add_action( 'admin_init', array( 'DG_Admin', 'registerSettings' ) );
100 }
101 } else {
102 // styling for gallery
103 if ( apply_filters( 'dg_use_default_gallery_style', true ) ) {
104 add_action( 'wp_enqueue_scripts', array( 'DocumentGallery', 'enqueueGalleryStyle' ) );
105 }
106 add_action( 'wp_print_scripts', array( 'DocumentGallery', 'printCustomStyle' ) );
107
108 add_action( 'wp_enqueue_scripts', array( 'DocumentGallery', 'enqueueGalleryScript' ) );
109 }
110
111 /**
112 * Registers the block using the metadata loaded from the `block.json` file.
113 * Behind the scenes, it registers also all assets so they can be enqueued
114 * through the block editor in the corresponding context.
115 *
116 * @see https://developer.wordpress.org/reference/functions/register_block_type/
117 */
118 function document_gallery_block_init() {
119 register_block_type(
120 __DIR__ . '/build/block',
121 array( 'render_callback' => 'document_gallery_block_render_callback' )
122 );
123 }
124 add_action( 'init', 'document_gallery_block_init' );
125
126 /**
127 * Pass default options to block editor script.
128 */
129 function document_gallery_block_localize() {
130 global $dg_options;
131
132 // Script handle is auto-generated: {namespace}-{block-name}-editor-script
133 wp_localize_script(
134 'document-gallery-document-gallery-block-editor-script',
135 'dgBlockConfig',
136 array( 'dgDefaults' => $dg_options['gallery'] )
137 );
138 }
139 add_action( 'enqueue_block_editor_assets', 'document_gallery_block_localize' );
140
141 /**
142 * This function is called when the block is being rendered on the front end of the site
143 *
144 * @param array $attributes The array of attributes for this block.
145 * @param string $content Rendered block output. ie. <InnerBlocks.Content />.
146 * @param WP_Block $block_instance The instance of the WP_Block class that represents the block being rendered.
147 */
148 function document_gallery_block_render_callback( $attributes, $content, $block_instance ) {
149 return DocumentGallery::doShortcode( $attributes );
150 }
151
152 // adds 'dg' shortcode
153 add_shortcode( 'dg', array( 'DocumentGallery', 'doShortcode' ) );
154
155 // public API for developers
156 include_once DG_PATH . 'inc/class-api.php';
157