2
0
forked from Wavyzz/dolibarr
Files
dolibarr-fork/htdocs/webportal/controllers/abstractdocument.controller.class.php
webmaster67 7dd1e5a95f NEW More webportal fonctions - Can add shared files and thirdparty documents (#35391)
* 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>
2025-09-20 19:11:31 +02:00

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>';
}
}