mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-06 01:28:19 +01:00
* Create documentlist.controller.class.php Intégration de mon portail client personnalisé avec GED attention class/sontext.class.php devra aussi être modifier. * Update context.class.php ajout du ged pour les fichiers joints par tiers. * Update context.class.php ajout d'accès à fichiers joints du tiers. * Update menu.tpl.php ajout du menu accès au GED * Update README.md * Update README.md * Update README.md * Add files via upload document utile sert a partager via le GED de dolibarr des fichiers avec tous les clients utilisateur du webportal. * Update context.class.php ajout dans le menu de deux controleur suplémentaire. * Update menu.tpl.php ajoute des deux chapitre dans le menu * Update README.md * Update README.md * Update menu.tpl.php document format change * Add files via upload mises à jour et normalisation fichiers * Add files via upload ajout webportal.lang * Update README.md * Delete htdocs/webportal/documentutile.controller.class.php * Update menu.tpl.php * Update README.md * Update documentlist.controller.class.php * Update shareddocuments.controller.class.php * Update shareddocuments.controller.class.php * Update shareddocuments.controller.class.php * Update menu.tpl.php * Update menu.tpl.php * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update README.md * Update documentlist.controller.class.php * Update shareddocuments.controller.class.php * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update README.md * Create webportal.lang * Update webportal.lang * Update webportal.lang * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update shareddocuments.controller.class.php * Update website.lang * Delete htdocs/langs/fr_FR/webportal.lang * Delete htdocs/langs/en_US/webportal.lang * Update README.md * Update README.md * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Create abstractdocument.controller.class.php * Update website.lang * Update website.lang * Update website.lang * Update README.md * Update README.md * Update abstractdocument.controller.class.php * Update shareddocuments.controller.class.php * Update abstractdocument.controller.class.php * Update abstractdocument.controller.class.php * Update README.md * Update context.class.php * Update README.md * Update abstractdocument.controller.class.php * Update abstractdocument.controller.class.php * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update shareddocuments.controller.class.php * Update shareddocuments.controller.class.php * Update shareddocuments.controller.class.php * Update shareddocuments.controller.class.php * Update menu.tpl.php * Update documentlist.controller.class.php * Update abstractdocument.controller.class.php * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update documentlist.controller.class.php * Update shareddocuments.controller.class.php * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update shareddocuments.controller.class.php * Update documentlist.controller.class.php * Update menu.tpl.php * Update menu.tpl.php * Update README.md * Update context.class.php * Update documentlist.controller.class.php * Update menu.tpl.php * Update menu.tpl.php * Update context.class.php * Update documentlist.controller.class.php --------- Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
70 lines
2.6 KiB
PHP
70 lines
2.6 KiB
PHP
<?php
|
|
/*
|
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
|
* Copyright (c) 2025 Schaffhauser sébastien <sebastien@webmaster67.fr>
|
|
* 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.
|
|
*/
|
|
|
|
require_once __DIR__ . '/../class/controller.class.php';
|
|
|
|
/**
|
|
* \file htdocs/webportal/controllers/abstractdocument.controller.class.php
|
|
* \ingroup webportal
|
|
* \brief This file is an abstract controller with shared logic to display a list of documents.
|
|
*/
|
|
|
|
/**
|
|
* Abstract Class for Document Controllers
|
|
* Contains the shared logic to display a table of files.
|
|
*
|
|
* @property DoliDB $db Inherited from Controller
|
|
* @property int $accessRight Inherited from Controller
|
|
*/
|
|
abstract class AbstractDocumentController extends Controller
|
|
{
|
|
/**
|
|
* Renders an HTML table for a given list of files.
|
|
*
|
|
* @param string $title The main H2 title for the page.
|
|
* @param array<int, array<string, mixed>> $fileList The list of files from dol_dir_list().
|
|
* @param string $noFileMessage The message to display if the file list is empty.
|
|
* @param callable $linkBuilder A function that takes a file array and returns its download URL.
|
|
* @return void
|
|
*/
|
|
protected function displayDocumentTable($title, $fileList, $noFileMessage, callable $linkBuilder)
|
|
{
|
|
global $langs;
|
|
|
|
echo '<h2>' . htmlspecialchars($title) . '</h2>';
|
|
|
|
if (is_array($fileList) && count($fileList) > 0) {
|
|
echo '<table class="table" width="100%">';
|
|
echo '<thead><tr>';
|
|
echo '<th>' . $langs->trans('File') . '</th>';
|
|
echo '<th style="text-align: right; white-space: nowrap;">' . $langs->trans('Size') . '</th>';
|
|
echo '<th style="text-align: right; white-space: nowrap;">' . $langs->trans('DateM') . '</th>';
|
|
echo '</tr></thead>';
|
|
echo '<tbody>';
|
|
|
|
foreach ($fileList as $file) {
|
|
// The magic happens here: we call the provided function to build the specific URL
|
|
$downloadLink = $linkBuilder($file);
|
|
|
|
echo '<tr>';
|
|
echo '<td><a href="' . $downloadLink . '" target="_blank">' . htmlspecialchars($file['name']) . '</a></td>';
|
|
echo '<td style="text-align: right;">' . dol_print_size($file['size']) . '</td>';
|
|
echo '<td style="text-align: right;">' . dol_print_date($file['date'], 'dayhour') . '</td>';
|
|
echo '</tr>';
|
|
}
|
|
|
|
echo '</tbody></table>';
|
|
} else {
|
|
echo '<p>' . htmlspecialchars($noFileMessage) . '</p>';
|
|
}
|
|
|
|
echo '<br>';
|
|
}
|
|
}
|