⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editconfig.pm

📁 老外写的linux下的文件备份软件
💻 PM
📖 第 1 页 / 共 4 页
字号:
        #$comment =~ s/\n/ /g;        $doneParam->{$param} = 1;        $tblContent .= fieldEditBuild($ConfigMeta{$param},                              $param,                              $newConf->{$param},                              $errors,                              0,                              $comment,                              $isError,                              $paramInfo->{onchangeSubmit},		              defined($override) ? $param : undef,			      defined($override) ? $override->{$param} : undef                        );        if ( defined($paramInfo->{comment}) ) {            my $topDir = $bpc->TopDir;            my $text = eval("qq($Lang->{$paramInfo->{comment}})");	    $tblContent .= <<EOF;<tr><td colspan="2" class="editComment">$text</td></tr>EOF        }    }    #    # Emit a summary of all the errors    #    my $errorTxt;    if ( %$errors ) {	$errorTxt .= <<EOF;<tr><td colspan="2" class="border"><span class="editError">$Lang->{CfgEdit_Error_No_Save}</span></td></tr>EOF    }    foreach my $param ( sort(keys(%$errors)) ) {	$errorTxt .= <<EOF;<tr><td colspan="2" class="border"><span class="editError">$errors->{$param}</span></td></tr>EOF    }    $content .= <<EOF;$errorTxt$tblContent</table>EOF    #    # Emit all the remaining editable config settings as hidden values    #    foreach my $param ( keys(%ConfigMeta) ) {        next if ( $doneParam->{$param} );        next if ( $userHost                      && (!defined($bpc->{Conf}{CgiUserConfigEdit}{$param})                         || (!$PrivAdmin                             && !$bpc->{Conf}{CgiUserConfigEdit}{$param})) );        $content .= fieldHiddenBuild($ConfigMeta{$param},                            $param,                            $newConf->{$param},                            "v"                        );        if ( defined($override) ) {            $content .= <<EOF;<input type="hidden" name="override_$param" value="$override->{$param}">EOF        }        $doneParam->{$param} = 1;    }    if ( defined($In{menu}) || $In{saveAction} eq "Save" ) {        if ( $In{saveAction} eq "Save" && !$userHost ) {            #            # Emit the new settings as orig_zZ_ parameters            #            $doneParam = {};            foreach my $param ( keys(%ConfigMeta) ) {                next if ( $doneParam->{$param} );                next if ( $userHost                          && (!defined($bpc->{Conf}{CgiUserConfigEdit}{$param})                             || (!$PrivAdmin                                && !$bpc->{Conf}{CgiUserConfigEdit}{$param})) );                $contentHidden .= fieldHiddenBuild($ConfigMeta{$param},                                        $param,                                        $newConf->{$param},                                        "orig",                                    );                $doneParam->{$param} = 1;                $In{modified} = 0;            }        } else {            #            # Just switching menus: copy all the orig_zZ_ input parameters            #            foreach my $var ( keys(%In) ) {                next if ( $var !~ /^orig_zZ_/ );                my $val = decode_utf8($In{$var});                $contentHidden .= <<EOF;<input type="hidden" name="$var" value="${EscHTML($val)}">EOF            }	}    } else {	#	# First time: emit all the original config settings	#	$doneParam = {};        foreach my $param ( keys(%ConfigMeta) ) {            next if ( $doneParam->{$param} );            next if ( $userHost                          && (!defined($bpc->{Conf}{CgiUserConfigEdit}{$param})                             || (!$PrivAdmin                                && !$bpc->{Conf}{CgiUserConfigEdit}{$param})) );            $contentHidden .= fieldHiddenBuild($ConfigMeta{$param},                                    $param,                                    $mainConf->{$param},                                    "orig",                                );            $doneParam->{$param} = 1;	}    }    $content .= <<EOF;$contentHidden</form></tr></table>EOF    Header("Config Edit", $content);    Trailer();}sub fieldHiddenBuild{    my($type, $varName, $varValue, $prefix) = @_;    my $content;    $type = { type => $type } if ( ref($type) ne "HASH" );    if ( $type->{type} eq "list" ) {        $varValue = [] if ( !defined($varValue) );        $varValue = [$varValue] if ( ref($varValue) ne "ARRAY" );        for ( my $i = 0 ; $i < @$varValue ; $i++ ) {            $content .= fieldHiddenBuild($type->{child}, "${varName}_zZ_$i",                                         $varValue->[$i], $prefix);        }    } elsif ( $type->{type} eq "hash" || $type->{type} eq "horizHash" ) {        $varValue = {} if ( ref($varValue) ne "HASH" );        my(@order, $childType);        if ( defined($type->{order}) ) {            @order = @{$type->{order}};        } elsif ( defined($type->{child}) ) {            @order = sort(keys(%{$type->{child}}));        } else {            @order = sort(keys(%$varValue));        }        foreach my $fld ( @order ) {            if ( defined($type->{child}) ) {                $childType = $type->{child}{$fld};            } else {                $childType = $type->{childType};                #                # emit list of fields since they are user-defined                # rather than hard-coded                #                $content .= <<EOF;<input type="hidden" name="vflds.$varName" value="${EscHTML($fld)}">EOF            }            $content .= fieldHiddenBuild($childType, "${varName}_zZ_$fld",                                         $varValue->{$fld}, $prefix);        }    } elsif ( $type->{type} eq "shortlist" ) {	$varValue = [$varValue] if ( ref($varValue) ne "ARRAY" );	$varValue = join(", ", @$varValue);        $content .= <<EOF;<input type="hidden" name="${prefix}_zZ_$varName" value="${EscHTML($varValue)}">EOF    } else {        $content .= <<EOF;<input type="hidden" name="${prefix}_zZ_$varName" value="${EscHTML($varValue)}">EOF    }    return $content;}sub fieldEditBuild{    my($type, $varName, $varValue, $errors, $level, $comment, $isError,       $onchangeSubmit, $overrideVar, $overrideSet) = @_;    my $content;    my $size = 50 - 10 * $level;    $type = { type => $type } if ( ref($type) ne "HASH" );    $size = $type->{size} if ( defined($type->{size}) );    #    # These fragments allow inline content to be turned on and off    #    # <tr><td colspan="2"><span id="id_$varName" style="display: none" class="editComment">$comment</span></td></tr>    # <tr><td class="border"><a href="javascript: displayHelp('$varName')">$varName</a>    #    if ( $level == 0 ) {        my $lcVarName = lc($varName);	$content .= <<EOF;<tr><td class="border"><a href="?action=view&type=docs#item__conf_${lcVarName}_">$varName</a>EOF	if ( defined($overrideVar) ) {	    my $override_checked = "";	    if ( !$isError && $In{deleteVar}      =~ /^\Q${varName}_zZ_/		   || !$isError && $In{insertVar} =~ /^\Q${varName}\E(_zZ_|$)/		   || !$isError && $In{addVar}    =~ /^\Q${varName}\E(_zZ_|$)/ ) {		$overrideSet = 1;	    }	    if ( $overrideSet ) {		$override_checked = "checked";	    }            $content .= <<EOF;<br><input type="checkbox" name="override_$varName" $override_checked value="1" onClick="checkboxChange('$varName')">\&nbsp;${EscHTML($Lang->{CfgEdit_Button_Override})}EOF	}	$content .= "</td>\n";    }    if ( $type->{type} eq "list" ) {        $content .= "<td class=\"border\">\n";        $varValue = [] if ( !defined($varValue) );        $varValue = [$varValue] if ( ref($varValue) ne "ARRAY" );        if ( !$isError && $In{deleteVar} =~ /^\Q${varName}_zZ_\E(\d+)$/                && $1 < @$varValue ) {            #            # User deleted entry in this array            #            splice(@$varValue, $1, 1) if ( @$varValue > 1 || $type->{emptyOk} );            $In{deleteVar} = "";        }        if ( !$isError && $In{insertVar} =~ /^\Q${varName}_zZ_\E(\d+)$/                && $1 < @$varValue ) {            #            # User inserted entry in this array            #            splice(@$varValue, $1, 0, "")                        if ( @$varValue > 1 || $type->{emptyOk} );            $In{insertVar} = "";        }        if ( !$isError && $In{addVar} eq $varName ) {            #            # User added entry to this array            #            push(@$varValue, undef);            $In{addVar} = "";        }        $content .= "<table border=\"1\" cellspacing=\"0\">\n";        my $colspan;        if ( ref($type) eq "HASH" && ref($type->{child}) eq "HASH"                    && $type->{child}{type} eq "horizHash" ) {            my @order;            if ( defined($type->{child}{order}) ) {                @order = @{$type->{child}{order}};            } else {                @order = sort(keys(%{$type->{child}{child}}));            }            $content .= "<tr><td class=\"border\"></td>\n";            for ( my $i = 0 ; $i < @order ; $i++ ) {                $content .= "<td class=\"tableheader\">$order[$i]</td>\n";            }            $colspan = @order + 1;            $content .= "</tr>\n";            for ( my $i = 0 ; $i < @$varValue ; $i++ ) {                if ( @$varValue > 1 || $type->{emptyOk} ) {                    $content .= <<EOF;<td class="border"><input type="button" name="del_${varName}_zZ_$i" value="${EscHTML($Lang->{CfgEdit_Button_Delete})}"    onClick="deleteSubmit('${varName}_zZ_$i')"></td>EOF                }                $content .= fieldEditBuild($type->{child}, "${varName}_zZ_$i",                                  $varValue->[$i], $errors, $level + 1, undef,                                  $isError, $onchangeSubmit,                                  $overrideVar, $overrideSet);                $content .= "</tr>\n";            }        } else {            for ( my $i = 0 ; $i < @$varValue ; $i++ ) {                $content .= <<EOF;<tr><td class="border"><input type="button" name="ins_${varName}_zZ_$i" value="${EscHTML($Lang->{CfgEdit_Button_Insert})}"    onClick="insertSubmit('${varName}_zZ_$i')">EOF                if ( @$varValue > 1 || $type->{emptyOk} ) {                    $content .= <<EOF;<input type="button" name="del_${varName}_zZ_$i" value="${EscHTML($Lang->{CfgEdit_Button_Delete})}"    onClick="deleteSubmit('${varName}_zZ_$i')">EOF                }                $content .= "</td>\n";                $content .= fieldEditBuild($type->{child}, "${varName}_zZ_$i",                                    $varValue->[$i], $errors, $level + 1, undef,                                    $isError, $onchangeSubmit,                                    $overrideVar, $overrideSet);                $content .= "</tr>\n";            }            $colspan = 2;        }        $content .= <<EOF;<tr><td class="border" colspan="$colspan"><input type="button" name="add_$varName" value="${EscHTML($Lang->{CfgEdit_Button_Add})}"    onClick="addSubmit('$varName')"></td></tr></table>EOF        $content .= "</td>\n";    } elsif ( $type->{type} eq "hash" ) {        $content .= "<td class=\"border\">\n";        $content .= "<table border=\"1\" cellspacing=\"0\">\n";        $varValue = {} if ( ref($varValue) ne "HASH" );        if ( !$isError && !$type->{noKeyEdit}                        && $In{deleteVar} !~ /^\Q${varName}_zZ_\E.*_zZ_/                        && $In{deleteVar} =~ /^\Q${varName}_zZ_\E(.*)$/ ) {            #            # User deleted entry in this hash            #            delete($varValue->{$1}) if ( keys(%$varValue) > 1					    || $type->{emptyOk} );            $In{deleteVar} = "";        }        if ( !$isError && !defined($type->{child})                        && $In{addVar} eq $varName ) {            #            # User added entry to this array            #            $varValue->{$In{"addVarKey_$varName"}} = ""                        if ( !defined($varValue->{$In{"addVarKey_$varName"}}) );            $In{addVar} = "";        }        my(@order, $childType);        if ( defined($type->{order}) ) {            @order = @{$type->{order}};        } elsif ( defined($type->{child}) ) {            @order = sort(keys(%{$type->{child}}));        } else {            @order = sort(keys(%$varValue));        }        foreach my $fld ( @order ) {            $content .= <<EOF;<tr><td class="border">$fldEOF            if ( !$type->{noKeyEdit}		    && (keys(%$varValue) > 1 || $type->{emptyOk}) ) {                $content .= <<EOF;<input type="submit" name="del_${varName}_zZ_$fld" value="${EscHTML($Lang->{CfgEdit_Button_Delete})}"        onClick="deleteSubmit('${varName}_zZ_$fld')">EOF            }            if ( defined($type->{child}) ) {                $childType = $type->{child}{$fld};            } else {                $childType = $type->{childType};                #                # emit list of fields since they are user-defined                # rather than hard-coded                #                $content .= <<EOF;<input type="hidden" name="vflds.$varName" value="${EscHTML($fld)}">EOF            }            $content .= "</td>\n";            $content .= fieldEditBuild($childType, "${varName}_zZ_$fld",                            $varValue->{$fld}, $errors, $level + 1, undef,			    $isError, $onchangeSubmit,			    $overrideVar, $overrideSet);            $content .= "</tr>\n";        }        if ( !$type->{noKeyEdit} ) {            $content .= <<EOF;<tr><td class="border" colspan="2">$Lang->{CfgEdit_Button_New_Key}: <input type="text" class="editTextInput" name="addVarKey_$varName" size="20" maxlength="256" value=""><input type="button" name="add_$varName" value="${EscHTML($Lang->{CfgEdit_Button_Add})}" onClick="addSubmit('$varName', 1)"></td></tr>EOF        }        $content .= "</table>\n";        $content .= "</td>\n";    } elsif ( $type->{type} eq "horizHash" ) {        $varValue = {} if ( ref($varValue) ne "HASH" );        my(@order, $childType);        if ( defined($type->{order}) ) {            @order = @{$type->{order}};        } elsif ( defined($type->{child}) ) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -