You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(34) |
Aug
(215) |
Sep
(180) |
Oct
(135) |
Nov
(105) |
Dec
(81) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(76) |
Feb
(22) |
Mar
(154) |
Apr
(149) |
May
(128) |
Jun
(94) |
Jul
(14) |
Aug
(24) |
Sep
(77) |
Oct
(52) |
Nov
(22) |
Dec
(6) |
| 2003 |
Jan
(4) |
Feb
(10) |
Mar
(6) |
Apr
(29) |
May
(10) |
Jun
(37) |
Jul
(39) |
Aug
(13) |
Sep
(23) |
Oct
(3) |
Nov
(7) |
Dec
(2) |
| 2004 |
Jan
|
Feb
(10) |
Mar
(4) |
Apr
|
May
(35) |
Jun
(4) |
Jul
(17) |
Aug
(6) |
Sep
(14) |
Oct
(18) |
Nov
(2) |
Dec
(14) |
| 2005 |
Jan
(9) |
Feb
(30) |
Mar
(6) |
Apr
|
May
(38) |
Jun
(23) |
Jul
(21) |
Aug
(76) |
Sep
(50) |
Oct
(51) |
Nov
(13) |
Dec
|
|
From: Benjamin C. <bc...@us...> - 2004-12-05 16:12:52
|
Update of /cvsroot/phpbt/phpbt/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8537 Modified Files: fr.php Log Message: Updated for 1.0 |
|
From: Benjamin C. <bc...@us...> - 2004-12-05 16:12:14
|
Update of /cvsroot/phpbt/phpbt/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8427 Modified Files: es.php Log Message: Updated for 1.0 Index: es.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/es.php,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- es.php 4 Jan 2003 20:19:08 -0000 1.8 +++ es.php 5 Dec 2004 16:12:02 -0000 1.9 @@ -1,291 +1,184 @@ <?php -// es.php - Spanish strings and titles -// Translation by Lucio F. Albenga <lfa...@ha...> -// ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group -// ------------------------------------------------------------------------ -// This file is part of phpBugTracker -// -// phpBugTracker is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// phpBugTracker is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with phpBugTracker; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// ------------------------------------------------------------------------ -// $Id$ - - -$STRING = array( - 'lang_charset' => 'iso8859-1', - 'nouser' => 'Ese usuario no existe', - 'dupeofself' => 'Un bug no puede ser un duplicado de si mismo', - 'nobug' => 'Ese bug no existe', - 'givesummary' => 'Por favor introduzca un resumen', - 'givedesc' => 'Por favor introduzca una descripción', - 'noprojects' => 'No se han encontrado proyectos', - 'totalbugs' => 'Bugs Totales', - 'giveemail' => 'Por favor introduzca un email válido', - 'givelogin' => 'Por favor introduzca un login', - 'loginused' => 'Ese login ya está siendo usado', - 'newacctsubject' => 'phpBugTracker Login', - 'newacctmessage' => "Su contraseña de phpBugTracker es %s", - 'nobugs' => 'No se han encontrado bugs', - 'givename' => 'Por favor introduzca un nombre', - 'edit' => 'Editar', - 'addnew' => 'Añadir nuevo', - 'nooses' => 'No se han encontrado SOs', - 'giveinitversion' => 'Por favor introduzca una versión inicial para el proyecto', - 'giveversion' => 'Por favor introduzca una versión', - 'noversions' => 'No se han encontrado versiones', - 'nocomponents' => 'No se han encontrado componentes', - 'nostatuses' => 'No se han encontrado estados', - 'noseverities' => 'No se han encontrado importancias', - 'givepassword' => 'Por favor introduzca una contraseña', - 'nousers' => 'No se han encontrado usuarios', - 'bugbadperm' => 'No puede cambiar este bug', - 'bugbadnum' => 'Ese bug no existe', - 'datecollision' => 'Alguien ha actualizado este bug desde que usted lo vió. La información del bug ha sido recargada con los últimos cambios.', - 'passwordmatch' => 'Esas contraseñas no funcionan -- vuelva a intentarlo', - 'nobughistory' => 'No hay histórico para ese bug', - 'logintomodify' => 'Debe estar autentificado para modificar este bug', - 'dupe_attachment' => 'Ese adjunto ya existe para este bug', - 'give_attachment' => 'Por favor especifique un archivo para subir', - 'no_attachment_save_path' => '¡No se encuentra donde guardar este archivo!', - 'attachment_path_not_writeable' => 'No se puede crear un archivo en el path de salvado', - 'attachment_move_error' => 'Ha habido un error al mover el archivo subido', - 'bad_attachment' => 'Ese adjunto no existe', - 'attachment_too_large' => 'El archivo que ha especificado es mayor de '.number_format(ATTACHMENT_MAX_SIZE).' bytes', - 'bad_permission' => 'No tiene permisos para esa función', - 'project_only_all_groups' => 'No puede seleccionar grupos específicos cuando está seleccionado "Todos los Grupos"', - 'previous_bug' => 'Anterior', - 'next_bug' => 'Siguiente', - 'already_voted' => 'Ya ha votado este bug', - 'too_many_votes' => 'Ha alcanzado el número máximo de votos por usuario', - 'no_votes' => 'No hay votos para este bug', - 'user_filter' => array( - 0 => 'Todos los usuarios', - 1 => 'Usuarios activados', - 2 => 'Usuarios desactivados'), - 'dupe_dependency' => 'La dependencia de ese bug ya ha sido añadida', - 'image_path_not_writeable' => 'El subdirectorio "jpgimages" no puede ser escrito por el proceso web, por lo que la imagen no puede ser renderizada', - 'password_changed' => 'Su contraseña ha sido cambiada', - 'prefs_changed' => 'Sus preferencias han sido cambiadas', - 'databaselist' => 'Lista de Bases de Datos', - 'database' => 'Base de Datos', - 'databases' => 'Bases de Datos', - 'name' => 'Nombre', - 'description' => 'Descripción', - 'sortorder' => 'Orden', - 'suredeletedb' => '¿Está seguro que desea borrar esta base de datos?', - 'suredeletesite' => '¿Está seguro que desea borrar este site?', - 'delete' => 'Borrar', - 'version' => 'Versión', - 'addnewsite' => 'Añadir nuevo Site', - 'sitelist' => 'Lista de sites', - 'sites' => 'Sites', - 'QUERY' => array( - 'opt_All' => 'Todos', - 'Project' => 'Proyecto', - 'Version' => 'Versión', - 'Component' => 'Componente', - 'Status' => 'Estado', - 'Resolution' => 'Resolución', - 'OpSys' => 'SisOp', - 'Priority' => 'Prioridad', - 'Severity' => 'Importancia', - 'Database' => 'Base de Datos', - 'ReportedOnSite' => 'Informado en Site', - 'Summary' => 'Resumen', - 'DescriptionEntry' => 'descripción', - 'SortBy' => 'Ordenar por', - 'SortBy_BugNumber' => 'Número de Bug', - 'SortBy_Severity' => 'Importancia', - 'SortBy_Reporter' => 'Informador', - 'SortBy_Priority' => 'Prioridad', - 'SortBy_Status' => 'Estado', - 'SortAsc' => 'Ascendente', - 'SortDesc' => 'Descendente', - 'SaveThisQueryAs' => 'Guardar esta búsqueda como', - 'ResetBackToDefaultQuery' => 'Volver a la búsqueda por defecto', - 'SubmitQuery' => 'Enviar búsqueda', - 'SavedQueries' => 'Búsquedas Guardadas', - 'GoToThe' => 'Ir a', - 'AdvancedQueryPage' => 'página de búsquedas avanzadas', - 'SimpleQueryPage' => 'página de búsquedas simples', - 'SureDeleteSavedQuery' => '¿Está seguro que desea borrar esta búsqueda?', - 'MatchingAs' => 'que coincida con', - 'MatchingAs_Regexp' => 'regexp', - 'MatchingAs_NotRegexp' => 'no regexp', - 'MatchingAs_Substring' => 'subcadena', - 'MatchingAs_Exact' => 'exacta', - 'eMail_Reporter' => 'Informador', - 'eMail_AssignedTo' => 'Asignada a' - ), - 'WRAP' => array( - 'FindBug' => 'Encontrar Bug', - 'Home' => 'Home', - 'AddNewBug' => 'Añadir un Bug', - 'QueryBugs' => 'Buscar Bugs', - 'ViewReports' => 'Ver Informes', - 'Documentation' => 'Leer Documentación', - 'AdminTools' => 'Herramientas de Administración', - 'CreateNewAccount' => 'Crear una nueva cuenta', - 'Email' => 'Email', - 'Login' => 'Login', - 'DoLogin' => 'Login', - 'BugsAssigned' => 'Bugs asignados a mi', - 'BugsReported' => 'Bugs informados por mi', - 'PersonalPage' => 'Página Personal', - 'Logout' => 'Logout', - 'EmailPassword' => 'Emailear Contraseña', - 'RememberMe' => 'Recordarme', - ), - 'BUGFORM' => array( - 'Project' => 'Proyecto', - 'Version' => 'Versión', - 'Summary' => 'Resumen', - 'Description' => 'Descripción', - 'Severity' => 'Importancia', - 'Priority' => 'Prioridad', - 'Site' => 'Site', - 'Database' => 'Base de Datos', - 'Component' => 'Componente', - 'OS' => 'SO', - 'AddAnother' => 'Añadir otro', - 'Submit' => 'Enviar' - ), - 'BUGDISPLAY' => array( - 'Reporter' => 'Informador', - 'ReturnTo' => 'Volver a', - 'BugList' => 'lista de bugs', - 'Project' => 'Proyecto', - 'Created' => 'Creado', - 'Version' => 'Versión', - 'ClosedInVersion' => 'Cerrado en Versión', - 'ToBeClosedInVersion' => 'Para cerrarse en Versión', - 'AssignedTo' => 'Asignado a', - 'AssignedToNobody' => 'Nadie', - 'BugDependency' => 'Dependencias', - 'AddDependency' => 'Añadir Dependencia', - 'RemoveDependency' => 'Eliminar Dependencia', - 'Summary' => 'Resumen', - 'Status' => 'Estado', - 'Description' => 'Descripción', - 'Severity' => 'Importancia', - 'Priority' => 'Prioridad', - 'Component' => 'Componente', - 'Resolution' => 'Resolución', - 'ResolutionNone' => 'Ninguna', - 'AddCC' => 'Añadir CC', - 'RemoveSelectedCC' => 'Eliminar CCs seleccionados', - 'AdditionalComments' => 'Comentarios Adicionales', - 'Attachments' => 'Adjuntos', - 'CreateAttachment' => 'Crear Adjunto', - 'SureDeleteAttachment' => '¿Está seguro que desea eliminar este adjunto?', - 'Name' => 'Nombre', - 'Size' => 'Tamaño', - 'Type' => 'Tipo', - 'Created' => 'Creado', - 'VoteForThisBug' => 'Vote por este bug', - 'ViewVotes' => 'Ver votos', - 'ForThisBug' => 'por este bug', - 'ViewBugActivity' => 'Ver actividad del bug', - 'PrintableView' => 'Vista Imprimible', - 'NoAttachments' => 'Sin adjuntos', - 'Comments' => 'Comentarios', - 'PostedBy' => 'Posteados Por', - 'Date' => 'Fecha', - 'DateOn' => 'On', - 'Submit' => 'Enviar', - 'Site' => 'Informado en Site', - 'Database' => 'Base de Datos', - 'OS' => 'SO', - 'ChooseOne' => 'Elija Uno' - ), - 'USER_PREF' => array( - 'ReceiveNotifications' => 'Recibir notificaciones de cambios en el bug via email', - 'ShowSavedQueries' => 'Mostrar búsquedas guardadas en la página de inicio', - 'ChangePassword' => 'Cambiar contraseña', - 'EnterNewPassword' => 'Por favor introduzca su contraseña dos veces debajo', - 'Password' => 'Contraseña', - 'Verify' => 'Verificar', - 'ChangePreferences' => 'CambiarPreferencias', - 'BugListColumns' => 'Columnas en Lista de Bugs', - 'ChooseFields' => 'Elija los campos que desea ver en la lista de bugs', - 'SureDeleteVote' => '¿Está seguro que desea eliminar este voto?', - 'Votes' => 'Votos', - 'Bug' => 'Bug', - 'When' => 'Cuándo', - 'ColumnPreferencesSaved' => 'Sus preferencias para la lista de bugs han sido guardadas' - ), - 'INDEX' => array( - 'FiveRecentlySubmitted' => 'Los cinco bugs enviados más recientes', - 'FiveRecentlyClosed' => 'Los cinco bugs cerrados más recientes', - 'QuickStats' => 'Estadísticas rápidas', - 'Status' => 'Estado', - 'NumberOfBugs' => '# bugs', - 'SavedQueries' => 'Búsquedas Guardadas' - ) -); - -// Page titles -$TITLE = array( - 'enterbug' => 'Enter a Bug', - 'editbug' => 'Editar Bug', - 'newaccount' => 'Crear una nueva cuenta', - 'bugquery' => 'Búsqueda de Bugs', - 'buglist' => 'Lista de Bugs', - 'addcomponent' => 'Añadir Componente', - 'editcomponent' => 'Editar Componente', - 'addproject' => 'Añadir Proyecto', - 'editproject' => 'Editar Proyecto', - 'addversion' => 'Añadir Versión', - 'editversion' => 'Editar Versión', - 'addsite' => 'Añadir Site', - 'editsite' => 'Editar Site', - 'project' => 'Proyectos', - 'os' => 'Sistemas Operativos', - 'resolution' => 'Resoluciones', - 'status' => 'Estados', - 'severity' => 'Importancias', - 'user' => 'Ususarios', - 'home' => 'Home', - 'reporting' => 'Informar', - 'group' => 'Grupos', - 'bugvotes' => 'Votos del Bug', - 'bughistory' => 'Histórico del Bug', - 'viewbug' => 'Ver Bug', - 'addattachment' => 'Añadir Adjunto', - 'accountcreated' => 'Cuenta Creada', - 'changessaved' => 'Cambios Guardados', - 'preferences' => 'Preferencias del Usuario', - 'usertools' => 'Herramientas del Usuario', - 'edituser' => 'Editar Usuario', - 'adduser' => 'Añadir Usuario', - 'editstatus' => 'Editar Estado', - 'addstatus' => 'Añadir Estado', - 'editseverity' => 'Editar Importancia', - 'addseverity' => 'Añadir Importancia', - 'editresolution' => 'Editar Resolución', - 'addresolution' => 'Añadir Resolución', - 'editos' => 'Editar Sistema Operativo', - 'addos' => 'Añadir Sistema Operativo', - 'editgroup' => 'Editar Grupo', - 'addgroup' => 'Añadir Grupo', - 'configuration' => 'Configuración', - 'adddatabase' => 'Añadir Base de Datos', - 'editdatabase' => 'Editar Base de Datos', - 'database' => 'Bases de Datos', - 'site' => 'Site' +$STRING = array ( + 'lang_charset' => 'iso8859-1', + 'That user does not exist' => 'Ese usuario no existe', + 'A bug can\'t be a duplicate of itself' => 'Un bug no puede ser un duplicado de si mismo', + 'That bug does not exist' => 'Ese bug no existe', + 'Please enter a summary' => 'Por favor introduzca un resumen', + 'Please enter a description' => 'Por favor introduzca una descripción', + 'No projects found' => 'No se han encontrado proyectos', + 'Total Bugs' => 'Bugs Totales', + 'Please enter a valid email address' => 'Por favor introduzca un email válido', + 'Please enter a login' => 'Por favor introduzca un login', + 'That login has already been used' => 'Ese login ya está siendo usado', + 'phpBugTracker Login' => 'phpBugTracker Login', + 'Your phpBugTracker password is %s' => 'Su contraseña de phpBugTracker es %s', + 'No bugs found' => 'No se han encontrado bugs', + 'Please enter a name' => 'Por favor introduzca un nombre', + 'Edit' => 'Editar', + 'Add new' => 'Añadir nuevo', + 'No OSes found' => 'No se han encontrado SOs', + 'Please enter an initial version for the project' => 'Por favor introduzca una versión inicial para el proyecto', + 'Please enter a version' => 'Por favor introduzca una versión', + 'No versions found' => 'No se han encontrado versiones', + 'No components found' => 'No se han encontrado componentes', + 'No statuses found' => 'No se han encontrado estados', + 'No severities found' => 'No se han encontrado importancias', + 'Please enter a password' => 'Por favor introduzca una contraseña', + 'No users found' => 'No se han encontrado usuarios', + 'You cannot change this bug' => 'No puede cambiar este bug', + 'Someone has updated this bug since you viewed it. The bug info has been reloaded with the latest changes.' => 'Alguien ha actualizado este bug desde que usted lo vió. La información del bug ha sido recargada con los últimos cambios.', + 'Those passwords don\'t match -- please try again' => 'Esas contraseñas no funcionan -- vuelva a intentarlo', + 'There is no history for that bug' => 'No hay histórico para ese bug', + 'You must be logged in to modify this bug' => 'Debe estar autentificado para modificar este bug', + 'That attachment already exists for this bug' => 'Ese adjunto ya existe para este bug', + 'Please specify a file to upload' => 'Por favor especifique un archivo para subir', + 'Couldn\'t find where to save the file!' => '¡No se encuentra donde guardar este archivo!', + 'Couldn\'t create a file in the save path' => 'No se puede crear un archivo en el path de salvado', + 'There was an error moving the uploaded file' => 'Ha habido un error al mover el archivo subido', + 'That attachment does not exist' => 'Ese adjunto no existe', + 'The file you specified is larger than 0 bytes' => 'El archivo que ha especificado es mayor de 0 bytes', + 'You do not have the permissions required for that function' => 'No tiene permisos para esa función', + 'You cannot choose specific groups when "All Groups" is chosen' => 'No puede seleccionar grupos específicos cuando está seleccionado "Todos los Grupos"', + 'Previous' => 'Anterior', + 'Next' => 'Siguiente', + 'You have already voted for this bug' => 'Ya ha votado este bug', + 'You have reached the maximum number of votes per user' => 'Ha alcanzado el número máximo de votos por usuario', + 'There are no votes for this bug' => 'No hay votos para este bug', + 0 => 'Todos los usuarios', + 'Active users' => 'Usuarios activados', + 'Inactive users' => 'Usuarios desactivados', + 'That bug dependency has already been added' => 'La dependencia de ese bug ya ha sido añadida', + 'The subdirectory "jpgimages" is not writeable by the web process, so the summary image can not be rendered' => 'El subdirectorio "jpgimages" no puede ser escrito por el proceso web, por lo que la imagen no puede ser renderizada', + 'Your password has been changed' => 'Su contraseña ha sido cambiada', + 'Your preferences have been changed' => 'Sus preferencias han sido cambiadas', + 'Database list' => 'Lista de Bases de Datos', + 'Database' => 'Base de Datos', + 'Databases' => 'Bases de Datos', + 'Name' => 'Nombre', + 'Description' => 'Descripción', + 'Sort order' => 'Orden', + 'Are you sure to delete this database?' => '¿Está seguro que desea borrar esta base de datos?', + 'Are you sure to delete this site?' => '¿Está seguro que desea borrar este site?', + 'Delete' => 'Borrar', + 'Version' => 'Versión', + 'Add new Site' => 'Añadir nuevo Site', + 'Site list' => 'Lista de sites', + 'Sites' => 'Site', + 'All' => 'Todos', + 'Project' => 'Proyecto', + 'Component' => 'Componente', + 'Status' => 'Estado', + 'Resolution' => 'Resolución', + 'OpSys' => 'SisOp', + 'Priority' => 'Prioridad', + 'Severity' => 'Importancia', + 'Reported on Site' => 'Informado en Site', + 'Summary' => 'Resumen', + 'Description / Comment' => 'descripción', + 'Sort By' => 'Ordenar por', + 'Bug Number' => 'Número de Bug', + 'Reporter' => 'Informador', + 'Ascending' => 'Ascendente', + 'Descending' => 'Descendente', + 'Save this query as' => 'Guardar esta búsqueda como', + 'Reset back to default query' => 'Volver a la búsqueda por defecto', + 'Submit query' => 'Enviar búsqueda', + 'Saved Queries' => 'Búsquedas Guardadas', + 'Go to the' => 'Ir a', + 'advanced query page' => 'página de búsquedas avanzadas', + 'simple query page' => 'página de búsquedas simples', + 'Are you sure you want to delete this saved query?' => '¿Está seguro que desea borrar esta búsqueda?', + 'matching as' => 'que coincida con', + 'regexp' => 'regexp', + 'not regexp' => 'no regexp', + 'substring' => 'subcadena', + 'exact' => 'exacta', + 'Assigned To' => 'Asignada a', + 'Find Bug' => 'Encontrar Bug', + 'Home' => 'Home', + 'Add a new Bug' => 'Añadir un Bug', + 'Query Bugs' => 'Buscar Bugs', + 'View Reports' => 'Ver Informes', + 'Read Documentation' => 'Leer Documentación', + 'Admin Tools' => 'Herramientas de Administración', + 'Create a new Account' => 'Crear una nueva cuenta', + 'Email' => 'Email', + 'Login' => 'Login', + 'Bugs assigned to me' => 'Bugs asignados a mi', + 'Bugs reported by me' => 'Bugs informados por mi', + 'Personal Page' => 'Página Personal', + 'Logout' => 'Logout', + 'Email Password' => 'Emailear Contraseña', + 'Remember me' => 'Recordarme', + 'Site' => 'Informado en Site', + 'OS' => 'SO', + 'Add another' => 'Añadir otro', + 'Submit' => 'Enviar', + '' => 'Elija Uno', + 'Receive notifications of bug changes via email' => 'Recibir notificaciones de cambios en el bug via email', + 'Show saved queries on the homepage' => 'Mostrar búsquedas guardadas en la página de inicio', + 'Change password' => 'Cambiar contraseña', + 'Please enter your new password twice below' => 'Por favor introduzca su contraseña dos veces debajo', + 'Password' => 'Contraseña', + 'Verify' => 'Verificar', + 'ChangePreferences' => 'CambiarPreferencias', + 'Bug List Columns' => 'Columnas en Lista de Bugs', + 'Choose the fields you want to see in the bug list' => 'Elija los campos que desea ver en la lista de bugs', + 'Are you sure you want to delete this vote?' => '¿Está seguro que desea eliminar este voto?', + 'Votes' => 'Votos', + 'Bug' => 'Bug', + 'When' => 'Cuándo', + 'Your bug list column preferences have been saved' => 'Sus preferencias para la lista de bugs han sido guardadas', + 'Five most recently submitted bugs' => 'Los cinco bugs enviados más recientes', + 'Five most recently closed bugs' => 'Los cinco bugs cerrados más recientes', + 'Quick stats' => 'Estadísticas rápidas', + '# bugs' => '# bugs', + 'Enter a Bug' => 'Enter a Bug', + 'Edit Bug' => 'Editar Bug', + 'Create a new account' => 'Crear una nueva cuenta', + 'Bug Query' => 'Búsqueda de Bugs', + 'Bug List' => 'Lista de Bugs', + 'Add Component' => 'Añadir Componente', + 'Edit Component' => 'Editar Componente', + 'Add Project' => 'Añadir Proyecto', + 'Edit Project' => 'Editar Proyecto', + 'Add Version' => 'Añadir Versión', + 'Edit Version' => 'Editar Versión', + 'Add Site' => 'Añadir Site', + 'Edit Site' => 'Editar Site', + 'Projects' => 'Proyectos', + 'Operating Systems' => 'Sistemas Operativos', + 'Resolutions' => 'Resoluciones', + 'Statuses' => 'Estados', + 'Severities' => 'Importancias', + 'Users' => 'Ususarios', + 'Reporting' => 'Informar', + 'Groups' => 'Grupos', + 'Bug Votes' => 'Votos del Bug', + 'Bug History' => 'Histórico del Bug', + 'View Bug' => 'Ver Bug', + 'Add Attachment' => 'Añadir Adjunto', + 'Account Created' => 'Cuenta Creada', + 'Changes Saved' => 'Cambios Guardados', + 'User Preferences' => 'Preferencias del Usuario', + 'User Tools' => 'Herramientas del Usuario', + 'Edit User' => 'Editar Usuario', + 'Add User' => 'Añadir Usuario', + 'Edit Status' => 'Editar Estado', + 'Add Status' => 'Añadir Estado', + 'Edit Severity' => 'Editar Importancia', + 'Add Severity' => 'Añadir Importancia', + 'Edit Resolution' => 'Editar Resolución', + 'Add Resolution' => 'Añadir Resolución', + 'Edit Operating System' => 'Editar Sistema Operativo', + 'Add Operating System' => 'Añadir Sistema Operativo', + 'Edit Group' => 'Editar Grupo', + 'Add Group' => 'Añadir Grupo', + 'Configuration' => 'Configuración', + 'Add Database' => 'Añadir Base de Datos', + 'Edit Database' => 'Editar Base de Datos', ); -?> +?> \ No newline at end of file |
|
From: Benjamin C. <bc...@us...> - 2004-12-05 16:09:55
|
Update of /cvsroot/phpbt/phpbt/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8022 Modified Files: Tag: htmltemplates es.php Log Message: Updated for 1.0 Index: es.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/es.php,v retrieving revision 1.8 retrieving revision 1.8.4.1 diff -u -r1.8 -r1.8.4.1 --- es.php 4 Jan 2003 20:19:08 -0000 1.8 +++ es.php 5 Dec 2004 16:09:45 -0000 1.8.4.1 @@ -1,291 +1,184 @@ <?php -// es.php - Spanish strings and titles -// Translation by Lucio F. Albenga <lfa...@ha...> -// ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group -// ------------------------------------------------------------------------ -// This file is part of phpBugTracker -// -// phpBugTracker is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// phpBugTracker is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with phpBugTracker; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// ------------------------------------------------------------------------ -// $Id$ - - -$STRING = array( - 'lang_charset' => 'iso8859-1', - 'nouser' => 'Ese usuario no existe', - 'dupeofself' => 'Un bug no puede ser un duplicado de si mismo', - 'nobug' => 'Ese bug no existe', - 'givesummary' => 'Por favor introduzca un resumen', - 'givedesc' => 'Por favor introduzca una descripción', - 'noprojects' => 'No se han encontrado proyectos', - 'totalbugs' => 'Bugs Totales', - 'giveemail' => 'Por favor introduzca un email válido', - 'givelogin' => 'Por favor introduzca un login', - 'loginused' => 'Ese login ya está siendo usado', - 'newacctsubject' => 'phpBugTracker Login', - 'newacctmessage' => "Su contraseña de phpBugTracker es %s", - 'nobugs' => 'No se han encontrado bugs', - 'givename' => 'Por favor introduzca un nombre', - 'edit' => 'Editar', - 'addnew' => 'Añadir nuevo', - 'nooses' => 'No se han encontrado SOs', - 'giveinitversion' => 'Por favor introduzca una versión inicial para el proyecto', - 'giveversion' => 'Por favor introduzca una versión', - 'noversions' => 'No se han encontrado versiones', - 'nocomponents' => 'No se han encontrado componentes', - 'nostatuses' => 'No se han encontrado estados', - 'noseverities' => 'No se han encontrado importancias', - 'givepassword' => 'Por favor introduzca una contraseña', - 'nousers' => 'No se han encontrado usuarios', - 'bugbadperm' => 'No puede cambiar este bug', - 'bugbadnum' => 'Ese bug no existe', - 'datecollision' => 'Alguien ha actualizado este bug desde que usted lo vió. La información del bug ha sido recargada con los últimos cambios.', - 'passwordmatch' => 'Esas contraseñas no funcionan -- vuelva a intentarlo', - 'nobughistory' => 'No hay histórico para ese bug', - 'logintomodify' => 'Debe estar autentificado para modificar este bug', - 'dupe_attachment' => 'Ese adjunto ya existe para este bug', - 'give_attachment' => 'Por favor especifique un archivo para subir', - 'no_attachment_save_path' => '¡No se encuentra donde guardar este archivo!', - 'attachment_path_not_writeable' => 'No se puede crear un archivo en el path de salvado', - 'attachment_move_error' => 'Ha habido un error al mover el archivo subido', - 'bad_attachment' => 'Ese adjunto no existe', - 'attachment_too_large' => 'El archivo que ha especificado es mayor de '.number_format(ATTACHMENT_MAX_SIZE).' bytes', - 'bad_permission' => 'No tiene permisos para esa función', - 'project_only_all_groups' => 'No puede seleccionar grupos específicos cuando está seleccionado "Todos los Grupos"', - 'previous_bug' => 'Anterior', - 'next_bug' => 'Siguiente', - 'already_voted' => 'Ya ha votado este bug', - 'too_many_votes' => 'Ha alcanzado el número máximo de votos por usuario', - 'no_votes' => 'No hay votos para este bug', - 'user_filter' => array( - 0 => 'Todos los usuarios', - 1 => 'Usuarios activados', - 2 => 'Usuarios desactivados'), - 'dupe_dependency' => 'La dependencia de ese bug ya ha sido añadida', - 'image_path_not_writeable' => 'El subdirectorio "jpgimages" no puede ser escrito por el proceso web, por lo que la imagen no puede ser renderizada', - 'password_changed' => 'Su contraseña ha sido cambiada', - 'prefs_changed' => 'Sus preferencias han sido cambiadas', - 'databaselist' => 'Lista de Bases de Datos', - 'database' => 'Base de Datos', - 'databases' => 'Bases de Datos', - 'name' => 'Nombre', - 'description' => 'Descripción', - 'sortorder' => 'Orden', - 'suredeletedb' => '¿Está seguro que desea borrar esta base de datos?', - 'suredeletesite' => '¿Está seguro que desea borrar este site?', - 'delete' => 'Borrar', - 'version' => 'Versión', - 'addnewsite' => 'Añadir nuevo Site', - 'sitelist' => 'Lista de sites', - 'sites' => 'Sites', - 'QUERY' => array( - 'opt_All' => 'Todos', - 'Project' => 'Proyecto', - 'Version' => 'Versión', - 'Component' => 'Componente', - 'Status' => 'Estado', - 'Resolution' => 'Resolución', - 'OpSys' => 'SisOp', - 'Priority' => 'Prioridad', - 'Severity' => 'Importancia', - 'Database' => 'Base de Datos', - 'ReportedOnSite' => 'Informado en Site', - 'Summary' => 'Resumen', - 'DescriptionEntry' => 'descripción', - 'SortBy' => 'Ordenar por', - 'SortBy_BugNumber' => 'Número de Bug', - 'SortBy_Severity' => 'Importancia', - 'SortBy_Reporter' => 'Informador', - 'SortBy_Priority' => 'Prioridad', - 'SortBy_Status' => 'Estado', - 'SortAsc' => 'Ascendente', - 'SortDesc' => 'Descendente', - 'SaveThisQueryAs' => 'Guardar esta búsqueda como', - 'ResetBackToDefaultQuery' => 'Volver a la búsqueda por defecto', - 'SubmitQuery' => 'Enviar búsqueda', - 'SavedQueries' => 'Búsquedas Guardadas', - 'GoToThe' => 'Ir a', - 'AdvancedQueryPage' => 'página de búsquedas avanzadas', - 'SimpleQueryPage' => 'página de búsquedas simples', - 'SureDeleteSavedQuery' => '¿Está seguro que desea borrar esta búsqueda?', - 'MatchingAs' => 'que coincida con', - 'MatchingAs_Regexp' => 'regexp', - 'MatchingAs_NotRegexp' => 'no regexp', - 'MatchingAs_Substring' => 'subcadena', - 'MatchingAs_Exact' => 'exacta', - 'eMail_Reporter' => 'Informador', - 'eMail_AssignedTo' => 'Asignada a' - ), - 'WRAP' => array( - 'FindBug' => 'Encontrar Bug', - 'Home' => 'Home', - 'AddNewBug' => 'Añadir un Bug', - 'QueryBugs' => 'Buscar Bugs', - 'ViewReports' => 'Ver Informes', - 'Documentation' => 'Leer Documentación', - 'AdminTools' => 'Herramientas de Administración', - 'CreateNewAccount' => 'Crear una nueva cuenta', - 'Email' => 'Email', - 'Login' => 'Login', - 'DoLogin' => 'Login', - 'BugsAssigned' => 'Bugs asignados a mi', - 'BugsReported' => 'Bugs informados por mi', - 'PersonalPage' => 'Página Personal', - 'Logout' => 'Logout', - 'EmailPassword' => 'Emailear Contraseña', - 'RememberMe' => 'Recordarme', - ), - 'BUGFORM' => array( - 'Project' => 'Proyecto', - 'Version' => 'Versión', - 'Summary' => 'Resumen', - 'Description' => 'Descripción', - 'Severity' => 'Importancia', - 'Priority' => 'Prioridad', - 'Site' => 'Site', - 'Database' => 'Base de Datos', - 'Component' => 'Componente', - 'OS' => 'SO', - 'AddAnother' => 'Añadir otro', - 'Submit' => 'Enviar' - ), - 'BUGDISPLAY' => array( - 'Reporter' => 'Informador', - 'ReturnTo' => 'Volver a', - 'BugList' => 'lista de bugs', - 'Project' => 'Proyecto', - 'Created' => 'Creado', - 'Version' => 'Versión', - 'ClosedInVersion' => 'Cerrado en Versión', - 'ToBeClosedInVersion' => 'Para cerrarse en Versión', - 'AssignedTo' => 'Asignado a', - 'AssignedToNobody' => 'Nadie', - 'BugDependency' => 'Dependencias', - 'AddDependency' => 'Añadir Dependencia', - 'RemoveDependency' => 'Eliminar Dependencia', - 'Summary' => 'Resumen', - 'Status' => 'Estado', - 'Description' => 'Descripción', - 'Severity' => 'Importancia', - 'Priority' => 'Prioridad', - 'Component' => 'Componente', - 'Resolution' => 'Resolución', - 'ResolutionNone' => 'Ninguna', - 'AddCC' => 'Añadir CC', - 'RemoveSelectedCC' => 'Eliminar CCs seleccionados', - 'AdditionalComments' => 'Comentarios Adicionales', - 'Attachments' => 'Adjuntos', - 'CreateAttachment' => 'Crear Adjunto', - 'SureDeleteAttachment' => '¿Está seguro que desea eliminar este adjunto?', - 'Name' => 'Nombre', - 'Size' => 'Tamaño', - 'Type' => 'Tipo', - 'Created' => 'Creado', - 'VoteForThisBug' => 'Vote por este bug', - 'ViewVotes' => 'Ver votos', - 'ForThisBug' => 'por este bug', - 'ViewBugActivity' => 'Ver actividad del bug', - 'PrintableView' => 'Vista Imprimible', - 'NoAttachments' => 'Sin adjuntos', - 'Comments' => 'Comentarios', - 'PostedBy' => 'Posteados Por', - 'Date' => 'Fecha', - 'DateOn' => 'On', - 'Submit' => 'Enviar', - 'Site' => 'Informado en Site', - 'Database' => 'Base de Datos', - 'OS' => 'SO', - 'ChooseOne' => 'Elija Uno' - ), - 'USER_PREF' => array( - 'ReceiveNotifications' => 'Recibir notificaciones de cambios en el bug via email', - 'ShowSavedQueries' => 'Mostrar búsquedas guardadas en la página de inicio', - 'ChangePassword' => 'Cambiar contraseña', - 'EnterNewPassword' => 'Por favor introduzca su contraseña dos veces debajo', - 'Password' => 'Contraseña', - 'Verify' => 'Verificar', - 'ChangePreferences' => 'CambiarPreferencias', - 'BugListColumns' => 'Columnas en Lista de Bugs', - 'ChooseFields' => 'Elija los campos que desea ver en la lista de bugs', - 'SureDeleteVote' => '¿Está seguro que desea eliminar este voto?', - 'Votes' => 'Votos', - 'Bug' => 'Bug', - 'When' => 'Cuándo', - 'ColumnPreferencesSaved' => 'Sus preferencias para la lista de bugs han sido guardadas' - ), - 'INDEX' => array( - 'FiveRecentlySubmitted' => 'Los cinco bugs enviados más recientes', - 'FiveRecentlyClosed' => 'Los cinco bugs cerrados más recientes', - 'QuickStats' => 'Estadísticas rápidas', - 'Status' => 'Estado', - 'NumberOfBugs' => '# bugs', - 'SavedQueries' => 'Búsquedas Guardadas' - ) -); - -// Page titles -$TITLE = array( - 'enterbug' => 'Enter a Bug', - 'editbug' => 'Editar Bug', - 'newaccount' => 'Crear una nueva cuenta', - 'bugquery' => 'Búsqueda de Bugs', - 'buglist' => 'Lista de Bugs', - 'addcomponent' => 'Añadir Componente', - 'editcomponent' => 'Editar Componente', - 'addproject' => 'Añadir Proyecto', - 'editproject' => 'Editar Proyecto', - 'addversion' => 'Añadir Versión', - 'editversion' => 'Editar Versión', - 'addsite' => 'Añadir Site', - 'editsite' => 'Editar Site', - 'project' => 'Proyectos', - 'os' => 'Sistemas Operativos', - 'resolution' => 'Resoluciones', - 'status' => 'Estados', - 'severity' => 'Importancias', - 'user' => 'Ususarios', - 'home' => 'Home', - 'reporting' => 'Informar', - 'group' => 'Grupos', - 'bugvotes' => 'Votos del Bug', - 'bughistory' => 'Histórico del Bug', - 'viewbug' => 'Ver Bug', - 'addattachment' => 'Añadir Adjunto', - 'accountcreated' => 'Cuenta Creada', - 'changessaved' => 'Cambios Guardados', - 'preferences' => 'Preferencias del Usuario', - 'usertools' => 'Herramientas del Usuario', - 'edituser' => 'Editar Usuario', - 'adduser' => 'Añadir Usuario', - 'editstatus' => 'Editar Estado', - 'addstatus' => 'Añadir Estado', - 'editseverity' => 'Editar Importancia', - 'addseverity' => 'Añadir Importancia', - 'editresolution' => 'Editar Resolución', - 'addresolution' => 'Añadir Resolución', - 'editos' => 'Editar Sistema Operativo', - 'addos' => 'Añadir Sistema Operativo', - 'editgroup' => 'Editar Grupo', - 'addgroup' => 'Añadir Grupo', - 'configuration' => 'Configuración', - 'adddatabase' => 'Añadir Base de Datos', - 'editdatabase' => 'Editar Base de Datos', - 'database' => 'Bases de Datos', - 'site' => 'Site' +$STRING = array ( + 'lang_charset' => 'iso8859-1', + 'That user does not exist' => 'Ese usuario no existe', + 'A bug can\'t be a duplicate of itself' => 'Un bug no puede ser un duplicado de si mismo', + 'That bug does not exist' => 'Ese bug no existe', + 'Please enter a summary' => 'Por favor introduzca un resumen', + 'Please enter a description' => 'Por favor introduzca una descripción', + 'No projects found' => 'No se han encontrado proyectos', + 'Total Bugs' => 'Bugs Totales', + 'Please enter a valid email address' => 'Por favor introduzca un email válido', + 'Please enter a login' => 'Por favor introduzca un login', + 'That login has already been used' => 'Ese login ya está siendo usado', + 'phpBugTracker Login' => 'phpBugTracker Login', + 'Your phpBugTracker password is %s' => 'Su contraseña de phpBugTracker es %s', + 'No bugs found' => 'No se han encontrado bugs', + 'Please enter a name' => 'Por favor introduzca un nombre', + 'Edit' => 'Editar', + 'Add new' => 'Añadir nuevo', + 'No OSes found' => 'No se han encontrado SOs', + 'Please enter an initial version for the project' => 'Por favor introduzca una versión inicial para el proyecto', + 'Please enter a version' => 'Por favor introduzca una versión', + 'No versions found' => 'No se han encontrado versiones', + 'No components found' => 'No se han encontrado componentes', + 'No statuses found' => 'No se han encontrado estados', + 'No severities found' => 'No se han encontrado importancias', + 'Please enter a password' => 'Por favor introduzca una contraseña', + 'No users found' => 'No se han encontrado usuarios', + 'You cannot change this bug' => 'No puede cambiar este bug', + 'Someone has updated this bug since you viewed it. The bug info has been reloaded with the latest changes.' => 'Alguien ha actualizado este bug desde que usted lo vió. La información del bug ha sido recargada con los últimos cambios.', + 'Those passwords don\'t match -- please try again' => 'Esas contraseñas no funcionan -- vuelva a intentarlo', + 'There is no history for that bug' => 'No hay histórico para ese bug', + 'You must be logged in to modify this bug' => 'Debe estar autentificado para modificar este bug', + 'That attachment already exists for this bug' => 'Ese adjunto ya existe para este bug', + 'Please specify a file to upload' => 'Por favor especifique un archivo para subir', + 'Couldn\'t find where to save the file!' => '¡No se encuentra donde guardar este archivo!', + 'Couldn\'t create a file in the save path' => 'No se puede crear un archivo en el path de salvado', + 'There was an error moving the uploaded file' => 'Ha habido un error al mover el archivo subido', + 'That attachment does not exist' => 'Ese adjunto no existe', + 'The file you specified is larger than 0 bytes' => 'El archivo que ha especificado es mayor de 0 bytes', + 'You do not have the permissions required for that function' => 'No tiene permisos para esa función', + 'You cannot choose specific groups when "All Groups" is chosen' => 'No puede seleccionar grupos específicos cuando está seleccionado "Todos los Grupos"', + 'Previous' => 'Anterior', + 'Next' => 'Siguiente', + 'You have already voted for this bug' => 'Ya ha votado este bug', + 'You have reached the maximum number of votes per user' => 'Ha alcanzado el número máximo de votos por usuario', + 'There are no votes for this bug' => 'No hay votos para este bug', + 0 => 'Todos los usuarios', + 'Active users' => 'Usuarios activados', + 'Inactive users' => 'Usuarios desactivados', + 'That bug dependency has already been added' => 'La dependencia de ese bug ya ha sido añadida', + 'The subdirectory "jpgimages" is not writeable by the web process, so the summary image can not be rendered' => 'El subdirectorio "jpgimages" no puede ser escrito por el proceso web, por lo que la imagen no puede ser renderizada', + 'Your password has been changed' => 'Su contraseña ha sido cambiada', + 'Your preferences have been changed' => 'Sus preferencias han sido cambiadas', + 'Database list' => 'Lista de Bases de Datos', + 'Database' => 'Base de Datos', + 'Databases' => 'Bases de Datos', + 'Name' => 'Nombre', + 'Description' => 'Descripción', + 'Sort order' => 'Orden', + 'Are you sure to delete this database?' => '¿Está seguro que desea borrar esta base de datos?', + 'Are you sure to delete this site?' => '¿Está seguro que desea borrar este site?', + 'Delete' => 'Borrar', + 'Version' => 'Versión', + 'Add new Site' => 'Añadir nuevo Site', + 'Site list' => 'Lista de sites', + 'Sites' => 'Site', + 'All' => 'Todos', + 'Project' => 'Proyecto', + 'Component' => 'Componente', + 'Status' => 'Estado', + 'Resolution' => 'Resolución', + 'OpSys' => 'SisOp', + 'Priority' => 'Prioridad', + 'Severity' => 'Importancia', + 'Reported on Site' => 'Informado en Site', + 'Summary' => 'Resumen', + 'Description / Comment' => 'descripción', + 'Sort By' => 'Ordenar por', + 'Bug Number' => 'Número de Bug', + 'Reporter' => 'Informador', + 'Ascending' => 'Ascendente', + 'Descending' => 'Descendente', + 'Save this query as' => 'Guardar esta búsqueda como', + 'Reset back to default query' => 'Volver a la búsqueda por defecto', + 'Submit query' => 'Enviar búsqueda', + 'Saved Queries' => 'Búsquedas Guardadas', + 'Go to the' => 'Ir a', + 'advanced query page' => 'página de búsquedas avanzadas', + 'simple query page' => 'página de búsquedas simples', + 'Are you sure you want to delete this saved query?' => '¿Está seguro que desea borrar esta búsqueda?', + 'matching as' => 'que coincida con', + 'regexp' => 'regexp', + 'not regexp' => 'no regexp', + 'substring' => 'subcadena', + 'exact' => 'exacta', + 'Assigned To' => 'Asignada a', + 'Find Bug' => 'Encontrar Bug', + 'Home' => 'Home', + 'Add a new Bug' => 'Añadir un Bug', + 'Query Bugs' => 'Buscar Bugs', + 'View Reports' => 'Ver Informes', + 'Read Documentation' => 'Leer Documentación', + 'Admin Tools' => 'Herramientas de Administración', + 'Create a new Account' => 'Crear una nueva cuenta', + 'Email' => 'Email', + 'Login' => 'Login', + 'Bugs assigned to me' => 'Bugs asignados a mi', + 'Bugs reported by me' => 'Bugs informados por mi', + 'Personal Page' => 'Página Personal', + 'Logout' => 'Logout', + 'Email Password' => 'Emailear Contraseña', + 'Remember me' => 'Recordarme', + 'Site' => 'Informado en Site', + 'OS' => 'SO', + 'Add another' => 'Añadir otro', + 'Submit' => 'Enviar', + '' => 'Elija Uno', + 'Receive notifications of bug changes via email' => 'Recibir notificaciones de cambios en el bug via email', + 'Show saved queries on the homepage' => 'Mostrar búsquedas guardadas en la página de inicio', + 'Change password' => 'Cambiar contraseña', + 'Please enter your new password twice below' => 'Por favor introduzca su contraseña dos veces debajo', + 'Password' => 'Contraseña', + 'Verify' => 'Verificar', + 'ChangePreferences' => 'CambiarPreferencias', + 'Bug List Columns' => 'Columnas en Lista de Bugs', + 'Choose the fields you want to see in the bug list' => 'Elija los campos que desea ver en la lista de bugs', + 'Are you sure you want to delete this vote?' => '¿Está seguro que desea eliminar este voto?', + 'Votes' => 'Votos', + 'Bug' => 'Bug', + 'When' => 'Cuándo', + 'Your bug list column preferences have been saved' => 'Sus preferencias para la lista de bugs han sido guardadas', + 'Five most recently submitted bugs' => 'Los cinco bugs enviados más recientes', + 'Five most recently closed bugs' => 'Los cinco bugs cerrados más recientes', + 'Quick stats' => 'Estadísticas rápidas', + '# bugs' => '# bugs', + 'Enter a Bug' => 'Enter a Bug', + 'Edit Bug' => 'Editar Bug', + 'Create a new account' => 'Crear una nueva cuenta', + 'Bug Query' => 'Búsqueda de Bugs', + 'Bug List' => 'Lista de Bugs', + 'Add Component' => 'Añadir Componente', + 'Edit Component' => 'Editar Componente', + 'Add Project' => 'Añadir Proyecto', + 'Edit Project' => 'Editar Proyecto', + 'Add Version' => 'Añadir Versión', + 'Edit Version' => 'Editar Versión', + 'Add Site' => 'Añadir Site', + 'Edit Site' => 'Editar Site', + 'Projects' => 'Proyectos', + 'Operating Systems' => 'Sistemas Operativos', + 'Resolutions' => 'Resoluciones', + 'Statuses' => 'Estados', + 'Severities' => 'Importancias', + 'Users' => 'Ususarios', + 'Reporting' => 'Informar', + 'Groups' => 'Grupos', + 'Bug Votes' => 'Votos del Bug', + 'Bug History' => 'Histórico del Bug', + 'View Bug' => 'Ver Bug', + 'Add Attachment' => 'Añadir Adjunto', + 'Account Created' => 'Cuenta Creada', + 'Changes Saved' => 'Cambios Guardados', + 'User Preferences' => 'Preferencias del Usuario', + 'User Tools' => 'Herramientas del Usuario', + 'Edit User' => 'Editar Usuario', + 'Add User' => 'Añadir Usuario', + 'Edit Status' => 'Editar Estado', + 'Add Status' => 'Añadir Estado', + 'Edit Severity' => 'Editar Importancia', + 'Add Severity' => 'Añadir Importancia', + 'Edit Resolution' => 'Editar Resolución', + 'Add Resolution' => 'Añadir Resolución', + 'Edit Operating System' => 'Editar Sistema Operativo', + 'Add Operating System' => 'Añadir Sistema Operativo', + 'Edit Group' => 'Editar Grupo', + 'Add Group' => 'Añadir Grupo', + 'Configuration' => 'Configuración', + 'Add Database' => 'Añadir Base de Datos', + 'Edit Database' => 'Editar Base de Datos', ); -?> +?> \ No newline at end of file |
|
From: Benjamin C. <bc...@us...> - 2004-12-05 15:45:17
|
Update of /cvsroot/phpbt/phpbt/templates/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3247/templates/default Modified Files: bugform.html Log Message: Fixes bug #1021813 - Max upload size not being displayed in bug creation form Index: bugform.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugform.html,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- bugform.html 25 Oct 2004 12:07:04 -0000 1.10 +++ bugform.html 5 Dec 2004 15:45:07 -0000 1.11 @@ -1,161 +1,163 @@ - <form action="bug.php" method="post" enctype="multipart/form-data"> - <table border="0"> - <?php if (!empty($error)) { ?> - <tr> - <td colspan="2" class="error"> - <?php echo $error ?> - </td> - </tr> - <?php } ?> - <tr> - <td align="right" valign="top"> - <?php echo translate("Project"); ?>: - </td> - <td> - <?php echo stripslashes($projectname) ?> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Reporter"); ?>: - </td> - <td> - <select name="reporter"> - <?php build_select('reporter', $reporter) ?> - </select> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Version"); ?>: - </td> - <td> - <select name="version"> - <?php build_select('version', $version, $project) ?> - </select> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Summary"); ?>: - </td> - <td> - <input type="text" size="50" maxlength="100" name="title" value="<?php echo htmlspecialchars(stripslashes($title)) ?>"> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Description"); ?>: - </td> - <td> + <form action="bug.php" method="post" enctype="multipart/form-data"> + <table border="0"> + <?php if (!empty($error)) { ?> + <tr> + <td colspan="2" class="error"> + <?php echo $error ?> + </td> + </tr> + <?php } ?> + <tr> + <td align="right" valign="top"> + <?php echo translate("Project"); ?>: + </td> + <td> + <?php echo stripslashes($projectname) ?> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Reporter"); ?>: + </td> + <td> + <select name="reporter"> + <?php build_select('reporter', $reporter) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Version"); ?>: + </td> + <td> + <select name="version"> + <?php build_select('version', $version, $project) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Summary"); ?>: + </td> + <td> + <input type="text" size="50" maxlength="100" name="title" value="<?php echo htmlspecialchars(stripslashes($title)) ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Description"); ?>: + </td> + <td> <textarea name="description" cols="50" rows="8" wrap="virtual"><?php echo htmlspecialchars(stripslashes($description)) ?></textarea> - </td> - </tr> - <tr> - <td align="right" valign="top"> - URL: - </td> - <td> - <input type="text" size="30" maxlength="255" name="url" value="<?php echo $url ?>"> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Severity"); ?>: - </td> - <td> - <select name="severity"> - <?php build_select('severity', $severity) ?> - </select> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Priority"); ?>: - </td> - <td> - <select name="priority"> - <?php build_select('priority', $priority) ?> - </select> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Component"); ?>: - </td> - <td> - <select name="component"> - <?php build_select('component', $component, $project) ?> - </select> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Database"); ?>: - </td> - <td> - <select name="database"> - <?php build_select('database', $database) ?> - </select> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Site"); ?>: - </td> - <td> - <select name="site"> - <?php build_select('site', $site) ?> - </select> - </td> - </tr> - <tr> - <td align="right" valign="top"> - <?php echo translate("Operating System"); ?>: - </td> - <td> - <select name="os"> - <?php build_select('os', $os) ?> - </select> - </td> - </tr> - <tr> - <td align="right"> - Attachment: - </td> - <td> - <table border="0" align="center"> - <tr> - <td colspan="2" align="center"> - Please choose a file to upload and enter a one-line description. - <br> - Maximum file size: <?php echo $max_size ?> bytes - <br> - <br> - </td> - </tr> - <tr> - <td> - File: - </td> - <td> - <input type="file" name="attachment"> - </td> - </tr> - <tr> - <td> - Description: - </td> - <td> - <input type="text" name="at_description" maxlength="255" value=""> - </td> - </tr> - </table> - </td> - </tr> - </table> - <input type="submit" name="submit" value="<?php echo translate("Submit"); ?>"> - <input type="hidden" name="bugid" value="0"> - <input type="hidden" name="project" value="<?php echo $project ?>"> - <input type="hidden" name="op" value="do"> - </form> + </td> + </tr> + <tr> + <td align="right" valign="top"> + URL: + </td> + <td> + <input type="text" size="30" maxlength="255" name="url" value="<?php echo $url ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Severity"); ?>: + </td> + <td> + <select name="severity"> + <?php build_select('severity', $severity) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Priority"); ?>: + </td> + <td> + <select name="priority"> + <?php build_select('priority', $priority) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Component"); ?>: + </td> + <td> + <select name="component"> + <?php build_select('component', $component, $project) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Database"); ?>: + </td> + <td> + <select name="database"> + <?php build_select('database', $database) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Site"); ?>: + </td> + <td> + <select name="site"> + <?php build_select('site', $site) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Operating System"); ?>: + </td> + <td> + <select name="os"> + <?php build_select('os', $os) ?> + </select> + </td> + </tr> + <tr> + <td align="right"> + + </td> + <td> + <table border="0" align="center"> + <tr> + <td colspan="2" align="center"> + If you wish to attach a file to this report, please choose a file to upload and enter a one-line description. + <br> + Maximum file size: <?php echo ini_get('upload_max_filesize') < ATTACHMENT_MAX_SIZE + ? number_format(ini_get('upload_max_filesize')) + : number_format(ATTACHMENT_MAX_SIZE) ?> bytes + <br> + <br> + </td> + </tr> + <tr> + <td> + File: + </td> + <td> + <input type="file" name="attachment"> + </td> + </tr> + <tr> + <td> + Description: + </td> + <td> + <input type="text" name="at_description" maxlength="255" value=""> + </td> + </tr> + </table> + </td> + </tr> + </table> + <input type="submit" name="submit" value="<?php echo translate("Submit"); ?>"> + <input type="hidden" name="bugid" value="0"> + <input type="hidden" name="project" value="<?php echo $project ?>"> + <input type="hidden" name="op" value="do"> + </form> |
|
From: Benjamin C. <php...@be...> - 2004-11-01 14:10:45
|
The latest release candidate for 1.0 has been released at sourceforge. This release includes many bug fixes that have been reported since rc4. I'm hoping this will be the last RC. |
|
From: Benjamin C. <bc...@us...> - 2004-11-01 14:00:41
|
Update of /cvsroot/phpbt/phpbt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26915 Modified Files: CHANGELOG Log Message: Updating for the next releae Index: CHANGELOG =================================================================== RCS file: /cvsroot/phpbt/phpbt/CHANGELOG,v retrieving revision 1.68 retrieving revision 1.69 diff -u -r1.68 -r1.69 --- CHANGELOG 25 Oct 2004 12:06:54 -0000 1.68 +++ CHANGELOG 1 Nov 2004 14:00:22 -0000 1.69 @@ -12,8 +12,8 @@ : Added tracking of changes in priority to the bug history. : You can now search on "additional comments" and "description". : Added the ability to download to Excel -: Fixed publicly-reported bugs -: Changed the localization from string arrays to gettext +: Fixed a number of bugs +: Dropped Smarty -- 0.9.1 -- 4 Jan 2003 : Fixed bugs with PostgreSQL |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:40:04
|
Update of /cvsroot/phpbt/phpbt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4862 Modified Files: attachment.php Log Message: Some changes from Mufasa Index: attachment.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/attachment.php,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- attachment.php 25 Oct 2004 12:06:54 -0000 1.22 +++ attachment.php 25 Oct 2004 12:39:56 -0000 1.23 @@ -75,7 +75,7 @@ // Check the upload size. If the size was greater than the max in // php.ini, the file won't even be set and will fail at the check above if ($_FILES['attachment']['size'] > ATTACHMENT_MAX_SIZE) { - show_attachment_form($bugid, printf(translate("The file you specified is larger than %d bytes"), number_format(ATTACHMENT_MAX_SIZE))); + show_attachment_form($bugid, printf(translate("The file you specified is larger than %s bytes"), number_format(ATTACHMENT_MAX_SIZE))); return; } @@ -175,9 +175,11 @@ @readfile($filename); exit; } -} else { +} elseif (isset($_GET['bugid'])) { $perm->check('Editbug'); show_attachment_form($_GET['bugid']); +} else { + show_text(translate("You tried to post an attachment that is larger than the server's maximum upload file size.")); } ?> |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:28:07
|
Update of /cvsroot/phpbt/phpbt/schemas In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1618/schemas Modified Files: pgsql.in Log Message: Create all the postgres sequences, as suggested by Erik Osterman Index: pgsql.in =================================================================== RCS file: /cvsroot/phpbt/phpbt/schemas/pgsql.in,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- pgsql.in 25 Oct 2004 12:07:02 -0000 1.45 +++ pgsql.in 25 Oct 2004 12:27:57 -0000 1.46 @@ -242,10 +242,10 @@ ); CREATE TABLE TBL_USER_PREF ( - user_id INT4 NOT NULL DEFAULT '0', - email_notices INT2 NOT NULL DEFAULT '1', - saved_queries INT2 NOT NULL DEFAULT '1', - def_results INT4 NOT NULL DEFAULT '20', + user_id INT4 NOT NULL DEFAULT '0', + email_notices INT2 NOT NULL DEFAULT '1', + saved_queries INT2 NOT NULL DEFAULT '1', + def_results INT4 NOT NULL DEFAULT '20', PRIMARY KEY (user_id) ); @@ -262,17 +262,17 @@ ); CREATE TABLE TBL_DATABASE ( - database_id INT2 NOT NULL DEFAULT '0', - database_name varchar(40) NOT NULL DEFAULT '', - sort_order INT2 NOT NULL DEFAULT '0', - PRIMARY KEY (database_id) + database_id INT2 NOT NULL DEFAULT '0', + database_name varchar(40) NOT NULL DEFAULT '', + sort_order INT2 NOT NULL DEFAULT '0', + PRIMARY KEY (database_id) ); CREATE TABLE TBL_SITE ( - site_id INT2 NOT NULL DEFAULT '0', - site_name varchar(50) NOT NULL DEFAULT '', - sort_order INT2 NOT NULL DEFAULT '0', - PRIMARY KEY (site_id) + site_id INT2 NOT NULL DEFAULT '0', + site_name varchar(50) NOT NULL DEFAULT '', + sort_order INT2 NOT NULL DEFAULT '0', + PRIMARY KEY (site_id) ); -- @@ -433,5 +433,32 @@ CREATE INDEX group_id_TBL_BUG_GROUP_index ON TBL_BUG_GROUP (group_id); +CREATE SEQUENCE phpbt_auth_user_seq; +CREATE SEQUENCE phpbt_auth_group_seq; +CREATE SEQUENCE phpbt_os_seq; +CREATE SEQUENCE phpbt_resolution_seq; +CREATE SEQUENCE phpbt_severity_seq; +CREATE SEQUENCE phpbt_status_seq; +CREATE SEQUENCE phpbt_database_server_seq; +CREATE SEQUENCE phpbt_site_seq; +CREATE SEQUENCE phpbt_version_seq; +CREATE SEQUENCE phpbt_component_seq; +CREATE SEQUENCE phpbt_bug_seq; +CREATE SEQUENCE phpbt_attachment_seq; +CREATE SEQUENCE phpbt_auth_perm_seq; +CREATE SEQUENCE phpbt_bug_cc_seq; +CREATE SEQUENCE phpbt_bug_dependency_seq; +CREATE SEQUENCE phpbt_bug_group_seq; +CREATE SEQUENCE phpbt_bug_history_seq; +CREATE SEQUENCE phpbt_bug_vote_seq; +CREATE SEQUENCE phpbt_comment_seq; +CREATE SEQUENCE phpbt_group_perm_seq; +CREATE SEQUENCE phpbt_project_seq; +CREATE SEQUENCE phpbt_project_group_seq; +CREATE SEQUENCE phpbt_saved_query_seq; +CREATE SEQUENCE phpbt_user_group_seq; +CREATE SEQUENCE phpbt_user_perm_seq; +CREATE SEQUENCE phpbt_user_pref_seq; + COMMIT; |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:15:59
|
Update of /cvsroot/phpbt/phpbt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30834 Modified Files: include.php Log Message: Clobber notices when rendering the template. Index: include.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/include.php,v retrieving revision 1.127 retrieving revision 1.128 diff -u -r1.127 -r1.128 --- include.php 25 Oct 2004 12:06:57 -0000 1.127 +++ include.php 25 Oct 2004 12:15:49 -0000 1.128 @@ -110,6 +110,7 @@ } function render($content_template, $page_title, $wrap_file = '', $nowrap = false) { + error_reporting(E_ALL ^ E_NOTICE); // Clobber notices in template output extract($this->vars); $path = defined('TEMPLATE_PATH') ? './templates/'.THEME.'/'.TEMPLATE_PATH.'/' |
Update of /cvsroot/phpbt/phpbt/templates/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/templates/default Modified Files: badgroup.html bugattachmentform.html bugdisplay-printable.html bugdisplay.html bugemail-newbug.txt bugemail.txt bugform.html bughistory.html buglist.html bugvotes.html changessaved.html error.html index.html install-complete.html install-dbfailure.html install-dbsuccess.html install.html login.html logout.html newaccount-disabled.html newaccount.html newaccountsuccess.html projectlist.html queryform-simple.html queryform.html report.html upgrade-finished.html upgrade.html user.html wrap-popup.html wrap.html Log Message: Merging in htmltemplates branch to HEAD Index: badgroup.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/badgroup.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- badgroup.html 24 May 2002 15:19:16 -0000 1.4 +++ badgroup.html 25 Oct 2004 12:07:03 -0000 1.5 @@ -2,7 +2,7 @@ <tr> <td align="center"> <br> - You must be a member of the {$group} group to use this page. + You must be a member of the <?php echo $group; ?> group to use this page. <br> <br> </td> Index: bugattachmentform.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugattachmentform.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- bugattachmentform.html 18 May 2002 03:00:50 -0000 1.7 +++ bugattachmentform.html 25 Oct 2004 12:07:04 -0000 1.8 @@ -1,21 +1,21 @@ -<form enctype="multipart/form-data" action="{$smarty.server.PHP_SELF}" method="post"> -<input type="hidden" name="bugid" value="{$bugid}"> -<input type="hidden" name="use_js" value="{$smarty.request.use_js}"> +<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> +<input type="hidden" name="bugid" value="<?php echo $bugid; ?>"> +<input type="hidden" name="use_js" value="<?php echo $_REQUEST['use_js']; ?>"> <table border="0" align="center"> <tr> <td colspan="2" align="center"> Please choose a file to upload and enter a one-line description. <br> - Maximum file size: {$max_size} bytes + Maximum file size: <?php echo $max_size; ?> bytes <br> <br> </td> </tr> - {if $error} + <?php if ($error) { ?> <tr> - <td colspan="2" class="error">{$error}</td> + <td colspan="2" class="error"><?php echo $error; ?></td> </tr> - {/if} + <?php } ?> <tr> <td> File: @@ -29,7 +29,7 @@ Description: </td> <td> - <input type="text" name="description" maxlength="255" value="{$description}"> + <input type="text" name="description" maxlength="255" value="<?php echo $description; ?>"> </td> </tr> <tr> Index: bugdisplay-printable.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugdisplay-printable.html,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- bugdisplay-printable.html 28 Oct 2002 22:06:02 -0000 1.11 +++ bugdisplay-printable.html 25 Oct 2004 12:07:04 -0000 1.12 @@ -1,73 +1,87 @@ <table border='0' width="100%" cellspacing="0" cellpadding="0"> <tr> <td> - Bug <b>#{$bug_id}</b> + <?php echo translate("Bug"); ?> <b>#<?php echo $bug_id; ?></b> </td> <td> - Created: <b>{$created_date|date:DATE_FORMAT}</b> + <?php echo translate("Created"); ?>: <b><?php echo date(DATE_FORMAT, $created_date); ?></b> </td> </tr> <tr> <td> - Reporter: <b>{$reporter|maskemail}</b> + <?php echo translate("Reporter"); ?>: <b><?php echo maskemail($reporter); ?></b> </td> - <td>Assigned To: <b>{$owner|maskemail}</td> + <td><?php echo translate("Assigned to"); ?>: <b><?php echo maskemail($owner); ?></td> </tr> <tr> - <td>Status: <b>{$status_name}</b></td> - <td>Resolution: <b>{$resolution_name}</b></td> + <td><?php echo translate("Status"); ?>: <b><?php echo $status_name; ?></b></td> + <td><?php echo translate("Resolution"); ?>: <b><?php echo $resolution_name; ?></b></td> </tr> <tr> <td> - Project: {$project_name} + <?php echo translate("Project"); ?>: <?php echo $project_name; ?> </td> <td> - Component: {$component_name} + <?php echo translate("Component"); ?>: <?php echo $component_name; ?> </td> </tr> <tr> <td> - Version: {$version_name} + <?php echo translate("Version"); ?>: <?php echo $version_name; ?> </td> <td> - Severity: {$severity_name} + <?php echo translate("Severity"); ?>: <?php echo $severity_name; ?> </td> </tr> <tr> <td> - Priority: {$priority} + <?php echo translate("Priority"); ?>: <?php echo $priority; ?> </td> <td colspan="2"> - OS: {$os_name} + <?php echo translate("Operating System"); ?>: <?php echo $os_name; ?> </td> </tr> </table> <br> -Summary: {$title|stripslashes} +<?php echo translate("Summary"); ?>: <?php echo stripslashes($title); ?> <br> -URL: {$url} +<?php echo translate("URL"); ?>: <?php echo $url; ?> <br> -Bug Dependencies: {$bug_dependencies} +<?php echo translate("Depends on bugs"); ?>: +<?php for ($i = 0, $count = count($bug_dependencies); $i < $count; $i++) { + printf('<a href="bug.php?op=show&bugid=%d" class="%s">#%d</a>%s', + $bug_dependencies[$i]['bug_id'], + ($bug_dependencies[$i]['bug_open'] ? 'open_bug_number' : 'closed_bug_number'), + $bug_dependencies[$i]['bug_id'], + ($i < $count - 1 ? ', ' : '')); +} ?> +<br> +<?php echo translate("Blocks bugs"); ?>: +<?php for ($i = 0, $count = count($bug_blocks); $i < $count; $i++) { + printf('<a href="bug.php?op=show&bugid=%d" class="%s">#%d</a>%s', + $bug_blocks[$i]['bug_id'], + ($bug_blocks[$i]['bug_open'] ? 'open_bug_number' : 'closed_bug_number'), + $bug_blocks[$i]['bug_id'], + ($i < $count - 1 ? ', ' : '')); +} ?> <br> -{$STRING.BUGDISPLAY.blocks}: {$rev_bug_dependencies} <br> -<br> -Comments: +<?php echo translate("Comments"); ?>: <hr size="1"> -<i>----- Posted by {$reporter|maskemail} at {$created_date|date:TIME_FORMAT} on {$created_date|date:DATE_FORMAT} -----</i> +<i>----- <?php echo translate("Posted by").' '.maskemail($reporter).' ('.date(TIME_FORMAT.' '.DATE_FORMAT, $created_date).')' ?>-----</i> <br> -{$description|stripslashes|format_comments|nl2br} +<?php echo stripslashes(format_comments(nl2br($description))) ?> <br> <br> -{section name=comment loop=$comments} -<i>----- Posted by {$comments[comment].login|maskemail} at {$comments[comment].created_date|date:TIME_FORMAT} on {$comments[comment].created_date|date:DATE_FORMAT}-----</i> +<?php for ($i = 0, $ccount = count($comments); $i < $ccount; $i++) { ?> +<i>----- <?php echo translate("Posted by").' '.maskemail($comments[$i]['login']).' ('.date(TIME_FORMAT.' '.DATE_FORMAT, $comments[$i]['created_date']).')'; ?>-----</i> <br> -{$comments[comment].comment_text|stripslashes|format_comments|nl2br} +<?php echo stripslashes(format_comments(nl2br($comments[$i]['comment_text']))); ?> <br> <br> -{/section} +<?php } ?> <br> -<a class="bugdisplaylinks" href="{$smarty.server.PHP_SELF}?op=show&bugid={$bug_id}">Back to bug #{$bug_id}</a> +<a class="bugdisplaylinks" href="<?php echo $_SERVER['PHP_SELF']; ?>?op=show&bugid=<?php echo $bug_id; ?>"><?php echo translate("Back to bug"); ?></a> <br> <br> Index: bugdisplay.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugdisplay.html,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- bugdisplay.html 9 Apr 2003 21:52:32 -0000 1.45 +++ bugdisplay.html 25 Oct 2004 12:07:04 -0000 1.46 @@ -1,9 +1,7 @@ -{if not $smarty.session.uid}{assign var=disabled value='onClick="alertNoChange();"'} -{else}{assign var=disabled value=""} -{/if} +<?php $disabled = empty($_SESSION['uid']) ? 'onClick="alertNoChange();"' : ''; ?> <script type="text/JavaScript"> <!-- - warningString = '{$STRING.logintomodify}'; + warningString = '<?php echo translate("You must login to modify this bug"); ?>'; warnedAlready = false; versions = new Array(); @@ -12,9 +10,8 @@ versions['All'] = new Array(new Array('','All')); closedversions['All'] = new Array(new Array('','All')); components['All'] = new Array(new Array('','All')); - {project_js no_all=true} + <?php build_project_js(true); ?> - {literal} function updateMenus(f) { sel = f.project_id[f.project_id.selectedIndex].text; f.version_id.length = versions[sel].length; @@ -57,123 +54,141 @@ warnedAlready = true; } } - {/literal} //--> </script> <form action="bug.php" method="post"> <input type="hidden" name="op" value="update"> - <input type="hidden" name="bugid" value="{$bug_id}"> - <input type="hidden" name="projectid" value="{$project_id}"> - <input type="hidden" name="last_modified_date" value="{$last_modified_date}"> - <input type="hidden" name="pos" value="{$smarty.request.pos}"> + <input type="hidden" name="bugid" value="<?php echo $bug_id ?>"> + <input type="hidden" name="projectid" value="<?php echo $project_id ?>"> + <input type="hidden" name="last_modified_date" value="<?php echo $last_modified_date ?>"> + <input type="hidden" name="pos" value="<?php echo isset($_REQUEST['pos']) ? $_REQUEST['pos'] : ''; ?>"> <table border="0" width="100%"> <tr> - <td>Bug <b>#{$bug_id}</b> - {$title|stripslashes} - {$STRING.BUGDISPLAY.returnto} <a href="query.php">{$STRING.BUGDISPLAY.buglist}</a></td> + <td>Bug <b>#<?php echo $bug_id ?></b> - <?php echo stripslashes($title) ?> - <a href="query.php"><?php echo translate("Return to bug list"); ?></a></td> <td align="right"> -{if $prevbug} - <b><a href="bug.php?op=show&bugid={$prevbug}&pos={$prevpos}">{$STRING.previous_bug}</a></b> -{/if} -{if $prevbug and $nextbug} - | -{/if} -{if $nextbug} - <b><a href="bug.php?op=show&bugid={$nextbug}&pos={$nextpos}">{$STRING.next_bug}</a></b> -{/if} + <?php if (!empty($prevbug)) { ?> + <b><a href="bug.php?op=show&bugid=<?php echo $prevbug ?>&pos=<?php echo $prevpos ?>"><?php echo translate("Previous bug"); ?></a></b> + <?php } ?> + <?php if (!empty($prevbug) && !empty($nextbug)) echo ' | '; ?> + <?php if (!empty($nextbug)) { ?> + <b><a href="bug.php?op=show&bugid=<?php echo $nextbug ?>&pos=<?php echo $nextpos ?>"><?php echo translate("Next bug"); ?></a></b> + <?php } ?> </td> </tr> -{if $error.status} - <tr><td class="error">{$error.status}</td></tr> -{/if} + <?php if (!empty($error['status'])) echo "<tr><td class=\"error\">{$error['status']}</td></tr>"; ?> </table> + <?php if (!empty($error['add_dep'])) echo "<div class=\"error\">{$error['add_dep']}</div>"; ?> + <?php if (!empty($error['vote'])) echo "<div class=\"error\">{$error['vote']}</div>" ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> - <td>{$STRING.BUGDISPLAY.reporter}:</td> - <td><b>{$reporter|maskemail}</b></td> - <td>{$STRING.BUGDISPLAY.created}:</td> - <td><b>{$created_date|date:DATE_FORMAT}</b></td> - </tr><tr> - <td>{$STRING.BUGDISPLAY.project}:</td> - <td><select name="project_id" onChange="updateMenus(this.form)" {$disabled}>{build_select box=project selected=$project_id}</select></td> - <td>{$STRING.BUGDISPLAY.priority}:</td> - <td><select name="priority" {$disabled}>{build_select box=priority selected=$priority}</select></td> - </tr><tr> - <td>{$STRING.BUGDISPLAY.component}:</td> - <td><select name="component_id" {$disabled}>{build_select box=component selected=$component_id project=$project_id}</select></td> - <td>{$STRING.BUGDISPLAY.severity}:</td> - <td><select name="severity_id" {$disabled}>{build_select box=severity selected=$severity_id}</select></td> - </tr><tr> - <td>{$STRING.BUGDISPLAY.version}:</td> - <td><select name="version_id" {$disabled}>{build_select box=version selected=$version_id project=$project_id}</select></td> - <td>{$STRING.BUGDISPLAY.os}:</td> - <td><select name="os_id" {$disabled}>{build_select box=os selected=$os_id}</select></td> - </tr><tr> - <td>{$STRING.BUGDISPLAY.tobeclosedinversion}</td> - <td><select name="to_be_closed_in_version_id" {$disabled}> - <option value="0">{$STRING.BUGDISPLAY.chooseone}</option> - {build_select box=version selected=$to_be_closed_in_version_id project=$project_id} + <td><?php echo translate("Reporter"); ?>:</td> + <td><b><?php echo maskemail($reporter) ?></b></td> + <td><?php echo translate("Created"); ?>:</td> + <td><b><?php echo date(DATE_FORMAT, $created_date) ?></b></td> + </tr><tr> + <td><?php echo translate("Project"); ?>:</td> + <td><select name="project_id" onChange="updateMenus(this.form)" <?php echo $disabled ?>><?php build_select('project', $project_id) ?></select></td> + <td><?php echo translate("Priority"); ?>:</td> + <td><select name="priority" <?php echo $disabled ?>><?php build_select('priority', $priority) ?></select></td> + </tr><tr> + <td><?php echo translate("Component"); ?>:</td> + <td><select name="component_id" <?php echo $disabled ?>><?php build_select('component', $component_id, $project_id) ?></select></td> + <td><?php echo translate("Severity"); ?>:</td> + <td><select name="severity_id" <?php echo $disabled ?>><?php build_select('severity', $severity_id) ?></select></td> + </tr><tr> + <td><?php echo translate("Version"); ?>:</td> + <td><select name="version_id" <?php echo $disabled ?>><?php build_select('version', $version_id, $project_id) ?></select></td> + <td><?php echo translate("Operating System"); ?>:</td> + <td><select name="os_id" <?php echo $disabled ?>><?php build_select('os', $os_id) ?></select></td> + </tr><tr> + <td><?php echo translate("To be closed in version"); ?></td> + <td><select name="to_be_closed_in_version_id" <?php echo $disabled ?>> + <option value="0"><?php echo translate("Choose one"); ?></option> + <?php build_select('version', $to_be_closed_in_version_id, $project_id) ?> </select></td> - <td>{$STRING.BUGDISPLAY.database}:</td> - <td><select name="database_id" {$disabled}>{build_select box=database selected=$database_id}</select></td> + <td><?php echo translate("Database"); ?>:</td> + <td><select name="database_id" <?php echo $disabled ?>><?php build_select('database', $database_id) ?></select></td> </tr><tr> - <td>{$STRING.BUGDISPLAY.closedinversion}</td> - <td><select name="closed_in_version_id" {$disabled}> - <option value="0">{$STRING.BUGDISPLAY.chooseone}</option> - {build_select box=version selected=$closed_in_version_id project=$project_id} + <td><?php echo translate("Closed in version"); ?></td> + <td><select name="closed_in_version_id" <?php echo $disabled ?>> + <option value="0"><?php echo translate("Choose one"); ?></option> + <?php build_select('version', $closed_in_version_id, $project_id) ?> </select></td> - <td>{$STRING.BUGDISPLAY.site}</td> - <td><select name="site_id" {$disabled}>{build_select box=site selected=$site_id}</select></td> + <td><?php echo translate("Site"); ?></td> + <td><select name="site_id" <?php echo $disabled ?>><?php build_select('site', $site_id) ?></select></td> + </tr><tr> + <td><?php echo translate("Summary"); ?>:</td> + <td><input type="text" size="30" maxlength="100" name="title" value="<?php echo stripslashes(htmlspecialchars($title)) ?>" <?php echo $disabled ?>></td> + <td><?php echo translate("Status"); ?>:</td> + <td><select name="status_id" <?php echo $disabled ?>><?php build_select('status', $status_id) ?></select></td> + </tr><tr> + <td><?php if($url) echo "<a href=\"$url\">URL</a>"; else echo 'URL'; ?>:</td> + <td><input type="text" size="30" maxlength="255" name="url" value="<?php echo $url ?>" <?php echo $disabled ?>></td> + <td><?php echo translate("Resolution"); ?>:</td> + <td><select name="resolution_id" <?php echo $disabled ?>><option value="0"><?php echo translate("None"); ?></option><?php build_select('resolution', $resolution_id) ?></select></td> </tr><tr> - <td>{$STRING.BUGDISPLAY.summary}:</td> - <td><input type="text" size="30" maxlength="100" name="title" value="{$title|stripslashes|htmlspecialchars}" {$disabled}></td> - <td>{$STRING.BUGDISPLAY.status}:</td> - <td><select name="status_id" {$disabled}>{build_select box=status selected=$status_id}</select></td> - </tr><tr> - <td>{if $url}<a href="{$url}">URL</a>{else}URL{/if}:</td> - <td><input type="text" size="30" maxlength="255" name="url" value="{$url}" {$disabled}></td> - <td>{$STRING.BUGDISPLAY.resolution}:</td> - <td><select name="resolution_id" {$disabled}><option value="0">{$STRING.BUGDISPLAY.resolutionnone}</option>{build_select box=resolution selected=$resolution_id}</select></td> - </tr><tr> - <td>{$STRING.BUGDISPLAY.assignedto}:</td> - <td><select name="assigned_to" {$disabled}><option value="0">{$STRING.BUGDISPLAY.assignedtonobody}</option>{build_select box=owner selected=$assigned_to}</select></td> - <td>{$STRING.BUGDISPLAY.addcc}:</td> - <td><input type="text" name="add_cc" {$disabled}></td> + <td><?php echo translate("Assigned to"); ?>:</td> + <?php if (isset($perm) && $perm->have_perm('EditAssignment')) { ?> + <td><select name="assigned_to" <?php echo $disabled ?>><option value="0"><?php echo translate("None"); ?></option><?php build_select('owner', $assigned_to) ?></select></td> + <?php } else { ?> + <td> + <?php echo lookup('assigned_to', $assigned_to); ?> + <input type="hidden" name="assigned_to" value="<?php echo $assigned_to ?>"> + </td> + <?php } ?> + <td><?php echo translate("Add CC"); ?>:</td> + <td><input type="text" name="add_cc" <?php echo $disabled ?>></td> </tr><tr> <td colspan="2" valign="top"> -{if !empty($error.add_dep)}<div class="error">{$error.add_dep}</div>{/if} - {$STRING.BUGDISPLAY.bugdependency}: {$bug_dependencies}<br> - {$STRING.BUGDISPLAY.blocks}: {$rev_bug_dependencies}<br> - {$STRING.BUGDISPLAY.adddependency}: <input type="text" name="add_dependency" size="5" {$disabled}><br> - {$STRING.BUGDISPLAY.removedependency}: <input type="text" name="del_dependency" size="5" {$disabled}><br><br></td> + <?php if (!empty($error['add_dep'])) echo "<div class=\"error\">{$error['add_dep']}</div>"; ?> + <?php echo translate("Depends on bugs"); ?>: + <?php for ($i = 0, $count = count($bug_dependencies); $i < $count; $i++) { + printf('<a href="bug.php?op=show&bugid=%d" class="%s">#%d</a>%s', + $bug_dependencies[$i]['bug_id'], + ($bug_dependencies[$i]['bug_open'] ? 'open_bug_number' : 'closed_bug_number'), + $bug_dependencies[$i]['bug_id'], + ($i < $count - 1 ? ', ' : '')); + } ?> + <br> + <?php echo translate("Blocks bugs"); ?>: + <?php for ($i = 0, $count = count($bug_blocks); $i < $count; $i++) { + printf('<a href="bug.php?op=show&bugid=%d" class="%s">#%d</a>%s', + $bug_blocks[$i]['bug_id'], + ($bug_blocks[$i]['bug_open'] ? 'open_bug_number' : 'closed_bug_number'), + $bug_blocks[$i]['bug_id'], + ($i < $count - 1 ? ', ' : '')); + } ?> + <br> + <?php echo translate("Add dependency"); ?>: <input type="text" name="add_dependency" size="5" <?php echo $disabled ?>><br> + <?php echo translate("Remove dependency"); ?>: <input type="text" name="del_dependency" size="5" <?php echo $disabled ?>><br><br></td> <td colspan="2" valign="top"> - {$STRING.BUGDISPLAY.removeselectedcc}:<br> - <select name="remove_cc[]" size="5" style="width: 15em" multiple {$disabled}>{build_select box=bug_cc selected=$bug_id}</select></td> + <?php echo translate("Remove selected CCs"); ?>:<br> + <select name="remove_cc[]" size="5" style="width: 15em" multiple <?php echo $disabled ?>><?php build_select('bug_cc', $bug_id) ?></select></td> </tr> </table> <table border="0" cellpadding="2" cellspacing="0" width="100%"> - <tr> - <td valign="top">{$STRING.BUGDISPLAY.additionalcomments}:<br><br> - <textarea name="comments" rows="6" cols="55" wrap="virtual" {$disabled}>{$smarty.post.comments}</textarea> + <tr class="noprint"> + <td valign="top"><?php echo translate("Additional comments"); ?>:<br><br> + <textarea name="comments" rows="6" cols="55" wrap="virtual" <?php echo $disabled ?>><?php echo isset($_POST['comments']) ? $_POST['comments'] : ''; ?></textarea> <br><br> <div align="right"> -{if $smarty.session.uid} - {$STRING.BUGDISPLAY.suppressemail} <input type="checkbox" name="suppress_email" value="1"> + <?php if (!empty($_SESSION['uid'])) { ?> + <?php echo translate("Supress notification email"); ?> <input type="checkbox" name="suppress_email" value="1"> <input type="submit" value="Submit"> -{else} - {$STRING.logintomodify} -{/if} + <?php } else echo translate("You must login to modify this bug"); ?> </div></td> </tr><tr> <td><table border="0" cellpadding="0" width="100%"> <tr> - <td colspan="2">{$STRING.BUGDISPLAY.attachments}:</td> - <td colspan="3" align="right"><a href="attachment.php?bugid={$bug_id}" onClick="return popupAtt({$bug_id})">{$STRING.BUGDISPLAY.createattachment}</a></td> + <td colspan="2"><?php echo translate("Attachments"); ?>:</td> + <td colspan="3" align="right"><a href="attachment.php?bugid=<?php echo $bug_id; ?>" onClick="return popupAtt(<?php echo $bug_id; ?>)"><?php echo translate("Create new attachment"); ?></a></td> </tr><tr> <td colspan="5" height="2" bgcolor="#ffffff"><spacer type="block" height="2" width="2"></td> </tr><tr> - <td bgcolor="#cccccc" align="center"><b>{$STRING.BUGDISPLAY.name}</b></td> - <td width="60" bgcolor="#cccccc" align="center"><b>{$STRING.BUGDISPLAY.size}</b></a></td> - <td width="150" bgcolor="#cccccc" align="center"><b>{$STRING.BUGDISPLAY.type}</b></a></td> - <td width="80" bgcolor="#cccccc" align="center"><b>{$STRING.BUGDISPLAY.created}</b></a></td> + <td bgcolor="#cccccc" align="center"><b><?php echo translate("Name"); ?></b></td> + <td width="60" bgcolor="#cccccc" align="center"><b><?php echo translate("Size"); ?></b></a></td> + <td width="150" bgcolor="#cccccc" align="center"><b><?php echo translate("Type"); ?></b></a></td> + <td width="80" bgcolor="#cccccc" align="center"><b><?php echo translate("Created"); ?></b></a></td> <td width="80" bgcolor="#cccccc" align="center"> </a></td> </tr><tr> <td bgcolor="#000000" height="1"><spacer type="block" height="1" width="1"></td> @@ -182,30 +197,30 @@ <td bgcolor="#000000" height="1"><spacer type="block" height="1" width="1"></td> <td bgcolor="#000000" height="1"><spacer type="block" height="1" width="1"></td> </tr> -{section name=attachment loop=$attachments} - <tr title="{$attachments[attachment].description|stripslashes}"{if $smarty.section.attachment.iteration is even} class="alt" bgcolor="#dddddd"{/if}> - <td>{$attachments[attachment].file_name|stripslashes}</td> - <td align="right"> - {if $attachments[attachment].file_size > 1024} - {math equation="(round(x) / 1024 * 100) / 100" x=$attachments[attachment].file_size assign=file_size} - {$file_size|number_format}k - {else} - {$attachments[attachment].file_size|number_format}b - {/if} - </td> - <td align="center">{$attachments[attachment].mime_type}</td> - <td align="center">{$attachments[attachment].created_date|date:DATE_FORMAT}</td> - <td align="center"><a href='attachment.php?attachid={$attachments[attachment].attachment_id}'>View</a> - {if isset($perm) and $perm->have_perm('Administrator')} - | <a href='attachment.php?del={$attachments[attachment].attachment_id}' onClick="return confirm('{$STRING.BUGDISPLAY.suredeleteattachment}');">{$STRING.delete}</a> - {/if} - </td> - </tr> -{sectionelse} - <tr> - <td colspan="5" align="center">{$STRING.BUGDISPLAY.noattachments}</td> - </tr> -{/section} + <?php if ($attcount = count($attachments)) { ?> + <?php for ($i = 0; $i < $attcount; $i++) { ?> + <tr title="<?php echo stripslashes($attachments[$i]['description']); ?>"<?php if ($i % 2 != 0) echo ' class="alt" bgcolor="#dddddd"' ?>> + <td><?php echo stripslashes($attachments[$i]['file_name']); ?></td> + <td align="right"> + <?php echo $attachments[$i]['file_size'] > 1024 + ? number_format((round($attachments[$i]['file_size']) / 1024 * 100) / 100).'k' + : number_format($attachments[$i]['file_size']).'b'; + ?> + </td> + <td align="center"><?php echo $attachments[$i]['mime_type']; ?></td> + <td align="center"><?php echo date(DATE_FORMAT, $attachments[$i]['created_date']); ?></td> + <td align="center"><a href='attachment.php?attachid=<?php echo $attachments[$i]['attachment_id']; ?>'>View</a> + <?php if (isset($perm) and $perm->have_perm('Administrator')) { ?> + | <a href='attachment.php?del=<?php echo $attachments[$i]['attachment_id']; ?>' onClick="return confirm('<?php echo translate("Are you sure you want to delete this attachment?"); ?>');"><?php echo translate("Delete"); ?></a> + <?php } ?> + </td> + </tr> + <?php } ?> + <?php } else { ?> + <tr> + <td colspan="5" align="center"><?php echo translate("No attachments found for this bug"); ?></td> + </tr> + <?php } ?> <tr> <td bgcolor="#000000" height="1"><spacer type="block" height="1" width="1"></td> <td bgcolor="#000000" height="1"><spacer type="block" height="1" width="1"></td> @@ -220,28 +235,27 @@ </table> </form> <div align="center" class="bugdisplaylinks"> -{if !empty($error.vote)}<div class="error">{$error.vote}</div>{/if} - <b><a href="{$smarty.server.PHP_SELF}?op=vote&bugid={$bug_id}" onClick="if ({$already_voted}) {literal}{ alert ('{/literal}{$STRING.already_voted}{literal}'); return false; }{/literal}">{$STRING.BUGDISPLAY.voteforthisbug}</a></b> | - <b><a href="{$smarty.server.PHP_SELF}?op=viewvotes&bugid={$bug_id}">{$STRING.BUGDISPLAY.viewvotes} ({$num_votes}) {$STRING.BUGDISPLAY.forthisbug}</a></b> | - <b><a href="{$smarty.server.PHP_SELF}?op=history&bugid={$bug_id}">{$STRING.BUGDISPLAY.viewbugactivity}</a></b> | - <b><a href="{$smarty.server.PHP_SELF}?op=print&bugid={$bug_id}">{$STRING.BUGDISPLAY.printableview}</a></b> +<?php if (!empty($error['vote'])) echo "<div class=\"error\">{$error['vote']}</div>" ?> + <b><a href="<?php echo $_SERVER['PHP_SELF']; ?>?op=vote&bugid=<?php echo $bug_id; ?>" onClick="if (<?php echo $already_voted; ?>) { alert ('<?php echo translate("You have already voted for this bug"); ?>'); return false; }"><?php echo translate("Vote for this bug"); ?></a></b> | + <b><a href="<?php echo $_SERVER['PHP_SELF']; ?>?op=viewvotes&bugid=<?php echo $bug_id; ?>"><?php echo translate("View votes"); ?> (<?php echo $num_votes; ?>)</a></b> | + <b><a href="<?php echo $_SERVER['PHP_SELF']; ?>?op=history&bugid=<?php echo $bug_id; ?>"><?php echo translate("View bug history"); ?></a></b> </div> <br><br> <table border="0" cellpadding="2" cellspacing="0" width="100%"> <tr> - <td>{$STRING.BUGDISPLAY.comments}:</td> + <td><?php echo translate("Comments"); ?>:</td> </tr><tr class="alt"> - <td>{$STRING.BUGDISPLAY.postedby}: {$reporter|maskemail} <br> - {$STRING.BUGDISPLAY.date}: {$created_date|date:TIME_FORMAT} {$STRING.BUGDISPLAY.dateon} {$created_date|date:DATE_FORMAT}</td> - </tr><tr> - <td>{$description|stripslashes|htmlspecialchars|format_comments|nl2br} <br><br></td> - </tr> - {section name=comment loop=$comments} - <tr class="alt"> - <td>{$STRING.BUGDISPLAY.postedby}: {$comments[comment].login|maskemail} <br> - {$STRING.BUGDISPLAY.date}: {$comments[comment].created_date|date:TIME_FORMAT} {$STRING.BUGDISPLAY.on} {$comments[comment].created_date|date:DATE_FORMAT}</td> + <td><?php echo translate("Posted by"); ?>: <?php echo maskemail($reporter); ?> <br> + <?php echo translate("Date"); ?>: <?php echo date(TIME_FORMAT.' '.DATE_FORMAT, $created_date); ?></td> </tr><tr> - <td>{$comments[comment].comment_text|stripslashes|htmlspecialchars|format_comments|nl2br} <br><br></td> + <td><?php echo nl2br(stripslashes(format_comments(htmlspecialchars($description)))); ?> <br><br></td> </tr> - {/section} + <?php for ($i = 0, $ccount = count($comments); $i < $ccount; $i++) { ?> + <tr class="alt"> + <td><?php echo translate("Posted by"); ?>: <?php echo maskemail($comments[$i]['login']); ?> <br> + <?php echo translate("Date"); ?>: <?php echo date(TIME_FORMAT.' '.DATE_FORMAT, $comments[$i]['created_date']); ?></td> + </tr><tr> + <td><?php echo nl2br(stripslashes(format_comments(htmlspecialchars($comments[$i]['comment_text'])))); ?> <br><br></td> + </tr> + <?php } ?> </table> Index: bugemail-newbug.txt =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugemail-newbug.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- bugemail-newbug.txt 17 Jun 2002 15:49:18 -0000 1.3 +++ bugemail-newbug.txt 25 Oct 2004 12:07:04 -0000 1.4 @@ -3,27 +3,27 @@ INSTEAD FOLLOW BUG'S URL BELOW IN ORDER TO DETAIL BUG: ============================================================================ - Bug #: {$bugid} ({$bugurl}) - Reported By: {$reporter} + Bug #: <?php echo $bugid; ?> (<?php echo $bugurl; ?>) + Reported By: <?php echo $reporter."\n"; ?> ---------------------------------------------------------------------------- - Summary: {$title} - URL: {$url} - Product: {$project_id} - Version: {$version_id} - Component: {$component_id} - Site: {$site_id} - Status: {$status_id} - Resolution: {$resolution_id} - Severity: {$severity_id} - OS/Version: {$os_id} - Database: {$database_id} - Priority: {$priority} - Assigned To: {$assignedto} + Summary: <?php echo $title."\n"; ?> + URL: <?php echo $url."\n"; ?> + Product: <?php echo $project_id."\n"; ?> + Version: <?php echo $version_id."\n"; ?> + Component: <?php echo $component_id."\n"; ?> + Site: <?php echo $site_id."\n"; ?> + Status: <?php echo $status_id."\n"; ?> + Resolution: <?php echo $resolution_id."\n"; ?> + Severity: <?php echo $severity_id."\n"; ?> + OS/Version: <?php echo $os_id."\n"; ?> + Database: <?php echo $database_id."\n"; ?> + Priority: <?php echo $priority."\n"; ?> + Assigned To: <?php echo $assignedto."\n"; ?> ============================================================================ -{if $showcomments} +<?php if ($showcomments) { ?> COMMENTS ------ Posted by {$oldpostedby} at {$oldpostedon} ----- -{$oldcomments} +----- Posted by <?php echo $oldpostedby; ?> at <?php echo $oldpostedon; ?> ----- +<?php echo $oldcomments."\n"; ?> -{/if} +<?php } ?> Index: bugemail.txt =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugemail.txt,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- bugemail.txt 14 Jun 2002 15:26:06 -0000 1.5 +++ bugemail.txt 25 Oct 2004 12:07:04 -0000 1.6 @@ -3,32 +3,32 @@ INSTEAD FOLLOW BUG'S URL BELOW IN ORDER TO DETAIL BUG: ============================================================================ - Bug #: {$bugid} ({$bugurl}) -{$reporter_stat} Reported By: {$reporter} + Bug #: <?php echo $bugid; ?> (<?php echo $bugurl; ?>) +<?php echo $reporter_stat; ?> Reported By: <?php echo $reporter."\n"; ?> ---------------------------------------------------------------------------- -{$title_stat} Summary: {$title} -{$url_stat} URL: {$url} -{$project_id_stat} Product: {$project_id} -{$version_id_stat} Version: {$version_id} -{$to_be_closed_in_version_id_stat} To be Closed in Version: {$to_be_closed_in_version_id} -{$closed_in_version_id_stat} Closed in Version: {$closed_in_version_id} -{$component_id_stat} Component: {$component_id} -{$site_id_stat} Site(s): {$site_id} -{$status_id_stat} Status: {$status_id} -{$resolution_id_stat} Resolution: {$resolution_id} -{$severity_id_stat} Severity: {$severity_id} -{$os_id_stat} OS/Version: {$os_id} -{$database_id_stat} Database: {$database_id} -{$priority_stat} Priority: {$priority} -{$assignedto_stat} Assigned To: {$assignedto} +<?php echo $title_stat; ?> Summary: <?php echo $title."\n"; ?> +<?php echo $url_stat; ?> URL: <?php echo $url."\n"; ?> +<?php echo $project_id_stat; ?> Product: <?php echo $project_id."\n"; ?> +<?php echo $version_id_stat; ?> Version: <?php echo $version_id."\n"; ?> +<?php echo $to_be_closed_in_version_id_stat; ?> To be Closed in Version: <?php echo $to_be_closed_in_version_id."\n"; ?> +<?php echo $closed_in_version_id_stat; ?> Closed in Version: <?php echo $closed_in_version_id."\n"; ?> +<?php echo $component_id_stat; ?> Component: <?php echo $component_id."\n"; ?> +<?php echo $site_id_stat; ?> Site(s): <?php echo $site_id."\n"; ?> +<?php echo $status_id_stat; ?> Status: <?php echo $status_id."\n"; ?> +<?php echo $resolution_id_stat; ?> Resolution: <?php echo $resolution_id."\n"; ?> +<?php echo $severity_id_stat; ?> Severity: <?php echo $severity_id."\n"; ?> +<?php echo $os_id_stat; ?> OS/Version: <?php echo $os_id."\n"; ?> +<?php echo $database_id_stat; ?> Database: <?php echo $database_id."\n"; ?> +<?php echo $priority_stat; ?> Priority: <?php echo $priority."\n"; ?> +<?php echo $assignedto_stat; ?> Assigned To: <?php echo $assignedto."\n"; ?> ============================================================================ -{if $showcomments} +<?php if ($showcomments) { ?> COMMENTS ------ Posted by {$oldpostedby} at {$oldpostedon} ----- -{$oldcomments} +----- Posted by <?php echo $oldpostedby; ?> at <?php echo $oldpostedon; ?> ----- +<?php echo $oldcomments."\n"; ?> ------ Posted by {$newpostedby} at {$newpostedon} ----- -{$newcomments} +----- Posted by <?php echo $newpostedby; ?> at <?php echo $newpostedon; ?> ----- +<?php echo $newcomments."\n"; ?> -{/if} +<?php } ?> Index: bugform.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugform.html,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- bugform.html 12 May 2003 22:26:27 -0000 1.9 +++ bugform.html 25 Oct 2004 12:07:04 -0000 1.10 @@ -1,88 +1,161 @@ -<form action="bug.php" method="post" enctype="multipart/form-data"> - <input type="hidden" name="bugid" value="0"> - <input type="hidden" name="project" value="{$project}"> - <input type="hidden" name="op" value="do"> - <table border="0"> -{if $error} - <tr> - <td colspan="2" class="error">{$error}</td> - </tr> -{/if} - <tr> - <td align="right" valign="top">{$STRING.BUGFORM.Project}:</td> - <td>{$projectname|stripslashes|htmlspecialchars}</td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.Version}:</td> - <td><select name="version">{build_select box=version selected=$version project=$project} - </select></td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.Summary}:</td> - <td><input type="text" size="50" maxlength="100" name="title" - value="{$title|stripslashes|htmlspecialchars}"></td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.Description}:</td> - <td><textarea name="description" cols="50" rows="8" - wrap=virtual>{$description|stripslashes|htmlspecialchars}</textarea></td> - </tr><tr> - <td align="right" valign="top">URL:</td> - <td><input type="text" size="30" maxlength="255" name="url" value="{$url}"></td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.Severity}:</td> - <td><select name="severity">{build_select box=severity selected=$severity} - </select></td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.Priority}:</td> - <td><select name="priority">{build_select box=priority selected=$priority} - </select></td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.Component}:</td> - <td><select name="component">{build_select box=component selected=$component project=$project} - </select></td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.Database}:</td> - <td><select name="database">{build_select box=database selected=$database} - </select></td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.Site}:</td> - <td><select name="site">{build_select box=site selected=$site} - </select></td> - </tr><tr> - <td align="right" valign="top">{$STRING.BUGFORM.OS}:</td> - <td><select name="os">{build_select box=os selected=$os} - </select></td> - </tr><tr> - <td align="right">Attachment:</td> - <td> -<table border="0" align="center"> - <tr> - <td colspan="2" align="center"> - Please choose a file to upload and enter a one-line description. - <br> - Maximum file size: {$max_size} bytes - <br> - <br> - </td> - </tr> - <tr> - <td> - File: - </td> - <td> - <input type="file" name="attachment"> - </td> - </tr> - <tr> - <td> - Description: - </td> - <td> - <input type="text" name="at_description" maxlength="255" value="{$description}"> - </td> - </tr> -</table> - - </td> - </tr> - </table> - <input type="submit" name="submit" value="{$STRING.BUGFORM.Submit}"> -</form> + <form action="bug.php" method="post" enctype="multipart/form-data"> + <table border="0"> + <?php if (!empty($error)) { ?> + <tr> + <td colspan="2" class="error"> + <?php echo $error ?> + </td> + </tr> + <?php } ?> + <tr> + <td align="right" valign="top"> + <?php echo translate("Project"); ?>: + </td> + <td> + <?php echo stripslashes($projectname) ?> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Reporter"); ?>: + </td> + <td> + <select name="reporter"> + <?php build_select('reporter', $reporter) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Version"); ?>: + </td> + <td> + <select name="version"> + <?php build_select('version', $version, $project) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Summary"); ?>: + </td> + <td> + <input type="text" size="50" maxlength="100" name="title" value="<?php echo htmlspecialchars(stripslashes($title)) ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Description"); ?>: + </td> + <td> + <textarea name="description" cols="50" rows="8" wrap="virtual"><?php echo htmlspecialchars(stripslashes($description)) ?></textarea> + </td> + </tr> + <tr> + <td align="right" valign="top"> + URL: + </td> + <td> + <input type="text" size="30" maxlength="255" name="url" value="<?php echo $url ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Severity"); ?>: + </td> + <td> + <select name="severity"> + <?php build_select('severity', $severity) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Priority"); ?>: + </td> + <td> + <select name="priority"> + <?php build_select('priority', $priority) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Component"); ?>: + </td> + <td> + <select name="component"> + <?php build_select('component', $component, $project) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Database"); ?>: + </td> + <td> + <select name="database"> + <?php build_select('database', $database) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Site"); ?>: + </td> + <td> + <select name="site"> + <?php build_select('site', $site) ?> + </select> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Operating System"); ?>: + </td> + <td> + <select name="os"> + <?php build_select('os', $os) ?> + </select> + </td> + </tr> + <tr> + <td align="right"> + Attachment: + </td> + <td> + <table border="0" align="center"> + <tr> + <td colspan="2" align="center"> + Please choose a file to upload and enter a one-line description. + <br> + Maximum file size: <?php echo $max_size ?> bytes + <br> + <br> + </td> + </tr> + <tr> + <td> + File: + </td> + <td> + <input type="file" name="attachment"> + </td> + </tr> + <tr> + <td> + Description: + </td> + <td> + <input type="text" name="at_description" maxlength="255" value=""> + </td> + </tr> + </table> + </td> + </tr> + </table> + <input type="submit" name="submit" value="<?php echo translate("Submit"); ?>"> + <input type="hidden" name="bugid" value="0"> + <input type="hidden" name="project" value="<?php echo $project ?>"> + <input type="hidden" name="op" value="do"> + </form> Index: bughistory.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bughistory.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- bughistory.html 14 Sep 2002 19:02:28 -0000 1.5 +++ bughistory.html 25 Oct 2004 12:07:04 -0000 1.6 @@ -1,26 +1,28 @@ <table border="0" cellspacing="2" cellpadding="2" width="100%"> <tr bgcolor="#eeeeee"> - <th>Who</th> - <th>What</th> - <th>Old Value</th> - <th>New Value</th> - <th>When</th> + <th><?php echo translate("Who"); ?></th> + <th><?php echo translate("What"); ?></th> + <th><?php echo translate("Old Value"); ?></th> + <th><?php echo translate("New Value"); ?></th> + <th><?php echo translate("When"); ?></th> </tr> - {section name=event loop=$history} - <tr{if $smarty.section.event.iteration is even} class="alt" bgcolor="#dddddd"{/if}> - <td>{$history[event].login|maskemail}</td> - <td>{$history[event].changed_field}</td> - <td> {$history[event].old_value}</td> - <td> {$history[event].new_value}</td> - <td align="center">{$history[event].created_date|date:DATE_FORMAT} {$history[event].created_date|date:TIME_FORMAT}</td> - </tr> - {sectionelse} + <?php if ($count = count($history)) { ?> + <?php for ($i = 0; $i < $count; $i++) { ?> + <tr<?php if ($i % 2) echo ' class="alt" bgcolor="#dddddd"' ?>> + <td><?php echo maskemail($history[$i]['login']); ?></td> + <td><?php echo $history[$i]['changed_field']; ?></td> + <td> <?php echo $history[$i]['old_value']; ?></td> + <td> <?php echo $history[$i]['new_value']; ?></td> + <td align="center"><?php echo date(TIME_FORMAT.' '.DATE_FORMAT, $history[$i]['created_date']); ?></td> + </tr> + <?php } ?> + <?php } else { ?> <tr> - <td colspan="5" align="center">{$STRING.nobughistory}</td> + <td colspan="5" align="center"><?php echo translate("No history found for this bug"); ?></td> </tr> - {/section} + <?php } ?> </table> <br> -<a href="{$smarty.server.PHP_SELF}?op=show&bugid={$smarty.get.bugid}">Back to bug #{$smarty.get.bugid}</a> +<a href="<?php echo $_SERVER['PHP_SELF']; ?>?op=show&bugid=<?php echo $_GET['bugid']; ?>"><?php echo translate("Back to bug"); ?></a> <br> <br> Index: buglist.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/buglist.html,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- buglist.html 29 Jul 2002 12:41:47 -0000 1.8 +++ buglist.html 25 Oct 2004 12:07:04 -0000 1.9 @@ -1,35 +1,28 @@ -<table cellpadding="2"> +<table class="bordertable" align="center" style="width: 100%"> <tr> - {section name=col loop=$db_fields} - <th class={$headers[col].class} bgcolor={$headers[col].color}><a href="{$headers[col].url}">{$field_titles[col]}</a></th> - {/section} + <?php for ($i = 0, $colcount = count($db_fields); $i < $colcount; $i++) { + echo "<th class='{$headers[$i]['class']}' bgcolor='{$headers[$i]['color']}'><a href='{$headers[$i]['url']}'>{$field_titles[$i]}</a></th>"; + } ?> </tr> - {section name=bug loop=$bugs} - <tr{if $smarty.section.bug.iteration is even} class="alt" bgcolor="#dddddd"{/if}> - {foreach key=key item=item from=$bugs[bug]} - {if $key eq "bug_link_id"} - {assign var=bug_id value=$item} - {elseif $key eq "severity_color"} - {assign var=bgcolor value=$item} - {else} - <td {if USE_SEVERITY_COLOR}bgcolor="{$bgcolor}"{/if}>{$item|modify_bug_col:$key:$bug_id:$smarty.section.bug.iteration}</td> - {/if} - {/foreach} - </tr> - {sectionelse} - <tr> - <td colspan="{$smarty.section.col.loop}" align="center"> - {$STRING.nobugs} - </td> - </tr> - {/section} - {if $smarty.section.bug.total} - <tr> - <td colspan="{$smarty.section.col.loop}" align="center"> - <br> - {$first} - {$last} of {$total}<br>[ {$pages} ]<!-- <a href="bugs.php?page=all">Show all</a>--> - <br> + <?php if (!$bugcount = count($bugs)) { ?> + <td colspan="<?php echo $colcount ?>" align="center"> + <?php echo translate("No bugs found"); ?> </td> - </tr> - {/if} + <?php } else { ?> + <?php for ($i = 0; $i < $bugcount; $i++) { ?> + <tr<?php if ($i % 2 != 0) echo ' class="alt" bgcolor="#dddddd"'; ?>> + <?php + foreach ($bugs[$i] as $var => $val) { + if ($var == 'bug_link_id') $bugid = $val; + elseif ($var == 'severity_color') $bgcolor = $val; + else echo '<td '.(USE_SEVERITY_COLOR ? "bgcolor='$bgcolor'" : '').'>'.format_bug_col($val, $var, $bugid, $i).'</td>'; + } + ?> + </tr> + <?php } ?> + <?php } ?> </table> +<?php include('admin/pagination.html'); ?> +<div align="center"> + <a href="query.php?xl=1"><?php echo translate("Download to spreadsheet"); ?></a> +</div> Index: bugvotes.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugvotes.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- bugvotes.html 18 May 2002 03:00:50 -0000 1.4 +++ bugvotes.html 25 Oct 2004 12:07:04 -0000 1.5 @@ -1,20 +1,22 @@ <table border="0" cellspacing="2" cellpadding="2"> <tr bgcolor="#eeeeee"> - <th>Who</th> - <th>When</th> + <th><?php echo translate("Who"); ?></th> + <th><?php echo translate("When"); ?></th> </tr> - {section name=vote loop=$votes} - <tr{if $smarty.section.vote.iteration is even} class="alt" bgcolor="#dddddd"{/if}> - <td>{$votes[vote].login|maskemail}</td> - <td>{$votes[vote].created_date|date:DATE_FORMAT} {$votes[vote].created_date|date:TIME_FORMAT}</td> - </tr> - {sectionelse} + <?php if ($count = count($votes)) { ?> + <?php for ($i = 0; $i < $count; $i++) { ?> + <tr<?php if ($i % 2) echo ' class="alt" bgcolor="#dddddd"'; ?>> + <td><?php echo maskemail($votes[$i]['login']); ?></td> + <td><?php echo date(TIME_FORMAT.' '.DATE_FORMAT, $votes[$i]['created_date']); ?></td> + </tr> + <?php } ?> + <?php } else { ?> <tr> - <td colspan="2" align="center">{$STRING.no_votes}</td> + <td colspan="2" align="center"><?php echo translate("No votes found for this bug"); ?></td> </tr> - {/section} + <?php } ?> </table> <br> -<a href="{$smarty.server.PHP_SELF}?op=show&bugid={$smarty.get.bugid}">Back to bug #{$smarty.get.bugid}</a> +<a href="<?php echo $_SERVER['PHP_SELF']; ?>?op=show&bugid=<?php echo $_GET['bugid']; ?>"><?php echo translate("Back to bug"); ?></a> <br> <br> Index: changessaved.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/changessaved.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- changessaved.html 18 May 2002 03:01:22 -0000 1.1 +++ changessaved.html 25 Oct 2004 12:07:04 -0000 1.2 @@ -1,7 +1,7 @@ <div align="center"> <br> <br> - {$changetext} + <?php echo $changetext; ?> <br> <br> Return to the <a href="user.php">Personal Page</a> or <a href="index.php">phpBugTracker Home</a>. Index: error.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/error.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- error.html 24 May 2002 15:19:16 -0000 1.4 +++ error.html 25 Oct 2004 12:07:04 -0000 1.5 @@ -1,14 +1,13 @@ <table width="100%"> <tr> <td align="center"> - {if $iserror} - <div class="error">{$text}</div> - {else} - {$text} - {/if} + <?php + if ($iserror) echo "<div class=\"error\">$text</div>"; + else echo $text; + ?> <br> <br> - <a href="javascript:history.go(-1)">Back</a> + <a href="javascript:history.go(-1)"><?php echo translate("Back"); ?></a> </td> </tr> </table> Index: index.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/index.html,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- index.html 19 Jun 2002 13:45:36 -0000 1.12 +++ index.html 25 Oct 2004 12:07:04 -0000 1.13 @@ -1,66 +1,76 @@ <table border=0 width="100%"> - <tr> - <td valign="top" width="250"><b>{$STRING.INDEX.FiveRecentlySubmitted}</b> - <br> -{section name=bug loop=$recentbugs} - <a href="bug.php?op=show&bugid={$recentbugs[bug].bug_id}">{$recentbugs[bug].title|stripslashes}</a> (<i>{$recentbugs[bug].project_name|stripslashes}</i>)<br> -{sectionelse} - {$STRING.nobugs} -{/section} - <br><br> - <b>{$STRING.INDEX.FiveRecentlyClosed}</b> - <br> -{section name=bug loop=$closedbugs} - <a href="bug.php?op=show&bugid={$closedbugs[bug].bug_id}">{$closedbugs[bug].title|stripslashes}</a> (<i>{$closedbugs[bug].project_name|stripslashes}</i>)<br> -{sectionelse} - {$STRING.nobugs} -{/section} -{if count($queries)} - <br><br> - <b>{$STRING.INDEX.SavedQueries}</b> - <br> - {section name=query loop=$queries} - <a href="query.php?{$queries[query].saved_query_string}">{$queries[query].saved_query_name}</a><br> - {/section} -{/if} - </td> - <td valign="top"> -{if USE_JPGRAPH} - {$summary_image} -{else} - <b>{$STRING.INDEX.QuickStats}</b> - <br><br> - <table border="1" cellspacing="0" cellpadding="2"> - <tr> - <th>{$STRING.INDEX.Status}</th> - <th>{$STRING.INDEX.NumberOfBugs}</th> - </tr> - {foreach name=outer key=key item=item from=$stats} - <tr> - <td><a href="query.php?op=doquery&status[]={$key}">{$item.name}</a></td> - <td align="center">{$item.count|default:0}</td> - </tr> - {/foreach} - </table> -{/if} - </td> - </tr> + <tr> + <td valign="top" width="250"> + <b><?php echo translate("Five most recently submitted bugs") ?></b> + <br> + <?php + if ($count = count($recentbugs)) { + for ($i = 0; $i < $count; $i++) { + echo '<a href="bug.php?op=show&bugid='.$recentbugs[$i]['bug_id'].'">'.stripslashes($recentbugs[$i]['title']).'</a> (<i>'.stripslashes($recentbugs[$i]['project_name']).'</i>)<br>'; + } + } else { + echo translate("No bugs found"); + } + ?> + <br><br> + <b><?php echo translate("Five most recently closed bugs") ?></b> + <br> + <?php + if ($count = count($closedbugs)) { + for ($i = 0; $i < $count; $i++) { + echo '<a href="bug.php?op=show&bugid='.$closedbugs[$i]['bug_id'].'">'.stripslashes($closedbugs[$i]['title']).'</a> (<i>'.stripslashes($closedbugs[$i]['project_name']).'</i>)<br>'; + } + } else { + echo translate("No bugs found"); + } + ?> + <?php if (isset($queries) && count($queries)) { ?> + <br><br> + <b><?php echo translate("Saved Queries") ?></b> + <br> + <?php for ($i = 0, $count = count($queries); $i < $count; $i++) { + echo '<a href="query.php?'.$queries[$i]['saved_query_string'].'">'.$queries[$i]['saved_query_name'].'</a><br>'; + } + } ?> + </td> + <td valign="top"> + <?php if (USE_JPGRAPH) { + if (!is_writeable('jpgimages')) { + echo translate("The image path is not writeable"); + } else { + echo build_image($restricted_projects); + } + } else { ?> + <b><?php echo translate("Quick Stats"); ?></b> + <br><br> + <table border="1" cellspacing="0" cellpadding="2"> + <tr> + <th><?php echo translate("Status"); ?></th> + <th><?php echo translate('# bugs'); ?></th> + </tr> + <?php $stats = grab_data($restricted_projects); ?> + <?php foreach ($stats as $statid => $info) { ?> + <tr> + <td><a href="query.php?op=doquery&status[]=<?php echo $statid ?>"><?php echo $info['name'] ?></a></td> + <td align="center"><?php echo $info['count'] ? $info['count'] : 0 ?></td> + </tr> + <?php } ?> + </table> + <?php } ?> + </td> + </tr> </table> <br> <br> -{if SHOW_PROJECT_SUMMARIES} -<table border="0" cellpadding="4"> - <tr> - {section name=col loop=$resfields} - <th>{$resfields[col]}</th> - {/section} - </tr> - {section name=project loop=$projects} - <tr{if $smarty.section.project.iteration is even} class="alt"{/if}> - {foreach key=key item=item from=$projects[project]} - <td{if $key ne "Project"} align="center"{/if}>{$item|stripslashes}</td> - {/foreach} - </tr> - {/section} -</table> -{/if} +<?php if (SHOW_PROJECT_SUMMARIES) { ?> + <table class="bordertable" align="center"> + <tr> + <?php foreach ($resfields as $field) echo "<th>$field</th>"; ?> + </tr> + <?php for ($i = 0, $count = count($projects); $i < $count; $i++) { ?> + <tr<?php if ($i % 2 != 0) echo ' class="alt"'?>> + <?php foreach ($projects[$i] as $var => $val) echo '<td'.($var != 'Project' ? ' align="center"' : '').'>'.stripslashes($val).'</td>'; ?> + </tr> + <?php } ?> + </table> +<?php } ?> Index: install-complete.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/install-complete.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- install-complete.html 24 May 2002 15:19:16 -0000 1.6 +++ install-complete.html 25 Oct 2004 12:07:04 -0000 1.7 @@ -1,5 +1,5 @@ <html> - <title>phpBugTracker Installation</title> + <title><?php echo translate("phpBugTracker Installation"); ?></title> <link rel="StyleSheet" href="styles/default.css" type="text/css"> </head> <body bgcolor="#ffffff" link="#006699" vlink="#006699" alink="#006699"> @@ -7,7 +7,7 @@ <tr> <td width="200" valign="top"><br><img src="logo.jpg"></td> <td valign="top"> - <div class="banner">phpBugTracker Installation</div> + <div class="banner"><?php echo translate("phpBugTracker Installation"); ?></div> The database tables have been created and the config file has been written. Especially if you are on a shared server, you should change the permissions so that config.php isn't writeable by others @@ -28,10 +28,10 @@ <form action="index.php" method="post"> <table border="0" cellpadding="1" cellspacing="3" align="center"> <tr> - <td>Login:</td> - <td><input type="text" name="username" value="{$login}"></td> + <td><?php echo translate("Login"); ?>:</td> + <td><input type="text" name="username" value="<?php echo $login; ?>"></td> </tr> - <td>Password:</td> + <td><?php echo translate("Password"); ?>:</td> <td><input type="password" name="password"></td> </tr> <tr> Index: install-dbfailure.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/install-dbfailure.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- install-dbfailure.html 27 Sep 2002 19:24:39 -0000 1.1 +++ install-dbfailure.html 25 Oct 2004 12:07:04 -0000 1.2 @@ -1,22 +1,18 @@ <html> <head> - <title>DB Test Failure</title> + <title><?php echo translate("DB Test Failure"); ?></title> <link rel="StyleSheet" href="styles/default.css" type="text/css"> </head> <body> <br><br> <div align="center"> -... [truncated message content] |
Update of /cvsroot/phpbt/phpbt/templates/default/admin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/templates/default/admin Modified Files: badperm.html component-edit.html configure.html database-edit.html databaselist.html group-edit.html grouplist.html os-edit.html oslist.html project-add.html project-edit.html projectlist.html resolution-edit.html resolutionlist.html severity-edit.html severitylist.html site-edit.html sitelist.html status-edit.html statuslist.html user-edit.html userlist.html version-edit.html wrap-popup.html wrap.html Added Files: pagination.html Log Message: Merging in htmltemplates branch to HEAD Index: badperm.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/badperm.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- badperm.html 24 May 2002 15:19:16 -0000 1.2 +++ badperm.html 25 Oct 2004 12:07:03 -0000 1.3 @@ -2,7 +2,7 @@ <tr> <td align="center"> <font color="#ff0000"> - You do not have the permissions required for that function + <?php echo translate("You do not have the permissions required for that function"); ?> </font> </td> </tr> Index: component-edit.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/component-edit.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- component-edit.html 30 Oct 2002 22:34:57 -0000 1.7 +++ component-edit.html 25 Oct 2004 12:07:03 -0000 1.8 @@ -1,8 +1,7 @@ <script language="JavaScript"> - var nameString = '{$STRING.givename}'; - var descString = '{$STRING.givedesc}'; + var nameString = '<?php echo translate("Please enter a name"); ?>'; + var descString = '<?php echo translate("Please enter a description"); ?>'; - {literal} function checkForm(frm) { if (frm.component_name.value == '') { alert(nameString); @@ -16,53 +15,55 @@ } return true; } - {/literal} </script> - <b>{$page_title}</b> - <hr size="1"> - {if $error}<div class="error">{$error}</div>{/if} - <form action="{$smarty.server.PHP_SELF}" method="post" onSubmit="return checkForm(this)"> - <table border="0"> - <input type="hidden" name="do" value="component"> - <input type="hidden" name="component_id" value="{$component_id}"> - <input type="hidden" name="project_id" value="{$project_id}"> - <input type="hidden" name="use_js" value="{$smarty.request.use_js}"> - <tr> - <td valign="top"> - Name: - </td> - <td valign="top"> - <input type="text" name="component_name" value="{$component_name|stripslashes|htmlspecialchars}"> - </td> - </tr> - <tr> - <td valign="top"> - Description: - </td> - <td valign="top"> - <textarea name="component_desc" cols="40" rows="10">{$component_desc|stripslashes|htmlspecialchars}</textarea> - </td> - </tr> - <tr> - <td valign="top"> - Owner: - </td> - <td valign="top"> - <select name="owner"><option value="0">None</option>{build_select box=owner selected=$owner}</select> - </td> - </tr> - <tr> - <td valign="top"> - Active: - </td> - <td valign="top"> - <input type="checkbox" name="active" value="1" {if $active or not $component_id}checked{/if}> - </td> - </tr> - <tr> - <td> - <input type="submit" value="Submit"> - </td> - </tr> - </table> - </form> + <b><?php echo $page_title; ?></b> +<hr size="1"> +<?php if ($error) echo '<div class="error">'.$error.'</div>'; ?> +<form method="post" onSubmit="return checkForm(this)"> +<table border="0"> + <tr> + <td valign="top"> + <?php echo translate("Name"); ?>: + </td> + <td valign="top"> + <input type="text" name="component_name" value="<?php echo stripslashes(htmlspecialchars($component_name)); ?>"> + </td> + </tr> + <tr> + <td valign="top"> + <?php echo translate("Description"); ?>: + </td> + <td valign="top"> + <textarea name="component_desc" cols="40" rows="10"><?php echo stripslashes(htmlspecialchars($component_desc)); ?></textarea> + </td> + </tr> + <tr> + <td valign="top"> + <?php echo translate("Owner"); ?>: + </td> + <td valign="top"> + <select name="owner"><option value="0"><?php echo translate("None"); ?></option><?php build_select('owner', $owner); ?></select> + </td> + </tr> + <tr> + <td valign="top"> + <?php echo translate("Active"); ?>: + </td> + <td valign="top"> + <input type="checkbox" name="active" value="1" <?php if ($active or !$component_id) echo 'checked'; ?>> + </td> + </tr> + <tr> + <td valign="top"> + + </td> + <td> + <input type="submit" value="<?php echo translate("Submit"); ?>"> + <input type="hidden" name="component_id" value="<?php echo $component_id; ?>"> + <input type="hidden" name="project_id" value="<?php echo $project_id; ?>"> + <input type="hidden" name="use_js" value="<?php echo $_REQUEST['use_js']; ?>"> + <input type="hidden" name="op" value="save_component"> + </td> + </tr> +</table> +</form> Index: configure.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/configure.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- configure.html 24 May 2002 15:19:16 -0000 1.6 +++ configure.html 25 Oct 2004 12:07:03 -0000 1.7 @@ -1,38 +1,38 @@ -<form action="{$smarty.server.PHP_SELF}" method="post"> +<form method="post"> <table border="0" width="100%"> <tr> <td valign="top"> - <b> {$page_title}</b> + <b> <?php echo $page_title; ?></b> <hr size="1"> <table border="0"> <tr> - <th>Variable</th> - <th>Value</th> - <th>Information</th> + <th><?php echo translate("Variable"); ?></th> + <th><?php echo translate("Value"); ?></th> + <th><?php echo translate("Information"); ?></th> </tr> - {section name=var loop=$vars} - <tr{if $smarty.section.var.iteration is even} class="alt"{/if}> - <td>{$vars[var].varname}</td> + <?php for ($i = 0, $count = count($vars); $i < $count; $i++) { ?> + <tr<?php if ($i % 2) echo ' class="alt"'; ?>> + <td><?php echo $vars[$i]['varname']; ?></td> <td> - {if $vars[var].vartype eq "multi"} - <select name="{$vars[var].varname}">{build_select box=$vars[var].varname selected=$vars[var].varvalue}</select> - {elseif $vars[var].vartype eq "bool"} - <input type="radio" name="{$vars[var].varname}" value="1"{if $vars[var].varvalue} checked{/if}> Yes - <input type="radio" name="{$vars[var].varname}" value="0"{if not $vars[var].varvalue} checked{/if}> No - {else} - <input type="text" name="{$vars[var].varname}" value="{$vars[var].varvalue}"> - {/if} + <?php if ($vars[$i]['vartype'] == "multi") { ?> + <select name="<?php echo $vars[$i]['varname']; ?>"><?php build_select($vars[$i]['varname'], $vars[$i]['varvalue']); ?></select> + <?php } elseif ($vars[$i]['vartype'] == "bool") { ?> + <input type="radio" name="<?php echo $vars[$i]['varname']; ?>" value="1"<?php if ($vars[$i]['varvalue']) echo ' checked'; ?>> Yes + <input type="radio" name="<?php echo $vars[$i]['varname']; ?>" value="0"<?php if (!$vars[$i]['varvalue']) echo ' checked'; ?>> No + <?php } else { ?> + <input type="text" name="<?php echo $vars[$i]['varname']; ?>" value="<?php echo $vars[$i]['varvalue']; ?>"> + <?php } ?> </td> - <td>{$vars[var].description}</td> + <td><?php echo translate($vars[$i]['description']); ?></td> </tr> - {/section} + <?php } ?> </table> </td> </tr> <tr> <td align="center"> - <input type="reset" value="Reset Form"> - <input type="submit" name="submit" value="Submit Changes"> + <input type="reset"> + <input type="submit" name="submit" value="<?php echo translate("Submit"); ?>"> </td> </tr> </table> Index: database-edit.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/database-edit.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- database-edit.html 5 Nov 2002 20:58:18 -0000 1.4 +++ database-edit.html 25 Oct 2004 12:07:03 -0000 1.5 @@ -1,37 +1,53 @@ -<script language="JavaScript"> - var nameString = '{$STRING.givename}'; - - {literal} - function checkForm(frm) { - if (frm.database_name.value == '') { - alert(nameString); - frm.database_name.focus(); - return false; - } - return true; - } - {/literal} -</script> -<b>{$page_title} </b> -<hr size="1"> -<form action="{$smarty.server.PHP_SELF}" method="post" onSubmit="return checkForm(this)"> -<input type="hidden" name="database_id" value="{$database_id}"> -<input type="hidden" name="use_js" value="{$smarty.request.use_js}"> -<table border='0'> -{if $error} - <tr> - <td colspan="2" class="error">{$error}</td> - </tr> -{/if} -<tr> - <td align="right" valign="top">Name:</td> - <td><input type="text" size="20" maxlength="30" name="database_name" value="{$database_name|stripslashes|htmlspecialchars}"></td> -</tr> -<tr> - <td align="right" valign="top">Sort Order:</td> - <td><input type="text" size="3" maxlength="3" name="sort_order" value="{$sort_order}"></td> -</tr> -</table> -<br> -<input type='submit' name='submit' value='Submit'> -</form> +<script type="text/javascript" language="JavaScript"> + var nameString = '<?php echo translate("Please enter a name"); ?>'; + + function checkForm(frm) { + if (frm.database_name.value == '') { + alert(nameString); + frm.database_name.focus(); + return false; + } + return true; + } +</script> + +<b><?php echo $page_title; ?> </b> +<hr size="1"> +<form method="post" onsubmit="return checkForm(this)"> + <table border='0'> + <?php if ($error) { ?> + <tr> + <td colspan="2" class="error"> + <?php echo $error; ?> + </td> + </tr> + <?php } ?> + <tr> + <td align="right" valign="top"> + <?php echo translate("Name"); ?>: + </td> + <td> + <input type="text" size="20" maxlength="30" name="database_name" value="<?php echo stripslashes(htmlspecialchars($database_name)); ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Sort Order"); ?>: + </td> + <td> + <input type="text" size="3" maxlength="3" name="sort_order" value="<?php echo $sort_order; ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + + </td> + <td> + <input type='submit' name='submit' value='<?php echo translate("Submit"); ?>'> + <input type="hidden" name="database_id" value="<?php echo $database_id; ?>"> + <input type="hidden" name="use_js" value="<?php echo $_REQUEST['use_js']; ?>"> + <input type="hidden" name="op" value="save"> + </td> + </tr> + </table> +</form> Index: databaselist.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/databaselist.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- databaselist.html 30 Sep 2002 18:02:06 -0000 1.4 +++ databaselist.html 25 Oct 2004 12:07:03 -0000 1.5 @@ -1,47 +1,36 @@ <script language="JavaScript"> <!-- - var me = '{$SCRIPT_NAME}'; - {literal} + var me = '<?php echo $_SERVER['SCRIPT_NAME']; ?>'; function popupDatabase(id) { window.open(me + '?op=edit&use_js=1&database_id='+id, 'ewin', 'dependent=yes,width=350,height=300,scrollbars=1'); } - {/literal} // --> </script> <table border="0" width="100%"> <tr> <td valign="top"> - <b> {$STRING.databaselist'}</b> - <a href="{$SCRIPT_NAME}?op=edit&database_id=0" onClick="popupDatabase(0); return false;">{$STRING.addnew} {$STRING.database}</a> + <b> <?php echo translate("Database list"); ?></b> - <a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=edit&database_id=0" onClick="popupDatabase(0); return false;"><?php echo translate("Add new database"); ?></a> <hr size="1"> - <table border="0" cellpadding="2" cellspacing="1" width="100%"> + <table class="bordertable" align="center"> <tr> - <th class="{$headers.name.class}"><a href="{$headers.name.url}">{$STRING.name}</a></th> - <th class="{$headers.sortorder.class}"><a href="{$headers.sortorder.url}">{$STRING.sortorder}</a></th> - <th>Delete</th> + <th class="<?php echo $headers['name']['class']; ?>"><a href="<?php echo $headers['name']['url']; ?>"><?php echo translate("Name"); ?></a></th> + <th class="<?php echo $headers['sortorder']['class']; ?>"><a href="<?php echo $headers['sortorder']['url']; ?>"><?php echo translate("Sort Order"); ?></a></th> + <th> </th> </tr> - {section name=database loop=$databases} - <tr{if $smarty.section.database.iteration is even} class="alt"{/if}> - <td><a href="{$SCRIPT_NAME}?op=edit&database_id={$databases[database].database_id}" onClick="popupDatabase({$databases[database].database_id}); return false;">{$databases[database].database_name|stripslashes}</a></td> - <td align="center">{$databases[database].sort_order}</td> - <td align="center"> - {if not $databases[database].bug_count} - <a href="{$SCRIPT_NAME}?op=del&database_id={$databases[database].database_id}" onClick="return confirm('{$STRING.suredeletedb}')">{$STRING.delete}</a> - {/if} - </td> - </tr> - {/section} + <?php for ($i = 0, $count = count($databases); $i < $count; $i++) { ?> <tr> - <td colspan="3" align="center"> - <br> - {$first} - {$last} of {$total} - <br> - {if $pages ne "1"}[ {$pages} ]{/if} - <br> + <td><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=edit&database_id=<?php echo $databases[$i]['database_id']; ?>" onClick="popupDatabase(<?php echo $databases[$i]['database_id']; ?>); return false;"><?php echo stripslashes($databases[$i]['database_name']); ?></a></td> + <td align="center"><?php echo $databases[$i]['sort_order']; ?></td> + <td align="center"> + <?php if (!$databases[$i]['bug_count']) { ?> + <a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=del&database_id=<?php echo $databases[$i]['database_id']; ?>" onClick="return confirm('<?php echo translate("Are you sure you want to delete this item?"); ?>')"><?php echo translate("Delete"); ?></a> + <?php } ?> </td> </tr> + <?php } ?> </table> - <br> + <?php include('pagination.html'); ?> </td> </tr> </table> Index: group-edit.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/group-edit.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- group-edit.html 19 Apr 2003 18:12:41 -0000 1.6 +++ group-edit.html 25 Oct 2004 12:07:03 -0000 1.7 @@ -1,36 +1,53 @@ -<script language="JavaScript"> - var nameString = '{$STRING.givename}'; - - {literal} - function checkForm(frm) { - if (frm.group_name.value == '') { - alert(nameString); - frm.group_name.focus(); - return false; - } - return true; - } - {/literal} -</script> -<b>{$page_title} </b> -<hr size="1"> -<form action="{$smarty.server.PHP_SELF}" method="post" onSubmit="return checkForm(this)"> -<input type="hidden" name="group_id" value="{$group_id}"> -<input type="hidden" name="use_js" value="{$smarty.request.use_js}"> -<table border='0'> -{if $error} - <tr> - <td colspan="2" class="error">{$error}</td> - </tr> -{/if} -<tr> - <td align="right" valign="top">Name:</td> - <td><input type="text" size="20" maxlength="40" name="group_name" value="{$group_name|stripslashes|htmlspecialchars}"></td> -</tr> -<tr> - <td align="right" valign="top">Assignable:</td> - <td><input type="checkbox" name="assignable" value="1" {if $assignable > 0}checked="checked"{/if}></td> -</table> -<br> -<input type='submit' name='submit' value='Submit'> -</form> +<script type="text/javascript" language="JavaScript"> + var nameString = '<?php echo translate("Please enter a name"); ?>'; + + function checkForm(frm) { + if (frm.group_name.value == '') { + alert(nameString); + frm.group_name.focus(); + return false; + } + return true; + } +</script> +<b><?php echo $page_title; ?></b> +<hr size="1"> +<form method="post" onsubmit="return checkForm(this)"> + <table border='0'> + <?php if (!empty($error)) { ?> + <tr> + <td colspan="2" class="error"> + <?php echo $error; ?> + </td> + </tr> + <?php } ?> + <tr> + <td align="right" valign="top"> + Name: + </td> + <td> + <input type="text" size="20" maxlength="40" name="group_name" value="<?php echo stripslashes(htmlspecialchars($group_name)); ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + Assignable: + </td> + <td> + <input type="checkbox" name="assignable" value="1" <?php if ($assignable > 0) echo 'checked'; ?>> + </td> + </tr> + <tr> + <td align="right" valign="top"> + + </td> + <td> + <input type='submit' value='<?php echo translate("Submit"); ?>'> + <input type="hidden" name="op" value="save"> + <input type="hidden" name="group_id" value="<?php echo $group_id; ?>"> + <input type="hidden" name="use_js" value="<?php echo $_REQUEST['use_js']; ?>"> + </td> + </tr> + </table> +</form> + Index: grouplist.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/grouplist.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- grouplist.html 19 Apr 2003 18:12:42 -0000 1.7 +++ grouplist.html 25 Oct 2004 12:07:03 -0000 1.8 @@ -1,52 +1,42 @@ <script language="JavaScript"> <!-- - var me = '{$smarty.server.PHP_SELF}'; - {literal} + var me = '<?php echo $_SERVER['SCRIPT_NAME']; ?>'; function popupGroup(id) { window.open(me + '?op=edit&use_js=1&group_id='+id, 'ewin', 'dependent=yes,width=250,height=150,scrollbars=1'); } - {/literal} // --> </script> <table border="0" width="100%"> <tr> <td valign="top"> - <b> {$page_title}</b> - <a href="{$smarty.server.PHP_SELF}?op=edit&group_id=0" onClick="popupGroup(0); return false;">{$STRING.addnew} Group</a> + <b><?php echo $page_title; ?></b> - <a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=edit&group_id=0" onClick="popupGroup(0); return false;"><?php echo translate("Add new group"); ?></a> <hr size="1"> - <table border="0" width="100%"> + <table class="bordertable" align="center"> <tr> - <th class="{$headers.name.class}"><a href="{$headers.name.url}">Name</a></th> - <th class="{$headers.count.class}"><a href="{$headers.count.url}">Users</a></th> + <th class="<?php echo $headers['name']['class']; ?>"><a href="<?php echo $headers['name']['url']; ?>"><?php echo translate("Name"); ?></a></th> + <th class="<?php echo $headers['count']['class']; ?>"><a href="<?php echo $headers['count']['url']; ?>"><?php echo translate("Users"); ?></a></th> <th> </th> </tr> - {section name=group loop=$groups} - <tr{if $smarty.section.group.iteration is even} class="alt"{/if}> - <td><a href="{$smarty.server.PHP_SELF}?op=edit&group_id={$groups[group].group_id}" onClick="popupGroup({$groups[group].group_id}); return false;">{$groups[group].group_name|stripslashes}</a></td> - <td align="center">{$groups[group].count}</td> + <?php for ($i = 0, $count = count($groups); $i < $count; $i++) { ?> + <tr> + <td><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=edit&group_id=<?php echo $groups[$i]['group_id']; ?>" onClick="popupGroup(<?php echo $groups[$i]['group_id']; ?>); return false;"><?php echo stripslashes($groups[$i]['group_name']); ?></a></td> + <td align="center"><?php echo $groups[$i]['count']; ?></td> <td align="center"> - {if $groups[group].locked} - Locked - {else} - <a href="{$smarty.server.PHP_SELF}?op=del&group_id={$groups[group].group_id}" onClick="return confirm('This will remove all user assignments to this group and the group itself. Continue?')">Delete</a> | - <a href="{$smarty.server.PHP_SELF}?op=purge&group_id={$groups[group].group_id}" onClick="return confirm('This will remove all user assignments to this group. Continue?')">Purge</a> - {/if} - {if $groups[group].assignable} - | Assignable - {/if} + <?php if($groups[$i]['locked']) { + echo translate("Locked"); + } else { ?> + <a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=del&group_id=<?php echo $groups[$i]['group_id']; ?>" onClick="return confirm('<?php echo translate("This will remove all user assignments to this group and the group itself. Continue?"); ?>')"><?php echo translate("Delete"); ?></a> | + <a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=purge&group_id=<?php echo $groups[$i]['group_id']; ?>" onClick="return confirm('<?php echo translate("This will remove all user assignments to this group. Continue?"); ?>')"><?php echo translate("Purge"); ?></a> + <?php } ?> + <?php if($groups[$i]['assignable']) { ?> + | <?php echo translate("Assignable"); ?> + <?php } ?> </td> </tr> - {/section} - <tr> - <td colspan="3" align="center"> - <br> - {$first} - {$last} of {$total} - <br> - {if $pages ne "1"}[ {$pages} ]{/if} - <br> - </td> - </tr> - </table> + <?php } ?> + </table> + <?php include('pagination.html'); ?> </td> </tr> </table> Index: os-edit.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/os-edit.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- os-edit.html 5 Nov 2002 20:58:19 -0000 1.5 +++ os-edit.html 25 Oct 2004 12:07:03 -0000 1.6 @@ -1,43 +1,60 @@ -<script language="JavaScript"> - var nameString = '{$STRING.givename}'; - - {literal} - function checkForm(frm) { - if (frm.os_name.value == '') { - alert(nameString); - frm.os_name.focus(); - return false; - } - return true; - } - {/literal} -</script> -<b>{$page_title} </b> -<hr size="1"> -<form action="{$smarty.server.PHP_SELF}" method="post" onSubmit="return checkForm(this)"> -<input type="hidden" name="os_id" value="{$os_id}"> -<input type="hidden" name="use_js" value="{$smarty.request.use_js}"> -<table border='0'> -{if $error} - <tr> - <td colspan="2" class="error">{$error}</td> - </tr> -{/if} -<tr> - <td align="right" valign="top">Name:</td> - <td><input type="text" size="20" maxlength="40" name="os_name" value="{$os_name}"></td> -</tr> -<tr> - <td align="right" valign="top">Regex:</td> - <td><input type="text" size="20" maxlength="40" name="regex" value="{$regex}"></td> -</tr> -<tr> - <td align="right" valign="top">Sort Order:</td> - <td><input type="text" size="3" maxlength="3" name="sort_order" value="{$sort_order}"></td> -</tr> - -</table> -<br> -<input type='submit' name='submit' value='Submit'> -</form> -</td> +<script type="text/javascript" language="JavaScript"> + var nameString = '<?php echo translate("Please enter a name"); ?>'; + + function checkForm(frm) { + if (frm.os_name.value == '') { + alert(nameString); + frm.os_name.focus(); + return false; + } + return true; + } +</script> +<b><?php echo $page_title; ?></b> +<hr size="1"> +<form method="post" onsubmit="return checkForm(this)"> + <table border='0'> + <?php if (!empty($error)) { ?> + <tr> + <td colspan="2" class="error"> + <?php echo $error; ?> + </td> + </tr> + <?php } ?> + <tr> + <td align="right" valign="top"> + <?php echo translate("Name"); ?>: + </td> + <td> + <input type="text" size="20" maxlength="40" name="os_name" value="<?php echo $os_name; ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Regex"); ?>: + </td> + <td> + <input type="text" size="20" maxlength="40" name="regex" value="<?php echo $regex; ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Sort Order"); ?>: + </td> + <td> + <input type="text" size="3" maxlength="3" name="sort_order" value="<?php echo $sort_order; ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + + </td> + <td> + <input type='submit' name='submit' value='<?php echo translate("Submit"); ?>'> + <input type="hidden" name="op" value="save"> + <input type="hidden" name="os_id" value="<?php echo $os_id; ?>"> + <input type="hidden" name="use_js" value="<?php echo $_REQUEST['use_js']; ?>"> + </td> + </tr> + </table> +</form> Index: oslist.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/oslist.html,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- oslist.html 18 May 2002 03:00:50 -0000 1.9 +++ oslist.html 25 Oct 2004 12:07:03 -0000 1.10 @@ -1,54 +1,44 @@ <script language="JavaScript"> <!-- - var me = '{$smarty.server.PHP_SELF}'; - {literal} + var me = '<?php echo $_SERVER['SCRIPT_NAME']; ?>'; function popupOS(id) { window.open(me + '?op=edit&use_js=1&os_id='+id, 'ewin', 'dependent=yes,width=350,height=300,scrollbars=1'); } - {/literal} // --> </script> <table border="0" width="100%"> <tr> <td valign="top"> - <b> {$page_title}</b> - <a href="{$smarty.server.PHP_SELF}?op=edit&os_id=0" onClick="popupOS(0); return false;">{$STRING.addnew} OS</a> + <b> <?php echo $page_title; ?></b> - <a href="os.php?op=edit&os_id=0" onClick="popupOS(0); return false;"><?php echo translate("Add new operating system"); ?></a> <hr size="1"> - <table border="0" cellpadding="2" cellspacing="1" width="100%"> + <table class="bordertable" align="center"> <tr> - <th class="{$headers.name.class}"><a href="{$headers.name.url}">Name</a></th> - <th class="{$headers.regex.class}"><a href="{$headers.regex.url}">Regex</a></th> - <th class="{$headers.sortorder.class}"><a href="{$headers.sortorder.url}">Sort Order</a></th> - <th>Delete</th> + <th class="<?php echo $headers['name']['class']; ?>"><a href="<?php echo $headers['name']['url']; ?>"><?php echo translate("Name"); ?></a></th> + <th class="<?php echo $headers['regex']['class']; ?>"><a href="<?php echo $headers['regex']['url']; ?>"><?php echo translate("Regex"); ?></a></th> + <th class="<?php echo $headers['sortorder']['class']; ?>"><a href="<?php echo $headers['sortorder']['url']; ?>"><?php echo translate("Sort Order"); ?></a></th> + <th> </th> </tr> - {section name=os loop=$oses} - <tr{if $smarty.section.os.iteration is even} class="alt"{/if}> - <td><a href="{$smarty.server.PHP_SELF}?op=edit&os_id={$oses[os].os_id}" onClick="popupOS({$oses[os].os_id}); return false;">{$oses[os].os_name|stripslashes}</a></td> - <td> {$oses[os].regex}</td> - <td align="center">{$oses[os].sort_order}</td> + <?php for ($i = 0, $count = count($oses); $i < $count; $i++) { ?> + <tr> + <td><a href="os.php?op=edit&os_id=<?php echo $oses[$i]['os_id']; ?>" onClick="popupOS(<?php echo $oses[$i]['os_id']; ?>); return false;"><?php echo stripslashes($oses[$i]['os_name']); ?></a></td> + <td> <?php echo $oses[$i]['regex']; ?></td> + <td align="center"><?php echo $oses[$i]['sort_order']; ?></td> <td align="center"> - {if not $oses[os].bug_count} - <a href="{$smarty.server.PHP_SELF}?op=del&os_id={$oses[os].os_id}" onClick="return confirm('Are you sure you want to delete this OS?')">Delete</a> - {/if} + <?php if (!$oses[$i]['bug_count']) { ?> + <a href="os.php?op=del&os_id=<?php echo $oses[$i]['os_id']; ?>" onClick="return confirm('<?php echo translate("Are you sure you want to delete this OS"); ?>?')"><?php echo translate("Delete"); ?></a> + <?php } ?> </td> </tr> - {/section} - <tr> - <td colspan="3" align="center"> - <br> - {$first} - {$last} of {$total} - <br> - {if $pages ne "1"}[ {$pages} ]{/if} - <br> - </td> - </tr> + <?php } ?> </table> - <br> - <div class="info"> - OSes with a Sort Order = 0 will not be selectable by users - <br> - Only those OSes that have no bugs referencing them can be deleted - </div> + <?php include('pagination.html'); ?> + <br> + <div class="info"> + <?php echo translate("Items with a Sort Order = 0 will not be selectable by users."); ?> + <br> + <?php echo translate("Only those items that have no bugs referencing them can be deleted."); ?> + </div> </td> </tr> </table> Index: project-add.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/project-add.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- project-add.html 30 Oct 2002 22:34:57 -0000 1.6 +++ project-add.html 25 Oct 2004 12:07:03 -0000 1.7 @@ -1,10 +1,9 @@ <script language="JavaScript"> <!-- - var nameString = '{$STRING.givename}'; - var descString = '{$STRING.givedesc}'; - var versionString = '{$STRING.giveversion}'; + var nameString = '<?php echo translate("Please enter a name"); ?>'; + var descString = '<?php echo translate("Please enter a description"); ?>'; + var versionString = '<?php echo translate("Please enter a version"); ?>'; - {literal} function checkForm(frm) { if (frm.project_name.value == '') { alert(nameString); @@ -33,42 +32,39 @@ } return true; } - {/literal} // --> </script> <form action="project.php" method="post" onSubmit="return checkForm(this)"> -<input type="hidden" name="id" value="0"> -<input type="hidden" name="do" value="project"> <table border="0"> <tr> <td valign="top" rowspan="2" width="320"> <table border="0"> <tr> <td> - <b>Project Information</b> + <b><?php echo translate("Project Information"); ?></b> <hr size="1"> - {if $error}<div class="error">{$error}</div>{/if} + <?php if ($error) { ?><div class="error"><?php echo $error; ?></div><?php } ?> </td> </tr> <tr> <td valign="top"> - Name: + <?php echo translate("Name"); ?>: <br> - <input type="text" size="30" maxlength="30" name="project_name" value="{$project_name|stripslashes|htmlspecialchars}"> + <input type="text" size="30" maxlength="30" name="project_name" value="<?php echo htmlspecialchars(stripslashes($project_name)); ?>"> </td> </tr> <tr> <td valign="top"> - Description: + <?php echo translate("Description"); ?>: <br> - <textarea name="project_desc" cols=40 rows=5 wrap=virtual>{$project_desc|stripslashes|htmlspecialchars}</textarea> + <textarea name="project_desc" cols=40 rows=5 wrap=virtual><?php echo stripslashes(htmlspecialchars($project_desc)); ?></textarea> </td> </tr> <tr> <td valign="top"> - Active: + <?php echo translate("Active"); ?>: <br> - <input type="checkbox" name="active" value="1" {if $active}checked{/if}> + <input type="checkbox" name="active" value="1" <?php if ($active) echo 'checked'; ?>> </td> </tr> </table> @@ -77,16 +73,16 @@ <table border="0"> <tr> <td> - <b>Version Information</b> + <b><?php echo translate("Version Information"); ?></b> <hr size="1"> - {if $version_error}<div class="error">{$version_error}</div>{/if} + <?php if ($version_error) { ?><div class="error"><?php echo $version_error; ?></div><?php } ?> </td> </tr> <tr> <td valign="top"> - Initial Version: + <?php echo translate("Initial Version"); ?>: <br> - <input type="text" size="30" maxlength="30" name="version_name" value="{$version_name|stripslashes|htmlspecialchars}"> + <input type="text" size="30" maxlength="30" name="version_name" value="<?php echo stripslashes(htmlspecialchars($version_name)); ?>"> </td> </tr> </table> @@ -97,35 +93,37 @@ <table border="0"> <tr> <td> - <b>Component Information</b> + <b><?php echo translate("Component Information"); ?></b> <hr size="1"> - {if $component_error}<div class="error">{$component_error}</div>{/if} + <?php if ($component_error) { ?><div class="error"><?php echo $component_error; ?></div><?php } ?> </td> </tr> <tr> <td valign="top"> - Initial Component Name: + <?php echo translate("Initial Component Name"); ?>: <br> - <input type="text" size="30" maxlength="30" name="component_name" value="{$component_name|stripslashes|htmlspecialchars}"> + <input type="text" size="30" maxlength="30" name="component_name" value="<?php echo stripslashes(htmlspecialchars($component_name)); ?>"> </td> </tr> <tr> <td valign="top"> - Description: + <?php echo translate("Description"); ?>: <br> - <textarea name="component_desc" cols="30">{$component_desc|stripslashes|htmlspecialchars}</textarea> + <textarea name="component_desc" cols="30"><?php echo stripslashes(htmlspecialchars($component_desc)); ?></textarea> </td> </tr> <tr> <td valign="top"> - Owner: + <?php echo translate("Owner"); ?>: <br> - <select name="owner"><option value="0">None</option>{build_select box=owner selected=$owner}</select> + <select name="owner"><option value="0">None</option><?php build_select('owner', $owner); ?></select> </td> </tr> </table> </td> </tr> </table> -<input type='submit' name='submit' value='Submit'> +<input type='submit' name='submit' value='<?php echo translate("Submit"); ?>'> +<input type="hidden" name="id" value="0"> +<input type="hidden" name="op" value="save_project"> </form> Index: project-edit.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/project-edit.html,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- project-edit.html 7 Apr 2003 18:55:40 -0000 1.13 +++ project-edit.html 25 Oct 2004 12:07:03 -0000 1.14 @@ -1,11 +1,9 @@ <script language="JavaScript"> <!-- - var me = '{$smarty.server.PHP_SELF}'; - var projectId = '{$project_id}'; - var nameString = '{$STRING.givename}'; - var descString = '{$STRING.givedesc}'; + var projectId = '<?php echo $project_id; ?>'; + var nameString = '<?php echo translate("Please enter a name"); ?>'; + var descString = '<?php echo translate("Please enter a description"); ?>'; - {literal} function checkForm(frm) { if (frm.project_name.value == '') { alert(nameString); @@ -21,130 +19,129 @@ } function popupComponent(id) { - window.open(me + '?op=edit_component&project_id='+projectId+'&use_js=1&id='+id, 'ewin', 'dependent=yes,width=450,height=300,scrollbars=1'); + window.open('project.php?op=edit_component&project_id='+projectId+'&use_js=1&id='+id, 'ewin', 'dependent=yes,width=450,height=300,scrollbars=1'); return false; } function popupVersion(id) { - window.open(me + '?op=edit_version&project_id='+projectId+'&use_js=1&id='+id, 'ewin', 'dependent=yes,width=250,height=150,scrollbars=1'); + window.open('project.php?op=edit_version&project_id='+projectId+'&use_js=1&id='+id, 'ewin', 'dependent=yes,width=250,height=150,scrollbars=1'); return false; } - {/literal} // --> </script> -<form action="{$smarty.server.PHP_SELF}" method="post" onSubmit="return checkForm(this)"> -<input type="hidden" name="id" value="{$project_id}"> -<input type="hidden" name="do" value="project"> +<form method="post" onSubmit="return checkForm(this)"> <table border="0" cellpadding="2" cellspacing="2" width="100%"> - {if $error} + <?php if($error) { ?> <tr> - <td colspan="2" class="error">{$error}</td> + <td colspan="2" class="error"><?php echo $error; ?></td> </tr> - {/if} + <?php } ?> <tr> <td valign="top" width="360"> - Name: + <?php echo translate("Name"); ?>: <br> - <input type="text" size="30" maxlength="30" name="project_name" value="{$project_name|stripslashes|htmlspecialchars}"> + <input type="text" size="30" maxlength="30" name="project_name" value="<?php echo stripslashes(htmlspecialchars($project_name)); ?>"> </td> <td valign="top" rowspan="3"> - Only users in the following groups can see this project: + <?php echo translate("Only users in the following groups can see this project"); ?>: <br> <select name="usergroup[]" size="10" multiple> - {build_select box=group selected=$project_groups project=1} + <?php build_select('group', $project_groups, 1); ?> </select> </td> </tr> <tr> <td valign="top"> - Description: + <?php echo translate("Description"); ?>: <br> - <textarea name="project_desc" cols=40 rows=5 wrap=virtual>{$project_desc|stripslashes|htmlspecialchars}</textarea> + <textarea name="project_desc" cols=40 rows=5 wrap=virtual><?php echo stripslashes(htmlspecialchars($project_desc)); ?></textarea> </td> </tr> <tr> <td valign="top"> - Active: + <?php echo translate("Active"); ?>: <br> - <input type="checkbox" name="active" value="1" {if $active}checked{/if}> + <input type="checkbox" name="active" value="1" <?php if($active) echo 'checked'; ?>> </td> </tr> -{if isset($perm) and $perm->have_perm('Administrator')} +<?php if(isset($perm) and $perm->have_perm('Administrator')) { ?> <tr> <td> - These developers can administer this project: + <?php echo translate("These developers can administer this project"); ?>: <br> <select name="useradmin[]" size="10" multiple> - {build_select box=owner selected=$project_admins} + <?php build_select('owner', $project_admins); ?> </select> </td> </tr> -{else} +<?php } else { ?> <tr> <td> - These developers can administer this project: + <?php echo translate("These developers can administer this project"); ?>: <br> - {section name=admin loop=$project_admins} - {$project_developers[admin]}<br /> - {/section} + <?php for ($i = 0, $count = count($project_admins); $i < $count; $i++) echo $project_developers[$i].'<br />'; ?> </td> </tr> -{/if} +<?php } ?> </table> -<input type='submit' name='submit' value='Submit'> +<input type='submit' name='submit' value='<?php echo translate("Submit"); ?>'> +<input type="hidden" name="id" value="<?php echo $project_id; ?>"> +<input type="hidden" name="op" value="save_project"> </form> <br> <table border="0" width="100%"> <tr> <td width="50%" valign="top"> <br> - <b>Versions</b> - <a href="{$smarty.server.PHP_SELF}?op=edit_version&project_id={$project_id}&id=0" onClick="return popupVersion(0);">{$STRING.addnew} Version</a> + <b><?php echo translate("Versions"); ?></b> - <a href="project.php?op=edit_version&project_id=<?php echo $project_id; ?>&id=0" onClick="return popupVersion(0);"><?php echo translate("Add new version"); ?></a> <hr size="1"> - <table border="0" cellpadding="2" width="100%"> + <table class="bordertable" align="center"> <tr> - <th>Version</th> - <th>Created</th> - <th>Active</th> - <th>Delete</th> + <th><?php echo translate("Version"); ?></th> + <th><?php echo translate("Created"); ?></th> + <th><?php echo translate("Active"); ?></th> + <th><?php echo translate("Delete"); ?></th> </tr> - {section name=version loop=$versions} - <tr{if $smarty.section.version.iteration is even} class="alt"{/if}> - <td><a href="{$smarty.server.PHP_SELF}?op=edit_version&id={$versions[version].version_id}" onClick="popupVersion({$versions[version].version_id}); return false;">{$versions[version].version_name|stripslashes}</a></td> - <td align="center">{$versions[version].created_date|date:DATE_FORMAT}</td> - <td align="center">{if $versions[version].active}Yes{else}No{/if}</td> - <td align="center">{if not $versions[version].bug_count}<a href="{$smarty.server.PHP_SELF}?op=del_version&id={$versions[version].version_id}&project_id={$project_id}">Delete</a>{/if}</td> + <?php for ($i = 0, $count = count($versions); $i < $count; $i++) { ?> + <tr> + <td><a href="project.php?op=edit_version&id=<?php echo $versions[$i]['version_id']; ?>" onClick="popupVersion(<?php echo $versions[$i]['version_id']; ?>); return false;"><?php echo stripslashes(htmlspecialchars($versions[$i]['version_name'])); ?></a></td> + <td align="center"><?php echo date(DATE_FORMAT, $versions[$i]['created_date']); ?></td> + <td align="center"><?php echo $versions[$i]['active'] ? translate("Yes") : translate("No"); ?></td> + <td align="center"><?php if(!$versions[$i]['bug_count']) { ?><a href="project.php?op=del_version&id=<?php echo $versions[$i]['version_id']; ?>&project_id=<?php echo $project_id; ?>"><?php echo translate("Delete"); ?></a><?php } ?></td> </tr> - {sectionelse} + <?php } ?> + <?php if (!$count) { ?> <tr> - <td colspan="4" align="center">{$STRING.noversions}</td> + <td colspan="4" align="center"><?php echo translate("No versions found"); ?></td> </tr> - {/section} + <?php } ?> </table> </td> <td width="50%" valign="top"> <br> - <b>Components</b> - <a href="{$smarty.server.PHP_SELF}?op=edit_component&project_id={$project_id}&id=0" onClick="return popupComponent(0);">{$STRING.addnew} Component</a> + <b><?php echo translate("Components"); ?></b> - <a href="project.php?op=edit_component&project_id=<?php echo $project_id; ?>&id=0" onClick="return popupComponent(0);"><?php echo translate("Add new component"); ?></a> <hr size="1"> - <table border="0" cellpadding="2" width="100%"> + <table class="bordertable" align="center"> <tr> - <th>Component</th> - <th>Created</th> - <th>Active</th> - <th>Delete</th> + <th><?php echo translate("Component"); ?></th> + <th><?php echo translate("Created"); ?></th> + <th><?php echo translate("Active"); ?></th> + <th><?php echo translate("Delete"); ?></th> </tr> - {section name=component loop=$components} - <tr{if $smarty.section.component.iteration is even} class="alt"{/if}> - <td><a href="{$smarty.server.PHP_SELF}?op=edit_component&id={$components[component].component_id}" onClick="popupComponent({$components[component].component_id}); return false;">{$components[component].component_name|stripslashes}</a></td> - <td align="center">{$components[component].created_date|date:DATE_FORMAT}</td> - <td align="center">{if $components[component].active}Yes{else}No{/if}</td> - <td align="center">{if not $components[component].bug_count}<a href="{$smarty.server.PHP_SELF}?op=del_component&id={$components[component].component_id}&project_id={$project_id}">Delete</a>{/if}</td> + <?php for ($i = 0, $count = count($components); $i < $count; $i++) { ?> + <tr> + <td><a href="project.php?op=edit_component&id=<?php echo $components[$i]['component_id']; ?>" onClick="popupComponent(<?php echo $components[$i]['component_id']; ?>); return false;"><?php echo stripslashes(htmlspecialchars($components[$i]['component_name'])); ?></a></td> + <td align="center"><?php echo date(DATE_FORMAT, $components[$i]['created_date']); ?></td> + <td align="center"><?php echo $components[$i]['active'] ? translate("Yes") : translate("No"); ?></td> + <td align="center"><?php if(!$components[$i]['bug_count']) { ?><a href="project.php?op=del_component&id=<?php echo $components[$i]['component_id']; ?>&project_id=<?php echo $project_id; ?>"><?php echo translate("Delete"); ?></a><?php } ?></td> </tr> - {sectionelse} + <?php } ?> + <?php if (!$count) { ?> <tr> - <td colspan="4" align="center">{$STRING.nocomponents}</td> + <td colspan="4" align="center"><?php echo translate("No components found"); ?></td> </tr> - {/section} + <?php } ?> </table> </td> </tr> Index: projectlist.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/projectlist.html,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- projectlist.html 7 Apr 2003 18:55:40 -0000 1.8 +++ projectlist.html 25 Oct 2004 12:07:03 -0000 1.9 @@ -1,31 +1,30 @@ <table border="0" width="100%"> <tr> <td valign="top"> - <b> {$page_title}</b> - <a href="{$smarty.server.PHP_SELF}?op=add">{$STRING.addnew} Project</a> + <b> <?php echo $page_title; ?></b> + <?php if (isset($perm) and $perm->have_perm('Administrator')) + echo " - <a href=\"{$_SERVER['SCRIPT_NAME']}?op=add\">".translate("Add new project")."</a>"; + ?> <hr size="1"> - <table border="0" cellpadding="2" cellspacing="1" width="100%"> + <table class="bordertable" align="center"> <tr> - <th class="{$headers.name.class}"><a href="{$headers.name.url}">Project</a></th> - <th class="{$headers.createddate.class}"><a href="{$headers.createddate.url}">Created</a></th> - <th class="{$headers.active.class}"><a href="{$headers.active.url}">Active</a></th> + <th class="<?php echo $headers['name']['class']; ?>"><a href="<?php echo $headers['name']['url']; ?>"><?php echo translate("Project"); ?></a></th> + <th class="<?php echo $headers['createddate']['class']; ?>"><a href="<?php echo $headers['createddate']['url']; ?>"><?php echo translate("Created Date"); ?></a></th> + <th class="<?php echo $headers['active']['class']; ?>"><a href="<?php echo $headers['active']['url']; ?>"><?php echo translate("Active"); ?></a></th> </tr> - {section name=project loop=$projects} - <tr{if $smarty.section.project.iteration is even} class="alt"{/if}> - <td>{if $perm->have_perm('Administrator') or $perm->have_perm_proj($projects[project].project_id)}<a href="{$smarty.server.PHP_SELF}?op=edit&id={$projects[project].project_id}">{$projects[project].project_name|stripslashes}</a>{else}{$projects[project].project_name|stripslashes}{/if}</td> - <td align="center">{$projects[project].created_date|date:DATE_FORMAT}</td> - <td align="center">{if $projects[project].active}Yes{else}No{/if}</td> + <?php for ($i = 0, $count = count($projects); $i < $count; $i++) { ?> + <tr> + <td> + <?php if (isset($perm) and ($perm->have_perm('Administrator') or $perm->have_perm_proj($projects[$i]['project_id']))) { ?> + <a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?op=edit&id=<?php echo $projects[$i]['project_id']; ?>"><?php echo stripslashes($projects[$i]['project_name']); ?></a> + <?php } else { echo stripslashes($projects[$i]['project_name']); } ?> + </td> + <td align="center"><?php echo date(DATE_FORMAT, $projects[$i]['created_date']); ?></td> + <td align="center"><?php echo $projects[$i]['active'] ? translate("Yes") : translate("No"); ?></td> </tr> - {/section} - <tr> - <td colspan="3" align="center"> - <br> - {$first} - {$last} of {$total} - <br> - {if $pages ne "1"}[ {$pages} ]{/if} - <br> - </td> - </tr> + <?php } ?> </table> + <?php include('pagination.html'); ?> </td> </tr> </table> Index: resolution-edit.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/resolution-edit.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- resolution-edit.html 5 Nov 2002 20:58:19 -0000 1.5 +++ resolution-edit.html 25 Oct 2004 12:07:03 -0000 1.6 @@ -1,48 +1,68 @@ -<script language="JavaScript"> - var nameString = '{$STRING.givename}'; - var descString = '{$STRING.givedesc}'; - - {literal} - function checkForm(frm) { - if (frm.resolution_name.value == '') { - alert(nameString); - frm.resolution_name.focus(); - return false; - } - if (frm.resolution_desc.value == '') { - alert(descString); - frm.resolution_desc.focus(); - return false; - } - return true; - } - {/literal} -</script> -<b>{$page_title} </b> -<hr size="1"> -<form action="{$smarty.server.PHP_SELF}" method="post" onSubmit="return checkForm(this)"> -<input type="hidden" name="resolution_id" value="{$resolution_id}"> -<input type="hidden" name="use_js" value="{$smarty.request.use_js}"> -<table border='0'> -{if $error} - <tr> - <td colspan="2" class="error">{$error}</td> - </tr> -{/if} -<tr> - <td align="right" valign="top">Name:</td> - <td><input type="text" size="20" maxlength="40" name="resolution_name" value="{$resolution_name|stripslashes|htmlspecialchars}"></td> -</tr> -<tr> - <td align="right" valign="top">Description:</td> - <td><textarea name="resolution_desc" cols=20 rows=5 wrap=virtual>{$resolution_desc|stripslashes|htmlspecialchars}</textarea></td> -</tr> -<tr> - <td align="right" valign="top">Sort Order:</td> - <td><input type="text" size="3" maxlength="3" name="sort_order" value="{$sort_order}"></td> -</tr> - -</table> -<br> -<input type='submit' name='submit' value='Submit'> -</form> +<script type="text/javascript" language="JavaScript"> + var nameString = '<?php echo translate("Please enter a name"); ?>'; + var descString = '<?php echo translate("Please enter a description"); ?>'; + + function checkForm(frm) { + if (frm.resolution_name.value == '') { + alert(nameString); + frm.resolution_name.focus(); + return false; + } + if (frm.resolution_desc.value == '') { + alert(descString); + frm.resolution_desc.focus(); + return false; + } + return true; + } +</script> +<b><?php echo $page_title; ?> </b> +<hr size="1"> +<form method="post" onsubmit="return checkForm(this)"> + <table border='0'> + <?php if($error) { ?> + <tr> + <td colspan="2" class="error"> + <?php echo $error; ?> + </td> + </tr> + <?php } ?> + <tr> + <td align="right" valign="top"> + <?php echo translate("Name"); ?>: + </td> + <td> + <input type="text" size="20" maxlength="40" name="resolution_name" value="<?php echo stripslashes(htmlspecialchars($resolution_name)); ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Description"); ?>: + </td> + <td> + <textarea name="resolution_desc" cols="20" rows="5" wrap="virtual"> + <?php echo stripslashes(htmlspecialchars($resolution_desc)); ?> + </textarea> + </td> + </tr> + <tr> + <td align="right" valign="top"> + <?php echo translate("Sort Order"); ?>: + </td> + <td> + <input type="text" size="3" maxlength="3" name="sort_order" value="<?php echo $sort_order; ?>"> + </td> + </tr> + <tr> + <td align="right" valign="top"> + + </td> + <td> + <input type='submit' name='submit' value='<?php echo translate("Submit"); ?>'> + <input type="hidden" name="resolution_id" value="<?php echo $resolution_id; ?>"> + <input type="hidden" name="use_js" value="<?php echo $_REQUEST['use_js']; ?>"> + <input type="hidden" name="op" value="save"> + </td> + </tr> + </table> +</form> Index: resolutionlist.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/resolutionlist.html,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- resolutionlist.html 18 May 2002 03:00:50 -0000 1.11 +++ resolutionlist.html 25 Oct 2004 12:07:03 -0000 1.12 @@ -1,53 +1,41 @@ <script language="JavaScript"> <!-- - var me = '{$smarty.server.PHP_SELF}'; - {literal} - function popupResolution(id) { - window.open(me + '?op=edit&use_js=1&resolution_id='+id, 'ewin', 'dependent=yes,width=350,height=300,scrollbars=1'); + window.open('resolution.php?op=edit&use_js=1&resolution_id='+id, 'ewin', 'dependent=yes,width=350,height=300,scrollbars=1'); } - {/literal} // --> </script> <table border="0" width="100%"> <tr> <td valign="top"> - <b> {$page_title}</b> - <a href="{$smarty.server.PHP_SELF}?op=edit&resolution_id=0" onClick="popupResolution(0); return false;">{$STRING.addnew} Resolution</a> + <b> <?php echo $page_title; ?></b> - <a href="resolution.php?op=edit&resolution_id=0" onClick="popupResolution(0); return false;"><?php echo translate("Add new resolution"); ?></a> <hr size="1"> - <table border="0" cellpadding="2" cellspacing="1"> + <table class="bordertable" align="center"> <tr> - <th class="{$headers.name.class}"><a href="{$headers.name.url}">Name</a></th> - <th class="{$headers.description.class}"><a href="{$headers.description.url}">Description</a></th> - <th class="{$headers.sortorder.class}"><a href="{$headers.sortorder.url}">Sort Order</a></th> - <th>Delete</th> + <th class="<?php echo $headers['name']['class']; ?>"><a href="<?php echo $headers['name']['url']; ?>"><?php echo translate("Name"); ?></a></th> + <th class="<?php echo $headers['description']['class']; ?>"><a href="<?php echo $headers['description']['url']; ?>"><?php echo translate("Description"); ?></a></th> + <th class="<?php echo $headers['sortorder']['class']; ?>"><a href="<?php echo $headers['sortorder']['url']; ?>"><?php echo translate("Sort Order"); ?></a></th> + <th><?php echo translate("Delete"); ?></th> </tr> - {section name=resolution loop=$resolutions} - <tr{if $smarty.section.resolution.iteration is even} class="alt"{/if}> - <td><a href="{$smarty.server.PHP_SELF}?op=edit&resolution_id={$resolutions[resolution].resolution_id}" onClick="popupResolution({$resolutions[resolution].resolution_id}); return false;">{$resolutions[resolution].resolution_name|stripslashes}</a></td> - <td> {$resolutions[resolution].resolution_desc}</td> - <td align="center">{$resolutions[resolution].sort_order}</td> - <td align="center"> - {if not $resolutions[resolution].bug_count} - <a href="{$smarty.server.PHP_SELF}?op=del&resolution_id={$resolutions[resolution].resolution_id}" onClick="return confirm('Are you sure you want to delete this resolution?')">Delete</a> - {/if} - </td> - </tr> - {/section} + <?php for ($i = 0, $count = count($resolutions); $i < $count; $i++) { ?> <tr> - <td colspan="3" align="center"> - <br> - {$first} - {$last} of {$total} - <br> - {if $pages ne "1"}[ {$pages} ]{/if} - <br> + <td><a href="resolution.php?op=edit&resolution_id=<?php echo $resolutions[$i]['resolution_id']; ?>" onClick="popupResolution(<?php echo $resolutions[$i]['resolution_id']; ?>); return false;"><?php echo stripslashes($resolutions[$i]['resolution_name']); ?></a></td> + <td> <?php echo $resolutions[$i]['resolution_desc']; ?></td> + <td align="center"><?php echo $resolutions[$i]['sort_order']; ?></td> + <td align="center"> + <?php if(!$resolutions[$i]['bug_count']) { ?> + <a href="resolution.php?op=del&resolution_id=<?php echo $resolutions[$i]['resolution_id']; ?>" onClick="return confirm('<?php echo translate("Are you sure you want to delete this resolution?"); ?>')"><?php echo translate("Delete"); ?></a> + <?php } ?> </td> </tr> - </table> + <?php } ?> + </table> + <?php include('pagination.html'); ?> <br> <div class="info"> - Resolutions with a Sort Order = 0 will not be selectable by users - <br> - Only those Resolutions that have no bugs referencing them can be deleted + <?php echo translate("Items with a Sort Order = 0 will not be selectable by users."); ?> + <br> + <?php echo translate("Only those items that have no bugs referencing them can be deleted."); ?> </div> </td> </tr> Index: severity-edit.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/admin/severity-edit.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- severity-edit.html 5 Nov 2002 20:58:19 -0000 1.5 +++ severity-edit.html 25 Oct 2004 12:07:03 -0000 1.6 @@ -1,52 +1,77 @@ -<script language="JavaScript"> - var nameString = '{$STRING.givename}'; - var descString = '{$STRING.givedesc}'; - - {literal} - function checkForm(frm) { - if (frm.severity_name.value == '') { - alert(nameString); - frm.severity_name.focus(); - return false; - } - if (frm.severity_desc.value == '') { - alert(descString); - frm.severity_desc.focus(); - return false; - } - return true; - } - {/literal} -</script> -<b>{$page_title} </b> -<hr size="1"> -<form action="{$smarty.server.PHP_SELF}" method="post" onSubmit="return checkForm(this)"> -<input type="hidden" name="severity_id" value="{$severity_id}"> -<input type="hidden" name="use_js" value="{$smarty.request.use_js}"> -<table border='0'> -{if $error} - <tr> - <td colspan="2" class="error">{$error}</td> - </tr> -{/if} -<tr> - <td align="right" valign="top">Name:</td> - <td><input type="text" size="20" maxlength="40" name="severity_name" value="{$severity_name|stripslashes|htmlspecialchars}"></td> -</tr> -<tr> - <td align="right" valign="top">Description:</td> - <td><textarea name="severity_desc" cols=20 rows=5 wrap=virtual>{$severity_desc|stripslashes|htmlspecialchars}</textarea></td> -</tr> -<tr> - <td align="right" valign="top">Sort Order:</td> - <td><input type="text" size="3" maxlength="3" name="sort_order" value="{$sort_order}"></td> -</tr> -<tr> - <td align="right" valign="top">Row Color:</td> - <td><input type="text" size="11" maxlength="10" name="severity_color" value="{$severity_color}"></td> -</tr> - -</table> -<br> -<input type='submit' name='submit' value='Submit'> -</form> +<script type="text/javascript" language="JavaScript"> + var nameString = '<?php echo translate("Please enter a name"); ?>'; + var descString = '<?php echo translate("Please enter a description"); ?>'; + + function checkForm(frm) { + if (frm.severity_name.value == '') { + alert(nameString); + frm.severity_name.foc... [truncated message content] |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:53
|
Update of /cvsroot/phpbt/phpbt/inc/htmlMimeMail In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/inc/htmlMimeMail Added Files: RFC822.php htmlMimeMail.php mimePart.php smtp.php Log Message: Merging in htmltemplates branch to HEAD |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:48
|
Update of /cvsroot/phpbt/phpbt/languages In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/languages Modified Files: de.php en.php fr.php Log Message: Merging in htmltemplates branch to HEAD Index: de.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/de.php,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- de.php 29 Oct 2002 14:08:53 -0000 1.20 +++ de.php 25 Oct 2004 12:07:01 -0000 1.21 @@ -1,294 +1,351 @@ -<?php - -// strings-de.php - Deutsche Strings und Titel -// Translation by Stefan Plank & Stefan Kunstmann -// Translation by Mathias Leinmueller -// ------------------------------------------------------------------------ -// Copyright (c) 2001 The phpBugTracker Group -// ------------------------------------------------------------------------ -// Diese Datei ist Teil des phpBugTracker -// -// phpBugTracker ist freie Software; Sie koennen sie weiterverteilen -// und/oder veraendern unter den Bedingungen der GNU General Public License, -// publiziert durch die Free Software Foundation; entweder nach Version 2 -// der Lizenz, oder (ihrer Wahl nach) irgendeiner spaeterern Version. -// -// phpBugTracker wird in der Hoffnung verteilt, dasz es nuetzlich ist, aber -// OHNE JEDE GARANTIE; selbst ohne die eingeschloszene Garantie der -// VERMARKTBARKEIT [MERCHANTIBILITY] oder EIGNUNG FUER -// EINEN PARTIKULAEREN GEBRAUCH. Sie koennen mehr Details in der -// GNU General Public License nachlesen. -// -// Sie sollten mit dem phpBugTracker eine Kopie der -// GNU General Public License bekommen haben; wenn nicht, schreiben Sie der -// Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. -// ------------------------------------------------------------------------- -// $Id$ - -$STRING = array( - 'lang_charset' => 'iso8859-1', - 'nouser' => 'Dieser Benutzer extistiert nicht', - 'dupeofself' => 'Ein Bug kann kein Duplikat von sich selbst sein', - 'nobug' => 'Dieser Bug existiert nicht', - 'givesummary' => 'Bitte geben Sie einen Titel ein', - 'givedesc' => 'Bitte geben Sie eine Beschreibung ein', - 'noprojects' => 'Keine Projekte gefunden', - 'totalbugs' => 'Bugs gesamt', - 'giveemail' => 'Bitte geben Sie eine gültige E-Mail Adresse ein.', - 'givelogin' => 'Bitte geben Sie einen Login an', - 'loginused' => 'Dieser Benutzername ist bereits in Gebrauch', - 'newacctsubject' => 'phpBugTracker Login', - 'newacctmessage' => "Ihr phpBugTracker Passwort ist %s", - 'nobugs' => 'Kein Bug gefunden', - 'givename' => 'Bitte geben Sie einen Namen ein', - 'edit' => 'Bearbeiten', - 'addnew' => 'Neu hinzufügen: ', - 'nooses' => 'Keine Betriebsysteme gefunden', - 'giveinitversion' => 'Bitte geben Sie eine Initialversion für das Projekt an', - 'giveversion' => 'Bitte geben Sie eine Version ein', - 'noversions' => 'Keine Version gefunden', - 'nocomponents' => 'Keine Komponenten gefunden', - 'nostatuses' => 'Keine Status gefunden', - 'noseverities' => 'Keine Schweregrade gefunden', - 'givepassword' => 'Bitte geben Sie ein Passwort ein!', - 'nousers' => 'Keinen Benutzer gefunden', - 'bugbadperm' => 'Sie können diesen Bug nicht ändern', - 'bugbadnum' => 'Dieser Bug existiert nicht', - 'datecollision' => 'Jemand hat diesen Bug behoben seit Sie ihn gesehen haben. Die Buginformation wurde mit den letzten Änderungen erneut geladen.', - 'passwordmatch' => 'Diese Passwörter stimmen nicht -- Bitte probieren Sie es noch einmal', - 'nobughistory' => 'Es gibt keine Historie für diesen Bug', - 'logintomodify' => 'Sie müssen eingeloggt sein, um diesen Bug zu ändern.', - 'dupe_attachment' => 'Dieser Anhang existiert bereits für den Bug.', - 'give_attachment' => 'Bitte geben Sie eine Datei für den Upload an.', - 'no_attachment_save_path' => 'Konnte den Pfad zum Speichern nicht finden!', - 'attachment_path_not_writeable' => 'Konnte keine Datei im Speicherpfad erstellen', - 'attachment_move_error' => 'Es gab einen Fehler beim Bewegen der upzuloadenen Datei', - 'bad_attachment' => 'Dieser Dateianhang existiert nicht', - 'attachment_too_large' => 'Die angegebene Datei ist größer als '.number_format(ATTACHMENT_MAX_SIZE).' byte', - 'bad_permission' => 'Sie haben nicht die erforderlichen Rechte für diese Funktion', - 'project_only_all_groups' => 'Sie können keine spezifischen Gruppen angeben, wenn ALLE gewählt ist!', - 'previous_bug' => 'Letzter', - 'next_bug' => 'Nächster', - 'already_voted' => 'Sie haben für diesen Bug bereits gestimmt', - 'too_many_votes' => 'Die maximale Stimmzahl wurde bereits erreicht', - 'no_votes' => 'Für diesen Bug existieren keine Stimmen', - 'user_filter' => array( - 0 => 'Alle Benutzer', - 1 => 'Aktive Benutzer', - 2 => 'Inaktive Benutzer' - ), - 'dupe_dependency' => 'Diese Bugabhängigkeit wurde bereits hinzugefügt', - 'image_path_not_writeable' => 'In das Unterverzeichnis "jpgimages" kann vom Web-Prozess aus nicht geschrieben werden. Damit kann keine Zusammenfassungsgrafik erzeugt werden.', - 'password_changed' => 'Ihr Passwort wurde geändert', - 'prefs_changed' => 'Ihre Optionen wurden geändert', - 'databaselist' => 'Datenbankliste', - 'database' => 'Datenbank', - 'databases' => 'Datenbanken', - 'name' => 'Name', - 'description' => 'Beschreibung', - 'sortorder' => 'Sortierreihenfolge', - 'suredeletedb' => 'Sind sie sicher, dass sie diese Datenbank löschen wollen?', - 'suredeletesite' => 'Sind sie sicher, dass sie diesen Standort löschen wollen?', - 'delete' => 'Löschen', - 'version' => 'Version', - 'addnewsite' => 'Neuen Standort hinzufügen', - 'sitelist' => 'Standortliste', - 'sites' => 'Standorte', - 'QUERY' => array( - 'opt_All' => 'Alle', - 'Project' => 'Projekt', - 'Version' => 'Version', - 'Component' => 'Komponente', - 'Status' => 'Status', - 'Resolution' => 'Lösung', - 'OpSys' => 'Betriebssystem', - 'Priority' => 'Priorität', - 'Severity' => 'Schweregrad', - 'Database' => 'Datenbank', - 'ReportedOnSite' => 'Berichtet auf Standort', - 'Summary' => 'Zusammenfassung', - 'DescriptionEntry' => 'Ein Beschreibungseintrag', - 'SortBy' => 'Sortiere nach', - 'SortBy_BugNumber' => 'Bug Nummmer', - 'SortBy_Severity' => 'Schweregrad', - 'SortBy_Reporter' => 'Berichterstatter', - 'SortBy_Priority' => 'Priorität', - 'SortBy_Status' => 'Status', - 'SortAsc' => 'Aufsteigend', - 'SortDesc' => 'Absteigend', - 'SaveThisQueryAs' => 'Diese Anfrage speichern als', - 'ResetBackToDefaultQuery' => 'Auf Standardabfrage zurücksetzen', - 'SubmitQuery' => 'Abfrage absenden', - 'SavedQueries' => 'Gespeicherte Abfragen', - 'GoToThe' => 'Gehe zu der', - 'AdvancedQueryPage' => 'Erweiterte Abfrageseite', - 'SimpleQueryPage' => 'Einfache Abfrageseite', - 'SureDeleteSavedQuery' => 'Sind sie sicher, dass sie diese gespeicherte Abfrage löschen wollen?', - 'MatchingAs' => 'Übereinstimmung mit', - 'MatchingAs_Regexp' => 'Regular Expression', - 'MatchingAs_NotRegexp' => 'Keine Regular Expression', - 'MatchingAs_Substring' => 'Teilzeichenfolge', - 'MatchingAs_Exact' => 'Exakt', - 'eMail_Reporter' => 'Berichterstatter', - 'eMail_AssignedTo' => 'Zugewiesen an' - ), - 'WRAP' => array( - 'FindBug' => 'Bug suchen', - 'Home' => 'Home', - 'AddNewBug' => 'Einen neuen Bug hinzufügen', - 'QueryBugs' => 'Bugs abfragen', - 'ViewReports' => 'Berichte anzeigen', - 'Documentation' => 'Dokumentation lesen', - 'AdminTools' => 'Adminwerkzeuge', - 'CreateNewAccount' => 'Neuen Account anlegen', - 'Email' => 'Email', - 'Login' => 'Login', - 'DoLogin' => 'Login', - 'BugsAssigned' => 'Bugs assigned to me', - 'BugsReported' => 'Bugs reported by me', - 'PersonalPage' => 'Personal Page', - 'Logout' => 'Logout', - 'EmailPassword' => 'Passwort per Email', - 'RememberMe' => 'Merke mich', - ), - 'BUGFORM' => array( - 'Project' => 'Projekt', - 'Version' => 'Version', - 'Summary' => 'Zusammenfassung', - 'Description' => 'Beschreibung', - 'Severity' => 'Schweregrad', - 'Priority' => 'Priorität', - 'Site' => 'Standort', - 'Database' => 'Datenbank', - 'Component' => 'Komponente', - 'OS' => 'Betriebssystem', - 'AddAnother' => 'Einen weiteren hinzufügen', - 'Submit' => 'Absenden' - ), - 'BUGDISPLAY' => array( - 'reporter' => 'Berichterstatter', - 'returnto' => 'Zurück zu', - 'buglist' => 'Bugliste', - 'project' => 'Projekt', - 'created' => 'Erzeugt', - 'version' => 'Version', - 'closedinversion' => 'Abgeschlossen in Version', - 'tobeclosedinversion' => 'Abzuschließen in Version', - 'assignedto' => 'Zugewiesen an', - 'assignedtonobody' => 'Niemand', - 'bugdependency' => 'Abhängigkeiten', - 'blocks' => 'Blocks', - 'adddependency' => 'Abhängigkeit hinzufügen', - 'removedependency' => 'Abhängigkeit entfernen', - 'summary' => 'Zusammenfassung', - 'status' => 'Status', - 'description' => 'Beschreibung', - 'severity' => 'Schweregrad', - 'priority' => 'Priorität', - 'component' => 'Komponente', - 'resolution' => 'Lösung', - 'resolutionnone' => 'Keine', - 'addcc' => 'CC hinzufügen', - 'removeselectedcc' => 'Gewählte CCs entfernen', - 'additionalcomments' => 'Zusätzliche Kommentare', - 'attachments' => 'Anhang', - 'createattachment' => 'Anhang erzeugen', - 'suredeleteattachment' => 'Sind sie sicher, dass sie diesen Anhang löschen wollen?', - 'name' => 'Name', - 'size' => 'Größe', - 'type' => 'Typ', - 'created' => 'Erzeugt', - 'voteforthisbug' => 'Für diesen Bug stimmen', - 'viewvotes' => 'Stimmen anzeigen', - 'forthisbug' => 'für diesen Fehler', - 'viewbugactivity' => 'Bug-Aktivität anzeigen', - 'printableview' => 'Druckansicht', - 'noattachments' => 'Keine Anhänge', - 'comments' => 'Kommentare', - 'postedby' => 'Eingetragen durch', - 'date' => 'Datum', - 'dateon' => 'Am', - 'submit' => 'Absenden', - 'site' => 'Berichtet an Standort', - 'database' => 'Datenbank', - 'os' => 'OS', - 'chooseone' => 'Eines auswählen', - 'suppressemail' => 'Benachrichtigungsemail unterdrücken' - ), - 'USER_PREF' => array( - 'ReceiveNotifications' => 'Änderungen an Bugs per E-Mail erhalten', - 'ShowSavedQueries' => 'Gespeicherte Anfragen auf der Homepage anzeigen', - 'ChangePassword' => 'Passwort ändern', - 'EnterNewPassword' => 'Bitte geben sie unterhalb ihr neues Passwort zweimal ein', - 'Password' => 'Passwort', - 'Verify' => 'Bestätigen', - 'ChangePreferences' => 'Einstellungen Ändern', - 'BugListColumns' => 'Spalten der Bug-Liste', - 'ChooseFields' => 'Wählen sie die Felder, die sie in der Bug-Liste sehen wollen', - 'SureDeleteVote' => 'Sind sie sicher, dass sie diese Stimme löschen wollen?', - 'Votes' => 'Stimmen', - 'Bug' => 'Bug', - 'When' => 'Sobald', - 'ColumnPreferencesSaved' => 'Ihre Einstellugen für die Bug-Liste wurden gespeichert' ), - 'INDEX' => array( - 'FiveRecentlySubmitted' => 'Die fünf zuletzt gemeldeten Bugs', - 'FiveRecentlyClosed' => 'Die fünf zuletzt abgeschlossenen Bugs', - 'QuickStats' => 'Kurzstatistik', - 'Status' => 'Status', - 'NumberOfBugs' => '# Bugs', - 'SavedQueries' => 'Gespeicherte Abfragen' - )); - -// Page titles -$TITLE = array( - 'enterbug' => 'Geben Sie einen Bug ein', - 'editbug' => 'Bug Bearbeiten', - 'newaccount' => 'Einen neuen Account anlegen', - 'bugquery' => 'Bugsuche', - 'buglist' => 'Bugliste', - 'addcomponent' => 'Komponente hinzufügen', - 'editcomponent' => 'Komponente bearbeiten', - 'addproject' => 'Projekt hinzufügen', - 'editproject' => 'Projekt bearbeiten', - 'addversion' => 'Version hinzufügen', - 'editversion' => 'Version bearbeiten', - 'addsite' => 'Standort hinzufügen', - 'editsite' => 'Standort bearbeiten', - 'project' => 'Projekte', - 'os' => 'Betriebssysteme', - 'resolution' => 'Lösungen', - 'status' => 'Status', - 'severity' => 'Schweregrad', - 'user' => 'Benutzer', - 'home' => 'Home', - 'reporting' => 'Bericht', - 'group' => 'Guppen', - 'bugvotes' => 'Bug Abstimmung', - 'bughistory' => 'Bug Historie', - 'viewbug' => 'Bug ansehen', - 'addattachment' => 'Anhang anfügen', - 'accountcreated' => 'Account erzeugt', - 'changessaved' => 'Änderungen gespeichert', - 'preferences' => 'Benutzeroptionen', - 'usertools' => 'Benutzerwerkzeuge', - 'edituser' => 'Benutzer bearbeiten', - 'adduser' => 'Benutzer hinzufügen', - 'editstatus' => 'Status ändern', - 'addstatus' => 'Status hinzufügen', - 'editseverity' => 'Schweregrad ändern', - 'addseverity' => 'Schweregrad hinzufügen', - 'editresolution' => 'Lösung bearbeiten', - 'addresolution' => 'Lösung hinzufügen', - 'editos' => 'Betriebssystem bearbeiten', - 'addos' => 'Betriebssystem hinzufügen', - 'editgroup' => 'Gruppe bearbeiten', - 'addgroup' => 'Gruppe hinzufügen', - 'configuration' => 'Konfiguration', - 'adddatabase' => 'Datenbank hinzufügen', - 'editdatabase' => 'Datenbank bearbeiten', - 'database' => 'Datenbanken', - 'site' => 'Standorte' -); - -?> +<?php + +// de.php - German strings and titles +// ------------------------------------------------------------------------ +// Copyright (c) 2001 - 2004 The phpBugTracker Group +// ------------------------------------------------------------------------ +// This file is part of phpBugTracker +// +// phpBugTracker is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// phpBugTracker is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with phpBugTracker; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// ------------------------------------------------------------------------ +// Translation by Jan Pilarzeck +// $Id$ + +$STRING = array( + "That attachment does not exist" => "Der Anhang existiert nicht", + "Please specify a file to upload" => "Bitte eine Datei zum Upload angeben", + "The file you specified is larger than %s bytes" => "Die angegebene Datei ist größer asl %s Bytes", + "The file you specified is larger than %d bytes" => "Die angegebene Datei ist größer asl %d Bytes", + "That bug does not exist" => "Der Fehler existiert nicht", + "That attachment already exists for this bug" => "Dieser Anhang existiert bereits für diesen Fehler", + "Couldn't find where to save the file!" => "Konnte kein Ziel zum Speichern der Datei finden!", + "Couldn't create a file in the save path" => "Konnte keine Datei im Speichern-Pfad anlegen", + "There was an error moving the uploaded file" => "Es ist ein Fehler beim Verschieben der hochgeladenen Datei aufgetreten!", + "Add Attachment" => "Anhang hinzufügen", + "You do not have the permissions required for that function" => "Sie haben nicht die erforderlichen Rechte für diese Aktion", + "Bug Votes" => "Fehler-Abstimmungen", + "You have already voted for this bug" => "Sie haben bereits für diesen Fehler abgestimmt!", + "You have reached the maximum number of votes per user" => "Sie haben die maximale Zahl an Stimmen pro User erreicht", + "There is no history for this bug" => "Für diesen Fehler gibt es keinen Verlauf", + "Bug History" => "Fehler-Verlauf", + "You can not change this bug" => "Sie können diesen Fehler nicht verändern", + "Someone has updated this bug since you viewed it. The bug info has been reloaded with the latest changes." => "Jemand hat diesen Fehler seit Ihrem letzten Besuch aktualisiert. Die Fehler-Informationen wurden mit der letzten Aktualisierung erneut geladen.", + "That user does not exist" => "Dieser Benutzer existiert nicht", + "That bug dependency has already been added" => "Die Fehler-Abhängigkeit wurde bereits hinzugefügt", + "Please enter a summary" => "Bitte eine Zusammenfassung eingeben", + "Please enter a description" => "Bitte eine Beschreibung eingeben", + "Create Bug" => "Fehler erzeugen", + "View Bug" => "Fehler anzeigen", + "No projects found" => "Keine Projekte gefunden", + "Select Project" => "Projekt auswählen", + "Invalid login" => "Ungültiges Login", + "phpBugTracker Login" => "phpBugTracker Login", + "Your phpBugTracker password is %s" => "Ihr phpBugTracker Passwort ist %s", + "Your password has been emailed to you" => "Ihr Passwort wurde Ihnen per eMail zugesandt", + "No bugs found" => "Keine Fehler gefunden", + "Bug Summary" => "Fehler-Zusammmenfassung", + "Project" => "Projekt", + "Open" => "offen", + "Total" => "Total", + "Home" => "Home", + "Please enter the host name for your database server" => "Bitte den Host-Namen des Datenbankservers eingeben", + "Please enter the name of the database you will be using" => "Bitte den Namen der Datenbank eingeben, die benutzt wird", + "Please enter the user name for connecting to the database" => "Bitte den Benutzernamen für die Datenbankverbindung eingeben", + "Please enter the phpBT email address" => "Bitte die eMail von phpBT eingeben", + "Please enter the admin login" => "Bitte das Admin-Login eingeben", + "Please use a valid email address for the admin login" => "Bitte benutzen Sie eine gültige e-Mail-Adresse für das Admin-Login", + "Please enter the admin password" => "Bitte das Admin-Passwort angeben", + "Please confirm the admin password" => "Bitte das Admin-Passwort bestätigen", + "The admin passwords don't match" => "Das Admin-Passwort stimmt nicht überein", + "Error writing to config.php" => "Konnte nicht in config.php schreiben", + "Please enter a login" => "Bitte ein Login eingeben", + "Please enter a valid email" => "Bitte eine gültige eMail angeben", + "That login has already been used" => "Das Login wird bereits verwendet", + "New account created" => "Neues Konto angelegt", + "Create new account" => "Neues Konto anlegen", + "Query Bugs" => "Fehler abfragen", + "Bug List" => "Fehlerliste", + "Assigned To" => "Zugewiesen an", + "Reporting" => "Reporting", + "Bug Counts by Date" => "Fehler nach Datum", + "Your bug list column preferences have been saved" => "Die Spalten-Einstellungen für Fehlerlisten wurden gespeichert", + "Please enter a password" => "Bitte ein Passwort eingeben", + "Those passwords don't match -- please try again" => "Die Passwörter stimmen nicht überein - bitte wiederholen", + "Password changed" => "Passwort geändert", + "Changes Saved" => "Veränderungen wurden gespeichert", + "Preferences changed" => "Einstellungen gespeichert", + "Receive notifications of bug changes via email" => "per eMail über Änderungen an Fehlern erhalten", + "Show saved queries on the homepage" => "gespeicherte Abfragen auf der Homepage anzeigen", + "User preferences" => "Benutzer-Einstellungen", + "Configuration" => "Konfiguration", + "Please enter a name" => "Bitte einen Namen eingeben", + "Edit Database" => "Datenbank bearbeiten", + "Database List" => "Datenbankliste", + "Edit Group" => "Gruppe bearbeiten", + "Group List" => "Grupppenliste", + "Edit Operating System" => "Betriebssysteme bearbeiten", + "Operating System List" => "Betriebssystemliste", + "Please enter a version" => "Bitte eine Version eingeben", + "Edit Version" => "Version bearbeiten", + "Edit Component" => "Komponente bearbeiten", + "You cannot choose specific groups when \"All Groups\" is chosen" => "Sie können keine Gruppe auswählen wenn \"Alle Gruppen\" ausgewählt ist", + "Edit Project" => "Projekt bearbeiten", + "Project List" => "Projektliste", + "Edit Resolution" => "Lösung bearbeiten", + "Resolution List" => "Lösungsliste", + "Edit Severity" => "Schweregrad bearbeiten", + "Severity List" => "Schweregradliste", + "Edit Site" => "Seite bearbeiten", + "Site List" => "Seitenliste", + "Edit Status" => "Status bearbeiten", + "Status List" => "Statusliste", + "Please enter an email" => "Bitte eine eMail eingeben", + "Edit User" => "Benutzer bearbeiten", + "User List" => "Benutzerliste", + "Name" => "Name", + "Description" => "Beschreibung", + "Owner" => "Besitzer", + "None" => "keine", + "Active" => "Aktiv", + "Submit" => "Absenden", + "Add new project" => "neues Projekt einfügen", + "Created Date" => "Erzeugungsdatum", + "Yes" => "Ja", + "No" => "Nein", + "Variable" => "Variable", + "Value" => "Wert", + "Information" => "Information", + "description" => "Beschreibung", + "Sort Order" => "Sortierreihenfolge", + "Database list" => "Datenbankliste", + "Add new database" => "neue Datenbank einfügen", + "Are you sure you want to delete this item?" => "Wollen Sie diesen Eintrag wirklich löschen?", + "Delete" => "Löschen", + "Add new group" => "neue Gruppe einfügen", + "Users" => "Benutzer", + "Locked" => "Gesperrt", + "This will remove all user assignments to this group and the group itself. Continue?" => "Dies wird alle Benutzerzugehörigkeiten und die Gruppe selbst löschen. Fortfahren?", + "This will remove all user assignments to this group. Continue?" => "Dies wird alle Benutzerzugehörigkeiten dieser Gruppe löschen. Fortfahren?", + "Purge" => "Säubern", + "Assignable" => "zuweisbar", + "Find Bug" => "Fehler finden", + "Projects" => "Projekte", + "Groups" => "Gruppen", + "Documentation" => "Dokumentation", + "User Tools" => "Benutzer-Werkzeuge", + "Statuses" => "Stati", + "Resolutions" => "Lösungen", + "Severities" => "Schweregrade", + "Operating Systems" => "Betriebssysteme", + "Databases" => "Datenbanken", + "Sites" => "Seiten", + "Regex" => "Regex", + "Add new operating system" => "neues Betriebssystem einfügen", + "Are you sure you want to delete this OS" => "Wollen Sie dieses Betriebssystem wirklich löschen?", + "Items with a Sort Order = 0 will not be selectable by users." => "Einträge mit einer Sortierreihenfolge = 0 werden durch Benutzer nicht ausgewählt werden können.", + "Only those items that have no bugs referencing them can be deleted." => "Nur Einträge, denen keine Fehler zugewiesen sind, können gelöscht werden.", + "Project Information" => "Projekt-Informationen", + "Version Information" => "Versions-Informationen", + "Initial Version" => "ursprüngliche Version", + "Component Information" => "Komponenten-Information", + "Initial Component Name" => "ursprünglicher Komponentenname", + "Only users in the following groups can see this project" => "Nur Benutzer der folgenden Gruppen können dieses Projekt sehen", + "These developers can administer this project" => "Diese Entwickler können das Projekt administrieren", + "Versions" => "Versionen", + "Add new version" => "neue Version einfügen", + "Version" => "Version", + "Created" => "Erstellt", + "No versions found" => "keine Versionen gefunden", + "Components" => "Komponenten", + "Add new component" => "neue Komponente einfügen", + "Component" => "Komponente", + "No components found" => "keine Komponenten gefunden", + "Add new resolution" => "neue Lösung einfügen", + "Are you sure you want to delete this resolution?" => "Wollen Sie wirklich diese Lösung löschen?", + "Row Color" => "Farbe der Reihe", + "Add new severity" => "neuen Schweregrad einfügen", + "Are you sure you want to delete this severity?" => "Wollen Sie wirklich diesen Schweregrad löschen?", + "Add new site" => "neue Seite einfügen", + "Open/Closed" => "Offen/Geschlossen", + "Closed" => "Geschlossen", + "Add new status" => "neuen Status einfügen", + "Login" => "Login", + "Email" => "eMail", + "First Name" => "Vorname", + "Last Name" => "Nachname", + "Password" => "Passwort", + "User Groups" => "Benutzergruppen", + "Email Notify" => "eMail-Benachrichtigung", + "Add new user" => "neuen Benutzer einfügen", + "Filter" => "Filter", + "Bug" => "Fehler", + "Reporter" => "Reporter", + "Assigned to" => "zugewiesen an", + "Status" => "Status", + "Resolution" => "Lösung", + "Severity" => "Schweregrad", + "Priority" => "Priorität", + "Operating System" => "Betriebssystem", + "Summary" => "Zusammenfassung", + "URL" => "URL", + "Depends on bugs" => "Abhängig von Fehler", + "Blocks bugs" => "blockiert Fehler", + "Comments" => "Kommentar", + "Posted by" => "übermittelt von", + "Back to bug" => "Zurück zum Fehler", + "You must login to modify this bug" => "Sie müssen sich anmelden um den Fehler zu bearbeiten", + "Return to bug list" => "zur Fehlerlist zurückkehren", + "Previous bug" => "vorhergehender Fehler", + "Next bug" => "nächster Fehler", + "To be closed in version" => "Soll geschlossen werden in Version", + "Choose one" => "bitte auswählen", + "Database" => "Datenbank", + "Closed in version" => "Geschlossen in Version", + "Site" => "Seite", + "Add CC" => "Kopieempfänger hinzufügen", + "Add dependency" => "Abhängigkeit hinzufügen", + "Remove dependency" => "Abhängigkeit entfernen", + "Remove selected CCs" => "ausgewählte Kopieempfänger entfernen", + "Additional comments" => "zusätzliche Kommentare", + "Supress notification email" => "eMail-Benachrichtung unterdrücken", + "Attachments" => "Anlagen", + "Create new attachment" => "neue Anlage einfügen", + "Size" => "Größe", + "Type" => "Typ", + "Are you sure you want to delete this attachment?" => "Wollen Sie wirklich diese Anlage löschen?", + "No attachments found for this bug" => "Zu diesem Fehler wurden keine Anlagen gefunden", + "Vote for this bug" => "zu diesem Bug abstimmen", + "View votes" => "Abstimmung ansehen", + "View bug history" => "Verlauf des Fehlers ansehen", + "Date" => "Datum", + "Who" => "Wer", + "What" => "Was", + "Old Value" => "alter Wert", + "New Value" => "neuer Wert", + "When" => "Wenn", + "No history found for this bug" => "Keinen Verlauf für diesen Fehler gefunden", + "Download to spreadsheet" => "zum Arbeitsblatt herunterladen", + "No votes found for this bug" => "keine Abstimmungen zu dem Fehler gefunden", + "Back" => "zurück", + "Five most recently submitted bugs" => "die fünf zuletzt berichteten Fehler", + "Five most recently closed bugs" => "die fünf zuletzt geschlossenen Fehler", + "Saved Queries" => "gespeicherte Abfragen", + "The image path is not writeable" => "Im Bilder-Pfad kann nicht geschrieben werden", + "Quick Stats" => "Schnell-Statistik", + "# bugs" => "# Fehler", + "phpBugTracker Installation" => "phpBugTracker Installation", + "DB Test Failure" => "Datenbank-Test-Fehelr", + "The installation script could not connect to the database <b>%s</b> on the host <b>%s</b> using the specified username and password.<br>Please check these details are correct and that the database already exists then retry." => "Das Installations-Script konnte nicht mit der Datenbank <b>%s</b> am Host <b>%s</b> mit dem angegebenen Benutzernamen und Passwort verbinden.<br>Bitte überprüfen Sie alle Details und versuchen Sie es erneut.", + "DB Test Success" => "Datenbank-Test erfolgreich", + "The installation script successfully connected to the database <b>%s</b> on the host <b>%s</b> using the specified username and password.<br>Congratulations!" => "Das Installations-Script konnte sich erfolgreich mit der Datenbank <b>%s</b> am Host <b>%s</b> mit dem angegebenen Benutzernamen und Passwort verbinden.<br>Herzlichen Glückwunsch!", + "Close window" => "Fenster schließen", + "Database Options" => "Datenbank-Optionen", + "Database Name" => "Datenbankname", + "This database must already exist" => "Diese Datenbank muss bereits existieren", + "User" => "Benutzer", + "Table Prefix" => "Tabellen-Präfix", + "Test Database Connection" => "Datenbank-Verbindung testen", + "phpBT Email" => "phpBT eMail", + "The email address used for sending bug updates, etc." => "Diese Adresse wird zum Senden von Fehler-Aktualisierungen verwendet.", + "Admin Login" => "Admin Login", + "Must be a valid email address" => "Muss eine gültige eMail sein", + "Admin Password" => "Admin Passwort", + "Confirm Password" => "Passwort bestätigen", + "Encrypt Passwords in DB" => "Passwörter in Datenbank verschlüsseln", + "When you submit the form, the database tables will be created and config.php will be saved to disk. You will then be able to login and use the bug tracker." => "Wenn Sie das Formular absenden werden alle Tabellen in der Datenbank erzeugt und config.php wird im Installationspfad gespeichert. Sie können sich dann anmelden und phpBugTracker verwenden.", + "Since config.php is not writeable by this script, when you submit this form +you will be prompted to save config.php. Copy this file to +the location of the bug tracker, and then you will be able to +<a href=\index.php\>login to the bug tracker</a>. From the +home page you can go to the Admin Tools and customize your +installation via the Configuration link. Once you have +completed the configuration, you will be ready to add a project and +start reporting bugs!" => "Da in die Datei config.php nicht geschrieben werden kann, werden Sie nach dem Absenden +des Formulars zum Speichern von config.php aufgefordert. Kopieren Sie diese Datei in den Pfad +von phpBugTracker. Danach werden Sie in der Lage sein, sich an +<a href=\index.php\>phpBugTracker anzumelden</a>. Von der Homepage aus +können Sie dann mit den Admin-Werkzeugen die Installation nach Ihren +Wünschen konfigurieren. Wenn Sie die Konfigurationen vorgenommen haben +können Sie die Anwendung verwenden.", + "Save Options" => "Speicher-Optionen", + "User Login" => "Benutzer-Login", + "Invalid login and/or password" => "Ungültiges Login und/oder Passwort", + "Your password has been mailed to you" => "Das Passwort wurde Ihnen zugesandt", + "Email my password" => "Passwort per eMail zusenden", + "Open a new account" => "neues Konto öffnen", + "You have been logged out" => "Sie wurden abgemeldet", + "Return to phpBugTracker home" => "zur phpBugTracker-Homepage zurück kehren", + "Sorry, but the self-creation of new accounts has been disabled. Please contact the administrator to have an account created for you." => "Entschuldigung, aber die eigenständige Erzeugung neuer Konten wurde deaktiviert. Bitte kontaktieren Sie den Administrator, der Ihnen dann ein Konto erstellt.", + "Create a new account" => "neues Konto anlegen", + "optional" => "optional", + "Thanks for creating an account. Check your email for your password." => "Vielen Dank für die Registrierung. Bitte überprüfen Sie Ihr eMails nach Ihrem Passwort.", + "First, you must pick a product on which to enter a bug." => "Zuerst müssen Sie ein Projekt/Produkt auswählen, zu dem Sie einen Bug übermitteln möchten.", + "All" => "Alle", + "Sort by" => "Sortieren nach", + "Bug number" => "Fehlernummer", + "Ascending" => "Aufsteigend", + "Descending" => "Absteigend", + "Save this query as" => "Diese Abfrage speichern als", + "Reset to default query" => "zur Standard-Abfrage zurücksetzen", + "Are you sure you want to delete this saved query?" => "Wollen Sie diese gespeicherte Abfrage wirklich löschen?", + "Go to the advanced query page" => "fortgeschrittene Abfrage-Seite aufrufen", + "Reported on Site" => "Berichtet auf Seite", + "matching as" => "übereinstimmend mit", + "regexp" => "RegEx", + "not regexp" => "kein RegEx", + "substring" => "Teilmenge", + "exact" => "Exakt", + "A description entry" => "Ein Beschreibungs-Eintrag", + "Created Date Range" => "Zeitraum der Erzeugung", + "to" => "an", + "Closed in Version" => "geschlossen in Version", + "To be Closed in Version" => "Muss geschlossen werden in Version", + "Sort By" => "Sortieren nach", + "Go to the simple query page" => "einfache Abfrage-Seite aufrufen", + "Show bug statistics for the selected project" => "zeige Fehler-Statistik für ausgewähltes Projekt", + "All projects" => "Alle Projekte", + "Go" => "Los", + "Bug Resolutions" => "Fehlerlösungen", + "Unassigned" => "nicht zugewiesen", + "Upgade phpBugTracker" => "Upgade phpBugTracker", + "Your database has been updated." => "Ihre Datenbank wurde aktualisiert.", + "phpBugTracker home" => "phpBugTracker Home", + "This script will upgrade your database from version %s to version %s of phpBugTracker." => "Dieses Script wird Ihre Datenbank von phpBugTracker-Version %s auf %s aktualisieren.", + "Do it!" => "Mach es!", + "Change Password" => "Passwort ändern", + "Enter new password" => "neues Passwort eingeben", + "Verify password" => "Passwort überprüfen", + "Change Preferences" => "Einstellungen ändern", + "Number of results per page" => "Anzahl der Ergebnisse pro Seite", + "Bug List Columns" => "Fehlerliste-Spalten", + "Choose the fields you want to see in the bug list" => "Wählen Sie die Felder, die in der Fehlerliste angezeigt werden sollen", + "Votes" => "Abstimmungen", + "Are you sure you want to delete this vote?" => "Wollen Sie diese Abstimmung wirklich löschen?", + "Add a new bug" => "neuen Fehler melden", + "View Reports" => "Report anzeigen", + "Create a New Account" => "neues Konto anlegen", + "Read Documentation" => "Dokumentation lesen", + "Administration Tools" => "Admin-Werkzeuge", + "Email Password" => "Passwort per eMail zusenden", + "Forgot your password? Have it sent to you" => "Passwort vergessen? Lassen Sie es sich zuschicken!", + "Remember %s for next time" => "Merke %s für das nächste mal", + "Remember me" => "Merke mich", + "Bugs assigned to me" => "mir zugwiesene Fehler", + "Bugs reported by me" => "von mir gemeldete Fehler", + "Personal Page" => "Einstellungen", + "Logout %s" => "Logout %s", + ); + +?> Index: en.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/languages/en.php,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- en.php 23 Jul 2003 01:22:12 -0000 1.39 +++ en.php 25 Oct 2004 12:07:02 -0000 1.40 @@ -2,7 +2,7 @@ // en.php - English strings and titles // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -23,270 +23,333 @@ // $Id$ $STRING = array( - 'lang_charset' => 'iso-8859-1', - 'nouser' => 'That user does not exist', - 'dupeofself' => 'A bug can\'t be a duplicate of itself', - 'nobug' => 'That bug does not exist', - 'givesummary' => 'Please enter a summary', - 'givedesc' => 'Please enter a description', - 'noprojects' => 'No projects found', - 'totalbugs' => 'Total Bugs', - 'giveemail' => 'Please enter a valid email address', - 'givelogin' => 'Please enter a login', - 'loginused' => 'That login has already been used', - 'newacctsubject' => 'phpBugTracker Login', - 'newacctmessage' => "Your phpBugTracker password is %s", - 'nobugs' => 'No bugs found', - 'givename' => 'Please enter a name', - 'edit' => 'Edit', - 'addnew' => 'Add new', - 'nooses' => 'No OSes found', - 'giveinitversion' => 'Please enter an initial version for the project', - 'giveversion' => 'Please enter a version', - 'noversions' => 'No versions found', - 'nocomponents' => 'No components found', - 'nostatuses' => 'No statuses found', - 'noseverities' => 'No severities found', - 'givepassword' => 'Please enter a password', - 'nousers' => 'No users found', - 'bugbadperm' => 'You cannot change this bug', - 'bugbadnum' => 'That bug does not exist', - 'datecollision' => 'Someone has updated this bug since you viewed it. The bug info has been reloaded with the latest changes.', - 'passwordmatch' => 'Those passwords don\'t match -- please try again', - 'nobughistory' => 'There is no history for that bug', - 'logintomodify' => 'You must be logged in to modify this bug', - 'dupe_attachment' => 'That attachment already exists for this bug', - 'give_attachment' => 'Please specify a file to upload', - 'no_attachment_save_path' => 'Couldn\'t find where to save the file!', - 'attachment_path_not_writeable' => 'Couldn\'t create a file in the save path', - 'attachment_move_error' => 'There was an error moving the uploaded file', - 'bad_attachment' => 'That attachment does not exist', - 'attachment_too_large' => 'The file you specified is larger than '.number_format(ATTACHMENT_MAX_SIZE).' bytes', - 'bad_permission' => 'You do not have the permissions required for that function', - 'project_only_all_groups' => 'You cannot choose specific groups when "All Groups" is chosen', - 'previous_bug' => 'Previous', - 'next_bug' => 'Next', - 'already_voted' => 'You have already voted for this bug', - 'too_many_votes' => 'You have reached the maximum number of votes per user', - 'no_votes' => 'There are no votes for this bug', - 'user_filter' => array( - 0 => 'All users', - 1 => 'Active users', - 2 => 'Inactive users'), - 'dupe_dependency' => 'That bug dependency has already been added', - 'image_path_not_writeable' => 'The subdirectory "jpgimages" is not writeable by the web process, so the summary image can not be rendered', - 'password_changed' => 'Your password has been changed', - 'prefs_changed' => 'Your preferences have been changed', - 'databaselist' => 'Database list', - 'database' => 'Database', - 'databases' => 'Databases', - 'name' => 'Name', - 'description' => 'Description', - 'sortorder' => 'Sort order', - 'suredeletedb' => 'Are you sure to delete this database?', - 'suredeletesite' => 'Are you sure to delete this site?', - 'delete' => 'Delete', - 'version' => 'Version', - 'addnewsite' => 'Add new Site', - 'sitelist' => 'Site list', - 'sites' => 'Sites', - 'QUERY' => array( - 'opt_All' => 'All', - 'Project' => 'Project', - 'Version' => 'Version', - 'Component' => 'Component', - 'Status' => 'Status', - 'Resolution' => 'Resolution', - 'OpSys' => 'OpSys', - 'Priority' => 'Priority', - 'Severity' => 'Severity', - 'Database' => 'Database', - 'ReportedOnSite' => 'Reported on Site', - 'Summary' => 'Summary', - 'DescriptionEntry' => 'Description / Comment', - 'SortBy' => 'Sort By', - 'SortBy_BugNumber' => 'Bug Number', - 'SortBy_Severity' => 'Severity', - 'SortBy_Reporter' => 'Reporter', - 'SortBy_Priority' => 'Priority', - 'SortBy_Status' => 'Status', - 'SortAsc' => 'Ascending', - 'SortDesc' => 'Descending', - 'SaveThisQueryAs' => 'Save this query as', - 'ResetBackToDefaultQuery' => 'Reset back to default query', - 'SubmitQuery' => 'Submit query', - 'SavedQueries' => 'Saved Queries', - 'GoToThe' => 'Go to the', - 'AdvancedQueryPage' => 'advanced query page', - 'SimpleQueryPage' => 'simple query page', - 'SureDeleteSavedQuery' => 'Are you sure you want to delete this saved query?', - 'MatchingAs' => 'matching as', - 'MatchingAs_Regexp' => 'regexp', - 'MatchingAs_NotRegexp' => 'not regexp', - 'MatchingAs_Substring' => 'substring', - 'MatchingAs_Exact' => 'exact', - 'eMail_Reporter' => 'Reporter', - 'eMail_AssignedTo' => 'Assigned To' - ), - 'WRAP' => array( - 'FindBug' => 'Find Bug', - 'Home' => 'Home', - 'AddNewBug' => 'Add a new Bug', - 'QueryBugs' => 'Query Bugs', - 'ViewReports' => 'View Reports', - 'Documentation' => 'Read Documentation', - 'AdminTools' => 'Admin Tools', - 'CreateNewAccount' => 'Create a new Account', - 'Email' => 'Email', - 'Login' => 'Login', - 'DoLogin' => 'Login', - 'BugsAssigned' => 'Bugs assigned to me', - 'BugsReported' => 'Bugs reported by me', - 'PersonalPage' => 'Personal Page', - 'Logout' => 'Logout', - 'EmailPassword' => 'Email Password', - 'RememberMe' => 'Remember me', - ), - 'BUGFORM' => array( - 'Project' => 'Project', - 'Version' => 'Version', - 'Summary' => 'Summary', - 'Description' => 'Description', - 'Severity' => 'Severity', - 'Priority' => 'Priority', - 'Site' => 'Site', - 'Database' => 'Database', - 'Component' => 'Component', - 'OS' => 'OS', - 'AddAnother' => 'Add another', - 'Submit' => 'Submit' - ), - 'BUGDISPLAY' => array( - 'reporter' => 'Reporter', - 'returnto' => 'Return to', - 'buglist' => 'bug list', - 'project' => 'Project', - 'created' => 'Created', - 'version' => 'Version', - 'closedinversion' => 'Closed in Version', - 'tobeclosedinversion' => 'To be Closed in Version', - 'assignedto' => 'Assigned To', - 'assignedtonobody' => 'Nobody', - 'bugdependency' => 'Dependencies', - 'blocks' => 'Blocks', - 'adddependency' => 'Add Dependency', - 'removedependency' => 'Remove Dependency', - 'summary' => 'Summary', - 'status' => 'Status', - 'description' => 'Description', - 'severity' => 'Severity', - 'priority' => 'Priority', - 'component' => 'Component', - 'resolution' => 'Resolution', - 'resolutionnone' => 'None', - 'addcc' => 'Add CC', - 'removeselectedcc' => 'Remove selected CCs', - 'additionalcomments' => 'Additional Comments', - 'attachments' => 'Attachments', - 'createattachment' => 'Create Attachment', - 'suredeleteattachment' => 'Are you sure you want to delete this attachment?', - 'name' => 'Name', - 'size' => 'Size', - 'type' => 'Type', - 'created' => 'Created', - 'voteforthisbug' => 'Vote for this bug', - 'viewvotes' => 'View votes', - 'forthisbug' => 'for this bug', - 'viewbugactivity' => 'View bug activity', - 'printableview' => 'Printable View', - 'noattachments' => 'No attachments', - 'comments' => 'Comments', - 'postedby' => 'Posted By', - 'date' => 'Date', - 'dateon' => 'On', - 'submit' => 'Submit', - 'site' => 'Reported on Site', - 'database' => 'Database', - 'os' => 'OS', - 'chooseone' => 'Choose One', - 'suppressemail' => 'Suppress notification email' - ), - 'USER_PREF' => array( - 'ReceiveNotifications' => 'Receive notifications of bug changes via email', - 'ShowSavedQueries' => 'Show saved queries on the homepage', - 'ChangePassword' => 'Change password', - 'EnterNewPassword' => 'Please enter your new password twice below', - 'Password' => 'Password', - 'Verify' => 'Verify', - 'ChangePreferences' => 'ChangePreferences', - 'BugListColumns' => 'Bug List Columns', - 'ChooseFields' => 'Choose the fields you want to see in the bug list', - 'SureDeleteVote' => 'Are you sure you want to delete this vote?', - 'Votes' => 'Votes', - 'Bug' => 'Bug', - 'When' => 'When', - 'ColumnPreferencesSaved' => 'Your bug list column preferences have been saved', - 'DefResults' => 'Number of results on query page:' - ), - 'INDEX' => array( - 'FiveRecentlySubmitted' => 'Five most recently submitted bugs', - 'FiveRecentlyClosed' => 'Five most recently closed bugs', - 'QuickStats' => 'Quick stats', - 'Status' => 'Status', - 'NumberOfBugs' => '# bugs', - 'SavedQueries' => 'Saved Queries' - ) -); + "That attachment does not exist" => "That attachment does not exist", + "Please specify a file to upload" => "Please specify a file to upload", + "The file you specified is larger than %s bytes" => "The file you specified is larger than %s bytes", + "The file you specified is larger than %d bytes" => "The file you specified is larger than %d bytes", + "That bug does not exist" => "That bug does not exist", + "That attachment already exists for this bug" => "That attachment already exists for this bug", + "Couldn't find where to save the file!" => "Couldn't find where to save the file!", + "Couldn't create a file in the save path" => "Couldn't create a file in the save path", + "There was an error moving the uploaded file" => "There was an error moving the uploaded file", + "Add Attachment" => "Add Attachment", + "You do not have the permissions required for that function" => "You do not have the permissions required for that function", + "Bug Votes" => "Bug Votes", + "You have already voted for this bug" => "You have already voted for this bug", + "You have reached the maximum number of votes per user" => "You have reached the maximum number of votes per user", + "There is no history for this bug" => "There is no history for this bug", + "Bug History" => "Bug History", + "You can not change this bug" => "You can not change this bug", + "Someone has updated this bug since you viewed it. The bug info has been reloaded with the latest changes." => "Someone has updated this bug since you viewed it. The bug info has been reloaded with the latest changes.", + "That user does not exist" => "That user does not exist", + "That bug dependency has already been added" => "That bug dependency has already been added", + "Please enter a summary" => "Please enter a summary", + "Please enter a description" => "Please enter a description", + "Create Bug" => "Create Bug", + "View Bug" => "View Bug", + "No projects found" => "No projects found", + "Select Project" => "Select Project", + "Invalid login" => "Invalid login", + "phpBugTracker Login" => "phpBugTracker Login", + "Your phpBugTracker password is %s" => "Your phpBugTracker password is %s", + "Your password has been emailed to you" => "Your password has been emailed to you", + "No bugs found" => "No bugs found", + "Bug Summary" => "Bug Summary", + "Project" => "Project", + "Open" => "Open", + "Total" => "Total", + "Home" => "Home", + "Please enter the host name for your database server" => "Please enter the host name for your database server", + "Please enter the name of the database you will be using" => "Please enter the name of the database you will be using", + "Please enter the user name for connecting to the database" => "Please enter the user name for connecting to the database", + "Please enter the phpBT email address" => "Please enter the phpBT email address", + "Please enter the admin login" => "Please enter the admin login", + "Please use a valid email address for the admin login" => "Please use a valid email address for the admin login", + "Please enter the admin password" => "Please enter the admin password", + "Please confirm the admin password" => "Please confirm the admin password", + "The admin passwords don't match" => "The admin passwords don't match", + "Error writing to config.php" => "Error writing to config.php", + "Please enter a login" => "Please enter a login", + "Please enter a valid email" => "Please enter a valid email", + "That login has already been used" => "That login has already been used", + "New account created" => "New account created", + "Create new account" => "Create new account", + "Query Bugs" => "Query Bugs", + "Bug List" => "Bug List", + "Assigned To" => "Assigned To", + "Reporting" => "Reporting", + "Bug Counts by Date" => "Bug Counts by Date", + "Your bug list column preferences have been saved" => "Your bug list column preferences have been saved", + "Please enter a password" => "Please enter a password", + "Those passwords don't match -- please try again" => "Those passwords don't match -- please try again", + "Password changed" => "Password changed", + "Changes Saved" => "Changes Saved", + "Preferences changed" => "Preferences changed", + "Receive notifications of bug changes via email" => "Receive notifications of bug changes via email", + "Show saved queries on the homepage" => "Show saved queries on the homepage", + "User preferences" => "User preferences", + "Configuration" => "Configuration", + "Please enter a name" => "Please enter a name", + "Edit Database" => "Edit Database", + "Database List" => "Database List", + "Edit Group" => "Edit Group", + "Group List" => "Group List", + "Edit Operating System" => "Edit Operating System", + "Operating System List" => "Operating System List", + "Please enter a version" => "Please enter a version", + "Edit Version" => "Edit Version", + "Edit Component" => "Edit Component", + "You cannot choose specific groups when \"All Groups\" is chosen" => "You cannot choose specific groups when \"All Groups\" is chosen", + "Edit Project" => "Edit Project", + "Project List" => "Project List", + "Edit Resolution" => "Edit Resolution", + "Resolution List" => "Resolution List", + "Edit Severity" => "Edit Severity", + "Severity List" => "Severity List", + "Edit Site" => "Edit Site", + "Site List" => "Site List", + "Edit Status" => "Edit Status", + "Status List" => "Status List", + "Please enter an email" => "Please enter an email", + "Edit User" => "Edit User", + "User List" => "User List", + "Name" => "Name", + "Description" => "Description", + "Owner" => "Owner", + "None" => "None", + "Active" => "Active", + "Submit" => "Submit", + "Add new project" => "Add new project", + "Created Date" => "Created Date", + "Yes" => "Yes", + "No" => "No", + "Variable" => "Variable", + "Value" => "Value", + "Information" => "Information", + "description" => "description", + "Sort Order" => "Sort Order", + "Database list" => "Database list", + "Add new database" => "Add new database", + "Are you sure you want to delete this item?" => "Are you sure you want to delete this item?", + "Delete" => "Delete", + "Add new group" => "Add new group", + "Users" => "Users", + "Locked" => "Locked", + "This will remove all user assignments to this group and the group itself. Continue?" => "This will remove all user assignments to this group and the group itself. Continue?", + "This will remove all user assignments to this group. Continue?" => "This will remove all user assignments to this group. Continue?", + "Purge" => "Purge", + "Assignable" => "Assignable", + "Find Bug" => "Find Bug", + "Projects" => "Projects", + "Groups" => "Groups", + "Documentation" => "Documentation", + "User Tools" => "User Tools", + "Statuses" => "Statuses", + "Resolutions" => "Resolutions", + "Severities" => "Severities", + "Operating Systems" => "Operating Systems", + "Databases" => "Databases", + "Sites" => "Sites", + "Regex" => "Regex", + "Add new operating system" => "Add new operating system", + "Are you sure you want to delete this OS" => "Are you sure you want to delete this OS", + "Items with a Sort Order = 0 will not be selectable by users." => "Items with a Sort Order = 0 will not be selectable by users.", + "Only those items that have no bugs referencing them can be deleted." => "Only those items that have no bugs referencing them can be deleted.", + "Project Information" => "Project Information", + "Version Information" => "Version Information", + "Initial Version" => "Initial Version", + "Component Information" => "Component Information", + "Initial Component Name" => "Initial Component Name", + "Only users in the following groups can see this project" => "Only users in the following groups can see this project", + "These developers can administer this project" => "These developers can administer this project", + "Versions" => "Versions", + "Add new version" => "Add new version", + "Version" => "Version", + "Created" => "Created", + "No versions found" => "No versions found", + "Components" => "Components", + "Add new component" => "Add new component", + "Component" => "Component", + "No components found" => "No components found", + "Add new resolution" => "Add new resolution", + "Are you sure you want to delete this resolution?" => "Are you sure you want to delete this resolution?", + "Row Color" => "Row Color", + "Add new severity" => "Add new severity", + "Are you sure you want to delete this severity?" => "Are you sure you want to delete this severity?", + "Add new site" => "Add new site", + "Open/Closed" => "Open/Closed", + "Closed" => "Closed", + "Add new status" => "Add new status", + "Login" => "Login", + "Email" => "Email", + "First Name" => "First Name", + "Last Name" => "Last Name", + "Password" => "Password", + "User Groups" => "User Groups", + "Email Notify" => "Email Notify", + "Add new user" => "Add new user", + "Filter" => "Filter", + "Bug" => "Bug", + "Reporter" => "Reporter", + "Assigned to" => "Assigned to", + "Status" => "Status", + "Resolution" => "Resolution", + "Severity" => "Severity", + "Priority" => "Priority", + "Operating System" => "Operating System", + "Summary" => "Summary", + "URL" => "URL", + "Depends on bugs" => "Depends on bugs", + "Blocks bugs" => "Blocks bugs", + "Comments" => "Comments", + "Posted by" => "Posted by", + "Back to bug" => "Back to bug", + "You must login to modify this bug" => "You must login to modify this bug", + "Return to bug list" => "Return to bug list", + "Previous bug" => "Previous bug", + "Next bug" => "Next bug", + "To be closed in version" => "To be closed in version", + "Choose one" => "Choose one", + "Database" => "Database", + "Closed in version" => "Closed in version", + "Site" => "Site", + "Add CC" => "Add CC", + "Add dependency" => "Add dependency", + "Remove dependency" => "Remove dependency", + "Remove selected CCs" => "Remove selected CCs", + "Additional comments" => "Additional comments", + "Supress notification email" => "Supress notification email", + "Attachments" => "Attachments", + "Create new attachment" => "Create new attachment", + "Size" => "Size", + "Type" => "Type", + "Are you sure you want to delete this attachment?" => "Are you sure you want to delete this attachment?", + "No attachments found for this bug" => "No attachments found for this bug", + "Vote for this bug" => "Vote for this bug", + "View votes" => "View votes", + "View bug history" => "View bug history", + "Date" => "Date", + "Who" => "Who", + "What" => "What", + "Old Value" => "Old Value", + "New Value" => "New Value", + "When" => "When", + "No history found for this bug" => "No history found for this bug", + "Download to spreadsheet" => "Download to spreadsheet", + "No votes found for this bug" => "No votes found for this bug", + "Back" => "Back", + "Five most recently submitted bugs" => "Five most recently submitted bugs", + "Five most recently closed bugs" => "Five most recently closed bugs", + "Saved Queries" => "Saved Queries", + "The image path is not writeable" => "The image path is not writeable", + "Quick Stats" => "Quick Stats", + "# bugs" => "# bugs", + "phpBugTracker Installation" => "phpBugTracker Installation", + "DB Test Failure" => "DB Test Failure", + "The installation script could not connect to the database <b>%s</b> on the host <b>%s</b> using the specified username and password.<br>Please check these details are correct and that the database already exists then retry." => "The installation script could not connect to the database <b>%s</b> on the host <b>%s</b> using the specified username and password.<br>Please check these details are correct and that the database already exists then retry.", + "DB Test Success" => "DB Test Success", + "The installation script successfully connected to the database <b>%s</b> on the host <b>%s</b> using the specified username and password.<br>Congratulations!" => "The installation script successfully connected to the database <b>%s</b> on the host <b>%s</b> using the specified username and password.<br>Congratulations!", + "Close window" => "Close window", + "Database Options" => "Database Options", + "Database Name" => "Database Name", + "This database must already exist" => "This database must already exist", + "User" => "User", + "Table Prefix" => "Table Prefix", + "Test Database Connection" => "Test Database Connection", + "phpBT Email" => "phpBT Email", + "The email address used for sending bug updates, etc." => "The email address used for sending bug updates, etc.", + "Admin Login" => "Admin Login", + "Must be a valid email address" => "Must be a valid email address", + "Admin Password" => "Admin Password", + "Confirm Password" => "Confirm Password", + "Encrypt Passwords in DB" => "Encrypt Passwords in DB", + "When you submit the form, the database tables will be created and config.php will be saved to disk. You will then be able to login and use the bug tracker." => "When you submit the form, the database tables will be created and config.php will be saved to disk. You will then be able to login and use the bug tracker.", + "Since config.php is not writeable by this script, when you submit this form +you will be prompted to save config.php. Copy this file to +the location of the bug tracker, and then you will be able to +<a href=\index.php\>login to the bug tracker</a>. From the +home page you can go to the Admin Tools and customize your +installation via the Configuration link. Once you have +completed the configuration, you will be ready to add a project and +start reporting bugs!" => "Since config.php is not writeable by this script, when you submit this form +you will be prompted to save config.php. Copy this file to +the location of the bug tracker, and then you will be able to +<a href=\index.php\>login to the bug tracker</a>. From the +home page you can go to the Admin Tools and customize your +installation via the Configuration link. Once you have +completed the configuration, you will be ready to add a project and +start reporting bugs!", + "Save Options" => "Save Options", + "User Login" => "User Login", + "Invalid login and/or password" => "Invalid login and/or password", + "Your password has been mailed to you" => "Your password has been mailed to you", + "Email my password" => "Email my password", + "Open a new account" => "Open a new account", + "You have been logged out" => "You have been logged out", + "Return to phpBugTracker home" => "Return to phpBugTracker home", + "Sorry, but the self-creation of new accounts has been disabled. Please contact the administrator to have an account created for you." => "Sorry, but the self-creation of new accounts has been disabled. Please contact the administrator to have an account created for you.", + "Create a new account" => "Create a new account", + "optional" => "optional", + "Thanks for creating an account. Check your email for your password." => "Thanks for creating an account. Check your email for your password.", + "First, you must pick a product on which to enter a bug." => "First, you must pick a product on which to enter a bug.", + "All" => "All", + "Sort by" => "Sort by", + "Bug number" => "Bug number", + "Ascending" => "Ascending", + "Descending" => "Descending", + "Save this query as" => "Save this query as", + "Reset to default query" => "Reset to default query", + "Are you sure you want to delete this saved query?" => "Are you sure you want to delete this saved query?", + "Go to the advanced query page" => "Go to the advanced query page", + "Reported on Site" => "Reported on Site", + "matching as" => "matching as", + "regexp" => "regexp", + "not regexp" => "not regexp", + "substring" => "substring", + "exact" => "exact", + "A description entry" => "A description entry", + "Created Date Range" => "Created Date Range", + "to" => "to", + "Closed in Version" => "Closed in Version", + "To be Closed in Version" => "To be Closed in Version", + "Sort By" => "Sort By", + "Go to the simple query page" => "Go to the simple query page", + "Show bug statistics for the selected project" => "Show bug statistics for the selected project", + "All projects" => "All projects", + "Go" => "Go", + "Bug Resolutions" => "Bug Resolutions", + "Unassigned" => "Unassigned", + "Upgade phpBugTracker" => "Upgade phpBugTracker", + "Your database has been updated." => "Your database has been updated.", + "phpBugTracker home" => "phpBugTracker home", + "This script will upgrade your database from version %s to version %s of phpBugTracker." => "This script will upgrade your database from version %s to version %s of phpBugTracker.", + "Do it!" => "Do it!", + "Change Password" => "Change Password", + "Enter new password" => "Enter new password", + "Verify password" => "Verify password", + "Change Preferences" => "Change Preferences", + "Number of results per page" => "Number of results per page", + "Bug List Columns" => "Bug List Columns", + "Choose the fields you want to see in the bug list" => "Choose the fields you want to see in the bug list", + "Votes" => "Votes", + "Are you sure you want to delete this vote?" => "Are you sure you want to delete this vote?", + "Add a new bug" => "Add a new bug", + "View Reports" => "View Reports", + "Create a New Account" => "Create a New Account", + "Read Documentation" => "Read Documentation", + "Administration Tools" => "Administration Tools", + "Email Password" => "Email Password", + "Forgot your password? Have it sent to you" => "Forgot your password? Have it sent to you", + "Remember %s for next time" => "Remember %s for next time", + ... [truncated message content] |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:48
|
Update of /cvsroot/phpbt/phpbt/inc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/inc Modified Files: auth.php functions.php Added Files: is_a.php Log Message: Merging in htmltemplates branch to HEAD Index: auth.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/inc/auth.php,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- auth.php 7 Apr 2003 21:58:30 -0000 1.18 +++ auth.php 25 Oct 2004 12:07:00 -0000 1.19 @@ -2,7 +2,7 @@ // auth.php - Authentication and permission objects // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -10,194 +10,173 @@ // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. -// +// // phpBugTracker is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -// +// // You should have received a copy of the GNU General Public License // along with phpBugTracker; if not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // ------------------------------------------------------------------------ -// Based on and/or directly from PHPlib, which is +// Based on and/or directly from PHPlib, which is // Copyright (c) 1998-2000 NetUSE AG -- Boris Erdmann, Kristian Koehntopp class uauth { var $lifetime = 0; // In minutes -- 0 for no expiration until browser closed var $classname = 'uauth'; - + function uauth() { - global $HTTP_SESSION_VARS, $group_ids, $uname, $db_fields, $group, $perms, - $uid, $exp; - - if (!isset($HTTP_SESSION_VARS['group_ids'])) { - if (phpversion() <= '4.0.6') { - $group_ids = array(0); - $uname = ''; - $db_fields = array(); - $group = array(); - $perms = array(); - $uid = 0; - $exp = 0; - session_register(array('group_ids', 'uname', 'db_fields', 'group', - 'perms', 'uid', 'exp')); - } - $HTTP_SESSION_VARS['group_ids'] = array(0); + global $group_ids, $uname, $db_fields, $group, $perms, + $uid, $exp; + + if (!isset($_SESSION['group_ids'])) { + $_SESSION['group_ids'] = array(0); } - + if ($this->is_authenticated()) { - if ($HTTP_SESSION_VARS['uid']) { - $HTTP_SESSION_VARS['exp'] = time() + (60 * $this->lifetime); + if ($_SESSION['uid']) { + $_SESSION['exp'] = time() + (60 * $this->lifetime); } } } function is_authenticated() { - global $HTTP_SESSION_VARS; - - if (isset($HTTP_SESSION_VARS['uid']) && $HTTP_SESSION_VARS['uid'] && - ($this->lifetime <= 0 || time() < $HTTP_SESSION_VARS['exp'])) { - return $HTTP_SESSION_VARS['uid']; + + if (isset($_SESSION['uid']) && $_SESSION['uid'] && ($this->lifetime <= 0 || time() < $_SESSION['exp'])) { + return $_SESSION['uid']; } else { return false; } } - + function auth_validatelogin() { - global $_pv, $db, $select, $emailpass, $emailsuccess, $STRING, - $HTTP_SESSION_VARS, $uid; + global $db, $select, $emailpass, $emailsuccess, $uid; - extract($_pv); - if (!$username) return 0; - $HTTP_SESSION_VARS['uname'] = $username; - if (ENCRYPT_PASS) { - $password = md5($password); - } - $u = $db->getRow("select * from ".TBL_AUTH_USER." where login = '$username' and password = '$password' and active > 0"); - if (!$u or DB::isError($u)) { - return 0; - } else { - $HTTP_SESSION_VARS['db_fields'] = @unserialize($u['bug_list_fields']); - - // Grab group assignments and permissions based on groups - $rs = $db->query("select u.group_id, group_name from ".TBL_USER_GROUP. - " u, ".TBL_AUTH_GROUP." a where user_id = {$u['user_id']} ". - 'and u.group_id = a.group_id'); + extract($_POST); + if (!$username) return 0; + $_SESSION['uname'] = $username; + if (ENCRYPT_PASS) { + $password = md5($password); + } + $u = $db->getRow("select * from ".TBL_AUTH_USER." where login = '$username' and password = '$password' and active > 0"); + if (!$u or DB::isError($u)) { + return 0; + } else { + $_SESSION['db_fields'] = @unserialize($u['bug_list_fields']); + + // Grab group assignments and permissions based on groups + $rs = $db->query("select u.group_id, group_name from ".TBL_USER_GROUP." u, ".TBL_AUTH_GROUP." a where user_id = {$u['user_id']} and u.group_id = a.group_id"); while (list($groupid, $groupname) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) { - $HTTP_SESSION_VARS['group_ids'][] = $groupid; - $HTTP_SESSION_VARS['group'][$groupname] = true; + $_SESSION['group_ids'][] = $groupid; + $_SESSION['group'][$groupname] = true; + } + $perms = $db->getCol("select perm_name from ".TBL_AUTH_PERM." ap, ".TBL_GROUP_PERM." gp where group_id in (".@join(',', $_SESSION['group_ids']).") and gp.perm_id = ap.perm_id"); + foreach ($perms as $perm) { + $_SESSION['perms'][$perm] = true; } - $perms = $db->getCol("select perm_name from ".TBL_AUTH_PERM." ap, ". - TBL_GROUP_PERM." gp where group_id in (". - delimit_list(',', $HTTP_SESSION_VARS['group_ids']).") and gp.perm_id = ap.perm_id"); - foreach ($perms as $perm) { - $HTTP_SESSION_VARS['perms'][$perm] = true; - } - $HTTP_SESSION_VARS['uid'] = $u['user_id']; - - return $u['user_id']; - } - } - + $_SESSION['uid'] = $u['user_id']; + + return $u['user_id']; + } + } + function unauth() { - global $HTTP_SESSION_VARS; - - $HTTP_SESSION_VARS['uid'] = 0; - $HTTP_SESSION_VARS['perms'] = array(); - $HTTP_SESSION_VARS['exp'] = 0; - $HTTP_SESSION_VARS['group'] = array(); - $HTTP_SESSION_VARS['group_ids'] = array(0); - $HTTP_SESSION_VARS['db_fields'] = array(); - } + + $_SESSION['uid'] = 0; + $_SESSION['perms'] = array(); + $_SESSION['exp'] = 0; + $_SESSION['group'] = array(); + $_SESSION['group_ids'] = array(0); + $_SESSION['db_fields'] = array(); + } } class uperm { - var $classname = 'uperm'; - var $permissions = array (); + var $classname = 'uperm'; + var $permissions = array (); + + function check($p) { + + if (!$this->have_perm($p)) { + if (!isset($_SESSION['perms']) ) { + $_SESSION['perms'] = ''; + } + $this->perm_invalid($_SESSION['perms'], $p); + exit(); + } + } - function check($p) { - global $HTTP_SESSION_VARS; + function check_proj($project_id) { + global $db; + + if ($this->have_perm_proj($project_id)) { + return true; + } else { + $this->perm_invalid($_SESSION['perms'], $p); + exit(); + } + } - if (!$this->have_perm($p)) { - if (!isset($HTTP_SESSION_VARS['perms']) ) { - $HTTP_SESSION_VARS['perms'] = ''; - } - $this->perm_invalid($HTTP_SESSION_VARS['perms'], $p); - exit(); - } - } - - function check_proj($project_id) { - global $db; - - if ($this->have_perm_proj($project_id)) { - return true; - } else { - $this->perm_invalid($HTTP_SESSION_VARS['perms'], $p); - exit(); - } - } - - function have_perm_proj($project_id) { - global $db; - - if ($this->have_perm('Admin')) { - return true; - } - - if ( $db->getCol('SELECT user_id FROM '.TBL_PROJECT_PERM.' WHERE user_id = '.$_SESSION['uid']." AND project_id = $project_id") ) { - return true; - } else { - return false; - } - } - - function check_auth($auth_var, $reqs) { - global $HTTP_SESSION_VARS; - - // Administrators always pass - if (@isset($HTTP_SESSION_VARS[$auth_var]['Admin'])) { - return true; - } - - if (is_array($reqs)) { - foreach ($reqs as $req) { - if (!@isset($HTTP_SESSION_VARS[$auth_var][$req])) { - return false; - } - } - } else { - if (!@isset($HTTP_SESSION_VARS[$auth_var][$reqs])) { - return false; - } - } - - // Didn't fail on any requirements? Then the user passes the check - return true; - } - - - function in_group($req_groups) { - return $this->check_auth('group', $req_groups); - } - - - function have_perm($req_perms) { - return $this->check_auth('perms', $req_perms); - } - - - function perm_invalid($actual_perms, $required_perms) { - global $t; - - $t->wrap('badperm.html'); - } + function have_perm_proj($project_id) { + global $db; + + if ($this->have_perm('Admin')) { + return true; + } + + if ( $db->getCol('SELECT user_id FROM '.TBL_PROJECT_PERM.' WHERE user_id = '.$_SESSION['uid']." AND project_id = $project_id") ) { + return true; + } else { + return false; + } + } + + function check_auth($auth_var, $reqs) { + + // Administrators always pass + if (@isset($_SESSION[$auth_var]['Admin'])) { + return true; + } + + if (is_array($reqs)) { + foreach ($reqs as $req) { + if (!@isset($_SESSION[$auth_var][$req])) { + return false; + } + } + } else { + if (!@isset($_SESSION[$auth_var][$reqs])) { + return false; + } + } + + // Didn't fail on any requirements? Then the user passes the check + return true; + } + + + function in_group($req_groups) { + return $this->check_auth('group', $req_groups); + } + + + function have_perm($req_perms) { + return $this->check_auth('perms', $req_perms); + } + + + function perm_invalid($actual_perms, $required_perms) { + global $t; + + $t->render('badperm.html', ''); + } function check_group($group) { global $t; - if (!$this->check_auth('group', $group)) { + if (!$this->check_auth('group', $group)) { $t->assign('group', $group); $t->wrap('badgroup.html'); exit(); Index: functions.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/inc/functions.php,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- functions.php 18 Mar 2004 22:48:32 -0000 1.46 +++ functions.php 25 Oct 2004 12:07:00 -0000 1.47 @@ -2,7 +2,7 @@ // functions.php - Set up global functions // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -22,37 +22,42 @@ // ------------------------------------------------------------------------ // $Id$ +// Set the domain if gettext is available +if (false && is_callable('gettext')) { + define('USE_GETTEXT', true); + setlocale(LC_ALL, LOCALE); + bindtextdomain('phpbt', './locale'); + textdomain('phpbt'); +} else { + define('USE_GETTEXT', false); +} + /// /// Show text to the browser - escape hatch function show_text($text, $iserror = false) { - global $t; + global $t; $t->assign(array( 'text' => $text, 'iserror' => $iserror )); - $t->wrap('error.html'); + $t->render('error.html', ''); } $select['priority'] = array( - 1 => '1 - Low', - 2 => '2', - 3 => '3 - Medium', - 4 => '4', - 5 => '5 - High' - ); + 1 => '1 - Low', + 2 => '2', + 3 => '3 - Medium', + 4 => '4', + 5 => '5 - High' + ); /// /// Build a select box with the item matching $value selected -function build_select($params) { - global $db, $select, $perm, $STRING, $restricted_projects, $QUERY; - - extract($params); - if (!isset($selected)) { - $selected = ''; - } +function build_select($box, $selected = '', $project = 0) { + global $db, $select, $perm, $restricted_projects, $QUERY; - // create hash to map tablenames + // create hash to map tablenames $cfgDatabase = array( 'group' => TBL_AUTH_GROUP, 'project' => TBL_PROJECT, @@ -63,240 +68,271 @@ 'version' => TBL_VERSION, 'database' => TBL_DATABASE, 'site' => TBL_SITE - ); + ); - $text = ''; + $text = ''; - if (isset($cfgDatabase[$box])) { + if (isset($cfgDatabase[$box])) { $querystart = "select {$box}_id, {$box}_name from $cfgDatabase[$box]"; $querymid = ' where sort_order > 0 order by sort_order'; $queries = array( - 'group' => $querystart.' where group_name <> \'User\' order by group_name', - 'severity' => $querystart.$querymid, - 'site' => $querystart.$querymid, - 'status' => $querystart.$querymid, - 'resolution' => $querystart.$querymid, - 'project' => $perm->have_perm('Admin') - ? $querystart." where ". - ($selected ? "(active > 0 or project_id in ($selected))" : 'active > 0'). - " order by {$box}_name" - : $querystart." where project_id not in ($restricted_projects)". - " and ". - ($selected ? " (active > 0 or project_id in ($selected))" : 'active > 0'). - " order by {$box}_name", - 'component' => $querystart." where project_id = $project and active = 1 order by {$box}_name", - 'version' => $querystart." where project_id = $project and active = 1 order by {$box}_id desc", - 'database' => $querystart.$querymid + 'group' => $querystart.' where group_name <> \'User\' order by group_name', + 'severity' => $querystart.$querymid, + 'site' => $querystart.$querymid, + 'status' => $querystart.$querymid, + 'resolution' => $querystart.$querymid, + 'project' => $perm->have_perm('Admin') + ? $querystart." where ". + ($selected ? "(active > 0 or project_id in ($selected))" : 'active > 0'). + " order by {$box}_name" + : $querystart." where project_id not in ($restricted_projects)". + " and ". + ($selected ? " (active > 0 or project_id in ($selected))" : 'active > 0'). + " order by {$box}_name", + 'component' => $querystart." where project_id = $project and active = 1 order by {$box}_name", + 'version' => $querystart." where project_id = $project and active = 1 order by {$box}_id desc", + 'database' => $querystart.$querymid ); - } + } - switch($box) { - case 'user_filter': - foreach ($STRING['user_filter'] as $k => $v) { - $text .= sprintf("<option value=\"%d\"%s>%s</option>", - $k, ($k == $selected ? ' selected' : ''), $v); - } - break; - case 'group': - if ($project) { // If we are building for project admin page - if (!count($selected) or (count($selected) && in_array(0, $selected))) { - $sel = ' selected'; - } else { - $sel = ''; - } - $text = "<option value=\"all\"$sel>All Groups</option>"; - } - $rs = $db->query($queries[$box]); - while ($rs->fetchInto($row)) { - if (count($selected) && in_array($row[$box.'_id'], $selected)) { - $sel = ' selected'; - } else { - $sel = ''; - } - $text .= '<option value="'. - $row[$box.'_id']."\"$sel>".$row[$box.'_name'].'</option>'; - } - break; - case 'database': $text = '<option value="0">None</option>'; - case 'severity': - case 'status': - case 'resolution': - case 'project': - case 'site': - case 'component': - case 'version': - $rs = $db->query($queries[$box]); - while ($rs->fetchInto($row)) { - if ($selected == $row[$box.'_id'] and $selected != '') { - $sel = ' selected'; - } else { - $sel = ''; - } - $text .= '<option value="'. - $row[$box.'_id']."\"$sel>".$row[$box.'_name'].'</option>'; - } - break; - case 'os': - $rs = $db->query("select {$box}_id, {$box}_name, regex from ".TBL_OS." where sort_order > 0 order by sort_order"); - while ($rs->fetchInto($row)) { - if ($selected == '' and isset($row['Regex']) and - preg_match($row['Regex'],$GLOBALS['HTTP_USER_AGENT'])) { - $sel = ' selected'; - } elseif ($selected == $row[$box.'_id']) { - $sel = ' selected'; - } else { - $sel = ''; - } - $text .= '<option value="'.$row[$box.'_id']."\"$sel>".$row[$box.'_name']."</option>"; - } - break; - case 'owner': - $rs = $db->query("select u.user_id, login from ".TBL_AUTH_USER." u, ".TBL_USER_GROUP." ug, ".TBL_AUTH_GROUP." g where u.active > 0 and u.user_id = ug.user_id and ug.group_id = g.group_id and g.assignable > 0 order by login"); - while ($rs->fetchInto($row)) { - // either singular matches, or array matches are acceptable - if (($selected == $row['user_id']) || in_array($row['user_id'], $selected)) { - $sel = ' selected'; - } else { - $sel = ''; - } - $text .= "<option value=\"{$row['user_id']}\"$sel>". - maskemail($row['login'])."</option>"; - } - break; - case 'bug_cc': - $rs = $db->query(sprintf($QUERY['functions-bug-cc'], $selected)); - while (list($uid, $user) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) { - $text .= "<option value=\"$uid\">".maskemail($user).'</option>'; - } - // Pad the sucker - $text .= '<option value="" disabled>'; - for ($i = 0; $i < 30; $i++) { - $text .= ' '; - } - $text .= '</option>'; - break; - case 'LANGUAGE' : - $dir = opendir('languages'); - while (false !== ($file = readdir($dir))) { - if ($file != '.' && $file != '..' && $file != 'CVS' && substr($file, -3) == 'php') { - $filelist[] = str_replace('.php', '', $file); - } - } - closedir($dir); - sort($filelist); - foreach ($filelist as $file) { - if ($file == $selected) { - $sel = ' selected'; - } else { - $sel = ''; - } - $text .= "<option value=\"$file\"$sel>$file</option>"; - } - break; - case 'THEME' : - $dir = opendir('templates'); - while (false !== ($file = readdir($dir))) { - if ($file != '.' && $file != '..' && $file != 'CVS') { - $filelist[] = str_replace('.php', '', $file); - } - } - closedir($dir); - sort($filelist); - foreach ($filelist as $file) { - if ($file == $selected) { - $sel = ' selected'; - } else { - $sel = ''; - } - $text .= "<option value=\"$file\"$sel>$file</option>"; - } - break; - case 'STYLE' : - $dir = opendir('styles'); - while (false !== ($file = readdir($dir))) { - if ($file != '.' && $file != '..' && $file != 'CVS') { - $filelist[] = str_replace('.css', '', $file); - } - } - closedir($dir); - sort($filelist); - foreach ($filelist as $file) { - if ($file == $selected) { - $sel = ' selected'; - } else { - $sel = ''; - } - $text .= "<option value=\"$file\"$sel>$file</option>"; - } - break; - case 'BUG_UNCONFIRMED' : - case 'BUG_PROMOTED' : - case 'BUG_ASSIGNED' : - case 'BUG_REOPENED' : - case 'BUG_CLOSED' : - static $bug_status_list = array(); - - if (empty($bug_status_list)) { - $bug_status_list = $db->getAssoc("select status_id, status_name". - " from ".TBL_STATUS." order by status_name"); - } - foreach ($bug_status_list as $id => $name) { - $sel = $id == $selected ? ' selected' : ''; - $text .= "<option value=\"$id\"$sel>$name</option>"; - } - break; - case 'GROUP_ASSIGN_TO' : - static $group_list = array(); - - if (empty($group_list)) { - $group_list = $db->getAssoc("select group_id, group_name". - " from ".TBL_AUTH_GROUP." order by group_name"); - } - foreach ($group_list as $id => $name) { - $sel = $id == $selected ? ' selected' : ''; - $text .= "<option value=\"$id\"$sel>$name</option>"; - } - break; - default : - $deadarray = $select[$box]; - while(list($val,$item) = each($deadarray)) { - if ($selected == $val and $selected != '') { - $sel = ' selected'; - } else { - $sel = ''; - } - $text .= "<option value=\"$val\"$sel>$item</option>"; - } - break; - } - echo ($text); + switch($box) { + case 'user_filter': + $options = array( + 0 => translate("All Users"), + 1 => translate("Active Users"), + 2 => translate("Inactive Users")); + foreach ($options as $k => $v) { + $text .= sprintf("<option value=\"%d\"%s>%s</option>", + $k, ($k == $selected ? ' selected' : ''), $v); + } + break; + case 'group': + if ($project) { // If we are building for project admin page + if (!count($selected) or (count($selected) && in_array(0, $selected))) { + $sel = ' selected'; + } else { + $sel = ''; + } + $text = "<option value=\"all\"$sel>All Groups</option>"; + } + $rs = $db->query($queries[$box]); + while ($rs->fetchInto($row)) { + if (count($selected) && in_array($row[$box.'_id'], $selected)) { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= '<option value="'. + $row[$box.'_id']."\"$sel>".$row[$box.'_name'].'</option>'; + } + break; + case 'database': $text = '<option value="0">None</option>'; + case 'severity': + case 'status': + case 'resolution': + case 'project': + case 'site': + case 'component': + case 'version': + $rs = $db->query($queries[$box]); + while ($rs->fetchInto($row)) { + if ($selected == $row[$box.'_id'] and $selected != '') { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= '<option value="'. + $row[$box.'_id']."\"$sel>".$row[$box.'_name'].'</option>'; + } + break; + case 'os': + $rs = $db->query("select {$box}_id, {$box}_name, regex from ".TBL_OS." where sort_order > 0 order by sort_order"); + while ($rs->fetchInto($row)) { + if ($selected == '' and isset($row['Regex']) and + preg_match($row['Regex'],$GLOBALS['HTTP_USER_AGENT'])) { + $sel = ' selected'; + } elseif ($selected == $row[$box.'_id']) { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= '<option value="'.$row[$box.'_id']."\"$sel>".$row[$box.'_name']."</option>"; + } + break; + case 'owner': + // Added the DISTINCT SQL modifier so we don't get duplicated users in the list. (Because of being in multiple groups with assignable rights.) + $rs = $db->query("select DISTINCT u.user_id, login from ".TBL_AUTH_USER." u, ".TBL_USER_GROUP." ug, ".TBL_AUTH_GROUP." g where u.active > 0 and u.user_id = ug.user_id and ug.group_id = g.group_id and g.assignable > 0 order by login"); + while ($rs->fetchInto($row)) { + // either singular matches, or array matches are acceptable + if (($selected == $row['user_id']) || (is_array($selected) && in_array($row['user_id'], $selected))) { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= "<option value=\"{$row['user_id']}\"$sel>". + maskemail($row['login'])."</option>"; + } + break; + case 'reporter': + global $u; + $selected = $selected ? $selected : $u; + $rs = $db->query("select u.user_id, login from ".TBL_AUTH_USER." u where u.active > 0 order by login"); + while ($rs->fetchInto($row)) { + // either singular matches, or array matches are acceptable + if ($selected == $row['user_id']) { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= "<option value=\"{$row['user_id']}\"$sel>". + maskemail($row['login'])."</option>"; + } + break; + case 'bug_cc': + $rs = $db->query(sprintf($QUERY['functions-bug-cc'], $selected)); + while (list($uid, $user) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) { + $text .= "<option value=\"$uid\">".maskemail($user).'</option>'; + } + // Pad the sucker + $text .= '<option value="" disabled>'; + for ($i = 0; $i < 30; $i++) { + $text .= ' '; + } + $text .= '</option>'; + break; + case 'LANGUAGE' : + $dir = opendir('languages'); + while (false !== ($file = readdir($dir))) { + if ($file != '.' && $file != '..' && $file != 'CVS' && substr($file, -3) == 'php') { + $filelist[] = str_replace('.php', '', $file); + } + } + closedir($dir); + sort($filelist); + foreach ($filelist as $file) { + if ($file == $selected) { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= "<option value=\"$file\"$sel>$file</option>"; + } + break; + case 'THEME' : + $dir = opendir('templates'); + while (false !== ($file = readdir($dir))) { + if ($file != '.' && $file != '..' && $file != 'CVS') { + $filelist[] = str_replace('.php', '', $file); + } + } + closedir($dir); + sort($filelist); + foreach ($filelist as $file) { + if ($file == $selected) { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= "<option value=\"$file\"$sel>$file</option>"; + } + break; + case 'STYLE' : + $dir = opendir('styles'); + while (false !== ($file = readdir($dir))) { + if ($file != '.' && $file != '..' && $file != 'CVS') { + $filelist[] = str_replace('.css', '', $file); + } + } + closedir($dir); + sort($filelist); + foreach ($filelist as $file) { + if ($file == $selected) { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= "<option value=\"$file\"$sel>$file</option>"; + } + break; + case 'BUG_UNCONFIRMED' : + case 'BUG_PROMOTED' : + case 'BUG_ASSIGNED' : + case 'BUG_REOPENED' : + case 'BUG_CLOSED' : + static $bug_status_list = array(); + + if (empty($bug_status_list)) { + $bug_status_list = $db->getAssoc("select status_id, status_name from ".TBL_STATUS." order by status_name"); + } + foreach ($bug_status_list as $id => $name) { + $sel = $id == $selected ? ' selected' : ''; + $text .= "<option value=\"$id\"$sel>$name</option>"; + } + break; + case 'GROUP_ASSIGN_TO' : + static $group_list = array(); + + if (empty($group_list)) { + $group_list = $db->getAssoc("select group_id, group_name from ".TBL_AUTH_GROUP." order by group_name"); + } + foreach ($group_list as $id => $name) { + $sel = $id == $selected ? ' selected' : ''; + $text .= "<option value=\"$id\"$sel>$name</option>"; + } + break; + default : + $deadarray = $select[$box]; + while(list($val,$item) = each($deadarray)) { + if ($selected == $val and $selected != '') { + $sel = ' selected'; + } else { + $sel = ''; + } + $text .= "<option value=\"$val\"$sel>$item</option>"; + } + break; + } + echo ($text); } /// +/// Return human-friendly text for a value +function lookup($var, $val) { + global $db; + + switch($var) { + case 'assigned_to' : + return maskemail($db->getOne("select login from ".TBL_AUTH_USER." where user_id = $val")); + break; + } +} + + +/// /// Divide the results of a database query into multiple pages function multipages($nr, $page, $urlstr) { - global $me, $selrange, $t, $u, $db, $perm; + global $me, $selrange, $t, $u, $db, $perm; - $pages = ''; - if (!$page) $page = 1; - if ($page == 'all') { - $selrange = $nr; - $llimit = 0; - $page = 0; - } else { - if ($perm->check_auth('group', 'Users')) - $selrange = $db->getOne('select def_results from '.TBL_USER_PREF.' where user_id = '.$u); - $llimit = ($page-1)*$selrange; - } - if ($nr) $npages = ceil($nr/$selrange); - else $npages = 0; - if ($npages == 1) $pages = 1; - else { - for ($i=1; $i<=$npages; $i++) { - $pages .= $i != $page ? " <a href='$me?page=$i&$urlstr'>$i</a> " : " $i "; - $pages .= $i != $npages ? '|' : ''; - } - } + $pages = ''; + if (!$page) $page = 1; + if ($page == 'all') { + $selrange = $nr; + $llimit = 0; + $page = 0; + } else { + if ($perm->check_auth('group', 'Users')) + $selrange = $db->getOne('select def_results from '.TBL_USER_PREF.' where user_id = '.$u); + $llimit = ($page-1)*$selrange; + } + if ($nr) $npages = ceil($nr/$selrange); + else $npages = 0; + if ($npages == 1) $pages = 1; + else { + for ($i=1; $i<=$npages; $i++) { + $pages .= $i != $page ? " <a href='$me?page=$i&$urlstr'>$i</a> " : " $i "; + $pages .= $i != $npages ? '|' : ''; + } + } $t->assign(array( 'pages' => $pages, 'first' => $llimit+1, @@ -304,21 +340,21 @@ 'total' => $nr )); - return array($selrange, $llimit); + return array($selrange, $llimit); } /// /// Sets variables in the templates for the column headers to sort database results function sorting_headers($url, $headers, $order, $sort, $urlstr = '') { - global $t; + global $t; - while(list($k, $v) = each($headers)) { + while(list($k, $v) = each($headers)) { $theader[$k]['url'] = "$url?order=$v&sort=". - ($order == $v ? ($sort == 'asc' ? 'desc' : 'asc') : 'asc'). - ($urlstr ? '&'.$urlstr : ''); - $theader[$k]['color'] = $order == $v ? '#bbbbbb' : '#eeeeee'; - $theader[$k]['class'] = $order == $v ? 'selected' : ''; - } + ($order == $v ? ($sort == 'asc' ? 'desc' : 'asc') : 'asc'). + ($urlstr ? '&'.$urlstr : ''); + $theader[$k]['color'] = $order == $v ? '#bbbbbb' : '#eeeeee'; + $theader[$k]['class'] = $order == $v ? 'selected' : ''; + } $t->assign('headers', $theader); } @@ -327,94 +363,91 @@ /// (From zend.com user Rival7) function genpassword($length){ - srand((double)microtime()*1000000); + srand((double)microtime()*1000000); - $vowels = array("a", "e", "i", "o", "u"); - $cons = array("b", "c", "d", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "u", "v", "w", "tr", "cr", "br", "fr", "th", "dr", "ch", "ph", "wr", "st", "sp", "sw", "pr", "sl", "cl"); - $password = ''; + $vowels = array("a", "e", "i", "o", "u"); + $cons = array("b", "c", "d", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "u", "v", "w", "tr", "cr", "br", "fr", "th", "dr", "ch", "ph", "wr", "st", "sp", "sw", "pr", "sl", "cl"); + $password = ''; - $num_vowels = count($vowels); - $num_cons = count($cons); + $num_vowels = count($vowels); + $num_cons = count($cons); - for($i = 0; $i < $length; $i++){ - $password .= $cons[rand(0, $num_cons - 1)] . $vowels[rand(0, $num_vowels - 1)]; - } + for($i = 0; $i < $length; $i++){ + $password .= $cons[rand(0, $num_cons - 1)] . $vowels[rand(0, $num_vowels - 1)]; + } - return substr($password, 0, $length); + return substr($password, 0, $length); } /// /// Wrap text - Picked up somewhere on the net - probably zend.com function textwrap($text, $wrap=72, $break="\n"){ - $len = strlen($text); - if ($len > $wrap) { - $h = ''; - $lastWhite = 0; - $lastChar = 0; - $lastBreak = 0; - while ($lastChar < $len) { - $char = substr($text, $lastChar, 1); - if (($lastChar - $lastBreak > $wrap) && ($lastWhite > $lastBreak)) { - $h .= substr($text, $lastBreak, ($lastWhite - $lastBreak)) . $break; - $lastChar = $lastWhite + 1; - $lastBreak = $lastChar; - } - /* You may wish to include other characters as valid whitespace... */ - if ($char == ' ' || $char == chr(13) || $char == chr(10)) - $lastWhite = $lastChar; - $lastChar = $lastChar + 1; - } - $h .= substr($text, $lastBreak); - } - else $h = $text; - return $h; + $len = strlen($text); + if ($len > $wrap) { + $h = ''; + $lastWhite = 0; + $lastChar = 0; + $lastBreak = 0; + while ($lastChar < $len) { + $char = substr($text, $lastChar, 1); + if (($lastChar - $lastBreak > $wrap) && ($lastWhite > $lastBreak)) { + $h .= substr($text, $lastBreak, ($lastWhite - $lastBreak)) . $break; + $lastChar = $lastWhite + 1; + $lastBreak = $lastChar; + } + /* You may wish to include other characters as valid whitespace... */ + if ($char == ' ' || $char == chr(13) || $char == chr(10)) + $lastWhite = $lastChar; + $lastChar = $lastChar + 1; + } + $h .= substr($text, $lastBreak); + } + else $h = $text; + return $h; } /// /// Return a delimited list if there is more than one element in $ary, otherwise /// return the lone element as the list function delimit_list($delimiter, $ary) { - if (isset($ary[1])) return join($delimiter, $ary); - elseif (isset($ary[0])) return ($ary[0]); - else return ''; + if (isset($ary[1])) return join($delimiter, $ary); + elseif (isset($ary[0])) return ($ary[0]); + else return ''; } /// /// Check the validity of an email address /// (From zend.com user russIndr) function bt_valid_email($email) { - return eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$', $email); + return eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$', $email); } /// /// If the constant is set do a little email masking to make harvesting a little harder function maskemail($email) { - global $_sv; - if (HIDE_EMAIL && empty($_sv['uid'])) { - return '******'; - } elseif (MASK_EMAIL) { - return str_replace('@', ' at ', str_replace('.', ' dot ', $email)); - } else { - return $email; - } + if (HIDE_EMAIL && empty($_SESSION['uid'])) { + return '******'; + } elseif (MASK_EMAIL) { + return str_replace('@', ' at ', str_replace('.', ' dot ', $email)); + } else { + return $email; + } } /// /// Build the javascript for the dynamic project -> component -> version select boxes -function build_project_js($params) { - global $db, $u, $perm, $_sv, $QUERY; +function build_project_js($no_all = false) { + global $db, $u, $perm, $QUERY; - extract($params); $js = ''; $js2 = ''; // Build the javascript-powered select boxes if ($perm->have_perm('Admin')) { - $rs = $db->query("select project_id, project_name from ".TBL_PROJECT. - " where active = 1 order by project_name"); + $rs = $db->query("select project_id, project_name from ".TBL_PROJECT." where active = 1 order by project_name"); } else { $rs = $db->query(sprintf($QUERY['functions-project-js'], - delimit_list(',', $_sv['group_ids']))); + @join(',', $_SESSION['group_ids']))); } while (list($pid, $pname) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) { $pname = addslashes($pname); @@ -424,8 +457,7 @@ $js2 = "closedversions['$pname'] = new Array(". ((!isset($no_all) or !$no_all) ? "new Array('','All')," : "new Array(0, 'Choose One'),"); - $rs2 = $db->query("select version_name, version_id from ".TBL_VERSION. - " where project_id = $pid and active = 1"); + $rs2 = $db->query("select version_name, version_id from ".TBL_VERSION." where project_id = $pid and active = 1"); while (list($version,$vid) = $rs2->fetchRow(DB_FETCHMODE_ORDERED)) { $version = addslashes($version); $js .= "new Array($vid,'$version'),"; @@ -440,8 +472,7 @@ // Component array $js .= "components['$pname'] = new Array("; $js .= (!isset($no_all) || !$no_all) ? "new Array('','All')," : ''; - $rs2 = $db->query("select component_name, component_id from ".TBL_COMPONENT. - " where project_id = $pid and active = 1"); + $rs2 = $db->query("select component_name, component_id from ".TBL_COMPONENT." where project_id = $pid and active = 1"); while (list($comp,$cid) = $rs2->fetchRow(DB_FETCHMODE_ORDERED)) { $comp = addslashes($comp); $js .= "new Array($cid,'$comp'),"; @@ -465,8 +496,8 @@ case 'ibase' : $retstr = delimit_list(' || ', $pieces); break; case 'fbsql' : $retstr = 'CONCAT('. delimit_list(', ', $pieces).')'; break; default : $retstr = delimit_list(' + ', $pieces); break; - } - return $retstr; + } + return $retstr; } // Dump a var @@ -481,7 +512,15 @@ // Handle a database error function handle_db_error(&$obj) { - die($obj->message.'<br>'.$obj->userinfo); + if (!defined('RAWERROR')) { + define('RAWERROR', false); + } + if (!RAWERROR) { + show_text('A database error has occurred'); + } else { + show_text(htmlentities($obj->message).'<br>'.htmlentities($obj->userinfo)); + } + exit; } // Date() wrapper for smarty @@ -490,98 +529,110 @@ } /* quoted-printable encoder function - This encoding has all non-ascii (say >127, <32 and =61 chracters) - encoded as "=" and it's hexadecimal value. Special case is space - (32 decimal) at the end of line, which is converted to =20, other- - wise it's not converted and it's returned as space (32 decimal). */ + This encoding has all non-ascii (say >127, <32 and =61 chracters) + encoded as "=" and it's hexadecimal value. Special case is space + (32 decimal) at the end of line, which is converted to =20, other- + wise it's not converted and it's returned as space (32 decimal). */ function qp_enc($input, $line_max = 76) { - // Initialize variables - $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); - $eol = "\n"; - $escape = "="; - $output = ""; - // Do "dos2unix" and split $input into $lines by end of line - $lines = split("\n", str_replace("\r\n", "\n", $input)); - // Loop throught $lines - while( list(, $line) = each($lines) ) { - // Trim each line from right side - $line = rtrim($line); - // Place line length to $linlen - $linlen = strlen($line); - // Initialize $newline - $newline = ""; - // Loop throught each line and process each character of the line - for($i = 0; $i < $linlen; $i++) { - // Place each character of $line to $c - $c = substr($line, $i, 1); - // Place decimal value of $c to $dec - $dec = ord($c); - // If $c equals to space (" ") and we are at the end of line place - // space (" ") to $c - if (($dec == 32) && ($i == ($linlen - 1))) { - $c = "=20"; - } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { - // Or if $c is not printable character in ascii, convert the - // character to it's quoted-printable value - $h2 = floor($dec/16); $h1 = floor($dec%16); - $c = $escape.$hex["$h2"].$hex["$h1"]; - } - // If we are at the maximum line length, add whole line (converted) - // with end of line character to $output - if ( (strlen($newline) + strlen($c)) >= $line_max ) { - $output .= $newline.$escape.$eol; - // And initialize $newline as empty + // Initialize variables + $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); + $eol = "\n"; + $escape = "="; + $output = ""; + // Do "dos2unix" and split $input into $lines by end of line + $lines = split("\n", str_replace("\r\n", "\n", $input)); + // Loop throught $lines + while( list(, $line) = each($lines) ) { + // Trim each line from right side + $line = rtrim($line); + // Place line length to $linlen + $linlen = strlen($line); + // Initialize $newline $newline = ""; - } - // Add converted (or ascii) character to $newline - $newline .= $c; - } - // Add $newline with end of line character to output - $output .= $newline.$eol; - } - // Return trimmed output - return (trim($output)); + // Loop throught each line and process each character of the line + for($i = 0; $i < $linlen; $i++) { + // Place each character of $line to $c + $c = substr($line, $i, 1); + // Place decimal value of $c to $dec + $dec = ord($c); + // If $c equals to space (" ") and we are at the end of line place + // space (" ") to $c + if (($dec == 32) && ($i == ($linlen - 1))) { + $c = "=20"; + } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { + // Or if $c is not printable character in ascii, convert the + // character to it's quoted-printable value + $h2 = floor($dec/16); $h1 = floor($dec%16); + $c = $escape.$hex["$h2"].$hex["$h1"]; + } + // If we are at the maximum line length, add whole line (converted) + // with end of line character to $output + if ( (strlen($newline) + strlen($c)) >= $line_max ) { + $output .= $newline.$escape.$eol; + // And initialize $newline as empty + $newline = ""; + } + // Add converted (or ascii) character to $newline + $newline .= $c; + } + // Add $newline with end of line character to output + $output .= $newline.$eol; + } + // Return trimmed output + return (trim($output)); } // mailer with use of quoted-printable encoding (if configured so) function qp_mail($to, $subject = 'No subject', $body, $headers = '') { - global $STRING; + global $STRING; - if ($headers != '') { - $headers .= "\n"; - // There have to be no newline at the end of $headers - } + if ($headers != '') { + $headers .= "\n"; + // There have to be no newline at the end of $headers + } if (false/*HTML_EMAIL*/) { $headers .= "Content-Type: text/html; charset=\"".$STRING['lang_charset']."\"\r\nContent-Transfer-Encoding: "; } else { $headers .= "Content-Type: text/plain; charset=\"".$STRING['lang_charset']."\"\r\nContent-Transfer-Encoding: "; } - // If configured to send MIME encoded emails - if (SEND_MIME_EMAIL) { - $retval = mail ($to, $subject, qp_enc($body), $headers. - "quoted-printable\nMIME-Version: 1.0"); - } else { - $retval = mail ($to, $subject, $body, $headers. - "8bit"); - } + // If configured to send MIME encoded emails + if (SEND_MIME_EMAIL) { + $retval = mail ($to, $subject, qp_enc($body), $headers. + "quoted-printable\nMIME-Version: 1.0"); + } else { + $retval = mail ($to, $subject, $body, $headers. + "8bit"); + } + + // Returns true if mail is eccepted for delivery, otherwise return false + return ($retval); +} + +function translate($string, $plural = false) { + global $STRING; - // Returns true if mail is eccepted for delivery, otherwise return false - return ($retval); + if (USE_GETTEXT) { + return $plural ? ngettext($string) : gettext($string); + } else { + @include_once('languages/'.LANGUAGE.'.php'); + if (!empty($STRING[$string])) return $STRING[$string]; + else return $string; + } } // Generate a testable WHERE expression for closed bugs function in_closed($column) { global $db; - - $closed_statuses = array(); - + + $closed_statuses = array(0); + foreach($db->getAll('SELECT status_id FROM '.TBL_STATUS.' WHERE bug_open = 0') as $row) { $closed_statuses[] = (int)$row['status_id']; } - - return '('.$column.' = '.(count($closed_statuses) ? join(' OR '.$column.' = ', $closed_statuses) : '0').')'; + + return '('.$column.' in ('.(@join(', ', $closed_statuses)).'))'; } // Check whether or not a status-id means BUG_CLOSED @@ -594,4 +645,14 @@ return false; } } + +// Check to make sure a bug is numeric +function check_id($id) { + if (!is_numeric($id)) { + show_text("Invalid ID"); + exit; + } + return $id; +} + ?> |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:48
|
Update of /cvsroot/phpbt/phpbt/schemas In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/schemas Modified Files: mysql.in pgsql.in Log Message: Merging in htmltemplates branch to HEAD Index: mysql.in =================================================================== RCS file: /cvsroot/phpbt/phpbt/schemas/mysql.in,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- mysql.in 24 Jul 2003 04:50:51 -0000 1.43 +++ mysql.in 25 Oct 2004 12:07:02 -0000 1.44 @@ -298,6 +298,7 @@ # ... and only two permissions INSERT INTO TBL_AUTH_PERM (perm_id, perm_name) VALUES (1, 'Admin'); INSERT INTO TBL_AUTH_PERM (perm_id, perm_name) VALUES (2, 'Editbug'); +INSERT INTO TBL_AUTH_PERM (perm_id, perm_name) VALUES (3, 'EditAssignment'); # Admins can do all the admin stuff and users can edit bugs INSERT INTO TBL_GROUP_PERM (group_id, perm_id) VALUES (1, 1); Index: pgsql.in =================================================================== RCS file: /cvsroot/phpbt/phpbt/schemas/pgsql.in,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- pgsql.in 14 Sep 2003 22:16:24 -0000 1.44 +++ pgsql.in 25 Oct 2004 12:07:02 -0000 1.45 @@ -23,7 +23,8 @@ group_id INT4 NOT NULL DEFAULT '0', group_name varchar(80) NOT NULL DEFAULT '', locked INT2 NOT NULL DEFAULT 0, - created_by INT4 NOT NULL DEFAULT '0', + assignable INT2 NOT NULL DEFAULT 0, + created_by INT4 NOT NULL DEFAULT '0', created_date INT8 NOT NULL DEFAULT '0', last_modified_by INT4 NOT NULL DEFAULT '0', last_modified_date INT8 NOT NULL DEFAULT '0', @@ -220,7 +221,7 @@ status_name varchar(30) NOT NULL DEFAULT '', status_desc TEXT DEFAULT '' NOT NULL, sort_order INT2 NOT NULL DEFAULT '0', - bug_open INT2 NOT NULL default '1', + bug_open INT2 NOT NULL DEFAULT '0', PRIMARY KEY (status_id) ); @@ -293,6 +294,7 @@ -- ... and only two permissions INSERT INTO TBL_AUTH_PERM (perm_id, perm_name) VALUES (1, 'Admin'); INSERT INTO TBL_AUTH_PERM (perm_id, perm_name) VALUES (2, 'Editbug'); +INSERT INTO TBL_AUTH_PERM (perm_id, perm_name) VALUES (3, 'EditAssignment'); -- Admins can do all the admin stuff and users can edit bugs INSERT INTO TBL_GROUP_PERM (group_id, perm_id) VALUES (1, 1); @@ -334,7 +336,6 @@ INSERT INTO TBL_CONFIGURATION VALUES ('BUG_PROMOTED','2','The status to assign a bug when it is promoted (if enabled).','multi'); INSERT INTO TBL_CONFIGURATION VALUES ('BUG_ASSIGNED','3','The status to assign a bug when it is assigned.','multi'); INSERT INTO TBL_CONFIGURATION VALUES ('BUG_REOPENED','4','The status to assign a bug when it is reopened.','multi'); -INSERT INTO TBL_CONFIGURATION VALUES ('BUG_CLOSED','7','The status to assign a bug when it is closed.','multi'); INSERT INTO TBL_CONFIGURATION VALUES ('EMAIL_DISABLED', '0', 'Whether to disable all mail sent from the system', 'bool'); INSERT INTO TBL_OS VALUES (1,'All',1,''); @@ -387,13 +388,13 @@ INSERT INTO TBL_SEVERITY VALUES (7,'Critical','A bug severe enough to prevent the release of the product',7,'#daaaaa'); CREATE SEQUENCE TBL_SEVERITY_seq START 8; -INSERT INTO TBL_STATUS VALUES (1,'Unconfirmed','Reported but not confirmed',1); -INSERT INTO TBL_STATUS VALUES (2,'New','A new bug',2); -INSERT INTO TBL_STATUS VALUES (3,'Assigned','Assigned to a developer',3); -INSERT INTO TBL_STATUS VALUES (4,'Reopened','Closed but opened again for further inspection',4); -INSERT INTO TBL_STATUS VALUES (5,'Resolved','Set by engineer with a resolution',5); -INSERT INTO TBL_STATUS VALUES (6,'Verified','The resolution is confirmed by the reporter',6); -INSERT INTO TBL_STATUS VALUES (7,'Closed','The bug is officially squashed (QA)',7); +INSERT INTO TBL_STATUS VALUES (1,'Unconfirmed','Reported but not confirmed',1,1); +INSERT INTO TBL_STATUS VALUES (2,'New','A new bug',2,1); +INSERT INTO TBL_STATUS VALUES (3,'Assigned','Assigned to a developer',3,1); +INSERT INTO TBL_STATUS VALUES (4,'Reopened','Closed but opened again for further inspection',4,1); +INSERT INTO TBL_STATUS VALUES (5,'Resolved','Set by engineer with a resolution',5,0); +INSERT INTO TBL_STATUS VALUES (6,'Verified','The resolution is confirmed by the reporter',6,0); +INSERT INTO TBL_STATUS VALUES (7,'Closed','The bug is officially squashed (QA)',7,0); CREATE SEQUENCE TBL_STATUS_seq START 8; INSERT INTO TBL_DATABASE VALUES (1,'Oracle 8.1.7',1); |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:48
|
Update of /cvsroot/phpbt/phpbt/inc/pear/Spreadsheet/Excel/Writer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/inc/pear/Spreadsheet/Excel/Writer Added Files: BIFFwriter.php Format.php Parser.php Validator.php Workbook.php Worksheet.php Log Message: Merging in htmltemplates branch to HEAD |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:48
|
Update of /cvsroot/phpbt/phpbt/inc/pear/Spreadsheet/Excel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/inc/pear/Spreadsheet/Excel Added Files: Writer.php Log Message: Merging in htmltemplates branch to HEAD |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:48
|
Update of /cvsroot/phpbt/phpbt/styles In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/styles Modified Files: default.css print.css Log Message: Merging in htmltemplates branch to HEAD Index: default.css =================================================================== RCS file: /cvsroot/phpbt/phpbt/styles/default.css,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- default.css 12 Jun 2003 12:17:43 -0000 1.4 +++ default.css 25 Oct 2004 12:07:02 -0000 1.5 @@ -3,6 +3,7 @@ font-size: 12px; color: #000000; background: #ffffff; + margin: 0px; } a:link { text-decoration: none; color: #006699; } @@ -24,13 +25,14 @@ font-family: "Arial","Helvetica","MS Sans Serif","Sans-Serif"; font-size: 12px; color: #000000; - background-color: #eeeeee; + background-color: #ffc; } th.selected { font-weight: bold; text-align: center; - background-color: #bbbbbb; + background-color: #ffc; + font-style: italic; } select { @@ -59,22 +61,6 @@ font-size: 12px; } -.navfont { - font-family: "Verdana","Arial","Helvetica","MS Sans Serif","Sans-Serif"; - font-size: 10px; - } - -.login-box { - vertical-align: text-bottom; - font-size: 10px; - } - -input[type="text"].login-box { - padding-top: 0.1em; - padding-left: 0.2em; - padding-right: 0.2em; - } - .banner { text-align: center; font-weight: bold; @@ -96,11 +82,6 @@ padding-bottom: 0.1em; } -a.sidenavlink { - color: #000000; - text-decoration: none; - } - .nav { vertical-align: middle; background: #9999ff; @@ -110,44 +91,6 @@ font-weight: bold; } -.navtitlebar { - background: #99f; - } - -.navborder { - background: #000; - } - -.navbotspacer { - background: #fff; - } - -.navinput { - vertical-align: middle; - background: #ffffff; - color: #00000; - font-family: "Arial", sans-serif; - font-size: 12px; - } - -.sidenav { - vertical-align: top; - background: #9999ff; - color: #ffffff; - font-family: "Verdana", "Tahoma", "Helvetica", sans-serif; - font-size: 14px; - font-weight: bold; - } - -.bottomnav { - vertical-align: middle; - background: #ffffcc; - color: #000000; - font-family: "Arial", sans-serif; - font-size: 10px; - font-weight: bold; - } - .bottomnavinput { vertical-align: middle; color: #00000; @@ -155,51 +98,6 @@ font-size: 10px; } -.topnavbox { - vertical-align: middle; - background: #9999ff; - color: #ffffff; - font-family: "Arial", sans-serif; - font-size: 14px; - font-weight: bold; - border-width: 1px 0px 1px 0px; - border-color: #ffffff; - border-style: solid; - padding: 5px; - cursor: pointer; - cursor: hand; - } - -.navbox { - vertical-align: middle; - background: #9999ff; - color: #ffffff; - font-family: "Arial", sans-serif; - font-size: 14px; - font-weight: bold; - border-width: 0px 0px 1px 0px; - border-color: #ffffff; - border-style: solid; - padding: 5px; - cursor: pointer; - cursor: hand; - } - -.navboxselected { - vertical-align: middle; - background: #ffffcc; - color: #ffffff; - font-family: "Arial", sans-serif; - font-size: 14px; - font-weight: bold; - border-width: 0px 0px 1px 0px; - border-color: #ffffff; - border-style: solid; - padding: 5px; - cursor: pointer; - cursor: hand; - } - .maincontent { vertical-align: top; background: #ffffff; @@ -223,13 +121,79 @@ .header-col { font-weight: bold; } .center-col { text-align: center; } -a.navlink, a.navlink:link, a.navlink:visited, a.navlink:active { - color: #FFFFFF; - text-decoration: none; - font-family: Arial, Helvetica, sans-serif; - font-weight: bold; - } +.bordertable { + width: 90%; +} + +.bordertable, .bordertable td { + border: 1px solid #666666; + border-collapse: collapse; +} + +.bordertable td { + padding: 2px 4px; +} + +.pagination { + padding: 5px; +} + +a.closed_bug_number { + text-decoration: line-through; +} + +.header_image { + height: 55px; +} + +.header_search { + position: absolute; + top: 10px; + right: 0px; + height: 40px; +} + +#tabnav { + height: 22px; + margin: 0; + padding-left: 6px; +} -a.navlink:hover { +#tabnav li { + margin: 0; + padding: 0; + display: inline; + list-style-type: none; +} + +#tabnav a:link, #tabnav a:visited { + float: left; + font-size: 12px; + line-height: 14px; + font-weight: bold; + padding: 2px 5px 2px 0px; + margin-right: 4px; + /* border-left: 1px solid #000; */ + text-decoration: none; + color: #fff; +} + +#tabnav a:hover { text-decoration: underline; } + +.personalarea { + /* position: absolute; + top: 77px; */ + width: 100%; + /* height: 50px; */ + background: #ffc; + color: #000000; + font-size: 10px; + font-weight: bold; + border-top: 1px solid #000; + border-bottom: 1px solid #000; +} + + + Index: print.css =================================================================== RCS file: /cvsroot/phpbt/phpbt/styles/print.css,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- print.css 13 Sep 2002 19:10:32 -0000 1.1 +++ print.css 25 Oct 2004 12:07:03 -0000 1.2 @@ -59,23 +59,6 @@ font-size: 12px; } -.navfont { - font-family: "Verdana","Arial","Helvetica","MS Sans Serif","Sans-Serif"; - font-size: 10px; - } - -.login-box { - vertical-align: text-bottom; - font-size: 10px; - display: none; - } - -input[type="text"].login-box { - padding-top: 0.1em; - padding-left: 0.2em; - padding-right: 0.2em; - } - .banner { text-align: center; font-weight: bold; @@ -97,11 +80,6 @@ padding-bottom: 0.1em; } -a.sidenavlink { - color: #000000; - text-decoration: none; - } - .nav { vertical-align: middle; background: #9999ff; @@ -112,32 +90,6 @@ display: none; } -.navinput { - vertical-align: middle; - background: #ffffff; - color: #00000; - font-family: "Arial", sans-serif; - font-size: 12px; - } - -.sidenav { - vertical-align: top; - background: #9999ff; - color: #ffffff; - font-family: "Verdana", "Tahoma", "Helvetica", sans-serif; - font-size: 14px; - font-weight: bold; - } - -.bottomnav { - vertical-align: middle; - background: #ffffcc; - color: #000000; - font-family: "Arial", sans-serif; - font-size: 10px; - font-weight: bold; - } - .bottomnavinput { vertical-align: middle; color: #00000; @@ -145,53 +97,6 @@ font-size: 10px; } -.topnavbox { - vertical-align: middle; - background: #9999ff; - color: #ffffff; - font-family: "Arial", sans-serif; - font-size: 14px; - font-weight: bold; - border-width: 1px 0px 1px 0px; - border-color: #ffffff; - border-style: solid; - padding: 5px; - cursor: pointer; - cursor: hand; - display: none; - } - -.navbox { - vertical-align: middle; - background: #9999ff; - color: #ffffff; - font-family: "Arial", sans-serif; - font-size: 14px; - font-weight: bold; - border-width: 0px 0px 1px 0px; - border-color: #ffffff; - border-style: solid; - padding: 5px; - cursor: pointer; - cursor: hand; - display: none; - } - -.navboxselected { - vertical-align: middle; - background: #ffffcc; - color: #ffffff; - font-family: "Arial", sans-serif; - font-size: 14px; - font-weight: bold; - border-width: 0px 0px 1px 0px; - border-color: #ffffff; - border-style: solid; - padding: 5px; - cursor: pointer; - cursor: hand; - } - .maincontent { vertical-align: top; background: #ffffff; @@ -222,6 +127,6 @@ font-weight: bold; } -.bugdisplaylinks { +.bugdisplaylinks, .noprint { display: none; -} \ No newline at end of file +} |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:47
|
Update of /cvsroot/phpbt/phpbt/inc/db In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/inc/db Modified Files: mysql.php oci8.php pgsql.php Log Message: Merging in htmltemplates branch to HEAD Index: mysql.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/inc/db/mysql.php,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- mysql.php 24 Jul 2003 04:47:13 -0000 1.18 +++ mysql.php 25 Oct 2004 12:07:01 -0000 1.19 @@ -50,7 +50,7 @@ 'bug-history' => 'select bh.*, login '. 'from '.TBL_BUG_HISTORY.' bh '. 'left join '. TBL_AUTH_USER.' on bh.created_by = user_id '. - 'where bug_id = %s', + 'where bug_id = %s order by bh.created_date', 'bug-cc-list' => 'select email '. 'from '.TBL_BUG_CC.' left join '. TBL_AUTH_USER.' u using(user_id), '. TBL_USER_PREF.' p '. Index: oci8.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/inc/db/oci8.php,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- oci8.php 21 Jun 2003 13:36:30 -0000 1.15 +++ oci8.php 25 Oct 2004 12:07:01 -0000 1.16 @@ -39,7 +39,7 @@ 'group by d.database_id, database_name, sort_order '. 'order by %s %s', 'admin-list-sites' => 'select s.site_id, site_name, sort_order, '. - 'count(bug_id) as bug_count from '.TBL_SITE. ' s, '.TBL_BUG. + 'count(bug_id) as bug_count from '.TBL_SITE. ' s, '.TBL_BUG.' b '. 'where s.site_id = b.site_id(+) group by s.site_id, site_name, '. 'sort_order order by %s %s', 'admin-list-statuses' => 'select s.status_id, status_name, status_desc, '. @@ -54,7 +54,7 @@ 'and group_name <> \'User\'', 'bug-history' => 'select bh.*, login '. 'from '.TBL_BUG_HISTORY.' bh, '.TBL_AUTH_USER . - ' where user_id = bh.created_by(+) and bug_id = %s', + ' where user_id = bh.created_by(+) and bug_id = %s order by bh.created_date', 'bug-cc-list' => 'select email '. 'from '.TBL_BUG_CC.' bc, ' . TBL_AUTH_USER.' u, ' . TBL_USER_PREF.' p '. 'where u.user_id = bc.user_id(+) and u.user_id = p.user_id '. Index: pgsql.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/inc/db/pgsql.php,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- pgsql.php 21 Jun 2003 13:36:30 -0000 1.24 +++ pgsql.php 25 Oct 2004 12:07:01 -0000 1.25 @@ -6,7 +6,7 @@ 'from '.TBL_AUTH_GROUP.' ag '. 'left join '.TBL_USER_GROUP.' ug using (group_id) '. 'left join '.TBL_AUTH_USER.' using (user_id) '. - 'group by ag.group_id, group_name, locked '. + 'group by ag.group_id, group_name, locked, assignable '. 'order by %s %s', 'admin-list-oses' => 'select s.os_id, os_name, regex, sort_order, '. 'count(bug_id) as bug_count '. @@ -51,7 +51,7 @@ 'bug-history' => 'select bh.*, login '. 'from '.TBL_BUG_HISTORY.' bh '. 'left join '. TBL_AUTH_USER.' on bh.created_by = user_id '. - 'where bug_id = %s', + 'where bug_id = %s order by bh.created_date', 'bug-cc-list' => 'select email '. 'from '.TBL_BUG_CC.' left join '. TBL_AUTH_USER.' u using(user_id), '. TBL_USER_PREF.' p '. |
Update of /cvsroot/phpbt/phpbt/admin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/admin Modified Files: configure.php database.php group.php os.php project.php resolution.php severity.php site.php status.php user.php Log Message: Merging in htmltemplates branch to HEAD Index: configure.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/configure.php,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- configure.php 18 Nov 2002 14:32:28 -0000 1.12 +++ configure.php 25 Oct 2004 12:06:59 -0000 1.13 @@ -2,7 +2,7 @@ // configure.php - Interface for configuration options // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -28,8 +28,8 @@ $perm->check('Admin'); -if (isset($_pv['submit'])) { - foreach ($_pv as $k => $v) { +if (isset($_POST['submit'])) { + foreach ($_POST as $k => $v) { // Check the jpgraph path to make sure it has a trailing / if ($k == 'JPGRAPH_PATH' and strlen($v) and substr($v, -1) != '/') $v .= '/'; @@ -43,7 +43,7 @@ } $t->assign('vars', $db->getAll('select * from '.TBL_CONFIGURATION)); -$t->wrap('admin/configure.html', 'configuration'); +$t->render('configure.html', translate("Configuration")); ?> Index: database.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/database.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- database.php 30 Sep 2002 18:02:05 -0000 1.3 +++ database.php 25 Oct 2004 12:06:59 -0000 1.4 @@ -2,7 +2,7 @@ // database.php - Interface to the database table // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -31,11 +31,9 @@ if ($databaseid) { // Make sure we are going after a valid record - $itemexists = $db->getOne('select count(*) from '.TBL_DATABASE. - " where database_id = $databaseid"); + $itemexists = $db->getOne('select count(*) from '.TBL_DATABASE." where database_id = $databaseid"); // Are there any bugs tied to this one? - $bugcount = $db->getOne('select count(*) from '.TBL_BUG. - " where database_id = $databaseid"); + $bugcount = $db->getOne('select count(*) from '.TBL_BUG." where database_id = $databaseid"); if ($itemexists and !$bugcount) { $db->query('delete from '.TBL_DATABASE." where database_id = $databaseid"); } @@ -44,59 +42,53 @@ } function do_form($databaseid = 0) { - global $db, $me, $_pv, $STRING, $t; + global $db, $me, $t; - extract($_pv); + extract($_POST); $error = ''; // Validation if (!$database_name = trim($database_name)) - $error = $STRING['givename']; + $error = translate("Please enter a name"); if ($error) { show_form($databaseid, $error); return; } if (empty($sort_order)) $sort_order = 0; if (!$databaseid) { - $db->query("insert into ".TBL_DATABASE. - " (database_id, database_name, sort_order) - values (".$db->nextId(TBL_DATABASE).', '. - $db->quote(stripslashes($database_name)). - ", $sort_order)"); + $db->query("insert into ".TBL_DATABASE." (database_id, database_name, sort_order) values (".$db->nextId(TBL_DATABASE).', '.$db->quote(stripslashes($database_name)).", $sort_order)"); } else { - $db->query("update ".TBL_DATABASE. - " set database_name = ".$db->quote(stripslashes($database_name)). - ", sort_order = $sort_order where database_id = $database_id"); + $db->query("update ".TBL_DATABASE." set database_name = ".$db->quote(stripslashes($database_name)).", sort_order = $sort_order where database_id = $database_id"); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html'); } else { header("Location: $me?"); } } function show_form($databaseid = 0, $error = '') { - global $db, $me, $t, $_pv, $STRING; + global $db, $me, $t; if ($databaseid && !$error) { - $t->assign($db->getRow("select * from ".TBL_DATABASE. - " where database_id = '$databaseid'")); + $t->assign($db->getRow("select * from ".TBL_DATABASE." where database_id = '$databaseid'")); } else { - $t->assign($_pv); + $t->assign($_POST); } $t->assign('error', $error); - $t->wrap('admin/database-edit.html', ($databaseid ? 'editdatabase' : 'adddatabase')); + $t->render('database-edit.html', translate("Edit Database"), + !empty($_GET['use_js']) ? 'wrap-popup.html' : ''); } function list_items($databaseid = 0, $error = '') { - global $me, $db, $t, $_gv, $STRING, $TITLE, $QUERY; + global $me, $db, $t, $QUERY; - if (empty($_gv['order'])) { + if (empty($_GET['order'])) { $order = 'sort_order'; $sort = 'asc'; } else { - $order = $_gv['order']; - $sort = $_gv['sort']; + $order = $_GET['order']; + $sort = $_GET['sort']; } - $page = isset($_gv['page']) ? $_gv['page'] : 0; + $page = isset($_GET['page']) ? $_GET['page'] : 0; $nr = $db->getOne("select count(*) from ".TBL_DATABASE); @@ -112,17 +104,18 @@ sorting_headers($me, $headers, $order, $sort); - $t->wrap('admin/databaselist.html', 'database'); + $t->render('databaselist.html', translate("Database List")); } $perm->check('Admin'); -if (isset($_gv['op'])) switch($_gv['op']) { - case 'add' : list_items(); break; - case 'edit' : show_form($_gv['database_id']); break; - case 'del' : del_item($_gv['database_id']); break; -} elseif(isset($_pv['submit'])) { - do_form($_pv['database_id']); +if (isset($_REQUEST['op'])) { + switch($_REQUEST['op']) { + case 'add' : list_items(); break; + case 'edit' : show_form($_GET['database_id']); break; + case 'save' : do_form($_POST['database_id']); break; + case 'del' : del_item($_GET['database_id']); break; + } } else list_items(); ?> Index: group.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/group.php,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- group.php 25 Jun 2003 02:11:10 -0000 1.12 +++ group.php 25 Oct 2004 12:06:59 -0000 1.13 @@ -2,7 +2,7 @@ // group.php - Administer the user groups // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -40,58 +40,52 @@ } function do_form($groupid = 0) { - global $db, $me, $_pv, $STRING, $u, $now, $t; + global $db, $me, $u, $now, $t; - extract($_pv); + extract($_POST); $error = ''; // Validation if (!$group_name = trim($group_name)) - $error = $STRING['givename']; + $error = translate("Please enter a name"); if ($error) { show_form($groupid, $error); return; } if (!$groupid) { - $db->query("insert into ".TBL_AUTH_GROUP. - " (group_id, group_name, created_by, created_date, last_modified_by, last_modified_date, assignable)" - ." values (".$db->nextId(TBL_AUTH_GROUP).", ". - $db->quote(stripslashes($group_name)).", $u, $now, $u, $now, ". ((int)$assignable).')'); + $db->query("insert into ".TBL_AUTH_GROUP." (group_id, group_name, created_by, created_date, last_modified_by, last_modified_date, assignable) values (".$db->nextId(TBL_AUTH_GROUP).", ".$db->quote(stripslashes($group_name)).", $u, $now, $u, $now, ". ((int)$assignable).')'); } else { - $db->query("update ".TBL_AUTH_GROUP. - " set group_name = ".$db->quote(stripslashes($group_name)). - ", last_modified_by = $u, last_modified_date = $now, assignable = ".($assignable?1:0)." where group_id = '$groupid'"); + $db->query("update ".TBL_AUTH_GROUP." set group_name = ".$db->quote(stripslashes($group_name)).", last_modified_by = $u, last_modified_date = $now, assignable = ".($assignable?1:0)." where group_id = '$groupid'"); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html', '', 'wrap-popup.html'); } else { header("Location: $me?"); } } function show_form($groupid = 0, $error = '') { - global $db, $me, $t, $_pv, $STRING; + global $db, $me, $t; if ($groupid && !$error) { - $t->assign($db->getRow("select * from ".TBL_AUTH_GROUP. - " where group_id = '$groupid'")); + $t->assign($db->getRow("select * from ".TBL_AUTH_GROUP." where group_id = '$groupid'")); } else { - $t->assign($_pv); + $t->assign($_POST); } $t->assign('error', $error); - $t->wrap('admin/group-edit.html', ($groupid ? 'editgroup' : 'addgroup')); + $t->render('group-edit.html', translate("Edit Group"), (!empty($_GET['use_js']) ? 'wrap-popup.html' : 'wrap.html')); } function list_items($groupid = 0, $error = '') { - global $me, $db, $t, $_gv, $STRING, $TITLE, $QUERY; + global $me, $db, $t, $QUERY; - if (empty($_gv['order'])) { + if (empty($_GET['order'])) { $order = 'group_name'; $sort = 'asc'; } else { - $order = $_gv['order']; - $sort = $_gv['sort']; + $order = $_GET['order']; + $sort = $_GET['sort']; } - $page = isset($_gv['page']) ? $_gv['page'] : 0; + $page = isset($_GET['page']) ? $_GET['page'] : 0; $nr = $db->getOne("select count(*) from ".TBL_AUTH_GROUP); @@ -107,17 +101,18 @@ sorting_headers($me, $headers, $order, $sort, "page=$page"); - $t->wrap('admin/grouplist.html', 'group'); + $t->render('grouplist.html', translate("Group List")); } $perm->check('Admin'); -if (isset($_gv['op'])) switch($_gv['op']) { - case 'edit' : show_form($_gv['group_id']); break; - case 'del' : del_group($_gv['group_id']); list_items($_gv['group_id']); break; - case 'purge' : purge_group($_gv['group_id']); list_items($_gv['group_id']); break; -} elseif(isset($_pv['submit'])) { - do_form($_pv['group_id']); +if (isset($_REQUEST['op'])) { + switch($_REQUEST['op']) { + case 'save' : do_form($_POST['group_id']); break; + case 'edit' : show_form($_GET['group_id']); break; + case 'del' : del_group($_GET['group_id']); list_items($_GET['group_id']); break; + case 'purge' : purge_group($_GET['group_id']); list_items($_GET['group_id']); break; + } } else list_items(); ?> Index: os.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/os.php,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- os.php 26 Aug 2002 18:11:13 -0000 1.28 +++ os.php 25 Oct 2004 12:06:59 -0000 1.29 @@ -2,7 +2,7 @@ // os.php - Interface to the OS table // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -31,11 +31,9 @@ if ($osid) { // Make sure we are going after a valid record - $itemexists = $db->getOne('select count(*) from '.TBL_OS. - " where os_id = $osid"); + $itemexists = $db->getOne('select count(*) from '.TBL_OS." where os_id = $osid"); // Are there any bugs tied to this one? - $bugcount = $db->getOne('select count(*) from '.TBL_BUG. - " where os_id = $osid"); + $bugcount = $db->getOne('select count(*) from '.TBL_BUG." where os_id = $osid"); if ($itemexists and !$bugcount) { $db->query('delete from '.TBL_OS." where os_id = $osid"); } @@ -44,57 +42,55 @@ } function do_form($osid = 0) { - global $db, $me, $_pv, $STRING, $t; + global $db, $me, $t; - extract($_pv); + extract($_POST); $error = ''; // Validation if (!$os_name = trim($os_name)) - $error = $STRING['givename']; + $error = translate("Please enter a name"); if ($error) { show_form($osid, $error); return; } if (empty($sort_order)) $sort_order = 0; if (!$osid) { - $db->query("insert into ".TBL_OS." (os_id, os_name, regex, sort_order) ". - "values (".$db->nextId(TBL_OS).", ".$db->quote(stripslashes($os_name)). - ", '$regex', '$sort_order')"); + $db->query("insert into ".TBL_OS." (os_id, os_name, regex, sort_order) values (".$db->nextId(TBL_OS).", ".$db->quote(stripslashes($os_name)).", '$regex', '$sort_order')"); } else { - $db->query("update ".TBL_OS." set os_name = ".$db->quote(stripslashes($os_name)). - ", regex = '$regex', sort_order = '$sort_order' where os_id = '$os_id'"); + $db->query("update ".TBL_OS." set os_name = ".$db->quote(stripslashes($os_name)).", regex = '$regex', sort_order = '$sort_order' where os_id = '$os_id'"); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html', '', 'wrap-popup.html'); } else { header("Location: $me?"); } } function show_form($osid = 0, $error = '') { - global $db, $me, $t, $_pv, $STRING; + global $db, $me, $t; - extract($_pv); + extract($_POST); if ($osid && !$error) { $t->assign($db->getRow("select * from ".TBL_OS." where os_id = '$osid'")); } else { - $t->assign($_pv); + $t->assign($_POST); } $t->assign('error', $error); - $t->wrap('admin/os-edit.html', ($osid ? 'editos' : 'addos')); + $t->render('os-edit.html', translate("Edit Operating System"), + !empty($_REQUEST['use_js']) ? 'wrap-popup.html' : 'wrap.html'); } function list_items($osid = 0, $error = '') { - global $db, $me, $t, $_gv, $STRING, $TITLE, $QUERY; + global $db, $me, $t, $QUERY; - if (empty($_gv['order'])) { + if (empty($_GET['order'])) { $order = 'sort_order'; $sort = 'asc'; } else { - $order = $_gv['order']; - $sort = $_gv['sort']; + $order = $_GET['order']; + $sort = $_GET['sort']; } - $page = isset($_gv['page']) ? $_gv['page'] : 0; + $page = isset($_GET['page']) ? $_GET['page'] : 0; $nr = $db->getOne("select count(*) from ".TBL_OS); @@ -111,16 +107,17 @@ sorting_headers($me, $headers, $order, $sort, "page=$page"); - $t->wrap('admin/oslist.html', 'os'); + $t->render('oslist.html', translate("Operating System List")); } $perm->check('Admin'); -if (isset($_gv['op'])) switch($_gv['op']) { - case 'edit' : show_form($_gv['os_id']); break; - case 'del' : del_item($_gv['os_id']); break; -} elseif(isset($_pv['submit'])) { - do_form($_pv['os_id']); +if (isset($_REQUEST['op'])) { + switch($_REQUEST['op']) { + case 'save' : do_form($_POST['os_id']); break; + case 'edit' : show_form($_GET['os_id']); break; + case 'del' : del_item($_GET['os_id']); break; + } } else list_items(); ?> Index: project.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/project.php,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- project.php 7 Jun 2003 02:52:24 -0000 1.46 +++ project.php 25 Oct 2004 12:06:59 -0000 1.47 @@ -2,7 +2,7 @@ // project.php - Create and update projects // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -38,51 +38,46 @@ } function save_version($version_id = 0) { - global $db, $me, $_pv, $STRING, $now, $u, $t, $perm; + global $db, $me, $now, $u, $t, $perm; $perm->check_proj($projectid); $error = ''; // Validation - if (!$_pv['version_name'] = trim($_pv['version_name'])) - $error = $STRING['giveversion']; + if (!$_POST['version_name'] = trim($_POST['version_name'])) + $error = translate("Please enter a version"); if ($error) { - show_version($_pv['version_id'], $error); return; + show_version($_POST['version_id'], $error); return; } - extract($_pv); + extract($_POST); if (!isset($active)) $active = 0; if (!$version_id) { - $db->query('insert into '.TBL_VERSION - ." (version_id, project_id, version_name, active, created_by, created_date) - values (".$db->nextId(TBL_VERSION).", $project_id, ". - $db->quote(stripslashes($version_name)).", $active, $u, $now)"); + $db->query('insert into '.TBL_VERSION." (version_id, project_id, version_name, active, created_by, created_date) values (".$db->nextId(TBL_VERSION).", $project_id, ".$db->quote(stripslashes($version_name)).", $active, $u, $now)"); } else { - $db->query('update '.TBL_VERSION - ." set project_id = $project_id, version_name = ". - $db->quote(stripslashes($version_name)). - ", active = $active where version_id = '$version_id'"); + $db->query('update '.TBL_VERSION." set project_id = $project_id, version_name = ".$db->quote(stripslashes($version_name)).", active = $active where version_id = '$version_id'"); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html'); } else { header("Location:$me?op=edit&id=$project_id"); } } function show_version($versionid = 0, $error = '') { - global $db, $t, $_pv, $STRING, $QUERY, $_gv; - - foreach ($_pv as $k => $v) $$k = $v; + global $db, $t, $QUERY; + extract($_POST); if ($versionid) { $t->assign($db->getRow(sprintf($QUERY['admin-show-version'], $versionid))); } else { - if (!empty($_gv['project_id'])) $t->assign('project_id', $_gv['project_id']); - $t->assign($_pv); + if (!empty($_GET['project_id'])) + $t->assign('project_id', $_GET['project_id']); + $t->assign($_POST); } $t->assign('error', $error); - $t->wrap('admin/version-edit.html', ($versionid ? 'editversion' : 'addversion')); + $t->render('version-edit.html', translate("Edit Version"), + !empty($_REQUEST['use_js']) ? 'wrap-popup.html' : 'wrap.html'); } function del_component($componentid, $projectid) { @@ -97,139 +92,120 @@ } function save_component($component_id = 0) { - global $db, $me, $_pv, $u, $STRING, $now, $t, $perm; + global $db, $me, $u, $now, $t, $perm; $perm->check_proj($projectid); $error = ''; // Validation - if (!$_pv['component_name'] = trim($_pv['component_name'])) - $error = $STRING['givename']; - elseif (!$_pv['component_desc'] = trim($_pv['component_desc'])) - $error = $STRING['givedesc']; - if ($error) { show_component($_pv['component_id'], $error); return; } + if (!$_POST['component_name'] = trim($_POST['component_name'])) { + $error = translate("Please enter a name"); + } elseif (!$_POST['component_desc'] = trim($_POST['component_desc'])) { + $error = translate("Please enter a description"); + } + if ($error) { + show_component($_POST['component_id'], $error); + return; + } - foreach ($_pv as $k => $v) $$k = $v; + extract($_POST); if (!$owner) $owner = 0; if (!$active) $active = 0; if (!$component_id) { - $db->query('insert into '.TBL_COMPONENT - ." (component_id, project_id, component_name, component_desc, owner, - active, created_by, created_date, last_modified_by, last_modified_date) - values (".$db->nextId(TBL_COMPONENT).", $project_id, ". - $db->quote(stripslashes($component_name)).", ". - $db->quote(stripslashes($component_desc)). - ", $owner, $active, $u, $now, $u, $now)"); + $db->query('insert into '.TBL_COMPONENT." (component_id, project_id, component_name, component_desc, owner, active, created_by, created_date, last_modified_by, last_modified_date) values (".$db->nextId(TBL_COMPONENT).", $project_id, ".$db->quote(stripslashes($component_name)).", ".$db->quote(stripslashes($component_desc)).", $owner, $active, $u, $now, $u, $now)"); } else { - $db->query('update '.TBL_COMPONENT - ." set component_name = ".$db->quote(stripslashes($component_name)). - ', component_desc = '.$db->quote(stripslashes($component_desc)). - ", owner = $owner, active = $active, last_modified_by = $u, ". - "last_modified_date = $now where component_id = $component_id"); + $db->query('update '.TBL_COMPONENT." set component_name = ".$db->quote(stripslashes($component_name)).', component_desc = '.$db->quote(stripslashes($component_desc)).", owner = $owner, active = $active, last_modified_by = $u, "."last_modified_date = $now where component_id = $component_id"); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html'); } else { header("Location: $me?op=edit&id=$project_id"); } } function show_component($componentid = 0, $error = '') { - global $db, $t, $_pv, $STRING, $QUERY, $_gv; + global $db, $t, $QUERY; if ($componentid) { $t->assign($db->getRow(sprintf($QUERY['admin-show-component'], $componentid))); } else { - if (!empty($_gv['project_id'])) $t->assign('project_id', $_gv['project_id']); - $t->assign($_pv); + if (!empty($_GET['project_id'])) $t->assign('project_id', $_GET['project_id']); + $t->assign($_POST); } $t->assign('error', $error); - $t->wrap('admin/component-edit.html', ($componentid ? 'editcomponent' : 'addcomponent')); + $t->render('component-edit.html', translate("Edit Component"), + !empty($_REQUEST['use_js']) ? 'wrap-popup.html' : 'wrap.html'); } function save_project($projectid = 0) { - global $db, $me, $u, $STRING, $now, $_pv, $perm; + global $db, $me, $u, $now, $perm; $perm->check_proj($projectid); $error = ''; - // Validation - if (!$_pv['project_name'] = htmlspecialchars(trim($_pv['project_name']))) { - $error = $STRING['givename']; - } elseif (!$_pv['project_desc'] = htmlspecialchars(trim($_pv['project_desc']))) { - $error = $STRING['givedesc']; - } elseif (isset($_pv['usergroup']) and is_array($_pv['usergroup']) and - in_array('all', $_pv['usergroup']) and count($_pv['usergroup']) > 1) { - $error = $STRING['project_only_all_groups']; + // Validation + if (!$_POST['project_name'] = htmlspecialchars(trim($_POST['project_name']))) { + $error = translate("Please enter a name"); + } elseif (!$_POST['project_desc'] = htmlspecialchars(trim($_POST['project_desc']))) { + $error = translate("Please enter a description"); + } elseif (isset($_POST['usergroup']) and is_array($_POST['usergroup']) and + in_array('all', $_POST['usergroup']) and count($_POST['usergroup']) > 1) { + $error = translate("You cannot choose specific groups when \"All Groups\" is chosen"); + } + if ($error) { + show_project($projectid, $error); + return; } - if ($error) { show_project($projectid, $error); return; } if (!$projectid) { - if (!$_pv['version_name'] = htmlspecialchars(trim($_pv['version_name']))) { - $error['version_error'] = $STRING['giveversion']; - } elseif (!$_pv['component_name'] = trim($_pv['component_name'])) { - $error['component_error'] = $STRING['givename']; - } elseif (!$_pv['component_desc'] = trim($_pv['component_desc'])) { - $error['component_error'] = $STRING['givedesc']; + if (!$_POST['version_name'] = htmlspecialchars(trim($_POST['version_name']))) { + $error['version_error'] = translate("Please enter a version"); + } elseif (!$_POST['component_name'] = trim($_POST['component_name'])) { + $error['component_error'] = translate("Please enter a name"); + } elseif (!$_POST['component_desc'] = trim($_POST['component_desc'])) { + $error['component_error'] = translate("Please enter a description"); } } - if ($error) { show_project($projectid, $error); return; } + if ($error) { + show_project($projectid, $error); + return; + } - foreach ($_pv as $k => $v) $$k = $v; - if (!isset($active)) $active = 0; - if (!$projectid) { - $projectid = $db->nextId(TBL_PROJECT); - $db->query('insert into '.TBL_PROJECT - ." (project_id, project_name, project_desc, active, created_by, created_date) - values ($projectid , ".$db->quote(stripslashes($project_name)).", ". - $db->quote(stripslashes($project_desc)).", $active, $u, $now)"); - $db->query('insert into '.TBL_VERSION - ." (version_id, project_id, version_name, active, created_by, created_date) - values (".$db->nextId(TBL_VERSION).", $projectid, ". - $db->quote(stripslashes($version_name)).", 1, $u, $now)"); - $db->query('insert into '.TBL_COMPONENT - ." (component_id, project_id, component_name, component_desc, owner, - active, created_by, created_date, last_modified_by, last_modified_date) - values (".$db->nextId(TBL_COMPONENT).", $projectid, ". - $db->quote(stripslashes($component_name)).", ". - $db->quote(stripslashes($component_desc)). - ", $owner, 1, $u, $now, $u, $now)"); - } else { - $db->query('update '.TBL_PROJECT - ." set project_name = ".$db->quote(stripslashes($project_name)). - ", project_desc = ".$db->quote(stripslashes($project_desc)). - ", active = $active where project_id = $projectid"); - } - // project -> user relationship - $old_useradmin = $db->getCol('select user_id from '.TBL_PROJECT_PERM. - " where project_id = $projectid"); - if (isset($useradmin) and is_array($useradmin) and count($useradmin)) { - // Compute differences between old and new - $remove_from = array_diff($old_useradmin, $useradmin); - $add_to = array_diff($useradmin, $old_useradmin); - - if (count($remove_from)) { - foreach ($remove_from as $user) { - $db->query('delete from '.TBL_PROJECT_PERM." where project_id = $projectid - and user_id = $user"); - } - } - if (count($add_to)) { - foreach ($add_to as $user) { - $db->query("insert into ".TBL_PROJECT_PERM - ." (project_id, user_id) - values ('$projectid', $user)"); - } - } - } elseif (count($old_useradmin)) { - // user killed em all - $db->query('delete from '.TBL_PROJECT_PERM." where project_id = $projectid"); - } + extract($_POST); + if (!isset($active)) $active = 0; + if (!$projectid) { + $projectid = $db->nextId(TBL_PROJECT); + $db->query('insert into '.TBL_PROJECT." (project_id, project_name, project_desc, active, created_by, created_date) values ($projectid , ".$db->quote(stripslashes($project_name)).", ".$db->quote(stripslashes($project_desc)).", $active, $u, $now)"); + $db->query('insert into '.TBL_VERSION." (version_id, project_id, version_name, active, created_by, created_date) values (".$db->nextId(TBL_VERSION).", $projectid, ".$db->quote(stripslashes($version_name)).", 1, $u, $now)"); + $db->query('insert into '.TBL_COMPONENT." (component_id, project_id, component_name, component_desc, owner, active, created_by, created_date, last_modified_by, last_modified_date) values (".$db->nextId(TBL_COMPONENT).", $projectid, ".$db->quote(stripslashes($component_name)).", ".$db->quote(stripslashes($component_desc)).", $owner, 1, $u, $now, $u, $now)"); + } else { + $db->query('update '.TBL_PROJECT." set project_name = ".$db->quote(stripslashes($project_name)).", project_desc = ".$db->quote(stripslashes($project_desc)).", active = $active where project_id = $projectid"); + } + // project -> user relationship + $old_useradmin = $db->getCol('select user_id from '.TBL_PROJECT_PERM." where project_id = $projectid"); + if (isset($useradmin) and is_array($useradmin) and count($useradmin)) { + // Compute differences between old and new + $remove_from = array_diff($old_useradmin, $useradmin); + $add_to = array_diff($useradmin, $old_useradmin); + + if (count($remove_from)) { + foreach ($remove_from as $user) { + $db->query('delete from '.TBL_PROJECT_PERM." where project_id = $projectid and user_id = $user"); + } + } + if (count($add_to)) { + foreach ($add_to as $user) { + $db->query("insert into ".TBL_PROJECT_PERM." (project_id, user_id) values ('$projectid', $user)"); + } + } + } elseif (count($old_useradmin)) { + // user killed em all + $db->query('delete from '.TBL_PROJECT_PERM." where project_id = $projectid"); + } // Handle project -> group relationship - $old_usergroup = $db->getCol('select group_id from '.TBL_PROJECT_GROUP. - " where project_id = $projectid"); + $old_usergroup = $db->getCol('select group_id from '.TBL_PROJECT_GROUP." where project_id = $projectid"); if (isset($usergroup) and is_array($usergroup) and count($usergroup)) { if (in_array('all', $usergroup)) { // User selected 'All groups' @@ -239,111 +215,107 @@ } else { // Compute differences between old and new $remove_from = array_diff($old_usergroup, $usergroup); - $add_to = array_diff($usergroup, $old_usergroup); + $add_to = array_diff($usergroup, $old_usergroup); if (count($remove_from)) { foreach ($remove_from as $group) { - $db->query('delete from '.TBL_PROJECT_GROUP." where project_id = $projectid - and group_id = $group"); + $db->query('delete from '.TBL_PROJECT_GROUP." where project_id = $projectid and group_id = $group"); } } if (count($add_to)) { - foreach ($add_to as $group) { - $db->query("insert into ".TBL_PROJECT_GROUP - ." (project_id, group_id, created_by, created_date) - values ('$projectid' ,'$group', $u, $now)"); - } - } + foreach ($add_to as $group) { + $db->query("insert into ".TBL_PROJECT_GROUP." (project_id, group_id, created_by, created_date) values ('$projectid' ,'$group', $u, $now)"); + } + } } } elseif (count($old_usergroup)) { // User selected nothing, so consider it 'All groups' $db->query('delete from '.TBL_PROJECT_GROUP." where project_id = $projectid"); } - header("Location: $me?op=edit&id=$projectid"); + header("Location: $me?op=edit&id=$projectid"); } function show_project($projectid = 0, $error = null) { - global $db, $me, $t, $TITLE, $_gv, $_pv, $QUERY, $perm; + global $db, $me, $t, $QUERY, $perm; if (is_array($error)) $t->assign($error); else $t->assign('error', $error); - $t->assign('project_groups', $db->getCol('select group_id from '. - TBL_PROJECT_GROUP." where project_id = $projectid")); + $t->assign('project_groups', + $db->getCol('select group_id from '.TBL_PROJECT_GROUP." where project_id = $projectid")); if ($perm->have_perm('Administrator')) { - $t->assign('project_admins', $db->getCol('select user_id from '. - TBL_PROJECT_PERM." where project_id = $projectid")); - + $t->assign('project_admins', + $db->getCol('select user_id from '.TBL_PROJECT_PERM." where project_id = $projectid")); + } else { - $t->assign('project_admins', $db->getCol('select u.login from '.TBL_AUTH_USER.' as u, '.TBL_PROJECT_PERM.' as p where u.user_id = p.user_id and p.project_id = '.$projectid)); + $t->assign('project_admins', + $db->getCol('select u.login from '.TBL_AUTH_USER.' as u, '.TBL_PROJECT_PERM.' as p where u.user_id = p.user_id and p.project_id = '.$projectid)); } if ($projectid) { - $t->assign($db->getRow('select * from '.TBL_PROJECT - ." where project_id = $projectid")); - $t->assign(array( - 'components' => $db->getAll(sprintf($QUERY['admin-list-components'], - $projectid)), - 'versions' => $db->getAll(sprintf($QUERY['admin-list-versions'], - $projectid)) - )); - - $t->wrap('admin/project-edit.html', 'editproject'); + $t->assign($db->getRow('select * from '.TBL_PROJECT." where project_id = $projectid")); + $t->assign(array( + 'components' => $db->getAll(sprintf($QUERY['admin-list-components'], $projectid)), + 'versions' => $db->getAll(sprintf($QUERY['admin-list-versions'], $projectid)) + )); + + $t->render('project-edit.html', translate("Edit Project")); } else { - if (!empty($_pv)) { - $t->assign($_pv); - } else { - $t->assign('active', 1); - } - $t->wrap('admin/project-add.html', 'addproject'); + if (!empty($_POST)) { + $t->assign($_POST); + } else { + $t->assign('active', 1); + } + $t->render('project-add.html', translate("Edit Project")); } } function list_projects() { - global $me, $db, $t, $selrange, $_gv, $STRING, $TITLE; + global $me, $db, $t, $selrange; - if (!isset($_gv['order'])) { $order = 'created_date'; $sort = 'asc'; } - else { $order = $_gv['order']; $sort = $_gv['sort']; } - $page = isset($_gv['page']) ? $_gv['page'] : 1; + if (!isset($_GET['order'])) { + $order = 'created_date'; $sort = 'asc'; + } + else { + $order = $_GET['order']; $sort = $_GET['sort']; + } + $page = isset($_GET['page']) ? $_GET['page'] : 1; - $nr = $db->getOne("select count(*) from ".TBL_PROJECT); + $nr = $db->getOne("select count(*) from ".TBL_PROJECT); - list($selrange, $llimit) = multipages($nr, $page, "order=$order&sort=$sort"); + list($selrange, $llimit) = multipages($nr, $page, "order=$order&sort=$sort"); - $t->assign('projects', $db->getAll($db->modifyLimitQuery( - "select * from ".TBL_PROJECT." order by $order $sort", $llimit, $selrange))); + $t->assign('projects', + $db->getAll($db->modifyLimitQuery("select * from ".TBL_PROJECT." order by $order $sort", $llimit, $selrange))); - $headers = array( - 'projectid' => 'project_id', - 'name' => 'project_name', - 'description' => 'project_desc', - 'active' => 'active', - 'createdby' => 'created_by', - 'createddate' => 'created_date' - ); + $headers = array( + 'projectid' => 'project_id', + 'name' => 'project_name', + 'description' => 'project_desc', + 'active' => 'active', + 'createdby' => 'created_by', + 'createddate' => 'created_date' + ); - sorting_headers($me, $headers, $order, $sort); + sorting_headers($me, $headers, $order, $sort); - $t->wrap('admin/projectlist.html', 'project'); + $t->render('projectlist.html', translate("Project List")); } // $perm->check('Admin'); -if (isset($_gv['op'])) { - switch($_gv['op']) { - case 'add' : show_project(); break; - case 'edit' : show_project($_gv['id']); break; - case 'edit_component' : show_component($_gv['id']); break; - case 'edit_version' : show_version($_gv['id']); break; - case 'del_component' : del_component($_gv['id'], $_gv['project_id']); break; - case 'del_version' : del_version($_gv['id'], $_gv['project_id']); break; - } -} elseif (isset($_pv['do'])) { - switch($_pv['do']) { - case 'project' : save_project($_pv['id']); break; - case 'version' : save_version($_pv['version_id']); break; - case 'component' : save_component($_pv['component_id']); break; +if (isset($_REQUEST['op'])) { + switch($_REQUEST['op']) { + case 'add' : show_project(); break; + case 'edit' : show_project($_REQUEST['id']); break; + case 'edit_component' : show_component($_REQUEST['id']); break; + case 'edit_version' : show_version($_REQUEST['id']); break; + case 'del_component' : del_component($_REQUEST['id'], $_REQUEST['project_id']); break; + case 'del_version' : del_version($_REQUEST['id'], $_REQUEST['project_id']); break; + case 'save_project' : save_project($_POST['id']); break; + case 'save_version' : save_version($_POST['version_id']); break; + case 'save_component' : save_component($_POST['component_id']); break; } } else list_projects(); Index: resolution.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/resolution.php,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- resolution.php 26 Aug 2002 18:06:01 -0000 1.30 +++ resolution.php 25 Oct 2004 12:06:59 -0000 1.31 @@ -2,7 +2,7 @@ // resolution.php - Interface to the Resolution table // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -31,11 +31,9 @@ if ($resolutionid) { // Make sure we are going after a valid record - $itemexists = $db->getOne('select count(*) from '.TBL_RESOLUTION. - " where resolution_id = $resolutionid"); + $itemexists = $db->getOne('select count(*) from '.TBL_RESOLUTION." where resolution_id = $resolutionid"); // Are there any bugs tied to this one? - $bugcount = $db->getOne('select count(*) from '.TBL_BUG. - " where resolution_id = $resolutionid"); + $bugcount = $db->getOne('select count(*) from '.TBL_BUG." where resolution_id = $resolutionid"); if ($itemexists and !$bugcount) { $db->query('delete from '.TBL_RESOLUTION." where resolution_id = $resolutionid"); } @@ -44,64 +42,59 @@ } function do_form($resolutionid = 0) { - global $db, $me, $_pv, $STRING, $t; + global $db, $me, $t; - extract($_pv); + extract($_POST); $error = ''; // Validation if (!$resolution_name = trim($resolution_name)) - $error = $STRING['givename']; + $error = translate("Please enter a name"); elseif (!$resolution_desc = trim($resolution_desc)) - $error = $STRING['givedesc']; + $error = translate("Please enter a description"); if ($error) { show_form($resolutionid, $error); return; } if (empty($sort_order)) $sort_order = 0; if (!$resolutionid) { $db->query("insert into ".TBL_RESOLUTION. - " (resolution_id, resolution_name, resolution_desc, sort_order)" - ." values (".$db->nextId(TBL_RESOLUTION).", ". - $db->quote(stripslashes($resolution_name)).', '. - $db->quote(stripslashes($resolution_desc)).', '.$sort_order.')'); + " (resolution_id, resolution_name, resolution_desc, sort_order) values (".$db->nextId(TBL_RESOLUTION).", ".$db->quote(stripslashes($resolution_name)).', '.$db->quote(stripslashes($resolution_desc)).', '.$sort_order.')'); } else { $db->query("update ".TBL_RESOLUTION. - ' set resolution_name = '.$db->quote(stripslashes($resolution_name)). - ', resolution_desc = '.$db->quote(stripslashes($resolution_desc)). - ", sort_order = $sort_order where resolution_id = $resolutionid"); + ' set resolution_name = '.$db->quote(stripslashes($resolution_name)).', resolution_desc = '.$db->quote(stripslashes($resolution_desc)).", sort_order = $sort_order where resolution_id = $resolutionid"); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html'); } else { header("Location: $me?"); } } function show_form($resolutionid = 0, $error = '') { - global $db, $me, $t, $_pv, $STRING; + global $db, $me, $t; - extract($_pv); + extract($_POST); if ($resolutionid && !$error) { - $t->assign($db->getRow("select * from ".TBL_RESOLUTION. - " where resolution_id = '$resolutionid'")); + $t->assign($db->getRow("select * from ".TBL_RESOLUTION." where resolution_id = '$resolutionid'")); } else { - $t->assign($_pv); + $t->assign($_POST); } $t->assign('error', $error); - $t->wrap('admin/resolution-edit.html', ($resolutionid ? 'editresolution' : 'addresolution')); + $t->render('resolution-edit.html', translate("Edit Resolution"), + !empty($_REQUEST['use_js']) ? 'wrap-popup.html' : 'wrap.html'); } function list_items($resolutionid = 0, $error = '') { - global $me, $db, $t, $STRING, $TITLE, $_gv, $QUERY; + global $me, $db, $t, $QUERY; - if (empty($_gv['order'])) { + if (empty($_GET['order'])) { $order = 'sort_order'; $sort = 'asc'; } else { - $order = $_gv['order']; - $sort = $_gv['sort']; + $order = $_GET['order']; + $sort = $_GET['sort']; } - $page = isset($_gv['page']) ? $_gv['page'] : 0; + $page = isset($_GET['page']) ? $_GET['page'] : 0; $nr = $db->getOne("select count(*) from ".TBL_RESOLUTION); @@ -118,16 +111,17 @@ sorting_headers($me, $headers, $order, $sort, "page=$page"); - $t->wrap('admin/resolutionlist.html', 'resolution'); + $t->render('resolutionlist.html', translate("Resolution List")); } $perm->check('Admin'); -if (isset($_gv['op'])) switch($_gv['op']) { - case 'edit' : show_form($_gv['resolution_id']); break; - case 'del' : del_item($_gv['resolution_id']); break; -} elseif(isset($_pv['submit'])) { - do_form($_pv['resolution_id']); +if (isset($_REQUEST['op'])) { + switch($_REQUEST['op']) { + case 'edit' : show_form($_GET['resolution_id']); break; + case 'del' : del_item($_GET['resolution_id']); break; + case 'save' : do_form($_POST['resolution_id']); break; + } } else list_items(); ?> Index: severity.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/severity.php,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- severity.php 26 Aug 2002 18:11:13 -0000 1.25 +++ severity.php 25 Oct 2004 12:06:59 -0000 1.26 @@ -2,7 +2,7 @@ // severity.php - Interface to the severity table // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -31,11 +31,9 @@ if ($severityid) { // Make sure we are going after a valid record - $itemexists = $db->getOne('select count(*) from '.TBL_SEVERITY. - " where severity_id = $severityid"); + $itemexists = $db->getOne('select count(*) from '.TBL_SEVERITY." where severity_id = $severityid"); // Are there any bugs tied to this one? - $bugcount = $db->getOne('select count(*) from '.TBL_BUG. - " where severity_id = $severityid"); + $bugcount = $db->getOne('select count(*) from '.TBL_BUG." where severity_id = $severityid"); if ($itemexists and !$bugcount) { $db->query('delete from '.TBL_SEVERITY." where severity_id = $severityid"); } @@ -44,65 +42,56 @@ } function do_form($severityid = 0) { - global $db, $me, $_pv, $STRING, $t; + global $db, $me, $t; - extract($_pv); + extract($_POST); $error = ''; // Validation if (!$severity_name = trim($severity_name)) - $error = $STRING['givename']; + $error = translate("Please enter a name"); elseif (!$severity_desc = trim($severity_desc)) - $error = $STRING['givedesc']; + $error = translate("Please enter a description"); if ($error) { show_form($severityid, $error); return; } if (empty($sort_order)) $sort_order = 0; if (!$severityid) { - $db->query("insert into ".TBL_SEVERITY. - " (severity_id, severity_name, severity_desc, sort_order, severity_color) - values (".$db->nextId(TBL_SEVERITY).', '. - $db->quote(stripslashes($severity_name)).', '. - $db->quote(stripslashes($severity_desc)).", $sort_order, ". - $db->quote(stripslashes($severity_color)).')'); + $db->query("insert into ".TBL_SEVERITY." (severity_id, severity_name, severity_desc, sort_order, severity_color) values (".$db->nextId(TBL_SEVERITY).', '.$db->quote(stripslashes($severity_name)).', '.$db->quote(stripslashes($severity_desc)).", $sort_order, ".$db->quote(stripslashes($severity_color)).')'); } else { - $db->query("update ".TBL_SEVERITY. - " set severity_name = ".$db->quote(stripslashes($severity_name)). - ', severity_desc = '.$db->quote(stripslashes($severity_desc)). - ", sort_order = $sort_order, severity_color = ". - $db->quote(stripslashes($severity_color))." where severity_id = $severity_id"); + $db->query("update ".TBL_SEVERITY." set severity_name = ".$db->quote(stripslashes($severity_name)).', severity_desc = '.$db->quote(stripslashes($severity_desc)).", sort_order = $sort_order, severity_color = ".$db->quote(stripslashes($severity_color))." where severity_id = $severity_id"); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html'); } else { header("Location: $me?"); } } function show_form($severityid = 0, $error = '') { - global $db, $me, $t, $_pv, $STRING; + global $db, $me, $t; if ($severityid && !$error) { - $t->assign($db->getRow("select * from ".TBL_SEVERITY. - " where severity_id = '$severityid'")); + $t->assign($db->getRow("select * from ".TBL_SEVERITY." where severity_id = '$severityid'")); } else { - $t->assign($_pv); + $t->assign($_POST); } $t->assign('error', $error); - $t->wrap('admin/severity-edit.html', ($severityid ? 'editseverity' : 'addseverity')); + $t->render('severity-edit.html', translate("Edit Severity"), + !empty($_REQUEST['use_js']) ? 'wrap-popup.html' : 'wrap.html'); } function list_items($severityid = 0, $error = '') { - global $me, $db, $t, $_gv, $STRING, $TITLE, $QUERY; + global $me, $db, $t, $QUERY; - if (empty($_gv['order'])) { + if (empty($_GET['order'])) { $order = 'sort_order'; $sort = 'asc'; } else { - $order = $_gv['order']; - $sort = $_gv['sort']; + $order = $_GET['order']; + $sort = $_GET['sort']; } - $page = isset($_gv['page']) ? $_gv['page'] : 0; + $page = isset($_GET['page']) ? $_GET['page'] : 0; $nr = $db->getOne("select count(*) from ".TBL_SEVERITY); @@ -121,17 +110,18 @@ sorting_headers($me, $headers, $order, $sort); - $t->wrap('admin/severitylist.html', 'severity'); + $t->render('severitylist.html', translate("Severity List")); } $perm->check('Admin'); -if (isset($_gv['op'])) switch($_gv['op']) { - case 'add' : list_items(); break; - case 'edit' : show_form($_gv['severity_id']); break; - case 'del' : del_item($_gv['severity_id']); break; -} elseif(isset($_pv['submit'])) { - do_form($_pv['severity_id']); +if (isset($_REQUEST['op'])) { + switch($_REQUEST['op']) { + case 'add' : list_items(); break; + case 'edit' : show_form($_GET['severity_id']); break; + case 'del' : del_item($_GET['severity_id']); break; + case 'save' : do_form($_POST['severity_id']); + } } else list_items(); ?> Index: site.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/site.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- site.php 26 Aug 2002 18:11:13 -0000 1.2 +++ site.php 25 Oct 2004 12:06:59 -0000 1.3 @@ -44,57 +44,53 @@ } function do_form($siteid = 0) { - global $db, $me, $_pv, $STRING, $t; + global $db, $me, $t; - extract($_pv); + extract($_POST); $error = ''; // Validation if (!$site_name = trim($site_name)) - $error = $STRING['givename']; + $error = translate("Please enter a name"); if ($error) { show_form($siteid, $error); return; } if (empty($sort_order)) $sort_order = 0; if (!$siteid) { - $db->query('insert into '.TBL_SITE.' (site_id, site_name, sort_order) '. - 'values ('.$db->nextId(TBL_SITE).', '.$db->quote(stripslashes($site_name)). - ', '.$sort_order.')'); + $db->query('insert into '.TBL_SITE.' (site_id, site_name, sort_order) values ('.$db->nextId(TBL_SITE).', '.$db->quote(stripslashes($site_name)).', '.$sort_order.')'); } else { - $db->query('update '.TBL_SITE.' set site_name = '. - $db->quote(stripslashes($site_name)).', sort_order = '. - $sort_order.' where site_id = '.$site_id); + $db->query('update '.TBL_SITE.' set site_name = '.$db->quote(stripslashes($site_name)).', sort_order = '.$sort_order.' where site_id = '.$site_id); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html'); } else { header("Location: $me?"); } } function show_form($siteid = 0, $error = '') { - global $db, $me, $t, $_pv, $STRING; + global $db, $me, $t; if ($siteid && !$error) { - $t->assign($db->getRow("select * from ".TBL_SITE. - " where site_id = '$siteid'")); + $t->assign($db->getRow("select * from ".TBL_SITE." where site_id = '$siteid'")); } else { - $t->assign($_pv); + $t->assign($_POST); } $t->assign('error', $error); - $t->wrap('admin/site-edit.html', ($siteid ? 'editsite' : 'addsite')); + $t->render('site-edit.html', translate("Edit Site"), + !empty($_REQUEST['use_js']) ? 'wrap-popup.html' : 'wrap.html'); } function list_items($siteid = 0, $error = '') { - global $me, $db, $t, $_gv, $STRING, $TITLE, $QUERY; + global $me, $db, $t, $QUERY; - if (empty($_gv['order'])) { + if (empty($_GET['order'])) { $order = 'sort_order'; $sort = 'asc'; } else { - $order = $_gv['order']; - $sort = $_gv['sort']; + $order = $_GET['order']; + $sort = $_GET['sort']; } - $page = isset($_gv['page']) ? $_gv['page'] : 0; + $page = isset($_GET['page']) ? $_GET['page'] : 0; $nr = $db->getOne("select count(*) from ".TBL_SITE); @@ -110,25 +106,18 @@ sorting_headers($me, $headers, $order, $sort); - $t->wrap('admin/sitelist.html', 'site'); + $t->render('sitelist.html', translate("Site List")); } $perm->check('Admin'); -if (isset($_gv['op'])) { - switch($_gv['op']) { - case 'add': - list_items(); - break; - case 'edit': - show_form($_gv['site_id']); - break; - case 'del': - del_item($_gv['site_id']); - break; +if (isset($_REQUEST['op'])) { + switch($_REQUEST['op']) { + case 'add' : list_items(); break; + case 'edit' : show_form($_REQUEST['site_id']); break; + case 'del' : del_item($_REQUEST['site_id']); break; + case 'save' : do_form($_POST['site_id']); break; } -} elseif(isset($_pv['submit'])) { - do_form($_pv['site_id']); } else { list_items(); } Index: status.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/status.php,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- status.php 24 Jul 2003 04:47:13 -0000 1.30 +++ status.php 25 Oct 2004 12:06:59 -0000 1.31 @@ -2,7 +2,7 @@ // status.php - Interface to the Status table // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -31,11 +31,9 @@ if ($statusid) { // Make sure we are going after a valid record - $itemexists = $db->getOne('select count(*) from '.TBL_STATUS. - " where status_id = $statusid"); + $itemexists = $db->getOne('select count(*) from '.TBL_STATUS." where status_id = $statusid"); // Are there any bugs tied to this one? - $bugcount = $db->getOne('select count(*) from '.TBL_BUG. - " where status_id = $statusid"); + $bugcount = $db->getOne('select count(*) from '.TBL_BUG." where status_id = $statusid"); if ($itemexists and !$bugcount) { $db->query('delete from '.TBL_STATUS." where status_id = $statusid"); } @@ -44,67 +42,58 @@ } function do_form($statusid = 0) { - global $db, $me, $_pv, $STRING, $t; + global $db, $me, $t; - extract($_pv); + extract($_POST); $error = ''; // Validation if (!$status_name = trim($status_name)) - $error = $STRING['givename']; + $error = translate("Please enter a name"); elseif (!$status_desc = trim($status_desc)) - $error = $STRING['givedesc']; + $error = translate("Please enter a description"); if ($error) { show_form($statusid, $error); return; } if (empty($sort_order)) $sort_order = 0; if (!$statusid) { - $db->query("insert into ".TBL_STATUS. - " (status_id, status_name, status_desc, bug_open, sort_order) values (". - $db->nextId(TBL_STATUS).', '. - $db->quote(stripslashes($status_name)).', '. - $db->quote(stripslashes($status_desc)).', '. - (int)$bug_open.", '$sort_order')"); + $db->query("insert into ".TBL_STATUS." (status_id, status_name, status_desc, bug_open, sort_order) values (".$db->nextId(TBL_STATUS).', '.$db->quote(stripslashes($status_name)).', '.$db->quote(stripslashes($status_desc)).', '.(int)$bug_open.", '$sort_order')"); } else { - $db->query("update ".TBL_STATUS. - " set status_name = ".$db->quote(stripslashes($status_name)). - ', status_desc = '.$db->quote(stripslashes($status_desc)). - ', bug_open = '.(int)$bug_open. - ", sort_order = $sort_order where status_id = $statusid"); + $db->query("update ".TBL_STATUS." set status_name = ".$db->quote(stripslashes($status_name)).', status_desc = '.$db->quote(stripslashes($status_desc)).', bug_open = '.(int)$bug_open.", sort_order = $sort_order where status_id = $statusid"); } if ($use_js) { - $t->display('admin/edit-submit.html'); + $t->render('edit-submit.html'); } else { header("Location: $me?"); } } function show_form($statusid = 0, $error = '') { - global $db, $me, $t, $_pv, $STRING; + global $db, $me, $t; - extract($_pv); + extract($_POST); if ($statusid && !$error) { - $t->assign($db->getRow("select * from ".TBL_STATUS. - " where status_id = '$statusid'")); + $t->assign($db->getRow("select * from ".TBL_STATUS." where status_id = '$statusid'")); } else { - $t->assign($_pv); - $t->assign(array('bug_open' => 1)); // new bugs def. open :) + $t->assign($_POST); + if (empty($_POST)) $t->assign('bug_open', 1); // new bugs def. open :) } $t->assign('error', $error); - $t->wrap('admin/status-edit.html', ($statusid ? 'editstatus' : 'addstatus')); + $t->render('status-edit.html', translate("Edit Status"), + !empty($_REQUEST['use_js']) ? 'wrap-popup.html' : 'wrap.html'); } function list_items($statusid = 0, $error = '') { - global $me, $db, $t, $_gv, $STRING, $TITLE, $QUERY; + global $me, $db, $t, $QUERY; - if (empty($_gv['order'])) { + if (empty($_GET['order'])) { $order = 'sort_order'; $sort = 'asc'; } else { - $order = $_gv['order']; - $sort = $_gv['sort']; + $order = $_GET['order']; + $sort = $_GET['sort']; } - $page = isset($_gv['page']) ? $_gv['page'] : 0; + $page = isset($_GET['page']) ? $_GET['page'] : 0; $nr = $db->getOne("select count(*) from ".TBL_STATUS); @@ -121,17 +110,18 @@ sorting_headers($me, $headers, $order, $sort); - $t->wrap('admin/statuslist.html', 'status'); + $t->render('statuslist.html', translate("Status List")); } $perm->check('Admin'); -if (isset($_gv['op'])) switch($_gv['op']) { - case 'add' : list_items(); break; - case 'edit' : show_form($_gv['status_id']); break; - case 'del' : del_item($_gv['status_id']); break; -} elseif(isset($_pv['submit'])) { - do_form($_pv['status_id']); +if (isset($_REQUEST['op'])) { + switch($_REQUEST['op']) { + case 'add' : list_items(); break; + case 'edit' : show_form($_REQUEST['status_id']); break; + case 'del' : del_item($_REQUEST['status_id']); break; + case 'save' : do_form($_POST['status_id']); break; + } } else list_items(); ?> Index: user.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/admin/user.php,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- user.php 18 May 2002 03:00:00 -0000 1.49 +++ user.php 25 Oct 2004 12:06:59 -0000 1.50 @@ -2,7 +2,7 @@ // user.php - Create and update users // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -27,82 +27,62 @@ include 'include.php'; function do_form($userid = 0) { - global $db, $me, $_pv, $STRING, $now, $u, $QUERY, $t; + global $db, $me, $now, $u, $QUERY, $t; $error = ''; // Validation - if (!EMAIL_IS_LOGIN && !$_pv['login'] = trim($_pv['login'])) { - $error = $STRING['givelogin']; - } elseif (!bt_valid_email($_pv['email'])) { - $error = $STRING['giveemail']; - } elseif (!$_pv['password'] = trim($_pv['password'])) { - $error = $STRING['givepassword']; + if (!EMAIL_IS_LOGIN && !$_POST['login'] = trim($_POST['login'])) { + $error = translate("Please enter a login"); + } elseif (!bt_valid_email($_POST['email'])) { + $error = translate("Please enter an email"); + } elseif (!$_POST['password'] = trim($_POST['password'])) { + $error = translate("Please enter a password"); } if ($error) { show_form($userid, $error); return; } - if (!isset($_pv['active'])) $_pv['active'] = 0; - if (!isset($_pv['fe_notice'])) $_pv['fe_notice'] = 0; + if (!isset($_POST['active'])) $_POST['active'] = 0; + if (!isset($_POST['fe_notice'])) $_POST['fe_notice'] = 0; if (EMAIL_IS_LOGIN) { - $login = $_pv['email']; + $login = $_POST['email']; } else { - $login = $_pv['login']; + $login = $_POST['login']; } if (!$userid) { - if (ENCRYPT_PASS) $mpassword = $db->quote(md5($_pv['password'])); - else $mpassword = $db->quote(stripslashes($_pv['password'])); + if (ENCRYPT_PASS) $mpassword = $db->quote(md5($_POST['password'])); + else $mpassword = $db->quote(stripslashes($_POST['password'])); $new_user_id = $db->nextId(TBL_AUTH_USER); - $db->query('insert into '.TBL_AUTH_USER - ." (user_id, first_name, last_name, login, email, password, active, - created_by, created_date, last_modified_by, last_modified_date) - values (".join(', ', array($new_user_id, - $db->quote(stripslashes($_pv['first_name'])), - $db->quote(stripslashes($_pv['last_name'])), - $db->quote(stripslashes($login)), $db->quote($_pv['email']), $mpassword, - $_pv['active'], $u, $now, $u, $now)).')'); + $db->query('insert into '.TBL_AUTH_USER." (user_id, first_name, last_name, login, email, password, active,created_by, created_date, last_modified_by, last_modified_date) values (".join(', ', array($new_user_id, $db->quote(stripslashes($_POST['first_name'])), $db->quote(stripslashes($_POST['last_name'])), $db->quote(stripslashes($login)), $db->quote($_POST['email']), $mpassword, $_POST['active'], $u, $now, $u, $now)).')'); // Add to the selected groups - if (isset($_pv['fusergroup']) and is_array($_pv['fusergroup']) and - $_pv['fusergroup'][0]) { - foreach ($_pv['fusergroup'] as $group) { - $db->query("insert into ".TBL_USER_GROUP - ." (user_id, group_id, created_by, created_date) - values ('$new_user_id' ,'$group', $u, $now)"); + if (isset($_POST['fusergroup']) and is_array($_POST['fusergroup']) and + $_POST['fusergroup'][0]) { + foreach ($_POST['fusergroup'] as $group) { + $db->query("insert into ".TBL_USER_GROUP." (user_id, group_id, created_by, created_date) values ('$new_user_id' ,'$group', $u, $now)"); } } // Add to prefs - $db->query("INSERT INTO ".TBL_USER_PREF." (user_id, email_notices) - VALUES ($new_user_id, '{$_pv['fe_notice']}')"); + $db->query("INSERT INTO ".TBL_USER_PREF." (user_id, email_notices) VALUES ($new_user_id, '{$_POST['fe_notice']}')"); // And add to the user group - $db->query("insert into ".TBL_USER_GROUP. - " (user_id, group_id, created_by, created_date) - select $new_user_id, group_id, $u, $now from ".TBL_AUTH_GROUP. - " where group_name = 'User'"); + $db->query("insert into ".TBL_USER_GROUP." (user_id, group_id, created_by, created_date) select $new_user_id, group_id, $u, $now from ".TBL_AUTH_GROUP." where group_name = 'User'"); } else { if (ENCRYPT_PASS) { - $oldpass = $db->getOne("select password from ".TBL_AUTH_USER - ." where user_id = $userid"); - if ($oldpass != $_pv['password']) { - $pquery = "password = '".md5($_pv['password'])."',"; + $oldpass = $db->getOne("select password from ".TBL_AUTH_USER." where user_id = $userid"); + if ($oldpass != $_POST['password']) { + $pquery = "password = '".md5($_POST['password'])."',"; } else { $pquery = ''; } } else { - $pquery = "password = ".$db->quote(stripslashes($_pv['password'])).","; + $pquery = "password = ".$db->quote(stripslashes($_POST['password'])).","; } - $db->query("update ".TBL_AUTH_USER. - " set first_name = ".$db->quote(stripslashes($_pv['first_name'])). - ", last_name = ".$db->quote(stripslashes($_pv['last_name'])). - ", login = ".$db->quote(stripslashes($login)). - ", email = '{$_pv['email']}', $pquery active = {$_pv['active']} ". - "where user_id = $userid"); + $db->query("update ".TBL_AUTH_USER." set first_name = ".$db->quote(stripslashes($_POST['first_name'])).", last_name = ".$db->quote(stripslashes($_POST['last_name'])).", login = ".$db->quote(stripslashes($login)).", email = '{$_POST['email']}', $pquery active = {$_POST['active']} where user_id = $userid"); // Update preferences - $db->query("update ".TBL_USER_PREF. - " set email_notices = {$_pv['fe_notice']} where user_id = $userid"); + $db->query("update ".TBL_USER_PREF." set email_notices = {$_POST['fe_notice']} where user_id = $userid"); // Update group memberships // Get user's groups (without dropping the user group) @@ -112,82 +92,79 @@ if (!isset($user_groups) or !is_array($user_groups)) { $user_groups = array(); } - if (!isset($_pv['fusergroup']) or !is_array($_pv['fusergroup']) or - !$_pv['fusergroup'][0]) { - $_pv['fusergroup'] = array(); + if (!isset($_POST['fusergroup']) or !is_array($_POST['fusergroup']) or + !$_POST['fusergroup'][0]) { + $_POST['fusergroup'] = array(); } - $remove_from = array_diff($user_groups, $_pv['fusergroup']); - $add_to = array_diff($_pv['fusergroup'], $user_groups); + $remove_from = array_diff($user_groups, $_POST['fusergroup']); + $add_to = array_diff($_POST['fusergroup'], $user_groups); if (count($remove_from)) { foreach ($remove_from as $group) ... [truncated message content] |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:43
|
Update of /cvsroot/phpbt/phpbt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250 Modified Files: CHANGELOG UPGRADING attachment.php bug.php config-dist.php config.php include.php index.php install.php logout.php newaccount.php query.php report.php upgrade.php user.php Added Files: messages.po Log Message: Merging in htmltemplates branch to HEAD Index: CHANGELOG =================================================================== RCS file: /cvsroot/phpbt/phpbt/CHANGELOG,v retrieving revision 1.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- CHANGELOG 23 Jul 2003 01:22:12 -0000 1.67 +++ CHANGELOG 25 Oct 2004 12:06:54 -0000 1.68 @@ -3,7 +3,6 @@ : Added display of the bug ids a bug blocks. : Allow users to suppress the update email when changing a bug. : Use localized strings in bug history. -: Added Japanese, Danish, Norwegian, and Spanish translations. : Allow users to override saved queries by saving a new query with the same name as an old one. : Added client-side validation to admin pages. @@ -12,6 +11,9 @@ : Fixed a bug with not being able to change the name of the 'Developer' group. : Added tracking of changes in priority to the bug history. : You can now search on "additional comments" and "description". +: Added the ability to download to Excel +: Fixed publicly-reported bugs +: Changed the localization from string arrays to gettext -- 0.9.1 -- 4 Jan 2003 : Fixed bugs with PostgreSQL Index: UPGRADING =================================================================== RCS file: /cvsroot/phpbt/phpbt/UPGRADING,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- UPGRADING 19 Oct 2002 18:44:53 -0000 1.12 +++ UPGRADING 25 Oct 2004 12:06:54 -0000 1.13 @@ -1,11 +1,14 @@ -Upgrading from 0.8.x to 0.9.x ------------------------------ +Upgrading from 0.9.1 to 1.0 +--------------------------- + +First, backup your database! This upgrade should go smoothly, but +if it doesn't, it's better to be safe than sorry. Following the steps below will upgrade your installation of phpBT. Using the directory where you unpacked the new set of files... 1. Edit config-dist.php, changing the database settings to match those from - your old config.php (DB_*, SMARTY_PATH and TBL_PREFIX constants). Save + your old config.php (DB_* and TBL_PREFIX constants). Save config-dist.php as config.php. 2. Load upgrade.php with your web browser. 3. After running that script your installation has been upgraded. Index: attachment.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/attachment.php,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- attachment.php 20 May 2003 03:08:01 -0000 1.21 +++ attachment.php 25 Oct 2004 12:06:54 -0000 1.22 @@ -2,7 +2,7 @@ // attachment.php - Adding, deleting, and displaying attachments // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -25,82 +25,86 @@ include 'include.php'; function del_attachment($attachid) { - global $db, $HTTP_SERVER_VARS; + global $db; if (list($filename, $mimetype) = grab_attachment($attachid)) { $db->query("delete from ".TBL_ATTACHMENT." where attachment_id = $attachid"); unlink($filename); - header("Location: {$HTTP_SERVER_VARS['HTTP_REFERER']}"); + header("Location: {$_SERVER['HTTP_REFERER']}"); } } function grab_attachment($attachid) { - global $db, $STRING; + global $db; if (!is_numeric($attachid)) { - show_text($STRING['bad_attachment'], true); + show_text(translate("That attachment does not exist"), true); return false; } - $ainfo = $db->getRow("select a.bug_id, file_name, mime_type, project_id" - ." from ".TBL_ATTACHMENT." a, ".TBL_BUG." b" - ." where attachment_id = $attachid and a.bug_id = b.bug_id"); + $ainfo = $db->getRow("select a.bug_id, file_name, mime_type, project_id"." from ".TBL_ATTACHMENT." a, ".TBL_BUG." b"." where attachment_id = $attachid and a.bug_id = b.bug_id"); if (empty($ainfo)) { - show_text($STRING['bad_attachment'], true); + show_text(translate("That attachment does not exist"), true); return false; } $filename = join('/',array(ATTACHMENT_PATH, $ainfo['project_id'], "{$ainfo['bug_id']}-{$ainfo['file_name']}")); if (!is_readable($filename)) { - show_text($STRING['bad_attachment'], true); + show_text(translate("That attachment does not exist"), true); return false; } return array($filename, $ainfo['mime_type']); } function add_attachment($bugid, $description) { - global $db, $HTTP_POST_FILES, $now, $u, $STRING, $t, $_pv; + global $db, $now, $u, $t; - if (!isset($HTTP_POST_FILES['attachment']) || - $HTTP_POST_FILES['attachment']['tmp_name'] == 'none') { - show_attachment_form($bugid, $STRING['give_attachment']); + if (!isset($_FILES['attachment'])) { + show_attachment_form($bugid, translate("Please specify a file to upload")); + return; + } + + if ($_FILES['attachment']['tmp_name'] == 'none') { + if (empty($_FILES['attachment']['name'])) { + show_attachment_form($bugid, translate("Please specify a file to upload")); + } else { + show_attachment_form($bugid, sprintf(translate("The file you specified is larger than %s bytes"), number_format(ATTACHMENT_MAX_SIZE))); + } return; } // Check the upload size. If the size was greater than the max in // php.ini, the file won't even be set and will fail at the check above - if ($HTTP_POST_FILES['attachment']['size'] > ATTACHMENT_MAX_SIZE) { - show_attachment_form($bugid, $STRING['attachment_too_large']); + if ($_FILES['attachment']['size'] > ATTACHMENT_MAX_SIZE) { + show_attachment_form($bugid, printf(translate("The file you specified is larger than %d bytes"), number_format(ATTACHMENT_MAX_SIZE))); return; } $projectid = $db->getOne("select project_id from ".TBL_BUG." where bug_id = $bugid"); if (!$projectid) { - show_text($STRING['nobug'], true); + show_text(translate("That bug does not exist"), true); return; } // Check for a previously-uploaded attachment with the same name, bug, and project - $rs = $db->query("select a.bug_id, project_id from ".TBL_ATTACHMENT." a, ". - TBL_BUG." b where file_name = '{$HTTP_POST_FILES['attachment']['name']}' ". - "and a.bug_id = b.bug_id"); + $rs = $db->query("select a.bug_id, project_id from ".TBL_ATTACHMENT." a, ".TBL_BUG." b where file_name = '{$_FILES['attachment']['name']}' and a.bug_id = b.bug_id"); while ($rs->fetchInto($ainfo)) { if ($bugid == $ainfo['bug_id'] && $projectid == $ainfo['project_id']) { - show_attachment_form($bugid, $STRING['dupe_attachment']); + show_attachment_form($bugid, translate("That attachment already exists for this bug")); return; } } $filepath = ATTACHMENT_PATH; - $tmpfilename = $HTTP_POST_FILES['attachment']['tmp_name']; - $filename = "$bugid-{$HTTP_POST_FILES['attachment']['name']}"; + $tmpfilename = $_FILES['attachment']['tmp_name']; + $filename = "$bugid-{$_FILES['attachment']['name']}"; if (!is_dir($filepath)) { - show_attachment_form($bugid, $STRING['no_attachment_save_path']); + show_attachment_form($bugid, translate("Couldn't find where to save the file!")); return; } if (!is_writeable($filepath)) { - show_attachment_form($bugid, $STRING['attachment_path_not_writeable']); + show_attachment_form($bugid, translate("Couldn't create a file in the save path")); return; } @@ -108,39 +112,33 @@ @mkdir("$filepath/$projectid", 0775); } - if (!@move_uploaded_file($HTTP_POST_FILES['attachment']['tmp_name'], + if (!@move_uploaded_file($_FILES['attachment']['tmp_name'], "$filepath/$projectid/$filename")) { - show_attachment_form($bugid, $STRING['attachment_move_error']); + show_attachment_form($bugid, translate("There was an error moving the uploaded file")); return; } @chmod("$filepath/$projectid/$filename", 0766); - $db->query("insert into ".TBL_ATTACHMENT." (attachment_id, bug_id, file_name, ". - "description, file_size, mime_type, created_by, created_date) values (". - join(', ', array($db->nextId(TBL_ATTACHMENT), $bugid, - $db->quote($HTTP_POST_FILES['attachment']['name']), - $db->quote(stripslashes($description)), - $HTTP_POST_FILES['attachment']['size'], - $db->quote($HTTP_POST_FILES['attachment']['type']), $u, $now)).")"); + $db->query("insert into ".TBL_ATTACHMENT." (attachment_id, bug_id, file_name, description, file_size, mime_type, created_by, created_date) values (".join(', ', array($db->nextId(TBL_ATTACHMENT), $bugid, $db->quote($_FILES['attachment']['name']), $db->quote(stripslashes($description)), $_FILES['attachment']['size'], $db->quote($_FILES['attachment']['type']), $u, $now)).")"); - if ($_pv['use_js']) { - $t->display('admin/edit-submit.html'); + if ($_POST['use_js']) { + $t->render('admin/edit-submit.html'); } else { header("Location: bug.php?op=show&bugid=$bugid"); } } function show_attachment_form($bugid, $error = '') { - global $db, $t, $STRING; + global $db, $t; if (!is_numeric($bugid)) { - show_text($STRING['nobug'], true); + show_text(translate("That bug does not exist"), true); return; } $bugexists = $db->getOne("select count(*) from ".TBL_BUG." where bug_id = $bugid"); if (!$bugexists) { - show_text($STRING['nobug'], true); + show_text(translate("That bug does not exist"), true); return; } @@ -153,20 +151,21 @@ ? number_format(ini_get('upload_max_filesize')) : number_format(ATTACHMENT_MAX_SIZE) )); - $t->wrap('bugattachmentform.html', 'addattachment'); + $t->render('bugattachmentform.html', translate("Add Attachment"), + !empty($_REQUEST['use_js']) ? 'wrap-popup.html' : 'wrap.html'); } -if (isset($_gv['del'])) { +if (isset($_GET['del'])) { if (!$perm->have_perm('Administrator')) { - show_text($STRING['bad_permission']); + show_text(translate("You do not have the permissions required for that function")); } else { - del_attachment($_gv['del']); + del_attachment($_GET['del']); } -} elseif (isset($_pv['submit'])) { +} elseif (isset($_POST['submit'])) { $perm->check('Editbug'); - add_attachment($_pv['bugid'], $_pv['description']); -} elseif (isset($_gv['attachid'])) { - if (list($filename, $mimetype) = grab_attachment($_gv['attachid'])) { + add_attachment($_POST['bugid'], $_POST['description']); +} elseif (isset($_GET['attachid'])) { + if (list($filename, $mimetype) = grab_attachment($_GET['attachid'])) { $base = basename($filename); header("Content-Disposition: attachment; filename=\"$base\""); header("Content-Type: $mimetype"); @@ -178,7 +177,7 @@ } } else { $perm->check('Editbug'); - show_attachment_form($_gv['bugid']); + show_attachment_form($_GET['bugid']); } ?> Index: bug.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/bug.php,v retrieving revision 1.134 retrieving revision 1.135 diff -u -r1.134 -r1.135 --- bug.php 24 Jul 2003 04:47:13 -0000 1.134 +++ bug.php 25 Oct 2004 12:06:54 -0000 1.135 @@ -2,7 +2,7 @@ // bug.php - All the interactions with a bug // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -27,60 +27,51 @@ /// /// View the votes for a bug function vote_view($bug_id) { - global $u, $db, $t, $STRING; + global $u, $db, $t; - $t->assign('votes', $db->getAll('select login, v.created_date '. - 'from '.TBL_AUTH_USER.' u, '.TBL_BUG_VOTE." v ". - "where u.user_id = v.user_id and bug_id = $bug_id ". - 'order by v.created_date')); - $t->wrap('bugvotes.html', 'bugvotes'); + $t->assign('votes', $db->getAll('select login, v.created_date '.'from '.TBL_AUTH_USER.' u, '.TBL_BUG_VOTE." v where u.user_id = v.user_id and bug_id = $bug_id order by v.created_date")); + $t->render('bugvotes.html', translate("Bug Votes")); } /// /// Add a vote to a bug to (possibly) promote it function vote_bug($bug_id) { - global $u, $db, $now, $_pv, $STRING; + global $u, $db, $now; // Check to see if the user already voted on this bug - if ($db->getOne("select count(*) from ".TBL_BUG_VOTE. - " where bug_id = $bug_id and user_id = $u")) { - show_bug($bug_id, array('vote' => $STRING['already_voted'])); + if ($db->getOne("select count(*) from ".TBL_BUG_VOTE." where bug_id = $bug_id and user_id = $u")) { + show_bug($bug_id, array('vote' => translate("You have already voted for this bug"))); return; } // Check whether the user has used his allotment of votes (if there is a max) - if (MAX_USER_VOTES and $db->getOne("select count(*) from ".TBL_BUG_VOTE. - " where user_id = $u") >= MAX_USER_VOTES) { - show_bug($bug_id, array('vote' => $STRING['too_many_votes'])); + if (MAX_USER_VOTES and + $db->getOne("select count(*) from ".TBL_BUG_VOTE." where user_id = $u") >= MAX_USER_VOTES) { + show_bug($bug_id, array('vote' => translate("You have reached the maximum number of votes per user"))); return; } // Record the vote - $db->query("insert into ".TBL_BUG_VOTE." (user_id, bug_id, created_date) - values ($u, $bug_id, $now)"); + $db->query("insert into ".TBL_BUG_VOTE." (user_id, bug_id, created_date) values ($u, $bug_id, $now)"); // Proceed only if promoting by votes is turned on if (PROMOTE_VOTES) { // Has this bug already been promoted? - $bug_is_new = $db->getOne("select count(*) from ".TBL_BUG." b, ". - TBL_STATUS." s where bug_id = $bug_id and b.status_id = s.status_id and - status_name = 'New'"); + $bug_is_new = $db->getOne("select count(*) from ".TBL_BUG." b, ".TBL_STATUS." s where bug_id = $bug_id and b.status_id = s.status_id and status_name = 'New'"); // If a number of votes are required to promote a bug, check for promotion - if (!$bug_is_new and $db->getOne("select count(*) from ". - TBL_BUG_VOTE." where bug_id = $bug_id") == PROMOTE_VOTES) { + if (!$bug_is_new and $db->getOne("select count(*) from ".TBL_BUG_VOTE." where bug_id = $bug_id") == PROMOTE_VOTES) { $status_id = BUG_PROMOTED; $buginfo = $db->getOne("select * from ".TBL_BUG." where bug_id = $bug_id"); - $changedfields = array('status_id' => $status_id); + $changedfields = array('status_id' => $status_id); do_changedfields($u, $buginfo, $changedfields); } } - if (isset($_pv['pos'])) { - $posinfo = "&pos={$_pv['pos']}"; + if (isset($_POST['pos'])) { + $posinfo = "&pos={$_POST['pos']}"; } else { $posinfo = ''; } - header("Location: bug.php?op=show&bugid=$bug_id$posinfo"); - + header("Location: bug.php?op=show&bugid=$bug_id$posinfo"); } /// @@ -98,28 +89,27 @@ '<a href="'.CVS_WEB.'\\1#rev\\4" target="_new">\\1</a>\\5' // external link to cvs web interface ); - return preg_replace($patterns, $replacements, - stripslashes($comments)); + return preg_replace($patterns, $replacements, stripslashes($comments)); } /// /// Show the activity for a bug function show_history($bugid) { - global $db, $t, $STRING, $QUERY; + global $db, $t, $QUERY; if (!is_numeric($bugid)) { - show_text($STRING['nobughistory']); + show_text(translate("There is no history for this bug")); return; } $t->assign('history', $db->getAll(sprintf($QUERY['bug-history'], $bugid))); - $t->wrap('bughistory.html', 'bughistory'); + $t->render('bughistory.html', translate("Bug History")); } /// /// Send the email about changes to the bug and log the changes in the DB function do_changedfields($userid, &$buginfo, $cf = array(), $comments = '') { - global $db, $t, $u, $select, $now, $STRING, $QUERY, $_pv; + global $db, $t, $u, $select, $now, $QUERY; // It's a new bug if the changedfields array is empty and there are no comments $newbug = (!count($cf) and !$comments); @@ -128,20 +118,16 @@ $template = $newbug ? "bugemail-newbug.$template_ext" : "bugemail.$template_ext"; foreach(array('title','url','priority') as $field) { if (isset($cf[$field])) { - $db->query('insert into '.TBL_BUG_HISTORY. - ' (bug_id, changed_field, old_value, new_value, created_by, created_date)'. - " values (". join(', ', array($buginfo['bug_id'], $db->quote($field), - $db->quote(stripslashes($buginfo[$field])), - $db->quote(stripslashes($cf[$field])), $u, $now)).")"); - $t->assign(array( + $db->query('insert into '.TBL_BUG_HISTORY.' (bug_id, changed_field, old_value, new_value, created_by, created_date) values ('. join(', ', array($buginfo['bug_id'], $db->quote($field), $db->quote(stripslashes($buginfo[$field])), $db->quote(stripslashes($cf[$field])), $u, $now)).")"); + $t->assign(array( $field => stripslashes($cf[$field]), $field.'_stat' => '!' - )); + )); } else { - $t->assign(array( + $t->assign(array( $field => stripslashes($buginfo[$field]), $field.'_stat' => ' ' - )); + )); } } @@ -161,21 +147,15 @@ foreach($cfgDatabase as $field => $table) { if (isset($buginfo[$field.'_id'])) { - $oldvalue = $db->getOne("select ${field}_name from $table". - " where ${field}_id = {$buginfo[$field.'_id']}"); + $oldvalue = $db->getOne("select ${field}_name from $table"." where ${field}_id = {$buginfo[$field.'_id']}"); } if (empty($oldvalue)) $oldvalue = 'None'; if (isset($cf[$field.'_id'])) { - $newvalue = $db->getOne("select ${field}_name from $table". - " where ${field}_id = {$cf[$field.'_id']}"); - if (empty($newvalue)) $newvalue = 'None'; + $newvalue = $db->getOne("select ${field}_name from $table where ${field}_id = {$cf[$field.'_id']}"); + if (empty($newvalue)) $newvalue = 'None'; - $db->query('insert into '.TBL_BUG_HISTORY. - ' (bug_id, changed_field, old_value, new_value, created_by, created_date)'. - " values (". join(', ', array($buginfo['bug_id'], $db->quote($STRING['BUGDISPLAY'][$field]), - $db->quote(stripslashes($oldvalue)), - $db->quote(stripslashes($newvalue)), $u, $now)).")"); + $db->query('insert into '.TBL_BUG_HISTORY.' (bug_id, changed_field, old_value, new_value, created_by, created_date) values ('. join(', ', array($buginfo['bug_id'], $db->quote(translate($field)), $db->quote(stripslashes($oldvalue)), $db->quote(stripslashes($newvalue)), $u, $now)).")"); $t->assign(array( $field.'_id' => stripslashes($newvalue), $field.'_id_stat' => '!' @@ -194,19 +174,15 @@ foreach($versions as $field => $field_name) { if (isset($buginfo[$field.'_id'])) { - $oldvalue = $db->getOne('select version_name from '.$cfgDatabase['version']. - ' where version_id = '.$buginfo[$field.'_id']); + $oldvalue = $db->getOne('select version_name from '.$cfgDatabase['version'].' where version_id = '.$buginfo[$field.'_id']); } if (empty($oldvalue)) $oldvalue = 'None'; if (isset($cf[$field.'_id'])) { - $newvalue = $db->getOne('select version_name from '.$cfgDatabase['version']. - ' where version_id = '.$cf[$field.'_id']); + $newvalue = $db->getOne('select version_name from '.$cfgDatabase['version'].' where version_id = '.$cf[$field.'_id']); if (empty($newvalue)) $newvalue = 'None'; - $db->query('insert into '.TBL_BUG_HISTORY. - ' (bug_id, changed_field, old_value, new_value, created_by, created_date)'. - " values (". join(', ', array($buginfo['bug_id'], $db->quote($STRING['BUGDISPLAY'][$field_name]), + $db->query('insert into '.TBL_BUG_HISTORY.' (bug_id, changed_field, old_value, new_value, created_by, created_date) values ('. join(', ', array($buginfo['bug_id'], $db->quote(translate($field_name)), $db->quote(stripslashes($oldvalue)), $db->quote(stripslashes($newvalue)), $u, $now)).")"); $t->assign(array( @@ -222,41 +198,28 @@ } // See if the assignment has changed -- grab the email for notifications either way - list($assignedto, $emailassignedto) = $db->getRow('select email, email_notices from '. - TBL_AUTH_USER." u, ".TBL_USER_PREF.' p where u.user_id = '. - (!empty($cf['assigned_to']) ? $cf['assigned_to'] : $buginfo['assigned_to']). - " and u.user_id = p.user_id", DB_FETCHMODE_ORDERED); + list($assignedto, $emailassignedto) = $db->getRow('select email, email_notices from '.TBL_AUTH_USER." u, ".TBL_USER_PREF.' p where u.user_id = '.(!empty($cf['assigned_to']) ? $cf['assigned_to'] : $buginfo['assigned_to'])." and u.user_id = p.user_id", DB_FETCHMODE_ORDERED); if (!empty($cf['assigned_to'])) { $assignedtostat = '!'; - $oldassignedto = $db->getOne('select email from '. - TBL_AUTH_USER.' u where u.user_id = '.$buginfo['assigned_to']); + $oldassignedto = $db->getOne('select email from '.TBL_AUTH_USER.' u where u.user_id = '.$buginfo['assigned_to']); if (is_null($oldassignedto)) { $oldassignedto = ''; } - $db->query('insert into '.TBL_BUG_HISTORY. - ' (bug_id, changed_field, old_value, new_value, created_by, created_date)'. - " values (". join(', ', array($buginfo['bug_id'], - $db->quote($STRING['BUGDISPLAY']['assignedto']), - $db->quote($oldassignedto), $db->quote($assignedto), $u, $now)).")"); + $db->query('insert into '.TBL_BUG_HISTORY.' (bug_id, changed_field, old_value, new_value, created_by, created_date) values ('. join(', ', array($buginfo['bug_id'], $db->quote(translate("Assigned To")), $db->quote($oldassignedto), $db->quote($assignedto), $u, $now)).")"); } else { $assignedtostat = ' '; } - if (!empty($_pv['suppress_email'])) return; // Don't send email if silent update requested. + if (!empty($_POST['suppress_email'])) return; // Don't send email if silent update requested. // Reporter never changes - $reporter = $db->getOne('select email from '.TBL_AUTH_USER. - " u, ".TBL_USER_PREF." p where u.user_id = {$buginfo['created_by']} ". - "and u.user_id = p.user_id and email_notices = 1"); + $reporter = $db->getOne('select email from '.TBL_AUTH_USER." u, ".TBL_USER_PREF." p where u.user_id = {$buginfo['created_by']} and u.user_id = p.user_id and email_notices = 1"); $reporterstat = ' '; // If there are new comments grab the comments immediately before the latest if ($comments or $newbug) { - $rs = $db->limitQuery('select u.login, c.comment_text, c.created_date'. - ' from '.TBL_COMMENT.' c, '.TBL_AUTH_USER.' u'. - " where bug_id = {$buginfo['bug_id']} and c.created_by = u.user_id". - ' order by created_date desc', 0, 2); + $rs = $db->limitQuery('select u.login, c.comment_text, c.created_date from '.TBL_COMMENT.' c, '.TBL_AUTH_USER." u where bug_id = {$buginfo['bug_id']} and c.created_by = u.user_id order by created_date desc", 0, 2); $rs->fetchInto($row); $t->assign(array( 'newpostedby' => $row['login'], @@ -268,10 +231,7 @@ // If this comment is the first additional comment after the creation of the // bug then we need to grab the bug's description as the previous comment if ($rs->numRows() < 2) { - list($by, $on, $comments) = $db->getRow('select u.login, b.created_date, b.description'. - ' from '.TBL_BUG.' b, '.TBL_AUTH_USER.' u'. - " where b.created_by = u.user_id and bug_id = {$buginfo['bug_id']}", - null, DB_FETCHMODE_ORDERED); + list($by, $on, $comments) = $db->getRow('select u.login, b.created_date, b.description from '.TBL_BUG.' b, '.TBL_AUTH_USER." u where b.created_by = u.user_id and bug_id = {$buginfo['bug_id']}", null, DB_FETCHMODE_ORDERED); $t->assign(array( 'oldpostedby' => $by, 'oldpostedon' => date(TIME_FORMAT,$on).' on '.date(DATE_FORMAT,$on), @@ -310,36 +270,39 @@ // Later add a watcher (such as QA person) check here if (count($maillist)) { - if ($toemail = delimit_list(', ',$maillist)) { - $t->assign(array( - 'bugid' => $buginfo['bug_id'], - 'siteroot' => INSTALL_URL, - 'bugurl' => INSTALL_URL."/bug.php?op=show&bugid={$buginfo['bug_id']}", - 'priority' => $select['priority'][(!empty($cf['priority']) ? $cf['priority'] : $buginfo['priority'])], - 'priority_stat' => !empty($cf['priority']) ? '!' : ' ', - 'reporter' => $reporter, - 'reporter_stat' => $reporterstat, - 'assignedto' => $assignedto, - 'assignedto_stat' => $assignedtostat - )); + $t->assign(array( + 'bugid' => $buginfo['bug_id'], + 'siteroot' => INSTALL_URL, + 'bugurl' => INSTALL_URL."/bug.php?op=show&bugid={$buginfo['bug_id']}", + 'priority' => $select['priority'][(!empty($cf['priority']) + ? $cf['priority'] : $buginfo['priority'])], + 'priority_stat' => !empty($cf['priority']) ? '!' : ' ', + 'reporter' => $reporter, + 'reporter_stat' => $reporterstat, + 'assignedto' => $assignedto, + 'assignedto_stat' => $assignedtostat + )); - qp_mail($toemail,"[Bug {$buginfo['bug_id']}] ".($newbug ? 'New' : 'Changed').' - '. - stripslashes((!empty($cf['title']) ? $cf['title'] : $buginfo['title'])), - $t->fetch($template), - sprintf("From: %s\nReply-To: %s\nErrors-To: %s", ADMIN_EMAIL, ADMIN_EMAIL, ADMIN_EMAIL)); - } + require_once('./inc/htmlMimeMail/htmlMimeMail.php'); + $mail = new htmlMimeMail(); + $mail->setText($t->fetch($template)); + $mail->setFrom(ADMIN_EMAIL); + $mail->setSubject("[Bug {$buginfo['bug_id']}] ". + ($newbug ? 'New' : 'Changed').' - '. + stripslashes((!empty($cf['title']) ? $cf['title'] : $buginfo['title']))); + $mail->send($maillist); } } function update_bug($bugid = 0) { - global $db, $t, $u, $STRING, $perm, $now, $_pv; + global $db, $t, $u, $perm, $now; // Pull bug from database to determine changed fields and for user validation $buginfo = $db->getRow("select * from ".TBL_BUG." where bug_id = $bugid"); $changedfields = array(); - if (isset($_pv)) { - foreach ($_pv as $k => $v) { + if (isset($_POST)) { + foreach ($_POST as $k => $v) { $$k = $v; if ($k == 'url') { if (($v == 'http://') || ($v == 'https://')) { @@ -359,35 +322,31 @@ // Should we allow changes to be made to this bug by this user? if (STRICT_UPDATING and !($u == $buginfo['assigned_to'] or $u == $buginfo['created_by'] or $perm->have_perm('Manager'))) { - show_bug($bugid,array('status' => $STRING['bugbadperm'])); + show_bug($bugid,array('status' => translate("You can not change this bug"))); return; } // Check for more than one person modifying the bug at the same time if ($last_modified_date != $buginfo['last_modified_date']) { - show_bug($bugid, array('status' => $STRING['datecollision'])); + show_bug($bugid, array('status' => translate("Someone has updated this bug since you viewed it. The bug info has been reloaded with the latest changes."))); return; } // Add CC if specified if ($add_cc) { - if (!$cc_uid = $db->getOne("select user_id from ".TBL_AUTH_USER. - " where login = ".$db->quote(stripslashes($add_cc)))) { - show_bug($bugid,array('status' => $STRING['nouser'])); + if (!$cc_uid = $db->getOne("select user_id from ".TBL_AUTH_USER." where login = ".$db->quote(stripslashes($add_cc)))) { + show_bug($bugid,array('status' => translate("That user does not exist"))); return; } - $cc_already = $db->getOne('select user_id from '.TBL_BUG_CC. - " where bug_id = $bugid and user_id = $cc_uid"); + $cc_already = $db->getOne('select user_id from '.TBL_BUG_CC." where bug_id = $bugid and user_id = $cc_uid"); if (!$cc_already && $cc_uid != $buginfo['created_by']) { - $db->query("insert into ".TBL_BUG_CC." (bug_id, user_id, created_by, - created_date) values ($bugid, $cc_uid, $u, $now)"); + $db->query("insert into ".TBL_BUG_CC." (bug_id, user_id, created_by, created_date) values ($bugid, $cc_uid, $u, $now)"); } } // Remove CCs if requested if (isset($remove_cc) and $remove_cc[0]) { - $db->query('delete from '.TBL_BUG_CC." where bug_id = $bugid and user_id in (". - delimit_list(',', $remove_cc).')'); + $db->query('delete from '.TBL_BUG_CC." where bug_id = $bugid and user_id in (".@join(',', $remove_cc).')'); } // Add dependency if requested @@ -396,62 +355,43 @@ // Validate the bug number if (!is_numeric($add_dependency)) { - show_bug($bugid, array('add_dep' => $STRING['nobug'])); + show_bug($bugid, array('add_dep' => translate("That bug does not exist"))); return; } if (!$db->getOne('select count(*) from '.TBL_BUG." where bug_id = $add_dependency")) { - show_bug($bugid, array('add_dep' => $STRING['nobug'])); + show_bug($bugid, array('add_dep' => translate("That bug does not exist"))); return; } // Check if the dependency has already been added - if ($db->getOne('select count(*) from '.TBL_BUG_DEPENDENCY. - " where bug_id = $bugid and depends_on = $add_dependency")) { - show_bug($bugid, array('add_dep' => $STRING['dupe_dependency'])); + if ($db->getOne('select count(*) from '.TBL_BUG_DEPENDENCY." where bug_id = $bugid and depends_on = $add_dependency")) { + show_bug($bugid, array('add_dep' => translate("That bug dependency has already been added"))); return; } // Add it - $db->query("insert into ".TBL_BUG_DEPENDENCY. - " (bug_id, depends_on) values($bugid, $add_dependency)"); + $db->query("insert into ".TBL_BUG_DEPENDENCY." (bug_id, depends_on) values($bugid, $add_dependency)"); } // Remove dependency if requested if (!empty($del_dependency)) { $del_dependency = preg_replace('/\D/', '', $del_dependency); if (is_numeric($del_dependency)) { - $db->query("delete from ".TBL_BUG_DEPENDENCY. - " where bug_id = $bugid and depends_on = $del_dependency"); + $db->query("delete from ".TBL_BUG_DEPENDENCY." where bug_id = $bugid and depends_on = $del_dependency"); } } if ($comments) { // $comments = strip_tags($comments); -- Uncomment this if you want no <> content in the comments - $db->query("insert into ".TBL_COMMENT." (comment_id, bug_id, comment_text, created_by, created_date)". - " values (".$db->nextId(TBL_COMMENT).", $bugid, ". - $db->quote(stripslashes($comments)).", $u, $now)"); + $db->query("insert into ".TBL_COMMENT." (comment_id, bug_id, comment_text, created_by, created_date) values (".$db->nextId(TBL_COMMENT).", $bugid, ".$db->quote(stripslashes($comments)).", $u, $now)"); } - // Allow for removing of some items from the bug page - $priority = $priority ? $priority : 0; - $os_id = $os_id ? $os_id : 0; - $severity_id = $severity_id ? $severity_id : 0; - if (is_closed($status_id)) { $closed_query = ", close_date = $now"; } else { $closed_query = ''; } - $db->query("update ".TBL_BUG." set title = ".$db->quote(stripslashes($title)). - ', url = '.$db->quote(stripslashes($url)).", severity_id = $severity_id, ". - "priority = $priority, status_id = $status_id, ". - "database_id = $database_id, to_be_closed_in_version_id = $to_be_closed_in_version_id, ". - 'closed_in_version_id = '.$closed_in_version_id.', '. - 'site_id ='.$site_id.', '. - "resolution_id = $resolution_id, assigned_to = $assigned_to, ". - "project_id = $project_id, version_id = $version_id, ". - "component_id = $component_id, os_id = $os_id, last_modified_by = $u, ". - "last_modified_date = $now $closed_query where bug_id = $bugid"); + $db->query("update ".TBL_BUG." set title = ".$db->quote(stripslashes($title)).', url = '.$db->quote(stripslashes($url)).", severity_id = ".(int)$severity_id.", priority = ".(int)$priority.", status_id = ".(int)$status_id.", database_id = ".(int)$database_id.", to_be_closed_in_version_id = ".(int)$to_be_closed_in_version_id.", closed_in_version_id = ".(int)$closed_in_version_id.', site_id ='.(int)$site_id.", resolution_id = ".(int)$resolution_id.", assigned_to = ".(int)$assigned_to.", project_id = $project_id, version_id = $version_id, component_id = ".(int)$component_id.", os_id = ".(int)$os_id.", last_modified_by = $u, last_modified_date = $now $closed_query where bug_id = $bugid"); // If the project has changed, move any attachments if (!empty($changedfields['project_id'])) { @@ -466,29 +406,26 @@ } function add_attachment($bugid, $description) { - global $db, $HTTP_POST_FILES, $now, $u, $STRING, $t, $_pv; + global $db, $now, $u, $t; - if (!isset($HTTP_POST_FILES['attachment']) || - $HTTP_POST_FILES['attachment']['tmp_name'] == 'none') { + if (!isset($_FILES['attachment']) || + $_FILES['attachment']['tmp_name'] == 'none') { return; } // Check the upload size. If the size was greater than the max in // php.ini, the file won't even be set and will fail at the check above - if ($HTTP_POST_FILES['attachment']['size'] > ATTACHMENT_MAX_SIZE) { + if ($_FILES['attachment']['size'] > ATTACHMENT_MAX_SIZE) { return; } $projectid = $db->getOne("select project_id from ".TBL_BUG." where bug_id = $bugid"); if (!$projectid) { - show_text($STRING['nobug'], true); return; } // Check for a previously-uploaded attachment with the same name, bug, and project - $rs = $db->query("select a.bug_id, project_id from ".TBL_ATTACHMENT." a, ". - TBL_BUG." b where file_name = '{$HTTP_POST_FILES['attachment']['name']}' ". - "and a.bug_id = b.bug_id"); + $rs = $db->query("select a.bug_id, project_id from ".TBL_ATTACHMENT." a, ".TBL_BUG." b where file_name = '{$_FILES['attachment']['name']}' and a.bug_id = b.bug_id"); while ($rs->fetchInto($ainfo)) { if ($bugid == $ainfo['bug_id'] && $projectid == $ainfo['project_id']) { return; @@ -496,8 +433,8 @@ } $filepath = ATTACHMENT_PATH; - $tmpfilename = $HTTP_POST_FILES['attachment']['tmp_name']; - $filename = "$bugid-{$HTTP_POST_FILES['attachment']['name']}"; + $tmpfilename = $_FILES['attachment']['tmp_name']; + $filename = "$bugid-{$_FILES['attachment']['name']}"; if (!is_dir($filepath)) { return; @@ -511,28 +448,15 @@ @mkdir("$filepath/$projectid", 0775); } - if (!@move_uploaded_file($HTTP_POST_FILES['attachment']['tmp_name'], + if (!@move_uploaded_file($_FILES['attachment']['tmp_name'], "$filepath/$projectid/$filename")) { return; } @chmod("$filepath/$projectid/$filename", 0766); - $db->query("insert into ".TBL_ATTACHMENT." (attachment_id, bug_id, file_name, ". - "description, file_size, mime_type, created_by, created_date) values (". - join(', ', array($db->nextId(TBL_ATTACHMENT), $bugid, - $db->quote($HTTP_POST_FILES['attachment']['name']), - $db->quote(stripslashes($description)), - $HTTP_POST_FILES['attachment']['size'], - $db->quote($HTTP_POST_FILES['attachment']['type']), $u, $now)).")"); - - if ($_pv['use_js']) { - $t->display('admin/edit-submit.html'); - } else { - header("Location: bug.php?op=show&bugid=$bugid"); - } + $db->query("insert into ".TBL_ATTACHMENT." (attachment_id, bug_id, file_name, description, file_size, mime_type, created_by, created_date) values (".join(', ', array($db->nextId(TBL_ATTACHMENT), $bugid, $db->quote($_FILES['attachment']['name']), $db->quote(stripslashes($description)), $_FILES['attachment']['size'], $db->quote($_FILES['attachment']['type']), $u, $now)).")"); } - /// /// Move attachments from one project directory to another function move_attachments($bug_id, $old_project, $new_project) { @@ -543,86 +467,54 @@ @mkdir("$filepath/$new_project", 0775); } - $rs = $db->query("select attachment_id, file_name from ".TBL_ATTACHMENT. - " where bug_id = $bug_id"); + $rs = $db->query("select attachment_id, file_name from ".TBL_ATTACHMENT." where bug_id = $bug_id"); while ($row = $rs->fetchRow()) { @rename("$filepath/$old_project/$bug_id-{$row['file_name']}", "$filepath/$new_project/$bug_id-{$row['file_name']}"); } } - - - function do_form($bugid = 0) { - global $db, $me, $u, $_pv, $_gv, $STRING, $now, $HTTP_SERVER_VARS; + global $db, $me, $u, $now; $error = ''; // Validation - if (!$_pv['title'] = htmlspecialchars(trim($_pv['title']))) { - $error = $STRING['givesummary']; - } elseif (!$_pv['description'] = htmlspecialchars(trim($_pv['description']))) { - $error = $STRING['givedesc']; + if (!$_POST['title'] = htmlspecialchars(trim($_POST['title']))) { + $error = translate("Please enter a summary"); + } elseif (!$_POST['description'] = htmlspecialchars(trim($_POST['description']))) { + $error = translate("Please enter a description"); } if ($error) { - $_gv['project'] = $_pv['project']; + $_GET['project'] = $_POST['project']; show_form($bugid, $error); return; } - while (list($k,$v) = each($_pv)) { - $$k = $v; - } - + extract($_POST); if ($url == 'http://') { $url = ''; } + + // Use the selected reporter, if specified + $reporter = ($reporter and is_numeric($reporter)) ? $reporter : $u; - // Allow for removing of some items from the bug page - $priority = $priority ? $priority : 0; - $os = $os ? $os : 0; - $severity = $severity ? $severity : 0; - - if (!$bugid) { - $bugid = $db->nextId(TBL_BUG); - - // Check to see if this bug's component has an owner and should be assigned - if ($owner = $db->getOne("select owner from ".TBL_COMPONENT." c where component_id = $component")) { - $status = BUG_ASSIGNED; - } else { - $owner = 0; - // If we aren't using voting to promote, then auto-promote to New - $status = PROMOTE_VOTES ? BUG_UNCONFIRMED : BUG_PROMOTED; - } - - $db->query('insert into '.TBL_BUG.' (bug_id, title, description, url, '. - 'severity_id, priority, status_id, assigned_to, created_by, created_date, '. - 'last_modified_by, last_modified_date, project_id, site_id, database_id, version_id, '. - 'component_id, os_id, browser_string) values ('.$bugid.', '. - join(', ', array($db->quote(stripslashes($title)), - $db->quote(stripslashes($description)), - $db->quote(stripslashes($url)))).', '. - $severity.', '.$priority.', '.$status.', '.$owner.', '.$u.', '.$now.', '.$u.', '.$now.', '.$project.', '. - $site.', '.$database.', '.$version.', '.$component.', '.$os.', '. - $db->quote(stripslashes($HTTP_SERVER_VARS['HTTP_USER_AGENT'])).')'); - $buginfo = $db->getRow('select * from '.TBL_BUG." where bug_id = $bugid"); - do_changedfields($u, $buginfo); + // Check to see if this bug's component has an owner and should be assigned + if ($owner = $db->getOne("select owner from ".TBL_COMPONENT." c where component_id = $component")) { + $status = BUG_ASSIGNED; } else { - $db->query('update '.TBL_BUG.' set title = '.$db->quote(stripslashes($title)). - ", description = ".$db->quote(stripslashes($description)). - ", url = ".$db->quote(stripslashes($url)). - ", severity_id = '$severity', priority = '$priority', ". - "status_id = $status, assigned_to = '$assignedto', ". - 'database_id = '.$database.', site_id = '.$site.', '. - "project_id = $project, version_id = $version, ". - "component_id = $component, os_id = '$os', ". - "browser_string = '{$GLOBALS['HTTP_USER_AGENT']}' ". - "last_modified_by = $u, last_modified_date = $time ". - "where bug_id = '$bugid'"); + $owner = 0; + // If we aren't using voting to promote, then auto-promote to New + $status = PROMOTE_VOTES ? BUG_UNCONFIRMED : BUG_PROMOTED; } - if (isset($_pv['at_description'])) - add_attachment($bugid, $_pv['at_description']); //attachment (initial) + $bugid = $db->nextId(TBL_BUG); + + $db->query('insert into '.TBL_BUG.' (bug_id, title, description, url, severity_id, priority, status_id, assigned_to, created_by, created_date, last_modified_by, last_modified_date, project_id, site_id, database_id, version_id, component_id, os_id, browser_string) values ('.$bugid.', '.join(', ', array($db->quote(stripslashes($title)), $db->quote(stripslashes($description)), $db->quote(stripslashes($url)))).', '.(int)$severity.', '.(int)$priority.', '.(int)$status.', '.$owner.', '.$reporter.', '.$now.', '.$u.', '.$now.', '.$project.', '.(int)$site.', '.(int)$database.', '.(int)$version.', '.(int)$component.', '.(int)$os.', '.$db->quote(stripslashes($_SERVER['HTTP_USER_AGENT'])).')'); + $buginfo = $db->getRow('select * from '.TBL_BUG." where bug_id = $bugid"); + do_changedfields($u, $buginfo); + + if (isset($_POST['at_description'])) + add_attachment($bugid, $_POST['at_description']); //attachment (initial) if (isset($another)) { header("Location: $me?op=add&project=$project"); @@ -632,56 +524,47 @@ } function show_form($bugid = 0, $error = '') { - global $db, $me, $t, $_gv, $_pv, $TITLE; + global $db, $t; - $projectname = $db->getOne("select project_name from ".TBL_PROJECT." where project_id = {$_gv['project']}"); + $projectname = $db->getOne("select project_name from ".TBL_PROJECT." where project_id = '{$_GET['project']}'"); if ($bugid && !$error) { $t->assign($db->getRow("select * from ".TBL_BUG." where bug_id = '$bugid'")); } else { - $t->assign($_pv); + $t->assign($_POST); $t->assign(array( 'error' => $error, - 'project' => $_gv['project'], + 'project' => $_GET['project'], 'projectname' => $projectname )); } - $t->wrap('bugform.html', 'enterbug'); + $t->render('bugform.html', translate("Create Bug")); } function show_bug_printable($bugid) { - global $db, $me, $t, $select, $TITLE, $QUERY, $restricted_projects; + global $db, $me, $t, $select, $QUERY, $restricted_projects; if (!is_numeric($bugid) or !$row = $db->getRow(sprintf($QUERY['bug-printable'], $bugid, $restricted_projects))) { - show_text($STRING['bugbadnum'],true); + show_text(translate("That bug does not exist"), true); exit; } $t->assign($row); $t->assign(array( - 'bug_dependencies' => delimit_list(', ', $db->getCol('select '. - db_concat("'<a href=\"$me?op=show&bugid='", 'depends_on', '\'">#\'', - 'depends_on', '\'</a>\'').' from '.TBL_BUG_DEPENDENCY. - " where bug_id = $bugid")), - 'rev_bug_dependencies' => delimit_list(', ', $db->getCol('select '. - db_concat("'<a href=\"$me?op=show&bugid='", 'bug_id', '\'">#\'', - 'bug_id', '\'</a>\'').' from '.TBL_BUG_DEPENDENCY. - " where depends_on = $bugid")) + 'bug_dependencies' => @join(', ', $db->getCol('select '.db_concat("'<a href=\"$me?op=show&bugid='", 'depends_on', '\'">#\'','depends_on', '\'</a>\'').' from '.TBL_BUG_DEPENDENCY." where bug_id = $bugid")), + 'rev_bug_dependencies' => @join(', ', $db->getCol('select '.db_concat("'<a href=\"$me?op=show&bugid='", 'bug_id', '\'">#\'','bug_id', '\'</a>\'').' from '.TBL_BUG_DEPENDENCY." where depends_on = $bugid")) )); // Show the comments - $t->assign('comments', $db->getAll('select comment_text, c.created_date, login'. - ' from '.TBL_COMMENT.' c, '.TBL_AUTH_USER. - " where bug_id = $bugid and c.created_by = user_id order by c.created_date" - )); - $t->wrap('bugdisplay-printable.html', 'viewbug'); + $t->assign('comments', $db->getAll('select comment_text, c.created_date, login from '.TBL_COMMENT.' c, '.TBL_AUTH_USER." where bug_id = $bugid and c.created_by = user_id order by c.created_date")); + $t->render('bugdisplay-printable.html', translate("View Bug")); } /// /// Grab the links for the previous and next bugs in the list function prev_next_links($bugid, $pos) { - global $dsn, $_sv, $QUERY, $t; + global $dsn, $QUERY, $t; // Create a new db connection because of the limit query affecting later queries $db = DB::Connect($dsn); @@ -691,7 +574,7 @@ $db->setOption('optimize', 'portability'); $db->setErrorHandling(PEAR_ERROR_CALLBACK, "handle_db_error"); - if (!isset($_sv['queryinfo']['query']) || !$_sv['queryinfo']['query']) { + if (!isset($_SESSION['queryinfo']['query']) || !$_SESSION['queryinfo']['query']) { return array('', ''); } @@ -703,8 +586,8 @@ $limit = 1; } $rs = $db->limitQuery(sprintf($QUERY['bug-prev-next'], - $_sv['queryinfo']['query'], $bugid, $_sv['queryinfo']['order'], - $_sv['queryinfo']['sort']), $offset, $limit); + $_SESSION['queryinfo']['query'], $bugid, $_SESSION['queryinfo']['order'], + $_SESSION['queryinfo']['sort']), $offset, $limit); list($firstid, $chunks) = $rs->fetchRow(); list($secondid, $chunks) = $rs->fetchRow(); @@ -724,61 +607,31 @@ } function show_bug($bugid = 0, $error = array()) { - global $db, $me, $t, $STRING, $TITLE, $u, $_gv, $_pv, $QUERY, $restricted_projects; + global $db, $me, $t, $u, $QUERY, $restricted_projects; if (!ereg('^[0-9]+$',$bugid) or !$row = $db->getRow(sprintf($QUERY['bug-show-bug'], $bugid, $restricted_projects))) { - show_text($STRING['bugbadnum'],true); + show_text(translate("That bug does not exist"), true); return; } - prev_next_links($bugid, isset($_gv['pos']) ? $_gv['pos'] : 0); + prev_next_links($bugid, isset($_GET['pos']) ? $_GET['pos'] : 0); $t->assign($row); // Override the database values with posted values if there were errors - if (count($error)) $t->assign($_pv); + if (count($error)) $t->assign($_POST); - $bug_dependencies = $db->query('SELECT '.TBL_BUG.'.status_id, '. - TBL_BUG.'.bug_id FROM '. - TBL_BUG.', '.TBL_BUG_DEPENDENCY.' WHERE '.TBL_BUG.'.bug_id = '. - TBL_BUG_DEPENDENCY.'.depends_on AND '.TBL_BUG_DEPENDENCY. - '.bug_id = '.$bugid); - - $bug_dependencies_display = array(); - if ($bug_dependencies->numRows()) { - while ($bug_dependencies->fetchInto($dependency)) { - $bug_dependencies_display[] = - '<a href="'.$me.'?op=show&bugid='.$dependency['bug_id']. - '">'.($dependency['status_id'] == 5 ? '<strike>':'').'#'. - $dependency['bug_id'].($dependency['status_id'] == 5 ? '</strike>':'').'</a>'; - } - } + $bug_dependencies = $db->getAll("select b.bug_id, s.bug_open from ".TBL_BUG_DEPENDENCY." d, ".TBL_BUG." b, ".TBL_STATUS." s where d.bug_id = $bugid and d.depends_on = b.bug_id and b.status_id = s.status_id"); - $bug_blocks = $db->query('SELECT '.TBL_BUG.'.status_id, '. - TBL_BUG.'.bug_id FROM '. - TBL_BUG.', '.TBL_BUG_DEPENDENCY.' WHERE '.TBL_BUG.'.bug_id = '. - TBL_BUG_DEPENDENCY.'.bug_id AND '.TBL_BUG_DEPENDENCY. - '.depends_on = '.$bugid); - - $bug_blocks_display = array(); - if ($bug_blocks->numRows()) { - while ($bug_blocks->fetchInto($block)) { - $bug_blocks_display[] = - '<a href="'.$me.'?op=show&bugid='.$block['bug_id']. - '">'.($block['status_id'] == 5 ? '<strike>':'').'#'. - $block['bug_id'].($block['status_id'] == 5 ? '</strike>':'').'</a>'; - } - } + $bug_blocks = $db->getAll("select b.bug_id, s.bug_open from ".TBL_BUG_DEPENDENCY." d, ".TBL_BUG." b, ".TBL_STATUS." s where d.depends_on = $bugid and d.bug_id = b.bug_id and b.status_id = s.status_id"); $t->assign(array( 'error' => $error, - 'already_voted' => $db->getOne("select count(*) from ".TBL_BUG_VOTE. - " where bug_id = $bugid and user_id = $u"), - 'num_votes' => $db->getOne("select count(*) from ".TBL_BUG_VOTE. - " where bug_id = $bugid"), - 'bug_dependencies' => implode(', ', $bug_dependencies_display), - 'rev_bug_dependencies' => implode(', ', $bug_blocks_display) + 'already_voted' => $db->getOne("select count(*) from ".TBL_BUG_VOTE." where bug_id = $bugid and user_id = $u"), + 'num_votes' => $db->getOne("select count(*) from ".TBL_BUG_VOTE." where bug_id = $bugid"), + 'bug_dependencies' => $bug_dependencies, + 'bug_blocks' => $bug_blocks )); // Show the attachments @@ -795,16 +648,14 @@ // Show the comments $t->assign(array( 'attachments' => $attachments, - 'comments' => $db->getAll('select comment_text, c.created_date, login'. - ' from '.TBL_COMMENT.' c, '.TBL_AUTH_USER. - " where bug_id = $bugid and c.created_by = user_id order by c.created_date") + 'comments' => $db->getAll('select comment_text, c.created_date, login'.' from '.TBL_COMMENT.' c, '.TBL_AUTH_USER." where bug_id = $bugid and c.created_by = user_id order by c.created_date") )); - $t->wrap('bugdisplay.html', 'viewbug'); + $t->render('bugdisplay.html', translate("View Bug")); } function show_projects() { - global $db, $t, $STRING, $perm, $restricted_projects, $_gv; + global $db, $t, $perm, $restricted_projects; // Show only active projects with at least one component if ($perm->have_perm('Admin')) { // Show admins all projects @@ -813,56 +664,52 @@ $p_query = " and p.project_id not in ($restricted_projects)"; } $projects = array(); - $projects = $db->getAll('select p.project_id, p.project_name, p.project_desc, p.created_date - from '.TBL_PROJECT.' p, '.TBL_COMPONENT. - ' c where p.active = 1 and p.project_id = c.project_id'.$p_query. - ' group by p.project_id, p.project_name, p.project_desc, p.created_date'. - ' order by project_name'); + $projects = $db->getAll('select p.project_id, p.project_name, p.project_desc, p.created_date from '.TBL_PROJECT.' p, '.TBL_COMPONENT.' c where p.active = 1 and p.project_id = c.project_id'.$p_query.' group by p.project_id, p.project_name, p.project_desc, p.created_date order by project_name'); switch (count($projects)) { case 0 : - show_text($STRING['noprojects'], true); + show_text(translate("No projects found"), true); return; case 1 : - $_gv['project'] = $projects[0]['project_id']; + $_GET['project'] = $projects[0]['project_id']; show_form(); break; default : $t->assign('projects', $projects); - $t->wrap('projectlist.html', 'enterbug'); + $t->render('projectlist.html', translate("Select Project")); } } -if ($op) { - switch($op) { +if (!empty($_REQUEST['op'])) { + switch($_REQUEST['op']) { case 'history': - show_history($_gv['bugid']); + show_history(check_id($_GET['bugid'])); break; case 'add': $perm->check('Editbug'); - if (isset($_gv['project'])) { + if (isset($_GET['project'])) { show_form(); } else { show_projects(); } break; case 'show': - show_bug($_gv['bugid']); + show_bug(check_id($_GET['bugid'])); break; case 'update': - update_bug($_pv['bugid']); + update_bug(check_id($_POST['bugid'])); break; case 'do': - do_form($_pv['bugid']); + do_form(check_id($_POST['bugid'])); break; case 'print': - show_bug_printable($_gv['bugid']); + show_bug_printable(check_id($_GET['bugid'])); break; case 'vote': - vote_bug($_gv['bugid']); + vote_bug(check_id($_GET['bugid'])); break; case 'viewvotes': - vote_view($_gv['bugid']); + vote_view(check_id($_GET['bugid'])); break; } } else { Index: config-dist.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/config-dist.php,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- config-dist.php 25 Jul 2003 19:22:26 -0000 1.27 +++ config-dist.php 25 Oct 2004 12:06:57 -0000 1.28 @@ -1,7 +1,7 @@ <?php // config.php - Set up configuration options // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -28,10 +28,6 @@ define ('DB_USER', '{db_user}'); // username for database connection define ('DB_PASSWORD', '{db_pass}'); // password for database connection -// Smarty templates location (leave blank if Smarty is in include path) -// If not blank, make sure the trailing slash is present. -define ('SMARTY_PATH', '{smarty_path}'); - // Database Table Config // you can change either the prefix of the table names or each table name individually define ('CUR_DB_VERSION', 4); // the version of the database @@ -69,7 +65,7 @@ define ('TBL_SITE', TBL_PREFIX.'site'); define ('ONEDAY', 86400); -define ('PHPBT_VERSION', '0.9.0'); +define ('PHPBT_VERSION', '1.0'); require_once ('./inc/auth.php'); Index: config.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/config.php,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- config.php 25 Jul 2003 19:22:26 -0000 1.39 +++ config.php 25 Oct 2004 12:06:57 -0000 1.40 @@ -2,7 +2,7 @@ // config.php - Set up configuration options // ------------------------------------------------------------------------ -// Copyright (c) 2001 The phpBugTracker Group +// Copyright (c) 2001 - 2003 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // Index: include.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/include.php,v retrieving revision 1.126 retrieving revision 1.127 diff -u -r1.126 -r1.127 --- include.php 5 Jul 2003 22:57:33 -0000 1.126 +++ include.php 25 Oct 2004 12:06:57 -0000 1.127 @@ -2,7 +2,7 @@ // include.php - Set up global variables // ------------------------------------------------------------------------ -// Copyright (c) 2001, 2002 The phpBugTracker Group +// Copyright (c) 2001 - 2004 The phpBugTracker Group // ------------------------------------------------------------------------ // This file is part of phpBugTracker // @@ -27,12 +27,12 @@ @ini_set("session.save_handler", "files"); if (!@include('config.php')) { - header("Location: install.php"); - exit(); + header("Location: install.php"); + exit(); } if (!defined('DB_HOST')) { // Installation hasn't been completed - header("Location: install.php"); - exit(); + header("Location: install.php"); + exit(); } // Grab the global functions @@ -47,7 +47,7 @@ 'database' => DB_DATABASE, 'username' => DB_USER, 'password' => DB_PASSWORD - ); + ); $db = DB::Connect($dsn); if (DB::isError($db)) { die($db->message.'<br>'.$db->userinfo); @@ -56,104 +56,89 @@ $db->setFetchMode(DB_FETCHMODE_ASSOC); $db->setErrorHandling(PEAR_ERROR_CALLBACK, "handle_db_error"); -// Set up the configuration variables -$rs = $db->query('select varname, varvalue from '.TBL_CONFIGURATION); -while (list($k, $v) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) { - define($k, $v); +if (empty($upgrading)) { + // Set up the configuration variables + $rs = $db->query('select varname, varvalue from '.TBL_CONFIGURATION); + while (list($k, $v) = $rs->fetchRow(DB_FETCHMODE_ORDERED)) { + if (!defined($k)) define($k, $v); + } + define('OPEN_BUG_STATUSES', join(', ', + $db->getCol("select status_id from " . TBL_STATUS ." where bug_open = 1"))); } -define('OPEN_BUG_STATUSES', join(', ', array(BUG_UNCONFIRMED, BUG_PROMOTED, - BUG_ASSIGNED, BUG_REOPENED))); - require_once ('inc/db/'.DB_TYPE.'.php'); -// Localization - include the file with the desired language -include 'languages/'.LANGUAGE.'.php'; - $me = $HTTP_SERVER_VARS['PHP_SELF']; $selrange = 30; $now = time(); -$_gv =& $HTTP_GET_VARS; -$_pv =& $HTTP_POST_VARS; $all_db_fields = array( - 'bug_id' => 'ID', - 'title' => 'Title', - 'description' => 'Description', - 'url' => 'URL', - 'severity_name' => 'Severity', - 'priority' => 'Priority', - 'status_name' => 'Status', - 'resolution_name' => 'Resolution', - 'closed_in_version_name' => 'Closed in Version', - 'to_be_closed_in_version_name' => 'To be Closed in Version', - 'database_name' => 'Database', - 'site_name' => 'Site', - 'reporter' => 'Reporter', - 'owner' => 'Owner', - 'created_date' => 'Created Date', - 'lastmodifier' => 'Last Modified By', - 'last_modified_date' => 'Last Modified Date', - 'project_name' => 'Project', - 'version_name' => 'Version', - 'component_name' => 'Component', - 'os_name' => 'OS', - 'browser_string' => 'Browser', - 'close_date' => 'Closed Date' - ); + 'bug_id' => 'ID', + 'title' => 'Title', + 'description' => 'Description', + 'url' => 'URL', + 'severity_name' => 'Severity', + 'priority' => 'Priority', + 'status_name' => 'Status', + 'resolution_name' => 'Resolution', + 'closed_in_version_name' => 'Closed in Version', + 'to_be_closed_in_version_name' => 'To be Closed in Version', + 'database_name' => 'Database', + 'site_name' => 'Site', + 'reporter' => 'Reporter', + 'owner' => 'Owner', + 'created_date' => 'Created Date', + 'lastmodifier' => 'Last Modified By', + 'last_modified_date' => 'Last Modified Date', + 'project_name' => 'Project', + 'version_name' => 'Version', + 'component_name' => 'Component', + 'os_name' => 'OS', + 'browser_string' => 'Browser', + 'close_date' => 'Closed Date' + ); $default_db_fields = array('bug_id', 'title', 'reporter', 'owner', - 'severity_name', 'priority', 'status_name', 'resolution_name'); + 'severity_name', 'priority', 'status_name', 'resolution_name'); // Template class -if (!@include(SMARTY_PATH . 'Smarty.class.php')) { - include('templates/default/base/smartymissing.html'); - exit; -} +class template { + var $vars; -class extSmarty extends Smarty { - - function fetch($_smarty_tpl_file, $_smarty_cache_id = null, $_smarty_compile_id = null, $_smarty_display = false) { - error_reporting(E_ALL ^ E_NOTICE); // Clobber Smarty warnings - return Smarty::fetch($_smarty_tpl_file, $_smarty_cache_id, $_smarty_compile_id, $_smarty_display); + function template() { + $this->vars = array(); } - function wrap($template, $title = '') { - global $TITLE, $_gv, $_pv; - - $this->assign(array( - 'content_template' => $template, - 'page_title' => isset($TITLE[$title]) ? $TITLE[$title] : $title - )); + function render($content_template, $page_title, $wrap_file = '', $nowrap = false) { + extract($this->vars); + $path = defined('TEMPLATE_PATH') + ? './templates/'.THEME.'/'.TEMPLATE_PATH.'/' + : './templates/'.THEME.'/'; + include($nowrap ? $path.$content_template : ($wrap_file ? $path.$wrap_file : $path.'wrap.html')); + } + + function fetch($content_template) { + ob_start(); + $this->render($content_template, '', '', true); + $rettext = ob_get_contents(); + ob_end_clean(); + return $rettext; + } + - // Use a popup wrap? - if ((isset($_gv['use_js']) and $_gv['use_js']) or - (isset($_pv['use_js']) and $_pv['use_js'])) { - $wrap = 'wrap-popup.html'; - } else { - $wrap = 'wrap.html'; - } - if (($dir = dirname($template)) != '.') { - $this->display("$dir/$wrap"); + function assign($var, $value = '') { + if (is_array($var)) { + foreach ($var as $k => $v) { + $this->vars[$k] = $v; + } } else { - $this->display($wrap); + $this->vars[$var] = $value; } } } -$t = new extSmarty; -$t->template_dir = 'templates/'.THEME.'/'; -$t->compile_dir = 'c_templates'; -$t->config_dir = '.'; -$t->use_sub_dirs = false; -$t->register_function('build_select', 'build_select'); -$t->register_function('project_js', 'build_project_js'); -$t->register_modifier('date', 'bt_date'); -$t->assign(array( - 'STRING' => $STRING, - 'TITLE' => $TITLE, - 'STYLE' => STYLE - )); +$t = new template(); +$t->assign('STYLE', STYLE); if (defined('TEMPLATE_PATH')) { $t->assign('template_path', '../templates/'.THEME.'/'.TEMPLATE_PATH); @@ -164,44 +149,45 @@ // End classes -- Begin page if (!defined('NO_AUTH')) { - session_start(); - $_sv =& $HTTP_SESSION_VARS; - $auth = new uauth; - $perm = new uperm; - $u = isset($_sv['uid']) ? $_sv['uid'] : 0; + session_start(); + $auth = new uauth; + $perm = new uperm; + $u = isset($_SESSION['uid']) ? $_SESSION['uid'] : 0; } // Check to see if the user is trying to login -if (isset($_pv['dologin'])) { - if (!empty($_pv['sendpass'])) { - $username = $_pv['username']; - list($email, $password) = $db->getRow("select email, password from ".TBL_AUTH_USER." where login = '{$_pv['username']}' and active > 0", null, DB_FETCHMODE_ORDERED); - if (!$email) { - $t->assign('loginerror', '<div class="error">Invalid login</div>'); - } else { - if (ENCRYPT_PASS) { - $password = genpassword(10); - $mpassword = md5($password); - $db->query("update ".TBL_AUTH_USER." set password = '$mpassword' where login = '$username'"); - } - qp_mail($email, $STRING['newacctsubject'], sprintf($STRING['newacctmessage'], $password), - sprintf("From: %s",ADMIN_EMAIL)); - $t->assign('loginerror', - '<div class="result">Your password has been emailed to you</div>'); +if (isset($_POST['dologin'])) { + if (!empty($_POST['sendpass'])) { + $username = $_POST['username']; + list($email, $password) = $db->getRow("select email, password from ".TBL_AUTH_USER." where login = '{$_POST['username']}' and active > 0", null, DB_FETCHMODE_ORDERED); + if (!$email) { + $t->assign('loginerror', '<div class="error">'.translate("Invalid login").'</div>'); + } else { + if (ENCRYPT_PASS) { + $password = genpassword(10); + $mpassword = md5($password); + $db->query("update ".TBL_AUTH_USER." set password = '$mpassword' where login = '$username'"); + } + qp_mail($email, + translate("phpBugTracker Login"), + sprint... [truncated message content] |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:16
|
Update of /cvsroot/phpbt/phpbt/inc/smarty/plugins In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/inc/smarty/plugins Removed Files: function.assign.php function.cycle.php function.fetch.php function.math.php function.popup.php modifier.default.php Log Message: Merging in htmltemplates branch to HEAD --- function.assign.php DELETED --- --- function.cycle.php DELETED --- --- function.fetch.php DELETED --- --- function.math.php DELETED --- --- function.popup.php DELETED --- --- modifier.default.php DELETED --- |
|
From: Benjamin C. <bc...@us...> - 2004-10-25 12:07:16
|
Update of /cvsroot/phpbt/phpbt/inc/smarty In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28250/inc/smarty Removed Files: Config_File.class.php Smarty.class.php Smarty_Compiler.class.php Log Message: Merging in htmltemplates branch to HEAD --- Config_File.class.php DELETED --- --- Smarty.class.php DELETED --- --- Smarty_Compiler.class.php DELETED --- |
|
From: Benjamin C. <bc...@us...> - 2004-10-18 12:01:14
|
Update of /cvsroot/phpbt/phpbt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21431 Modified Files: Tag: htmltemplates index.php Log Message: Fixed the translation problem in the project bug count display as suggested by Sven Fischer Index: index.php =================================================================== RCS file: /cvsroot/phpbt/phpbt/index.php,v retrieving revision 1.39.2.6 retrieving revision 1.39.2.7 diff -u -r1.39.2.6 -r1.39.2.7 --- index.php 6 Sep 2004 04:54:03 -0000 1.39.2.6 +++ index.php 18 Oct 2004 12:01:03 -0000 1.39.2.7 @@ -139,14 +139,13 @@ $sOpenStatusQuery = '&status%5B%5D='.@join('&status%5B%5D=', $db->getCol("select status_id from " . TBL_STATUS ." where bug_open = 1")); - // QUESTION: Will this still work with using translate('Project')? foreach ($aProjects['projects'] as $iProjectNumberKey => $value1) { foreach ($aProjects['projects'][$iProjectNumberKey] as $sResolutionKey => $value2) { - if ($sResolutionKey != translate("Project") && $sResolutionKey != translate("Total") && $sResolutionKey != translate("Open")) { + if ($sResolutionKey != "Project" && $sResolutionKey != "Total" && $sResolutionKey != "Open") { $aProjects['projects'][$iProjectNumberKey][$sResolutionKey] = "<A HREF='query.php?resolution%5B%5D=" . $aResolutionsToIds[$sResolutionKey] . "&projects=" . $aProjectsToIds[$aProjects['projects'][$iProjectNumberKey]["Project"]] . "&op=doquery'>" . $aProjects['projects'][$iProjectNumberKey][$sResolutionKey] . "</A>"; - } elseif ($sResolutionKey == translate("Open")) { + } elseif ($sResolutionKey == "Open") { $aProjects['projects'][$iProjectNumberKey][$sResolutionKey] = "<A HREF='query.php?projects=" . $aProjectsToIds[$aProjects['projects'][$iProjectNumberKey]["Project"]] . $sOpenStatusQuery . "&op=doquery'>" . $aProjects['projects'][$iProjectNumberKey][$sResolutionKey] . "</A>"; - } elseif ($sResolutionKey == translate("Total")) { + } elseif ($sResolutionKey == "Total") { $aProjects['projects'][$iProjectNumberKey][$sResolutionKey] = "<A HREF='query.php?projects=" . $aProjectsToIds[$aProjects['projects'][$iProjectNumberKey]["Project"]] . "&op=doquery'>" . $aProjects['projects'][$iProjectNumberKey][$sResolutionKey] . "</A>"; } } |
|
From: Benjamin C. <bc...@us...> - 2004-09-07 13:30:53
|
Update of /cvsroot/phpbt/phpbt/templates/default In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27571/templates/default Modified Files: Tag: htmltemplates bugdisplay.html Log Message: Fixes bug #1023563 - Links to other bugs, etc. getting clobbered by htmlspecialchars. Index: bugdisplay.html =================================================================== RCS file: /cvsroot/phpbt/phpbt/templates/default/bugdisplay.html,v retrieving revision 1.45.4.6 retrieving revision 1.45.4.7 diff -u -r1.45.4.6 -r1.45.4.7 --- bugdisplay.html 7 Sep 2004 13:26:31 -0000 1.45.4.6 +++ bugdisplay.html 7 Sep 2004 13:30:44 -0000 1.45.4.7 @@ -248,14 +248,14 @@ <td><?php echo translate("Posted by"); ?>: <?php echo maskemail($reporter); ?> <br> <?php echo translate("Date"); ?>: <?php echo date(TIME_FORMAT.' '.DATE_FORMAT, $created_date); ?></td> </tr><tr> - <td><?php echo nl2br(stripslashes(htmlspecialchars(format_comments($description)))); ?> <br><br></td> + <td><?php echo nl2br(stripslashes(format_comments(htmlspecialchars($description)))); ?> <br><br></td> </tr> <?php for ($i = 0, $ccount = count($comments); $i < $ccount; $i++) { ?> <tr class="alt"> <td><?php echo translate("Posted by"); ?>: <?php echo maskemail($comments[$i]['login']); ?> <br> <?php echo translate("Date"); ?>: <?php echo date(TIME_FORMAT.' '.DATE_FORMAT, $comments[$i]['created_date']); ?></td> </tr><tr> - <td><?php echo nl2br(stripslashes(htmlspecialchars(format_comments($comments[$i]['comment_text'])))); ?> <br><br></td> + <td><?php echo nl2br(stripslashes(format_comments(htmlspecialchars($comments[$i]['comment_text'])))); ?> <br><br></td> </tr> <?php } ?> </table> |