This component is a part of the Olympus Dionysos fields for WordPress.
It uses the defaultwpMedia
WordPress javascript bundle to manage field.
composer require getolympus/olympus-dionysos-field-upload
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',
]);
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 tocurrent_user_can('upload_files')
(see WordPress reference)- Set
multiple
totrue
to enable the "Add medias" button
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 |
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>';
}
}
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
- Fork it (https://github.com/GetOlympus/olympus-dionysos-field-upload/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
Built with ♥ by Achraf Chouk ~ (c) since a long time.