Клонирование ноды с переводом

Главные вкладки

Аватар пользователя voviko voviko 23 мая 2016 в 12:38

Кто сталкивался? Уже полдня мучаюсь.
Суть, скопировать контент с домена на новый. На каждый язык своя нода.
Упрощенно в цикле так:

<?php
$node 
node_load($nid);
$node->nid null;
$node->vid null;
$node->uid 1;
$node->tnid// Можно ли только это менять? .. Как и на что еще не придумал....
$node->path null;
$node node_submit($node);
 
node_save($node);
?>

Комментарии

Аватар пользователя voviko voviko 23 мая 2016 в 17:13

не знаю как, но работает.
Пусть тут лежит.

<?php
    
foreach ($copy_domain_nids as $nid) {
        
$node node_load($nid);
        
//ищем патч ноды на копируемом  домене
        
$domain_path db_select('domain_path ''n')
            ->
fields('n', array('alias'))
            ->
condition('n.language'$node->language)
            ->
condition('n.entity_id'$node->nid)
            ->
condition('n.entity_type''node')
            ->
condition('n.domain_id'$form_values['values']['domain_domains_copy'])
            ->
execute()
            ->
fetchField();

        

$node->domain_path[$domain['domain_id']] =  $domain_path;
        
$node->nid null;
        
$node->vid null;
        
$node->uid 1;
        
$node->path['pathauto'] = FALSE;
        
$tnid $node->tnid//запоминаем  перевод ноды

        

if( ! function_exists("node_object_prepare")) {
            include_once(
drupal_get_path('module''node') . '/node.pages.inc');
        }
        
node_object_prepare($node);
        
$node->path null// удаляем патч
        
$node->subdomains[] = $domain['subdomain'];
        
$node->domains = array($domain['domain_id'] => $domain['domain_id']);

        

$node node_submit($node);
        
node_save($node);

        

//Собираем массив, из старых переводов и новых nid
        
$tnids[$tnid] = $node->nid;
        
$new_domains_nid[] = $node->nid;
    }
    
//Обновляем переводы tnid
    
foreach ($new_domains_nid as $nid) {
        
$node node_load($nid);
        if(
array_key_exists($node->tnid$tnids)) {
            
$node->tnid $tnids[$node->tnid];
            
node_save($node);
        }
    }
?>