silverstripe-framework/src/Forms/TreeMultiselectField_Readonly.php

41 lines
1.1 KiB
PHP
Raw Permalink Normal View History

<?php
namespace SilverStripe\Forms;
class TreeMultiselectField_Readonly extends TreeMultiselectField
{
2016-11-29 00:31:16 +01:00
protected $readonly = true;
public function Field($properties = [])
2016-11-29 00:31:16 +01:00
{
// Build list of titles
$titleField = $this->getTitleField();
$items = $this->getItems();
$titleArray = [];
foreach ($items as $item) {
$titleArray[] = $item->$titleField;
2016-11-29 00:31:16 +01:00
}
$titleList = implode(", ", $titleArray);
// Build list of values
$itemIDs = [];
foreach ($items as $item) {
$itemIDs[] = $item->ID;
}
$itemIDsList = implode(",", $itemIDs);
// Readonly field for display
2016-11-29 00:31:16 +01:00
$field = new ReadonlyField($this->name . '_ReadonlyValue', $this->title);
$field->setValue($titleList);
$field->setForm($this->form);
// Store values to hidden field
2016-11-29 00:31:16 +01:00
$valueField = new HiddenField($this->name);
$valueField->setValue($itemIDsList);
$valueField->setForm($this->form);
2016-11-29 00:31:16 +01:00
return $field->Field() . $valueField->Field();
}
}