Exemplo n.º 1
0
/**
 * Outputs the form used by the importers to accept the data to be imported
 *
 * @since 0.0.1
 *
 * @param string $action The action attribute for the form.
 */
function hq_import_upload_form($action)
{
    /**
     * Filter the maximum allowed upload size for import files.
     *
     * @since 0.0.1
     *
     * @see hq_max_upload_size()
     *
     * @param int $max_upload_size Allowed upload size. Default 1 MB.
     */
    $bytes = apply_filters('import_upload_size_limit', hq_max_upload_size());
    $size = size_format($bytes);
    $upload_dir = hq_upload_dir();
    if (!empty($upload_dir['error'])) {
        ?>
<div class="error"><p><?php 
        _e('Before you can upload your import file, you will need to fix the following error:');
        ?>
</p>
		<p><strong><?php 
        echo $upload_dir['error'];
        ?>
</strong></p></div><?php 
    } else {
        ?>
<form enctype="multipart/form-data" id="import-upload-form" method="post" class="hq-upload-form" action="<?php 
        echo esc_url(hq_nonce_url($action, 'import-upload'));
        ?>
">
<p>
<label for="upload"><?php 
        _e('Choose a file from your computer:');
        ?>
</label> (<?php 
        printf(__('Maximum size: %s'), $size);
        ?>
)
<input type="file" id="upload" name="import" size="25" />
<input type="hidden" name="action" value="save" />
<input type="hidden" name="max_file_size" value="<?php 
        echo $bytes;
        ?>
" />
</p>
<?php 
        submit_button(__('Upload file and import'), 'button');
        ?>
</form>
<?php 
    }
}
Exemplo n.º 2
0
/**
 * Prints default plupload arguments.
 *
 * @since 0.0.1
 */
function hq_plupload_default_settings()
{
    $hq_scripts = hq_scripts();
    $data = $hq_scripts->get_data('hq-plupload', 'data');
    if ($data && false !== strpos($data, '_hqPluploadSettings')) {
        return;
    }
    $max_upload_size = hq_max_upload_size();
    $defaults = array('runtimes' => 'html5,flash,silverlight,html4', 'file_data_name' => 'async-upload', 'url' => admin_url('async-upload.php', 'relative'), 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array('max_file_size' => $max_upload_size . 'b'));
    // Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
    // when enabled. See #29602.
    if (hq_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $defaults['multi_selection'] = false;
    }
    /**
     * Filter the Plupload default settings.
     *
     * @since 0.0.1
     *
     * @param array $defaults Default Plupload settings array.
     */
    $defaults = apply_filters('plupload_default_settings', $defaults);
    $params = array('action' => 'upload-attachment');
    /**
     * Filter the Plupload default parameters.
     *
     * @since 0.0.1
     *
     * @param array $params Default Plupload parameters array.
     */
    $params = apply_filters('plupload_default_params', $params);
    $params['_hqnonce'] = hq_create_nonce('media-form');
    $defaults['multipart_params'] = $params;
    $settings = array('defaults' => $defaults, 'browser' => array('mobile' => hq_is_mobile(), 'supported' => _device_can_upload()), 'limitExceeded' => is_multisite() && !is_upload_space_available());
    $script = 'var _hqPluploadSettings = ' . hq_json_encode($settings) . ';';
    if ($data) {
        $script = "{$data}\n{$script}";
    }
    $hq_scripts->add_data('hq-plupload', 'data', $script);
}