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

📄 templates.pm

📁 bugzilla的安装文件
💻 PM
字号:
# -*- Mode: perl; indent-tabs-mode: nil -*-## The contents of this file are subject to the Mozilla Public# License Version 1.1 (the "License"); you may not use this file# except in compliance with the License. You may obtain a copy of# the License at http://www.mozilla.org/MPL/## Software distributed under the License is distributed on an "AS# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or# implied. See the License for the specific language governing# rights and limitations under the License.## The Original Code are the Bugzilla tests.## The Initial Developer of the Original Code is Jacob Steenhagen.# Portions created by Jacob Steenhagen are# Copyright (C) 2001 Jacob Steenhagen. All# Rights Reserved.## Contributor(s): Jacob Steenhagen <jake@bugzilla.org>#                 David D. Kilzer <ddkilzer@kilzer.net>#                 Tobias Burnus <burnus@net-b.de>#package Support::Templates;use strict;use lib 't';use base qw(Exporter);@Support::Templates::EXPORT =          qw(@languages @include_paths %include_path @referenced_files             %actual_files $num_actual_files);use vars qw(@languages @include_paths %include_path @referenced_files             %actual_files $num_actual_files);use Support::Files;use File::Find;use File::Spec 0.82;# The available template languages@languages = ();# The colon separated includepath per language%include_path = ();# All include paths@include_paths = ();# Files which are referenced in the cgi files@referenced_files = ();# All files sorted by include_path%actual_files = ();# total number of actual_files$num_actual_files = 0;# Scan for the template available languages and include paths{    opendir(DIR, "template") || die "Can't open  'template': $!";    my @files = grep { /^[a-z-]+$/i } readdir(DIR);    closedir DIR;    foreach my $langdir (@files) {        next if($langdir =~ /^CVS$/i);        my $path = File::Spec->catdir('template', $langdir, 'custom');        my @dirs = ();        push(@dirs, $path) if(-d $path);        $path = File::Spec->catdir('template', $langdir, 'extension');        push(@dirs, $path) if(-d $path);        $path = File::Spec->catdir('template', $langdir, 'default');        push(@dirs, $path) if(-d $path);        next if(scalar(@dirs) == 0);        push(@languages, $langdir);        push(@include_paths, @dirs);        $include_path{$langdir} = join(":",@dirs);    }}my @files;# Local subroutine used with File::Findsub find_templates {    # Prune CVS directories    if (-d $_ && $_ eq 'CVS') {        $File::Find::prune = 1;        return;    }    # Only include files ending in '.tmpl'    if (-f $_ && $_ =~ m/\.tmpl$/i) {        my $filename;        my $local_dir = File::Spec->abs2rel($File::Find::dir,                                            $File::Find::topdir);        if ($local_dir) {            $filename = File::Spec->catfile($local_dir, $_);        } else {            $filename = $_;        }        push(@files, $filename);    }}# Scan the given template include path for templatessub find_actual_files {  my $include_path = $_[0];  @files = ();  find(\&find_templates, $include_path);  return @files;}foreach my $include_path (@include_paths) {  $actual_files{$include_path} = [ find_actual_files($include_path) ];  $num_actual_files += scalar(@{$actual_files{$include_path}});}# Scan Bugzilla's perl code looking for templates used and put them# in the @referenced_files array to be used by the 004template.t test.my %seen;foreach my $file (@Support::Files::testitems) {    open (FILE, $file);    my @lines = <FILE>;    close (FILE);    foreach my $line (@lines) {        if ($line =~ m/template->process\(\"(.+?)\", .+?\)/) {            my $template = $1;            # Ignore templates with $ in the name, since they're            # probably vars, not real files            next if $template =~ m/\$/;            next if $seen{$template};            push (@referenced_files, $template);            $seen{$template} = 1;        }    }}1;

⌨️ 快捷键说明

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