diff --git a/app/Bootstrap/ViewComposer.php b/app/Bootstrap/ViewComposer.php index 39a37c2..14809fc 100644 --- a/app/Bootstrap/ViewComposer.php +++ b/app/Bootstrap/ViewComposer.php @@ -26,6 +26,14 @@ class ViewComposer }) ); + $twig->getEnvironment()->addFunction( + new TwigFunction('icon', function ($file) use ($config) { + $extension = pathinfo($file, PATHINFO_EXTENSION); + + return $config->get("icons.{$extension}", 'fa-file'); + }) + ); + $twig->getEnvironment()->addFunction( new TwigFunction('sizeForHumans', function ($bytes) { $sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']; diff --git a/app/config/icons.php b/app/config/icons.php new file mode 100644 index 0000000..016e79f --- /dev/null +++ b/app/config/icons.php @@ -0,0 +1,33 @@ + [ + /** Images */ + 'gif' => 'fa-file-image', + 'jpeg' => 'fa-file-image', + 'jpg' => 'fa-file-image', + 'png' => 'fa-file-image', + + /** Data */ + 'csv' => 'fa-file-csv', + 'json' => 'fa-file-code', + 'yaml' => 'fa-file-alt', + + /** Code */ + 'js' => 'fa-file-code', + 'php' => 'fa-file-code', + + /** Text and Markup */ + 'md' => 'fa-file-download', + 'txt' => 'fa-file-alt', + + /** Documents */ + 'doc' => 'fa-file-word', + 'docx' => 'fa-file-word', + 'pdf' => 'fa-file-pdf', + 'ppt' => 'fa-file-powerpoint', + 'pptx' => 'fa-file-powerpoint', + 'xls' => 'fa-file-excel', + 'xlsx' => 'fa-file-excel' + ] +]; diff --git a/app/themes/default/index.twig b/app/themes/default/index.twig index 0e53504..6eafa9e 100644 --- a/app/themes/default/index.twig +++ b/app/themes/default/index.twig @@ -19,26 +19,46 @@