X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=lib%2Flink.php;h=cdcf34595dcad9e175d9bcf9438ef22c1709b73c;hb=d4873c45d8cf907c951d66cbe3ee4e8331b0c9ae;hp=42cffba774f25ffaea97786ca54df6a607edcc6c;hpb=80ace921b67e45aefd9fe519d9a71de3c29654a6;p=pukiwiki%2Fpukiwiki.git diff --git a/lib/link.php b/lib/link.php index 42cffba..cdcf345 100644 --- a/lib/link.php +++ b/lib/link.php @@ -1,6 +1,8 @@ name; - if (! is_a($_obj, 'Link_autolink')) { - $ref_notauto[$_obj->name][$page] = TRUE; - } - $ref[$_obj->name][] = $page; + if (! isset($ref[$_obj->name][$page])) + $ref[$_obj->name][$page] = 1; + if (! is_a($_obj, 'Link_autolink')) + $ref[$_obj->name][$page] = 0; } $rel = array_unique($rel); if (! empty($rel)) { @@ -169,16 +169,10 @@ function links_init() } foreach ($ref as $page=>$arr) { - if (empty($arr)) continue; - - $arr = array_unique($arr); $fp = fopen(CACHE_DIR . encode($page) . '.ref', 'w') or die_message('cannot write ' . htmlspecialchars(CACHE_DIR . encode($page) . '.ref')); - foreach ($arr as $ref_page) { - $ref_auto = (isset($ref_notauto[$page]) - && isset($ref_notauto[$page][$ref_page])) ? 0 : 1; - fputs($fp, "$ref_page\t$ref_auto\n"); - } + foreach ($arr as $ref_page=>$ref_auto) + fputs($fp, $ref_page . "\t" . $ref_auto . "\n"); fclose($fp); } } @@ -232,7 +226,7 @@ function links_delete($page, $del) } } unlink($ref_file); - if ($is_page && ! $all_auto && $ref != '') { + if (($is_page || ! $all_auto) && $ref != '') { $fp = fopen($ref_file, 'w') or die_message('cannot write ' . htmlspecialchars($ref_file)); fputs($fp, $ref); @@ -248,6 +242,7 @@ function & links_get_objects($page, $refresh = FALSE) if (! isset($obj) || $refresh) $obj = & new InlineConverter(NULL, array('note')); - return $obj->get_objects(join('', preg_grep('/^(?!\/\/|\s)./', get_source($page))), $page); + $result = $obj->get_objects(join('', preg_grep('/^(?!\/\/|\s)./', get_source($page))), $page); + return $result; } ?>