diff -Nwaurx *~ BugzillaQueryPlugin.orig/data/TWiki/BugzillaQueryPlugin.txt BugzillaQueryPlugin/data/TWiki/BugzillaQueryPlugin.txt --- BugzillaQueryPlugin.orig/data/TWiki/BugzillaQueryPlugin.txt Mon Feb 23 10:37:44 2004 +++ BugzillaQueryPlugin/data/TWiki/BugzillaQueryPlugin.txt Fri Mar 19 23:16:20 2004 @@ -50,6 +50,7 @@ * Set BUGZILLA_DB_NAME = bugs * Set BUGZILLA_USER = guest * Set BUGZILLA_PASSWD = + * Set BUG_TEXT = * Set DEBUG = 0 diff -Nwaurx *~ BugzillaQueryPlugin.orig/lib/TWiki/Plugins/BugzillaQueryPlugin.pm BugzillaQueryPlugin/lib/TWiki/Plugins/BugzillaQueryPlugin.pm --- BugzillaQueryPlugin.orig/lib/TWiki/Plugins/BugzillaQueryPlugin.pm Mon Feb 23 10:43:50 2004 +++ BugzillaQueryPlugin/lib/TWiki/Plugins/BugzillaQueryPlugin.pm Fri Mar 19 23:19:21 2004 @@ -89,6 +89,7 @@ $dbName = TWiki::Func::getPreferencesValue( "\U$pluginName\E_BUGZILLA_DB_NAME" ) || "bugs"; # MySQL database name $dbUser = TWiki::Func::getPreferencesValue( "\U$pluginName\E_BUGZILLA_USER" ) || "guest"; # MySQL user who has access to $dbName database (read-only access is the best :-))) $dbPasswd = TWiki::Func::getPreferencesValue( "\U$pluginName\E_BUGZILLA_PASSWD" ) || ""; # password for $dbUser + $bugText = TWiki::Func::getPreferencesValue( "\U$pluginName\E_BUG_TEXT" ) || ""; # Text to display before bug number(s) # Plugin correctly initialized TWiki::Func::writeDebug( "- TWiki::Plugins::${pluginName}::initPlugin( $web.$topic ) is OK" ) if $debug; @@ -295,6 +296,7 @@ my $format = TWiki::Func::getPreferencesValue( "\U$pluginName\E_FORMAT" ) || "| \$bug_id | \$bug_severity | \$priority | \$bug_status | \$reporter | \$product |"; my $dataView = 0; + my $origText = $text; my %params; $anonymous = $1 if ( $text =~ s/^[\"\'](.*?)[\"\']// ); $dataView = 1 if ( $text =~ s/data=[\"\']on[\"\']// ); @@ -308,7 +310,7 @@ } if ( $dataView == 1 ) { - my $db = openDB(); + my $db = openDB() || return "%BGQ{$origText}% %RED%Error connecting to bugzilla database%ENDCOLOR%"; $statement = "SELECT * FROM bugs"; my @keys = keys %params; $statement .= ", keyworddefs, keywords" if ( grep( /keyword/, @keys ) ); @@ -365,11 +367,20 @@ else { if ( defined( $params{'bug_id'} ) ) { @tmp = makeArray( $params{'bug_id'} ); + my $linkText = ""; if ( $#tmp < 1 ) { - return "$url/$showBugScript?id=$tmp[0]"; + if ($bugText ne "") { $linkText = "\]\[$bugText$tmp[0]"; } + return "\[\[$url/$showBugScript?id=$tmp[0]$linkText\]\]"; } else { - return addArray( "$url/$bugListScript?", "bug_id", @tmp ); + if ($bugText ne "") { + $linkText = "\]\[$bugText"; + foreach my $tmpid ( @tmp ) { + $linkText .= "$tmpid, "; + } + substr($linkText, -2) = ""; + } + return addArray( "\[\[$url/$bugListScript?", "bug_id", @tmp ) . "$linkText\]\]"; } } } @@ -390,7 +401,7 @@ sub getField { my ( $what, $table, $field, $value, $key ) = @_; - $db = openDB(); + $db = openDB() || die "Error connecting to bugzilla database"; my $statement = "SELECT $what FROM $table WHERE $field = '$value'"; my $tmp = $db->prepare( $statement ); $tmp->execute(); @@ -406,9 +417,6 @@ $host .= ";host=$dbHost" if ( $dbHost ne "" ); $host .= ";port=$dbPort" if ( $dbPort ne "" ); my $db = DBI->connect("DBI:mysql:$dbName$host", $dbUser, $dbPasswd, {PrintError=>1, RaiseError=>0}); - if (! $db ) { - die "ERROR!! Not possible to connect database!!"; - } return $db; }