? freelinking_nonexistent-pages-class-113869-4.patch
Index: freelinking.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/freelinking/freelinking.module,v
retrieving revision 1.31.2.3
diff -u -p -r1.31.2.3 freelinking.module
--- freelinking.module	17 Feb 2007 12:47:39 -0000	1.31.2.3
+++ freelinking.module	14 Nov 2007 01:45:30 -0000
@@ -176,6 +176,10 @@ function freelinking_filter($op, $delta 
       return (array(0 => t('freelinking filter')));
       break;
 
+    case 'no cache':
+      return TRUE;
+      break;
+
     case 'name':
       return t('freelinking filter');
       break;
@@ -272,10 +276,12 @@ function _freelinking_do_filtering($text
          $phrase = substr($phrase, $barpos + 1);
       }
       if (preg_match('/^(http|mailto|https|ftp):/', $freelink)) {
-         $replacement = '<a class="freelinking external" href="' . $freelink . '">' . $phrase . '</a>';
+        $replacement = l($phrase, $freelink, array('class' => 'external freelinking'));
       }
       else {
-        $replacement = l($phrase, 'freelinking/' . rawurlencode($freelink), array('class' => 'freelinking'));
+        // Add a class to the link if no page exists.
+        $no_page = _freelinking_exists($phrase) == 0 ? ' no-page' : '';
+        $replacement = l($phrase, 'freelinking/' . rawurlencode($freelink), array('class' => 'wikilink freelinking'. $no_page));
       }
     }
 
@@ -283,7 +289,9 @@ function _freelinking_do_filtering($text
       $pattern = '/\b' . $wikiword . '\b(?![^<]*>)/';
       $phrase = $wikiword; // consistency for the db
       $freelink = $wikiword; // also for the db
-      $replacement = l($wikiword, 'freelinking/' . urlencode($wikiword));
+      // Add a class to the link if no page exists.
+      $no_page = _freelinking_exists($phrase) == 0 ? ' no-page' : '';
+      $replacement = l($wikiword, 'freelinking/' . urlencode($wikiword), array('class' => 'wikilink camelcase'. $no_page));
     }
     $text = preg_replace($pattern, $replacement, $text, variable_get("freelinking_onceonly", 0) ? 1 : -1);
     
