Template blade pour bien débuter avec Laravel 4

Blade est un moteur de template assez puissant, et il serait dommage de le sous-exploiter au démarrage d’un nouveau projet.

Je préféré même pas évoquer ce que contient Laravel comme point de départ  https://github.com/laravel/laravel :) . Il faut se tourner impérativement vers les starter-kits. Ils partent d’un layout principal en général dans app/views/front/layouts/defaut.blade.php

Il débute par :

<!DOCTYPE html>
<html lang="fr">

le « fr » peur être remplacé par une variable : bzh ! suis breton :)


<head>

l<title>

	@section('title')
		titre general du site Laravel 4
	@show

Nous devons créer une section, car ce titre doit être unique pour chaque page, étant très très important pour les moteurs de recherche, il est généralement de la forme :
titre particulier de la page – [titre de la catégorie] – titre général du site
titre général du site - [titre de la catégorie] – titre particulier de la page
Cette section sera surchargée dans toutes les vues, le titre général du site lui, peut être dans le dossier Lang.
</title>

 

<style>

@section('style')
@show

ici, nous nous donnons la possibilité de créer un style inline pour une vue unique.
</style>

 

@section('seo')
     <meta name="keywords" content="" >
     <meta name="description" content="" >
     <link ... >
@show

Ici, nous nous donnons la possibilité d’ajouter des balises html particulières pour du référencement.

Pas un mot sur l’insertion de(s) feuille(s) de style :) , elles dépendant de l’environnement, du framework, vous utilisez Basset ou asset …
Perso, je préfère utiliser un fichier externe : @include(‘assets-css’), ce fichier va tester si je suis en prod ou en local et charger les bons fichiers compilées ou non, en CDN ou non.

</head>


<body>

une zone de menu, une zone de notifications et du contenu

@include('front.nav-bar')
@include('notifications')
@yield('content')

partie unique a chaque projet !

<script>

@section('script')
@show

ici, nous nous donnons la possibilité d’utiliser du javascript pour une vue unique, pour de l’ajax ?
</script>
un petit @include(‘assets-js’) en plus ?

</body>


De plus, dans body nous pouvons aussi utiliser des attibuts html5 data-

 data-key="value"

écrire par exemple <body data-dossier= »@yield(‘dossier’) »> pour afficher un fond d’écran particulier(oops pas bon cet exemple) ou,  <nav data-itemselect= »client »> pour cocher le bon item dans le menu.


Et voila, nous sommes parés pour avoir un projet qui s’adaptera a beaucoup de nos futures exigences html et css.


Une vue type

Avec tout ca, une vue donnera :

@extends('front/layouts/defaut')

@section('style')
@parent
body { }
@stop

@section('script')
@parent
$('.titre').css('color','#000');
@stop

@section('title')
{{$item->titre}}.{{Lang::get('frontend/pages.about-us.title')}}
@stop

{{-- <nav data-@yield('data-dossier')> --}}
@section('data-dossier')
dossier="about"
@stop

{{-- enfin le contenu de la Page --}}
@section('content')
...<hr>...
@stop

.

Share Button

Vous devriez aimer...