/[eiffelstudio]/trunk/Documentation/tools/web/trunk/drupal/sites/all/modules/isedoc/import/isedoc_import.admin.inc
ViewVC logotype

Diff of /trunk/Documentation/tools/web/trunk/drupal/sites/all/modules/isedoc/import/isedoc_import.admin.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 74385 by jfiat, Fri Aug 8 19:41:54 2008 UTC revision 74386 by jfiat, Sat Aug 9 09:19:13 2008 UTC
# Line 178  function isedoc_import_form_import($form Line 178  function isedoc_import_form_import($form
178                          $files = array();                          $files = array();
179  //                      drupal_set_message(var_dump_r($form_state['values']));  //                      drupal_set_message(var_dump_r($form_state['values']));
180                          $book_index_path = $form_state['values']['isedoc_import_index'];                          $book_index_path = $form_state['values']['isedoc_import_index'];
181                          drupal_set_message(t("Importing files using index %i into bookid=%bookid", array ('%i' => $book_index_path, '%bookid' => $bookid)));                          //drupal_set_message(t("Importing files using index %i into bookid=%bookid", array ('%i' => $book_index_path, '%bookid' => $bookid)));
182    
183                          // a slow machine                          // a slow machine
184                          if (!ini_get('safe_mode')) {                          if (!ini_get('safe_mode')) {
185                                  set_time_limit(0);                                  set_time_limit(0);
186                          }                          }
187                          isedoc_import_with_index($dirpath,$book_index_path);                          isedoc_import_with_index($dirpath,$book_index_path,$bookid);
188                          $filename = file_check_location($dirpath .'/'. $origname, $dirpath);                          $filename = file_check_location($dirpath .'/'. $origname, $dirpath);
189                          if ($filename) {                          if ($filename) {
190                          }                          }
# Line 200  function isedoc_import_form_import($form Line 200  function isedoc_import_form_import($form
200          }          }
201  }  }
202    
203  function isedoc_create_doc_node_from($info) {  function isedoc_create_doc_outline_from($nid,$info) {
204    
205            $node = node_load ($nid, NULL, TRUE);
206    
207            book_nodeapi(&$node, "prepare", NULL, NULL);
208            $node->book['bid'] = $info['book_id'];
209            book_nodeapi(&$node, "insert", NULL, NULL);
210    
211            $node->book['plid'] = $info['parent_mlid'];
212            book_nodeapi(&$node, "update", NULL, NULL);
213    
214            node_save($node);
215            return $node->book['mlid'];
216    
217    }
218    
219    function isedoc_create_doc_node_from(&$info) {
220          global $user;          global $user;
221    
222  //      if (!user_access('create isedoc')) {  //      if (!user_access('create isedoc')) {
# Line 218  function isedoc_create_doc_node_from($in Line 234  function isedoc_create_doc_node_from($in
234          // Build the node.          // Build the node.
235          $nid = 0;          $nid = 0;
236          if ($nid > 0) {          if ($nid > 0) {
237                  drupal_set_message("isedoc_create_node_from using nid=$nid");                  //drupal_set_message("isedoc_create_node_from using nid=$nid");
238                  $node = node_load ($nid, NULL, TRUE);                  $node = node_load ($nid, NULL, TRUE);
239          }          }
240          if (!$node) {          if (!$node) {
# Line 230  function isedoc_create_doc_node_from($in Line 246  function isedoc_create_doc_node_from($in
246          $node->title = $info['title'];          $node->title = $info['title'];
247          $node->body = $info['body'];          $node->body = $info['body'];
248    
249    
250          // Set the node's defaults... (copied this from node and comment.module)          // Set the node's defaults... (copied this from node and comment.module)
251          $node_options = variable_get('node_options_'. $node->type, array('status', 'promote'));          $node_options = variable_get('node_options_'. $node->type, array('status', 'promote'));
252          $node->status = in_array('status', $node_options);          $node->status = in_array('status', $node_options);
# Line 262  function isedoc_create_doc_node_from($in Line 279  function isedoc_create_doc_node_from($in
279   * Helpers   * Helpers
280   */   */
281    
282  function isedoc_import_with_index($dn,$fn) {  function isedoc_import_with_index($dn,$fn,$bid) {
283          drupal_set_message(t("Importing using index $fn ..."),'status');          drupal_set_message(t("Importing using index $fn ..."),'status');
284          $logfp = fopen($fn.".log", 'w');          $logfp = fopen($fn.".log", 'w+');
         fclose ($logfp);  
285    
286          $fp = fopen($fn, 'r');          $fp = fopen($fn, 'r');
287          $node_ids = array();          $node_ids = array();
288          $dep = 0;          $dep = 0;
289            $is_reuse = 0;
290    
291          while (!feof($fp)) {          while (!feof($fp)) {
292                    $node = NULL;
293                  $line = fgets($fp);                  $line = fgets($fp);
294                  $line = substr($line, 0, -1);                  $line = substr($line, 0, -1);
295                    if (substr($line, 1, 1) == "@") {
296                            $is_reuse = 1;
297                    } else {
298                            $is_reuse = 0;
299                    }
300                  $i = strpos($line, "[");                  $i = strpos($line, "[");
301                  if ($i > 0) {                  if ($i > 0) {
302                          $j = strpos($line, ":", $i);                          $j = strpos($line, ":", $i);
# Line 289  function isedoc_import_with_index($dn,$f Line 312  function isedoc_import_with_index($dn,$f
312                          if ($i > 0) {                          if ($i > 0) {
313                                  $l_src = $dn . "/". substr($line, $i+5) . ".wiki";                                  $l_src = $dn . "/". substr($line, $i+5) . ".wiki";
314    
315                                  $info = isedoc_file_info($l_src, TRUE);                                  fputs($logfp, "#$dep: $l_title  [$l_src]\n");
316    
317                                    if ($reuse == 1) {
318                                            $a_nid = book_doc_page_exists($info['title']);
319                                            if ($a_nid > 0) {
320                                                    $node = node_load ($nid);
321                                            } else {
322                                                    drupal_set_message(t(" ERROR no REUSE dep=%dep \"%tit\" -> %src", array( "%dep" => $l_depth, "%tit" => $l_title, "%bas" => $l_base_id, "%src" => $l_src)),'error');
323                                                    $is_reuse = 0;
324                                            }
325                                            if (!$node) {
326                                                    $is_reuse = 0;
327                                                    drupal_set_message(t(" ERROR no REUSE dep=%dep \"%tit\" -> %src", array( "%dep" => $l_depth, "%tit" => $l_title, "%bas" => $l_base_id, "%src" => $l_src)),'error');
328                                            }
329                                    }
330    
331                                    if ($is_reuse) {
332                                            $info = isedoc_file_info($l_src, FALSE);
333                                    } else {
334                                            $info = isedoc_file_info($l_src, TRUE);
335                                    }
336                                  if ($info) {                                  if ($info) {
337                                          //drupal_set_message(t(" -> [%dep:%bas] \"%tit\" -> %src", array( "%dep" => $l_depth, "%tit" => $l_title, "%bas" => $l_base_id, "%src" => $l_src)),'status');                                          //drupal_set_message(t(" -> [%dep:%bas] \"%tit\" -> %src", array( "%dep" => $l_depth, "%tit" => $l_title, "%bas" => $l_base_id, "%src" => $l_src)),'status');
338                                          $info['title'] = $l_title;                                          $info['title'] = $l_title;
339                                          $info['src'] = $l_src;                                          $info['src'] = $l_src;
                                         $info['depth'] = $l_depth;  
340                                          $info['baseid'] = $l_baseid;                                          $info['baseid'] = $l_baseid;
341                                          $node = isedoc_create_doc_node_from ($info);                                          $info['depth'] = $l_depth;
342    
343                                          if ($dep > 0) {                                          if ($dep > 0) {
344                                                  $p_nid = $node_ids[$dep];                                                  $p_mlid = $node_ids[$l_depth - 1];
345                                          } else {                                          } else {
346                                                  $p_nid = 0;                                                  $p_mlid = $book_id;
347                                          }                                          }
348                                          $node_ids[$l_depth] = $node->nid;  
349                                          $dep = $l_depth;                                          $dep = $l_depth;
350                                            $info['parent_mlid'] = $p_mlid;
351                                            $info['book_id'] = $bid;
352                                            if ($node) {
353                                                    $l_mlid = $node->book['mlid'];
354                                                    drupal_set_message(t(" REUSE -> [%dep] %src -> %nid (mlid=$l_mlid)(parent=$p_mlid)", array( "%dep" => $l_depth, "%src" => $l_src, "%nid" => $node->nid)),'status');
355                                            } else {
356                                                    $node = isedoc_create_doc_node_from (&$info);
357                                                    $l_mlid = isedoc_create_doc_outline_from ($node->nid, &$info);
358                                                    drupal_set_message(t(" -> [%dep] %src -> %nid (mlid=$l_mlid)(parent=$p_mlid)", array( "%dep" => $l_depth, "%src" => $l_src, "%nid" => $node->nid)),'status');
359                                            }
360                                            $node_ids[$l_depth] = $l_mlid;
361    
362                                          drupal_set_message(t(" -> [%dep] %src -> %nid (parent=$p_nid)", array( "%dep" => $l_depth, "%src" => $l_src, "%nid" => $node->nid)),'status');                                          $node = NULL;
363                                  } else {                                  } else {
364                                          drupal_set_message(t(" -> [%dep:%bas] \"%tit\" -> %src", array( "%dep" => $l_depth, "%tit" => $l_title, "%bas" => $l_base_id, "%src" => $l_src)),'error');                                          drupal_set_message(t(" -> [%dep:%bas] \"%tit\" -> %src", array( "%dep" => $l_depth, "%tit" => $l_title, "%bas" => $l_base_id, "%src" => $l_src)),'error');
365                                  }                                  }
# Line 315  function isedoc_import_with_index($dn,$f Line 368  function isedoc_import_with_index($dn,$f
368                  }                  }
369          }          }
370    
371  /*          fclose ($logfp);
         if (substr($line, 0, 7) == 'title=') {  
                 $title = substr($line, 7);  
         } else {  
                 $title = '__'.basename($fn);  
         }  
         if (substr($line, 0, 7) == 'src=') {  
                 $src = substr($line, 5);  
         }  
         if ($is_full) {  
                 $l_body = fread($fp, filesize($fn));  
         }  
 */  
372          fclose ($fp);          fclose ($fp);
373    
374  }  }

Legend:
Removed from v.74385  
changed lines
  Added in v.74386

  ViewVC Help
Powered by ViewVC 1.1.23