Files
Kanboard-Prod/app/Helper/AssetHelper.php
Michael Vickers 7c0a1a5fbd Defer javascript files by default
Prevent scripts blocking browser HTML parsing. The modern method instead of moving scripts to the end of the body tag as suggested in kanboard/kanboard#3829
2018-06-11 10:24:35 -07:00

66 lines
1.5 KiB
PHP

<?php
namespace Kanboard\Helper;
use Kanboard\Core\Base;
/**
* Asset Helper
*
* @package helper
* @author Frederic Guillot
*/
class AssetHelper extends Base
{
/**
* Add a Javascript asset
*
* @param string $filename Filename
* @param bool $async
* @return string
*/
public function js($filename, $async = false)
{
return '<script '.($async ? 'async' : '').' defer type="text/javascript" src="'.$this->helper->url->dir().$filename.'?'.filemtime($filename).'"></script>';
}
/**
* Add a stylesheet asset
*
* @param string $filename Filename
* @param boolean $is_file Add file timestamp
* @param string $media Media
* @return string
*/
public function css($filename, $is_file = true, $media = 'screen')
{
return '<link rel="stylesheet" href="'.$this->helper->url->dir().$filename.($is_file ? '?'.filemtime($filename) : '').'" media="'.$media.'">';
}
/**
* Get custom css
*
* @access public
* @return string
*/
public function customCss()
{
if ($this->configModel->get('application_stylesheet')) {
return '<style>'.$this->configModel->get('application_stylesheet').'</style>';
}
return '';
}
/**
* Get CSS for task colors
*
* @access public
* @return string
*/
public function colorCss()
{
return '<style>'.$this->colorModel->getCss().'</style>';
}
}