/**
     * @test
     */
    public function findByUidsReturnsCorrectCountForString() {
        $uidArray = array();

        $uidArray[]=$this->testDatabase>createRecord('tx_powermail_domain_model_forms',array());
        $uidArray[]=$this->testDatabase>createRecord('tx_powermail_domain_model_forms',array());
        $uidArray[]=$this->testDatabase>createRecord('tx_powermail_domain_model_forms',array());
        $uidArray[]=$this->testDatabase>createRecord('tx_powermail_domain_model_forms',array());
        $uidArray[]=$this->testDatabase>createRecord('tx_powermail_domain_model_forms',array());

        $this->assertSame(5,$this->fixture->findByUids(implode(',',$uidArray))->count());
    }
	/**
	 * Validation of given Params
	 *
	 * @param $params
	 * @return bool
	 */
	public function isValid($params) {
		$gp = t3lib_div::_GP('tx_powermail_pi1');
		$formUid = $gp['form'];
		$form = $this->formsRepository->findByUid($formUid);
		if (!method_exists($form, 'getPages')) {
			return $this->isValid;
		}

		foreach ($form->getPages() as $page) { // every page in current form
			foreach ($page->getFields() as $field) { // every field in current page

				// if not a mandatory field
				if (!$field->getMandatory()) {
					continue;
				}

				// set error
				if (is_array($params[$field->getUid()])) {
					$empty = 1;
					foreach ($params[$field->getUid()] as $value) {
						if (strlen($value)) {
							$empty = 0;
							break;
						}
					}
					if ($empty) {
						$this->addError('mandatory', $field->getUid());
						$this->isValid = false;
					}
				} else {
					if (!strlen($params[$field->getUid()])) {
						$this->addError('mandatory', $field->getUid());
						$this->isValid = false;
					}
				}
			}
		}

		return $this->isValid;
  	}
예제 #3
0
	/**
	 * Returns the pages
	 *
	 * @return Tx_Extbase_Persistence_ObjectStorage<Tx_Powermail_Domain_Model_Pages> $pages
	 */
	public function getPages() {
		// if elementbrowser instead of IRRE (sorting workarround)
		$confArr = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['powermail']);
		if ($confArr['replaceIrreWithElementBrowser']) {
			$formSorting = t3lib_div::trimExplode(',', $this->formsRepository->getPagesValue($this->uid), 1);
			$formSorting = array_flip($formSorting);
			$pageArray = array();
			foreach ($this->pages as $page) {
				$pageArray[$formSorting[$page->getUid()]] = $page;
			}
			ksort($pageArray);
			return $pageArray;
		}

		return $this->pages;
	}
	/**
	  * action show form for creating new mails
	  *
	  * @return void
	  */
	public function formAction() {
		if (!isset($this->settings['main']['form']) || !$this->settings['main']['form']) {
			return;
		}

		// get forms
		$forms = $this->formsRepository->findByUids($this->settings['main']['form']);
		$this->signalSlotDispatcher->dispatch(__CLASS__, __FUNCTION__ . 'BeforeRenderView', array($forms, $this));
		$this->view->assign('forms', $forms);
		$this->view->assign('messageClass', $this->messageClass);
		$this->view->assign('action', ($this->settings['main']['confirmation'] ? 'confirmation' : 'create'));

		// open session
		if (method_exists($forms->getFirst(), 'getUid')) {
			Tx_Powermail_Utility_Div::saveFormStartInSession($forms->getFirst()->getUid());
		}
	}
예제 #5
0
 public function checkEvent($params, $obj)
 {
     $this->initializeAction();
     $frameworkConfiguration = $this->configurationManager->getConfiguration(Tx_Extbase_Configuration_ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK, 'woehrlSeminare', 'Eventlist');
     //~ t3lib_utility_Debug::debug($params, 'addInformation: params: ');
     $gp = t3lib_div::_GP('tx_powermail_pi1');
     $formUid = $gp['form'];
     $form = $this->formsRepository->findByUid($formUid);
     if (!method_exists($form, 'getPages')) {
         return $this->isValid = FALSE;
     }
     foreach ($form->getPages() as $page) {
         // every page in current form
         foreach ($page->getFields() as $field) {
             // every field in current page
             switch ($field->getMarker()) {
                 case 'action':
                     $action = $params[$field->getUid()];
                     break;
                 case 'editcode':
                     $editcode = $params[$field->getUid()];
                     break;
                 case 'event':
                     $formIdEvent = $field->getUid();
                     $eventId = $params[$formIdEvent];
                     break;
                 case 'eventtitle':
                     $formIdEventtitle = $field->getUid();
                     break;
             }
         }
     }
     //~ t3lib_utility_Debug::debug($editcode, 'checkEvent: editcode... ');
     switch ($action) {
         case 'delete':
             //~ $subscriber = $this->subscriberRepository->findAllByFeuser($frameworkConfiguration['persistence']['storagePid'])->getFirst();
             $subscriber = $this->subscriberRepository->findAllByEditcode($editcode, $frameworkConfiguration['persistence']['storagePid'])->getFirst();
             if (empty($subscriber)) {
                 t3lib_utility_Debug::debug($subscriber, 'checkEvent: NO subscriber found... ');
                 $obj->isValid = FALSE;
                 // we have to use the language labels of powermail :-(
                 // --> for validationerror_validation:
                 $obj->setError('validation', $idEventTitle);
                 break;
             }
             //~ t3lib_utility_Debug::debug($subscriber, 'saveSubscription: delete... ');
             $event = $this->eventRepository->findByUid($eventId);
             if (empty($event)) {
                 $obj->isValid = FALSE;
                 // we have to use the language labels of powermail :-(
                 // --> for validationerror_validation:
                 $obj->setError('validation', $idEventTitle);
                 break;
             }
             $event->removeSubscriber($subscriber);
             break;
         case 'new':
             if ($eventId > 0) {
                 $event = $this->eventRepository->findByUid($eventId);
                 // limit reached already --> overbooked
                 if (count($event->getSubscribers()) >= $event->getMaxSubscriber()) {
                     $obj->isValid = FALSE;
                     // we have to use the language labels of powermail :-(
                     // --> for validationerror_validation:
                     $obj->setError('validation', $idEventTitle);
                 }
             }
             break;
         default:
             return;
     }
     return;
     //~ t3lib_utility_Debug::debug($eventId  , 'checkEvent: eventId');
     if ($eventId > 0) {
         $event = $this->eventRepository->findByUid($eventId);
         // limit reached already --> overbooked
         if (count($event->getSubscribers()) >= $event->getMaxSubscriber()) {
             $obj->isValid = FALSE;
             // we have to use the language labels of powermail :-(
             // --> for validationerror_validation:
             $obj->setError('validation', $idEventTitle);
         }
     }
     return;
 }
	/**
	 * Checks if given form has a captcha
	 */
	protected function formHasCaptcha() {
		$gp = t3lib_div::_GP('tx_powermail_pi1');
		$formUid = $gp['form'];
		$form = $this->formsRepository->hasCaptcha($formUid);
		return count($form);
	}