migrate_materio.breves.inc 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. /**
  3. * MaterioMateriauNodeMigration
  4. *
  5. */
  6. class MaterioBrevesNodeMigration extends MaterioBasicMigration {
  7. public function __construct() {
  8. parent::__construct();
  9. $this->description = t('Migrate Materio Materiau nodes');
  10. // provide better description for source fields
  11. // and add new field source not from sql
  12. $source_fields = array(
  13. // 'nid' => t('Materiau id from source'),
  14. // 'status'=>t('status'),
  15. // 'promote'=>t('promote'),
  16. // 'sticky'=>t('sticky'),
  17. // 'summary'=>t('summary'),
  18. // 'created'=>t('created'),
  19. // 'changed'=>t('changed'),
  20. 'languages'=> t('languages'),
  21. // 'tnid'=> t('tnid'),
  22. // 'title'=> t('title'),
  23. // 'body'=> t('body'),
  24. // 'teaser' => t('teaser'),
  25. // 'format' => t('format'),
  26. 'memo' => t('memo'),
  27. );
  28. // $query = db_select(MIG_MAT_SRC_DB_D6 .'.fr_node', 'n');
  29. // $query
  30. // ->condition('n.type',"actu")
  31. // ->condition('n.tnid',"0", "<>")
  32. // ->condition('n.language',"en");
  33. /* translated */
  34. $query_translated = db_select(MIG_MAT_SRC_DB_D6 .'.fr_i18n_node', 'i');
  35. $query_translated->join(MIG_MAT_SRC_DB_D6 .'.fr_node', 'n', 'n.nid = i.nid');
  36. $query_translated->join(MIG_MAT_SRC_DB_D6 .'.fr_node_revisions', 'nr', 'nr.nid = n.nid');
  37. $query_translated->leftjoin(MIG_MAT_SRC_DB_D6 .'.fr_node', 'tn', 'tn.nid = i.trid');
  38. $query_translated->leftjoin(MIG_MAT_SRC_DB_D6 .'.fr_node_revisions', 'tnr', 'tnr.nid = tn.nid');
  39. $query_translated
  40. ->condition('n.type',"actu")
  41. // ->condition('i.trid', "0", "<>")
  42. ->fields('i', array('nid', 'trid'))
  43. ->fields('n', array('nid', 'status', 'promote', 'sticky', 'created', 'changed', 'language', 'tnid'))
  44. ->fields('nr', array('title', 'body', 'teaser', 'format'))
  45. ->fields('tn', array('nid', 'status', 'promote', 'sticky', 'created', 'changed', 'language'))
  46. ->fields('tnr', array('title', 'body', 'teaser', 'format'));
  47. // ->orderBy('n.created', 'ASC');
  48. /* untranslated translated */
  49. // $query_untranslated = db_select(MIG_MAT_SRC_DB_D6 .'.fr_i18n_node', 'un_i');
  50. // $query_untranslated->join(MIG_MAT_SRC_DB_D6 .'.fr_node', 'un_n', 'un_n.nid = un_i.nid');
  51. // $query_untranslated->join(MIG_MAT_SRC_DB_D6 .'.fr_node_revisions', 'un_nr', 'un_nr.nid = un_n.nid');
  52. // $query_untranslated
  53. // ->condition('un_n.type',"actu")
  54. // ->condition('un_i.trid', "0", "=")
  55. // ->fields('un_i', array('nid', 'trid'))
  56. // ->fields('un_n', array('nid', 'status', 'promote', 'sticky', 'created', 'changed', 'language', 'tnid'))
  57. // ->fields('un_nr', array('title', 'body', 'teaser', 'format'));
  58. // $query_translated->union($query_untranslated, 'ALL');
  59. // $query = db_select($query_translated, 'x');
  60. // print "\n\n- - - - - - \n\n";
  61. // print_r($query_translated->__toString());
  62. // print "\n\n- - - - - - \n\n";
  63. $this->source = new MigrateSourceSQL($query_translated, $source_fields);
  64. $this->destination = new MigrateDestinationNode('breve');
  65. $this->map = new MigrateSQLMap($this->machineName,
  66. array(
  67. 'nid' => array(
  68. 'type' => 'int',
  69. 'unsigned' => TRUE,
  70. 'not null' => TRUE,
  71. 'description' => 'OLD Unique Materiau NID',
  72. 'alias' => 'i',
  73. )
  74. ),
  75. MigrateDestinationNode::getKeySchema()
  76. );
  77. $this->addFieldMapping('is_new')->defaultValue(TRUE);
  78. $this->addSimpleMappings(array('created', 'changed', 'status', 'promote', 'sticky', 'language'));
  79. $this->addFieldMapping('title', 'title');
  80. $this->addFieldMapping('field_memo', 'memo');
  81. $this->addFieldMapping('title_field', 'title');
  82. $this->addFieldMapping('title_field:language', 'languages');
  83. $this->addFieldMapping('body', 'body');
  84. // $this->addFieldMapping('body:summary', 'teaser');
  85. $this->addFieldMapping('body:language', 'languages');
  86. $this->addFieldMapping('body:format')->defaultValue('filtred_html');
  87. $this->addUnmigratedDestinations(array('revision', 'revision_uid', 'log', 'tnid', 'comment', 'uid', 'path', 'pathauto',
  88. 'title_field:format',
  89. 'field_memo:format', 'field_memo:language',
  90. 'field_onthologie', 'field_onthologie:source_type', 'field_onthologie:create_term',
  91. ));
  92. }
  93. public function prepareRow($cr){
  94. // dsm($cr);
  95. print "\n- - - - - - - - \n";
  96. if($cr->trid){
  97. print "\n" . $cr->title . "\n";
  98. print "\n" . $cr->tnr_title . "\n";
  99. $cr->title = array($cr->title, $cr->tnr_title);
  100. $cr->body = array($cr->body, $cr->tnr_body);
  101. // $cr->teaser = array($cr->teaser, $cr->tnr_teaser);
  102. $cr->languages = array($cr->language, $cr->tn_language);
  103. }else{
  104. $cr->languages = $cr->language;
  105. }
  106. return TRUE;
  107. }
  108. public function prepare($node, stdClass $row) {
  109. // dsm('-- prepare --');
  110. // dsm($node, '$node');
  111. // dsm($row, '$row');
  112. $node->workflow = 4;
  113. }
  114. // public function complete($node, $row) {
  115. // // dsm('-- complete --');
  116. // // // Do what you need to do to
  117. // // dsm($row, '$row');
  118. // // dsm($node, '$node');
  119. //
  120. // }
  121. }