Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
S
sourcemltemplatebundle
  • Project
    • Project
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • dj3c1t
  • sourcemltemplatebundle
  • Wiki
  • Faire un template pour sourceml

Faire un template pour sourceml

Last edited by dj3c1t Jun 12, 2016
Page history

Faire un template pour SourceML

Cette page décrit comment changer l'affichage de SourceML.

Vue d'ensemble

SourceML est développé sur Symfony. Ce framework propose une structure en bundles pour organiser le code. Pour modifier l'affichage, on va utiliser le mécanisme d'héritage des bundles, ce qui nous permettra de développer les modifications dans des bundles dédiées, sans toucher aux fichiers d'origine de SourceML.

SourceML se compose de plusieurs bundles. Deux d'entre eux, principalement, peuvent être surchargés pour modifier l'affichage :

  • Le bundle Dj3c1tAppBundle, qui sert de base à l'application et est responsable de la mise en page générale du site.
  • Le bundle Dj3c1tSourceMLBundle qui génère l'affichage des morceaux, des players, les pages de présentation des auteurs...

Générez les nouveaux bundles

Rendez-vous en ligne de commande dans le dossier de votre installation de SourceML et utilisez la commande de génération de bundle :

bin/console generate:bundle

Générez deux bundles, par exemple AcmeAppTemplateBundle et AcmeSourceMLTemplateBundle.

Indiquez l'héritage

Dans le fichier AcmeAppTemplateBundle.php, ajoutez une méthode getParent qui retourne Dj3c1tAppBundle :

<?php

namespace AcmeAppTemplateBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AcmeAppTemplateBundle extends Bundle
{

    public function getParent() {
        return 'Dj3c1tAppBundle';
    }

}

Dans le fichier AcmeSourceMLTemplateBundle.php, ajoutez une méthode getParent qui retourne Dj3c1tSourceMLBundle :

<?php

namespace AcmeSourceMLTemplateBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AcmeSourceMLTemplateBundle extends Bundle
{

    public function getParent() {
        return 'Dj3c1tSourceMLBundle';
    }

}

adaptez les routes

Editez le fichier src/AcmeAppTemplateBundle/Resources/config/routing.yml, pour qu'il contienne :

dj3c1t_app:
    resource: "@Dj3c1tAppBundle/Resources/config/routing.yml"
    prefix:   /

Et le fichier src/AcmeSourceMLTemplateBundle/Resources/config/routing.yml pour qu'il contienne :

dj3c1t_sourceml:
    resource: "@Dj3c1tSourceMLBundle/Resources/config/routing.yml"
    prefix:   /

effacez les controlleurs par défauts

La commande generate:bundle génère des fichiers de controlleur par défaut. Si vous vous rendez maintenant sur la page d'accueil de votre site, vous devriez tomber sur un message :

Hello World !

Effacez les controlleurs par défauts des nouveaux bundles :

rm src/AcmeAppTemplateBundle/Controller/DefaultController.php
rm src/AcmeSourceMLTemplateBundle/Controller/DefaultController.php 

Modifiez les fichiers

A partir de là, le principe pour modifier un fichier de template consiste à en faire une copie dans le nouveau bundle et à faire les modifications dedans.

Si le fichier d'origine est dans le bundle AppBundle, faites-en une copie dans le bundle AcmeAppTemplateBundle. Et si le fichier d'origine est dans le bundle SourceMLBundle, copiez-le dans AcmeSourceMLTemplateBundle.

Par exemple, pour modifier le header, faites une copie du fichier :

src/Dj3c1t/AppBundle/Resources/views/header.html.twig

dans le fichier :

src/AcmeAppTemplateBundle/Resources/views/header.html.twig

Puis faites les modifications dans ce nouveau fichier.

note : pour que les modifications soient bien prises en compte, le nouveau fichier doit avoir le même nom (avec le même chemin dans le bundle) que le fichier d'origine.

D'une manière générale, ce mécanisme de surcharge fonctionne pour les fichiers qui sont dans le dossier Resources/views et vous permettra donc de remplacer les templates d'affichage par les votres.

Clone repository
  • Faire un template pour sourceml
More Pages

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.