pluginDescription;
}
public function textPopup(): void
{
?>
';
$typeinfo = [];
$typeinfo[] = acym_selectOption('receiver', 'ACYM_RECEIVER_INFORMATION');
$typeinfo[] = acym_selectOption('sender', 'ACYM_SENDER_INFORMATION');
if (!empty($isAutomation)) {
$typeinfo[] = acym_selectOption('current', 'ACYM_USER_TRIGGERING_AUTOMATION');
}
acym_radio(
$typeinfo,
'typeInfoUser',
'receiver',
['onclick' => 'changeUserTag(selectedUserDText)'],
['containerClass' => 'margin-bottom-1']
);
global $acymCmsUserVars;
$fields = [
$acymCmsUserVars->username => 'ACYM_LOGIN_NAME',
$acymCmsUserVars->name => 'ACYM_USER_NAME',
$acymCmsUserVars->registered => 'ACYM_REGISTRATION_DATE',
'groups' => 'ACYM_USER_GROUPS',
];
foreach ($fields as $fieldname => $description) {
echo '
';
}
// Handle joomla custom fields
if (ACYM_CMS == 'joomla' && ACYM_J37) {
// Load field groups
$groups = acym_loadObjectList('SELECT id, title FROM #__fields_groups WHERE context = "com_users.user" AND state = 1 ORDER BY title ASC');
$defaultGroup = new stdClass();
$defaultGroup->id = 0;
$defaultGroup->title = acym_translation('ACYM_NO_GROUP');
array_unshift($groups, $defaultGroup);
// Load custom fields
$customFields = acym_loadObjectList('SELECT id, title, group_id FROM #__fields WHERE context = "com_users.user" AND state = 1 ORDER BY title ASC');
if (!empty($customFields)) {
echo ''.esc_html(acym_translation('ACYM_CUSTOM_FIELDS')).'
';
foreach ($groups as $oneGroup) {
foreach ($customFields as $oneCF) {
if ($oneCF->group_id != $oneGroup->id) {
continue;
}
echo '';
}
}
}
}
echo '';
}
public function replaceUserInformation(object &$email, ?object &$user, bool $send = true): void
{
$extractedTags = $this->pluginHelper->extractTags($email, 'usertag');
if (empty($extractedTags)) {
return;
}
if (empty($this->customFields) && ACYM_CMS == 'joomla' && ACYM_J37) {
$this->customFields = acym_loadObjectList('SELECT * FROM #__fields WHERE context = "com_users.user"', 'id');
foreach ($this->customFields as &$oneCF) {
if (!empty($oneCF->fieldparams)) {
$oneCF->fieldparams = json_decode($oneCF->fieldparams, true);
}
}
}
$tags = [];
$receivervalues = [];
foreach ($extractedTags as $i => $mytag) {
if (isset($tags[$i])) {
continue;
}
$mytag->default = '';
$values = new stdClass();
$idused = 0;
//Should we keep
$save = false;
//Sender information
if (!empty($mytag->info) && $mytag->info == 'sender' && !empty($email->creator_id)) {
$idused = $email->creator_id;
$save = true;
}
//Current user information
if (!empty($mytag->info) && $mytag->info == 'current') {
continue;
}
//Receiver information
if ((empty($mytag->info) || $mytag->info == 'receiver') && !empty($user->cms_id)) {
$idused = $user->cms_id;
}
if (!empty($idused) && empty($this->sendervalues[$idused]) && empty($receivervalues[$idused])) {
global $acymCmsUserVars;
$receivervalues[$idused] = acym_loadObject('SELECT * FROM '.$acymCmsUserVars->table.' WHERE '.$acymCmsUserVars->id.' = '.intval($idused));
//If we save the value in the object as we may reuse it...
if ($save) {
$this->sendervalues[$idused] = $receivervalues[$idused];
}
}
if (!empty($this->sendervalues[$idused])) {
$values = $this->sendervalues[$idused];
} elseif (!empty($receivervalues[$idused])) {
$values = $receivervalues[$idused];
}
if ($mytag->id == 'groups') {
$groups = acym_getGroupsByUser($idused, true, true);
$values->groups = implode(', ', $groups);
}
if (empty($mytag->type)) {
$mytag->type = '';
}
if ($mytag->type == 'custom' && ACYM_CMS == 'joomla') {
$mytag->id = intval($mytag->id);
if (empty($mytag->id)) {
$replaceme = '';
} else {
$userFieldVals = acym_loadResultArray('SELECT value FROM #__fields_values WHERE item_id = '.intval($idused).' AND field_id = '.intval($mytag->id));
$fieldValues = trim(implode(', ', $userFieldVals), ', ');
if (empty($fieldValues)) {
$defaultValue = acym_loadObject('SELECT default_value, type FROM #__fields WHERE id = '.intval($mytag->id));
if (
($defaultValue->type === 'user' && !empty($defaultValue->default_value))
|| ($defaultValue->type !== 'user' && strlen($defaultValue->default_value) > 0)
) {
$userFieldVals = [$defaultValue->default_value];
}
}
foreach ($userFieldVals as &$oneFieldVal) {
switch ($this->customFields[$mytag->id]->type) {
case 'radio':
case 'list':
case 'checkboxes':
foreach ($this->customFields[$mytag->id]->fieldparams['options'] as $oneOPT) {
if ($oneOPT['value'] == $oneFieldVal) {
$oneFieldVal = $oneOPT['name'];
break;
}
}
break;
case 'usergrouplist':
if (empty($this->usergroups)) {
$this->usergroups = acym_loadObjectList('SELECT id, title FROM #__usergroups', 'id');
}
$oneFieldVal = $this->usergroups[$oneFieldVal]->title;
break;
case 'imagelist':
if (strlen($this->customFields[$mytag->id]->fieldparams['directory']) > 1) {
$oneFieldVal = '/'.$oneFieldVal;
} else {
$this->customFields[$mytag->id]->fieldparams['directory'] = '';
}
$oneFieldVal = '
';
break;
case 'url':
$oneFieldVal = ''.$oneFieldVal.'';
break;
case 'sql':
if (empty($this->customFields[$mytag->id]->options)) {
$this->customFields[$mytag->id]->options = acym_loadObjectList($this->customFields[$mytag->id]->fieldparams['query'], 'value');
}
$oneFieldVal = $this->customFields[$mytag->id]->options[$oneFieldVal]->text;
break;
case 'user':
$oneFieldVal = acym_currentUserName($oneFieldVal);
break;
case 'media':
$oneFieldVal = '
';
break;
case 'calendar':
$format = $this->customFields[$mytag->id]->fieldparams['showtime'] == '1' ? 'Y-m-d H:i' : 'Y-m-d';
$oneFieldVal = acym_date(strtotime($oneFieldVal), $format);
break;
}
}
$replaceme = implode(', ', $userFieldVals);
}
} else {
$replaceme = isset($values->{$mytag->id}) ? $values->{$mytag->id} : $mytag->default;
}
$tags[$i] = $replaceme;
$this->pluginHelper->formatString($tags[$i], $mytag);
}
$this->pluginHelper->replaceTags($email, $tags);
}
}