Moi de mai à moto

Pas trop envie de replonger dans Dotclear en ce moment, je préfère rouler, dans ma tête et sur les routes… Juin sera probablement différent.

Cela dit, en suivant de près ou de loin ce qui se dit sur le forum je pense qu’il va falloir organiser un atelier dédié au développement de thème Dotclear. Le système des jeux de template est peu ou pas compris — surtout qu’il y en aura bientôt un 3e —, l’héritage et l’extension encore mal assimilé — il est pourtant ultra pratique et pas seulement pour les thèmes, mais également pour les développements de plugins qui fournissent un affichage particulier côté public.

Exemple du thème Smile qui pour la page post.html modifie simplement quelques blocs définis dans le jeu de template currywurst sur lequel il s’appuie :

{{tpl:extends parent="__parent__"}}

<tpl:Block name="main-content">
    {{tpl:include src="_simple-entry.html"}}

    <nav class="navigation post-navigation" role="navigation">
        <h1 class="screen-reader-text">{{tpl:lang Post navigation}}</h1>
        <div class="nav-links">
            <tpl:EntryPrevious>
                <div class="nav-previous">
                    <span>{{tpl:lang Previous post}}</span>
                    <a href="{{tpl:EntryURL}}" title="{{tpl:EntryTitle encode_html=" 1 "}}" class="prev">{{tpl:EntryTitle encode_html="1" cut_string="50"}}</a>
                </div>
            </tpl:EntryPrevious>
            <tpl:EntryNext>
                <div class="nav-next">
                    <span>{{tpl:lang Next post}}</span>
                    <a href="{{tpl:EntryURL}}" title="{{tpl:EntryTitle encode_html=" 1 "}}" class="next">{{tpl:EntryTitle encode_html="1" cut_string="50"}}</a>
                </div>
            </tpl:EntryNext>
        </div>
    </nav>

    {{tpl:include src="_entry-feedback.html"}}
</tpl:Block>

L’héritage/extension permet de récupérer l’intégralité du fichier désigné et d’en modifier ensuite, si nécessaire, certains blocs. Le fichier désigné est cherché dans les fichiers du thème — à moins que __parent__ ne soit utilisé, dans ce cas cette étape est ignorée —, celui de son thème parent s’il en a un, celui du jeu de template désigné ou enfin le jeu de template par défaut (mustek) en s’arrêtant au premier trouvé.

Exemple du thème Smile qui pour la page page.html hérite simplement de la page post.html définie dans ce même thème (voir ci-dessus) :

{{tpl:extends parent="post.html"}}

<tpl:Block name="head-linkrel">
    <link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
    <link rel="contents" href="{{tpl:BlogArchiveURL}}" title="{{tpl:lang Archives}}" />
    <link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{tpl:BlogFeedURL type=" atom "}}" />
</tpl:Block>

<tpl:Block name="body-tag">
    <body class="dc-page">
</tpl:Block>

<tpl:Block name="main-content">
    {{tpl:include src="_simple-entry.html"}}
    {{tpl:include src="_entry-feedback.html"}}
</tpl:Block>

Exemple (extrait) de la modification d’un bloc (extension) de la page post.html du jeu de template currywurst. Le bloc est redéfini en intégrant une nouvelle balise et en récupérant ensuite le contenu original avec {{tpl:parent}} :

<tpl:Block name="page-top">
	{{tpl:EntryPingData}}
	{{tpl:parent}}
</tpl:Block>

Reste à trouver une date qui convienne à tous, peut-être juste après le prochain Paris-Web à l’automne ou alors plus tôt cet été ; Trouver un endroit si on est un peu nombreux et préparer de quoi remplir cet atelier.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/12848

Haut de page