ソースを参照

commande drush pour génération du catalogue

Yves Chedemois 15 年 前
コミット
f91ce70f52
2 ファイル変更41 行追加16 行削除
  1. 36 16
      fgcf.drush.inc
  2. 5 0
      fgcf.odt.inc

+ 36 - 16
fgcf.drush.inc

@@ -19,18 +19,30 @@
  * @return array
  */
 function fgcf_drush_command() {
-
-  $items['fgcf-import-prestataires'] = array(
+  $items['fgcf-catalog'] = array(
     // a short description of your command
-    'description' => "Importe des fiches de prestataires depuis un fichier",
-    'aliases' => array('fgcf-p'),
+    'description' => "Génère un catalogue de formations au format OpenDocument.",
+    'options' => array(
+      'dest' => "Le nom du fichier à générer. Le chemin est relatif au répertoire d'installation Drupal.\nPar défaut un fichier catalogue.odt est généré dans le répertoire d'installation Drupal.",
+    ),
+    'examples' => array(
+      'drush fgcf-catalog' => 'Génère un fichier catalogue.otf dans le répertoire Drupal, à partir du template template.odt présent dans le répertoire courant',
+      'drush fgcf-catalog --dest=../custom.otf' => 'Génère un fichier custom.otf dans le dossier parent du répertoire Drupal, à partir du template template.odt présent dans le répertoire courant',
+    ),
+    'aliases' => array('fgcfc'),
   );
 
-  $items['fgcf-import-formations'] = array(
-    // a short description of your command
-    'description' => "Importe des fiches de formation depuis un fichier",
-    'aliases' => array('fgcf-f'),
-  );
+//  $items['fgcf-import-prestataires'] = array(
+//    // a short description of your command
+//    'description' => "Importe des fiches de prestataires depuis un fichier",
+//    'aliases' => array('fgcf-p'),
+//  );
+//
+//  $items['fgcf-import-formations'] = array(
+//    // a short description of your command
+//    'description' => "Importe des fiches de formation depuis un fichier",
+//    'aliases' => array('fgcf-f'),
+//  );
   return $items;
 }
 
@@ -41,8 +53,9 @@ function fgcf_drush_command() {
  */
 function fgcf_drush_help($section) {
   $help = array(
-    'fgcf-import-prestataires' => dt('Importe toutes les fiches de prestataires trouvées dans le fichier passé en argument'),
-    'fgcf-import-formations'   => dt('Importe toutes les fiches de formations trouvées dans le fichier passé en argument'),
+    'fgcf-catalog'   => dt('Génère un catalogue de formations à partir du fichier catalogue_template.odt présent dans le dossier du module fgcf.'),
+//    'fgcf-import-prestataires' => dt('Importe toutes les fiches de prestataires trouvées dans le fichier passé en argument'),
+//    'fgcf-import-formations'   => dt('Importe toutes les fiches de formations trouvées dans le fichier passé en argument'),
   );
 
   $key = substr($section, strlen('drush:')); // drupal_substr() not available
@@ -50,12 +63,19 @@ function fgcf_drush_help($section) {
 }
 
 /**
- * Command callback for fgcf-import-prestataire.
+ * Command callback for fgcf-catalog.
  *
  * @param string $filename
  */
-function drush_fgcf_import_prestataires($filename) {
-  drush_print($filename);
-  var_dump($GLOBALS);
-  var_export(func_get_args());
+function drush_fgcf_catalog() {
+  // @todo : à paramétrer ?
+  $template = dirname(__FILE__) ."/catalogue_template.odt";
+  $dest = drush_get_option('dest');
+  if (empty($dest)) {
+    $dest = 'catalogue.odt';
+  }
+
+  module_load_include('inc', 'fgcf', 'fgcf.odt');
+  $odf = fgcf_odt_export_formations($template);
+  $odf->saveToDisk($dest);
 }

+ 5 - 0
fgcf.odt.inc

@@ -38,10 +38,14 @@ function fgcf_new_odf($filename) {
   return new odf($filename, $options);
 }
 
+/**
+ * Generate the complete catalogue of 'formation' nodes.
+ */
 function fgcf_odt_export_formations($filename) {
   // Create new odf object from the template.
   $odf = fgcf_new_odf($filename);
 
+  // Identify replacement segment in the template.
   $thematique_1_boucle = $odf->setSegment('thematique_1_boucle');
 
   // Iterate over top-level terms in 'Thematique' vocab.
@@ -71,6 +75,7 @@ function fgcf_odt_export_formations($filename) {
     }
   }
 
+  // Merge into final document.
   $odf->mergeSegment($thematique_1_boucle);
 
   return $odf;