Прочтите Определения и принципы Представления (Views)
Darklyy поддерживает несколько шаблонизаторов:
- resources
- views
- home.blade.php
- profile.html.twig
- ...
- usr
- modules
- {module-name}
- UI
- WEB
- Views
- home.blade.php
- profile.html.twig
- ...
<!DOCTYPE html>
<html>
<head>
<title>Добро пожаловать</title>
</head>
<body>
<div class="container">
<div class="content">
<div class="title">Добро пожаловать</div>
</div>
</div>
</body>
</html>
class Controller extends WebController
{
public function sayWelcome()
{
return view('welcome');
}
}
class Controller extends WebController
{
public function sayWelcome()
{
display('welcome');
}
}
По умолчанию все представления имеют пространство имен как camelCase имени модуля.
Например, к представлению с именем welcome внутри модуля Home можно получить доступ следующим образом: view(home::welcome)
Если вы попытаетесь получить к нему доступ без пространства имен view('welcome'), он не найдет ваше представление.
Примечание
- Файлы представлений в папке Resource являются исключением из этого правила и будут иметь пространство имен без имени модуля, например.
view('home')- Также исключение действует если используются разные темы
Darklyy поддерживает реализацию разных тем в одном приложении. Для активации данной функции необходимо в файле конфигурации theme.config.php установить тему по умолчанию. Либо вызвать метод Theme::set('theme-name');
Внимание
Внимание при использовании темы меняется структура расположение фалов представлений. В путь добавляется папка с именем темы.
- usr
- themes
- {theme-name}
- views
- home.blade.php
- profile.html.twig
- ...
- usr
- modules
- {module-name}
- UI
- WEB
- Views
- {theme-name}
- home.blade.php
- profile.html.twig
- ...
// Установить тему
Theme::set('theme-name');
// Получить текущую тему
Theme::active();
// Отключить использование тем. Таким образом, ни одна тема не будет активной.
Theme::clear();
// Получить путь к теме
Theme::path($path = 'views');
// Результат:
// /usr/themes/active-theme/views
Theme::path($path = 'views', $themeName = 'admin');
// Результат:
// /usr/themes/admin/views
Theme::getViewPaths();
// Результат:
// [
// '/usr/themes/admin/views',
// '/resources/views'
// ]
Примеры использования:
// Пример 1: установить тему для определенного маршрута
Route::get('/dashboard', 'DashboardController@index')
->middleware('theme:dashboard-theme');
// Пример 1: установить тему для группы маршрутов
Route::group(['middleware'=>'theme:admin-theme'], function() {
// "admin-theme" будет применено для маршрутов указанных в этом кейсе
});