Exemple #1
0
    /**
     * Adds tab with AWS Elastic Transcoder configuration options
     */
    protected function __addAwsElasticTranscoderConfigTab()
    {
        $this->admin_page->addTab('AWS Elastic Transcoder', function ($data) {
            $config = Config::getInstance();
            $enabled = $config->get('elastic_transcoder.enabled');
            $config_file = $config->get('elastic_transcoder.config_file');
            ?>

      <br>
      <h3>Amazon Elastic Transcoder</h3>

      <input type="checkbox" name="<?php 
            echo Config::ELASTIC_TRANSCODER_CONFIG_OPTION_KEY;
            ?>
[enabled]" value="1" <?php 
            if ($enabled) {
                echo 'checked="checked"';
            }
            ?>
 <?php 
            if ($config->hasEnv('elastic_transcoder.enabled')) {
                echo 'disabled="disabled"';
            }
            ?>
>
      <label for="">Enabled</label>

      <br><br>
      <label>Configuration file</label><br>
      <input type="text" class="regular-text" name="<?php 
            echo Config::ELASTIC_TRANSCODER_CONFIG_OPTION_KEY;
            ?>
[config_file]" value="<?php 
            echo $config_file;
            ?>
" <?php 
            if ($config->hasEnv('elastic_transcoder.config_file')) {
                echo 'disabled="disabled"';
            }
            ?>
>
      <br>
      <span class="description">This should the a relative path inside the active theme</span>

      <br><br>
      <button class="button button-primary">Save</button>

    <?php 
        });
    }
 /**
  * Returns Google Cloud Storage filesystem
  * 
  * @return object Google Cloud Storage
  */
 protected function __getGCSFilesystem()
 {
     $config = Config::getInstance();
     $project_id = $config->get('storage.gcs.project_id');
     $auth_json = $config->get('storage.gcs.auth_json');
     $bucket_name = $config->get('storage.gcs.bucket');
     $prefix = $config->get('storage.gcs.prefix');
     if (!$project_id || !$auth_json || !$bucket_name) {
         return null;
     }
     // Init Google Cloud Storage client
     $client = new StorageClient(['projectId' => $project_id, 'keyFile' => json_decode($auth_json, true)]);
     // Get bucket object
     $bucket = $client->bucket($bucket_name);
     // Init adapter
     $adapter = new GoogleStorageAdapter($client, $bucket, $prefix);
     // Return Google Cloud Storage filesystem
     return new FlyFilesystem($adapter, ['visibility' => AdapterInterface::VISIBILITY_PUBLIC]);
 }
 /**
  * Used to delete the remote version of the
  * local file being deleted via the 'wp_delete_file' filter
  *
  * The 'wp_delete_file' filter is called for all image sizes,
  * so all the right files will be deleted by using it
  *
  * @param  string $file Absolute path to the file being deleted
  * @return void
  */
 public function __deleteRemoteFile($file)
 {
     // Remove uploads base path so that we end up
     // with the "/YYYY/MM/filename.extension" format
     $path = str_replace(Config::getInstance()->get('local.base_dir'), '', $file);
     // Delete remote file
     $fs = Filesystem::getInstance();
     if ($fs->remoteHas($path)) {
         $fs->deleteRemote($path);
     }
     // We must return the absolute path,
     // otherwise the local file won't be deleted
     return $file;
 }
 /**
  * Deletes remote files
  *
  * @link   https://www.gravityhelp.com/documentation/article/gform_delete_lead/ Gravity Forms hook documentation
  * @param  string $entry_id Entry ID
  * @return void
  */
 public function __deleteFilesFromRemote($entry_id)
 {
     // Get entry and form objects
     $entry = \GFAPI::get_entry($entry_id);
     $form = \GFAPI::get_form($entry['form_id']);
     // Get local base URL
     $local_base_url = Config::getInstance()->get('local.base_url');
     foreach ($form['fields'] as $field) {
         // Delete remote file
         if ($field->type == 'fileupload' && isset($entry[$field->id]) && $entry[$field->id]) {
             do_action('po_bebop_media.delete_file_from_remote', str_replace($local_base_url, '', $entry[$field->id]));
         }
     }
 }