diff --git a/plugin/advanced_subscription/ajax/advanced_subscription.ajax.php b/plugin/advanced_subscription/ajax/advanced_subscription.ajax.php
index 10e523c111..f1e33ea8c2 100644
--- a/plugin/advanced_subscription/ajax/advanced_subscription.ajax.php
+++ b/plugin/advanced_subscription/ajax/advanced_subscription.ajax.php
@@ -25,6 +25,8 @@ $data['newStatus'] = intval($_REQUEST['e']);
// $data['is_connected'] = isset($_REQUEST['is_connected']) ? boolval($_REQUEST['is_connected']) : false;
$data['is_connected'] = true;
$data['profile_completed'] = isset($_REQUEST['profile_completed']) ? floatval($_REQUEST['profile_completed']) : 0;
+$data['accept_terms'] = isset($_REQUEST['accept_terms']) ? intval($_REQUEST['accept_terms']) : 0;
+$data['courseId'] = isset($_REQUEST['c']) ? intval($_REQUEST['c']) : 0;
// Init result array
$result = array('error' => true, 'errorMessage' => get_lang('ThereWasAnError'));
// Check if data is valid or is for start subscription
@@ -51,6 +53,11 @@ if ($verified) {
$res = AdvancedSubscriptionPlugin::create()->startSubscription($data['studentUserId'], $data['sessionId'], $data);
// Check if queue subscription was successful
if ($res === true) {
+ $legalEnabled = api_get_plugin_setting('courselegal', 'tool_enable');
+ if ($legalEnabled) {
+ // Save terms confirmation
+ CourseLegalPlugin::create()->saveUserLegal($data['studentUserId'], $data['courseId'], $data['sessionId']);
+ }
// Prepare data
// Get session data
// Assign variables
@@ -126,9 +133,8 @@ if ($verified) {
// Check if exist an email to render
if (isset($result['mailIds']['render'])) {
// Render mail
- $message = MessageManager::get_message_by_id($result['mailIds']['render']);
- $message = str_replace(array('
', '
', '
'), '', $message['content']);
- echo $message;
+ $url = $plugin->getRenderMailUrl(array('queueId' => $result['mailIds']['render']));
+ Header::location($url);
exit;
}
}
@@ -151,20 +157,27 @@ if ($verified) {
// Check if exist an email to render
if (isset($result['mailIds']['render'])) {
// Render mail
- $message = MessageManager::get_message_by_id($result['mailIds']['render']);
- $message = str_replace(array('
', '
', '
'), '', $message['content']);
- echo $message;
+ $url = $plugin->getRenderMailUrl(array('queueId' => $result['mailIds']['render']));
+ Header::location($url);
exit;
}
}
}
} else {
- if (is_string($res)) {
- $result['errorMessage'] = $res;
+ $lastMessageId = $plugin->getLastMessageId($data['studentUserId'], $data['sessionId']);
+ if ($lastMessageId !== false) {
+ // Render mail
+ $url = $plugin->getRenderMailUrl(array('queueId' => $lastMessageId));
+ Header::location($url);
+ exit;
} else {
- $result['errorMessage'] = 'User can not be subscribed';
+ if (is_string($res)) {
+ $result['errorMessage'] = $res;
+ } else {
+ $result['errorMessage'] = 'User can not be subscribed';
+ }
+ $result['pass'] = false;
}
- $result['pass'] = false;
}
break;
@@ -263,9 +276,8 @@ if ($verified) {
// Check if exist mail to render
if (isset($result['mailIds']['render'])) {
// Render mail
- $message = MessageManager::get_message_by_id($result['mailIds']['render']);
- $message = str_replace(array('
', '
', '
'), '', $message['content']);
- echo $message;
+ $url = $plugin->getRenderMailUrl(array('queueId' => $result['mailIds']['render']));
+ Header::location($url);
exit;
}
}
diff --git a/plugin/advanced_subscription/config.php b/plugin/advanced_subscription/config.php
index 9d1df8e83b..6bd8b7eef1 100644
--- a/plugin/advanced_subscription/config.php
+++ b/plugin/advanced_subscription/config.php
@@ -27,4 +27,9 @@ define('ADVANCED_SUBSCRIPTION_QUEUE_STATUS_BOSS_APPROVED', 2);
define('ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_DISAPPROVED', 3);
define('ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED', 10);
+define('ADVANCED_SUBSCRIPTION_TERMS_MODE_POPUP', 0);
+define('ADVANCED_SUBSCRIPTION_TERMS_MODE_REJECT', 1);
+
+
+
require_once __DIR__ . '/../../main/inc/global.inc.php';
diff --git a/plugin/advanced_subscription/lang/english.php b/plugin/advanced_subscription/lang/english.php
index adf7829226..e9925b17bc 100644
--- a/plugin/advanced_subscription/lang/english.php
+++ b/plugin/advanced_subscription/lang/english.php
@@ -135,3 +135,5 @@ $strings['MailContentReminderSuperiorSecond'] = 'We invite you to accept or reje
$strings['MailTitleReminderMaxSuperior'] = 'Reminder: Course inscription request for your collaborators';
$strings['MailContentReminderMaxSuperior'] = 'We remind you, we have received inscription requests below to course %s for your collaborators. This course is starting at %s. Course details: %s.';
$strings['MailContentReminderMaxSuperiorSecond'] = 'This course have limited vacancies and has received a high inscription request rate, So we recommend all areas to accept at most %s candidates. We invite you to accept or reject inscription request, clicking corresponding button for each collaborator.';
+
+$strings['YouMustAcceptTermsAndConditions'] = 'To subscribe to course %s, you must accept this terms and conditions.';
diff --git a/plugin/advanced_subscription/lang/spanish.php b/plugin/advanced_subscription/lang/spanish.php
index 8c34867d2b..7e73b25434 100644
--- a/plugin/advanced_subscription/lang/spanish.php
+++ b/plugin/advanced_subscription/lang/spanish.php
@@ -135,3 +135,5 @@ $strings['MailContentReminderSuperiorSecond'] = 'Le invitamos a aprobar o desapr
$strings['MailTitleReminderMaxSuperior'] = 'Recordatorio: Solicitud de consideración de curso para colaborador(es)';
$strings['MailContentReminderMaxSuperior'] = 'Le recordamos que hemos recibido las siguientes solicitudes de suscripción al curso %s de parte de sus colaboradores. El curso se iniciará el %s. Detalles del curso: %s.';
$strings['MailContentReminderMaxSuperiorSecond'] = 'Este curso tiene una cantidad de cupos limitados y ha recibido una alta tasa de solicitudes de inscripción, por lo que recomendamos que cada área apruebe un máximo de %s candidatos. Le invitamos a aprobar o desaprobar las suscripciones, dando clic en el botón correspondiente a continuación para cada colaborador.';
+
+$strings['YouMustAcceptTermsAndConditions'] = 'Para inscribirse al curso %s, debe aceptar estos términos y condiciones.';
diff --git a/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php b/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php
index aeae3ecc1a..b3e6515714 100644
--- a/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php
+++ b/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php
@@ -25,6 +25,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
'min_profile_percentage' => 'text',
'check_induction' => 'boolean',
'secret_key' => 'text',
+ 'terms_and_conditions' => 'wysiwyg'
);
parent::__construct('1.0', 'Imanol Losada, Daniel Barreto', $parameters);
@@ -321,6 +322,17 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$studentId = intval($studentId);
$this->saveLastMessage($mailId, $studentId, $sessionId);
}
+ } elseif (!empty($mailId)) {
+ // Update queue row, updated_at
+ Database::update(
+ Database::get_main_table(TABLE_ADVANCED_SUBSCRIPTION_QUEUE),
+ array(
+ 'updated_at' => api_get_utc_datetime(),
+ ),
+ array(
+ 'user_id = ? AND session_id = ?' => array($studentId, $sessionId)
+ )
+ );
}
return $mailId;
}
@@ -430,7 +442,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['student']['user_id'],
$this->get_lang('MailStudentRequest'),
$template->fetch('/advanced_subscription/views/student_notice_student.tpl'),
- $data['sessionId']
+ $data['sessionId'],
+ true
);
// Mail to superior
$mailIds[] = $this->sendMailMessage(
@@ -438,8 +451,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['superior']['user_id'],
$this->get_lang('MailStudentRequest'),
$template->fetch('/advanced_subscription/views/student_notice_superior.tpl'),
- $data['sessionId'],
- true
+ $data['sessionId']
);
break;
case ADVANCED_SUBSCRIPTION_ACTION_SUPERIOR_APPROVE:
@@ -449,7 +461,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['student']['user_id'],
$this->get_lang('MailBossAccept'),
$template->fetch('/advanced_subscription/views/superior_accepted_notice_student.tpl'),
- $data['sessionId']
+ $data['sessionId'],
+ true
);
// Mail to superior
$mailIds['render'] = $this->sendMailMessage(
@@ -467,8 +480,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$adminId,
$this->get_lang('MailBossAccept'),
$template->fetch('/advanced_subscription/views/superior_accepted_notice_admin.tpl'),
- $data['sessionId'],
- true
+ $data['sessionId']
);
}
break;
@@ -498,7 +510,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['student']['user_id'],
$this->get_lang('MailStudentRequestSelect'),
$template->fetch('/advanced_subscription/views/student_notice_student.tpl'),
- $data['sessionId']
+ $data['sessionId'],
+ true
);
// Mail to superior
$mailIds['render'] = $this->sendMailMessage(
@@ -506,8 +519,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['superior']['user_id'],
$this->get_lang('MailStudentRequestSelect'),
$template->fetch('/advanced_subscription/views/student_notice_superior.tpl'),
- $data['sessionId'],
- true
+ $data['sessionId']
);
break;
case ADVANCED_SUBSCRIPTION_ACTION_ADMIN_APPROVE:
@@ -517,7 +529,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['student']['user_id'],
$this->get_lang('MailAdminAccept'),
$template->fetch('/advanced_subscription/views/admin_accepted_notice_student.tpl'),
- $data['sessionId']
+ $data['sessionId'],
+ true
);
// Mail to superior
$mailIds[] = $this->sendMailMessage(
@@ -535,8 +548,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$adminId,
$this->get_lang('MailAdminAccept'),
$template->fetch('/advanced_subscription/views/admin_accepted_notice_admin.tpl'),
- $data['sessionId'],
- true
+ $data['sessionId']
);
break;
case ADVANCED_SUBSCRIPTION_ACTION_ADMIN_DISAPPROVE:
@@ -575,7 +587,8 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['student']['user_id'],
$this->get_lang('MailStudentRequestNoBoss'),
$template->fetch('/advanced_subscription/views/student_no_superior_notice_student.tpl'),
- $data['sessionId']
+ $data['sessionId'],
+ true
);
// Mail to admin
foreach ($data['admins'] as $adminId => $admin) {
@@ -585,8 +598,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$adminId,
$this->get_lang('MailStudentRequestNoBoss'),
$template->fetch('/advanced_subscription/views/student_no_superior_notice_admin.tpl'),
- $data['sessionId'],
- true
+ $data['sessionId']
);
}
break;
@@ -606,8 +618,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['superior']['user_id'],
$this->get_lang('MailRemindSuperior'),
$template->fetch('/advanced_subscription/views/reminder_notice_superior.tpl'),
- $data['sessionId'],
- true
+ $data['sessionId']
);
break;
case ADVANCED_SUBSCRIPTION_ACTION_REMINDER_SUPERIOR_MAX:
@@ -616,8 +627,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$data['superior']['user_id'],
$this->get_lang('MailRemindSuperior'),
$template->fetch('/advanced_subscription/views/reminder_notice_superior_max.tpl'),
- $data['sessionId'],
- true
+ $data['sessionId']
);
break;
case ADVANCED_SUBSCRIPTION_ACTION_REMINDER_ADMIN:
@@ -629,8 +639,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
$adminId,
$this->get_lang('MailRemindAdmin'),
$template->fetch('/advanced_subscription/views/reminder_notice_admin.tpl'),
- $data['sessionId'],
- true
+ $data['sessionId']
);
}
break;
@@ -883,7 +892,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
'e=' . intval($params['newStatus']) . '&' .
'u=' . intval($params['studentUserId']) . '&' .
'q=' . intval($params['queueId']) . '&' .
- 'is_connected=' . true . '&' .
+ 'is_connected=' . 1 . '&' .
'profile_completed=' . intval($params['profile_completed']) . '&' .
'v=' . $this->generateHash($params);
return $url;
@@ -1037,4 +1046,73 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
{
return 'advanced_subscription';
}
+
+ /**
+ * Return the url to show subscription terms
+ * @param array $params
+ * @param int $mode
+ * @return string
+ */
+ public function getTermsUrl($params, $mode = ADVANCED_SUBSCRIPTION_TERMS_MODE_POPUP)
+ {
+ $url = api_get_path(WEB_PLUGIN_PATH) . 'advanced_subscription/src/terms_and_conditions.php?' .
+ 'a=' . Security::remove_XSS($params['action']) . '&' .
+ 's=' . intval($params['sessionId']) . '&' .
+ 'current_user_id=' . intval($params['currentUserId']) . '&' .
+ 'e=' . intval($params['newStatus']) . '&' .
+ 'u=' . intval($params['studentUserId']) . '&' .
+ 'q=' . intval($params['queueId']) . '&' .
+ 'is_connected=' . 1 . '&' .
+ 'profile_completed=' . intval($params['profile_completed']) . '&' .
+ 'r=' . intval($mode) . '&' .
+ 'v=' . $this->generateHash($params);
+ // Launch popup
+ if ($mode == ADVANCED_SUBSCRIPTION_TERMS_MODE_POPUP) {
+ $url = 'javascript:void(window.open(\'' . $url .'\',\'AdvancedSubscriptionTerms\', \'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=700px,height=600px\', \'100\' ))';
+ }
+ return $url;
+ }
+
+ /**
+ * Return the url to get mail rendered
+ * @param array $params
+ * @return string
+ */
+ public function getRenderMailUrl($params)
+ {
+ $url = api_get_path(WEB_PLUGIN_PATH) . 'advanced_subscription/src/render_mail.php?' .
+ 'q=' . $params['queueId'] . '&' .
+ 'v=' . $this->generateHash($params);
+ return $url;
+ }
+
+ /**
+ * Return the last message id from queue row
+ * @param int $studentUserId
+ * @param int $sessionId
+ * @return int|bool
+ */
+ public function getLastMessageId($studentUserId, $sessionId)
+ {
+ $studentUserId = intval($studentUserId);
+ $sessionId = intval($sessionId);
+ if (!empty($sessionId) && !empty($studentUserId)) {
+ $row = Database::select(
+ 'last_message_id',
+ Database::get_main_table(TABLE_ADVANCED_SUBSCRIPTION_QUEUE),
+ array(
+ 'where' => array(
+ 'user_id = ? AND session_id = ?' => array($studentUserId, $sessionId),
+ )
+ )
+ );
+
+ if (count($row) > 0) {
+
+ return $row[0]['last_message_id'];
+ }
+ }
+
+ return false;
+ }
}
diff --git a/plugin/advanced_subscription/src/HookAdvancedSubscription.php b/plugin/advanced_subscription/src/HookAdvancedSubscription.php
index 244ce8908e..4435416b5e 100644
--- a/plugin/advanced_subscription/src/HookAdvancedSubscription.php
+++ b/plugin/advanced_subscription/src/HookAdvancedSubscription.php
@@ -509,7 +509,7 @@ class HookAdvancedSubscription extends HookObserver implements
// Check conditions
if ($status == ADVANCED_SUBSCRIPTION_QUEUE_STATUS_NO_QUEUE) {
// No in Queue, require queue subscription url action
- $data['action_url'] = self::$plugin->getQueueUrl($params);
+ $data['action_url'] = self::$plugin->getTermsUrl($params);
} elseif ($status == ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED) {
// send url action
$data['action_url'] = self::$plugin->getSessionUrl($sessionId);
@@ -521,7 +521,7 @@ class HookAdvancedSubscription extends HookObserver implements
$data['action_url'] = self::$plugin->getSessionUrl($sessionId);
} elseif ($status == ADVANCED_SUBSCRIPTION_QUEUE_STATUS_NO_QUEUE) {
// in Queue or not, cannot be subscribed to session
- $data['action_url'] = self::$plugin->getQueueUrl($params);
+ $data['action_url'] = self::$plugin->getTermsUrl($params);
} else {
// In queue, output status message, no more info.
}
diff --git a/plugin/advanced_subscription/src/render_mail.php b/plugin/advanced_subscription/src/render_mail.php
new file mode 100644
index 0000000000..c0974d1700
--- /dev/null
+++ b/plugin/advanced_subscription/src/render_mail.php
@@ -0,0 +1,25 @@
+checkHash($data, $hash);
+if ($verified) {
+ // Render mail
+ $message = MessageManager::get_message_by_id($data['queueId']);
+ $message = str_replace(array('
', '
', '
'), '', $message['content']);
+ echo $message;
+}
\ No newline at end of file
diff --git a/plugin/advanced_subscription/src/terms_and_conditions.php b/plugin/advanced_subscription/src/terms_and_conditions.php
new file mode 100644
index 0000000000..78e0adf9f1
--- /dev/null
+++ b/plugin/advanced_subscription/src/terms_and_conditions.php
@@ -0,0 +1,84 @@
+get_lang('plugin_title'));
+
+if (
+ !empty($data['sessionId']) &&
+ !empty($data['studentUserId']) &&
+ api_get_plugin_setting('courselegal', 'tool_enable')
+) {
+ $lastMessageId = $plugin->getLastMessageId($data['studentUserId'], $data['sessionId']);
+ if ($lastMessageId !== false) {
+ // Render mail
+ $url = $plugin->getRenderMailUrl(array('queueId' => $lastMessageId));
+ Header::location($url);
+ exit;
+ }
+ $courses = SessionManager::get_course_list_by_session_id($data['sessionId']);
+ $course = current($courses);
+ $data['courseId'] = $course['id'];
+ $legalEnabled = api_get_plugin_setting('courselegal', 'tool_enable');
+ if ($legalEnabled) {
+ $courseLegal = CourseLegalPlugin::create();
+ $termsAndConditions = $courseLegal->getData($data['courseId'], $data['sessionId']);
+ $termsAndConditions = $termsAndConditions['content'];
+ $termFiles = $courseLegal->getCurrentFile($data['courseId'], $data['sessionId']);
+ } else {
+ $termsAndConditions = $plugin->get('terms_and_conditions');
+ $termFiles = '';
+ }
+
+ $data['session'] = api_get_session_info($data['sessionId']);
+ $data['student'] = Usermanager::get_user_info_by_id($data['studentUserId']);
+ $data['acceptTermsUrl'] = $plugin->getQueueUrl($data);
+ $data['rejectTermsUrl'] = $plugin->getTermsUrl($data, ADVANCED_SUBSCRIPTION_TERMS_MODE_REJECT);
+ // Use Twig with String loader
+ $twigString = new \Twig_Environment(new \Twig_Loader_String());
+ $termsContent = $twigString->render(
+ $termsAndConditions,
+ array(
+ 'session' => $data['session'],
+ 'student' => $data['student'],
+ )
+ );
+
+} else {
+ $termsContent = '';
+ $termFiles = '';
+ $data['acceptTermsUrl'] = '#';
+ $data['rejectTermsUrl'] = '#';
+}
+
+// Assign into content
+$tpl->assign('termsRejected', $data['termsRejected']);
+$tpl->assign('acceptTermsUrl', $data['acceptTermsUrl']);
+$tpl->assign('rejectTermsUrl', $data['rejectTermsUrl']);
+$tpl->assign('session', $data['session']);
+$tpl->assign('student', $data['student']);
+$tpl->assign('sessionId', $data['sessionId']);
+$tpl->assign('termsContent', $termsContent);
+$tpl->assign('termsFiles', $termFiles);
+$content = $tpl->fetch('/advanced_subscription/views/terms_and_conditions.tpl');
+echo $content;
diff --git a/plugin/advanced_subscription/test/ws_session_user.php b/plugin/advanced_subscription/test/ws_session_user.php
index 05b7aed289..80a7ba6a46 100644
--- a/plugin/advanced_subscription/test/ws_session_user.php
+++ b/plugin/advanced_subscription/test/ws_session_user.php
@@ -22,10 +22,46 @@ $params = array();
$params['user_id'] = intval($_REQUEST['u']);
$params['session_id'] = intval($_REQUEST['s']);
$params['profile_completed'] = 100;
-$params['secret_key'] = 'ed639d402804ffa347b489be3e42f28058e402bf';
+
+/**
+ * Copied code from WSHelperVerifyKey function
+ */
+/**
+ * Start WSHelperVerifyKey
+ */
+//error_log(print_r($params,1));
+$check_ip = false;
+$ip = trim($_SERVER['REMOTE_ADDR']);
+// if we are behind a reverse proxy, assume it will send the
+// HTTP_X_FORWARDED_FOR header and use this IP instead
+if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
+ list($ip1, $ip2) = split(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
+ $ip = trim($ip1);
+}
+// Check if a file that limits access from webservices exists and contains
+// the restraining check
+if (is_file(api_get_path(WEB_CODE_PATH) .'webservices/webservice-auth-ip.conf.php')) {
+ include api_get_path(WEB_CODE_PATH).'webservices/webservice-auth-ip.conf.php';
+ if (!empty($ws_auth_ip)) {
+ $check_ip = true;
+ }
+}
+
+global $_configuration;
+if ($check_ip) {
+ $security_key = $_configuration['security_key'];
+} else {
+ $security_key = $ip.$_configuration['security_key'];
+ //error_log($secret_key.'-'.$security_key);
+}
+/**
+ * End WSHelperVerifyKey
+ */
+
+$params['secret_key'] = sha1($security_key);
// Registration soap wsdl
-$wsUrl = 'http://chamilo19.net/main/webservices/registration.soap.php?wsdl';
+$wsUrl = api_get_path(WEB_CODE_PATH) . 'webservices/registration.soap.php?wsdl';
$options = array(
'location' => $wsUrl,
'uri' => $wsUrl,
diff --git a/plugin/advanced_subscription/views/css/style.css b/plugin/advanced_subscription/views/css/style.css
index 108ac52445..1582fc853d 100644
--- a/plugin/advanced_subscription/views/css/style.css
+++ b/plugin/advanced_subscription/views/css/style.css
@@ -60,4 +60,23 @@
#iframeAdvsub {
width: 100%;
height: 100%;
+}
+
+.legal-terms-popup{
+ margin-top: 5%;
+ margin-left: 5%;
+ margin-right: 5%;
+}
+
+.legal-terms{
+ width: 90%;
+ height: 50%;
+}
+
+.legal-terms-buttons {
+ text-align: right;
+}
+
+.legal-terms-title {
+ text-align: center;
}
\ No newline at end of file
diff --git a/plugin/advanced_subscription/views/terms_and_conditions.tpl b/plugin/advanced_subscription/views/terms_and_conditions.tpl
new file mode 100644
index 0000000000..20a4ba414c
--- /dev/null
+++ b/plugin/advanced_subscription/views/terms_and_conditions.tpl
@@ -0,0 +1,49 @@
+{# start copy from head.tpl #}
+
+
+
+
+{{ prefetch }}
+{{ favico }}
+{{ browser_specific_head }}
+
+
+
+{# Use the latest engine in ie8/ie9 or use google chrome engine if available #}
+{# Improve usability in portal devices #}
+
+{{ title_string }}
+{{ css_file_to_string }}
+{{ css_style_print }}
+{{ js_file_to_string }}
+{# end copy from head.tpl #}
+
+{% if termsRejected == 1 %}
+
+{% endif %}
+
+
+
+
+
\ No newline at end of file