Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/units/affiliates/affiliates_tag_processor.php
Show All 12 Lines | |||||
defined('FULL_PATH') or die('restricted access!'); | defined('FULL_PATH') or die('restricted access!'); | ||||
class AffiliatesTagProcessor extends kDBTagProcessor { | class AffiliatesTagProcessor extends kDBTagProcessor { | ||||
/** | /** | ||||
* Returns link to be placed on other sites | * Returns link to be placed on other sites | ||||
* | * | ||||
* @param Array $params | * @param array $params Tag params. | ||||
* | |||||
* @return string | * @return string | ||||
*/ | */ | ||||
function GetAffiliateLink($params) | protected function GetAffiliateLink(array $params) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $this->getObject($params); | $object = $this->getObject($params); | ||||
/* @var $object kDBItem */ | |||||
$params['affiliate'] = $object->GetDBField('AffiliateCode'); | return $this->buildAffiliateLink($object); | ||||
$params['prefix'] = '_FRONT_END_'; | |||||
$params['index_file'] = 'index.php'; | |||||
// to build non-SSL link without SID in case, when SSL is enabled (or SSL domain doesn't match non-SSL domain) | |||||
$params['__SSL__'] = 0; | |||||
$params['__NO_SID__'] = 1; | |||||
$link = $this->Application->ProcessParsedTag('m', 'Link', $params); | |||||
// remove env manually | |||||
return preg_replace('/(.*)\/index.php\?env=(.*?)&(.*)/', '\\1/index.php?\\3', $link); | |||||
} | } | ||||
/** | /** | ||||
* Returns link to be placed on other sites (for current user) | * Returns link to be placed on other sites (for current user) | ||||
* | * | ||||
* @param Array $params | * @param array $params Tag params. | ||||
* | |||||
* @return string | * @return string | ||||
*/ | */ | ||||
function GetUserAffiliateLink($params) | protected function GetUserAffiliateLink(array $params) | ||||
{ | { | ||||
$object = $this->getObject(kUtil::array_merge_recursive($params, array('skip_autoload' => true))); | /** @var kDBItem $object */ | ||||
/* @var $object kDBItem */ | $object = $this->Application->recallObject($this->Prefix . '.manual', null, array('skip_autoload' => true)); | ||||
$object->Load($this->Application->RecallVar('user_id'), 'PortalUserId'); | |||||
$object->Load(array('PortalUserId' => $this->Application->RecallVar('user_id'))); | return $this->buildAffiliateLink($object); | ||||
} | |||||
$params['index_file'] = 'index.php'; | /** | ||||
* Builds affiliate link for given affiliate record. | |||||
* | |||||
* @param kDBBase $object Affiliate. | |||||
* | |||||
* @return string | |||||
*/ | |||||
protected function buildAffiliateLink(kDBBase $object) | |||||
{ | |||||
$params['affiliate'] = $object->GetDBField('AffiliateCode'); | $params['affiliate'] = $object->GetDBField('AffiliateCode'); | ||||
// to build non-SSL link without SID in case, when SSL is enabled (or SSL domain doesn't match non-SSL domain) | if ( $this->Application->isAdmin ) { | ||||
$params['prefix'] = '_FRONT_END_'; | |||||
} | |||||
// Force defaults to remove "index.html" in Mod-Rewrite mode. | |||||
$params['template'] = 'index'; | |||||
$params['m_lang'] = $this->Application->GetDefaultLanguageId(); | |||||
$params['m_theme'] = $this->Application->GetDefaultThemeId(); | |||||
// Build non-SSL link without SID in case, when SSL is enabled (or SSL domain doesn't match non-SSL domain). | |||||
$params['__SSL__'] = 0; | $params['__SSL__'] = 0; | ||||
$params['__NO_SID__'] = 1; | $params['__NO_SID__'] = 1; | ||||
// Use Mod-Rewrite, when available. | |||||
if ( $this->Application->ConfigValue('UseModRewrite') ) { | |||||
$params['__MOD_REWRITE__'] = 1; | |||||
} | |||||
else { | |||||
$params['index_file'] = 'index.php'; | |||||
} | |||||
$link = $this->Application->ProcessParsedTag('m', 'Link', $params); | $link = $this->Application->ProcessParsedTag('m', 'Link', $params); | ||||
// remove env manually | // Manually remove "env". | ||||
return preg_replace('/(.*)\/index.php\?env=(.*?)&(.*)/', '\\1/index.php?\\3', $link); | return preg_replace('/(.*)\/index.php\?env=(.*?)&(.*)/', '\\1/index.php?\\3', $link); | ||||
} | } | ||||
/** | /** | ||||
* [Aggregated Tag] Returns true if user is affiliate | * [Aggregated Tag] Returns true if user is affiliate | ||||
* | * | ||||
* @param Array $params | * @param Array $params | ||||
* @return bool | * @return bool | ||||
▲ Show 20 Lines • Show All 92 Lines • ▼ Show 20 Line(s) | |||||
function PresetFormFields($params) | function PresetFormFields($params) | ||||
{ | { | ||||
$prefix = $this->getPrefixSpecial(); | $prefix = $this->getPrefixSpecial(); | ||||
if ( !$this->Application->GetVar($prefix . '_event') && !$this->Application->GetVar('u.register_event') ) { | if ( !$this->Application->GetVar($prefix . '_event') && !$this->Application->GetVar('u.register_event') ) { | ||||
$this->Application->HandleEvent(new kEvent($prefix . ':OnNew')); | $this->Application->HandleEvent(new kEvent($prefix . ':OnNew')); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
No newline at end of file |