mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
70 lines
1.6 KiB
PHP
70 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Customer\Model\Metadata\Form;
|
|
|
|
use Magento\Customer\Model\Metadata\ElementFactory;
|
|
use Magento\Framework\App\RequestInterface;
|
|
|
|
/**
|
|
* Form Element Multiselect Data Model
|
|
*/
|
|
class Multiselect extends Select
|
|
{
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function extractValue(RequestInterface $request)
|
|
{
|
|
$values = $this->_getRequestValue($request);
|
|
if ($values !== false && !is_array($values)) {
|
|
$values = [$values];
|
|
}
|
|
return $values;
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function compactValue($value)
|
|
{
|
|
if (is_array($value)) {
|
|
foreach ($value as $key => $val) {
|
|
$value[$key] = parent::compactValue($val);
|
|
}
|
|
|
|
$value = implode(',', $value);
|
|
}
|
|
return parent::compactValue($value);
|
|
}
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
public function outputValue($format = ElementFactory::OUTPUT_FORMAT_TEXT)
|
|
{
|
|
$values = $this->_value;
|
|
if (!is_array($values)) {
|
|
$values = explode(',', (string)$values);
|
|
}
|
|
|
|
if (ElementFactory::OUTPUT_FORMAT_ARRAY === $format || ElementFactory::OUTPUT_FORMAT_JSON === $format) {
|
|
return $values;
|
|
}
|
|
|
|
$output = [];
|
|
foreach ($values as $value) {
|
|
if (!$value) {
|
|
continue;
|
|
}
|
|
$output[] = $this->_getOptionText($value);
|
|
}
|
|
|
|
$output = implode(', ', $output);
|
|
|
|
return $output;
|
|
}
|
|
}
|