Back to top

Miscelaneous

The file include/utils.php provides a some additional functionality to the rest of the system.

HttpException

The class HttpException provides an interface to propagate errors that correspond to a HTTP status upstream into the view's pipeline.

The HttpException constructor has the signature __construct($status=500, $message=null, $html_message=null, $code=0), where $status is the HTTP status code, $message is the plain text error message and $html_message is a HTML representation of the error message. The $code parameter corresponds to the $code parameter of the default Exception implementation.

Please note that the $html_message should/will be rendered unescaped, so use this carefully.

get_committee_email

get_committee_email($login) is a simple function that turns a committee login into that committees email address.

send_mail

send_mail($from, $to, $body, $subject=null, array $headers=[]) is a wrapper function for PHP's mail function. Its main goal is to remove some overhead of setting the right content-type headers. If no subject is provided, it also searches the body for a HTML <title> element and takes that as the subject. The following snippet shows how to use this function to send an email with a rendered template as body.

$template = new Template('templates/email.phtml', $context);
 
$success = send_mail(
    ADMIN_EMAIL, // Sender is the admin emailaddress
    filter_var($context['email'], FILTER_SANITIZE_EMAIL), // Receiver is grabbed from $context
    $template->render(),
    null, // Subject is set in the <title> attribute in the template
    ['Bcc: ' . ADMIN_EMAIL] // Add Bcc header to send a copy to the admins
);
 
// Determine wether email has ben send succesfully
if (!$success)
    throw new HttpException(500, 'An error occurred when sending an email.');

Template

The implementation of the Template class also resides in include/utils.php. This has been extensively discussed here.


documentation/rack/reference/misc.txt · Last modified: 2023/08/31 23:16 by Martijn Luinstra