getolympus/olympus-dionysos-field-checkbox

Checkbox field, this component is a part of the Olympus Dionysos fields.

v0.0.1 2023-12-18 11:30 UTC

This package is auto-updated.

Last update: 2024-11-18 13:35:17 UTC


README

This component is a part of the Olympus Dionysos fields for WordPress.

composer require getolympus/olympus-dionysos-field-checkbox

Olympus Component CodeFactor Grade Packagist Version MIT

Field initialization

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

return \GetOlympus\Dionysos\Field\Checkbox::build('my_checkbox_field_id', [
    'title'       => 'What are your preferred personas?',
    'default'     => ['minions', 'lapinscretins'],
    'description' => 'The White House needs your feedback asap!',
    'mode'        => 'default',
    'options'     => [
        'minions'       => 'The Minions',
        'lapinscretins' => 'The Lapins Crétins',
        'marvel'        => 'All Marvel Superheroes',
        'franklin'      => 'Franklin (everything is possible)',
        'spongebob'     => 'Spongebob (nothing to say... Love it!)',
    ],

    /**
     * Texts definition
     * @see the `Texts definition` section below
     */
    't_no_options' => 'The field does no have any options.',
]);

Variables definition

The field display depends on mode value:

  • set to default (or inline), labels options will be displayed on the same line, as an inline-block display
  • set to block, labels options will be displayed each per line, as a block display
  • set to image, labels options will be displayed as default mode, with images and overlay text label
  • set to image-block, labels options will be displayed as block mode, with images and overlay text label
  • set to group, labels options will be displayed as a simple but efficient group of choices

In all cases

Texts definition

Retrive data

Retrieve your value from Database with a simple get_option('my_checkbox_field_id', []) (see WordPress reference):

// Get checkbox from Database
$checkbox = get_option('my_checkbox_field_id', []);

if (!empty($checkbox)) {
    echo '<p>And the nominees are:</p>';
    echo '<ul>';

    foreach ($checkbox as $value) {
        echo '<li>'.$value.'</li>'; // Will display key item options!
    }

    echo '</ul>';
}

Image mode

To display images instead of simple labels, set the mode to image and build the field's options as follow:

$options = [
    'key-name' => [
        'label' => 'Label item',
        'image' => 'https://label-image-url',
    ],
];

Below, a full example:

return \GetOlympus\Dionysos\Field\Checkbox::build('my_checkbox_field_id', [
    'title'       => 'Select a Minion that you may know',
    'default'     => 'dave',
    'description' => 'A very important question! Pay attention to it ;)',
    'mode'        => 'image',
    'options'     => [
        'kevin' => [
            'label' => 'Kevin',
            'image' => 'https://vignette.wikia.nocookie.net/despicableme/images/1/1d/Kevin_minions.png/revision/latest/scale-to-width-down/350?cb=20170703052012',
        ],
        'mel'   => [
            'label' => 'Mel',
            'image' => 'https://vignette.wikia.nocookie.net/despicableme/images/2/2e/Mel_Minion_01.png/revision/latest/scale-to-width-down/350?cb=20160717135212',
        ],
        'dave'  => [
            'label' => 'Dave',
            'image' => 'https://vignette.wikia.nocookie.net/despicableme/images/7/71/Daveholdingcupcake.png/revision/latest/scale-to-width-down/350?cb=20130717145735',
        ],
        'bob'   => [
            'label' => 'Bob',
            'image' => 'https://vignette.wikia.nocookie.net/despicableme/images/c/ca/Bob-from-the-minions-movie.jpg/revision/latest/scale-to-width-down/350?cb=20151224154354',
        ],
    ],

    /**
     * Texts definitions
     * @see the `Texts definitions` section below
     */
    't_no_options' => 'The field does no have any options.',
]);

Release History

0.0.1

  • Initial commit

Contributing

  1. Fork it (https://github.com/GetOlympus/olympus-dionysos-field-checkbox/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.