This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

enhanced-tooltipglossary_v1.1_multi-word-terms.patch

By: a guest on Aug 23rd, 2012  |  syntax: None  |  size: 3.49 KB  |  views: 23  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Index: glossary.php
  2. ===================================================================
  3. --- glossary.php        (revision 589602)
  4. +++ glossary.php        (working copy)
  5. @@ -84,6 +84,16 @@
  6.         }
  7.         add_action('wp_print_styles', 'red_glossary_css');
  8.                
  9. +// Sort longer titles first, so if there is collision between terms (e.g.,
  10. +// "essential fatty acid" and "fatty acid") the longer one gets created first.
  11. +function sortByWPQueryObjectTitleLength($a, $b) {
  12. +       $sortVal = 0;
  13. +       if (property_exists($a, 'post_title') && property_exists($b, 'post_title')) {
  14. +               $sortVal = strlen($b->post_title) - strlen($a->post_title);
  15. +       }
  16. +       return $sortVal;
  17. +}
  18. +
  19.  function red_glossary_parse($content){
  20.  
  21.         //Run the glossary parser
  22. @@ -97,6 +107,9 @@
  23.                                                                                         'orderby'               => 'title'
  24.                                                                                         ));    
  25.                                                                                        
  26. +               // Sort by title length (function above)
  27. +               uasort($glossary_index, 'sortByWPQueryObjectTitleLength');
  28. +
  29.                 //the tag:[glossary_exclude]+[/glossary_exclude] can be used to mark text will not be taken into account by the glossary
  30.                 if ($glossary_index){
  31.                         $timestamp = time();
  32. @@ -262,6 +275,10 @@
  33.                                 //old code bug-doesn't take into account href='' takes into account only href="")
  34.                                 //$glossary_search = '/\b'.$glossary_title.'s*?\b(?=([^"]*"[^"]*")*[^"]*$)/i';
  35.                                 $glossary_search = '/\b'.$glossary_title.'s*?\b(?=([^"]*"[^"]*")*[^"]*$)(?=([^\']*\'[^\']*\')*[^\']*$)/i';
  36. +                               // If protected tags option is turned on, make sure we're not replacing terms that are already in anchor tags (esp. anchor tags generated by another glossary term)
  37. +                               if (get_option('red_glossaryProtectedTags') == 1) {
  38. +                                       $glossary_search = '/(?<!glossaryLink">)\b'.$glossary_title.'s*?\b(?=([^"]*"[^"]*")*[^"]*$)(?=([^\']*\'[^\']*\')*[^\']*$)(?!<\/a>)/i';
  39. +                               }                              
  40.                                 $glossary_replace = '<a'.$timestamp.'>$0</a'.$timestamp.'>';
  41.                                
  42.                                 $origContent = $content;
  43. @@ -298,17 +315,17 @@
  44.                                                 }
  45.                                                
  46.                                                         if (get_option('red_glossaryTermLink') == 1) {
  47. -                                                               $link_replace = '<span class="glossaryLink"  title="Glossary: '. $glossary_title . '" onmouseover="tooltip.show(\'' . $glossaryItemContent . '\');" onmouseout="tooltip.hide();">$1</span>';                                                                                           
  48. +                                                               $link_replace = '<span title="Glossary: '. $glossary_title . '" onmouseover="tooltip.show(\'' . $glossaryItemContent . '\');" onmouseout="tooltip.hide();" class="glossaryLink">$1</span>';                                                                                            
  49.                                                         } else {
  50. -                                                               $link_replace = '<a class="glossaryLink" href="' . get_permalink($glossary_item) .'" title="Glossary: '. $glossary_title . '" onmouseover="tooltip.show(\'' . $glossaryItemContent . '\');" onmouseout="tooltip.hide();">$1</a>';                                                                                              
  51. +                                                               $link_replace = '<a href="' . get_permalink($glossary_item) .'" title="Glossary: '. $glossary_title . '" onmouseover="tooltip.show(\'' . $glossaryItemContent . '\');" onmouseout="tooltip.hide();" class="glossaryLink">$1</a>';                                                                                              
  52.                                                         }
  53.  
  54.                                         }
  55.                                         else {
  56.                                                         if (get_option('red_glossaryTermLink') == 1) {
  57. -                                                                       $link_replace = '<span class="glossaryLink"  title="Glossary: '. $glossary_title . '">$1</span>';
  58. +                                                                       $link_replace = '<span title="Glossary: '. $glossary_title . '" class="glossaryLink">$1</span>';
  59.                                                         } else {
  60. -                                                                       $link_replace = '<a class="glossaryLink" href="' . get_permalink($glossary_item) . '" title="Glossary: '. $glossary_title . '">$1</a>';
  61. +                                                                       $link_replace = '<a href="' . get_permalink($glossary_item) . '" title="Glossary: '. $glossary_title . '" class="glossaryLink">$1</a>';
  62.                                                         }
  63.                        
  64.                                         }
clone this paste RAW Paste Data