Importare tassonomia da Tab Separate Value TSV con Feeds e Rules

Importare tassonomia da Tab Separate Value TSV con Feeds e Rules

CODICE CHE ESEGUO PRIMA DI SALVARE

    <?php
    //$taxonomy_term termine tassonomia da salvare
    if($taxonomy_term->field_label_2){
    //se field_label_2 è settato allora si tratta di un capitolo
    $taxonomy_term->name = $taxonomy_term->field_label_2['und'][0]['value'];
    }
    if($taxonomy_term->field_label_temp){
    //se field_label_temp è settato allora si tratta di un sottocapitolo
    $taxonomy_term->name = $taxonomy_term->field_label_temp['und'][0]['value'];
    }
    $guid = $taxonomy_term->feeds_item->guid;
    $guid_clean = ltrim(substr($guid, 0, -5), '0'); //converto il guid testuale in un numero, levo gli zero davanti e tolgo le ultime 5 cifre
    $base = 100000;
    $rest = $guid_clean % $base; //resto della divisione guid/base
    if($rest){
        //Termine figlio, correggo peso
        $w = $taxonomy_term->weight;
        $taxonomy_term->weight = (int)($w/10);
    }else{
        //Termine padre
        $weight = $guid_clean/100000; //corrisponde al numero del capitolo (1,2,3,4,...)
        $taxonomy_term->weight = (int)$weight;
    }

    ?>

CODICE CHE ESEGUO DOPO AVER SALVATO

    <?php
    //Cerco padre per impostare gerarchia
    $guid = $term->feeds_item->guid; //es. 000050002000000
    $guid_clean = ltrim(substr($guid, 0, -5), '0'); //converto il guid testuale in un numero, levo gli zero davanti e tolgo le ultime 5 cifre... es. 500020
    $base = 100000;
    $rest = $guid_clean % $base; //resto della divisione guid/base

    if($rest){
        //Termine figlio, cerco padre
        $guid_parent = substr($guid, 0, -10) . '0000000000';
        $parents = array();
        $rows = db_query("SELECT entity_id FROM {feeds_item} WHERE entity_type = 'taxonomy_term' AND guid = :guid", array(':guid' => $guid_parent));
          foreach ($rows as $row) {
            $parents[] = $row->entity_id;

          }
        $term->parent = $parents;


    }
    $term->language = strtolower($term->field_label_i18n['und'][0]['value']);
    taxonomy_term_save ($term);
    ?>