Plugin Directory

Changeset 3457399


Ignore:
Timestamp:
02/09/2026 07:45:29 PM (8 weeks ago)
Author:
creatorcow
Message:

Update trunk for 1.0.1

Location:
mediamoo-for-spaces/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • mediamoo-for-spaces/trunk/composer.json

    r3318431 r3457399  
    22  "name": "creatorcow/mediamoo-for-spaces",
    33  "type": "plugin",
    4   "version": "1.0.0",
     4  "version": "1.0.1",
    55  "keywords": [
    66    "mediamoo",
  • mediamoo-for-spaces/trunk/loader.php

    r3318431 r3457399  
    88 * Plugin URI: https://wordpress.org/plugins/mediamoo-for-spaces/
    99 * Description: MediaMoo For Spaces, syncs your media library with DigitalOcean Spaces Container automatically.
    10  * Version: 1.0.0
     10 * Version: 1.0.1
    1111 * Author: creatorcow
    1212 * Author URI: https://creatorcow.com
  • mediamoo-for-spaces/trunk/mediamoo_dos_class.php

    r3318431 r3457399  
    99  private        $container;
    1010  private        $storage_path;
     11  private        $cdn_url;
    1112  private        $storage_file_only;
    1213  private        $storage_file_delete;
     
    2526        defined( 'MEDIAMOO_DOS_ENDPOINT' ) ? MEDIAMOO_DOS_ENDPOINT : null,
    2627        defined( 'MEDIAMOO_DOS_STORAGE_PATH' ) ? MEDIAMOO_DOS_STORAGE_PATH : null,
     28        defined( 'MEDIAMOO_DOS_CDN_URL' ) ? MEDIAMOO_DOS_CDN_URL : null,
    2729        defined( 'MEDIAMOO_DOS_STORAGE_FILE_ONLY' ) ? MEDIAMOO_DOS_STORAGE_FILE_ONLY : null,
    2830        defined( 'MEDIAMOO_DOS_STORAGE_FILE_DELETE' ) ? MEDIAMOO_DOS_STORAGE_FILE_DELETE : null,
     
    3335  }
    3436 
    35     public function __construct( $key, $secret, $container, $endpoint, $storage_path, $storage_file_only, $storage_file_delete, $filter ) {
     37    public function __construct( $key, $secret, $container, $endpoint, $storage_path, $cdn_url, $storage_file_only, $storage_file_delete, $filter ) {
    3638        $this->key                 = empty($key) ? get_option('mediamoo_dos_key') : $key;
    3739        $this->secret              = empty($secret) ? get_option('mediamoo_dos_secret') : $secret;
     
    3941    $this->container           = empty($container) ? get_option('mediamoo_dos_container') : $container;
    4042    $this->storage_path        = empty($storage_path) ? get_option('mediamoo_dos_storage_path') : $storage_path;
     43    $this->cdn_url             = empty($cdn_url) ? get_option('mediamoo_dos_cdn_url') : $cdn_url;
    4144    $this->storage_file_only   = empty($storage_file_only) ? get_option('mediamoo_dos_storage_file_only') : $storage_file_only;
    4245    $this->storage_file_delete = empty($storage_file_delete) ? get_option('mediamoo_dos_storage_file_delete') : $storage_file_delete;
     
    6871    add_filter('wp_unique_filename',array($this,'filter_wp_unique_filename'));
    6972    add_filter('plugin_action_links_' . plugin_basename(MEDIAMOO_DOS_PLUGIN_FILE), array($this, 'mediamoo_dos_plugin_action_links'));
     73    add_filter('upload_dir', array($this, 'filter_upload_dir'));
    7074  }
    7175
     
    111115    register_setting('mediamoo_dos_settings', 'mediamoo_dos_container', array('type' => 'string','sanitize_callback' => 'sanitize_text_field'));
    112116    register_setting('mediamoo_dos_settings', 'mediamoo_dos_storage_path', array('type' => 'string','sanitize_callback' => 'sanitize_text_field'));
     117    register_setting('mediamoo_dos_settings', 'mediamoo_dos_cdn_url', array('type' => 'string','sanitize_callback' => 'esc_url_raw'));
    113118    register_setting('mediamoo_dos_settings', 'mediamoo_dos_storage_file_only', array('type' => 'integer','sanitize_callback' => 'absint'));
    114119    register_setting('mediamoo_dos_settings', 'mediamoo_dos_storage_file_delete', array('type' => 'integer','sanitize_callback' => 'absint'));
     
    173178    array_unshift($links, $settings_link);
    174179    return $links;
     180  }
     181
     182  public function filter_upload_dir($uploads) {
     183    if (!empty($this->cdn_url)) {
     184      $cdn_base = rtrim($this->cdn_url, '/');
     185      if (!empty($this->storage_path)) {
     186        $cdn_base .= '/' . trim($this->storage_path, '/');
     187      }
     188      $uploads['baseurl'] = $cdn_base;
     189      $uploads['url'] = $cdn_base . $uploads['subdir'];
     190    }
     191    return $uploads;
    175192  }
    176193
     
    638655  delete_option('mediamoo_dos_container');
    639656  delete_option('mediamoo_dos_storage_path');
     657  delete_option('mediamoo_dos_cdn_url');
    640658  delete_option('mediamoo_dos_storage_file_only');
    641659  delete_option('mediamoo_dos_storage_file_delete');
  • mediamoo-for-spaces/trunk/mediamoo_dos_settings_page.php

    r3318431 r3457399  
    9494        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
    9595          <h4>
    96           File & Path settings
     96            Spaces settings
    9797          </h4>
    9898        </div>
     
    101101        <div class="row larger">
    102102          <div class="col-xs-12 col-sm-12 col-md-12 col-lg-2">
     103            <label for="mediamoo_dos_cdn_url">
     104              CDN/Public URL:
     105            </label>
     106          </div>
     107          <div class="col-xs-12 col-sm-12 col-md-12 col-lg-10">
     108            <input id="mediamoo_dos_cdn_url" name="mediamoo_dos_cdn_url" type="text" class="regular-text code" value="<?php echo esc_attr( defined( 'MEDIAMOO_DOS_CDN_URL' ) ? MEDIAMOO_DOS_CDN_URL : get_option('mediamoo_dos_cdn_url')  ); ?>"
     109            <?php echo ( defined( 'MEDIAMOO_DOS_CDN_URL' ) ? 'disabled' : '' ); ?>/>
     110            <div class="mediamoo_dos__description">
     111              The base URL where your files are publicly accessible.<br />
     112              Example: <code>https://bucket.nyc3.cdn.digitaloceanspaces.com</code> or a custom domain like <code>https://cdn.yoursite.com</code>
     113            </div>
     114          </div>
     115        </div>
     116        <div class="row larger" style="margin-top: 10px;">
     117          <div class="col-xs-12 col-sm-12 col-md-12 col-lg-2">
    103118            <label for="mediamoo_dos_storage_path">
    104               Storage prefix:
    105             </label>
    106           </div>
    107           <div class="col-xs-12 col-sm-12 col-md-12 col-lg-10">
    108             <input id="mediamoo_dos_storage_path" name="mediamoo_dos_storage_path" type="text" class="regular-text code" value="<?php echo esc_attr( defined( 'mediamoo_dos_STORAGE_PATH' ) ? mediamoo_dos_STORAGE_PATH : get_option('mediamoo_dos_storage_path')  ); ?>"
    109             <?php echo ( defined( 'mediamoo_dos_STORAGE_PATH' ) ? 'disabled' : '' ); ?>/>
    110             <div class="mediamoo_dos__description">
    111               The path to the file in the storage will appear as a prefix / path.<br />It likely should be this:
    112               <code><?php echo esc_html(get_option('mediamoo_dos_storage_path')); ?></code>
    113             </div>
    114           </div>
    115         </div>
     119              Spaces Storage Folder:
     120            </label>
     121          </div>
     122          <div class="col-xs-12 col-sm-12 col-md-12 col-lg-10">
     123            <input id="mediamoo_dos_storage_path" name="mediamoo_dos_storage_path" type="text" class="regular-text code" value="<?php echo esc_attr( defined( 'MEDIAMOO_DOS_STORAGE_PATH' ) ? MEDIAMOO_DOS_STORAGE_PATH : get_option('mediamoo_dos_storage_path')  ); ?>"
     124            <?php echo ( defined( 'MEDIAMOO_DOS_STORAGE_PATH' ) ? 'disabled' : '' ); ?>/>
     125            <div class="mediamoo_dos__description">
     126              Optional folder prefix within your Spaces bucket. Files will be stored under this folder.<br />
     127              Example: <code>website</code> will store files as <code>bucket/website/2026/02/image.jpg</code>
     128            </div>
     129          </div>
     130        </div>
     131      </div>
     132      <div class="row">
     133        <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
     134          <h4>
     135            File settings
     136          </h4>
     137        </div>
     138      </div>
     139      <div class="mediamoo_dos__block">
    116140        <div class="row" style="margin-top: 10px;margin-bottom: 10px;">
    117141          <div class="col-xs-12 col-sm-12 col-md-12 col-lg-2">
     
    121145          </div>
    122146          <div class="col-xs-12 col-sm-12 col-md-12 col-lg-10">
    123             <input id="mediamoo_dos_filter" name="mediamoo_dos_filter" type="text" class="regular-text code" value="<?php echo esc_attr( defined( 'mediamoo_dos_FILTER' ) ? mediamoo_dos_FILTER : get_option('mediamoo_dos_filter')  ); ?>"
    124             <?php echo ( defined( 'mediamoo_dos_FILTER' ) ? 'disabled' : '' ); ?>/>
     147            <input id="mediamoo_dos_filter" name="mediamoo_dos_filter" type="text" class="regular-text code" value="<?php echo esc_attr( defined( 'MEDIAMOO_DOS_FILTER' ) ? MEDIAMOO_DOS_FILTER : get_option('mediamoo_dos_filter')  ); ?>"
     148            <?php echo ( defined( 'MEDIAMOO_DOS_FILTER' ) ? 'disabled' : '' ); ?>/>
    125149            <div class="mediamoo_dos__description">
    126150              By default empty or <code>*</code>
  • mediamoo-for-spaces/trunk/readme.txt

    r3318431 r3457399  
    33Tags: spaces, storage, sync, backup, media
    44Requires at least: 5.4
    5 Tested up to: 6.8
    6 Stable tag: 1.0.0
     5Tested up to: 6.9.1
     6Stable tag: 1.0.1
    77Requires PHP: 7.4
    88License: MIT
     
    6161== Changelog ==
    6262
     63= 1.0.1 =
     64* Added CDN/Public URL field - allows you to set a custom CDN or public URL for serving media files from Spaces. Supports custom domains.
     65* Added Spaces Storage Folder field (renamed from Storage prefix) - organize WordPress media in a subfolder within your Spaces bucket.
     66* Fixed broken image URLs when using a storage folder prefix. WordPress attachment URLs now correctly include the folder path.
     67* Reorganized settings page: new "Spaces settings" section for CDN URL and Storage Folder, renamed "File & Path settings" to "File settings".
     68* Added MEDIAMOO_DOS_CDN_URL constant support for wp-config.php.
     69
    6370= 1.0.0 =
    6471* Initial release.
Note: See TracChangeset for help on using the changeset viewer.