/** * Get value for default fieldtypes (input, textarea, hidden, select) * * @param \In2code\Powermail\Domain\Model\Field $field * @param \In2code\Powermail\Domain\Model\Mail $mail To prefill in Edit Action * @return string|array */ protected function getDefaultValue(\In2code\Powermail\Domain\Model\Field $field, \In2code\Powermail\Domain\Model\Mail $mail = NULL) { $value = ''; $marker = $field->getMarker(); $uid = $field->getUid(); // edit view if ($mail !== NULL && $mail->getAnswers()) { foreach ($mail->getAnswers() as $answer) { if ($answer->getField() === $field) { $value = $answer->getValue(); } } } // if GET/POST with marker (&tx_powermail_pi1[field][marker]=value) if (isset($this->piVars['field'][$marker])) { $value = $this->piVars['field'][$marker]; } elseif (isset($this->piVars[$marker])) { $value = $this->piVars[$marker]; } elseif (isset($this->piVars['field'][$uid])) { $value = $this->piVars['field'][$uid]; } elseif (isset($this->piVars['uid' . $uid])) { $value = $this->piVars['uid' . $uid]; } elseif ($field->getFeuserValue()) { // if fe_user is logged in if (intval($GLOBALS['TSFE']->fe_user->user['uid']) !== 0) { $value = $GLOBALS['TSFE']->fe_user->user[$field->getFeuserValue()]; } } elseif ($field->getPrefillValue()) { $value = $field->getPrefillValue(); } elseif (isset($this->settings['prefill.'][$marker]) || isset($this->settings['prefill.'][$marker . '.'])) { if (isset($this->settings['prefill.'][$marker . '.']) && is_array($this->settings['prefill.'][$marker . '.'])) { $data = \TYPO3\CMS\Extbase\Reflection\ObjectAccess::getGettableProperties($field); $this->cObj->start($data); if (isset($this->settings['prefill.'][$marker . '.']['0'])) { /** * plugin.tx_powermail.settings.setup.prefill.marker.0 = TEXT * plugin.tx_powermail.settings.setup.prefill.marker.0.value = red */ $value = array(); foreach (array_keys($this->settings['prefill.'][$marker . '.']) as $key) { if (stristr($key, '.')) { continue; } $value[] = $this->cObj->cObjGetSingle($this->settings['prefill.'][$marker . '.'][$key], $this->settings['prefill.'][$marker . '.'][$key . '.']); } } else { /** * plugin.tx_powermail.settings.setup.prefill.marker = TEXT * plugin.tx_powermail.settings.setup.prefill.marker.value = red */ $value = $this->cObj->cObjGetSingle($this->settings['prefill.'][$marker], $this->settings['prefill.'][$marker . '.']); } } else { /** * plugin.tx_powermail.settings.setup.prefill.marker = red */ $value = $this->settings['prefill.'][$marker]; } } return $value; }