/** * Change of Address Email * * Function used to send change of address to * appropriate staff member. * * @since 6.2.11 */ function etsis_nodeq_change_address() { $app = \Liten\Liten::getInstance(); $email = _etsis_email(); $host = $app->req->server['HTTP_HOST']; $site = _t('myeduTrac :: ') . _h(get_option('institution_name')); // Creates node's schema if does not exist. Node::dispense('change_address'); try { $sql = Node::table('change_address')->where('sent', '=', 0)->findAll(); if ($sql->count() == 0) { Node::table('change_address')->delete(); } $numItems = $sql->count(); $i = 0; if ($sql->count() > 0) { foreach ($sql as $r) { $message = _escape(get_option('coa_form_text')); $message = str_replace('#uname#', _h($r->uname), $message); $message = str_replace('#fname#', _h($r->fname), $message); $message = str_replace('#lname#', _h($r->lname), $message); $message = str_replace('#name#', get_name(_h($r->personid)), $message); $message = str_replace('#id#', _h($r->personid), $message); $message = str_replace('#address1#', _h($r->address1), $message); $message = str_replace('#address2#', _h($r->address2), $message); $message = str_replace('#city#', _h($r->city), $message); $message = str_replace('#state#', _h($r->state), $message); $message = str_replace('#zip#', _h($r->zip), $message); $message = str_replace('#country#', _h($r->country), $message); $message = str_replace('#phone#', _h($r->phone), $message); $message = str_replace('#email#', _h($r->email), $message); $message = str_replace('#adminemail#', _h(get_option('system_email')), $message); $message = str_replace('#url#', get_base_url(), $message); $message = str_replace('#helpdesk#', _h(get_option('help_desk')), $message); $message = str_replace('#currentterm#', _h(get_option('current_term_code')), $message); $message = str_replace('#instname#', _h(get_option('institution_name')), $message); $message = str_replace('#mailaddr#', _h(get_option('mailing_address')), $message); $headers = "From: {$site} <auto-reply@{$host}>\r\n"; $headers .= "X-Mailer: PHP/" . phpversion(); $headers .= "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; $email->etsis_mail(_h(get_option('contact_email')), _t('Change of Address Request'), $message, $headers); $upd = Node::table('change_address')->find(_h($r->id)); $upd->sent = 1; $upd->save(); if (++$i === $numItems) { //If we reach the last item, send user a desktop notification. etsis_push_notify('Change of Address', 'Request has been submitted.'); } } } } catch (\Exception $e) { return new \app\src\Core\Exception\Exception($e->getMessage(), 'NodeQ'); } }
} use app\src\Core\NodeQ\etsis_NodeQ as Node; /** * Person Router * * @license GPLv3 * * @since 5.0.0 * @package eduTrac SIS * @author Joshua Parker <*****@*****.**> */ $css = ['css/admin/module.admin.page.form_elements.min.css', 'css/admin/module.admin.page.tables.min.css']; $js = ['components/modules/admin/forms/elements/bootstrap-select/assets/lib/js/bootstrap-select.js?v=v2.1.0', 'components/modules/admin/forms/elements/bootstrap-select/assets/custom/js/bootstrap-select.init.js?v=v2.1.0', 'components/modules/admin/forms/elements/select2/assets/lib/js/select2.js?v=v2.1.0', 'components/modules/admin/forms/elements/select2/assets/custom/js/select2.init.js?v=v2.1.0', 'components/modules/admin/forms/elements/bootstrap-datepicker/assets/lib/js/bootstrap-datepicker.js?v=v2.1.0', 'components/modules/admin/forms/elements/bootstrap-datepicker/assets/custom/js/bootstrap-datepicker.init.js?v=v2.1.0', 'components/modules/admin/forms/elements/bootstrap-timepicker/assets/lib/js/bootstrap-timepicker.js?v=v2.1.0', 'components/modules/admin/forms/elements/bootstrap-timepicker/assets/custom/js/bootstrap-timepicker.init.js?v=v2.1.0', 'components/modules/admin/tables/datatables/assets/lib/js/jquery.dataTables.min.js?v=v2.1.0', 'components/modules/admin/tables/datatables/assets/lib/extras/TableTools/media/js/TableTools.min.js?v=v2.1.0', 'components/modules/admin/tables/datatables/assets/custom/js/DT_bootstrap.js?v=v2.1.0', 'components/modules/admin/tables/datatables/assets/custom/js/datatables.init.js?v=v2.1.0', 'components/modules/admin/forms/elements/jCombo/jquery.jCombo.min.js']; $json_url = get_base_url() . 'api' . '/'; $flashNow = new \app\src\Core\etsis_Messages(); $email = _etsis_email(); $app->group('/nae', function () use($app, $css, $js, $json_url, $flashNow, $email) { /** * Before route check. */ $app->before('GET|POST', '/', function () { if (!hasPermission('access_person_screen')) { redirect(get_base_url() . 'dashboard' . '/'); } }); $app->match('GET|POST', '/', function () use($app, $css, $js, $json_url) { if ($app->req->isPost()) { $post = $_POST['nae']; $search = $app->db->person()->select('person.personID,person.altID,person.fname,person.lname,person.uname,person.email')->select('staff.staffID, appl.personID AS ApplicantID')->_join('staff', 'person.personID = staff.staffID')->_join('application', 'person.personID = appl.personID', 'appl')->whereLike('CONCAT(person.fname," ",person.lname)', "%{$post}%")->_or_()->whereLike('CONCAT(person.lname," ",person.fname)', "%{$post}%")->_or_()->whereLike('CONCAT(person.lname,", ",person.fname)', "%{$post}%")->_or_()->whereLike('person.fname', "%{$post}%")->_or_()->whereLike('person.lname', "%{$post}%")->_or_()->whereLike('person.uname', "%{$post}%")->_or_()->whereLike('person.personID', "%{$post}%")->_or_()->whereLike('person.altID', "%{$post}%"); $q = $search->find(function ($data) { $array = [];