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
Requires
- ext-exif: *
- ext-fileinfo: *
- ext-imagick: *
- aws/aws-sdk-php: ^3.35
- aws/aws-sdk-php-symfony: ^1.2 || ^2.0
- intervention/image: 2.3.*
- jcupitt/vips: ^1.0
- league/flysystem-aws-s3-v3: ~1.0.19
- nelmio/api-doc-bundle: ~2.13
- oneup/flysystem-bundle: ~3.0.2
Suggests
- awstudio/cms-bundle: AWCMS est compatible avec EdmBundle (cf. README)
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