Example #1
0
 /**
  * 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;
 }