Merge branch '1.10.x' of github.com:chamilo/chamilo-lms into 1.10.x

1.10.x
Yannick Warnier 10 years ago
commit 190dfbd890
  1. 41
      app/Migrations/Schema/V110/Version20150805161000.php
  2. 118
      main/inc/lib/sessionmanager.lib.php
  3. 18
      main/inc/lib/usermanager.lib.php
  4. 4
      main/lang/english/trad4all.inc.php
  5. 4
      main/lang/spanish/trad4all.inc.php
  6. 5
      main/session/session_add.php
  7. 6
      main/session/session_edit.php
  8. 5
      main/session/session_user_import.php
  9. 23
      main/template/default/mail/content_registration_platform.tpl
  10. 18
      main/template/default/mail/content_subscription_to_session_confirmation.tpl
  11. 2
      main/template/default/mail/subject_registration_platform.tpl
  12. 2
      main/template/default/mail/subject_subscription_to_session_confirmation.tpl
  13. 1
      main/webservices/registration.soap.php
  14. 28
      src/Chamilo/CoreBundle/Entity/Session.php

@ -0,0 +1,41 @@
<?php
/* For licensing terms, see /license.txt */
namespace Application\Migrations\Schema\V110;
use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
/**
* Class Version20150713132630
*
* @package Application\Migrations\Schema\V11010
*/
class Version20150805161000 extends AbstractMigrationChamilo
{
/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$sessionTable = $schema->getTable('session');
$sessionTable->addColumn(
'send_subscription_notification',
\Doctrine\DBAL\Types\Type::BOOLEAN,
['default' => false]
);
}
/**
* @param Schema $schema
*/
public function down(Schema $schema)
{
$sessionTable = $schema->getTable('session');
$sessionTable->dropColumn('send_subscription_notification');
}
}

@ -1,3 +1,4 @@
<?php
/* For licensing terms, see /license.txt */
@ -63,6 +64,8 @@ class SessionManager
* @param int $showDescription Optional. Whether show the session description
* @param array $extraFields
* @param int $sessionAdminId Optional. If this sessions was created by a session admin, assign it to him
* @param boolean $sendSubscritionNotification Optional.
* Whether send a mail notification to users being subscribed
* @todo use an array to replace all this parameters or use the model.lib.php ...
* @return mixed Session ID on success, error message otherwise
* */
@ -82,7 +85,8 @@ class SessionManager
$description = null,
$showDescription = 0,
$extraFields = array(),
$sessionAdminId = 0
$sessionAdminId = 0,
$sendSubscritionNotification = false
) {
global $_configuration;
@ -154,7 +158,8 @@ class SessionManager
'session_admin_id' => $sessionAdminId,
'visibility' => $visibility,
'description' => $description,
'show_description' => intval($showDescription)
'show_description' => intval($showDescription),
'send_subscription_notification' => $sendSubscritionNotification
);
if (!empty($startDate)) {
@ -1312,6 +1317,8 @@ class SessionManager
* @param int $duration
* @param array $extraFields
* @param int $sessionAdminId
* @param boolean $sendSubscritionNotification Optional.
* Whether send a mail notification to users being subscribed
* @return mixed
*/
public static function edit_session(
@ -1330,7 +1337,8 @@ class SessionManager
$showDescription = 0,
$duration = null,
$extraFields = array(),
$sessionAdminId = 0
$sessionAdminId = 0,
$sendSubscritionNotification = false
) {
$name = trim(stripslashes($name));
$coachId = intval($coachId);
@ -1373,7 +1381,8 @@ class SessionManager
'id_coach' => $coachId,
'description'=> $description,
'show_description' => intval($showDescription),
'visibility' => $visibility
'visibility' => $visibility,
'send_subscription_notification' => $sendSubscritionNotification
];
if (!empty($sessionAdminId)) {
@ -1508,15 +1517,13 @@ class SessionManager
* @param array $user_list
* @param int $session_visibility
* @param bool $empty_users
* @param bool $send_email
* @return bool
*/
public static function suscribe_users_to_session(
$id_session,
$user_list,
$session_visibility = SESSION_VISIBLE_READ_ONLY,
$empty_users = true,
$send_email = false
$empty_users = true
) {
if ($id_session != strval(intval($id_session))) {
return false;
@ -1533,12 +1540,12 @@ class SessionManager
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$session_info = api_get_session_info($id_session);
$session_name = $session_info['name'];
$entityManager = Database::getManager();
$session = $entityManager->find('ChamiloCoreBundle:Session', $id_session);
// from function parameter
if (empty($session_visibility)) {
$session_visibility = $session_info['visibility']; //loaded from DB
$session_visibility = $session->getVisibility();
//default status loaded if empty
if (empty($session_visibility))
$session_visibility = SESSION_VISIBLE_READ_ONLY; // by default readonly 1
@ -1564,45 +1571,52 @@ class SessionManager
$course_list[] = $row['c_id'];
}
if ($send_email) {
if (
$session->getSendSubscriptionNotification() &&
is_array($user_list)
) {
// Sending emails only
if (is_array($user_list) && count($user_list) > 0) {
foreach ($user_list as $user_id) {
if (!in_array($user_id, $existingUsers)) {
$tplSubject = new Template(null, false, false, false, false, false);
$tplSubject->assign('mailSiteName', api_get_setting('siteName'));
$layoutSubject = $tplSubject->get_template('mail/subject_subscription_to_session_confirmation.tpl');
$subject = $tplSubject->fetch($layoutSubject);
$user_info = api_get_user_info($user_id);
$tplContent = new Template(null, false, false, false, false, false);
// Variables for default template
$tplContent->assign('mailCompleteName', stripslashes($user_info['complete_name']));
$tplContent->assign('mailSessionName', $session_name);
$tplContent->assign('mailSiteName', api_get_setting('siteName'));
$tplContent->assign('mailWebPath', api_get_path(WEB_PATH));
$tplContent->assign('mailAdministratorName', api_get_setting('administratorName'));
$tplContent->assign('mailAdministratorSurname', api_get_setting('administratorSurname'));
$tplContent->assign('mailAdministratorTelephone', api_get_setting('administratorTelephone'));
$tplContent->assign('mailEmailAdministrator', api_get_setting('emailAdministrator'));
$layoutContent = $tplContent->get_template('mail/content_subscription_to_session_confirmation.tpl');
$content = $tplContent->fetch($layoutContent);
MessageManager::send_message(
$user_id,
$subject,
$content,
array(),
array(),
null,
null,
null,
null,
null
);
}
foreach ($user_list as $user_id) {
if (in_array($user_id, $existingUsers)) {
continue;
}
$tplSubject = new Template(null, false, false, false, false, false);
$layoutSubject = $tplSubject->get_template(
'mail/subject_subscription_to_session_confirmation.tpl'
);
$subject = $tplSubject->fetch($layoutSubject);
$user_info = api_get_user_info($user_id);
$tplContent = new Template(null, false, false, false, false, false);
// Variables for default template
$tplContent->assign(
'complete_name',
stripslashes($user_info['complete_name'])
);
$tplContent->assign('session_name', $session->getName());
$tplContent->assign(
'session_coach',
$session->getGeneralCoach()->getCompleteName()
);
$layoutContent = $tplContent->get_template(
'mail/content_subscription_to_session_confirmation.tpl'
);
$content = $tplContent->fetch($layoutContent);
MessageManager::send_message(
$user_id,
$subject,
$content,
array(),
array(),
null,
null,
null,
null,
null
);
}
}
@ -3674,7 +3688,7 @@ class SessionManager
}
$users = null;
//Subscribing in read only mode
self::suscribe_users_to_session($sid, $short_users, SESSION_VISIBLE_READ_ONLY, true, false);
self::suscribe_users_to_session($sid, $short_users, SESSION_VISIBLE_READ_ONLY, true);
$short_users = null;
}
return $sid;
@ -6580,6 +6594,14 @@ class SessionManager
$form->addElement('html', '</div>');
$form->addCheckBox(
'send_subscription_notification',
[
get_lang('SendSubscriptionNotification'),
get_lang('SendAnEmailWhenAUserBeingSubscribed')
]
);
// Extra fields
$extra_field = new ExtraField('session');
$extra = $extra_field->addElements($form, $sessionId);

@ -364,8 +364,9 @@ class UserManager
if (!empty($email) && $send_mail) {
$recipient_name = api_get_person_name($firstName, $lastName, null, PERSON_NAME_EMAIL_ADDRESS);
$tplSubject = new Template(null, false, false, false, false, false);
$tplSubject->assign('mailSiteName', api_get_setting('siteName'));
$layoutSubject = $tplSubject->get_template('mail/subject_registration_platform.tpl');
$layoutSubject = $tplSubject->get_template(
'mail/subject_registration_platform.tpl'
);
$emailSubject = $tplSubject->fetch($layoutSubject);
$sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS);
$email_admin = api_get_setting('emailAdministrator');
@ -380,17 +381,10 @@ class UserManager
}
$tplContent = new Template(null, false, false, false, false, false);
// variables for the default template
$tplContent->assign('mailCompleteName', stripslashes(api_get_person_name($firstName, $lastName)));
$tplContent->assign('mailSiteName', api_get_setting('siteName'));
$tplContent->assign('mailLoginName', $loginName);
$tplContent->assign('mailOriginalPassword', stripslashes($original_password));
$tplContent->assign('complete_name', stripslashes(api_get_person_name($firstName, $lastName)));
$tplContent->assign('login_name', $loginName);
$tplContent->assign('original_password', stripslashes($original_password));
$tplContent->assign('mailWebPath', $url);
$tplContent->assign('mailAdministratorName', api_get_setting('administratorName'));
$tplContent->assign('mailAdministratorSurname', api_get_setting('administratorSurname'));
$tplContent->assign('mailAdministratorTelephone', api_get_setting('administratorTelephone'));
$tplContent->assign('mailEmailAdministrator', api_get_setting('emailAdministrator'));
// variables for others templates
$tplContent->assign('mailEmailAdministrator', api_get_setting('emailAdministrator'));
$layoutContent = $tplContent->get_template('mail/content_registration_platform.tpl');
$emailBody = $tplContent->fetch($layoutContent);

@ -7463,4 +7463,8 @@ You can check your performance over the course in the My Progress section.
Best Regards,
%s Team";
$GenerateDefaultContent = "Generate default content";
$ThanksForYourSubscription = "Thanks for your subscription";
$XTeam = "%s team.";
$YouCanStartSubscribingToCoursesEnteringToXUrl = "You can start subscribing to courses entering to %s";
?>

@ -7483,4 +7483,8 @@ Puedes ver tu rendimiento a lo largo del curso en la sección Mi Avance.
Saludos cordiales,
El equipo de %s";
$GenerateDefaultContent = "Generar contenido por defecto";
$ThanksForYourSubscription = "¡Gracias por su suscripción!";
$XTeam = "El equipo de %s";
$YouCanStartSubscribingToCoursesEnteringToXUrl = "Puede empezar a suscribirse a los cursos ingresando a %s";
?>

@ -173,6 +173,7 @@ if ($form->validate()) {
$duration = isset($params['duration']) ? $params['duration'] : null;
$description = $params['description'];
$showDescription = isset($params['show_description']) ? 1: 0;
$sendSubscritionNotification = isset($params['send_subscription_notification']);
$extraFields = array();
foreach ($params as $key => $value) {
@ -196,7 +197,9 @@ if ($form->validate()) {
$duration,
$description,
$showDescription,
$extraFields
$extraFields,
null,
$sendSubscritionNotification
);
if ($return == strval(intval($return))) {

@ -98,7 +98,6 @@ $(function() {
$form->addButtonUpdate(get_lang('ModifyThisSession'));
$formDefaults = $sessionInfo;
$formDefaults['coach_username'] = $sessionInfo['id_coach'];
@ -129,6 +128,7 @@ if ($form->validate()) {
$duration = isset($params['duration']) ? $params['duration'] : null;
$description = $params['description'];
$showDescription = isset($params['show_description']) ? 1: 0;
$sendSubscritionNotification = isset($params['send_subscription_notification']);
$extraFields = array();
foreach ($params as $key => $value) {
@ -152,7 +152,9 @@ if ($form->validate()) {
$description,
$showDescription,
$duration,
$extraFields
$extraFields,
null,
$sendSubscritionNotification
);
if ($return == strval(intval($return))) {

@ -31,7 +31,6 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
!empty($_FILES['import_file']['tmp_name'])
) {
$form_sent = $_POST['formSent'];
$send_mail = $_POST['sendMail'] ? 1 : 0;
// CSV
$users = Import::csvToArray($_FILES['import_file']['tmp_name']);
@ -49,8 +48,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$session_id,
$user_list,
null,
false,
$send_mail
false
);
foreach ($user_list as & $user_id) {
$user_info = api_get_user_info($user_id);
@ -85,7 +83,6 @@ $form = new FormValidator(
);
$form->addElement('hidden', 'formSent', 1);
$form->addElement('file', 'import_file', get_lang('ImportCSVFileLocation'));
$form->addElement('checkbox', 'sendMail', null, get_lang('SendMailToUsers'));
$form->addButtonImport(get_lang('Import'));
$form->display();

@ -1,14 +1,13 @@
{{ 'Dear' | get_lang}} {{ mailCompleteName }},
{{ 'Dear'|get_lang }} {{ complete_name }},
</br>
{{ 'YouAreReg' | get_lang }} {{ mailSiteName }} {{ 'WithTheFollowingSettings' | get_lang }}</br>
{{ 'Username' | get_lang }} : {{ mailLoginName }}
{{ 'Pass' | get_lang }} : {{ mailOriginalPassword }}
{{ 'YouAreReg'|get_lang }} {{ _s.site_name }} {{ 'WithTheFollowingSettings'|get_lang }}</br>
{{ 'Username'|get_lang }} : {{ login_name }}
{{ 'Pass'|get_lang }} : {{ original_password }}
</br></br>
{{ 'Address' | get_lang}} {{ mailSiteName }} {{ 'Is' | get_lang }} : {{ mailWebPath }}</br>
{{ 'Problem' | get_lang}}</br>
{{ 'SignatureFormula' | get_lang }}</br>
{{ mailAdministratorName }}, {{ mailAdministratorSurname }}
{{ 'Manager' | get_lang }} {{ mailSiteName }}
T. {{ mailAdministratorTelephone}}
</br>
{{ 'Email' | get_lang }} : {{ emailAdministrator }}
{{ 'Address'|get_lang }} {{ _s.site_name }} {{ 'Is'|get_lang }} : {{ mailWebPath }}</br>
{{ 'Problem'|get_lang }}</br>
{{ 'SignatureFormula'|get_lang }}</br>
{{ _admin.name }}, {{ _admin.surname }}
{{ 'Manager'|get_lang }} {{ _s.site_name }}
{{ _admin.telephone ? 'T. ' ~ _admin.telephone ~ '<br>' }}
{{ _admin.email ? 'Email'|get_lang ~ ': ' ~ _admin.email }}

@ -1,12 +1,12 @@
{{ 'Dear' | get_lang}} {{ mailCompleteName }},
{{ 'Dear'|get_lang }} {{ complete_name }},
</br>
{{ 'YouAreRegisterToSessionX' | get_lang | format(mailSessionName)}}
{{ 'YouAreRegisterToSessionX'|get_lang|format(session_name) }}
</br>
{{ 'Address' | get_lang }} {{ mailSiteName }} {{ 'Is' | get_lang }} : {{ mailWebPath }}</br>
{{ 'Problem' | get_lang}}</br>
{{ 'SignatureFormula' | get_lang }}</br>
{{ mailAdministratorName }} {{ mailAdministratorSurname }}
{{ 'Manager' | get_lang }} {{ mailSiteName }}
T. {{ mailAdministratorTelephone}}
{{ 'Address'|get_lang }} {{ _s.site_name }} {{ 'Is'|get_lang }} : {{ _p.web }}
</br>
{{ 'Email' | get_lang }} : {{ emailAdministrator }}
{{ 'Problem'|get_lang }}</br>
{{ 'SignatureFormula'|get_lang }}</br>
{{ _admin.name }} {{ _admin.surname }}
{{ 'Manager'|get_lang }} {{ _s.site_name }}
{{ _admin.telephone ? 'T. ' ~ _admin.telephone ~ '<br>' }}
{{ _admin.email ? 'Email'|get_lang ~ ': ' ~ _admin.email }}

@ -1 +1 @@
{{mailSiteName}} {{ 'YourReg' | get_lang}} {{mailSiteName}}
{{ '[' ~ _s.site_name ~ '] ' ~ 'YourReg'|get_lang ~ ' ' ~ _s.site_name }}

@ -1 +1 @@
{{mailSiteName}} {{ 'YourReg' | get_lang}} {{mailSiteName}}
{{ '[' ~ _s.site_name ~ '] ' ~ 'YourReg'|get_lang ~ ' ' ~ _s.site_name }}

@ -4915,7 +4915,6 @@ function WSSubscribeUserToSessionSimple($params) {
$session_id,
array($user_id),
SESSION_VISIBLE_READ_ONLY,
false,
false
);
if ($debug) error_log('User registered to the course: '.$session_id);

@ -196,6 +196,12 @@ class Session
**/
protected $currentCourse;
/**
* @var boolean
* @ORM\Column(name="send_subscription_notification", type="boolean", nullable=false, options={"default":false})
*/
private $sendSubscriptionNotification;
/**
* Constructor
*/
@ -959,4 +965,26 @@ class Session
}
return $this;
}
/**
* Set $sendSubscriptionNotification
* @param boolean $sendNotification
* @return \Chamilo\CoreBundle\Entity\Session
*/
public function setSendSubscriptionNotification($sendNotification)
{
$this->sendSubscriptionNotification = $sendNotification;
return $this;
}
/**
* Get $sendSubscriptionNotification
* @return boolean
*/
public function getSendSubscriptionNotification()
{
return $this->sendSubscriptionNotification;
}
}

Loading…
Cancel
Save