mw-cms/edm-bundle

Gestionnaire électronique de documents de AwCms

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Forks: 0

Type:symfony-bundle

pkg:composer/mw-cms/edm-bundle

dev-main 2025-11-12 17:45 UTC

This package is not auto-updated.

Last update: 2025-11-12 20:00:30 UTC


README

Installation

AppKernel.php

public function registerBundles()
{
    $bundles = [
        //...
        new \AWEdmBundle\AWEdmBundle(),
    ];
}

config.yml

imports:
    # vos imports...
    - { resource: '@AWEdmBundle/Resources/config/config.yml' }
    
aw_edm:
    root_folder: '%kernel.root_dir%/../files/'

routing.yml

aw_edm:
    resource: "@AWEdmBundle/Resources/config/routing.yml"
    options: { expose: true }

User.php

use JMS\Serializer\Annotation\Expose;
use Symfony\Component\Serializer\Annotation\Groups;

class User extends BaseUser
{
    /**
     * ...
     * @Expose()
     * @Groups({"ged"})
     */
    protected $id;

    /**
     * ...
     * @Expose()
     * @Groups({"ged"})
     */
    protected $firstName;

    /**
     * ...
     * @Expose()
     * @Groups({"ged"})
     */
    protected $lastName;
}

Données

Un document racine doit être présent ; il peut être créé en exécutant les fixtures.

Génération des assets

npm i -g grunt   
apt-get install ruby-compass   

Prod :

grunt prod

Dev :

grunt dev

Assets

Les fichiers nécessaires au GED (déjà présent dans AWCMS).

@todo : Compiler les assets via Gulp par exemple.

CSS :

<link href="{{ asset('bundles/awedm/bower/fancybox/source/jquery.fancybox.css') }}" rel="stylesheet">
{% include '@AWEdm/include/stylesheets.html.twig' %}

JS :

<script src="{{ cms_asset("bundles/awedm/bower/jquery/dist/jquery.min.js") }}"></script>
<script src="{{ cms_asset("bundles/awedm/bower/underscore/underscore-min.js") }}"></script>
<script src="{{ cms_asset("bundles/awedm/bower/backbone/backbone.js") }}"></script>
<script src="{{ cms_asset('bundles/awedm/bower/fancybox/source/jquery.fancybox.js') }}"></script>
<script src="{{ cms_asset("bundles/awedm/bower/blueimp-file-upload/js/jquery.fileupload.js") }}"></script>
<script src="{{ cms_asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
{% include '@AWEdm/include/javascripts.html.twig' %}

Formulaires

Pour utiliser la GED dans vos formulaires, dans votre *_layout.html.twig, ajouter (déjà présent dans AWCMS) :

{% use '@AWEdm/include/form.html.twig' %}

Surcharge

CmsBundle

Pour surcharger les templates pour le CmsBundle :

app\Resources\AWEdmBundle\views\layout.html.twig :

{% extends '@AWCms/edm-layout.html.twig' %}

Utilisation

Lien vers le GED

{{ path('get_documents_index', { '_format':'html' }) }}

Afficher une image

En Twig :

{{ awedm_path(file) }}
{{ awedm_thumbnail_path(file) }} #get the path to an image thumbnail
{{ awedm_resize_path(file, width=null, height=null) }} #get the path to a resized image with the the size especified (optional)

Ouvrir la popin

EdmBundle_Popin.open(inputId, options);

Voir la documentation de la méthode pour les détails.

Utilisation de la popin

Pour initialiser la popin du GED si un formulaire est généré via un appel AJAX (dans le cas où EdmFileType est utilisé par exemple), lancer le script suivant :

EdmBundle_Popin.init();

La popin peut également être utilisée en dehors d'un formulaire si besoin. Dans ce cas, prendre pour modèle le bouton de edm_file_widget.

Intégration dans TinyMCE

tinymce.init({
    // ...
    file_browser_callback: function(field_name, url, type, win) {
        EdmBundle_TinyMce_FileBrowser.editorCallback(field_name, url, type, win);
    }
});

Utilisation de Amazon S3

Ajouter les parameters amazon

#parameters.yml
parameters:
    #vos parametres...
    aws_id: XXX
    aws_private: XXX
    aws_s3_bucket: mon_bucket

config.yml

aw_edm:
    root_folder: '%kernel.root_dir%/../files/'
    amazon_s3:
        enable: true # si true tout les nouveaux upload sont fait vers S3
        aws_id: '%aws_id%'
        aws_private: '%aws_private%'
        aws_s3_bucket: '%aws_s3_bucket%'

Pour migrer les données du root_folder vers amazon S3 :

php bin/console awedm:aws_s3:migration

Migration

AWCMS

ATTENTION !!! Il faut lancer la migration AVANT un d:s:u --force.

Il faut juste créer la table :

CREATE TABLE documents (id INT AUTO_INCREMENT NOT NULL, parent_id INT DEFAULT NULL, created_by_id INT DEFAULT NULL, name VARCHAR(64) NOT NULL, sub_folder VARCHAR(64) DEFAULT NULL, reference VARCHAR(255) DEFAULT NULL, lft INT NOT NULL, lvl INT NOT NULL, rgt INT NOT NULL, root INT DEFAULT NULL, position INT DEFAULT 0 NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, _type VARCHAR(255) NOT NULL, mime_type VARCHAR(255) DEFAULT NULL, size INT DEFAULT NULL, path VARCHAR(255) DEFAULT NULL, INDEX IDX_A2B07288727ACA70 (parent_id), INDEX IDX_A2B07288B03A8386 (created_by_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB;
INSERT INTO `documents` (`id`, `parent_id`, `created_by_id`, `name`, `reference`, `lft`, `lvl`, `rgt`, `root`, `position`, `created_at`, `updated_at`, `_type`, `mime_type`, `size`, `path`, `sub_folder`) VALUES (1, NULL, NULL, 'Racine', NULL, 0, 0, 0, 1, 0, '0000-00-00 00:00:00', '0000-00-00 00:00:00', X'666F6C646572', NULL, NULL, NULL, NULL);

Créer le dossier de aw_edm.root_folder et lui donner les droits nécessaires.

La commande est :

php bin/console awedm:cms:migration

Check UPGRADE.MD

updating edm, test