You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							100 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
	
	
							100 lines
						
					
					
						
							2.7 KiB
						
					
					
				<?php
 | 
						|
/* For licensing terms, see /license.txt */
 | 
						|
 | 
						|
require_once __DIR__.'/../../main/inc/global.inc.php';
 | 
						|
 | 
						|
use Chamilo\PluginBundle\Entity\CourseHomeNotify\Notification;
 | 
						|
 | 
						|
$plugin = CourseHomeNotifyPlugin::create();
 | 
						|
$courseId = api_get_course_int_id();
 | 
						|
 | 
						|
if (
 | 
						|
    empty($courseId) ||
 | 
						|
    'true' !== $plugin->get(CourseHomeNotifyPlugin::SETTING_ENABLED)
 | 
						|
) {
 | 
						|
    api_not_allowed(true);
 | 
						|
}
 | 
						|
 | 
						|
$action = isset($_GET['action']) ? $_GET['action'] : '';
 | 
						|
 | 
						|
$course = api_get_course_entity($courseId);
 | 
						|
 | 
						|
$em = Database::getManager();
 | 
						|
/** @var Notification $notification */
 | 
						|
$notification = $em
 | 
						|
    ->getRepository('ChamiloPluginBundle:CourseHomeNotify\Notification')
 | 
						|
    ->findOneBy(['course' => $course]);
 | 
						|
 | 
						|
$actionLinks = '';
 | 
						|
 | 
						|
if ($notification) {
 | 
						|
    $actionLinks = Display::url(
 | 
						|
        Display::return_icon('delete.png', $plugin->get_lang('DeleteNotification'), [], ICON_SIZE_MEDIUM),
 | 
						|
        api_get_self().'?'.api_get_cidreq().'&action=delete'
 | 
						|
    );
 | 
						|
 | 
						|
    if ('delete' === $action) {
 | 
						|
        $em->remove($notification);
 | 
						|
        $em->flush();
 | 
						|
 | 
						|
        Display::addFlash(
 | 
						|
            Display::return_message($plugin->get_lang('NotificationDeleted'), 'success')
 | 
						|
        );
 | 
						|
 | 
						|
        header('Location: '.api_get_course_url());
 | 
						|
        exit;
 | 
						|
    }
 | 
						|
} else {
 | 
						|
    $notification = new Notification();
 | 
						|
}
 | 
						|
 | 
						|
$form = new FormValidator('frm_course_home_notify');
 | 
						|
$form->addHeader($plugin->get_lang('AddNotification'));
 | 
						|
$form->applyFilter('title', 'trim');
 | 
						|
$form->addHtmlEditor('content', get_lang('Content'), true, false, ['ToolbarSet' => 'Minimal']);
 | 
						|
$form->addUrl(
 | 
						|
    'expiration_link',
 | 
						|
    [$plugin->get_lang('ExpirationLink'), $plugin->get_lang('ExpirationLinkHelp')],
 | 
						|
    false,
 | 
						|
    ['placeholder' => 'https://']
 | 
						|
);
 | 
						|
$form->addButtonSave(get_lang('Save'));
 | 
						|
 | 
						|
if ($form->validate()) {
 | 
						|
    $values = $form->exportValues();
 | 
						|
 | 
						|
    $notification
 | 
						|
        ->setContent($values['content'])
 | 
						|
        ->setExpirationLink($values['expiration_link'])
 | 
						|
        ->setCourse($course)
 | 
						|
        ->setHash(md5(uniqid()));
 | 
						|
 | 
						|
    $em->persist($notification);
 | 
						|
    $em->flush();
 | 
						|
 | 
						|
    Display::addFlash(
 | 
						|
        Display::return_message($plugin->get_lang('NotificationAdded'), 'success')
 | 
						|
    );
 | 
						|
 | 
						|
    header('Location: '.api_get_course_url());
 | 
						|
    exit;
 | 
						|
}
 | 
						|
 | 
						|
if ($notification) {
 | 
						|
    $form->setDefaults(
 | 
						|
        [
 | 
						|
            'content' => $notification->getContent(),
 | 
						|
            'expiration_link' => $notification->getExpirationLink(),
 | 
						|
        ]
 | 
						|
    );
 | 
						|
}
 | 
						|
 | 
						|
$template = new Template($plugin->get_title());
 | 
						|
$template->assign('header', $plugin->get_title());
 | 
						|
 | 
						|
if ($actionLinks) {
 | 
						|
    $template->assign('actions', Display::toolbarAction('course-home-notify-actions', ['', $actionLinks]));
 | 
						|
}
 | 
						|
 | 
						|
$template->assign('content', $form->returnForm());
 | 
						|
$template->display_one_col_template();
 | 
						|
 |