2010-01-12 10:49:41 +01:00
< ? php
2018-10-27 14:43:12 +02:00
/* Copyright ( C ) 2010 - 2014 Regis Houssin < regis . houssin @ inodbox . com >
2016-08-04 10:19:30 +02:00
* Copyright ( C ) 2011 - 2016 Laurent Destailleur < eldy @ users . sourceforge . net >
2018-03-14 09:48:39 +01:00
* Copyright ( C ) 2011 - 2015 Juanjo Menent < jmenent @ 2 byte . es >
2018-06-10 18:29:04 +02:00
* Copyright ( C ) 2011 - 2018 Philippe Grand < philippe . grand @ atoo - net . com >
2014-09-29 11:08:50 +02:00
* Copyright ( C ) 2013 Florian Henry < florian . henry @ open - concept . pro >
2015-06-15 10:04:36 +02:00
* Copyright ( C ) 2015 Marcos García < marcosgdf @ gmail . com >
2018-03-14 09:48:39 +01:00
* Copyright ( C ) 2018 Ferran Marcet < fmarcet @ 2 byte . es >
2013-03-25 19:31:17 +01:00
*
* This program 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 3 of the License , or
* ( at your option ) any later version .
*
* This program 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
2019-09-23 21:55:30 +02:00
* along with this program . If not , see < https :// www . gnu . org / licenses />.
2014-02-28 21:54:50 +01:00
*/
2010-01-12 10:49:41 +01:00
/**
2019-12-14 16:18:41 +01:00
* \file htdocs / projet / admin / project . php
2010-01-12 10:49:41 +01:00
* \ingroup project
2011-08-31 20:47:29 +02:00
* \brief Page to setup project module
2014-02-28 21:54:50 +01:00
*/
2010-01-12 10:49:41 +01:00
2013-04-12 11:09:53 +02:00
require '../../main.inc.php' ;
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php' ;
2013-04-12 11:09:53 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/project.lib.php' ;
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/projet/class/task.class.php' ;
2010-01-12 10:49:41 +01:00
2018-05-26 21:11:25 +02:00
// Load translation files required by the page
$langs -> loadLangs ( array ( 'admin' , 'errors' , 'other' , 'projects' ));
2010-01-12 10:49:41 +01:00
2021-02-26 18:49:22 +01:00
if ( ! $user -> admin ) {
accessforbidden ();
}
2010-01-12 10:49:41 +01:00
2019-01-27 11:55:16 +01:00
$value = GETPOST ( 'value' , 'alpha' );
2020-09-16 19:39:50 +02:00
$action = GETPOST ( 'action' , 'aZ09' );
2019-01-27 11:55:16 +01:00
$label = GETPOST ( 'label' , 'alpha' );
$scandir = GETPOST ( 'scan_dir' , 'alpha' );
2020-04-10 10:59:32 +02:00
$type = 'project' ;
2011-08-31 20:47:29 +02:00
2010-01-12 10:49:41 +01:00
/*
* Actions
2014-02-28 21:54:50 +01:00
*/
2010-01-12 10:49:41 +01:00
2017-06-01 12:11:45 +02:00
include DOL_DOCUMENT_ROOT . '/core/actions_setmoduleoptions.inc.php' ;
2021-02-26 18:49:22 +01:00
if ( $action == 'updateMask' ) {
2020-04-10 10:59:32 +02:00
$maskconstproject = GETPOST ( 'maskconstproject' , 'alpha' );
$maskproject = GETPOST ( 'maskproject' , 'alpha' );
2012-08-08 04:12:20 +02:00
2021-02-26 18:49:22 +01:00
if ( $maskconstproject ) {
$res = dolibarr_set_const ( $db , $maskconstproject , $maskproject , 'chaine' , 0 , '' , $conf -> entity );
}
2011-11-06 15:12:18 +01:00
2021-02-26 18:49:22 +01:00
if ( ! ( $res > 0 )) {
$error ++ ;
}
2011-09-03 00:33:28 +02:00
2021-02-26 18:49:22 +01:00
if ( ! $error ) {
2015-12-17 14:14:44 +01:00
setEventMessages ( $langs -> trans ( " SetupSaved " ), null , 'mesgs' );
2020-05-21 15:05:19 +02:00
} else {
2015-12-17 14:14:44 +01:00
setEventMessages ( $langs -> trans ( " Error " ), null , 'errors' );
2013-03-25 19:28:34 +01:00
}
2010-01-12 10:49:41 +01:00
}
2021-02-26 18:49:22 +01:00
if ( $action == 'updateMaskTask' ) {
2020-04-10 10:59:32 +02:00
$maskconstmasktask = GETPOST ( 'maskconsttask' , 'alpha' );
$masktaskt = GETPOST ( 'masktask' , 'alpha' );
2013-07-17 19:17:54 +02:00
2021-02-26 18:49:22 +01:00
if ( $maskconstmasktask ) {
$res = dolibarr_set_const ( $db , $maskconstmasktask , $masktaskt , 'chaine' , 0 , '' , $conf -> entity );
}
2013-07-17 19:17:54 +02:00
2021-02-26 18:49:22 +01:00
if ( ! ( $res > 0 )) {
$error ++ ;
}
2013-07-17 19:17:54 +02:00
2021-02-26 18:49:22 +01:00
if ( ! $error ) {
2015-12-17 14:14:44 +01:00
setEventMessages ( $langs -> trans ( " SetupSaved " ), null , 'mesgs' );
2020-05-21 15:05:19 +02:00
} else {
2015-12-17 14:14:44 +01:00
setEventMessages ( $langs -> trans ( " Error " ), null , 'errors' );
2013-07-17 19:17:54 +02:00
}
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'specimen' ) {
2020-04-10 10:59:32 +02:00
$modele = GETPOST ( 'module' , 'alpha' );
2010-01-12 10:49:41 +01:00
$project = new Project ( $db );
$project -> initAsSpecimen ();
2017-06-01 12:11:45 +02:00
2012-04-05 11:46:56 +02:00
// Search template files
2020-04-10 10:59:32 +02:00
$file = '' ; $classname = '' ; $filefound = 0 ;
$dirmodels = array_merge ( array ( '/' ), ( array ) $conf -> modules_parts [ 'models' ]);
2021-02-26 18:49:22 +01:00
foreach ( $dirmodels as $reldir ) {
2020-04-10 10:59:32 +02:00
$file = dol_buildpath ( $reldir . " core/modules/project/doc/pdf_ " . $modele . " .modules.php " , 0 );
2021-02-26 18:49:22 +01:00
if ( file_exists ( $file )) {
2020-04-10 10:59:32 +02:00
$filefound = 1 ;
2012-04-05 11:46:56 +02:00
$classname = " pdf_ " . $modele ;
break ;
}
}
2012-08-08 04:12:20 +02:00
2021-02-26 18:49:22 +01:00
if ( $filefound ) {
2012-08-22 23:11:24 +02:00
require_once $file ;
2010-01-12 10:49:41 +01:00
2012-04-05 11:46:56 +02:00
$module = new $classname ( $db );
2010-01-12 10:49:41 +01:00
2021-02-26 18:49:22 +01:00
if ( $module -> write_file ( $project , $langs ) > 0 ) {
2013-03-25 19:28:34 +01:00
header ( " Location: " . DOL_URL_ROOT . " /document.php?modulepart=project&file=SPECIMEN.pdf " );
return ;
2020-05-21 15:05:19 +02:00
} else {
2015-12-17 14:14:44 +01:00
setEventMessages ( $obj -> error , $obj -> errors , 'errors' );
2010-01-12 10:49:41 +01:00
dol_syslog ( $obj -> error , LOG_ERR );
}
2020-05-21 15:05:19 +02:00
} else {
2015-12-17 14:14:44 +01:00
setEventMessages ( $langs -> trans ( " ErrorModuleNotFound " ), null , 'errors' );
2010-01-12 10:49:41 +01:00
dol_syslog ( $langs -> trans ( " ErrorModuleNotFound " ), LOG_ERR );
}
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'specimentask' ) {
2020-04-10 10:59:32 +02:00
$modele = GETPOST ( 'module' , 'alpha' );
2013-07-17 18:45:58 +02:00
$project = new Project ( $db );
$project -> initAsSpecimen ();
// Search template files
2020-04-10 10:59:32 +02:00
$file = '' ; $classname = '' ; $filefound = 0 ;
$dirmodels = array_merge ( array ( '/' ), ( array ) $conf -> modules_parts [ 'models' ]);
2021-02-26 18:49:22 +01:00
foreach ( $dirmodels as $reldir ) {
2020-04-10 10:59:32 +02:00
$file = dol_buildpath ( $reldir . " core/modules/project/task/doc/pdf_ " . $modele . " .modules.php " , 0 );
2021-02-26 18:49:22 +01:00
if ( file_exists ( $file )) {
2020-04-10 10:59:32 +02:00
$filefound = 1 ;
2013-07-17 18:45:58 +02:00
$classname = " pdf_ " . $modele ;
break ;
}
}
2021-02-26 18:49:22 +01:00
if ( $filefound ) {
2013-07-17 18:45:58 +02:00
require_once $file ;
$module = new $classname ( $db );
2021-02-26 18:49:22 +01:00
if ( $module -> write_file ( $project , $langs ) > 0 ) {
2013-07-17 18:45:58 +02:00
header ( " Location: " . DOL_URL_ROOT . " /document.php?modulepart=project_task&file=SPECIMEN.pdf " );
return ;
2020-05-21 15:05:19 +02:00
} else {
2015-12-17 14:14:44 +01:00
setEventMessages ( $obj -> error , $obj -> errors , 'errors' );
2013-07-17 18:45:58 +02:00
dol_syslog ( $obj -> error , LOG_ERR );
}
2020-05-21 15:05:19 +02:00
} else {
2015-12-17 14:14:44 +01:00
setEventMessages ( $langs -> trans ( " ErrorModuleNotFound " ), null , 'errors' );
2013-07-17 18:45:58 +02:00
dol_syslog ( $langs -> trans ( " ErrorModuleNotFound " ), LOG_ERR );
}
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'set' ) {
// Activate a model
2012-04-05 14:49:51 +02:00
$ret = addDocumentModel ( $value , $type , $label , $scandir );
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'settask' ) {
// Activate a model for task
2019-01-27 11:55:16 +01:00
$ret = addDocumentModel ( $value , 'project_task' , $label , $scandir );
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'del' ) {
2012-04-05 14:49:51 +02:00
$ret = delDocumentModel ( $value , $type );
2021-02-26 18:49:22 +01:00
if ( $ret > 0 ) {
if ( $conf -> global -> PROJECT_ADDON_PDF == " $value " ) {
dolibarr_del_const ( $db , 'PROJECT_ADDON_PDF' , $conf -> entity );
}
2010-01-12 10:49:41 +01:00
}
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'deltask' ) {
2013-07-17 18:45:58 +02:00
$ret = delDocumentModel ( $value , 'project_task' );
2021-02-26 18:49:22 +01:00
if ( $ret > 0 ) {
if ( $conf -> global -> PROJECT_TASK_ADDON_PDF == " $value " ) {
dolibarr_del_const ( $db , 'PROJECT_TASK_ADDON_PDF' , $conf -> entity );
}
2013-07-17 18:45:58 +02:00
}
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'setdoc' ) {
// Set default model
2019-01-27 11:55:16 +01:00
dolibarr_set_const ( $db , " PROJECT_ADDON_PDF " , $value , 'chaine' , 0 , '' , $conf -> entity );
2010-01-12 10:49:41 +01:00
// On active le modele
2012-04-05 14:49:51 +02:00
$ret = delDocumentModel ( $value , $type );
2021-02-26 18:49:22 +01:00
if ( $ret > 0 ) {
2012-04-05 14:49:51 +02:00
$ret = addDocumentModel ( $value , $type , $label , $scandir );
2010-01-12 10:49:41 +01:00
}
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'setdoctask' ) {
if ( dolibarr_set_const ( $db , " PROJECT_TASK_ADDON_PDF " , $value , 'chaine' , 0 , '' , $conf -> entity )) {
2013-07-17 18:45:58 +02:00
// La constante qui a ete lue en avant du nouveau set
// on passe donc par une variable pour avoir un affichage coherent
$conf -> global -> PROJECT_TASK_ADDON_PDF = $value ;
}
// On active le modele
$ret = delDocumentModel ( $value , 'project_task' );
2021-02-26 18:49:22 +01:00
if ( $ret > 0 ) {
2013-07-17 18:45:58 +02:00
$ret = addDocumentModel ( $value , 'project_task' , $label , $scandir );
}
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'setmod' ) {
2010-10-28 00:41:40 +02:00
// TODO Verifier si module numerotation choisi peut etre active
2010-01-12 10:49:41 +01:00
// par appel methode canBeActivated
2019-01-27 11:55:16 +01:00
dolibarr_set_const ( $db , " PROJECT_ADDON " , $value , 'chaine' , 0 , '' , $conf -> entity );
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'setmodtask' ) {
2013-07-17 18:45:58 +02:00
// TODO Verifier si module numerotation choisi peut etre active
// par appel methode canBeActivated
2019-01-27 11:55:16 +01:00
dolibarr_set_const ( $db , " PROJECT_TASK_ADDON " , $value , 'chaine' , 0 , '' , $conf -> entity );
2021-02-26 18:49:22 +01:00
} elseif ( $action == 'updateoptions' ) {
if ( GETPOST ( 'PROJECT_USE_SEARCH_TO_SELECT' )) {
2015-06-15 10:04:36 +02:00
$companysearch = GETPOST ( 'activate_PROJECT_USE_SEARCH_TO_SELECT' , 'alpha' );
2021-02-26 18:49:22 +01:00
if ( dolibarr_set_const ( $db , " PROJECT_USE_SEARCH_TO_SELECT " , $companysearch , 'chaine' , 0 , '' , $conf -> entity )) {
2015-06-15 10:04:36 +02:00
$conf -> global -> PROJECT_USE_SEARCH_TO_SELECT = $companysearch ;
}
}
2021-02-26 18:49:22 +01:00
if ( GETPOST ( 'PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY' )) {
2019-01-27 11:55:16 +01:00
$projectToSelect = GETPOST ( 'projectToSelect' , 'alpha' );
2020-04-10 10:59:32 +02:00
dolibarr_set_const ( $db , 'PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY' , $projectToSelect , 'chaine' , 0 , '' , $conf -> entity ); //Allow to disable this configuration if empty value
2018-04-23 21:33:49 +02:00
}
2021-02-26 18:49:22 +01:00
} elseif ( preg_match ( '/^(set|del)_?([A-Z_]+)$/' , $action , $reg )) {
// Set boolean (on/off) constants
2021-02-16 14:11:21 +01:00
if ( ! dolibarr_set_const ( $db , $reg [ 2 ], ( $reg [ 1 ] === 'set' ? '1' : '0' ), 'chaine' , 0 , '' , $conf -> entity ) > 0 ) {
dol_print_error ( $db );
}
}
2013-07-17 18:45:58 +02:00
2010-01-12 10:49:41 +01:00
/*
* View
2014-09-29 11:08:50 +02:00
*/
2010-01-12 10:49:41 +01:00
2020-04-10 10:59:32 +02:00
$dirmodels = array_merge ( array ( '/' ), ( array ) $conf -> modules_parts [ 'models' ]);
2012-04-05 11:46:56 +02:00
2019-01-27 11:55:16 +01:00
llxHeader ( " " , $langs -> trans ( " ProjectsSetup " ));
2010-01-12 10:49:41 +01:00
2020-04-10 10:59:32 +02:00
$form = new Form ( $db );
2012-04-05 14:49:51 +02:00
2020-04-10 10:59:32 +02:00
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php?restore_lastsearch_values=1">' . $langs -> trans ( " BackToModuleList " ) . '</a>' ;
2019-01-27 11:55:16 +01:00
print load_fiche_titre ( $langs -> trans ( " ProjectsSetup " ), $linkback , 'title_setup' );
2010-01-12 10:49:41 +01:00
2020-04-10 10:59:32 +02:00
$head = project_admin_prepare_head ();
2010-01-12 10:49:41 +01:00
2020-10-22 22:50:03 +02:00
print dol_get_fiche_head ( $head , 'project' , $langs -> trans ( " Projects " ), - 1 , 'project' );
2013-03-22 17:10:17 +01:00
2015-06-29 16:57:32 +02:00
// Main options
2020-04-10 10:59:32 +02:00
$form = new Form ( $db );
2015-06-29 16:57:32 +02:00
print '<form method="POST" action="' . $_SERVER [ 'PHP_SELF' ] . '">' ;
2019-12-18 23:12:31 +01:00
print '<input type="hidden" name="token" value="' . newToken () . '">' ;
2015-06-29 16:57:32 +02:00
print '<input type="hidden" name="action" value="setmainoptions">' ;
2019-11-05 21:24:41 +01:00
print '<table class="noborder centpercent">' ;
2015-06-29 16:57:32 +02:00
print '<tr class="liste_titre">' ;
print " <td> " . $langs -> trans ( " Parameters " ) . " </td> \n " ;
2019-02-23 22:24:26 +01:00
print '<td class="right" width="60">' . $langs -> trans ( " Value " ) . '</td>' . " \n " ;
2015-06-29 16:57:32 +02:00
print '<td width="80"> </td></tr>' . " \n " ;
2017-04-14 11:22:48 +02:00
print '<tr class="oddeven">' ;
2015-06-29 16:57:32 +02:00
print '<td width="80%">' . $langs -> trans ( " ManageOpportunitiesStatus " ) . '</td>' ;
2019-02-23 22:24:26 +01:00
print '<td width="60" class="right">' ;
2020-04-28 17:34:11 +02:00
print ajax_constantonoff ( " PROJECT_USE_OPPORTUNITIES " );
2019-02-23 22:24:26 +01:00
print '</td><td class="right">' ;
2015-06-29 16:57:32 +02:00
print " </td> " ;
print '</tr>' ;
2017-04-14 11:22:48 +02:00
print '<tr class="oddeven">' ;
2015-06-29 16:57:32 +02:00
print '<td width="80%">' . $langs -> trans ( " ManageTasks " ) . '</td>' ;
2019-02-23 22:24:26 +01:00
print '<td width="60" class="right">' ;
2020-04-28 17:34:11 +02:00
print ajax_constantonoff ( " PROJECT_HIDE_TASKS " , array (), null , 1 );
2019-02-23 22:24:26 +01:00
print '</td><td class="right">' ;
2015-06-29 16:57:32 +02:00
print " </td> " ;
print '</tr>' ;
print '</table></form>' ;
print '<br>' ;
2013-03-22 17:10:17 +01:00
/*
* Projects Numbering model
2014-02-28 21:54:50 +01:00
*/
2013-03-25 19:28:34 +01:00
2016-08-04 10:19:30 +02:00
print load_fiche_titre ( $langs -> trans ( " ProjectsNumberingModules " ), '' , '' );
2010-01-12 10:49:41 +01:00
2019-11-05 21:24:41 +01:00
print '<table class="noborder centpercent">' ;
2010-01-12 10:49:41 +01:00
print '<tr class="liste_titre">' ;
print '<td width="100">' . $langs -> trans ( " Name " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Description " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Example " ) . '</td>' ;
2019-02-23 22:24:26 +01:00
print '<td class="center" width="60">' . $langs -> trans ( " Activated " ) . '</td>' ;
print '<td class="center" width="80">' . $langs -> trans ( " ShortInfo " ) . '</td>' ;
2010-01-12 10:49:41 +01:00
print " </tr> \n " ;
clearstatcache ();
2021-02-26 18:49:22 +01:00
foreach ( $dirmodels as $reldir ) {
2012-04-05 11:46:56 +02:00
$dir = dol_buildpath ( $reldir . " core/modules/project/ " );
2010-01-12 10:49:41 +01:00
2021-02-26 18:49:22 +01:00
if ( is_dir ( $dir )) {
2012-04-05 11:46:56 +02:00
$handle = opendir ( $dir );
2021-02-26 18:49:22 +01:00
if ( is_resource ( $handle )) {
while (( $file = readdir ( $handle )) !== false ) {
if ( preg_match ( '/^(mod_.*)\.php$/i' , $file , $reg )) {
2012-04-05 11:46:56 +02:00
$file = $reg [ 1 ];
2019-01-27 11:55:16 +01:00
$classname = substr ( $file , 4 );
2010-01-12 10:49:41 +01:00
2013-03-22 17:10:17 +01:00
require_once $dir . $file . '.php' ;
2010-01-12 10:49:41 +01:00
2012-04-05 11:46:56 +02:00
$module = new $file ;
2012-04-05 14:49:51 +02:00
// Show modules according to features level
2021-02-26 18:49:22 +01:00
if ( $module -> version == 'development' && $conf -> global -> MAIN_FEATURES_LEVEL < 2 ) {
continue ;
}
if ( $module -> version == 'experimental' && $conf -> global -> MAIN_FEATURES_LEVEL < 1 ) {
continue ;
}
2012-04-05 11:46:56 +02:00
2021-02-26 18:49:22 +01:00
if ( $module -> isEnabled ()) {
2017-04-14 13:02:29 +02:00
print '<tr class="oddeven"><td>' . $module -> name . " </td><td> \n " ;
2012-04-05 11:46:56 +02:00
print $module -> info ();
print '</td>' ;
2013-03-22 17:10:17 +01:00
// Show example of numbering model
2013-04-25 01:13:13 +02:00
print '<td class="nowrap">' ;
2020-04-10 10:59:32 +02:00
$tmp = $module -> getExample ();
2020-11-28 02:09:27 +01:00
if ( preg_match ( '/^Error/' , $tmp )) {
$langs -> load ( " errors " );
print '<div class="error">' . $langs -> trans ( $tmp ) . '</div>' ;
2021-02-26 18:49:22 +01:00
} elseif ( $tmp == 'NotConfigured' ) {
print $langs -> trans ( $tmp );
} else {
print $tmp ;
}
2012-04-05 11:46:56 +02:00
print '</td>' . " \n " ;
2019-02-23 22:24:26 +01:00
print '<td class="center">' ;
2021-02-26 18:49:22 +01:00
if ( $conf -> global -> PROJECT_ADDON == 'mod_' . $classname ) {
2019-01-27 11:55:16 +01:00
print img_picto ( $langs -> trans ( " Activated " ), 'switch_on' );
2020-05-21 15:05:19 +02:00
} else {
2020-09-30 15:13:28 +02:00
print '<a class="reposition" href="' . $_SERVER [ " PHP_SELF " ] . '?action=setmod&token=' . newToken () . '&value=mod_' . $classname . '" alt="' . $langs -> trans ( " Default " ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' ) . '</a>' ;
2012-04-05 11:46:56 +02:00
}
print '</td>' ;
2020-04-10 10:59:32 +02:00
$project = new Project ( $db );
2012-04-05 11:46:56 +02:00
$project -> initAsSpecimen ();
// Info
2020-04-10 10:59:32 +02:00
$htmltooltip = '' ;
$htmltooltip .= '' . $langs -> trans ( " Version " ) . ': <b>' . $module -> getVersion () . '</b><br>' ;
$nextval = $module -> getNextValue ( $mysoc , $project );
2021-02-26 18:49:22 +01:00
if ( " $nextval " != $langs -> trans ( " NotAvailable " )) { // Keep " on nextval
2020-04-10 10:59:32 +02:00
$htmltooltip .= '' . $langs -> trans ( " NextValue " ) . ': ' ;
2021-02-26 18:49:22 +01:00
if ( $nextval ) {
2020-04-10 10:59:32 +02:00
$htmltooltip .= $nextval . '<br>' ;
2020-05-21 15:05:19 +02:00
} else {
2020-04-10 10:59:32 +02:00
$htmltooltip .= $langs -> trans ( $module -> error ) . '<br>' ;
2012-04-05 11:46:56 +02:00
}
}
2019-02-23 22:24:26 +01:00
print '<td class="center">' ;
2019-01-27 11:55:16 +01:00
print $form -> textwithpicto ( '' , $htmltooltip , 1 , 0 );
2012-04-05 11:46:56 +02:00
print '</td>' ;
print '</tr>' ;
2010-01-12 10:49:41 +01:00
}
}
}
2012-04-05 11:46:56 +02:00
closedir ( $handle );
2010-01-12 10:49:41 +01:00
}
}
}
print '</table><br>' ;
2013-07-17 18:45:58 +02:00
2021-02-26 18:49:22 +01:00
if ( empty ( $conf -> global -> PROJECT_HIDE_TASKS )) {
2015-06-29 16:57:32 +02:00
// Task numbering module
2016-08-04 10:19:30 +02:00
print load_fiche_titre ( $langs -> trans ( " TasksNumberingModules " ), '' , '' );
2013-07-17 18:45:58 +02:00
2019-11-05 21:24:41 +01:00
print '<table class="noborder centpercent">' ;
2015-06-29 16:57:32 +02:00
print '<tr class="liste_titre">' ;
print '<td width="100">' . $langs -> trans ( " Name " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Description " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Example " ) . '</td>' ;
2019-02-23 22:24:26 +01:00
print '<td class="center" width="60">' . $langs -> trans ( " Activated " ) . '</td>' ;
print '<td class="center" width="80">' . $langs -> trans ( " ShortInfo " ) . '</td>' ;
2015-06-29 16:57:32 +02:00
print " </tr> \n " ;
2013-07-17 18:45:58 +02:00
2015-06-29 16:57:32 +02:00
clearstatcache ();
2013-07-17 18:45:58 +02:00
2021-02-26 18:49:22 +01:00
foreach ( $dirmodels as $reldir ) {
2015-06-29 16:57:32 +02:00
$dir = dol_buildpath ( $reldir . " core/modules/project/task/ " );
2013-07-17 18:45:58 +02:00
2021-02-26 18:49:22 +01:00
if ( is_dir ( $dir )) {
2015-06-29 16:57:32 +02:00
$handle = opendir ( $dir );
2021-02-26 18:49:22 +01:00
if ( is_resource ( $handle )) {
while (( $file = readdir ( $handle )) !== false ) {
if ( preg_match ( '/^(mod_.*)\.php$/i' , $file , $reg )) {
2015-06-29 16:57:32 +02:00
$file = $reg [ 1 ];
2019-01-27 11:55:16 +01:00
$classname = substr ( $file , 4 );
2013-07-17 18:45:58 +02:00
2016-03-18 15:02:37 +01:00
require_once $dir . $file . '.php' ;
2013-07-17 18:45:58 +02:00
2015-06-29 16:57:32 +02:00
$module = new $file ;
2013-07-17 18:45:58 +02:00
2015-06-29 16:57:32 +02:00
// Show modules according to features level
2021-02-26 18:49:22 +01:00
if ( $module -> version == 'development' && $conf -> global -> MAIN_FEATURES_LEVEL < 2 ) {
continue ;
}
if ( $module -> version == 'experimental' && $conf -> global -> MAIN_FEATURES_LEVEL < 1 ) {
continue ;
}
2013-07-17 18:45:58 +02:00
2021-02-26 18:49:22 +01:00
if ( $module -> isEnabled ()) {
2017-04-14 13:02:29 +02:00
print '<tr class="oddeven"><td>' . $module -> name . " </td><td> \n " ;
2015-06-29 16:57:32 +02:00
print $module -> info ();
print '</td>' ;
// Show example of numbering module
print '<td class="nowrap">' ;
2020-04-10 10:59:32 +02:00
$tmp = $module -> getExample ();
2020-11-28 02:09:27 +01:00
if ( preg_match ( '/^Error/' , $tmp )) {
$langs -> load ( " errors " );
print '<div class="error">' . $langs -> trans ( $tmp ) . '</div>' ;
2021-02-26 18:49:22 +01:00
} elseif ( $tmp == 'NotConfigured' ) {
print $langs -> trans ( $tmp );
} else {
print $tmp ;
}
2015-06-29 16:57:32 +02:00
print '</td>' . " \n " ;
2019-02-23 22:24:26 +01:00
print '<td class="center">' ;
2021-02-26 18:49:22 +01:00
if ( $conf -> global -> PROJECT_TASK_ADDON == 'mod_' . $classname ) {
2019-01-27 11:55:16 +01:00
print img_picto ( $langs -> trans ( " Activated " ), 'switch_on' );
2020-05-21 15:05:19 +02:00
} else {
2020-09-30 15:13:28 +02:00
print '<a class="reposition" href="' . $_SERVER [ " PHP_SELF " ] . '?action=setmodtask&token=' . newToken () . '&value=mod_' . $classname . '" alt="' . $langs -> trans ( " Default " ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' ) . '</a>' ;
2013-07-17 18:45:58 +02:00
}
2015-06-29 16:57:32 +02:00
print '</td>' ;
2013-07-17 18:45:58 +02:00
2020-04-10 10:59:32 +02:00
$project = new Project ( $db );
2015-06-29 16:57:32 +02:00
$project -> initAsSpecimen ();
2013-07-17 18:45:58 +02:00
2015-06-29 16:57:32 +02:00
// Info
2020-04-10 10:59:32 +02:00
$htmltooltip = '' ;
$htmltooltip .= '' . $langs -> trans ( " Version " ) . ': <b>' . $module -> getVersion () . '</b><br>' ;
$nextval = $module -> getNextValue ( $mysoc , $project );
2021-02-26 18:49:22 +01:00
if ( " $nextval " != $langs -> trans ( " NotAvailable " )) { // Keep " on nextval
2020-04-10 10:59:32 +02:00
$htmltooltip .= '' . $langs -> trans ( " NextValue " ) . ': ' ;
2021-02-26 18:49:22 +01:00
if ( $nextval ) {
2020-04-10 10:59:32 +02:00
$htmltooltip .= $nextval . '<br>' ;
2020-05-21 15:05:19 +02:00
} else {
2020-04-10 10:59:32 +02:00
$htmltooltip .= $langs -> trans ( $module -> error ) . '<br>' ;
2015-06-29 16:57:32 +02:00
}
}
2019-02-23 22:24:26 +01:00
print '<td class="center">' ;
2019-01-27 11:55:16 +01:00
print $form -> textwithpicto ( '' , $htmltooltip , 1 , 0 );
2015-06-29 16:57:32 +02:00
print '</td>' ;
print '</tr>' ;
}
2013-07-17 18:45:58 +02:00
}
}
2015-06-29 16:57:32 +02:00
closedir ( $handle );
2013-07-17 18:45:58 +02:00
}
}
}
2015-06-29 16:57:32 +02:00
print '</table><br>' ;
2013-07-17 18:45:58 +02:00
}
2010-01-12 10:49:41 +01:00
/*
2013-03-22 17:10:17 +01:00
* Document templates generators
2015-06-29 16:57:32 +02:00
*/
2010-01-12 10:49:41 +01:00
2016-08-04 10:19:30 +02:00
print load_fiche_titre ( $langs -> trans ( " ProjectsModelModule " ), '' , '' );
2010-01-12 10:49:41 +01:00
// Defini tableau def de modele
2020-04-10 10:59:32 +02:00
$type = 'project' ;
2010-01-12 10:49:41 +01:00
$def = array ();
$sql = " SELECT nom " ;
2020-04-10 10:59:32 +02:00
$sql .= " FROM " . MAIN_DB_PREFIX . " document_model " ;
2020-09-20 03:32:43 +02:00
$sql .= " WHERE type = ' " . $db -> escape ( $type ) . " ' " ;
2020-04-10 10:59:32 +02:00
$sql .= " AND entity = " . $conf -> entity ;
2010-01-12 10:49:41 +01:00
2020-04-10 10:59:32 +02:00
$resql = $db -> query ( $sql );
2021-02-26 18:49:22 +01:00
if ( $resql ) {
2010-01-12 10:49:41 +01:00
$i = 0 ;
2020-04-10 10:59:32 +02:00
$num_rows = $db -> num_rows ( $resql );
2021-02-26 18:49:22 +01:00
while ( $i < $num_rows ) {
2010-01-12 10:49:41 +01:00
$array = $db -> fetch_array ( $resql );
array_push ( $def , $array [ 0 ]);
$i ++ ;
}
2020-05-21 15:05:19 +02:00
} else {
2010-01-12 10:49:41 +01:00
dol_print_error ( $db );
}
print " <table class= \" noborder \" width= \" 100% \" > \n " ;
print " <tr class= \" liste_titre \" > \n " ;
print ' <td width="100">' . $langs -> trans ( " Name " ) . " </td> \n " ;
print " <td> " . $langs -> trans ( " Description " ) . " </td> \n " ;
2019-02-23 22:24:26 +01:00
print '<td class="center" width="60">' . $langs -> trans ( " Activated " ) . " </td> \n " ;
print '<td class="center" width="60">' . $langs -> trans ( " Default " ) . " </td> \n " ;
print '<td class="center" width="80">' . $langs -> trans ( " ShortInfo " ) . '</td>' ;
print '<td class="center" width="80">' . $langs -> trans ( " Preview " ) . '</td>' ;
2010-01-12 10:49:41 +01:00
print " </tr> \n " ;
clearstatcache ();
2021-02-26 18:49:22 +01:00
foreach ( $dirmodels as $reldir ) {
foreach ( array ( '' , '/doc' ) as $valdir ) {
2014-09-29 11:08:50 +02:00
$dir = dol_buildpath ( $reldir . " core/modules/project/ " . $valdir );
2021-02-26 18:49:22 +01:00
if ( is_dir ( $dir )) {
2020-04-10 10:59:32 +02:00
$handle = opendir ( $dir );
2021-02-26 18:49:22 +01:00
if ( is_resource ( $handle )) {
while (( $file = readdir ( $handle )) !== false ) {
2020-04-10 10:59:32 +02:00
$filelist [] = $file ;
2014-09-29 11:08:50 +02:00
}
closedir ( $handle );
arsort ( $filelist );
2013-03-25 19:28:34 +01:00
2021-02-26 18:49:22 +01:00
foreach ( $filelist as $file ) {
if ( preg_match ( '/\.modules\.php$/i' , $file ) && preg_match ( '/^(pdf_|doc_)/' , $file )) {
if ( file_exists ( $dir . '/' . $file )) {
2020-04-10 10:59:32 +02:00
$name = substr ( $file , 4 , dol_strlen ( $file ) - 16 );
$classname = substr ( $file , 0 , dol_strlen ( $file ) - 12 );
2013-03-25 19:28:34 +01:00
2014-09-29 11:08:50 +02:00
require_once $dir . '/' . $file ;
$module = new $classname ( $db );
2013-03-25 19:28:34 +01:00
2020-04-10 10:59:32 +02:00
$modulequalified = 1 ;
2021-02-26 18:49:22 +01:00
if ( $module -> version == 'development' && $conf -> global -> MAIN_FEATURES_LEVEL < 2 ) {
$modulequalified = 0 ;
}
if ( $module -> version == 'experimental' && $conf -> global -> MAIN_FEATURES_LEVEL < 1 ) {
$modulequalified = 0 ;
}
2014-09-29 11:08:50 +02:00
2021-02-26 18:49:22 +01:00
if ( $modulequalified ) {
2017-04-14 13:02:29 +02:00
print '<tr class="oddeven"><td width="100">' ;
2020-04-10 10:59:32 +02:00
print ( empty ( $module -> name ) ? $name : $module -> name );
2014-09-29 11:08:50 +02:00
print " </td><td> \n " ;
2021-02-26 18:49:22 +01:00
if ( method_exists ( $module , 'info' )) {
print $module -> info ( $langs );
} else {
print $module -> description ;
}
2014-09-29 11:08:50 +02:00
print " </td> \n " ;
// Active
2021-02-26 18:49:22 +01:00
if ( in_array ( $name , $def )) {
2019-02-23 22:24:26 +01:00
print " <td class= \" center \" > \n " ;
2020-09-30 15:13:28 +02:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=del&token=' . newToken () . '&value=' . $name . '&scan_dir=' . $module -> scandir . '&label=' . urlencode ( $module -> name ) . '">' ;
2019-01-27 11:55:16 +01:00
print img_picto ( $langs -> trans ( " Enabled " ), 'switch_on' );
2014-09-29 11:08:50 +02:00
print '</a>' ;
print " </td> " ;
2020-05-21 15:05:19 +02:00
} else {
2019-02-23 22:24:26 +01:00
print " <td class= \" center \" > \n " ;
2020-09-30 15:13:28 +02:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=set&token=' . newToken () . '&value=' . $name . '&scan_dir=' . $module -> scandir . '&label=' . urlencode ( $module -> name ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' ) . '</a>' ;
2014-09-29 11:08:50 +02:00
print " </td> " ;
}
// Default
2019-02-23 22:24:26 +01:00
print " <td class= \" center \" > " ;
2021-02-26 18:49:22 +01:00
if ( $conf -> global -> PROJECT_ADDON_PDF == " $name " ) {
2019-01-27 11:55:16 +01:00
print img_picto ( $langs -> trans ( " Default " ), 'on' );
2020-05-21 15:05:19 +02:00
} else {
2020-09-30 15:13:28 +02:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=setdoc&token=' . newToken () . '&value=' . $name . '&scan_dir=' . $module -> scandir . '&label=' . urlencode ( $module -> name ) . '" alt="' . $langs -> trans ( " Default " ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'off' ) . '</a>' ;
2014-09-29 11:08:50 +02:00
}
print '</td>' ;
// Info
2020-04-10 10:59:32 +02:00
$htmltooltip = '' . $langs -> trans ( " Name " ) . ': ' . $module -> name ;
$htmltooltip .= '<br>' . $langs -> trans ( " Type " ) . ': ' . ( $module -> type ? $module -> type : $langs -> trans ( " Unknown " ));
2021-02-26 18:49:22 +01:00
if ( $module -> type == 'pdf' ) {
2020-04-10 10:59:32 +02:00
$htmltooltip .= '<br>' . $langs -> trans ( " Width " ) . '/' . $langs -> trans ( " Height " ) . ': ' . $module -> page_largeur . '/' . $module -> page_hauteur ;
2014-09-29 11:08:50 +02:00
}
2020-04-10 10:59:32 +02:00
$htmltooltip .= '<br><br><u>' . $langs -> trans ( " FeaturesSupported " ) . ':</u>' ;
$htmltooltip .= '<br>' . $langs -> trans ( " Logo " ) . ': ' . yn ( $module -> option_logo , 1 , 1 );
2014-09-29 11:08:50 +02:00
2019-02-23 22:24:26 +01:00
print '<td class="center">' ;
2019-01-27 11:55:16 +01:00
print $form -> textwithpicto ( '' , $htmltooltip , 1 , 0 );
2014-09-29 11:08:50 +02:00
print '</td>' ;
// Preview
2019-02-23 22:24:26 +01:00
print '<td class="center">' ;
2021-02-26 18:49:22 +01:00
if ( $module -> type == 'pdf' ) {
2019-01-27 11:55:16 +01:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=specimen&module=' . $name . '">' . img_object ( $langs -> trans ( " Preview " ), 'bill' ) . '</a>' ;
2020-05-21 15:05:19 +02:00
} else {
2019-01-27 11:55:16 +01:00
print img_object ( $langs -> trans ( " PreviewNotAvailable " ), 'generic' );
2014-09-29 11:08:50 +02:00
}
print '</td>' ;
print " </tr> \n " ;
2013-03-25 19:28:34 +01:00
}
2014-09-29 11:08:50 +02:00
}
2013-07-17 18:45:58 +02:00
}
}
}
}
}
}
2021-04-19 21:30:25 +02:00
print '</table><br>' ;
2013-07-17 18:45:58 +02:00
2021-02-26 18:49:22 +01:00
if ( empty ( $conf -> global -> PROJECT_HIDE_TASKS )) {
2015-06-29 16:57:32 +02:00
/*
* Modeles documents for Task
*/
2013-07-17 18:45:58 +02:00
2016-08-04 10:19:30 +02:00
print load_fiche_titre ( $langs -> trans ( " TaskModelModule " ), '' , '' );
2013-07-17 18:45:58 +02:00
2015-06-29 16:57:32 +02:00
// Defini tableau def de modele
2020-04-10 10:59:32 +02:00
$type = 'project_task' ;
2015-06-29 16:57:32 +02:00
$def = array ();
$sql = " SELECT nom " ;
2020-04-10 10:59:32 +02:00
$sql .= " FROM " . MAIN_DB_PREFIX . " document_model " ;
2020-09-20 03:32:43 +02:00
$sql .= " WHERE type = ' " . $db -> escape ( $type ) . " ' " ;
2020-04-10 10:59:32 +02:00
$sql .= " AND entity = " . $conf -> entity ;
2015-06-29 16:57:32 +02:00
2020-04-10 10:59:32 +02:00
$resql = $db -> query ( $sql );
2021-02-26 18:49:22 +01:00
if ( $resql ) {
2015-06-29 16:57:32 +02:00
$i = 0 ;
2020-04-10 10:59:32 +02:00
$num_rows = $db -> num_rows ( $resql );
2021-02-26 18:49:22 +01:00
while ( $i < $num_rows ) {
2015-06-29 16:57:32 +02:00
$array = $db -> fetch_array ( $resql );
array_push ( $def , $array [ 0 ]);
$i ++ ;
}
2020-05-21 15:05:19 +02:00
} else {
2015-06-29 16:57:32 +02:00
dol_print_error ( $db );
2013-07-17 18:45:58 +02:00
}
2015-06-29 16:57:32 +02:00
print " <table class= \" noborder \" width= \" 100% \" > \n " ;
print " <tr class= \" liste_titre \" > \n " ;
print ' <td width="100">' . $langs -> trans ( " Name " ) . " </td> \n " ;
print " <td> " . $langs -> trans ( " Description " ) . " </td> \n " ;
2019-02-23 22:24:26 +01:00
print '<td class="center" width="60">' . $langs -> trans ( " Activated " ) . " </td> \n " ;
print '<td class="center" width="60">' . $langs -> trans ( " Default " ) . " </td> \n " ;
print '<td class="center" width="80">' . $langs -> trans ( " ShortInfo " ) . '</td>' ;
print '<td class="center" width="80">' . $langs -> trans ( " Preview " ) . '</td>' ;
2015-06-29 16:57:32 +02:00
print " </tr> \n " ;
2013-07-17 18:45:58 +02:00
2015-06-29 16:57:32 +02:00
clearstatcache ();
2013-07-17 18:45:58 +02:00
2021-02-26 18:49:22 +01:00
foreach ( $dirmodels as $reldir ) {
foreach ( array ( '' , '/doc' ) as $valdir ) {
2015-06-29 16:57:32 +02:00
$dir = dol_buildpath ( $reldir . " core/modules/project/task/ " . $valdir );
2021-02-26 18:49:22 +01:00
if ( is_dir ( $dir )) {
2020-04-10 10:59:32 +02:00
$handle = opendir ( $dir );
2021-02-26 18:49:22 +01:00
if ( is_resource ( $handle )) {
while (( $file = readdir ( $handle )) !== false ) {
2020-04-10 10:59:32 +02:00
$filelist [] = $file ;
2015-06-29 16:57:32 +02:00
}
closedir ( $handle );
arsort ( $filelist );
2013-07-17 18:45:58 +02:00
2021-02-26 18:49:22 +01:00
foreach ( $filelist as $file ) {
if ( preg_match ( '/\.modules\.php$/i' , $file ) && preg_match ( '/^(pdf_|doc_)/' , $file )) {
if ( file_exists ( $dir . '/' . $file )) {
2020-04-10 10:59:32 +02:00
$name = substr ( $file , 4 , dol_strlen ( $file ) - 16 );
$classname = substr ( $file , 0 , dol_strlen ( $file ) - 12 );
2014-09-29 11:08:50 +02:00
2015-06-29 16:57:32 +02:00
require_once $dir . '/' . $file ;
$module = new $classname ( $db );
2014-09-29 11:08:50 +02:00
2020-04-10 10:59:32 +02:00
$modulequalified = 1 ;
2021-02-26 18:49:22 +01:00
if ( $module -> version == 'development' && $conf -> global -> MAIN_FEATURES_LEVEL < 2 ) {
$modulequalified = 0 ;
}
if ( $module -> version == 'experimental' && $conf -> global -> MAIN_FEATURES_LEVEL < 1 ) {
$modulequalified = 0 ;
}
2014-09-29 11:08:50 +02:00
2021-02-26 18:49:22 +01:00
if ( $modulequalified ) {
2017-04-14 13:02:29 +02:00
print '<tr class="oddeven"><td width="100">' ;
2020-04-10 10:59:32 +02:00
print ( empty ( $module -> name ) ? $name : $module -> name );
2015-06-29 16:57:32 +02:00
print " </td><td> \n " ;
2021-02-26 18:49:22 +01:00
if ( method_exists ( $module , 'info' )) {
print $module -> info ( $langs );
} else {
print $module -> description ;
}
2015-06-29 16:57:32 +02:00
print " </td> \n " ;
// Active
2021-02-26 18:49:22 +01:00
if ( in_array ( $name , $def )) {
2019-02-23 22:24:26 +01:00
print " <td class= \" center \" > \n " ;
2017-08-23 10:07:00 +02:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=deltask&value=' . $name . '&scan_dir=' . $module -> scandir . '&label=' . urlencode ( $module -> name ) . '">' ;
2019-01-27 11:55:16 +01:00
print img_picto ( $langs -> trans ( " Enabled " ), 'switch_on' );
2015-06-29 16:57:32 +02:00
print '</a>' ;
print " </td> " ;
2020-05-21 15:05:19 +02:00
} else {
2019-02-23 22:24:26 +01:00
print " <td class= \" center \" > \n " ;
2020-09-30 15:13:28 +02:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=settask&token=' . newToken () . '&value=' . $name . '&scan_dir=' . $module -> scandir . '&label=' . urlencode ( $module -> name ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' ) . '</a>' ;
2015-06-29 16:57:32 +02:00
print " </td> " ;
}
// Defaut
2019-02-23 22:24:26 +01:00
print " <td class= \" center \" > " ;
2021-02-26 18:49:22 +01:00
if ( $conf -> global -> PROJECT_TASK_ADDON_PDF == " $name " ) {
2019-01-27 11:55:16 +01:00
print img_picto ( $langs -> trans ( " Default " ), 'on' );
2020-05-21 15:05:19 +02:00
} else {
2020-09-30 15:13:28 +02:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=setdoctask&token=' . newToken () . '&value=' . $name . '&scan_dir=' . $module -> scandir . '&label=' . urlencode ( $module -> name ) . '" alt="' . $langs -> trans ( " Default " ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'off' ) . '</a>' ;
2015-06-29 16:57:32 +02:00
}
print '</td>' ;
// Info
2020-04-10 10:59:32 +02:00
$htmltooltip = '' . $langs -> trans ( " Name " ) . ': ' . $module -> name ;
$htmltooltip .= '<br>' . $langs -> trans ( " Type " ) . ': ' . ( $module -> type ? $module -> type : $langs -> trans ( " Unknown " ));
2021-02-26 18:49:22 +01:00
if ( $module -> type == 'pdf' ) {
2020-04-10 10:59:32 +02:00
$htmltooltip .= '<br>' . $langs -> trans ( " Width " ) . '/' . $langs -> trans ( " Height " ) . ': ' . $module -> page_largeur . '/' . $module -> page_hauteur ;
2015-06-29 16:57:32 +02:00
}
2020-04-10 10:59:32 +02:00
$htmltooltip .= '<br><br><u>' . $langs -> trans ( " FeaturesSupported " ) . ':</u>' ;
$htmltooltip .= '<br>' . $langs -> trans ( " Logo " ) . ': ' . yn ( $module -> option_logo , 1 , 1 );
2015-06-29 16:57:32 +02:00
2019-02-23 22:24:26 +01:00
print '<td class="center">' ;
2019-01-27 11:55:16 +01:00
print $form -> textwithpicto ( '' , $htmltooltip , 1 , 0 );
2015-06-29 16:57:32 +02:00
print '</td>' ;
// Preview
2019-02-23 22:24:26 +01:00
print '<td class="center">' ;
2021-02-26 18:49:22 +01:00
if ( $module -> type == 'pdf' ) {
2019-01-27 11:55:16 +01:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=specimentask&module=' . $name . '">' . img_object ( $langs -> trans ( " Preview " ), 'bill' ) . '</a>' ;
2020-05-21 15:05:19 +02:00
} else {
2019-01-27 11:55:16 +01:00
print img_object ( $langs -> trans ( " PreviewNotAvailable " ), 'generic' );
2015-06-29 16:57:32 +02:00
}
print '</td>' ;
print " </tr> \n " ;
2014-09-29 11:08:50 +02:00
}
2013-07-17 18:45:58 +02:00
}
2013-03-25 19:28:34 +01:00
}
2012-04-05 11:46:56 +02:00
}
}
}
}
}
2015-06-29 16:57:32 +02:00
2021-04-19 21:30:25 +02:00
print '</table><br>' ;
2010-01-12 10:49:41 +01:00
}
2016-08-04 10:19:30 +02:00
print load_fiche_titre ( $langs -> trans ( " Other " ), '' , '' );
2015-06-15 10:04:36 +02:00
// Other options
2020-04-10 10:59:32 +02:00
$form = new Form ( $db );
2015-06-15 10:04:36 +02:00
print '<form method="POST" action="' . $_SERVER [ 'PHP_SELF' ] . '">' ;
2019-12-18 23:12:31 +01:00
print '<input type="hidden" name="token" value="' . newToken () . '">' ;
2015-06-15 10:04:36 +02:00
print '<input type="hidden" name="action" value="updateoptions">' ;
2019-11-05 21:24:41 +01:00
print '<table class="noborder centpercent">' ;
2015-06-15 10:04:36 +02:00
print '<tr class="liste_titre">' ;
print " <td> " . $langs -> trans ( " Parameters " ) . " </td> \n " ;
2019-02-23 22:24:26 +01:00
print '<td class="right" width="60">' . $langs -> trans ( " Value " ) . '</td>' . " \n " ;
2015-06-15 10:04:36 +02:00
print '<td width="80"> </td></tr>' . " \n " ;
2017-04-14 11:22:48 +02:00
print '<tr class="oddeven">' ;
2015-06-15 10:04:36 +02:00
print '<td width="80%">' . $langs -> trans ( " UseSearchToSelectProject " ) . '</td>' ;
2021-02-26 18:49:22 +01:00
if ( ! $conf -> use_javascript_ajax ) {
2019-02-23 22:24:26 +01:00
print '<td class="nowrap right" colspan="2">' ;
2015-06-15 10:04:36 +02:00
print $langs -> trans ( " NotAvailableWhenAjaxDisabled " );
print " </td> " ;
2020-05-21 15:05:19 +02:00
} else {
2019-02-23 22:24:26 +01:00
print '<td width="60" class="right">' ;
2020-04-10 10:59:32 +02:00
$arrval = array ( '0' => $langs -> trans ( " No " ),
2019-01-27 11:55:16 +01:00
'1' => $langs -> trans ( " Yes " ) . ' (' . $langs -> trans ( " NumberOfKeyToSearch " , 1 ) . ')' ,
'2' => $langs -> trans ( " Yes " ) . ' (' . $langs -> trans ( " NumberOfKeyToSearch " , 2 ) . ')' ,
'3' => $langs -> trans ( " Yes " ) . ' (' . $langs -> trans ( " NumberOfKeyToSearch " , 3 ) . ')' ,
2015-06-15 10:04:36 +02:00
);
2019-01-27 11:55:16 +01:00
print $form -> selectarray ( " activate_PROJECT_USE_SEARCH_TO_SELECT " , $arrval , $conf -> global -> PROJECT_USE_SEARCH_TO_SELECT );
2019-02-23 22:24:26 +01:00
print '</td><td class="right">' ;
2015-06-15 10:04:36 +02:00
print '<input type="submit" class="button" name="PROJECT_USE_SEARCH_TO_SELECT" value="' . $langs -> trans ( " Modify " ) . '">' ;
print " </td> " ;
}
2016-04-29 18:04:59 +02:00
print '</tr>' ;
2017-04-14 11:22:48 +02:00
print '<tr class="oddeven">' ;
2016-04-29 18:04:59 +02:00
print '<td>' . $langs -> trans ( " AllowToSelectProjectFromOtherCompany " ) . '</td>' ;
2019-02-23 22:24:26 +01:00
print '<td class="right" width="60" colspan="2">' ;
2017-12-04 17:43:35 +01:00
print '<input type="text" id="projectToSelect" name="projectToSelect" value="' . $conf -> global -> PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY . '"/> ' ;
print $form -> textwithpicto ( '' , $langs -> trans ( 'AllowToLinkFromOtherCompany' ));
print '<input type="submit" class="button" name="PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY" value="' . $langs -> trans ( " Modify " ) . '">' ;
2016-04-29 18:04:59 +02:00
print '</td>' ;
2021-02-16 14:11:21 +01:00
$key = 'PROJECT_CLASSIFY_CLOSED_WHEN_ALL_TASKS_DONE' ;
echo '<tr class="oddeven">' ,
'<td class="left">' ,
$form -> textwithpicto ( $langs -> transnoentities ( $key ), $langs -> transnoentities ( $key . '_help' )),
'</td>' ,
'<td class="right" colspan="2">' ,
ajax_constantonoff ( $key ),
'</td>' ,
'</tr>' ;
2017-12-12 10:13:48 +01:00
print '</table>' ;
print '</form>' ;
2016-04-29 18:04:59 +02:00
2018-08-15 12:48:13 +02:00
// End of page
2011-08-27 16:24:16 +02:00
llxFooter ();
2015-12-11 19:37:12 +01:00
$db -> close ();