2017-04-08 14:18:10 +02:00
< ? php
2017-06-16 17:01:43 +02:00
/* Copyright ( C ) 2017 Laurent Destailleur < eldy @ users . sourceforge . net >
* Copyright ( C ) 2017 Regis Houssin < regis . houssin @ capnetworks . com >
2017-04-08 14:18:10 +02: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
* along with this program . If not , see < http :// www . gnu . org / licenses />.
*/
/**
* \file htdocs / admin / defaultvalues . php
* \brief Page to set default values used used in a create form
*/
require '../main.inc.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formadmin.class.php' ;
$langs -> load ( " companies " );
$langs -> load ( " products " );
$langs -> load ( " admin " );
$langs -> load ( " sms " );
$langs -> load ( " other " );
$langs -> load ( " errors " );
if ( ! $user -> admin ) accessforbidden ();
$id = GETPOST ( 'rowid' , 'int' );
$action = GETPOST ( 'action' , 'alpha' );
2017-05-06 01:09:22 +02:00
$mode = GETPOST ( 'mode' ) ? GETPOST ( 'mode' ) : 'createform' ; // 'createform', 'filters', 'sortorder', 'focus'
2017-04-08 14:18:10 +02:00
2017-06-08 14:55:12 +02:00
$limit = GETPOST ( 'limit' , 'int' ) ? GETPOST ( 'limit' , 'int' ) : $conf -> liste_limit ;
2017-04-08 14:18:10 +02:00
$sortfield = GETPOST ( " sortfield " , 'alpha' );
$sortorder = GETPOST ( " sortorder " , 'alpha' );
$page = GETPOST ( " page " , 'int' );
2017-06-06 10:53:53 +02:00
if ( empty ( $page ) || $page == - 1 ) { $page = 0 ; } // If $page is not defined, or '' or -1
2017-04-08 14:18:10 +02:00
$offset = $limit * $page ;
$pageprev = $page - 1 ;
$pagenext = $page + 1 ;
2017-04-14 11:22:48 +02:00
if ( ! $sortfield ) $sortfield = 'page,param' ;
2017-04-08 14:18:10 +02:00
if ( ! $sortorder ) $sortorder = 'ASC' ;
2017-04-10 12:51:52 +02:00
$defaulturl = GETPOST ( 'defaulturl' );
$defaultkey = GETPOST ( 'defaultkey' , 'alpha' );
$defaultvalue = GETPOST ( 'defaultvalue' );
2017-04-14 11:22:48 +02:00
$defaulturl = preg_replace ( '/^\//' , '' , $defaulturl );
2017-04-29 00:44:25 +02:00
$urlpage = GETPOST ( 'urlpage' );
$key = GETPOST ( 'key' );
$value = GETPOST ( 'value' );
2017-06-16 17:01:43 +02:00
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
$hookmanager -> initHooks ( array ( 'admindefaultvalues' , 'globaladmin' ));
2017-04-08 14:18:10 +02:00
/*
* Actions
*/
2017-09-15 10:50:50 +02:00
if ( GETPOST ( 'cancel' , 'alpha' )) { $action = 'list' ; $massaction = '' ; }
if ( ! GETPOST ( 'confirmmassaction' , 'alpha' ) && $massaction != 'presend' && $massaction != 'confirm_presend' ) { $massaction = '' ; }
2017-04-08 14:18:10 +02:00
$parameters = array ( 'socid' => $socid );
$reshook = $hookmanager -> executeHooks ( 'doActions' , $parameters , $object , $action ); // Note that $action and $object may have been modified by some hooks
if ( $reshook < 0 ) setEventMessages ( $hookmanager -> error , $hookmanager -> errors , 'errors' );
include DOL_DOCUMENT_ROOT . '/core/actions_changeselectedfields.inc.php' ;
// Purge search criteria
2017-07-13 00:35:10 +02:00
if ( GETPOST ( 'button_removefilter_x' , 'alpha' ) || GETPOST ( 'button_removefilter.x' , 'alpha' ) || GETPOST ( 'button_removefilter' , 'alpha' )) // All tests are required to be compatible with all browsers
2017-04-08 14:18:10 +02:00
{
2017-04-10 12:51:52 +02:00
$defaulturl = '' ;
$defaultkey = '' ;
$defaultvalue = '' ;
2017-04-08 14:18:10 +02:00
$toselect = '' ;
$search_array_options = array ();
}
2017-05-06 17:08:38 +02:00
if ( $action == 'setMAIN_ENABLE_DEFAULT_VALUES' )
{
if ( GETPOST ( 'value' )) dolibarr_set_const ( $db , 'MAIN_ENABLE_DEFAULT_VALUES' , 1 , 'chaine' , 0 , '' , $conf -> entity );
else dolibarr_set_const ( $db , 'MAIN_ENABLE_DEFAULT_VALUES' , 0 , 'chaine' , 0 , '' , $conf -> entity );
}
2017-04-08 14:18:10 +02:00
2017-04-29 00:44:25 +02:00
if (( $action == 'add' || ( GETPOST ( 'add' ) && $action != 'update' )) || GETPOST ( 'actionmodify' ))
2017-04-08 14:18:10 +02:00
{
$error = 0 ;
2017-04-29 00:44:25 +02:00
if (( $action == 'add' || ( GETPOST ( 'add' ) && $action != 'update' )))
2017-04-08 14:18:10 +02:00
{
2017-04-29 00:44:25 +02:00
if ( empty ( $defaulturl ))
{
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " Url " )), null , 'errors' );
$error ++ ;
}
if ( empty ( $defaultkey ))
{
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " Field " )), null , 'errors' );
$error ++ ;
}
2017-04-08 14:18:10 +02:00
}
2017-04-29 00:44:25 +02:00
if ( GETPOST ( 'actionmodify' ))
2017-04-08 14:18:10 +02:00
{
2017-04-29 00:44:25 +02:00
if ( empty ( $urlpage ))
{
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " Url " )), null , 'errors' );
$error ++ ;
}
if ( empty ( $key ))
{
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " Field " )), null , 'errors' );
$error ++ ;
}
2017-04-08 14:18:10 +02:00
}
2017-06-01 01:53:55 +02:00
2017-04-08 14:18:10 +02:00
if ( ! $error )
{
2017-04-14 11:22:48 +02:00
$db -> begin ();
2017-06-01 01:53:55 +02:00
2017-04-29 00:44:25 +02:00
if ( $action == 'add' || ( GETPOST ( 'add' ) && $action != 'update' ))
{
$sql = " INSERT INTO " . MAIN_DB_PREFIX . " default_values(type, user_id, page, param, value, entity) VALUES (' " . $db -> escape ( $mode ) . " ', 0, ' " . $db -> escape ( $defaulturl ) . " ',' " . $db -> escape ( $defaultkey ) . " ',' " . $db -> escape ( $defaultvalue ) . " ', " . $db -> escape ( $conf -> entity ) . " ) " ;
}
if ( GETPOST ( 'actionmodify' ))
{
$sql = " UPDATE " . MAIN_DB_PREFIX . " default_values SET page = ' " . $db -> escape ( $urlpage ) . " ', param = ' " . $db -> escape ( $key ) . " ', value = ' " . $db -> escape ( $value ) . " ' " ;
$sql .= " WHERE rowid = " . $id ;
}
2017-06-01 01:53:55 +02:00
2017-04-14 11:22:48 +02:00
$result = $db -> query ( $sql );
2017-04-08 14:18:10 +02:00
if ( $result > 0 )
{
2017-04-14 11:22:48 +02:00
$db -> commit ();
2017-04-08 14:18:10 +02:00
setEventMessages ( $langs -> trans ( " RecordSaved " ), null , 'mesgs' );
$action = " " ;
2017-04-10 12:51:52 +02:00
$defaulturl = '' ;
$defaultkey = '' ;
$defaultvalue = '' ;
2017-04-08 14:18:10 +02:00
}
else
{
2017-04-14 11:22:48 +02:00
$db -> rollback ();
setEventMessages ( $db -> lasterror (), null , 'errors' );
2017-04-08 14:18:10 +02:00
$action = '' ;
}
}
}
// Delete line from delete picto
if ( $action == 'delete' )
{
2017-04-14 11:22:48 +02:00
$sql = " DELETE FROM " . MAIN_DB_PREFIX . " default_values WHERE rowid = " . $db -> escape ( $id );
2017-04-10 13:14:31 +02:00
// Delete const
2017-04-08 14:18:10 +02:00
$result = $db -> query ( $sql );
if ( $result >= 0 )
{
setEventMessages ( $langs -> trans ( " RecordDeleted " ), null , 'mesgs' );
}
else
{
dol_print_error ( $db );
}
}
/*
* View
*/
2017-04-10 12:51:52 +02:00
$form = new Form ( $db );
2017-04-08 14:18:10 +02:00
$formadmin = new FormAdmin ( $db );
$wikihelp = 'EN:Setup|FR:Paramétrage|ES:Configuración' ;
llxHeader ( '' , $langs -> trans ( " Setup " ), $wikihelp );
2017-06-10 00:05:47 +02:00
$param = '&mode=' . $mode ;
2017-04-08 14:18:10 +02:00
2017-06-10 00:05:47 +02:00
$enabledisablehtml .= $langs -> trans ( " EnableDefaultValues " ) . ' ' ;
2017-05-06 17:08:38 +02:00
if ( empty ( $conf -> global -> MAIN_ENABLE_DEFAULT_VALUES ))
{
// Button off, click to enable
2017-06-10 00:05:47 +02:00
$enabledisablehtml .= '<a class="reposition" href="' . $_SERVER [ " PHP_SELF " ] . '?action=setMAIN_ENABLE_DEFAULT_VALUES&value=1' . $param . '">' ;
2017-10-31 11:50:56 +01:00
$enabledisablehtml .= img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' );
2017-06-10 00:05:47 +02:00
$enabledisablehtml .= '</a>' ;
2017-05-06 17:08:38 +02:00
}
else
{
// Button on, click to disable
2017-06-10 00:05:47 +02:00
$enabledisablehtml .= '<a class="reposition" href="' . $_SERVER [ " PHP_SELF " ] . '?action=setMAIN_ENABLE_DEFAULT_VALUES&value=0' . $param . '">' ;
2017-10-31 11:50:56 +01:00
$enabledisablehtml .= img_picto ( $langs -> trans ( " Activated " ), 'switch_on' );
2017-06-10 00:05:47 +02:00
$enabledisablehtml .= '</a>' ;
2017-05-06 17:08:38 +02:00
}
2017-06-10 00:05:47 +02:00
print load_fiche_titre ( $langs -> trans ( " DefaultValues " ), $enabledisablehtml , 'title_setup' );
print $langs -> trans ( " DefaultValuesDesc " ) . " <br> \n " ;
print " <br> \n " ;
2017-04-08 14:18:10 +02:00
if ( ! empty ( $contextpage ) && $contextpage != $_SERVER [ " PHP_SELF " ]) $param .= '&contextpage=' . $contextpage ;
if ( $limit > 0 && $limit != $conf -> liste_limit ) $param .= '&limit=' . $limit ;
2017-04-10 12:51:52 +02:00
if ( $optioncss != '' ) $param .= '&optioncss=' . $optioncss ;
if ( defaulturl ) $param .= '&defaulturl=' . urlencode ( defaulturl );
if ( defaultkey ) $param .= '&defaultkey=' . urlencode ( defaultkey );
if ( defaultvalue ) $param .= '&defaultvalue=' . urlencode ( defaultvalue );
2017-04-08 14:18:10 +02:00
print '<form action="' . $_SERVER [ " PHP_SELF " ] . (( empty ( $user -> entity ) && $debug ) ? '?debug=1' : '' ) . '" method="POST">' ;
if ( $optioncss != '' ) print '<input type="hidden" name="optioncss" value="' . $optioncss . '">' ;
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">' ;
print '<input type="hidden" name="action" value="list">' ;
print '<input type="hidden" name="sortfield" value="' . $sortfield . '">' ;
print '<input type="hidden" name="sortorder" value="' . $sortorder . '">' ;
2017-05-21 02:43:51 +02:00
print '<input type="hidden" name="page" value="' . $page . '">' ;
2017-04-08 14:18:10 +02:00
$head = defaultvalues_prepare_head ();
2017-06-01 01:53:55 +02:00
2017-04-10 12:51:52 +02:00
dol_fiche_head ( $head , $mode , '' , - 1 , '' );
2017-04-08 14:18:10 +02:00
2017-04-29 00:44:25 +02:00
if ( $mode == 'sortorder' )
{
print info_admin ( $langs -> trans ( " WarningSettingSortOrder " )) . '<br>' ;
}
2017-05-06 01:09:22 +02:00
if ( $mode == 'focus' )
{
print info_admin ( $langs -> trans ( " FeatureNotYetAvailable " )) . '<br>' ;
}
2017-04-08 14:18:10 +02:00
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
print '<input type="hidden" id="action" name="action" value="">' ;
2017-04-14 11:22:48 +02:00
print '<input type="hidden" id="mode" name="mode" value="' . dol_escape_htmltag ( $mode ) . '">' ;
2017-04-08 14:18:10 +02:00
2017-09-08 10:09:22 +02:00
print '<div class="div-table-responsive-no-min">' ;
2017-04-08 14:18:10 +02:00
print '<table class="noborder" width="100%">' ;
print '<tr class="liste_titre">' ;
2017-05-06 01:09:22 +02:00
// Page
2017-04-10 12:51:52 +02:00
$texthelp = $langs -> trans ( " PageUrlForDefaultValues " );
2017-09-14 09:16:57 +02:00
if ( $mode == 'createform' ) $texthelp .= $langs -> trans ( " PageUrlForDefaultValuesCreate " , 'societe/card.php' , 'societe/card.php?abc=val1&def=val2' );
else $texthelp .= $langs -> trans ( " PageUrlForDefaultValuesList " , 'societe/list.php' , 'societe/card.php?abc=val1&def=val2' );
2017-04-10 12:51:52 +02:00
$texturl = $form -> textwithpicto ( $langs -> trans ( " Url " ), $texthelp );
2017-04-28 14:05:28 +02:00
print_liste_field_titre ( $texturl , $_SERVER [ " PHP_SELF " ], 'page,param' , '' , $param , '' , $sortfield , $sortorder );
2017-05-06 01:09:22 +02:00
// Field
2017-04-14 11:22:48 +02:00
$texthelp = $langs -> trans ( " TheKeyIsTheNameOfHtmlField " );
2017-06-01 01:53:55 +02:00
if ( $mode != 'sortorder' )
2017-04-29 00:44:25 +02:00
{
$textkey = $form -> textwithpicto ( $langs -> trans ( " Field " ), $texthelp );
}
2017-06-01 01:53:55 +02:00
else
2017-04-29 00:44:25 +02:00
{
$texthelp = 'field or alias.field' ;
$textkey = $form -> textwithpicto ( $langs -> trans ( " Field " ), $texthelp );
}
2017-04-28 14:05:28 +02:00
print_liste_field_titre ( $textkey , $_SERVER [ " PHP_SELF " ], 'param' , '' , $param , '' , $sortfield , $sortorder );
2017-05-06 01:09:22 +02:00
// Value
if ( $mode != 'focus' )
2017-04-14 11:22:48 +02:00
{
2017-05-06 01:09:22 +02:00
if ( $mode != 'sortorder' )
{
2017-10-01 15:06:43 +02:00
$substitutionarray = getCommonSubstitutionArray ( $langs , 2 , array ( 'object' , 'objectamount' )); // Must match list into GETPOST
unset ( $substitutionarray [ '__USER_SIGNATURE__' ]);
2017-05-06 01:09:22 +02:00
$texthelp = $langs -> trans ( " FollowingConstantsWillBeSubstituted " ) . '<br>' ;
2017-06-01 01:53:55 +02:00
foreach ( $substitutionarray as $key => $val )
{
2017-10-01 15:06:43 +02:00
$texthelp .= $key . ' -> ' . $val . '<br>' ;
2017-06-01 01:53:55 +02:00
}
2017-11-09 18:50:15 +01:00
$textvalue = $form -> textwithpicto ( $langs -> trans ( " Value " ), $texthelp , 1 , 'help' , '' , 0 , 2 , 'subsitutiontooltip' );
2017-05-06 01:09:22 +02:00
}
else
{
$texthelp = 'ASC or DESC' ;
$textvalue = $form -> textwithpicto ( $langs -> trans ( " SortOrder " ), $texthelp );
}
print_liste_field_titre ( $textvalue , $_SERVER [ " PHP_SELF " ], 'value' , '' , $param , '' , $sortfield , $sortorder );
2017-04-10 13:14:31 +02:00
}
2017-05-06 01:09:22 +02:00
// Entity
2017-08-02 13:31:53 +02:00
if ( ! empty ( $conf -> multicompany -> enabled ) && ! $user -> entity ) print_liste_field_titre ( " Entity " , $_SERVER [ " PHP_SELF " ], 'entity,page' , '' , $param , '' , $sortfield , $sortorder );
2017-05-06 01:09:22 +02:00
// Actions
2017-04-08 14:18:10 +02:00
print '<td align="center"></td>' ;
print " </tr> \n " ;
// Line to add new record
print " \n " ;
2017-04-10 12:51:52 +02:00
print '<tr class="oddeven">' ;
2017-05-06 01:09:22 +02:00
// Page
2017-04-10 12:51:52 +02:00
print '<td>' ;
print '<input type="text" class="flat minwidth200 maxwidthonsmartphone" name="defaulturl" value="">' ;
2017-04-08 14:18:10 +02:00
print '</td>' . " \n " ;
2017-05-06 01:09:22 +02:00
// Field
2017-04-14 11:22:48 +02:00
print '<td>' ;
2017-09-08 10:09:22 +02:00
print '<input type="text" class="flat maxwidth100onsmartphone" name="defaultkey" value="">' ;
2017-04-14 11:22:48 +02:00
print '</td>' ;
2017-05-06 01:09:22 +02:00
// Value
if ( $mode != 'focus' )
{
print '<td>' ;
2017-09-08 10:09:22 +02:00
print '<input type="text" class="flat maxwidth100onsmartphone" name="defaultvalue" value="">' ;
2017-05-06 01:09:22 +02:00
print '</td>' ;
}
2017-04-08 14:18:10 +02:00
// Limit to superadmin
2017-04-14 11:22:48 +02:00
if ( ! empty ( $conf -> multicompany -> enabled ) && ! $user -> entity )
2017-04-08 14:18:10 +02:00
{
print '<td>' ;
print '<input type="text" class="flat" size="1" name="entity" value="' . $conf -> entity . '">' ;
print '</td>' ;
print '<td align="center">' ;
}
else
2017-04-14 11:22:48 +02:00
{
2017-04-08 14:18:10 +02:00
print '<td align="center">' ;
print '<input type="hidden" name="entity" value="' . $conf -> entity . '">' ;
2017-04-14 11:22:48 +02:00
}
2017-05-10 13:13:33 +02:00
$disabled = '' ;
if ( empty ( $conf -> global -> MAIN_ENABLE_DEFAULT_VALUES )) $disabled = ' disabled="disabled"' ;
print '<input type="submit" class="button"' . $disabled . ' value="' . $langs -> trans ( " Add " ) . '" name="add">' ;
2017-04-08 14:18:10 +02:00
print " </td> \n " ;
print '</tr>' ;
// Show constants
2017-04-14 11:22:48 +02:00
$sql = " SELECT rowid, entity, type, page, param, value " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " default_values " ;
$sql .= " WHERE type = ' " . $db -> escape ( $mode ) . " ' " ;
$sql .= " AND entity IN ( " . $user -> entity . " , " . $conf -> entity . " ) " ;
2017-04-08 14:18:10 +02:00
$sql .= $db -> order ( $sortfield , $sortorder );
dol_syslog ( " translation::select from table " , LOG_DEBUG );
$result = $db -> query ( $sql );
if ( $result )
{
$num = $db -> num_rows ( $result );
$i = 0 ;
while ( $i < $num )
{
$obj = $db -> fetch_object ( $result );
2017-06-01 01:53:55 +02:00
2017-04-08 14:18:10 +02:00
print " \n " ;
2017-04-10 13:14:31 +02:00
print '<tr class="oddeven">' ;
2017-06-01 01:53:55 +02:00
2017-05-06 01:09:22 +02:00
// Page
2017-04-29 00:44:25 +02:00
print '<td>' ;
if ( $action != 'edit' || GETPOST ( 'rowid' ) != $obj -> rowid ) print $obj -> page ;
else print '<input type="text" name="urlpage" value="' . dol_escape_htmltag ( $obj -> page ) . '">' ;
print '</td>' . " \n " ;
2017-06-01 01:53:55 +02:00
2017-05-06 01:09:22 +02:00
// Field
2017-04-29 00:44:25 +02:00
print '<td>' ;
if ( $action != 'edit' || GETPOST ( 'rowid' ) != $obj -> rowid ) print $obj -> param ;
else print '<input type="text" name="key" value="' . dol_escape_htmltag ( $obj -> param ) . '">' ;
print '</td>' . " \n " ;
2017-04-08 14:18:10 +02:00
// Value
2017-05-06 01:09:22 +02:00
if ( $mode != 'focus' )
{
print '<td>' ;
/* print '<input type="hidden" name="const[' . $i . '][rowid]" value="' . $obj -> rowid . '">' ;
print '<input type="hidden" name="const[' . $i . '][lang]" value="' . $obj -> lang . '">' ;
print '<input type="hidden" name="const[' . $i . '][name]" value="' . $obj -> transkey . '">' ;
print '<input type="text" id="value_' . $i . '" class="flat inputforupdate" size="30" name="const[' . $i . '][value]" value="' . dol_escape_htmltag ( $obj -> transvalue ) . '">' ;
*/
if ( $action != 'edit' || GETPOST ( 'rowid' ) != $obj -> rowid ) print $obj -> value ;
else print '<input type="text" name="value" value="' . dol_escape_htmltag ( $obj -> value ) . '">' ;
print '</td>' ;
}
2017-06-01 01:53:55 +02:00
2017-05-06 01:09:22 +02:00
// Actions
2017-04-08 14:18:10 +02:00
print '<td align="center">' ;
2017-04-29 00:44:25 +02:00
if ( $action != 'edit' || GETPOST ( 'rowid' ) != $obj -> rowid )
{
print '<a href="' . $_SERVER [ 'PHP_SELF' ] . '?rowid=' . $obj -> rowid . '&entity=' . $obj -> entity . '&mode=' . $mode . '&action=edit' . (( empty ( $user -> entity ) && $debug ) ? '&debug=1' : '' ) . '">' . img_edit () . '</a>' ;
print ' ' ;
print '<a href="' . $_SERVER [ 'PHP_SELF' ] . '?rowid=' . $obj -> rowid . '&entity=' . $obj -> entity . '&mode=' . $mode . '&action=delete' . (( empty ( $user -> entity ) && $debug ) ? '&debug=1' : '' ) . '">' . img_delete () . '</a>' ;
}
else
{
print '<input type="hidden" name="page" value="' . $page . '">' ;
print '<input type="hidden" name="rowid" value="' . $id . '">' ;
print '<div name="' . ( ! empty ( $obj -> rowid ) ? $obj -> rowid : 'none' ) . '"></div>' ;
print '<input type="submit" class="button" name="actionmodify" value="' . $langs -> trans ( " Modify " ) . '">' ;
print '<input type="submit" class="button" name="actioncancel" value="' . $langs -> trans ( " Cancel " ) . '">' ;
}
2017-04-08 14:18:10 +02:00
print '</td>' ;
2017-06-01 01:53:55 +02:00
2017-04-08 14:18:10 +02:00
print " </tr> \n " ;
print " \n " ;
$i ++ ;
}
}
2017-04-14 11:22:48 +02:00
else
{
dol_print_error ( $db );
}
2017-04-08 14:18:10 +02:00
print '</table>' ;
2017-09-08 10:09:22 +02:00
print '</div>' ;
2017-04-08 14:18:10 +02:00
dol_fiche_end ();
print " </form> \n " ;
llxFooter ();
$db -> close ();