sub defaultRestrictList( $ ) { return [] };
+sub path( $ ) {
+ my( $self ) = @_;
+ my @result;
+ my $address = $self;
+ while( defined( $address = $address->parent() ) ) {
+ push @result, $address;
+ }
+ return \@result;
+}
+
1;
$_ = $self->get();
s/^PC\/?//;
s/\//:/g;
- s/([0-9a-f]{4,4})([0-9a-f]{4,4})/$1 $2/g;
+ s/([0-9a-f]{4})([0-9a-f]{4})/$1 $2/g;
my $prefix = '';
if( /:.*:/ ) {
$prefix = 'Subsystem';
sub tail( $ ) {
my( $new ) = ( shift->get() );
$new =~ s/.*\/(.)/$1/;
- $new =~ s/([0-9a-f]{4,4})([0-9a-f]{4,4})/$1 $2/g;
+ $new =~ s/([0-9a-f]{4})([0-9a-f]{4})/$1 $2/g;
return $new;
}
return ( PciIds::Address::Base::new( $self->{'value'} . ( ( $self->{'value'} =~ /\/$/ ) ? '' : '/' ) . $suffix ), undef );
}
+sub path( $ ) {
+ my( $self ) = @_;
+ my $result = PciIds::Address::Base::path( $self );
+ my( $vid ) = ( $self->get() =~ /^PC\/[0-9a-f]{4}\/[0-9a-f]{4}\/([0-9a-f]{4})/ );
+ splice @{$result}, 2, 0, PciIds::Address::new( "PC/$vid" ) if( defined $vid ) && ( $result->[1]->get() ne "PC/$vid" );
+ return $result;
+}
+
1;
}
}
+sub parent( $ ) {
+ return undef;
+}
+
1;
genMenu( $address, $args, $auth );
print htmlDiv( 'name', '<p>'.encode( $name ) ) if( defined( $name ) );
print htmlDiv( 'description', '<p>'.encode( $description ) ) if( defined( $description ) );
- if( defined( $address->parent() ) ) {
- print '<p><a class="navigation" href="/read/'.$address->parent()->get().'/">'.encode( $address->parent()->pretty() )."</a>";
- } else {
- print '<p><a class="navigation" href="/index.html">Main page</a>';
- }
+ genPath( $address, 0 );
my $diss = 0;
my $comment;
foreach $comment ( @{$tables->history( $address->get() )} ) {
use Apache2::Const qw(:common :http);
use APR::Table;
-our @EXPORT = qw(&genHtmlHead &htmlDiv &genHtmlTail &genTableHead &genTableTail &parseArgs &buildExcept &buildArgs &genMenu &genCustomMenu &encode &setAddrPrefix &HTTPRedirect);
+our @EXPORT = qw(&genHtmlHead &htmlDiv &genHtmlTail &genTableHead &genTableTail &parseArgs &buildExcept &buildArgs &genMenu &genCustomMenu &encode &setAddrPrefix &HTTPRedirect &genPath);
sub encode( $ ) {
return encode_entities( shift, "\"'&<>" );
return HTTP_SEE_OTHER;
}
+sub genPath( $$ ) {
+ my( $address, $printAddr ) = @_;
+ my $path = $address->path();
+ push @{$path}, $address if( $printAddr );
+ print "<div class='navigation'><ul>\n";
+ foreach my $addr ( @{$path} ) {
+ print " <li><a href='/read/".$addr->get()."/'>".encode( $addr->pretty() )."</a>\n";
+ }
+ print "<li><a href='/index.html'>Main page</a>\n";
+ print "</div>\n";
+}
+
1;
padding-left: 5px;
padding-right: 5px;
}
-.menu ul
+.menu ul,
+.navigation ul
{
list-style-type: none;
}