Comment intégrer des éléments dans mon bundle avec Sonata ?

Des tutos, des tutos ... toujours des tutos

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour Zesteurs et Zesteuses,

A la suite de mon précèdent sujet, j'ai réussi à installer Sonata et à intégrer mon template HTML/CSS.

Depuis le panneau d'administration, j'ai créé différentes catégories. Le site officiel de Sonata ne précise pas comment les utiliser.

J'aimerai que ces catégories s'affichent dans le menu du template.

Est-ce que vous auriez une idée ?

J'ai remarqué que dans le fichier /app/config/sonata/sonata_page.yml, le système pointe directement vers le template sans passer par un contrôleur (c'est ici que j'ai indiqué mon Bundle), c'est probablement une erreur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
sonata_page:
    [...]
    default_template: default
    templates:
        default:
            #path: 'ApplicationSonataPageBundle::demo_layout.html.twig'
            path: 'ProjectThemeBundle:Theme:index.html.twig'
            name: 'default'
            containers:
                 header:
                     name: Header
                 content_top:
                     name: Top content
                 content:
                     name: Main content
                 content_bottom:
                     name: Bottom content
                 footer:
                     name: Footer

Je ne trouve aucune info pertinente sur Google. Sonata est quand même le back office de Symfony par excellence (étant lui même populaire).

Bon nombre explique comment installer Sonata mais pas de l'utiliser. Serait-ce un comble ? :p

Merci d'avance.

Édité par Yarflam

Tant de choses, tant de vies, tant de possibilités.

+0 -0
Auteur du sujet

Finalement, j'ai réussi à détourner la redirection dans sonata_page.yml (ligne 8).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
sonata_page:
    multisite:             host_with_path # host
    use_streamed_response: false # set the value to false in debug mode or if the reverse proxy does not handle streamed response

    ignore_uri_patterns:
        #- ^/admin(.*)
        #- ^/api/(.*)
        - ^.*$

    ignore_route_patterns:
        - (.*)admin(.*)     # ignore admin route, ie route containing 'admin'
        - ^_(.*)            # ignore symfony routes
    [...]

Optimisé ? Je ne pense pas mais ça me permet d'exécuter /src/Project/ThemeBundle/Controller/ThemeController.php.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
namespace Project\ThemeBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class ThemeController extends Controller {

    public function accueilAction () {
        $html = "<h1>Sonata</h1>\n";
        $repo = $this->getDoctrine()
                     ->getManager()
                     ->getRepository('SonataClassificationBundle:BaseCategory');
        $listCat = $repo->findAll();
        foreach($listCat as $cat) {
            $html .= print_r($cat->getContenu(),true)."<br/>\n";
        }
        return new Response($html);
        // return $this->render('ProjectThemeBundle:Theme:index.html.twig');
    }
}

Sauf que la table est incorrecte :

An exception occurred while executing 'SELECT t0.name AS name1, t0.enabled AS enabled2, t0.slug AS slug3, t0.description AS description4, t0.position AS position5, t0.created_at AS created_at6, t0.updated_at AS updated_at7 FROM BaseCategory t0':

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mabase.BaseCategory' doesn't exist

La table s'appelle dans la BDD "classification__category".

Comment faire ? :)

Merci encore.

Édité par Yarflam

Tant de choses, tant de vies, tant de possibilités.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte