Fix for hook update user call method, fix data for advanced subscription mails - refs BT#9092

1.10.x
Daniel Barreto 10 years ago
parent 452837194f
commit 4856acd8e7
  1. 30
      main/inc/lib/usermanager.lib.php
  2. 13
      plugin/advancedsubscription/ajax/advsub.ajax.php
  3. 36
      plugin/advancedsubscription/src/AdvancedSubscriptionPlugin.class.php

@ -5117,4 +5117,34 @@ EOF;
return 0;
}
/**
* Get the boss user ID from a followed user id
* @param $userId
* @return bool
*/
public static function getStudentBoss($userId)
{
$userId = intval($userId);
if ($userId !== 0) {
$userRelTable = Database::get_main_table(TABLE_MAIN_USER_REL_USER);
$row = Database::select(
'DISTINCT friend_user_id AS boss_id',
$userRelTable,
array(
'where' => array(
'user_id = ? AND relation_type = ? LIMIT 1' => array(
$userId,
USER_RELATION_TYPE_BOSS,
)
)
)
);
if (!empty($row)) {
return $row[0]['boss_id'];
}
}
return false;
}
}

@ -42,7 +42,7 @@ if (isset($data) && is_array($data)) {
$result = array('error' => true, 'errorMessage' => 'There was an error');
if (!empty($a) && !empty($u)) {
switch($a) {
case 'first': // Check minimum requirements
case 'check': // Check minimum requirements
try {
$res = AdvancedSubscriptionPlugin::create()->isAbleToRequest($u, $params);
if ($res) {
@ -57,7 +57,7 @@ if (!empty($a) && !empty($u)) {
$result['errorMessage'] = $e->getMessage();
}
break;
case 'second': // Subscription
case 'subscribe': // Subscription
$res = AdvancedSubscriptionPlugin::create()->startSubscription($u, $s, $params);
if ($res === true) {
// send mail to superior
@ -74,14 +74,13 @@ if (!empty($a) && !empty($u)) {
$var = $extraSession->get_values_by_handler_and_field_variable($s, 'numero_recomendado_participantes');
$sessionArray['recommended_subscription_limit'] = $var['field_valiue'];
$studentArray = api_get_user_info($u);
$superiorArray = api_get_user_info($u);
$adminArray = api_get_user_info($u);
$studentArray = api_get_user_info($u);
$superiorArray = api_get_user_info(UserManager::getStudentBoss($u));
$adminsArray = UserManager::get_all_administrators();
$data = array(
'student' => $studentArray,
'superior' => $superiorArray,
'admin' => $adminArray,
'admins' => $adminsArray,
'session' => $sessionArray,
'signature' => 'AQUI DEBE IR UNA FIRMA',
);
@ -99,7 +98,7 @@ if (!empty($a) && !empty($u)) {
$result['pass'] = false;
}
break;
case 'third': // Encrypt
case 'encrypt': // Encrypt
$res = $plugin->encrypt($data);
if (!empty($res) && strlen($res) > 16) {
$result['error'] = false;

@ -357,7 +357,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
{
$tpl = new Template($this->get_lang('plugin_title'));
$tpl->assign('data', $data);
$tplParams = array('user', 'student', 'students','superior', 'admin', 'session', 'signature', '_p', );
$tplParams = array('user', 'student', 'students','superior', 'admins', 'session', 'signature', '_p', );
foreach ($tplParams as $tplParam) {
if (isset($data['superior'])) {
$tpl->assign($tplParam, $data[$tplParam]);
@ -455,13 +455,16 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['session_id']
);
// Mail to admin
$mailIds[] = $this->sendMailMessage(
$data['admin']['id'],
$this->get_lang('MailStudentRequest'),
$tpl->fetch('/advancedsubscription/views/advsub_approval_admin_accepted_notice_admin.tpl'),
$data['session_id'],
true
);
foreach ($data['admins'] as $adminId => $admin) {
$tpl->assign('admin', $admin);
$mailIds[] = $this->sendMailMessage(
$adminId,
$this->get_lang('MailStudentRequest'),
$tpl->fetch('/advancedsubscription/views/advsub_approval_admin_accepted_notice_admin.tpl'),
$data['session_id'],
true
);
}
break;
case ADV_SUB_ACTION_ADMIN_DISAPPROVE:
// Mail to student
@ -480,12 +483,15 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['session_id']
);
// Mail to admin
$mailIds[] = $this->sendMailMessage(
$data['admin']['id'],
$this->get_lang('MailStudentRequest'),
$tpl->fetch('/advancedsubscription/views/advsub_approval_admin_rejected_notice_admin.tpl'),
$data['session_id']
);
foreach ($data['admins'] as $adminId => $admin) {
$tpl->assign('admin', $admin);
$mailIds[] = $this->sendMailMessage(
$adminId,
$this->get_lang('MailStudentRequest'),
$tpl->fetch('/advancedsubscription/views/advsub_approval_admin_rejected_notice_admin.tpl'),
$data['session_id']
);
}
break;
default:
break;
@ -735,7 +741,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
public function getQueueUrl($params)
{
$data = array(
'a' => 'second',
'a' => 'subscribe',
'u' => $params['user_id'],
's' => $params['session_id'],
'is_connected' => $params['is_connected'],

Loading…
Cancel
Save