public function getSearchFormElement(Option $option, $value) {
WCF::getTPL()->assign([
'option' => $option,
- 'searchOption' => $value !== null && ($value !== $option->defaultValue || isset($_POST['searchOptions'][$option->optionName])),
+ 'searchOption' => $this->forceSearchOption || ($value !== null && $value !== $option->defaultValue) || isset($_POST['searchOptions'][$option->optionName]),
'selectOptions' => $this->getSelectOptions($option),
'value' => !is_array($value) ? explode("\n", $value) : $value
]);
*/
public $templateName = 'radioButtonOptionType';
+ /**
+ * if `true`, the option is considered as being searched when generating the form element
+ * @var bool
+ */
+ public $forceSearchOption = false;
+
/**
* @inheritDoc
*/
*/
public function getSearchFormElement(Option $option, $value) {
$this->templateName = 'radioButtonSearchableOptionType';
- WCF::getTPL()->assign('searchOption', $value !== null && ($value !== $option->defaultValue || isset($_POST['searchOptions'][$option->optionName])));
+ WCF::getTPL()->assign(
+ 'searchOption',
+ $this->forceSearchOption || ($value !== null && $value !== $option->defaultValue) || isset($_POST['searchOptions'][$option->optionName])
+ );
return $this->getFormElement($option, $value);
}
'disableOptions' => $options['disableOptions'],
'enableOptions' => $options['enableOptions'],
'option' => $option,
- 'searchOption' => ($value !== null && $value !== $option->defaultValue) || isset($_POST['searchOptions'][$option->optionName]),
+ 'searchOption' => $this->forceSearchOption || ($value !== null && $value !== $option->defaultValue) || isset($_POST['searchOptions'][$option->optionName]),
'selectOptions' => $this->getSelectOptions($option),
'value' => $value
]);
*/
protected $inputClass = 'long';
+ /**
+ * if `true`, the option is considered as being searched when generating the form element
+ * @var bool
+ */
+ public $forceSearchOption = false;
+
/**
* @inheritDoc
*/
'option' => $option,
'inputType' => $this->inputType,
'inputClass' => $this->inputClass,
- 'searchOption' => $value !== null && ($value !== $option->defaultValue || isset($_POST['searchOptions'][$option->optionName])),
+ 'searchOption' => $this->forceSearchOption || ($value !== null && $value !== $option->defaultValue) || isset($_POST['searchOptions'][$option->optionName]),
'value' => $value
]);
return WCF::getTPL()->fetch('textSearchableOptionType');
public function getSearchFormElement(Option $option, $value) {
WCF::getTPL()->assign([
'option' => $option,
- 'searchOption' => $value !== null && ($value !== $option->defaultValue || isset($_POST['searchOptions'][$option->optionName])),
+ 'searchOption' => $this->forceSearchOption || ($value !== null && $value !== $option->defaultValue) || isset($_POST['searchOptions'][$option->optionName]),
'value' => $value
]);
return WCF::getTPL()->fetch('textareaSearchableOptionType');
*/
protected function getFormElement($type, Option $option) {
if ($this->searchMode) {
+ $optionType = $this->getTypeObject($type);
+
+ if ($this->conditionMode) {
+ $hasProperty = property_exists($optionType, 'forceSearchOption');
+
+ if ($hasProperty && isset($this->optionValues[$option->optionName])) {
+ $optionType->forceSearchOption = $this->optionValues[$option->optionName] == $option->defaultValue;
+ }
+
+ $element = $this->getTypeObject($type)->getSearchFormElement($option, (isset($this->optionValues[$option->optionName]) ? $this->optionValues[$option->optionName] : null));
+
+ if ($hasProperty && isset($this->optionValues[$option->optionName])) {
+ $optionType->forceSearchOption = false;
+ }
+
+ return $element;
+ }
+
/** @noinspection PhpUndefinedMethodInspection */
return $this->getTypeObject($type)->getSearchFormElement($option, (isset($this->optionValues[$option->optionName]) ? $this->optionValues[$option->optionName] : null));
}