getolympus/olympus-select-field

This package is abandoned and no longer maintained. The author suggests using the getolympus/olympus-dionysos-field-select package instead.

Select / Multiselect field, this component is a part of the Olympus Dionysos fields.

v0.0.12 2023-12-17 22:37 UTC

This package is auto-updated.

Last update: 2023-12-18 19:53:11 UTC


README

field-select.png

Dionysos Select Field

Olympus Component CodeFactor Grade Packagist Version MIT

This component is a part of the Olympus Dionysos fields for WordPress.
It uses the default WordPress select or multiselect field.

composer require getolympus/olympus-dionysos-field-select

Table of contents

Field initializationVariables definitionTexts definitionRetrive dataRelease historyContributing

Field initialization

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

// Uniq choice version
return \GetOlympus\Dionysos\Field\Select::build('my_select_field_id', [
    'title'       => 'Select a Minion that you may know',
    'default'     => 'kevin',
    'description' => 'A very important question! Pay attention to it ;)',
    'multiple'    => false,
    'options'     => [
        'kevin' => 'Kevin',
        'mel'   => 'Mel',
        'dave'  => 'Dave',
        'bob'   => 'Bob',
    ],

    /**
     * Texts definition
     * @see the `Texts definition` section below
     */
    't_keyboard'   => 'Press the <kbd>CTRL</kbd> or <kbd>CMD</kbd> button to select more than one option.',
    't_no_options' => 'The field does no have any options.',
]);
// Multiple choice version
return \GetOlympus\Dionysos\Field\Select::build('my_multiselect_field_id', [
    'title'       => 'What are your preferred personas?',
    'default'     => ['minions', 'lapinscretins'],
    'description' => 'The White House needs your feedback asap!',
    'multiple'    => true,
    '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_keyboard'   => 'Press the <kbd>CTRL</kbd> or <kbd>CMD</kbd> button to select more than one option.',
    't_no_options' => 'The field does no have any options.',
]);

Variables definition

The variables definition depends on multiple value:

  • set to false, a uniq string value is stored in Database
  • set to true, an array of key values is stored in Database

In all cases:

Variable Type Default value if not set Accepted values
title String 'Radio button' empty
description String empty empty
options Array empty Array with a key/value options

Uniq choice

Variable Type Default value if not set Accepted values
default String empty string One of the options keys
multiple Boolean false nothing else

Multiple choices

Variable Type Default value if not set Accepted values
default String empty array Array with options keys
multiple Boolean true nothing else

Texts definition

Code Default value Definition
t_keyboard Press the CTRL or CMD
button to select more than one
option.
Used as a notice to help users to user multiselect field
t_no_options The field does no have any options. Used as an error in the case no options have been set

Retrive data

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

// Get select from Database
$select = get_option('my_select_field_id', '');

// Display value
echo '<h2><b>'.$select.'</b>, master of the ceremony</h2>';

// Get multiselect from Database
$multiselect = get_option('my_multiselect_field_id', []);

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

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

    echo '</ul>';
}

Release History

Version Note
0.0.12 Change main css class
0.0.11 New Olympus components compatibility
Change repository to be a part of Dionysos fields
0.0.10 Remove twig dependency from composer

Contributing

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