Changeset 933


Ignore:
Timestamp:
Mar 12, 2007, 9:56:39 PM (15 years ago)
Author:
kake
Message:

Add MAP_LINK and INCLUDE_NODE macros (ticket #100).

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/OpenGuides/Utils.pm

    r894 r933  
    159159                   return $return;
    160160                 },
     161        qr/\@MAP_LINK\s+\[\[(Category|Locale)\s+([^\]|]+)\|?([^\]]+)?\]\]/ =>
     162                sub {
     163                      if ( UNIVERSAL::isa( $_[0], "Wiki::Toolkit" ) ) {
     164                          shift; # don't need $wiki
     165                      }
     166                      my $link_title = $_[2]
     167                                       || "View map of pages in $_[0] $_[1]";
     168                      return qq(<a href="$script_name?action=index;format=map;index_type=) . uri_escape(lc($_[0])) . qq(;index_value=) . uri_escape($_[1]) . qq(">$link_title</a>);
     169                },
     170        qr/\@INCLUDE_NODE\s+\[\[([^\]|]+)\]\]/ =>
     171            sub {
     172                  my ($wiki, $node) = @_;
     173                  my %node_data = $wiki->retrieve_node( $node );
     174                  return $node_data{content};
     175                },
    161176        qr/\@RSS\s+(.+)/ => sub {
    162177                    # We may be being called by Wiki::Toolkit::Plugin::Diff,
  • trunk/t/12_macros.t

    r785 r933  
    33use OpenGuides;
    44use OpenGuides::Test;
    5 use Test::More tests => 6;
     5use Test::More tests => 10;
    66
    77eval { require DBD::SQLite; };
     
    99
    1010SKIP: {
    11     skip "DBD::SQLite not installed - no database to test with", 6
     11    skip "DBD::SQLite not installed - no database to test with", 10
    1212      unless $have_sqlite;
    1313
     
    8080    like ( $output, qr|No pages currently in locale|,
    8181           "...and fails nicely if no pages in locale" );
     82
     83    # Test @MAP_LINK
     84    OpenGuides::Test->write_data(
     85                                  guide   => $guide,
     86                                  node    => "Test 1",
     87                                  content => "\@MAP_LINK [[Category Foo]]",
     88                                );
     89    OpenGuides::Test->write_data(
     90                                  guide   => $guide,
     91                                  node    => "Test 2",
     92                                  content => "\@MAP_LINK [[Category Foo|Map]]",
     93                                );
     94    $output = $guide->display_node(
     95                                    return_output => 1,
     96                                    id            => "Test 1",
     97                                  );
     98    like( $output, qr/View map of pages in Category Foo/,
     99          "\@MAP_LINK has right default link text" );
     100    $output = $guide->display_node(
     101                                    return_output => 1,
     102                                    id            => "Test 2",
     103                                  );
     104    like( $output, qr/>Map<\/a>/, "...and can be overridden" );
     105
     106    # Test @INCLUDE_NODE
     107    OpenGuides::Test->write_data(
     108                                  guide   => $guide,
     109                                  node    => "Test 1",
     110                                  content => "Hello, I am Test 1!\r\n"
     111                                             . "\@INCLUDE_NODE [[Test 2]]",
     112                                );
     113    OpenGuides::Test->write_data(
     114                                  guide   => $guide,
     115                                  node    => "Test 2",
     116                                  content => "Hello, I am Test 2!",
     117                                );
     118    $output = $guide->display_node(
     119                                    return_output => 1,
     120                                    id            => "Test 1",
     121                                  );
     122    like( $output, qr/Hello, I am Test 1!/,
     123          "Node with \@INCLUDE_NODE has its own content" );
     124    like( $output, qr/Hello, I am Test 2!/,
     125          "...and the included content" );
    82126}
Note: See TracChangeset for help on using the changeset viewer.