/** * 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); }
/** * 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(); }
/** * 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)); }
/** * 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; }