description = t('Migrate Materio Materiau nodes'); // provide better description for source fields // and add new field source not from sql $source_fields = array( // 'nid' => t('Materiau id from source'), // 'status'=>t('status'), // 'promote'=>t('promote'), // 'sticky'=>t('sticky'), // 'summary'=>t('summary'), // 'created'=>t('created'), // 'changed'=>t('changed'), 'languages'=> t('languages'), // 'tnid'=> t('tnid'), // 'title'=> t('title'), // 'body'=> t('body'), // 'teaser' => t('teaser'), // 'format' => t('format'), 'memo' => t('memo'), ); // $query = db_select(MIG_MAT_SRC_DB_D6 .'.fr_node', 'n'); // $query // ->condition('n.type',"actu") // ->condition('n.tnid',"0", "<>") // ->condition('n.language',"en"); /* translated */ $query_translated = db_select(MIG_MAT_SRC_DB_D6 .'.fr_i18n_node', 'i'); $query_translated->join(MIG_MAT_SRC_DB_D6 .'.fr_node', 'n', 'n.nid = i.nid'); $query_translated->join(MIG_MAT_SRC_DB_D6 .'.fr_node_revisions', 'nr', 'nr.nid = n.nid'); // $query_translated->leftjoin(MIG_MAT_SRC_DB_D6 .'.fr_i18n_node', 'ti', 'ti.trid = i.trid'); // $query_translated->leftjoin(MIG_MAT_SRC_DB_D6 .'.fr_node', 'tn', 'tn.nid = ti.nid'); // $query_translated->leftjoin(MIG_MAT_SRC_DB_D6 .'.fr_node_revisions', 'tnr', 'tnr.nid = ti.nid'); $query_translated ->condition('i.status', "0", "=") // ->condition('i.trid', "0", "<>") ->condition('n.type',"actu") // ->condition('tn.type',"actu") // ->condition('ti.trid', "0", "<>") ->fields('i', array('trid')) ->fields('n', array('nid', 'status', 'promote', 'sticky', 'created', 'changed', 'language', 'tnid')) ->fields('nr', array('title', 'body', 'teaser', 'format')); // ->fields('ti', array('nid')) // ->fields('tn', array('nid', 'status', 'promote', 'sticky', 'created', 'changed', 'language')) // ->fields('tnr', array('title', 'body', 'teaser', 'format')); // ->orderBy('n.created', 'ASC'); /* untranslated translated */ // $query_untranslated = db_select(MIG_MAT_SRC_DB_D6 .'.fr_i18n_node', 'un_i'); // $query_untranslated->join(MIG_MAT_SRC_DB_D6 .'.fr_node', 'un_n', 'un_n.nid = un_i.nid'); // $query_untranslated->join(MIG_MAT_SRC_DB_D6 .'.fr_node_revisions', 'un_nr', 'un_nr.nid = un_n.nid'); // $query_translated->leftjoin(MIG_MAT_SRC_DB_D6 .'.fr_i18n_node', 'un_ti', 'un_ti.nid = un_i.nid'); // $query_translated->leftjoin(MIG_MAT_SRC_DB_D6 .'.fr_node', 'un_tn', 'un_tn.nid = un_ti.nid'); // $query_translated->leftjoin(MIG_MAT_SRC_DB_D6 .'.fr_node_revisions', 'un_tnr', 'un_tnr.nid = un_ti.nid'); // $query_untranslated // ->condition('un_i.trid', "0", "=") // ->condition('un_n.type',"actu") // // ->fields('un_i', array('nid', 'trid')) // ->fields('un_n', array('nid', 'status', 'promote', 'sticky', 'created', 'changed', 'language', 'tnid')) // ->fields('un_nr', array('title', 'body', 'teaser', 'format')); // // ->fields('un_tn', array('nid', 'status', 'promote', 'sticky', 'created', 'changed', 'language')) // // ->fields('un_tnr', array('title', 'body', 'teaser', 'format')); // $query_translated->union($query_untranslated, 'ALL'); // $query = db_select($query_translated, 'x'); // print "\n\n- - - - - - \n\n"; // print_r($query->__toString()); // print "\n\n- - - - - - \n\n"; $this->source = new MigrateSourceSQL($query_translated, $source_fields); $this->destination = new MigrateDestinationNode('breve'); $this->map = new MigrateSQLMap($this->machineName, array( 'nid' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'description' => 'OLD Unique Materiau NID', 'alias' => 'i', ) ), MigrateDestinationNode::getKeySchema() ); $this->addFieldMapping('is_new')->defaultValue(TRUE); $this->addSimpleMappings(array('created', 'changed', 'status', 'promote', 'sticky', 'language')); $this->addFieldMapping('title', 'title'); $this->addFieldMapping('field_memo', 'memo'); $this->addFieldMapping('title_field', 'title'); $this->addFieldMapping('title_field:language', 'languages'); $this->addFieldMapping('body', 'body'); // $this->addFieldMapping('body:summary', 'teaser'); $this->addFieldMapping('body:language', 'languages'); $this->addFieldMapping('body:format')->defaultValue('filtred_html'); $this->addUnmigratedDestinations(array('revision', 'revision_uid', 'log', 'tnid', 'comment', 'uid', 'path', 'pathauto', 'title_field:format', 'field_memo:format', 'field_memo:language', 'field_onthologie', 'field_onthologie:source_type', 'field_onthologie:create_term', )); } public function prepareRow($cr){ // dsm($cr); print "\n- - - - - - - - \n"; if($cr->trid){ $query = db_select(MIG_MAT_SRC_DB_D6 .'.fr_i18n_node', 'i'); $query->join(MIG_MAT_SRC_DB_D6 .'.fr_node', 'n', 'n.nid = i.nid'); $query->join(MIG_MAT_SRC_DB_D6 .'.fr_node_revisions', 'nr', 'nr.nid = n.nid'); $query ->condition('i.status', "0", "<>") ->condition('i.trid', $cr->trid, "=") ->fields('i', array('trid')) ->fields('n', array('nid', 'status', 'promote', 'sticky', 'created', 'changed', 'language', 'tnid')) ->fields('nr', array('title', 'body', 'teaser', 'format')); $result = $query->execute(); foreach ($result as $record) { $tr = $record; } print "\n" . $cr->title . "\n"; print "\n" . $tr->title . "\n"; $cr->title = array($cr->title, $tr->title); $cr->body = array($cr->body, $tr->body); // $cr->teaser = array($cr->teaser, $cr->tnr_teaser); $cr->languages = array($cr->language, $tr->language); }else{ $cr->languages = $cr->language; } return TRUE; } public function prepare($node, stdClass $row) { // dsm('-- prepare --'); // dsm($node, '$node'); // dsm($row, '$row'); $node->workflow = 4; } // public function complete($node, $row) { // // dsm('-- complete --'); // // // Do what you need to do to // // dsm($row, '$row'); // // dsm($node, '$node'); // // } }