| 
<?phpdeclare(strict_types=1);
 
 use Airship\Engine\View;
 
 /**
 * GLOBAL LENS MODIFICATIONS GO HERE
 *
 * We can add filters, functions, etc. to the current lens if we want
 *
 * @global View $lens
 */
 
 // Expose PHP's built-in functions as a filter
 $lens->filter('abs', 'abs');
 $lens->filter('addslashes', 'addslashes');
 $lens->filter('preg_quote', 'preg_quote');
 $lens->filter('ceil', 'ceil');
 $lens->filter('floor', 'floor');
 $lens->filter('ucfirst', 'ucfirst');
 /**
 * @filter cachebust
 * Cache-busting filter
 *
 * Usage: {{ "/path/to/file"|cachebust }}
 */
 $lens->filter('cachebust', '\\Airship\\ViewFunctions\\cachebust');
 /**
 * @filter gravatar
 * Get a gravatar URL
 *
 * Usage: {{ "[email protected]"|gravatar }}
 */
 $lens->filter('gravatar', '\\Airship\\get_gravatar_url');
 
 
 /**
 * @filter CleanMarkdown
 * Caching, Markdown parser wrapper + HTMLPurifier
 *
 * Usage: {{ someString|CleanMarkdown }}
 */
 $lens->filter('CleanMarkdown', '\\Airship\\ViewFunctions\\render_purified_markdown');
 /**
 * @filter Markdown
 * Caching, Markdown parser wrapper
 *
 * Usage: {{ someString|Markdown }}
 */
 $lens->filter('Markdown', '\\Airship\\ViewFunctions\\render_markdown');
 
 
 /**
 * @filter CleanRST
 * Caching, ReStructuredText parser wrapper
 *
 * Usage: {{ someString|CleanRST }}
 */
 $lens->filter('CleanRST', '\\Airship\\ViewFunctions\\render_purified_rest');
 
 /**
 * @filter RST
 * Caching, ReStructuredText parser wrapper
 *
 * Usage: {{ someString|RST }}
 */
 $lens->filter('RST', '\\Airship\\ViewFunctions\\render_rest');
 
 /**
 * @filter purify
 * Caching, HTMLPurifier wrapper
 *
 * Usage: {{ someString|Markdown }}
 */
 $lens->filter('purify', '\\Airship\\ViewFunctions\\purify');
 
 # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~ # ~
 
 if (!isset($_GET)) {
 $_GET = [];
 }
 if (!isset($_POST)) {
 $_POST = [];
 }
 if (!isset($_SESSION)) {
 $_SESSION = [];
 }
 $lens->addGlobal('_GET', $_GET);
 $lens->addGlobal('_POST', $_POST);
 $lens->addGlobal('_SESSION', $_SESSION);
 $lens->addGlobal('_COOKIE', $_COOKIE);
 $lens->addGlobal('_REQUEST_URI', $_SERVER['REQUEST_URI'] ?? '/');
 
 $lens->func('__', '\\__');
 $lens->func('ajax_token');
 $lens->func('cargo');
 $lens->func('base_template');
 $lens->func('form_token');
 $lens->func('motifs');
 $lens->func('cabin_config');
 $lens->func('cabin_custom_config');
 $lens->func('cabin_url');
 $lens->func('can');
 $lens->func('csp_hash');
 $lens->func('csp_hash_str');
 $lens->func('csp_nonce');
 $lens->func('display_notary_tag');
 $lens->func('get_avatar');
 $lens->func('get_languages');
 $lens->func('get_path_url');
 $lens->func('global_config');
 $lens->func('is_admin');
 $lens->func('logout_token');
 $lens->func('next_cargo');
 $lens->func('userid');
 $lens->func('user_authors');
 $lens->func('user_author_ids');
 $lens->func('user_display_name');
 $lens->func('user_motif');
 $lens->func('user_name');
 $lens->func('user_unique_id');
 
 $view_edited = true;
 
 /**
 * Permissions functions -- looks at the default database
 */
 
 $lens->func(
 'can_create',
 function(...$args) {
 /** @noinspection PhpStrictTypeCheckingInspection */
 return \Airship\ViewFunctions\can('create', ...$args);
 }
 );
 $lens->func(
 'can_read',
 function(...$args) {
 /** @noinspection PhpStrictTypeCheckingInspection */
 return \Airship\ViewFunctions\can('read', ...$args);
 }
 );
 
 $lens->func(
 'can_update',
 function(...$args) {
 /** @noinspection PhpStrictTypeCheckingInspection */
 return \Airship\ViewFunctions\can('update', ...$args);
 }
 );
 $lens->func(
 'can_delete',
 function(...$args) {
 /** @noinspection PhpStrictTypeCheckingInspection */
 return \Airship\ViewFunctions\can('delete', ...$args);
 }
 );
 |