Overview
  • Namespace
  • Class

Namespaces

  • MatthiasWeb
    • RealMediaLibrary
      • api
      • attachment
      • base
      • comp
        • complexquery
      • folder
      • general
      • metadata
      • order
      • rest
      • usersettings
  • None

Classes

  • MatthiasWeb\RealMediaLibrary\attachment\CountCache
  • MatthiasWeb\RealMediaLibrary\attachment\CustomField
  • MatthiasWeb\RealMediaLibrary\attachment\Filter
  • MatthiasWeb\RealMediaLibrary\attachment\Permissions
  • MatthiasWeb\RealMediaLibrary\attachment\Shortcut
  • MatthiasWeb\RealMediaLibrary\attachment\Structure
  • MatthiasWeb\RealMediaLibrary\attachment\Upload
  • MatthiasWeb\RealMediaLibrary\base\Assets
  • MatthiasWeb\RealMediaLibrary\base\Base
  • MatthiasWeb\RealMediaLibrary\base\Core
  • MatthiasWeb\RealMediaLibrary\comp\complexquery\ComplexQuery
  • MatthiasWeb\RealMediaLibrary\comp\complexquery\ResetNames
  • MatthiasWeb\RealMediaLibrary\comp\ExImport
  • MatthiasWeb\RealMediaLibrary\comp\PageBuilders
  • MatthiasWeb\RealMediaLibrary\comp\PolyLang
  • MatthiasWeb\RealMediaLibrary\comp\WPML
  • MatthiasWeb\RealMediaLibrary\folder\BaseFolder
  • MatthiasWeb\RealMediaLibrary\folder\Collection
  • MatthiasWeb\RealMediaLibrary\folder\Creatable
  • MatthiasWeb\RealMediaLibrary\folder\CRUD
  • MatthiasWeb\RealMediaLibrary\folder\Folder
  • MatthiasWeb\RealMediaLibrary\folder\Gallery
  • MatthiasWeb\RealMediaLibrary\folder\Root
  • MatthiasWeb\RealMediaLibrary\general\Activator
  • MatthiasWeb\RealMediaLibrary\general\Assets
  • MatthiasWeb\RealMediaLibrary\general\Core
  • MatthiasWeb\RealMediaLibrary\general\FolderShortcode
  • MatthiasWeb\RealMediaLibrary\general\Lang
  • MatthiasWeb\RealMediaLibrary\general\Migration
  • MatthiasWeb\RealMediaLibrary\general\Options
  • MatthiasWeb\RealMediaLibrary\general\QueryCount
  • MatthiasWeb\RealMediaLibrary\general\Util
  • MatthiasWeb\RealMediaLibrary\general\View
  • MatthiasWeb\RealMediaLibrary\metadata\CoverImage
  • MatthiasWeb\RealMediaLibrary\metadata\Description
  • MatthiasWeb\RealMediaLibrary\metadata\Meta
  • MatthiasWeb\RealMediaLibrary\order\GalleryOrder
  • MatthiasWeb\RealMediaLibrary\order\Sortable
  • MatthiasWeb\RealMediaLibrary\rest\Attachment
  • MatthiasWeb\RealMediaLibrary\rest\Folder
  • MatthiasWeb\RealMediaLibrary\rest\Reset
  • MatthiasWeb\RealMediaLibrary\rest\Service
  • MatthiasWeb\RealMediaLibrary\usersettings\Demo

Interfaces

  • MatthiasWeb\RealMediaLibrary\api\IFolder
  • MatthiasWeb\RealMediaLibrary\api\IFolderActions
  • MatthiasWeb\RealMediaLibrary\api\IFolderContent
  • MatthiasWeb\RealMediaLibrary\api\IMetadata
  • MatthiasWeb\RealMediaLibrary\api\IStructure
  • MatthiasWeb\RealMediaLibrary\api\IUserSettings

Exceptions

  • MatthiasWeb\RealMediaLibrary\general\FolderAlreadyExistsException

Functions

  • _wp_rml_active
  • _wp_rml_root
  • _wp_rml_sanitize
  • _wp_rml_sanitize_filename
  • add_media_folder_meta
  • add_rml_meta_box
  • add_rml_user_settings_box
  • delete_media_folder_meta
  • delete_media_folder_meta_by_key
  • get_media_folder_meta
  • is_rml_folder
  • rml_skip_php_admin_notice
  • rml_skip_rest_admin_notice
  • rml_skip_wp_admin_notice
  • truncate_media_folder_meta
  • update_media_folder_meta
  • wp_attachment_ensure_source_file
  • wp_attachment_folder
  • wp_attachment_get_shortcuts
  • wp_attachment_has_shortcuts
  • wp_attachment_is_shortcut
  • wp_attachment_order_update
  • wp_rml_create
  • wp_rml_create_all_children_sql
  • wp_rml_create_all_parents_sql
  • wp_rml_create_or_return_existing_id
  • wp_rml_create_shortcuts
  • wp_rml_created_shortcuts_last_ids
  • wp_rml_delete
  • wp_rml_dropdown
  • wp_rml_dropdown_collection
  • wp_rml_dropdown_gallery
  • wp_rml_dropdown_gallery_or_collection
  • wp_rml_get_attachments
  • wp_rml_get_by_absolute_path
  • wp_rml_get_by_id
  • wp_rml_get_object_by_id
  • wp_rml_get_parent_id
  • wp_rml_is_type
  • wp_rml_move
  • wp_rml_objects
  • wp_rml_register_creatable
  • wp_rml_rename
  • wp_rml_root_childs
  • wp_rml_structure
  • wp_rml_structure_reset
  • wp_rml_update_count
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 
<?php
namespace MatthiasWeb\RealMediaLibrary\general;
use MatthiasWeb\RealMediaLibrary\base;
use MatthiasWeb\RealMediaLibrary\menu;
use MatthiasWeb\RealMediaLibrary\rest;
use MatthiasWeb\RealMediaLibrary\attachment;
use MatthiasWeb\RealMediaLibrary\comp;
use MatthiasWeb\RealMediaLibrary\order;
use MatthiasWeb\RealMediaLibrary\metadata;

defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); // Avoid direct file request

// Include files, where autoloading is not possible, yet
require_once(RML_INC . 'base/Core.class.php');
require_once(RML_INC . 'general/Exceptions.collection.php');

/**
 * Singleton core class which handles the main system for plugin. It includes
 * registering of the autoloader, all hooks (actions & filters) (see base\Core class).
 */
class Core extends base\Core {
    
    /**
     * Singleton instance.
     */
    private static $me;
    
    /**
     * The main service.
     * 
     * @see rest\Service
     */
    private $service;
    
    /**
     * Application core constructor.
     */
    protected function __construct() {
        parent::__construct();
        
        // Load no-namespace API functions
        foreach (array('attachment', 'folders', 'meta') as $apiInclude) {
            require_once(RML_PATH . '/inc/api/' . $apiInclude . '.php');
        }
        
        // Register creatables
        wp_rml_register_creatable(RML_NS . '\\folder\\Folder', RML_TYPE_FOLDER);
        wp_rml_register_creatable(RML_NS . '\\folder\\Collection', RML_TYPE_COLLECTION);
        wp_rml_register_creatable(RML_NS . '\\folder\\Gallery', RML_TYPE_GALLERY);
        
        // Register all your before init hooks
        add_action('plugins_loaded', array($this, 'updateDbCheck'));
        add_action('admin_init', array(Options::getInstance(), 'register_fields'));
        add_action('RML/Migration', array(Migration::getInstance(), 'migration'), 10, 2);
        add_action('plugins_loaded', array(Migration::getInstance(), 'plugins_loaded'));
        add_action('init', array($this, 'init'));
        
        add_filter('RML/Validate/Insert', array(attachment\Permissions::getInstance(), 'insert'), 10, 3);
        add_filter('RML/Validate/Create', array(attachment\Permissions::getInstance(), 'create'), 10, 4);
        add_filter('RML/Validate/Rename', array(attachment\Permissions::getInstance(), 'setName'), 10, 3);
        add_filter('RML/Validate/Delete', array(attachment\Permissions::getInstance(), 'deleteFolder'), 10, 3);
        add_filter('wp_die_ajax_handler', array($this, 'update_count'));
        add_filter('wp_die_handler', array($this, 'update_count'));
        
        // Allow a better compatibility for other plugins.
        // Have a look at the class' constructors for all needed filters and actions.
        add_action('init', array(comp\PolyLang::getInstance(), 'init'));
        add_action('init', array(comp\WPML::getInstance(), 'init'), 9);
        add_action('init', array(comp\PageBuilders::getInstance(), 'init'));
    }
    
    /**
     * The init function is fired even the init hook of WordPress. If possible
     * it should register all hooks to have them in one place.
     */
    public function init() {
        // Add our folder shortcode
        global $shortcode_tags;
        add_shortcode('folder-gallery', $shortcode_tags['gallery']);
        FolderShortcode::getInstance();
        
        $this->service = new rest\Service();
        
        // Register all your hooks here
        add_action('rest_api_init', array($this->getService(), 'rest_api_init'));
        add_action('rest_api_init', array(new rest\Folder(), 'rest_api_init'));
        add_action('rest_api_init', array(new rest\Attachment(), 'rest_api_init'));
        add_action('rest_api_init', array(new rest\Reset(), 'rest_api_init'));
        add_action('admin_enqueue_scripts', array($this->getAssets(), 'admin_enqueue_scripts'));
        add_action('wp_enqueue_scripts', array($this->getAssets(), 'wp_enqueue_scripts'));
        add_action('pre_get_posts', array(attachment\Filter::getInstance(), 'pre_get_posts'), 999999);
        add_action('delete_attachment', array(attachment\Shortcut::getInstance(), 'delete_attachment'));
        add_action('delete_attachment', array(attachment\Filter::getInstance(), 'delete_attachment'));
        add_action('plugin_row_meta', array($this->getAssets(), 'plugin_row_meta'), 10, 2 );
        add_action('pre-upload-ui', array(attachment\Upload::getInstance(), 'pre_upload_ui'));
        add_action('add_attachment', array(attachment\Upload::getInstance(), 'add_attachment'));
        add_action('wp_prepare_attachment_for_js', array(attachment\Filter::getInstance(), 'wp_prepare_attachment_for_js'), 10, 3);
        add_action('RML/Item/MoveFinished', array(RML_NS . '\\order\\Sortable', 'item_move_finished'), 1, 4);
        add_action('RML/Options/Register', array(comp\ExImport::getInstance(), 'options_register'));
        add_action('RML/Folder/Deleted', array(metadata\Meta::getInstance(), 'folder_deleted'), 10, 2);
        add_action("deleted_realmedialibrary_meta", array(order\GalleryOrder::getInstance(), "deleted_realmedialibrary_meta"), 10, 3);

        add_filter('posts_clauses', array(attachment\Filter::getInstance(), 'posts_clauses'), 10, 2);
        add_filter('media_view_strings', array($this->getAssets(), 'media_view_strings'));
        add_filter('media_row_actions', array($this->getAssets(), 'media_row_actions'), 10, 2);
        add_filter('add_post_metadata', array(attachment\Shortcut::getInstance(), 'add_post_metadata'), 999999, 5);
        add_filter('update_post_metadata', array(attachment\Shortcut::getInstance(), 'update_post_metadata'), 999999, 5);
        add_filter('get_post_metadata', array(attachment\Shortcut::getInstance(), 'get_post_metadata'), 999999, 4);
        add_filter('attachment_fields_to_edit', array(attachment\CustomField::getInstance(), 'attachment_fields_to_edit'), 10, 2);
        add_filter('attachment_fields_to_save', array(attachment\CustomField::getInstance(), 'attachment_fields_to_save'), 10 , 2);
        add_filter('restrict_manage_posts', array(attachment\Filter::getInstance(), 'restrict_manage_posts'));
        add_filter('ajax_query_attachments_args', array(attachment\Filter::getInstance(), 'ajax_query_attachments_args'));
        add_filter('mla_media_modal_query_final_terms', array(attachment\Filter::getInstance(), 'ajax_query_attachments_args'));
        add_filter('shortcode_atts_gallery', array(FolderShortcode::getInstance(), 'shortcode_atts_gallery'), 1, 3 );
        add_filter('RML/Folder/Insert/AnyParentHasMeta', array(RML_NS . '\\order\\Sortable', 'folder_insert_anyParentHasMetadata'), 10, 3);
        add_filter('RML/Folder/Insert/AnyParentHasMeta/orderAutomatically', array(RML_NS . '\\order\\Sortable', 'folder_insert_anyParentHasMetadata_orderAutomatically'), 10, 4);
        add_filter('posts_clauses', array(RML_NS . '\\order\\Sortable', 'posts_clauses'), 10, 2);
        add_filter('mla_media_modal_query_final_terms', array(RML_NS . '\\order\\Sortable', 'mla_media_modal_query_final_terms'), 10, 2);

        if (_wp_rml_active())
            add_thickbox();
        add_rml_meta_box('general', metadata\Meta::getInstance(), false, 0 );
        add_rml_meta_box('description', new metadata\Description(), false, 0 );
        //add_rml_meta_box('coverImage', new metadata\CoverImage(), false, 0 );
        //add_rml_user_settings_box('demo', new \MatthiasWeb\RealMediaLibrary\usersettings\Demo(), false, 0);
    }
    
    /**
     * Get the service.
     * 
     * @returns rest\Service
     */
    public function getService() {
        return $this->service;
    }
    
    /**
     * Use the wp die filter to make the last update count;
     */
    public function update_count($str) {
        attachment\CountCache::getInstance()->wp_die();
        return $str;
    }
    
    /**
     * Get singleton core class.
     * 
     * @returns Core
     */
    public static function getInstance() {
        return !isset(self::$me) ? self::$me = new Core() : self::$me;
    }
    
    /**
     * Static method to get a RML table name.
     * 
     * @see Core::getTableName
     */
    public static function tableName($name = '') {
        return self::getInstance()->getTableName($name);
    }
}
API documentation generated by ApiGen