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

Des tutos, des tutos ... toujours des tutos

Le problème exposé dans ce sujet a été résolu.

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.

+0 -0

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.

+0 -0

Je pense que ce sujet pourrait être définitivement clos, non ?! :) fin 2015. Depuis j’ai laissé tombé Sonata.

Pour Maryouma et les prochains spéléologues du web, j’ai simplement exécuté cette commande :

$ composer create-project sonata-project/sandbox:2.3.x-dev

Je n’en sais pas plus mais vu la galère du bousin, je recommande de télécharger / acheter un thème pour le backoffice au format HTML et de l’intégrer à la mano. avec Symfony. Coder un CRUD avec Eloquent ne doit pas être trop long.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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