Example #1
0
 public static function import_card($id, $seq)
 {
     //return 'CARD: '.$id;
     HCImport::load_stack();
     HCImport::index_blocks();
     HCImport::decode_stak();
     HCImport::decode_font_table();
     HCImport::decode_style_table();
     $old_card = HCImport::decode_card(intval($id));
     $new_file = new Stack(HCImport::stack_temp());
     $new_card = array();
     $new_card['card_id'] = intval($id);
     $new_card['card_name'] = $old_card['name'];
     $new_card['card_cant_delete'] = $old_card['cant_delete'];
     $new_card['card_dont_search'] = $old_card['dont_search'];
     $new_card['card_script'] = array('content' => $old_card['script'], 'selection' => 0);
     $new_card['card_has_art'] = false;
     $new_card['card_bkgnd_id'] = $old_card['bkgnd_id'];
     $new_card['card_seq'] = intval($seq) * 10;
     $new_parts = array();
     $part_index = array();
     $n = 1;
     foreach ($old_card['parts'] as $part) {
         $new_part = HCImport::convert_part($part);
         $part_index[$part['pid']] = count($new_parts);
         $new_parts[] = $new_part;
         $n++;
     }
     $datas = array();
     foreach ($old_card['content'] as $fdata) {
         $pid = $fdata['part_id'];
         $is_bkgnd = true;
         if ($pid > 32765) {
             $pid = 65536 - $pid;
             $is_bkgnd = false;
             //print 'ID: '.$pid.' (card)<br>';
         }
         if (isset($part_index[$pid]) && !$is_bkgnd) {
             $idx = $part_index[$pid];
             $new_parts[$idx][-99] = nl2br($fdata['text'], false);
             //print 'IDX: '.$idx.' = '.$fdata['text'].'<br>';
         } else {
             $datas[] = array($fdata['part_id'], nl2br($fdata['text'], false));
         }
     }
     $new_card['card_object_data'] = json_encode($new_parts);
     $new_card['data'] = json_encode($datas);
     $new_card['content'] = '';
     $new_file->stack_inject_card($new_card);
     return $old_card;
 }