HTML-Menu-TreeView

 view release on metacpan or  search on metacpan

examples/edit.pl  view on Meta::CPAN

            my $node = help();
            foreach my $key ( sort( keys %{ @$t[$i] } ) ) {
                $m_sContent .= "<tr><td></td><td>$node->{$key}</td></tr>"
                  if ( defined $node->{$key} );
                $m_sContent .= qq(<tr><td>$key </td><td><input type="text" value="@$t[$i]->{$key}" name="$key"></td></tr>)
                  if ( $key ne 'subtree'
                    && $key ne 'rid'
                    && $key ne 'action'
                    && $key ne 'dump'
                    && $key ne 'class'
                    && $key ne 'addition' );
            } ## end foreach my $key ( sort( keys...))
            foreach my $key2 ( sort( keys %{$node} ) ) {
                unless ( defined @$t[$i]->{$key2} ) {
                    $m_sContent .=
                      qq(<tr><td></td><td>$node->{$key2}</td></tr><tr><td>$key2 :</td><td><input type="text" value="" name="$key2"/><br/></td></tr>);
                } ## end unless ( defined @$t[$i]->...)
            } ## end foreach my $key2 ( sort( keys...))
            $m_sContent .=
qq(<tr><td><input type="hidden" name="action" value="saveTreeviewEntry"/><input type="hidden" name="rid" value="@$t[$i]->{id}"/></td><td><input type="submit" value="save"/></td></tr></table></form>);
            saveTree( $dump, \@tree );
            return;
        } elsif ( defined @{ @$t[$i]->{subtree} } ) {
            &editEntry( \@{ @$t[$i]->{subtree} }, $find );
        } ## end elsif ( defined @{ @$t[$i...]})
    } ## end for ( my $i = 0 ; $i < ...)
} ## end sub editEntry

sub sortUp {
    my $t    = shift;
    my $find = shift;
    for ( my $i = 0 ; $i <= @$t ; $i++ ) {
        if ( defined @$t[$i] ) {
            if ( @$t[$i]->{rid} == $find ) {
                $i++ if ($down);
                return if ( ( $down && $i == @$t ) or ( !$down && $i == 0 ) );
                splice @$t, $i - 1, 2, ( @$t[$i], @$t[ $i - 1 ] );
                saveTree( $dump, \@tree );
            } ## end if ( @$t[$i]->{rid} ==...)
            if ( defined @{ @$t[$i]->{subtree} } ) {
                sortUp( \@{ @$t[$i]->{subtree} }, $find );
                saveTree( $dump, \@tree );
            } ## end if ( defined @{ @$t[$i...]})
        } ## end if ( defined @$t[$i] )
    } ## end for ( my $i = 0 ; $i <=...)
} ## end sub sortUp

sub deleteEntry {
    my $t    = shift;
    my $find = shift;
    for ( my $i = 0 ; $i < @$t ; $i++ ) {
        if ( @$t[$i]->{rid} == $find ) {
            splice @$t, $i, 1;
            saveTree( $dump, \@tree );
        } elsif ( defined @{ @$t[$i]->{subtree} } ) {
            deleteEntry( \@{ @$t[$i]->{subtree} }, $find );
        } ## end elsif ( defined @{ @$t[$i...]})
    } ## end for ( my $i = 0 ; $i < ...)
} ## end sub deleteEntry

sub updateTree {
    my $t = shift;
    for ( my $i = 0 ; $i < @$t ; $i++ ) {
        if ( defined @$t[$i] ) {
            @$t[$i]->{onmouseup}   = "confirmMove()";
            @$t[$i]->{id}          = @$t[$i]->{id};
            @$t[$i]->{name}        = @$t[$i]->{rid};
            @$t[$i]->{onmousedown} = "prepareMove('" . @$t[$i]->{id} . "')";
            @$t[$i]->{onmousemove} = "enableDropZone('" . @$t[$i]->{id} . "')";
            @$t[$i]->{onmouseout}  = "disableDropZone('" . @$t[$i]->{id} . "')";
            @$t[$i]->{addition}    = qq(<table border="0" cellpadding="0" cellspacing="0" align="right" summary="layout"><tr>
<td><a class="treeviewLink$size" target="_blank" title="@$t[$i]->{text}" href="@$t[$i]->{href}"><img src="/style/$m_sStyle/$size/mimetypes/www.png" border="0" alt=""/></a></td>
<td ><a class="treeviewLink$size" href="$ENV{SCRIPT_NAME}?action=editTreeviewEntry&amp;rid=@$t[$i]->{id}"><img src="/style/$m_sStyle/$size/mimetypes/edit.png" border="0" alt="edit"/></a></td><td><a class="treeviewLink$size" href="$ENV{SCRIPT_NAME}?ac...
            @$t[$i]->{href} = '';
            updateTree( \@{ @$t[$i]->{subtree} } ) if ( defined @{ @$t[$i]->{subtree} } );
        } ## end if ( defined @$t[$i] )
    } ## end for ( my $i = 0 ; $i < ...)
} ## end sub updateTree

sub rid {
    no warnings;
    $m_nRid = 0;
    &getRid( \@tree );

    sub getRid {
        my $t = shift;
        for ( my $i = 0 ; $i < @$t ; $i++ ) {
            $m_nRid++;
            next unless ref @$t[$i] eq "HASH";
            @$t[$i]->{rid} = $m_nRid;
            @$t[$i]->{id}  = "a$m_nRid";
            getRid( \@{ @$t[$i]->{subtree} } ) if ( defined @{ @$t[$i]->{subtree} } );
        } ## end for ( my $i = 0 ; $i < ...)
    } ## end sub getRid
} ## end sub rid

sub load {
    if ( -e $dump ) {
        loadTree($dump);
        *tree = \@{ $HTML::Menu::TreeView::TreeView[0] };
    } ## end if ( -e $dump )
} ## end sub load
1;



( run in 0.357 second using v1.01-cache-2.11-cpan-39bf76dae61 )