Exemplo n.º 1
0
 function data_send_node()
 {
     // inizializzazione variabili
     global $debug;
     $data_ha = array();
     $linkAr = array();
     $res = "";
     // preparazione array dati nodo
     $data_ha['id_node_author'] = $this->set_ha['id_author'];
     $data_ha['id'] = $this->set_ha['id_course'] . "_" . strtr($this->dati_nodo_ar[$this->livello]['ID'], "n: ", "");
     if ($this->dati_nodo_ar[$this->livello]['SUPER'] == 'SELF') {
         $data_ha['parent_id'] = '';
         // $this->dati_nodo_ar[$this->livello]['TEXT'] = '';
     } elseif ($this->dati_nodo_ar[$this->livello]['SUPER'] == 'TOP') {
         $data_ha['parent_id'] = $this->set_ha['id_course'] . "_0";
     } else {
         $data_ha['parent_id'] = $this->set_ha['id_course'] . "_" . $this->dati_nodo_ar[$this->livello]['SUPER'];
     }
     $data_ha['title'] = $this->html_prepare($this->dati_nodo_ar['TITLE']);
     $data_ha['creation_date'] = $this->dati_nodo_ar['DATE'];
     $data_ha['type'] = $this->dati_nodo_ar[$this->livello]['TYPE'];
     $data_ha['name'] = $this->html_prepare($this->dati_nodo_ar[$this->livello]['NAME']);
     //vito, 27 mar 2009: here we need to parse the text of the node in order to convert internal links
     //$data_ha['text'] = $this->html_prepare($this->dati_nodo_ar[$this->livello]['TEXT']) ;
     $prepared_text = $data_ha['text'] = $this->html_prepare($this->dati_nodo_ar[$this->livello]['TEXT']);
     // vito, 26 may 2009
     if ($this->need_to_call_addslashes) {
         $pattern = '/<LINK TYPE=INTERNAL VALUE=\\\\"([0-9]+)\\\\">/';
     } else {
         $pattern = '/<LINK TYPE=INTERNAL VALUE="([0-9]+)">/';
     }
     $replacement = '<LINK TYPE="INTERNAL" VALUE="\\1">';
     $data_ha['text'] = preg_replace($pattern, $replacement, $prepared_text);
     // preparazione array posizione nodo
     $_position = $this->dati_nodo_ar[$this->livello]['POSITION'];
     $positionAr = explode(',', $_position);
     @($data_ha['pos_x0'] = $positionAr[0]);
     @($data_ha['pos_y0'] = $positionAr[1]);
     @($data_ha['pos_x1'] = $positionAr[2]);
     @($data_ha['pos_y1'] = $positionAr[3]);
     // dati generali
     $data_ha['order'] = $this->dati_nodo_ar[$this->livello]['ORDER'];
     $data_ha['level'] = $this->dati_nodo_ar[$this->livello]['LEVEL'];
     $data_ha['version'] = $this->dati_nodo_ar[$this->livello]['VERSION'];
     $data_ha['n_contacts'] = "0";
     $data_ha['icon'] = "node.gif";
     // DEFAULT
     $data_ha['bgcolor'] = $this->html_prepare($this->dati_nodo_ar[$this->livello]['BGCOLOR']);
     $data_ha['color'] = $this->html_prepare($this->dati_nodo_ar[$this->livello]['COLOR']);
     $data_ha['correctness'] = $this->dati_nodo_ar[$this->livello]['CORRECTNESS'];
     $data_ha['copyright'] = $this->dati_nodo_ar[$this->livello]['COPYRIGHT'];
     //         $data_ha['family'] = $this->dati_nodo_ar[$this->livello]['FAMILY'];
     $data_ha['family'] = 'default';
     // preparazione array LINKS
     if (is_array(@$this->dati_nodo_ar[$this->livello]['LINKS'])) {
         // $linkAr = $this->dati_nodo_ar[$this->livello]['LINKS'] ;
         $linksAr = array();
         if (count($this->dati_nodo_ar[$this->livello]['LINKS']) > 0) {
             for ($i = 1; $i <= count($this->dati_nodo_ar[$this->livello]['LINKS']); $i++) {
                 // non utilizzato l'id del nodo che si sta processando
                 // ma il dato proveniente da "NODEFROM" di "LINKS"
                 // se il corso � rovinato potrebbero esserci dei problemi
                 // quindi nascondiamo un po' di warnings
                 @($linkAr[$i]['id_nodo'] = $this->set_ha['id_course'] . "_" . $this->dati_nodo_ar[$this->livello]['LINKS'][$i]['NODEFROM']);
                 @($linkAr[$i]['id_nodo_to'] = $this->set_ha['id_course'] . "_" . $this->dati_nodo_ar[$this->livello]['LINKS'][$i]['NODETO']);
                 @($linkAr[$i]['tipo'] = $this->dati_nodo_ar[$this->livello]['LINKS'][$i]['TYPE']);
                 @($linkAr[$i]['stile'] = $this->dati_nodo_ar[$this->livello]['LINKS'][$i]['STYLE']);
                 @($linkAr[$i]['significato'] = $this->dati_nodo_ar[$this->livello]['LINKS'][$i]['MEANING']);
                 @($linkAr[$i]['azione'] = $this->dati_nodo_ar[$this->livello]['LINKS'][$i]['ACTION']);
                 $linkAr[$i]['id_utente'] = $this->set_ha['id_author'];
                 $linkAr[$i]['data_creazione'] = $this->dati_nodo_ar['DATE'];
                 if (!empty($this->dati_nodo_ar[$this->livello]['LINKS'][$i]['LPOSITION'])) {
                     $_position = $this->dati_nodo_ar[$this->livello]['LINKS'][$i]['LPOSITION'];
                     $positionAr = explode(',', $_position);
                 } else {
                     $positionAr = array(0, 0, 100, 100);
                 }
                 $linkAr[$i]['posizione'] = $positionAr;
                 // mydebug(__LINE__,__FILE__,$linkAr[$i]);
             }
         }
     }
     $data_ha['links_ar'] = $linkAr;
     // MEDIA non ancora implementato completamente
     // preparazione array MEDIA
     if (is_array(@$this->dati_nodo_ar[$this->livello]['MEDIA'])) {
         $mediaAr = array();
         if (count($this->dati_nodo_ar[$this->livello]['MEDIA']) > 0) {
             for ($i = 1; $i <= count($this->dati_nodo_ar[$this->livello]['MEDIA']); $i++) {
                 $mediaAr[$i]['tipo'] = $this->dati_nodo_ar[$this->livello]['MEDIA'][$i]['TYPE'];
                 $mediaAr[$i]['copyright'] = $this->dati_nodo_ar[$this->livello]['MEDIA'][$i]['COPYRIGHT'];
                 $mediaAr[$i]['nome_file'] = $this->dati_nodo_ar[$this->livello]['MEDIA'][$i]['FILENAME'];
                 /*
                 global $debug; $debug=1;
                 mydebug(__LINE__,__FILE__,$mediaAr[$i]);
                 */
             }
         }
         $data_ha['resources_ar'] = $mediaAr;
     }
     // ACTIONS non ancora implementato
     $data_ha['actions_ar'] = "";
     // creazione nuova istanza della classe AMA
     $dh = new AMA_DataHandler();
     // inserimento dati nel database
     $res = $dh->add_node($data_ha);
     // gestione errori nell'inserimento dei dati del nodo nel database
     if (is_object($res) && stristr($res->message, 'Error')) {
         // print $res->message ;
         array_push($this->error, $res->message);
     }
 }