3ev Core Wordpress library API
  • Namespace
  • Class

Namespaces

  • Tev
    • Application
      • Bootstrap
    • Author
      • Model
    • Contracts
    • Database
      • CustomTables
    • Field
      • Model
      • Util
    • Plugin
      • Action
      • Shortcode
    • Post
      • Model
      • Repository
    • Taxonomy
      • Model
      • Repository
    • Term
      • Model
      • Repository
    • Util
    • View
      • Exception
  • None

Classes

  • Tev\Application\Application
  • Tev\Application\Bootstrap\AuthorFactory
  • Tev\Application\Bootstrap\FieldFactory
  • Tev\Application\Bootstrap\PluginLoader
  • Tev\Application\Bootstrap\Post
  • Tev\Application\Bootstrap\Taxonomy
  • Tev\Application\Bootstrap\Term
  • Tev\Application\Bootstrap\Util
  • Tev\Author\Factory
  • Tev\Author\Model\Author
  • Tev\Database\CustomTables\AbstractInstaller
  • Tev\Database\Utils
  • Tev\Field\Factory
  • Tev\Field\Model\AbstractField
  • Tev\Field\Model\AuthorField
  • Tev\Field\Model\BasicField
  • Tev\Field\Model\DateField
  • Tev\Field\Model\FileField
  • Tev\Field\Model\FlexibleContentField
  • Tev\Field\Model\GoogleMapField
  • Tev\Field\Model\ImageField
  • Tev\Field\Model\NullField
  • Tev\Field\Model\NumberField
  • Tev\Field\Model\PostField
  • Tev\Field\Model\RepeaterField
  • Tev\Field\Model\SelectField
  • Tev\Field\Model\TaxonomyField
  • Tev\Field\Util\FieldGroup
  • Tev\Field\Util\LayoutFieldGroup
  • Tev\Plugin\Action\AbstractProvider
  • Tev\Plugin\Loader
  • Tev\Plugin\Shortcode\AbstractProvider
  • Tev\Post\Factory
  • Tev\Post\Model\AbstractPost
  • Tev\Post\Model\Attachment
  • Tev\Post\Model\Page
  • Tev\Post\Model\Post
  • Tev\Post\Repository\PostRepository
  • Tev\Taxonomy\Factory
  • Tev\Taxonomy\Model\Taxonomy
  • Tev\Taxonomy\Repository\TaxonomyRepository
  • Tev\Term\Factory
  • Tev\Term\Model\Term
  • Tev\Term\Repository\TermRepository
  • Tev\Util\TemplateExtras
  • Tev\View\Renderer

Interfaces

  • Tev\Contracts\BootstrapperInterface
  • Tev\Contracts\WordpressWrapperInterface

Exceptions

  • Tev\View\Exception\NotFoundException
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 
<?php
namespace Tev\Field\Model;

/**
 * Select field.
 *
 * A select field can have one or more objects selected.
 */
class SelectField extends AbstractField
{
    /**
     * Get the selected options.
     *
     * @return mixed Single selected option, or array of selected options
     */
    public function getValue()
    {
        $options = $this->options();

        if ($this->multiSelected()) {
            $values = array();

            foreach ($this->selected() as $val) {
                $values[] = $options[$val];
            }

            return $values;
        } else {
            return $options[$this->selected()];
        }
    }

    /**
     * Get the selected option values.
     *
     * @return mixed Single selected option value, or array of selected options values
     */
    public function selected()
    {
        return $this->base['value'];
    }

    /**
     * Get all available options from this select.
     *
     * @return array Key-value pairs (values to labels)
     */
    public function options()
    {
        return $this->base['choices'];
    }

    /**
     * Check if the given value is selected.
     *
     * @param  mixed   $val Value
     * @return boolean      True if selected, false if not
     */
    public function isSelected($val)
    {
        if ($this->isMulti()) {
            return in_array($val, $this->getValue());
        } else {
            return $val === $this->getValue();
        }
    }

    /**
     * Check if this is a multi-select or not.
     *
     * @return boolean True if multi-select, false if not
     */
    public function isMulti()
    {
        return (boolean) $this->base['multiple'];
    }

    /**
     * Get a string representation of this selected options.
     *
     * If this is a multi-select, values will be comma-space separated.
     *
     * @return string
     */
    public function __toString()
    {
        if ($this->multiSelected()) {
            return implode(', ', $this->getValue());
        } else {
            return $this->getValue();
        }
    }

    /**
     * Check if the selected options are in mult-format.
     *
     * @return boolean
     */
    private function multiSelected()
    {
        return is_array($this->selected());
    }
}
3ev Core Wordpress library API API documentation generated by ApiGen