Swap JS actions with filters for robustness & testability, get rid of URL key hashing [PREMIUM-2]

This commit is contained in:
Alexey Stoletniy
2017-03-21 13:34:47 +03:00
parent ee12f4d304
commit d686f75222
4 changed files with 8 additions and 12 deletions

View File

@@ -103,7 +103,7 @@ define(
} }
]; ];
Hooks.doAction('mailpoet_newsletters_3rd_step_fields', fields); fields = Hooks.applyFilters('mailpoet_newsletters_3rd_step_fields', fields);
return { return {
getFields: function(newsletter) { getFields: function(newsletter) {

View File

@@ -413,7 +413,7 @@ define(
} }
]; ];
Hooks.doAction('mailpoet_newsletters_3rd_step_fields', fields); fields = Hooks.applyFilters('mailpoet_newsletters_3rd_step_fields', fields);
return { return {
getFields: function(newsletter) { getFields: function(newsletter) {

View File

@@ -73,7 +73,7 @@ define(
} }
]; ];
Hooks.doAction('mailpoet_newsletters_3rd_step_fields', fields); fields = Hooks.applyFilters('mailpoet_newsletters_3rd_step_fields', fields);
return { return {
getFields: function(newsletter) { getFields: function(newsletter) {

View File

@@ -73,9 +73,9 @@ class Links {
$processed_links = array(); $processed_links = array();
foreach($extracted_links as $extracted_link) { foreach($extracted_links as $extracted_link) {
$hash = Security::generateRandomString(self::HASH_LENGTH); $hash = Security::generateRandomString(self::HASH_LENGTH);
// Use a hashed key to map between extracted and processed links // Use URL as a key to map between extracted and processed links
// regardless of their sequential position (useful for link skips etc.) // regardless of their sequential position (useful for link skips etc.)
$key = self::getKey($extracted_link['link']); $key = $extracted_link['link'];
$processed_links[$key] = array( $processed_links[$key] = array(
'hash' => $hash, 'hash' => $hash,
'url' => $extracted_link['link'], 'url' => $extracted_link['link'],
@@ -89,9 +89,8 @@ class Links {
static function replace($content, $extracted_links, $processed_links) { static function replace($content, $extracted_links, $processed_links) {
foreach($extracted_links as $key => $extracted_link) { foreach($extracted_links as $key => $extracted_link) {
$key = self::getKey($extracted_link['link']); $key = $extracted_link['link'];
if(!isset($processed_links[$key]['processed_link'])) { if(!($hasReplacement = isset($processed_links[$key]['processed_link']))) {
// Skip this link
continue; continue;
} }
$processed_link = $processed_links[$key]['processed_link']; $processed_link = $processed_links[$key]['processed_link'];
@@ -113,6 +112,7 @@ class Links {
'[$1](' . $processed_link . ')', '[$1](' . $processed_link . ')',
$content $content
); );
// Clean up data used to generate a new link
unset($processed_links[$key]['processed_link']); unset($processed_links[$key]['processed_link']);
} }
return array( return array(
@@ -121,10 +121,6 @@ class Links {
); );
} }
static function getKey($value) {
return md5($value);
}
static function replaceSubscriberData( static function replaceSubscriberData(
$subscriber_id, $subscriber_id,
$queue_id, $queue_id,