public static function AcquiaLiftAgent::convertContextToFeatureString in Acquia Lift Connector 7
Implements PersonalizeAgentInterface::convertContextToFeatureString().
This is essentially a PHP version of the js in the convertContextToFeatureString function in acquia_lift.js
1 call to AcquiaLiftAgent::convertContextToFeatureString()
- AcquiaLiftWebTestFundamentals::testConvertContextToFeatureString in tests/
acquia_lift.test - Tests the logic in AcquiaLiftAgent's implementation of convertContextToFeatureString().
File
- plugins/
agent_types/ AcquiaLiftAgent.inc, line 554 - Provides an agent type for Acquia Lift
Class
Code
public static function convertContextToFeatureString($name, $value, $is_mutex = FALSE) {
$separator = $is_mutex ? AcquiaLiftAPI::FEATURE_STRING_SEPARATOR_MUTEX : AcquiaLiftAPI::FEATURE_STRING_SEPARATOR_NONMUTEX;
$prefix_max_length = floor((AcquiaLiftAPI::FEATURE_STRING_MAX_LENGTH - strlen($separator)) / 2);
$prefix = AcquiaLiftAPI::cleanFeatureString($name);
$value = AcquiaLiftAPI::cleanFeatureString($value);
// Make a string of the visitor context item in the format Acquia Lift can
// consume.
$feature_string = $prefix . $separator . $value;
while (strlen($feature_string) > AcquiaLiftAPI::FEATURE_STRING_MAX_LENGTH) {
// Acquia Lift has a hard character limit for feature strings.
if (strlen($prefix) > $prefix_max_length) {
// Start by truncating the prefix down to half the max length.
$prefix = substr($prefix, 0, $prefix_max_length);
$feature_string = $prefix . $separator . $value;
}
else {
// Otherwise just truncate the whole thing down to the max length.
$feature_string = substr($feature_string, 0, AcquiaLiftAPI::FEATURE_STRING_MAX_LENGTH);
}
}
return $feature_string;
}