From: Roland Mas
-
+".sprintf(_('%1$s Reporting'), $sys_name)."
\n";
+ echo "".sprintf(_('%1$s Reporting'), forge_get_config ('forge_name'))."
\n";
}
function report_footer() {
diff --git a/gforge/common/survey/Survey.class.php b/gforge/common/survey/Survey.class.php
index beb230f55a..1fb9083ec3 100644
--- a/gforge/common/survey/Survey.class.php
+++ b/gforge/common/survey/Survey.class.php
@@ -100,11 +100,11 @@ class Survey extends Error {
*/
function create($survey_title, $add_questions, $is_active=0, $is_public=1, $is_result_public=0, $double_vote=0) {
if (!$survey_title) {
- $this->setError(_('UPDATE FAILED: Survey Title Required'));
+ $this->setError(_('Update Failed: Survey Title Required'));
return false;
/* We need at least one survey question at this point */
} else if (!$add_questions || !is_array($add_questions) || count($add_questions)<1) {
- $this->setError(_('UPDATE FAILED: Survey Questions Required'));
+ $this->setError(_('Update Failed: Survey Questions Required'));
return false;
}
@@ -144,7 +144,7 @@ class Survey extends Error {
*/
function update($survey_title, &$add_questions, &$del_questions, $is_active=0, $is_public=1, $is_result_public=0, $double_vote=0) {
if (!$survey_title) {
- $this->setError(_('UPDATE FAILED: Survey Title Required'));
+ $this->setError(_('Update Failed: Survey Title Required'));
return false;
/* We need at least one survey question at this point */
}
diff --git a/gforge/common/tracker/Artifact.class.php b/gforge/common/tracker/Artifact.class.php
index 640359f31f..786936d8ab 100644
--- a/gforge/common/tracker/Artifact.class.php
+++ b/gforge/common/tracker/Artifact.class.php
@@ -852,7 +852,7 @@ class Artifact extends Error {
$res = $this->ArtifactType->getTechnicians();
$arr =& util_result_column_to_array($res,0);
if (!in_array($assigned_to, $arr)) {
- $this->setError("Invalid assigned_to (not member of the project)");
+ $this->setError("Invalid assigned_to (assigned person is not a technician)");
return false;
}
}
@@ -1006,12 +1006,12 @@ class Artifact extends Error {
$changes['assigned_to'] = 1;
$update = true;
}
- if ($summary && ($this->getSummary() != htmlspecialchars(stripslashes($summary)))) {
+ if ($summary && ($this->getSummary() != htmlspecialchars($summary))) {
$this->addHistory('summary', $this->getSummary());
$changes['summary'] = 1;
$update = true;
}
- if ($description && ($this->getDetails() != htmlspecialchars(stripslashes($description)))) {
+ if ($description && ($this->getDetails() != htmlspecialchars($description))) {
$this->addHistory('details', $this->getDetails());
$changes['details'] = 1;
$update = true;
diff --git a/gforge/common/tracker/ArtifactExtraField.class.php b/gforge/common/tracker/ArtifactExtraField.class.php
index be8498a9f9..c552c15c6a 100644
--- a/gforge/common/tracker/ArtifactExtraField.class.php
+++ b/gforge/common/tracker/ArtifactExtraField.class.php
@@ -491,8 +491,8 @@ class ArtifactExtraField extends Error {
if (strlen($alias) == 0) return true; // empty alias
// invalid chars?
- if (preg_match("/[^[:alnum:]_\\-]/", $alias)) {
- $this->setError(_('The alias contains invalid characters. Only letters, numbers, hypens (-) and underscores (_) allowed.'));
+ if (preg_match("/[^[:alnum:]_@\\-]/", $alias)) {
+ $this->setError(_('The alias contains invalid characters. Only letters, numbers, hypens (-), arobase (@) and underscores (_) allowed.'));
return false;
} else if (in_array($alias, $reserved_alias)) { // alias is reserved?
$this->setError(sprintf(_('\'%1$s\' is a reserved alias. Please provide another name.'), $alias));
@@ -517,7 +517,7 @@ class ArtifactExtraField extends Error {
// called "Quality test", make an alias called "quality_test").
// The alias can be seen as a "unix name" for this field
$alias = preg_replace("/ /", "_", $name);
- $alias = preg_replace("/[^[:alnum:]_]/", "", $alias);
+ $alias = preg_replace("/[^[:alnum:]_@]/", "", $alias);
$alias = strtolower($alias);
} elseif (!$this->validateAlias($alias)) {
// alias is invalid...
diff --git a/gforge/cronjobs/massmail.php b/gforge/cronjobs/massmail.php
index 869284fe51..3ee71202cc 100755
--- a/gforge/cronjobs/massmail.php
+++ b/gforge/cronjobs/massmail.php
@@ -85,7 +85,7 @@ if (!$mail_res) {
"$sys_admin_email",
"ATT: Problems with massmail cron script",
"This is automatically generated message from\n
-the mass mailing cron script of $sys_name\n
+the mass mailing cron script of ".forge_get_config ('forge_name')."\n
installation. There was error querying massmail_queue\n
database table. Please take appropriate actions.\n"
);
@@ -190,7 +190,7 @@ page (%2$s), or disable them altogether
by visiting following link:
<%3$s>
'),
- $GLOBALS['sys_name'],
+ forge_get_config ('forge_name'),
util_make_url('/account/'),
util_make_url('/account/unsubscribe.php?ch=_'.$row['confirm_hash'])) ;
} else {
diff --git a/gforge/db/20100308-drop-forum-attachment-type.sql b/gforge/db/20100308-drop-forum-attachment-type.sql
new file mode 100644
index 0000000000..437e38b19e
--- /dev/null
+++ b/gforge/db/20100308-drop-forum-attachment-type.sql
@@ -0,0 +1 @@
+DROP TABLE forum_attachment_type;
diff --git a/gforge/db/startpoint.php b/gforge/db/startpoint.php
index a2bace35b6..93975c9165 100755
--- a/gforge/db/startpoint.php
+++ b/gforge/db/startpoint.php
@@ -5,7 +5,7 @@ require_once dirname(__FILE__).'/../www/env.inc.php';
require_once $gfwww.'include/squal_pre.php';
if (!$gfconn) {
- print "$sys_name Could Not Connect to Database: ".db_error();
+ print forge_get_config ('forge_name')." Could Not Connect to Database: ".db_error();
exit;
}
diff --git a/gforge/deb-specific/db-upgrade.pl b/gforge/deb-specific/db-upgrade.pl
index d755f9ed4a..631a63c9c6 100644
--- a/gforge/deb-specific/db-upgrade.pl
+++ b/gforge/deb-specific/db-upgrade.pl
@@ -2903,7 +2903,7 @@ eval {
$dbh->commit () ;
}
- &update_with_sql("20100308-forum-attachment-types","4.8.99-6");
+ &update_with_sql("20100308-forum-attachment-types","4.8.99-6");
########################### INSERT HERE #################################
diff --git a/gforge/debian/gforge-plugin-contribtracker.postinst b/gforge/debian/dsf-in/plugin-contribtracker.postinst
similarity index 85%
rename from gforge/debian/gforge-plugin-contribtracker.postinst
rename to gforge/debian/dsf-in/plugin-contribtracker.postinst
index dd65336e0e..08600a8dc7 100644
--- a/gforge/debian/gforge-plugin-contribtracker.postinst
+++ b/gforge/debian/dsf-in/plugin-contribtracker.postinst
@@ -25,8 +25,8 @@ set -e
case "$1" in
configure)
- /usr/share/gforge/plugins/contribtracker/bin/db-upgrade.pl
- /usr/share/gforge/bin/register-plugin contribtracker "Contribution Tracker"
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/gforge/plugins/contribtracker/bin/db-upgrade.pl'
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/gforge/bin/register-plugin contribtracker "Contribution Tracker"'
;;
abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/gforge/debian/gforge-plugin-contribtracker.prerm b/gforge/debian/dsf-in/plugin-contribtracker.prerm
similarity index 100%
rename from gforge/debian/gforge-plugin-contribtracker.prerm
rename to gforge/debian/dsf-in/plugin-contribtracker.prerm
diff --git a/gforge/debian/dsf-in/plugin-extratabs.postinst b/gforge/debian/dsf-in/plugin-extratabs.postinst
index 38cafa4a1e..167cdd2aae 100644
--- a/gforge/debian/dsf-in/plugin-extratabs.postinst
+++ b/gforge/debian/dsf-in/plugin-extratabs.postinst
@@ -25,8 +25,8 @@ set -e
case "$1" in
configure)
- /usr/share/@OLDPACKAGE@/plugins/extratabs/bin/db-upgrade.pl
- /usr/share/@OLDPACKAGE@/bin/register-plugin extratabs "Extra Tabs"
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/@OLDPACKAGE@/plugins/extratabs/bin/db-upgrade.pl'
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/@OLDPACKAGE@/bin/register-plugin extratabs "Extra Tabs"'
;;
abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/gforge/debian/dsf-in/plugin-globalsearch.postinst b/gforge/debian/dsf-in/plugin-globalsearch.postinst
index 0257fcd329..f04076ce02 100644
--- a/gforge/debian/dsf-in/plugin-globalsearch.postinst
+++ b/gforge/debian/dsf-in/plugin-globalsearch.postinst
@@ -25,8 +25,8 @@ set -e
case "$1" in
configure)
- /usr/share/@OLDPACKAGE@/plugins/globalsearch/bin/db-upgrade.pl
- /usr/share/@OLDPACKAGE@/bin/register-plugin globalsearch "Global Search"
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/@OLDPACKAGE@/plugins/globalsearch/bin/db-upgrade.pl'
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/@OLDPACKAGE@/bin/register-plugin globalsearch "Global Search"'
;;
abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/gforge/debian/dsf-in/plugin-mediawiki.postinst b/gforge/debian/dsf-in/plugin-mediawiki.postinst
index c646aded39..d5f060aaef 100644
--- a/gforge/debian/dsf-in/plugin-mediawiki.postinst
+++ b/gforge/debian/dsf-in/plugin-mediawiki.postinst
@@ -25,7 +25,7 @@ set -e
case "$1" in
configure)
- /usr/share/@OLDPACKAGE@/bin/register-plugin mediawiki "Mediawiki"
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/@OLDPACKAGE@/bin/register-plugin mediawiki "Mediawiki"'
@OLDPACKAGE@-config
for flavour in apache apache-perl apache-ssl apache2 ; do
if [ -x /usr/sbin/$flavour ]; then
diff --git a/gforge/debian/dsf-in/plugin-projectlabels.postinst b/gforge/debian/dsf-in/plugin-projectlabels.postinst
index d2c1d6428e..b0137e21dc 100644
--- a/gforge/debian/dsf-in/plugin-projectlabels.postinst
+++ b/gforge/debian/dsf-in/plugin-projectlabels.postinst
@@ -25,8 +25,8 @@ set -e
case "$1" in
configure)
- /usr/share/@OLDPACKAGE@/plugins/projectlabels/bin/db-upgrade.pl
- /usr/share/@OLDPACKAGE@/bin/register-plugin projectlabels "Project Labels"
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/@OLDPACKAGE@/plugins/projectlabels/bin/db-upgrade.pl'
+ su -s /bin/sh @OLDPACKAGE@ -c '/usr/share/@OLDPACKAGE@/bin/register-plugin projectlabels "Project Labels"'
;;
abort-upgrade|abort-remove|abort-deconfigure)
diff --git a/gforge/debian/rules b/gforge/debian/rules
index ee969fbd6e..c7fb80438b 100755
--- a/gforge/debian/rules
+++ b/gforge/debian/rules
@@ -19,6 +19,7 @@ include /usr/share/dpatch/dpatch.make
CRONDFILES=$(patsubst packaging/cron.d/%,debian/$(OLDPACKAGE)-%.cron.d,$(wildcard packaging/cron.d/[a-z]*))
DIRSFILES=$(patsubst packaging/dirs/%,debian/$(OLDPACKAGE)-%.dirs,$(wildcard packaging/dirs/[a-z]*))
+LINKSFILES=$(patsubst packaging/links/%,debian/$(OLDPACKAGE)-%.links,$(wildcard packaging/links/[a-z]*))
INSTALLFILES=$(patsubst packaging/install/%,debian/$(OLDPACKAGE)-%.install,$(wildcard packaging/install/[a-z]*))
DOCSFILES=$(patsubst packaging/docs/oldpkgname%,debian/$(OLDPACKAGE)%.docs,$(wildcard packaging/docs/oldpkgname*)) $(patsubst packaging/docs/pkgname%,debian/$(PACKAGE)%.docs,$(wildcard packaging/docs/pkgname*))
POFILES=$(patsubst debian/dsf-po/%,debian/po/%,$(wildcard debian/dsf-po/*) debian/po/POTFILES.in)
@@ -27,7 +28,7 @@ remove-binary-files:
sh $(CURDIR)/deb-specific/manage-uufiles.sh clean
.PHONY: conffiles
-conffiles: $(CRONDFILES) $(DIRSFILES) $(INSTALLFILES) $(DOCSFILES) debian/control
+conffiles: $(CRONDFILES) $(DIRSFILES) $(LINKSFILES) $(INSTALLFILES) $(DOCSFILES) debian/control
debian/$(OLDPACKAGE)-%.cron.d:
(cat $(CURDIR)/packaging/cron.d/00phpcron ; sed -e 's/\$$FFUSER/$(OLDPACKAGE)/g' $(CURDIR)/packaging/cron.d/$*) > $@
@@ -35,6 +36,9 @@ debian/$(OLDPACKAGE)-%.cron.d:
debian/$(OLDPACKAGE)-%.dirs:
cp $(CURDIR)/packaging/dirs/$* $@
+debian/$(OLDPACKAGE)-%.links:
+ cp $(CURDIR)/packaging/links/$* $@
+
debian/$(OLDPACKAGE)-%.install:
cp $(CURDIR)/packaging/install/$* $@
@@ -80,6 +84,7 @@ clean: remove-binary-files unpatch
rm -f $(CURDIR)/debian/*.cron.d
rm -f $(CURDIR)/debian/*.dirs
+ rm -f $(CURDIR)/debian/*.links
rm -f $(CURDIR)/debian/*.install
rm -f $(CURDIR)/debian/*.docs
rm -f $(CURDIR)/debian/$(OLDPACKAGE)-config.sgml
diff --git a/gforge/docs/fusionforge.doxygen b/gforge/docs/fusionforge.doxygen
new file mode 100644
index 0000000000..9677d0911c
--- /dev/null
+++ b/gforge/docs/fusionforge.doxygen
@@ -0,0 +1,1551 @@
+# Doxyfile 1.6.3
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME =
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY =
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it parses.
+# With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this tag.
+# The format is ext=language, where ext is a file extension, and language is one of
+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command
Congratulations. You have changed your password.
'), $GLOBALS['sys_name']); ?> + %1$s Password Change ConfirmationCongratulations. You have changed your password.
'), forge_get_config ('forge_name')); ?>Return to User Prefs.'), diff --git a/gforge/www/account/first.php b/gforge/www/account/first.php index 24f3b5dfc4..40a8ef58c7 100644 --- a/gforge/www/account/first.php +++ b/gforge/www/account/first.php @@ -26,9 +26,9 @@ require_once('../env.inc.php'); require_once $gfwww.'include/pre.php'; -site_user_header(array('title'=>sprintf(_('Welcome to %1$s'), $sys_name))); +site_user_header(array('title'=>sprintf(_('Welcome to %1$s'), forge_get_config ('forge_name')))); -printf(_('
You are now a registered user on %1$s, the online development environment for Open Source projects.
As a registered user, you can participate fully in the activities on the site. You may now post messages to the project message forums, post bugs for software in %1$s, sign on as a project developer, or even start your own project.
Enjoy the site, and please provide us with feedback on ways that we can improve %1$s.
--the %1$s staff.
'), $sys_name); +printf(_('You are now a registered user on %1$s, the online development environment for Open Source projects.
As a registered user, you can participate fully in the activities on the site. You may now post messages to the project message forums, post bugs for software in %1$s, sign on as a project developer, or even start your own project.
Enjoy the site, and please provide us with feedback on ways that we can improve %1$s.
--the %1$s staff.
'), forge_get_config ('forge_name')); site_user_footer(array()); diff --git a/gforge/www/account/login.php b/gforge/www/account/login.php index 5167a44cf0..eb82670bac 100644 --- a/gforge/www/account/login.php +++ b/gforge/www/account/login.php @@ -36,6 +36,7 @@ $return_to = getStringFromRequest('return_to'); $login = getStringFromRequest('login'); $form_loginname = getStringFromRequest('form_loginname'); $form_pw = getStringFromRequest('form_pw'); +$feedback = getStringFromRequest('feedback'); // // Validate return_to @@ -105,7 +106,7 @@ if ($login && !$success) { $feedback = sprintf(_('Your account is currently pending your email confirmation. Visiting the link sent to you in this email will activate your account.
If you need this email resent, please click below and a confirmation email will be sent to the email address you provided in registration.
'), util_make_url ("/account/pending-resend.php?form_user=".htmlspecialchars($form_loginname)));
} else {
if ($userstatus == "D") {
- $feedback .= '
'.sprintf(_('
Your %1$s account has been removed by %1$s staff. This may occur for two reasons, either 1) you requested that your account be removed; or 2) some action has been performed using your account which has been seen as objectionable (i.e. you have breached the terms of service for use of your account) and your account has been revoked for administrative reasons. Should you have questions or concerns regarding this matter, please log a support request.
Thank you,
%1$s Staff
Your %1$s account has been removed by %1$s staff. This may occur for two reasons, either 1) you requested that your account be removed; or 2) some action has been performed using your account which has been seen as objectionable (i.e. you have breached the terms of service for use of your account) and your account has been revoked for administrative reasons. Should you have questions or concerns regarding this matter, please log a support request.
Thank you,
%1$s Staff
Congratulations. You have registered on %1$s.
You are now being sent a confirmation email to verify your email address. Visiting the link sent to you in this email will activate your account.'), $sys_name); + printf(_('
Congratulations. You have registered on %1$s.
You are now being sent a confirmation email to verify your email address. Visiting the link sent to you in this email will activate your account.'), forge_get_config ('forge_name')); echo $HTML->footer(array()); exit; } else { @@ -93,13 +93,13 @@ $HTML->header(array('title'=>'User Account Registration')); if (isset($feedback)) { - print "
$feedback";
+ print "
-
+
-
+
-
+
@@ -157,15 +157,17 @@ if ($GLOBALS['sys_require_unique_email']) {
-@*
This email address will be verified before account activation. You will receive a mail forward account at <loginname@%1$s> that will forward to this address.'), $GLOBALS['sys_users_host']); ?>
-
+@\n";
+ printf(_('This email address will be verified before account activation. You will receive a mail forward account at <loginname@%1$s> that will forward to this address.'), $GLOBALS['sys_users_host']); ?>
+
+ htmlspecialchars($jabber_address) .'" />
'._('Send auto-generated notices only to my Jabber address').'.';
}
@@ -173,19 +175,19 @@ if ($sys_use_jabber) {
-
+
-
+
-
+
-
+
diff --git a/gforge/www/account/unsubscribe.php b/gforge/www/account/unsubscribe.php index dc6b5287f7..808ac6dd3e 100644 --- a/gforge/www/account/unsubscribe.php +++ b/gforge/www/account/unsubscribe.php @@ -64,9 +64,9 @@ site_header(array('title'=>_("Unsubscription Complete"))); if ($all) { - $what = sprintf(_('You have been unsubscribed from all %1$s mailings and notifications. In case you will want to re-activate your subscriptions in the future, login and visit your Account Maintenance page.'), $GLOBALS['sys_name']); + $what = sprintf(_('You have been unsubscribed from all %1$s mailings and notifications. In case you will want to re-activate your subscriptions in the future, login and visit your Account Maintenance page.'), forge_get_config ('forge_name')); } else { - $what = sprintf(_('You have been unsubscribed from %1$s site mailings. In case you will want to re-activate your subscriptions in the future, login and visit your Account Maintenance page.'), $GLOBALS['sys_name']); + $what = sprintf(_('You have been unsubscribed from %1$s site mailings. In case you will want to re-activate your subscriptions in the future, login and visit your Account Maintenance page.'), forge_get_config ('forge_name')); } ?> diff --git a/gforge/www/admin/admin_table.php b/gforge/www/admin/admin_table.php index 7d4e5d0357..9a4f709cb3 100644 --- a/gforge/www/admin/admin_table.php +++ b/gforge/www/admin/admin_table.php @@ -163,7 +163,9 @@ function admin_table_confirmdelete($table, $unit, $primary_key, $id) { */ function admin_table_delete($table, $unit, $primary_key, $id) { if (db_query_params("DELETE FROM $table WHERE $primary_key=$1", array($id))) { + print('
'); printf(_('%1$s successfully deleted.'), ucfirst(getUnitLabel($unit))); + print('
'); } else { echo db_error(); } @@ -333,9 +335,8 @@ session_require(array('group'=>'1','admin_flags'=>'A')); $HTML->header(array('title'=>sprintf(_('Edit the %1$ss Table'), ucwords(getUnitLabel($unit))))); -echo ''.util_make_link ('/admin/',_('Site Admin Home')).'
-'; +echo '
'.util_make_link ('/admin/',_('Site Admin Home')).'
'; // $table, $unit and $primary_key are variables passed from the parent scripts $id = getStringFromRequest('id'); diff --git a/gforge/www/admin/admin_utils.php b/gforge/www/admin/admin_utils.php index 836f1c5c95..4d2b293548 100644 --- a/gforge/www/admin/admin_utils.php +++ b/gforge/www/admin/admin_utils.php @@ -22,18 +22,12 @@ */ function site_admin_header($params) { - global $feedback,$HTML; - if (!isset($feedback)) { - $feedback = ''; - } session_require(array('group'=>'1','admin_flags'=>'A')); - $HTML->header($params); - echo html_feedback_top($feedback); + site_header($params); } -function site_admin_footer($vals=0) { - GLOBAL $HTML; - $HTML->footer(array()); +function site_admin_footer($params) { + site_footer($params); } // Local Variables: diff --git a/gforge/www/admin/configman.php b/gforge/www/admin/configman.php index 9cd6a527f1..965b966da4 100644 --- a/gforge/www/admin/configman.php +++ b/gforge/www/admin/configman.php @@ -183,7 +183,7 @@ function updateVars($vars,$filepath) { // Open readonly but tell you can't write $handle = fopen($filepath,'r'); $has_write = false; - $feedback .= sprintf(_("Could not open %s file for read/write. Check the permissions for apache."), $filepath).'+
- -
+ -- -
+- -
+- -
+ -+
' ._('Subject').':'.utils_requiredField().'
-
'._('Text of Message'). ':'.utils_requiredField(). _('(will be appended with unsubscription information, if applicable)').'