dolibarr 20.0.0
FormFile Class Reference

Class to offer components to list and upload files. More...

Public Member Functions

 __construct ($db)
 Constructor.
 
 form_attach_new_file ($url, $title='', $addcancel=0, $sectionid=0, $perm=1, $size=50, $object=null, $options='', $useajax=1, $savingdocmask='', $linkfiles=1, $htmlname='formuserfile', $accept='', $sectiondir='', $usewithoutform=0, $capture=0, $disablemulti=0, $nooutput=0)
 Show form to upload a new file.
 
 show_documents ($modulepart, $modulesubdir, $filedir, $urlsource, $genallowed, $delallowed=0, $modelselected='', $allowgenifempty=1, $forcenomultilang=0, $iconPDF=0, $notused=0, $noform=0, $param='', $title='', $buttonlabel='', $codelang='')
 Show the box with list of available documents for object.
 
 showdocuments ($modulepart, $modulesubdir, $filedir, $urlsource, $genallowed, $delallowed=0, $modelselected='', $allowgenifempty=1, $forcenomultilang=0, $iconPDF=0, $notused=0, $noform=0, $param='', $title='', $buttonlabel='', $codelang='', $morepicto='', $object=null, $hideifempty=0, $removeaction='remove_file', $tooltipontemplatecombo='')
 Return a string to show the box with list of available documents for object.
 
 getDocumentsLink ($modulepart, $modulesubdir, $filedir, $filter='', $morecss='valignmiddle', $allfiles=0)
 Show a Document icon with link(s) You may want to call this into a div like this: print '.
 
 list_of_documents ($filearray, $object, $modulepart, $param='', $forcedownload=0, $relativepath='', $permonobject=1, $useinecm=0, $textifempty='', $maxlength=0, $title='', $url='', $showrelpart=0, $permtoeditline=-1, $upload_dir='', $sortfield='', $sortorder='ASC', $disablemove=1, $addfilterfields=0, $disablecrop=-1, $moreattrondiv='')
 Show list of documents in $filearray (may be they are all in same directory but may not) This also sync database if $upload_dir is defined.
 
 list_of_autoecmfiles ($upload_dir, $filearray, $modulepart, $param, $forcedownload=0, $relativepath='', $permissiontodelete=1, $useinecm=0, $textifempty='', $maxlength=0, $url='', $addfilterfields=0)
 Show list of documents in a directory of ECM module.
 
 listOfLinks ($object, $permissiontodelete=1, $action=null, $selected=null, $param='')
 Show array with linked files.
 
 showPreview ($file, $modulepart, $relativepath, $ruleforpicto=0, $param='')
 Show detail icon with link for preview.
 

Detailed Description

Class to offer components to list and upload files.

Definition at line 37 of file html.formfile.class.php.

Constructor & Destructor Documentation

◆ __construct()

FormFile::__construct ( $db)

Constructor.

Parameters
DoliDB$dbDatabase handler

Definition at line 55 of file html.formfile.class.php.

Member Function Documentation

◆ form_attach_new_file()

FormFile::form_attach_new_file ( $url,
$title = '',
$addcancel = 0,
$sectionid = 0,
$perm = 1,
$size = 50,
$object = null,
$options = '',
$useajax = 1,
$savingdocmask = '',
$linkfiles = 1,
$htmlname = 'formuserfile',
$accept = '',
$sectiondir = '',
$usewithoutform = 0,
$capture = 0,
$disablemulti = 0,
$nooutput = 0 )

Show form to upload a new file.

Parameters
string$urlUrl
string$titleTitle zone (Title or '' or 'none')
int$addcancel1=Add 'Cancel' button
int$sectionidIf upload must be done inside a particular ECM section (is sectionid defined, sectiondir must not be)
int$permValue of permission to allow upload
int$sizeLength of input file area. Deprecated.
Object$objectObject to use (when attachment is done on an element)
string$optionsAdd an option column
integer$useajaxUse fileupload ajax (0=never, 1=if enabled, 2=always whatever is option). Deprecated 2 should never be used and if 1 is used, option should not be enabled.
string$savingdocmaskMask to use to define output filename. For example 'XXXXX-__YYYYMMDD__-__file__'
integer$linkfiles1=Also add form to link files, 0=Do not show form to link files
string$htmlnameName and id of HTML form ('formuserfile' by default, 'formuserfileecm' when used to upload a file in ECM)
string$acceptSpecifies the types of files accepted (This is not a security check but an user interface facility. eg '.pdf,image/*' or '.png,.jpg' or 'video/*')
string$sectiondirIf upload must be done inside a particular directory (if sectiondir defined, sectionid must not be)
int$usewithoutform0=Default, 1=Disable <form> and <input hidden> to use in existing form area, 2=Disable the tag <form> only
int$capture1=Add tag capture="capture" to force use of micro or video recording to generate file. When setting this to 1, you must also provide a value for $accept.
int$disablemulti0=Default, 1=Disable multiple file upload
int$nooutput0=Output result with print, 1=Return result
Returns
int|string Return integer <0 if KO, >0 if OK, or string if $noouput=1

Definition at line 87 of file html.formfile.class.php.

References $object, dol_escape_js(), dol_syslog(), getDolGlobalString(), getMaxFileSizeArray(), info_admin(), and load_fiche_titre().

◆ getDocumentsLink()

FormFile::getDocumentsLink ( $modulepart,
$modulesubdir,
$filedir,
$filter = '',
$morecss = 'valignmiddle',
$allfiles = 0 )

Show a Document icon with link(s) You may want to call this into a div like this: print '.

'.$formfile->getDocumentsLink($element_doc, $filename, $filedir).'

';

Parameters
string$modulepart'propal', 'facture', 'facture_fourn', ...
string$modulesubdirSub-directory to scan (Example: '0/1/10', 'FA/DD/MM/YY/9999'). Use '' if file is not into subdir of module.
string$filedirFull path to directory to scan
string$filterFilter filenames on this regex string (Example: '.pdf$')
string$morecssAdd more css to the download picto
int$allfiles0=Only generated docs, 1=All files
Returns
string Output string with HTML link of documents (might be empty string). This also fill the array ->infofiles

Definition at line 1057 of file html.formfile.class.php.

References dol_dir_list(), dol_mimetype(), get_exdir(), getAdvancedPreviewUrl(), getDolGlobalInt(), getDolGlobalString(), and img_mime().

Referenced by showdocuments().

◆ list_of_autoecmfiles()

FormFile::list_of_autoecmfiles ( $upload_dir,
$filearray,
$modulepart,
$param,
$forcedownload = 0,
$relativepath = '',
$permissiontodelete = 1,
$useinecm = 0,
$textifempty = '',
$maxlength = 0,
$url = '',
$addfilterfields = 0 )

Show list of documents in a directory of ECM module.

Parameters
string$upload_dirDirectory that was scanned. This directory will contains files into subdirs REF/files
array$filearrayArray of files loaded by dol_dir_list function before calling this function
string$modulepartValue for modulepart used by download wrapper. Value can be $object->table_name (that is 'myobject' or 'mymodule_myobject') or $object->element.'-'.$module (for compatibility purpose)
string$paramParameters on sort links
int$forcedownloadForce to open dialog box "Save As" when clicking on file
string$relativepathRelative path of docs (autodefined if not provided)
int$permissiontodeletePermission to delete
int$useinecmChange output for use in ecm module
string$textifemptyText to show if filearray is empty
int$maxlengthMaximum length of file name shown
string$urlFull url to use for click links ('' = autodetect)
int$addfilterfieldsAdd line with filters
Returns
int Return integer <0 if KO, nb of files shown if OK
See also
list_of_documents()

Definition at line 1690 of file html.formfile.class.php.

References completeFileArrayWithDatabaseInfo(), dol_escape_htmltag(), dol_include_once(), dol_print_size(), dol_sort_array(), dol_syslog(), dol_trunc(), getDolGlobalInt(), img_mime(), img_picto(), load_fiche_titre(), print_liste_field_titre(), and showPreview().

◆ list_of_documents()

FormFile::list_of_documents ( $filearray,
$object,
$modulepart,
$param = '',
$forcedownload = 0,
$relativepath = '',
$permonobject = 1,
$useinecm = 0,
$textifempty = '',
$maxlength = 0,
$title = '',
$url = '',
$showrelpart = 0,
$permtoeditline = -1,
$upload_dir = '',
$sortfield = '',
$sortorder = 'ASC',
$disablemove = 1,
$addfilterfields = 0,
$disablecrop = -1,
$moreattrondiv = '' )

Show list of documents in $filearray (may be they are all in same directory but may not) This also sync database if $upload_dir is defined.

Parameters
array$filearrayArray of files loaded by dol_dir_list('files') function before calling this.
Object | null$objectObject on which document is linked to.
string$modulepartValue for modulepart used by download or viewimage wrapper.
string$paramParameters on sort links (param must start with &, example &aaa=bbb&ccc=ddd)
int$forcedownloadForce to open dialog box "Save As" when clicking on file.
string$relativepathRelative path of docs (autodefined if not provided), relative to module dir, not to MAIN_DATA_ROOT.
int$permonobjectPermission on object (so permission to delete or crop document)
int$useinecmChange output to add more information: 0, 4, 5, 6: Add a preview column. Show also a rename button. Show also a crop button for some values of $modulepart (must be supported into hard coded list in this function + photos_resize.php + restrictedArea + checkUserAccessToObject) 1: Add link to edit ECM entry 2: Add rename and crop link 5: Add link to edit ECM entry and add a preview column
string$textifemptyText to show if filearray is empty ('NoFileFound' if not defined)
int$maxlengthMaximum length of file name shown.
string$titleTitle before list. Use 'none' to disable title.
string$urlFull url to use for click links ('' = autodetect)
int$showrelpart0=Show only filename (default), 1=Show first level 1 dir
int$permtoeditlinePermission to edit document line (You must provide a value, -1 is deprecated and must not be used any more)
string$upload_dirFull path directory so we can know dir relative to MAIN_DATA_ROOT. Fill this to complete file data with database indexes.
string$sortfieldSort field ('name', 'size', 'position', ...)
string$sortorderSort order ('ASC' or 'DESC')
int$disablemove1=Disable move button, 0=Position move is possible.
int$addfilterfieldsAdd the line with filters
int$disablecropDisable crop feature on images (-1 = auto, prefer to set it explicitly to 0 or 1)
string$moreattrondivMore attributes on the div for responsive. Example 'style="height:280px; overflow: auto;"'
Returns
int Return integer <0 if KO, nb of files shown if OK
See also
list_of_autoecmfiles()

Definition at line 1199 of file html.formfile.class.php.

References $object, ajax_autoselect(), completeFileArrayWithDatabaseInfo(), dol_escape_htmltag(), dol_is_file(), dol_print_size(), dol_sanitizeFileName(), dol_sort_array(), dol_trunc(), get_exdir(), getAdvancedPreviewUrl(), getDolGlobalInt(), getDolGlobalString(), getImageFileNameForSize(), GETPOST(), image_format_supported(), img_delete(), img_down(), img_edit(), img_mime(), img_picto(), img_up(), load_fiche_titre(), newToken(), print_liste_field_titre(), showPreview(), Product\TYPE_PRODUCT, and Product\TYPE_SERVICE.

◆ listOfLinks()

FormFile::listOfLinks ( $object,
$permissiontodelete = 1,
$action = null,
$selected = null,
$param = '' )

Show array with linked files.

Parameters
Object$objectObject
int$permissiontodeleteDeletion is allowed
string$actionAction
string$selected???
string$paramMore param to add into URL
Returns
int Number of links

Definition at line 2076 of file html.formfile.class.php.

References $object, dol_escape_htmltag(), dol_now(), img_delete(), img_edit(), img_picto(), load_fiche_titre(), newToken(), and print_liste_field_titre().

◆ show_documents()

FormFile::show_documents ( $modulepart,
$modulesubdir,
$filedir,
$urlsource,
$genallowed,
$delallowed = 0,
$modelselected = '',
$allowgenifempty = 1,
$forcenomultilang = 0,
$iconPDF = 0,
$notused = 0,
$noform = 0,
$param = '',
$title = '',
$buttonlabel = '',
$codelang = '' )

Show the box with list of available documents for object.

Parameters
string$modulepartpropal, facture, facture_fourn, ...
string$modulesubdirSub-directory to scan (Example: '0/1/10', 'FA/DD/MM/YY/9999'). Use '' if file is not into subdir of module.
string$filedirDirectory to scan
string$urlsourceUrl of origin page (for return)
int$genallowedGeneration is allowed (1/0 or array of formats)
int$delallowedRemove is allowed (1/0)
string$modelselectedModel to preselect by default
integer$allowgenifemptyShow warning if no model activated
integer$forcenomultilangDo not show language option (even if MAIN_MULTILANGS defined)
int$iconPDFShow only PDF icon with link (1/0)
int$notusedNot used
integer$noformDo not output html form tags
string$paramMore param on http links
string$titleTitle to show on top of form
string$buttonlabelLabel on submit button
string$codelangDefault language code to use on lang combo box if multilang is enabled
Returns
int Return integer <0 if KO, number of shown files if OK
Deprecated
Use print xxx->showdocuments() instead.

Definition at line 303 of file html.formfile.class.php.

References showdocuments().

◆ showdocuments()

FormFile::showdocuments ( $modulepart,
$modulesubdir,
$filedir,
$urlsource,
$genallowed,
$delallowed = 0,
$modelselected = '',
$allowgenifempty = 1,
$forcenomultilang = 0,
$iconPDF = 0,
$notused = 0,
$noform = 0,
$param = '',
$title = '',
$buttonlabel = '',
$codelang = '',
$morepicto = '',
$object = null,
$hideifempty = 0,
$removeaction = 'remove_file',
$tooltipontemplatecombo = '' )

Return a string to show the box with list of available documents for object.

This also set the property $this->numoffiles

Parameters
string$modulepartModule the files are related to ('propal', 'facture', 'facture_fourn', 'mymodule', 'mymodule:MyObject', 'mymodule_temp', ...)
string$modulesubdirExisting (so sanitized) sub-directory to scan (Example: '0/1/10', 'FA/DD/MM/YY/9999'). Use '' if file is not into a subdir of module.
string$filedirDirectory to scan (must not end with a /). Example: '/mydolibarrdocuments/facture/FAYYMM-1234'
string$urlsourceUrl of origin page (for return)
int | string[]$genallowedGeneration is allowed (1/0 or array list of templates)
int$delallowedRemove is allowed (1/0)
string$modelselectedModel to preselect by default
integer$allowgenifemptyAllow generation even if list of template ($genallowed) is empty (show however a warning)
integer$forcenomultilangDo not show language option (even if MAIN_MULTILANGS defined)
int$iconPDFDeprecated, see getDocumentsLink
int$notusedNot used
integer$noformDo not output html form tags
string$paramMore param on http links
string$titleTitle to show on top of form. Example: '' (Default to "Documents") or 'none'
string$buttonlabelLabel on submit button
string$codelangDefault language code to use on lang combo box if multilang is enabled
string$morepictoAdd more HTML content into cell with picto
Object | null$objectObject when method is called from an object card.
int$hideifemptyHide section of generated files if there is no file
string$removeaction(optional) The action to remove a file
string$tooltipontemplatecomboText to show on a tooltip after the combo list of templates
Returns
string|int Output string with HTML array of documents (might be empty string)

Definition at line 338 of file html.formfile.class.php.

References $object, ajax_autoselect(), ajax_combobox(), completeFileArrayWithDatabaseInfo(), dol_buildpath(), dol_dir_list(), dol_escape_htmltag(), dol_escape_js(), dol_filemtime(), dol_filesize(), dol_mimetype(), dol_print_date(), dol_print_error(), dol_sort_array(), dol_syslog(), dol_trunc(), getDocumentsLink(), getDolGlobalInt(), getDolGlobalString(), img_mime(), img_picto(), ModeleAction\liste_modeles(), ModeleChequeReceipts\liste_modeles(), ModeleDon\liste_modeles(), ModeleExpenseReport\liste_modeles(), ModelePDFCards\liste_modeles(), ModelePDFCommandes\liste_modeles(), ModelePDFContract\liste_modeles(), ModelePDFDeliveryOrder\liste_modeles(), ModelePDFEvaluation\liste_modeles(), ModelePdfExpedition\liste_modeles(), ModelePDFFactures\liste_modeles(), ModelePDFFicheinter\liste_modeles(), ModelePDFMovement\liste_modeles(), ModelePDFProduct\liste_modeles(), ModelePDFProductBatch\liste_modeles(), ModelePDFProjects\liste_modeles(), ModelePDFPropales\liste_modeles(), ModelePdfReception\liste_modeles(), ModelePDFStock\liste_modeles(), ModelePDFSupplierProposal\liste_modeles(), ModelePDFSuppliersInvoices\liste_modeles(), ModelePDFSuppliersOrders\liste_modeles(), ModelePDFSuppliersPayments\liste_modeles(), ModelePDFTask\liste_modeles(), ModelePDFUser\liste_modeles(), ModelePDFUserGroup\liste_modeles(), ModeleThirdPartyDoc\liste_modeles(), load_fiche_titre(), newToken(), setEventMessages(), and showPreview().

Referenced by show_documents().

◆ showPreview()

FormFile::showPreview ( $file,
$modulepart,
$relativepath,
$ruleforpicto = 0,
$param = '' )

Show detail icon with link for preview.

Parameters
array$fileArray with data of file. Example: array('name'=>...)
string$modulepartpropal, facture, facture_fourn, ...
string$relativepathRelative path of docs
integer$ruleforpictoRule for picto: 0=Use the generic preview picto, 1=Use the picto of mime type of file). Use a negative value to show a generic picto even if preview not available.
string$paramMore param on http links
Returns
string $out Output string with HTML

Definition at line 2220 of file html.formfile.class.php.

References getAdvancedPreviewUrl(), img_mime(), and img_picto().

Referenced by list_of_autoecmfiles(), list_of_documents(), and showdocuments().


The documentation for this class was generated from the following file: