Example #1
0
        foreach ($result as $myrow) {
            $data['aaData'][] = array('0' => date('d-m-Y', strtotime($myrow->date)), '1' => '<a href="' . $_SERVER['SCRIPT_NAME'] . '?course=' . $course_code . '&an_id=' . $myrow->id . '">' . q($myrow->title) . '</a>');
        }
    }
    echo json_encode($data);
    exit;
}
load_js('tools.js');
//check if Datables code is needed
if (!isset($_GET['addAnnounce']) && !isset($_GET['modify']) && !isset($_GET['an_id'])) {
    load_js('datatables');
    load_js('datatables_filtering_delay');
    $head_content .= "<script type='text/javascript'>\n        \$(document).ready(function() {\n           var oTable = \$('#ann_table{$course_id}').dataTable ({\n                " . ($is_editor ? "'aoColumnDefs':[{'sClass':'option-btn-cell', 'aTargets':[-1]}]," : "") . "\n                'bStateSave': true,\n                'bProcessing': true,\n                'bServerSide': true,\n                'sScrollX': true,\n                'responsive': true,\n                'sAjaxSource': '{$_SERVER['REQUEST_URI']}',\n                'aLengthMenu': [\n                   [10, 15, 20 , -1],\n                   [10, 15, 20, '{$langAllOfThem}'] // change per page values here\n               ],\n                'fnDrawCallback': function( oSettings ) {\n                    popover_init();\n                    \$('#ann_table8_filter label input').attr({\n                          class : 'form-control input-sm',\n                          placeholder : '{$langSearch}...'\n                        });\n},\n                'sPaginationType': 'full_numbers',\n                'bSort': false,\n                'oLanguage': {\n                       'sLengthMenu':   '{$langDisplay} _MENU_ {$langResults2}',\n                       'sZeroRecords':  '" . $langNoResult . "',\n                       'sInfo':         '{$langDisplayed} _START_ {$langTill} _END_ {$langFrom2} _TOTAL_ {$langTotalResults}',\n                       'sInfoEmpty':    '{$langDisplayed} 0 {$langTill} 0 {$langFrom2} 0 {$langResults2}',\n                       'sInfoFiltered': '',\n                       'sInfoPostFix':  '',\n                       'sSearch':       '',\n                       'sUrl':          '',\n                       'oPaginate': {\n                           'sFirst':    '&laquo;',\n                           'sPrevious': '&lsaquo;',\n                           'sNext':     '&rsaquo;',\n                           'sLast':     '&raquo;'\n                       }\n                   }\n            }).fnSetFilteringDelay(1000);\n            \$(document).on( 'click','.delete_btn', function (e) {\n                e.preventDefault();\n                var row_id = \$(this).data('id');\n                bootbox.confirm('{$langSureToDelAnnounce}', function(result) {\n                    if(result) {                       \n                        \$.ajax({\n                          type: 'POST',\n                          url: '',\n                          datatype: 'json',\n                          data: {\n                             action: 'delete', \n                             value: row_id\n                          },\n                          success: function(data){\n                            var num_page_records = oTable.fnGetData().length;\n                            var per_page = oTable.fnPagingInfo().iLength;\n                            var page_number = oTable.fnPagingInfo().iPage;\n                            if(num_page_records==1){\n                                if(page_number!=0) {\n                                    page_number--;\n                                }\n                            }\n                            console.log(page_number);\n                            oTable.fnPageChange(page_number);\n                          },\n                          error: function(xhr, textStatus, error){\n                              console.log(xhr.statusText);\n                              console.log(textStatus);\n                              console.log(error);\n                          }\n                        });\n                        \$.ajax({\n                            type: 'POST',\n                            url: '{$urlAppend}/modules/search/idxasync.php'\n                        });\n                    }              \n                });                \n            });\n            \$(document).on( 'click','.vis_btn', function (g) {\n                g.preventDefault();\n                var vis = \$(this).data('vis');\n                var row_id = \$(this).data('id');\n                \$.ajax({\n                  type: 'POST',\n                  url: '',\n                  datatype: 'json',\n                  data: {\n                        action: 'visible', \n                        value: row_id, \n                        visible: vis\n                  },\n                  success: function(data){\n                    var page_number = oTable.fnPagingInfo().iPage;\n                    var per_page = oTable.fnPagingInfo().iLength\n                    oTable.fnPageChange(page_number);\n                  },\n                  error: function(xhr, textStatus, error){\n                      console.log(xhr.statusText);\n                      console.log(textStatus);\n                      console.log(error);\n                  }\n                });\n                \$.ajax({\n                    type: 'POST',\n                    url: '{$urlAppend}/modules/search/idxasync.php'\n                });\n            });\n            \$('.success').delay(3000).fadeOut(1500);\n            \$('.dataTables_filter input').attr('placeholder', '{$langTitle}');\n        });\n        </script>";
}
ModalBoxHelper::loadModalBox();
$public_code = course_id_to_public_code($course_id);
$toolName = $langAnnouncements;
if (isset($_GET['an_id'])) {
    !$is_editor ? $student_sql = "AND visible = '1' AND start_display<=CURDATE() AND stop_display>=CURDATE()" : ($student_sql = "");
    $row = Database::get()->querySingle("SELECT * FROM announcement WHERE course_id = ?d AND id = " . intval($_GET['an_id']) . " " . $student_sql, $course_id);
    if (empty($row)) {
        redirect_to_home_page("modules/announcements/");
    }
}
if ($is_editor) {
    $head_content .= '<script type="text/javascript">var langEmptyGroupName = "' . $langEmptyAnTitle . '";</script>';
    $displayForm = true;
    /* up and down commands */
    if (isset($_GET['down'])) {
        $thisAnnouncementId = $_GET['down'];
        $sortDirection = "DESC";
Example #2
0
/**
 * @brief send emails to course prof 
 * @global type $langSendingMessage
 * @global type $langHeaderMessage
 * @global type $langContactIntro
 * @param type $course_id
 * @param type $content
 * @param type $from_name
 * @param type $from_address
 * @return type
 */
function email_profs($course_id, $content, $from_name, $from_address) {
    global $langSendingMessage, $langHeaderMessage, $langContactIntro;

    $title = course_id_to_title($course_id);
    $ret = "<div class='alert alert-info'>$langSendingMessage $title</div>";
    $public_code = course_id_to_public_code($course_id);
    $profs = Database::get()->queryArray("SELECT user.id AS prof_uid, user.email AS email,
                              user.surname, user.givenname
                           FROM course_user JOIN user ON user.id = course_user.user_id
                           WHERE course_id = ?d AND course_user.status = " . USER_TEACHER . "", $course_id);

    $message = sprintf($langContactIntro, $from_name, $from_address, $content);
    $subject = "$langHeaderMessage ($public_code - $title)";
    foreach ($profs as $prof) {
        if (!get_user_email_notification_from_courses($prof->prof_uid) or (!get_user_email_notification($prof->prof_uid, $course_id))) {            
            continue;
        } else {
            $to_name = $prof->givenname . ' ' . $prof->surname;
            $ret .= "<div class='alert alert-success'>" . icon('fa-university') . "&nbsp;" . q($to_name) . "</div>";
            if (!send_mail($from_name, $from_address, $to_name, $prof->email, $subject, $message, $GLOBALS['charset'])) {
                $ret .= "<div class='alert alert-warning'>$GLOBALS[langErrorSendingMessage]</div>";
            }
        }
    }
    return $ret;
}