Skip to content

Διώνυσος — Upload field, this component is a part of the Olympus Dionysos fields for WordPress.

License

Notifications You must be signed in to change notification settings

GetOlympus/olympus-dionysos-field-upload

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dionysos Upload Field

This component is a part of the Olympus Dionysos fields for WordPress.
It uses the default wpMedia WordPress javascript bundle to manage field.

composer require getolympus/olympus-dionysos-field-upload

Olympus Component CodeFactor Grade Packagist Version MIT



Field initialization

Use the following lines to add a upload field in your WordPress admin pages or custom post type meta fields:

return \GetOlympus\Dionysos\Field\Upload::build('my_upload_field_id', [
    'title'       => 'What\'s your flavor?',
    'can_upload'  => false,
    'default'     => [],
    'description' => 'Tell me what\'s your flavour!',
    'multiple'    => false,
    'type'        => 'image',
    'size'        => 'thumbnail',

    /**
     * Texts definition
     * @see the `Texts definition` section below
     */
    't_addblock_description'  => 'Click on the "+" button to add a media.',
    't_addblocks_description' => 'Click on the "+" button to add medias.',
    't_cannot_upload'         => 'It seems you are not able to upload files.',
    't_name_label'            => 'Edit the legend',
    't_addblock_label'        => 'Add',
    't_editblock_label'       => 'Edit',
    't_removeblock_label'     => 'Remove',
]);

Variables definition

Variable Type Default value if not set Accepted values
title String 'Upload' empty
can_upload Boolean false true or false
default Array empty empty
description String empty empty
multiple Boolean false true or false
type String 'image' default file mime types
size String 'thumbnail' image sizes from add_image_size() WordPress function

Notes:

  • can_upload value is defined thanks to current_user_can('upload_files') (see WordPress reference)
  • Set multiple to true to enable the "Add medias" button

Texts definition

Code Default value Definition
t_addblock_description Click on the "+" button to add a media. Main helper to add a single item box
t_addblocks_description Click on the "+" button to add medias. Main helper to add multiple items boxes
t_cannot_upload It seems you are not able to upload files. Error displayed if user cannot upload files
t_name_label Edit the legend Name item's placeholder
t_addblock_label Add Used as an Add button area title
t_editblock_label Edit Used as an Edit button area title
t_removeblock_label Remove Used as a Remove button area title

Retrive data

Retrieve your value from Database with a simple get_option('my_upload_field_id', []) (see WordPress reference). Below, a json_encode() example to understand how data are stored in Database:

{
  "mediaId": {
    "name": "mediaName.mediaExt",
    "id": "mediaId",
    "height": "mediaHeight",
    "url": "mediaUrl",
    "width": "mediaWidth"
  }
}

And below, a simple example to show how to iterate on the data array in PHP:

// Get upload from Database
$upload = get_option('my_upload_field_id', []);

if (!empty($upload)) {
    foreach ($upload as $img) {
        echo '<figure id="'.$img['id'].'">';
        echo '<img src="'.$img['url'].'" width="'.$img['width'].'" height="'.$img['height'].'" alt="'.esc_html($img['name']).'" />';
        echo '<figcaption>'.$img['name'].'</figcaption>';
        echo '</figure>';
    }
}

Release History

0.0.16

  • Remove useless admin scripts

0.0.15

  • Display now compatible with new Zeus-Core version

0.0.14

  • New Olympus components compatibility
  • Change repository to be a part of Dionysos fields

Contributing

  1. Fork it (https://github.com/GetOlympus/olympus-dionysos-field-upload/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

Built with ♥ by Achraf Chouk ~ (c) since a long time.