getAllWithIdName();
$actions['acy_list_subscribe'] = new stdClass();
$actions['acy_list_subscribe']->name = acym_translation('ACYM_SUBSCRIBE_USER');
$actions['acy_list_subscribe']->option = '
';
$actions['acy_list_subscribe']->option .= acym_select(
$lists,
'acym_action[__num__][acy_list_subscribe][list_id]',
null,
['class' => 'acym__select']
);
$actions['acy_list_subscribe']->option .= '
';
$actions['acy_list_unsubscribe'] = new stdClass();
$actions['acy_list_unsubscribe']->name = acym_translation('ACYM_UNSUB_USER');
$actions['acy_list_unsubscribe']->option = '';
$actions['acy_list_unsubscribe']->option .= acym_select(
$lists,
'acym_action[__num__][acy_list_unsubscribe][list_id]',
null,
['class' => 'acym__select']
);
$actions['acy_list_unsubscribe']->option .= '
';
}
public function onAcymMailboxActionSummaryListing(&$action, &$result)
{
$listClass = new ListClass();
if (!empty($action['acy_list_subscribe'])) {
$list = $listClass->getOneById($action['acy_list_subscribe']['list_id']);
if (empty($list)) {
return;
}
$result[] = acym_translationSprintf('ACYM_SUBSCRIBE_USER_X', $list->name);
}
if (!empty($action['acy_list_unsubscribe'])) {
$list = $listClass->getOneById($action['acy_list_unsubscribe']['list_id']);
if (empty($list)) {
return;
}
$result[] = acym_translationSprintf('ACYM_UNSUB_USER_X', $list->name);
}
}
public function onAcymMailboxAction_acy_list_subscribe(&$action, &$report, &$executedActions, $mailboxHelper)
{
$userClass = new UserClass();
$user = new \stdClass();
$user->email = $mailboxHelper->_message->header->from_email;
$userDatabase = $userClass->getOneByEmail($user->email);
if (empty($userDatabase->id)) {
$user->id = $userClass->save($user);
if (empty($user->id)) {
$report[] = [
'message' => acym_translation('ACYM_ERROR_SAVING'),
'success' => false,
];
$executedActions = false;
return;
}
} else {
$user->id = $userDatabase->id;
}
$subscribed = $userClass->subscribe([$user->id], [$action['list_id']]);
if (!$subscribed) {
$report[] = [
'message' => acym_translationSprintf('ACYM_COULD_NOT_SUBSCRIBE_TO_X', $action['list_id']),
'success' => false,
];
$executedActions = false;
return;
}
$report[] = [
'message' => acym_translationSprintf('ACYM_SUBSCRIBE_USER_X', $action['list_id']),
'success' => true,
];
}
public function onAcymMailboxAction_acy_list_unsubscribe(&$action, &$report, &$executedActions, $mailboxHelper)
{
$user = new \stdClass();
$user->email = $mailboxHelper->_message->header->from_email;
$userClass = new UserClass();
$userDatabase = $userClass->getOneByEmail($user->email);
if (empty($userDatabase->id)) {
$report[] = [
'message' => acym_translationSprintf('ACYM_SEND_ERROR_USER', $mailboxHelper->_message->header->from_email),
'success' => false,
];
$executedActions = false;
return;
}
$affected = $userClass->unsubscribe([$userDatabase->id], [$action['list_id']]);
$message = $affected
? acym_translationSprintf('ACYM_UNSUB_USER_X_FROM_X', $userDatabase->email, $action['list_id'])
: acym_translationSprintf('ACYM_COULD_NOT_UNSUB_USER_X_FROM_X', $userDatabase->email, $action['list_id']);
$report[] = [
'message' => $message,
'success' => $affected,
];
$executedActions = $affected;
}
}