/** * Initially fill the marker field from title * * @param \string $status mode of change * @param \string $table the table which gets changed * @param \string $uid uid of the record * @param \array $fieldArray the updateArray * @param \array $pObj * @return void */ public function processDatamap_postProcessFieldArray($status, $table, $uid, &$fieldArray, $pObj) { if ($table != 'tx_powermail_domain_model_fields') { return; } $markers = array_merge((array) $this->existingMarkers, (array) $this->marker); $this->makeUniqueValueInArray($markers); // set marker for new field if (isset($this->data['tx_powermail_domain_model_fields'][$uid]['marker']) || stristr($uid, 'NEW')) { $fieldArray['marker'] = 'marker_' . Div::createRandomString(8, FALSE); if (!empty($markers['_' . $uid])) { $fieldArray['marker'] = $markers['_' . $uid]; } } // revise marker if related to a new page and not allowed if (!empty($markers['_' . $uid]) && $markers['_' . $uid] !== $this->marker['_' . $uid]) { $fieldArray['marker'] = $markers['_' . $uid]; } }
/** * Get Randomized Filename and overwrite $_FILES array * * @param string &$filename * @param bool $randomized * @return void */ public function getAndSetRandomizedFileName(&$filename, $randomized) { if (!$randomized) { return; } $newFilename = Div::createRandomString(32, FALSE) . '.' . pathinfo($filename, PATHINFO_EXTENSION); if (isset($_FILES['tx_powermail_pi1']['name']['field'])) { foreach (array_keys($_FILES['tx_powermail_pi1']['name']['field']) as $marker) { foreach ($_FILES['tx_powermail_pi1']['name']['field'][$marker] as $key => $originalFileName) { self::cleanFileName($originalFileName); if ($originalFileName === $filename) { $_FILES['tx_powermail_pi1']['name']['field'][$marker][$key] = $newFilename; } } } } $filename = $newFilename; }
/** * createRandomStringAlwaysReturnsStringsOfGivenLength Test * * @param int $length * @param bool $uppercase * @dataProvider createRandomStringAlwaysReturnsStringsOfGivenLengthDateProvider * @return void * @test */ public function createRandomStringAlwaysReturnsStringsOfGivenLength($length, $uppercase) { for ($i = 0; $i < 10; $i++) { $string = \In2code\Powermail\Utility\Div::createRandomString($length, $uppercase); if ($uppercase) { $regex = '~[a-zA-Z0-9]{' . $length . '}~'; } else { $regex = '~[a-z0-9]{' . $length . '}~'; } $this->assertSame(1, preg_match($regex, $string)); } }