Exemple #1
0
 /**
  * Returns form with password from given UID
  *
  * @param \In2code\Powermail\Domain\Model\Form $form
  * @return \TYPO3\CMS\Extbase\Persistence\Generic\QueryResult
  */
 public function hasPassword(\In2code\Powermail\Domain\Model\Form $form)
 {
     $query = $this->createQuery();
     $query->getQuerySettings()->setRespectStoragePage(FALSE);
     $and = array($query->equals('uid', $form->getUid()), $query->equals('pages.fields.type', 'password'));
     $query->matching($query->logicalAnd($and));
     return $query->execute();
 }
 /**
  * Read Label of a field from given UID
  *
  * @param string $marker Field Marker
  * @param \In2code\Powermail\Domain\Model\Form $form
  * @param string $property Field Property
  * @return string Property
  */
 public function render($marker, \In2code\Powermail\Domain\Model\Form $form, $property)
 {
     $field = $this->fieldRepository->findByMarkerAndForm($marker, $form->getUid());
     if (method_exists($field, 'get' . ucfirst($property))) {
         return $field->{'get' . ucfirst($property)}();
     }
     return '';
 }
 /**
  * Get a Property from Field by given Marker and Form
  *
  * @param string $marker Field Marker
  * @param Form $form
  * @param string $property Field Property
  * @return string Property
  */
 public function render($marker, Form $form, $property)
 {
     $field = $this->fieldRepository->findByMarkerAndForm($marker, $form->getUid());
     if ($field !== null) {
         return ObjectAccess::getProperty($field, $property);
     }
     return '';
 }
 /**
  * Test for render()
  *
  * @param array $settings
  * @param array $additionalAttributes
  * @param array $expectedResult
  * @return void
  * @dataProvider renderReturnsArrayDataProvider
  * @test
  */
 public function renderReturnsArray($settings, $additionalAttributes, $expectedResult)
 {
     $form = new Form();
     $form->_setProperty('uid', 123);
     $this->enableParsleyAndAjaxViewHelperMock->_set('addRedirectUri', false);
     $this->enableParsleyAndAjaxViewHelperMock->_set('settings', $settings);
     $result = $this->enableParsleyAndAjaxViewHelperMock->_callRef('render', $form, $additionalAttributes);
     $this->assertSame($expectedResult, $result);
 }
 /**
  * Test for createHash()
  *
  * @return void
  * @test
  */
 public function createHashReturnsString()
 {
     $form = new Form();
     $form->_setProperty('uid', 123);
     $mail = new Mail();
     $mail->_setProperty('uid', 123);
     $mail->_setProperty('pid', 124);
     $mail->setForm($form);
     $result = OptinUtility::createOptinHash($mail);
     $this->assertEquals('abf068777a', $result);
     $this->assertTrue(strlen($result) === 10);
 }
Exemple #6
0
 /**
  * Get all pages with tt_content with a Powermail Plugin
  *
  * @param \In2code\Powermail\Domain\Model\Form $form
  * @return array
  */
 public function getPagesWithContentRelatedToForm($form)
 {
     $query = $this->createQuery();
     $searchString = '%<field index=\\"settings.flexform.main.form\\">';
     $searchString .= '\\n                    <value index=\\"vDEF\\">' . $form->getUid() . '</value>%';
     $sql = 'select distinct pages.title, pages.uid';
     $sql .= ' from pages left join tt_content on tt_content.pid = pages.uid';
     $sql .= ' where tt_content.list_type = "powermail_pi1"';
     $sql .= ' and tt_content.deleted = 0 and pages.deleted = 0';
     $sql .= ' and tt_content.pi_flexform like "' . $searchString . '"';
     $result = $query->statement($sql)->execute(TRUE);
     return $result;
 }
 /**
  * Test for createHash()
  *
  * @return void
  * @test
  */
 public function createHashReturnsString()
 {
     $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = 'abcdef';
     $form = new Form();
     $form->_setProperty('uid', 123);
     $mail = new Mail();
     $mail->_setProperty('uid', 123);
     $mail->_setProperty('pid', 124);
     $mail->setForm($form);
     $result = OptinUtility::createOptinHash($mail);
     $this->assertEquals('cf06c6db71', $result);
     $this->assertTrue(strlen($result) === 10);
 }
 /**
  * Get all fields from form
  *
  * @param \In2code\Powermail\Domain\Model\Form $form
  * @param string $property
  * @param bool $htmlSpecialChars
  * @return array
  */
 public function render(\In2code\Powermail\Domain\Model\Form $form, $property = 'title', $htmlSpecialChars = TRUE)
 {
     $fields = array();
     foreach ($form->getPages() as $page) {
         foreach ($page->getFields() as $field) {
             $fieldProperty = $field->{'get' . ucfirst($property)}();
             if ($htmlSpecialChars) {
                 $fieldProperty = htmlspecialchars($fieldProperty);
             }
             $fields[] = $fieldProperty;
         }
     }
     return $fields;
 }
 /**
  * Get all fields from form
  *
  * @param Form $form
  * @param string $property
  * @param bool $htmlSpecialChars
  * @return array
  */
 public function render(Form $form, $property = 'title', $htmlSpecialChars = true)
 {
     $fields = [];
     foreach ($form->getPages() as $page) {
         foreach ($page->getFields() as $field) {
             $fieldProperty = ObjectAccess::getProperty($field, $property);
             if ($htmlSpecialChars) {
                 $fieldProperty = htmlspecialchars($fieldProperty);
             }
             $fields[] = $fieldProperty;
         }
     }
     return $fields;
 }
 /**
  * Returns Data Attribute Array to enable parsley
  *
  * @param \In2code\Powermail\Domain\Model\Form $form
  * @param \array $additionalAttributes To add further attributes
  * @return \array for data attributes
  */
 public function render(\In2code\Powermail\Domain\Model\Form $form, $additionalAttributes = array())
 {
     $dataArray = $additionalAttributes;
     // add parsley attribute
     if ($this->isClientValidationEnabled()) {
         $dataArray['data-parsley-validate'] = 'data-parsley-validate';
     }
     // add attribute for html5 validation
     if ($this->isNativeValidationEnabled()) {
         $dataArray['data-validate'] = 'html5';
     }
     // add ajax attribute
     if ($this->settings['misc']['ajaxSubmit'] === '1') {
         $dataArray['data-powermail-ajax'] = 'true';
         $dataArray['data-powermail-form'] = $form->getUid();
     }
     return $dataArray;
 }
 /**
  * Returns Data Attribute Array to enable parsley
  *
  * @param Form $form
  * @param array $additionalAttributes To add further attributes
  * @return array for data attributes
  */
 public function render(Form $form, $additionalAttributes = array())
 {
     if ($this->isClientValidationEnabled()) {
         $additionalAttributes['data-parsley-validate'] = 'data-parsley-validate';
     }
     if ($this->isNativeValidationEnabled()) {
         $additionalAttributes['data-validate'] = 'html5';
     }
     if ($this->settings['misc']['ajaxSubmit'] === '1') {
         $additionalAttributes['data-powermail-ajax'] = 'true';
         $additionalAttributes['data-powermail-form'] = $form->getUid();
         if ($this->addRedirectUri) {
             /** @var RedirectUriService $redirectService */
             $redirectService = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('In2code\\Powermail\\Domain\\Service\\RedirectUriService', $this->contentObject);
             $redirectUri = $redirectService->getRedirectUri();
             if ($redirectUri) {
                 $additionalAttributes['data-powermail-ajax-uri'] = $redirectUri;
             }
         }
     }
     return $additionalAttributes;
 }
 /**
  * Returns Data Attribute Array to enable parsley
  *
  * @param Form $form
  * @param array $additionalAttributes To add further attributes
  * @return array for data attributes
  */
 public function render(Form $form, $additionalAttributes = [])
 {
     if ($this->isClientValidationEnabled()) {
         $additionalAttributes['data-parsley-validate'] = 'data-parsley-validate';
     }
     if ($this->isNativeValidationEnabled()) {
         $additionalAttributes['data-validate'] = 'html5';
     }
     if ($this->settings['misc']['ajaxSubmit'] === '1') {
         $additionalAttributes['data-powermail-ajax'] = 'true';
         $additionalAttributes['data-powermail-form'] = $form->getUid();
         if ($this->addRedirectUri) {
             /** @var RedirectUriService $redirectService */
             $redirectService = GeneralUtility::makeInstance(ObjectManager::class)->get(RedirectUriService::class, $this->contentObject);
             $redirectUri = $redirectService->getRedirectUri();
             if ($redirectUri) {
                 $additionalAttributes['data-powermail-ajax-uri'] = $redirectUri;
             }
         }
     }
     return $additionalAttributes;
 }
 /**
  * @param string $marker
  * @param string $value
  * @param Form $form
  * @param int $pageUid
  * @return QueryResultInterface
  */
 public function findByMarkerValueForm($marker, $value, $form, $pageUid)
 {
     $query = $this->createQuery();
     $and = array($query->equals('answers.field', $this->fieldRepository->findByMarkerAndForm($marker, $form->getUid())), $query->equals('answers.value', $value), $query->equals('pid', $pageUid));
     $query->matching($query->logicalAnd($and));
     return $query->execute();
 }
Exemple #14
0
 /**
  * Returns form with password from given UID
  *
  * @param Form $form
  * @return QueryResult
  */
 public function hasPassword(Form $form)
 {
     $query = $this->createQuery();
     $query->getQuerySettings()->setRespectStoragePage(false);
     $and = [$query->equals('uid', $form->getUid()), $query->equals('pages.fields.type', 'password')];
     $query->matching($query->logicalAnd($and));
     return $query->execute();
 }
 /**
  * hasFormAnUploadFieldReturnBool Test
  *
  * @return void
  * @test
  */
 public function hasFormAnUploadFieldReturnBool()
 {
     $fieldObjectStorage = new ObjectStorage();
     $field = new Field();
     $field->setType('captcha');
     $fieldObjectStorage->attach($field);
     $field2 = new Field();
     $field2->setType('file');
     $fieldObjectStorage->attach($field2);
     $pagesObjectStorage = new ObjectStorage();
     $page = new Page();
     $page->setFields($fieldObjectStorage);
     $pagesObjectStorage->attach($page);
     $form = new Form();
     $form->setPages($pagesObjectStorage);
     $this->assertTrue(BasicFileUtility::hasFormAnUploadField($form));
     $field2->setType('textarea');
     $this->assertFalse(BasicFileUtility::hasFormAnUploadField($form));
 }
Exemple #16
0
 /**
  * Check if this form has an upload field
  *
  * @param \In2code\Powermail\Domain\Model\Form $form
  * @return bool
  */
 public static function hasFormAnUploadField(\In2code\Powermail\Domain\Model\Form $form)
 {
     foreach ($form->getPages() as $page) {
         foreach ($page->getFields() as $field) {
             if ($field->getType() === 'file') {
                 return TRUE;
             }
         }
     }
     return FALSE;
 }
 /**
  * Check if this form has an upload field
  *
  * @param Form $form
  * @return bool
  */
 public static function hasFormAnUploadField(Form $form)
 {
     foreach ($form->getPages() as $page) {
         /** @var Field $field */
         foreach ($page->getFields() as $field) {
             if ($field->getType() === 'file') {
                 return true;
             }
         }
     }
     return false;
 }