本文整理汇总了PHP中dol_filemtime函数的典型用法代码示例。如果您正苦于以下问题:PHP dol_filemtime函数的具体用法?PHP dol_filemtime怎么用?PHP dol_filemtime使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dol_filemtime函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: showdocuments
//.........这里部分代码省略.........
// Get list of files
if (!empty($filedir)) {
$file_list = dol_dir_list($filedir, 'files', 0, '', '(\\.meta|_preview\\.png)$', 'date', SORT_DESC);
// Affiche en-tete tableau si non deja affiche
if (!empty($file_list) && !$headershown) {
$headershown = 1;
$out .= '<div class="titre">' . $titletoshow . '</div>';
$out .= '<table class="border" summary="listofdocumentstable" width="100%">';
}
// Loop on each file found
if (is_array($file_list)) {
foreach ($file_list as $file) {
$var = !$var;
// Define relative path for download link (depends on module)
$relativepath = $file["name"];
// Cas general
if ($modulesubdir) {
$relativepath = $modulesubdir . "/" . $file["name"];
}
// Cas propal, facture...
if ($modulepart == 'export') {
$relativepath = $file["name"];
}
// Other case
$out .= "<tr " . $bc[$var] . ">";
$documenturl = DOL_URL_ROOT . '/document.php';
if (isset($conf->global->DOL_URL_ROOT_DOCUMENT_PHP)) {
$documenturl = $conf->global->DOL_URL_ROOT_DOCUMENT_PHP;
}
// Show file name with link to download
$out .= '<td class="nowrap">';
$out .= '<a data-ajax="false" href="' . $documenturl . '?modulepart=' . $modulepart . '&file=' . urlencode($relativepath) . '"';
$mime = dol_mimetype($relativepath, '', 0);
if (preg_match('/text/', $mime)) {
$out .= ' target="_blank"';
}
$out .= ' target="_blank">';
$out .= img_mime($file["name"], $langs->trans("File") . ': ' . $file["name"]) . ' ' . dol_trunc($file["name"], $maxfilenamelength);
$out .= '</a>' . "\n";
$out .= '</td>';
// Show file size
$size = !empty($file['size']) ? $file['size'] : dol_filesize($filedir . "/" . $file["name"]);
$out .= '<td align="right" class="nowrap">' . dol_print_size($size) . '</td>';
// Show file date
$date = !empty($file['date']) ? $file['date'] : dol_filemtime($filedir . "/" . $file["name"]);
$out .= '<td align="right" class="nowrap">' . dol_print_date($date, 'dayhour', 'tzuser') . '</td>';
if ($delallowed || $printer || $morepicto) {
$out .= '<td align="right">';
if ($delallowed) {
$out .= '<a href="' . $urlsource . (strpos($urlsource, '?') ? '&' : '?') . 'action=remove_file&file=' . urlencode($relativepath);
$out .= $param ? '&' . $param : '';
//$out.= '&modulepart='.$modulepart; // TODO obsolete ?
//$out.= '&urlsource='.urlencode($urlsource); // TODO obsolete ?
$out .= '">' . img_picto($langs->trans("Delete"), 'delete.png') . '</a>';
//$out.='</td>';
}
if ($printer) {
//$out.= '<td align="right">';
$out .= ' <a href="' . $urlsource . (strpos($urlsource, '?') ? '&' : '?') . 'action=print_file&printer=' . $modulepart . '&file=' . urlencode($relativepath);
$out .= $param ? '&' . $param : '';
$out .= '">' . img_picto($langs->trans("PrintFile", $relativepath), 'printer.png') . '</a>';
}
if ($morepicto) {
$morepicto = preg_replace('/__FILENAMEURLENCODED__/', urlencode($relativepath), $morepicto);
$out .= $morepicto;
}
$out .= '</td>';
}
if (is_object($hookmanager)) {
$parameters = array('socid' => isset($GLOBALS['socid']) ? $GLOBALS['socid'] : '', 'id' => isset($GLOBALS['id']) ? $GLOBALS['id'] : '', 'modulepart' => $modulepart, 'relativepath' => $relativepath);
$res = $hookmanager->executeHooks('formBuilddocLineOptions', $parameters, $file);
if (empty($res)) {
$out .= $hookmanager->resPrint;
// Complete line
$out .= '</tr>';
} else {
$out = $hookmanager->resPrint;
}
// Replace line
}
}
if (count($file_list) == 0 && $headershown) {
$out .= '<tr ' . $bc[0] . '><td colspan="3">' . $langs->trans("None") . '</td></tr>';
}
$this->numoffiles++;
}
}
if ($headershown) {
// Affiche pied du tableau
$out .= "</table>\n";
if ($genallowed) {
if (empty($noform)) {
$out .= '</form>' . "\n";
}
}
}
$out .= '<!-- End show_document -->' . "\n";
//return ($i?$i:$headershown);
return $out;
}
示例2: parser
/**
* Parse rss URL
*
* @param string $urlRSS Url to parse
* @param int $maxNb Max nb of records to get (0 for no limit)
* @param int $cachedelay 0=No cache, nb of seconds we accept cache files (cachedir must also be defined)
* @param string $cachedir Directory where to save cache file
* @return int <0 if KO, >0 if OK
*/
public function parser($urlRSS, $maxNb = 0, $cachedelay = 60, $cachedir = '')
{
global $conf;
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
$rss = '';
$str = '';
// This will contain content of feed
// Check parameters
if (!dol_is_url($urlRSS)) {
$this->error = "ErrorBadUrl";
return -1;
}
$this->_urlRSS = $urlRSS;
$newpathofdestfile = $cachedir . '/' . dol_hash($this->_urlRSS, 3);
// Force md5 hash (does not contains special chars)
$newmask = '0644';
//dol_syslog("RssPArser::parser parse url=".$urlRSS." => cache file=".$newpathofdestfile);
$nowgmt = dol_now();
// Search into cache
$foundintocache = 0;
if ($cachedelay > 0 && $cachedir) {
$filedate = dol_filemtime($newpathofdestfile);
if ($filedate >= $nowgmt - $cachedelay) {
//dol_syslog("RssParser::parser cache file ".$newpathofdestfile." is not older than now - cachedelay (".$nowgmt." - ".$cachedelay.") so we use it.");
$foundintocache = 1;
$this->_lastfetchdate = $filedate;
} else {
dol_syslog(get_class($this) . "::parser cache file " . $newpathofdestfile . " is not found or older than now - cachedelay (" . $nowgmt . " - " . $cachedelay . ") so we can't use it.");
}
}
// Load file into $str
if ($foundintocache) {
$str = file_get_contents($newpathofdestfile);
} else {
try {
ini_set("user_agent", "Dolibarr ERP-CRM RSS reader");
ini_set("max_execution_time", $conf->global->MAIN_USE_RESPONSE_TIMEOUT);
ini_set("default_socket_timeout", $conf->global->MAIN_USE_RESPONSE_TIMEOUT);
$opts = array('http' => array('method' => "GET"));
if (!empty($conf->global->MAIN_USE_CONNECT_TIMEOUT)) {
$opts['http']['timeout'] = $conf->global->MAIN_USE_CONNECT_TIMEOUT;
}
if (!empty($conf->global->MAIN_PROXY_USE)) {
$opts['http']['proxy'] = 'tcp://' . $conf->global->MAIN_PROXY_HOST . ':' . $conf->global->MAIN_PROXY_PORT;
}
//var_dump($opts);exit;
$context = stream_context_create($opts);
$str = file_get_contents($this->_urlRSS, false, $context);
} catch (Exception $e) {
print 'Error retrieving URL ' . $this->urlRSS . ' - ' . $e->getMessage();
}
}
if ($str !== false) {
// Convert $str into xml
if (!empty($conf->global->EXTERNALRSS_USE_SIMPLEXML)) {
//print 'xx'.LIBXML_NOCDATA;
libxml_use_internal_errors(false);
$rss = simplexml_load_string($str, "SimpleXMLElement", LIBXML_NOCDATA);
} else {
$xmlparser = xml_parser_create('');
if (!is_resource($xmlparser)) {
$this->error = "ErrorFailedToCreateParser";
return -1;
}
xml_set_object($xmlparser, $this);
xml_set_element_handler($xmlparser, 'feed_start_element', 'feed_end_element');
xml_set_character_data_handler($xmlparser, 'feed_cdata');
$status = xml_parse($xmlparser, $str);
xml_parser_free($xmlparser);
$rss = $this;
//var_dump($rss->_format);exit;
}
}
// If $rss loaded
if ($rss) {
// Save file into cache
if (empty($foundintocache) && $cachedir) {
dol_syslog(get_class($this) . "::parser cache file " . $newpathofdestfile . " is saved onto disk.");
if (!dol_is_dir($cachedir)) {
dol_mkdir($cachedir);
}
$fp = fopen($newpathofdestfile, 'w');
fwrite($fp, $str);
fclose($fp);
if (!empty($conf->global->MAIN_UMASK)) {
$newmask = $conf->global->MAIN_UMASK;
}
@chmod($newpathofdestfile, octdec($newmask));
$this->_lastfetchdate = $nowgmt;
}
unset($str);
//.........这里部分代码省略.........
示例3: urlencode
// Define path to preview pdf file (preview precompiled "file.ext" are "file.ext_preview.png")
$fileimage = $file . '_preview.png';
// If PDF has 1 page
$fileimagebis = $file . '_preview-0.pdf.png';
// If PDF has more than one page
$relativepathimage = $relativepath . '_preview.png';
$var = true;
// Si fichier PDF existe
if (file_exists($file)) {
$encfile = urlencode($file);
print '<table class="nobordernopadding" width="100%">';
print '<tr class="liste_titre"><td colspan="4">' . $langs->trans("Documents") . '</td></tr>';
print '<tr ' . $bc[$var] . '><td>' . $langs->trans("Proposal") . ' PDF</td>';
print '<td><a data-ajax="false" href="' . DOL_URL_ROOT . '/document.php?modulepart=propal&file=' . urlencode($relativepath) . '">' . $object->ref . '.pdf</a></td>';
print '<td align="right">' . dol_print_size(dol_filesize($file)) . '</td>';
print '<td align="right">' . dol_print_date(dol_filemtime($file), 'dayhour') . '</td>';
print '</tr>';
print "</table>\n";
// Conversion du PDF en image png si fichier png non existant
if (!file_exists($fileimage) && !file_exists($fileimagebis) || filemtime($fileimage) < filemtime($file)) {
if (class_exists("Imagick")) {
$ret = dol_convert_file($file, 'png', $fileimage);
if ($ret < 0) {
$error++;
}
} else {
$langs->load("errors");
print '<font class="error">' . $langs->trans("ErrorNoImagickReadimage") . '</font>';
}
}
}
示例4: getTransformRateByMonthWithPrevYear
/**
* Return amount of elements by month for several years
*
* @param int $endyear End year
* @param int $startyear Start year
* @param int $cachedelay accept for cache file (0=No read, no save of cache, -1=No read but save)
* @return array of values
*/
function getTransformRateByMonthWithPrevYear($endyear, $startyear, $cachedelay = 0)
{
global $conf, $user, $langs;
if ($startyear > $endyear) return - 1;
$datay = array();
// Search into cache
if (! empty($cachedelay))
{
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
include_once DOL_DOCUMENT_ROOT . '/core/lib/json.lib.php';
}
$newpathofdestfile = $conf->user->dir_temp . '/' . get_class($this) . '_' . __FUNCTION__ . '_' . (empty($this->cachefilesuffix) ? '' : $this->cachefilesuffix . '_') . $langs->defaultlang . '_user' . $user->id . '.cache';
$newmask = '0644';
$nowgmt = dol_now();
$foundintocache = 0;
if ($cachedelay > 0) {
$filedate = dol_filemtime($newpathofdestfile);
if ($filedate >= ($nowgmt - $cachedelay)) {
$foundintocache = 1;
$this->_lastfetchdate[get_class($this) . '_' . __FUNCTION__] = $filedate;
} else {
dol_syslog(get_class($this) . '::' . __FUNCTION__ . " cache file " . $newpathofdestfile . " is not found or older than now - cachedelay (" . $nowgmt . " - " . $cachedelay . ") so we can't use it.");
}
}
// Load file into $data
if ($foundintocache) // Cache file found and is not too old
{
dol_syslog(get_class($this) . '::' . __FUNCTION__ . " read data from cache file " . $newpathofdestfile . " " . $filedate . ".");
$data = json_decode(file_get_contents($newpathofdestfile), true);
} else {
$year = $startyear;
while ( $year <= $endyear ) {
$datay[$year] = $this->getTransformRateByMonth($year);
$year ++;
}
$data = array ();
// $data = array('xval'=>array(0=>xlabel,1=>yval1,2=>yval2...),...)
for($i = 0; $i < 12; $i ++) {
$data[$i][] = $datay[$endyear][$i][0]; // set label
$year = $startyear;
while ( $year <= $endyear ) {
$data[$i][] = $datay[$year][$i][1]; // set yval for x=i
$year ++;
}
}
}
// Save cache file
if (empty($foundintocache) && ($cachedelay > 0 || $cachedelay == - 1)) {
dol_syslog(get_class($this) . '::' . __FUNCTION__ . " save cache file " . $newpathofdestfile . " onto disk.");
if (! dol_is_dir($conf->user->dir_temp))
dol_mkdir($conf->user->dir_temp);
$fp = fopen($newpathofdestfile, 'w');
fwrite($fp, json_encode($data));
fclose($fp);
if (! empty($conf->global->MAIN_UMASK))
$newmask = $conf->global->MAIN_UMASK;
@chmod($newpathofdestfile, octdec($newmask));
$this->_lastfetchdate[get_class($this) . '_' . __FUNCTION__] = $nowgmt;
}
return $data;
}
示例5: clearstatcache
}
// Construit liste des fichiers
clearstatcache();
$totalsize = 0;
$filearray = array();
$errorlevel = error_reporting();
error_reporting(0);
$handle = opendir($upload_dir);
error_reporting($errorlevel);
if (is_resource($handle)) {
$i = 0;
while (($file = readdir($handle)) !== false) {
if (!is_dir($dir . $file) && substr($file, 0, 1) != '.' && substr($file, 0, 3) != 'CVS') {
$filearray[$i]->name = $file;
$filearray[$i]->size = dol_filesize($upload_dir . "/" . $file);
$filearray[$i]->date = dol_filemtime($upload_dir . "/" . $file);
$totalsize += $filearray[$i]->size;
$i++;
}
}
closedir($handle);
} else {
// print '<div class="error">'.$langs->trans("ErrorCanNotReadDir",$upload_dir).'</div>';
}
/*
print '<table class="border"width="100%">';
// Nbre fichiers
print '<tr><td>'.$langs->trans("NbOfAttachedFiles").'</td><td colspan="3">'.count($filearray).'</td></tr>';
//Total taille
print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td colspan="3">'.$totalsize.' '.$langs->trans("bytes").'</td></tr>';
print '</table>';
示例6: dol_sort_array
print '<td align="center">' . $langs->trans("ExpectedChecksum") . '</td>';
print '<td align="center">' . $langs->trans("CurrentChecksum") . '</td>';
print '<td align="right">' . $langs->trans("Size") . '</td>';
print '<td align="right">' . $langs->trans("DateModification") . '</td>';
print '</tr>' . "\n";
$var = true;
$tmpfilelist = dol_sort_array($file_list['updated'], 'filename');
if (is_array($tmpfilelist) && count($tmpfilelist)) {
foreach ($tmpfilelist as $file) {
$var = !$var;
print '<tr ' . $bc[$var] . '>';
print '<td>' . $file['filename'] . '</td>' . "\n";
print '<td align="center">' . $file['expectedmd5'] . '</td>' . "\n";
print '<td align="center">' . $file['md5'] . '</td>' . "\n";
print '<td align="right">' . dol_print_size(dol_filesize(DOL_DOCUMENT_ROOT . '/' . $file['filename'])) . '</td>' . "\n";
print '<td align="right">' . dol_print_date(dol_filemtime(DOL_DOCUMENT_ROOT . '/' . $file['filename']), 'dayhour') . '</td>' . "\n";
print "</tr>\n";
}
} else {
print '<tr ' . $bc[false] . '><td colspan="5">' . $langs->trans("None") . '</td></tr>';
}
print '</table>';
} else {
print 'Error: Failed to found dolibarr_htdocs_dir into XML file ' . $xmlfile;
$error++;
}
} else {
print 'Error: Failed to parse XML for input file ' . $xmlfile;
$error++;
}
} else {
示例7: build_exportfile
/**
* Export events from database into a cal file.
* @param format 'vcal', 'ical/ics', 'rss'
* @param type 'event' or 'journal'
* @param cachedelay Do not rebuild file if date older than cachedelay seconds
* @param filename Force filename
* @param filters Array of filters
* @return int <0 if error, nb of events in new file if ok
*/
function build_exportfile($format, $type, $cachedelay, $filename, $filters)
{
global $conf, $langs, $dolibarr_main_url_root, $mysoc;
require_once DOL_DOCUMENT_ROOT . "/lib/xcal.lib.php";
require_once DOL_DOCUMENT_ROOT . "/lib/date.lib.php";
dol_syslog("ActionComm::build_exportfile Build export file format=" . $format . ", type=" . $type . ", cachedelay=" . $cachedelay . ", filename=" . $filename . ", filters size=" . sizeof($filters), LOG_DEBUG);
// Check parameters
if (empty($format)) {
return -1;
}
// Clean parameters
if (!$filename) {
$extension = 'vcs';
if ($format == 'ical') {
$extension = 'ics';
}
$filename = $format . '.' . $extension;
}
// Create dir and define output file (definitive and temporary)
$result = create_exdir($conf->agenda->dir_temp);
$outputfile = $conf->agenda->dir_temp . '/' . $filename;
$result = 0;
$buildfile = true;
$login = '';
$logina = '';
$logind = '';
$logint = '';
$now = dol_now();
if ($cachedelay) {
$nowgmt = dol_now();
include_once DOL_DOCUMENT_ROOT . '/lib/files.lib.php';
if (dol_filemtime($outputfile) > $nowgmt - $cachedelay) {
dol_syslog("ActionComm::build_exportfile file " . $outputfile . " is not older than now - cachedelay (" . $nowgmt . " - " . $cachedelay . "). Build is canceled");
$buildfile = false;
}
}
if ($buildfile) {
// Build event array
$eventarray = array();
$sql = "SELECT a.id,";
$sql .= " a.datep,";
// Start
$sql .= " a.datep2,";
// End
$sql .= " a.durationp,";
$sql .= " a.datec, a.tms as datem,";
$sql .= " a.note, a.label, a.fk_action as type_id,";
$sql .= " a.fk_soc,";
$sql .= " a.fk_user_author, a.fk_user_mod,";
$sql .= " a.fk_user_action, a.fk_user_done,";
$sql .= " a.fk_contact, a.percent as percentage,";
$sql .= " a.fk_element, a.elementtype,";
$sql .= " a.priority, a.fulldayevent, a.location,";
$sql .= " u.firstname, u.name,";
$sql .= " s.nom as socname,";
$sql .= " c.id as type_id, c.code as type_code, c.libelle";
$sql .= " FROM (" . MAIN_DB_PREFIX . "c_actioncomm as c, " . MAIN_DB_PREFIX . "actioncomm as a)";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "user as u on u.rowid = a.fk_user_author";
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe as s on s.rowid = a.fk_soc AND s.entity IN (0, " . $conf->entity . ")";
$sql .= " WHERE a.fk_action=c.id";
$sql .= " AND a.entity = " . $conf->entity;
foreach ($filters as $key => $value) {
if ($key == 'notolderthan') {
$sql .= " AND a.datep >= '" . $this->db->idate($now - $value * 24 * 60 * 60) . "'";
}
if ($key == 'year') {
$sql .= " AND a.datep BETWEEN '" . $this->db->idate(dol_get_first_day($value, 1)) . "' AND '" . $this->db->idate(dol_get_last_day($value, 12)) . "'";
}
if ($key == 'id') {
$sql .= " AND a.id=" . (is_numeric($value) ? $value : 0);
}
if ($key == 'idfrom') {
$sql .= " AND a.id >= " . (is_numeric($value) ? $value : 0);
}
if ($key == 'idto') {
$sql .= " AND a.id <= " . (is_numeric($value) ? $value : 0);
}
if ($key == 'login') {
$login = $value;
$userforfilter = new User($this->db);
$result = $userforfilter->fetch('', $value);
$sql .= " AND (";
$sql .= " a.fk_user_author = " . $userforfilter->id;
$sql .= " OR a.fk_user_action = " . $userforfilter->id;
$sql .= " OR a.fk_user_done = " . $userforfilter->id;
$sql .= ")";
}
if ($key == 'logina') {
$logina = $value;
$userforfilter = new User($this->db);
$result = $userforfilter->fetch('', $value);
//.........这里部分代码省略.........
示例8: dol_dir_list
/**
* Scan a directory and return a list of files/directories.
* Content for string is UTF8 and dir separator is "/".
* @param $path Starting path from which to search
* @param $types Can be "directories", "files", or "all"
* @param $recursive Determines whether subdirectories are searched
* @param $filter Regex for include filter
* @param $excludefilter Array of Regex for exclude filter (example: array('\.meta$','^\.')
* @param $sortcriteria Sort criteria ("","name","date","size")
* @param $sortorder Sort order (SORT_ASC, SORT_DESC)
* @param $mode 0=Return array minimum keys loaded (faster), 1=Force all keys like date and size to be loaded (slower), 2=Force load of date only, 3=Force load of size only
* @return array Array of array('name'=>'xxx','fullname'=>'/abc/xxx','date'=>'yyy','size'=>99,'type'=>'dir|file')
*/
function dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter="", $sortcriteria="name", $sortorder=SORT_ASC, $mode=0)
{
dol_syslog("files.lib.php::dol_dir_list path=".$path." types=".$types." recursive=".$recursive." filter=".$filter." excludefilter=".$excludefilter);
$loaddate=($mode==1||$mode==2)?true:false;
$loadsize=($mode==1||$mode==3)?true:false;
// Clean parameters
$path=preg_replace('/([\\/]+)$/i','',$path);
$newpath=dol_osencode($path);
if (! is_dir($newpath)) return array();
if ($dir = opendir($newpath))
{
$file_list = array();
while (false !== ($file = readdir($dir)))
{
if (! utf8_check($file)) $file=utf8_encode($file); // To be sure data is stored in utf8 in memory
$qualified=1;
// Define excludefilterarray
$excludefilterarray=array('^\.');
if (is_array($excludefilter))
{
$excludefilterarray=array_merge($excludefilterarray,$excludefilter);
}
else if ($excludefilter) $excludefilterarray[]=$excludefilter;
// Check if file is qualified
foreach($excludefilterarray as $filt)
{
if (preg_match('/'.$filt.'/i',$file)) { $qualified=0; break; }
}
if ($qualified)
{
$isdir=is_dir(dol_osencode($path."/".$file));
// Check whether this is a file or directory and whether we're interested in that type
if ($isdir && (($types=="directories") || ($types=="all") || $recursive))
{
// Add entry into file_list array
if (($types=="directories") || ($types=="all"))
{
if ($loaddate || $sortcriteria == 'date') $filedate=dol_filemtime($path."/".$file);
if ($loadsize || $sortcriteria == 'size') $filesize=dol_filesize($path."/".$file);
if (! $filter || preg_match('/'.$filter.'/i',$path.'/'.$file))
{
$file_list[] = array(
"name" => $file,
"fullname" => $path.'/'.$file,
"date" => $filedate,
"size" => $filesize,
"type" => 'dir'
);
}
}
// if we're in a directory and we want recursive behavior, call this function again
if ($recursive)
{
$file_list = array_merge($file_list,dol_dir_list($path."/".$file, $types, $recursive, $filter, $excludefilter, $sortcriteria, $sortorder, $mode));
}
}
else if (! $isdir && (($types == "files") || ($types == "all")))
{
// Add file into file_list array
if ($loaddate || $sortcriteria == 'date') $filedate=dol_filemtime($path."/".$file);
if ($loadsize || $sortcriteria == 'size') $filesize=dol_filesize($path."/".$file);
if (! $filter || preg_match('/'.$filter.'/i',$path.'/'.$file))
{
$file_list[] = array(
"name" => $file,
"fullname" => $path.'/'.$file,
"date" => $filedate,
"size" => $filesize,
"type" => 'file'
);
}
}
}
}
closedir($dir);
// Obtain a list of columns
//.........这里部分代码省略.........
示例9: dol_cache_refresh
/**
* Test if Refresh needed
*
* @param string $directory Directory of cache
* @param string $filename Name of filecache
* @param int $cachetime Cachetime delay
* @return boolean 0 no refresh 1 if refresh needed
*/
function dol_cache_refresh($directory, $filename, $cachetime)
{
$now = dol_now();
$cachefile = $directory . $filename;
$refresh = !file_exists($cachefile) || $now - $cachetime > dol_filemtime($cachefile);
return $refresh;
}
示例10: opendir
if (is_dir($dir . '/' . $year)) {
$handle = opendir($dir . '/' . $year);
if ($found) {
print '<br>';
}
print '<br>';
print '<table width="100%" class="noborder">';
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("Reporting") . '</td>';
print '<td align="right">' . $langs->trans("Size") . '</td>';
print '<td align="right">' . $langs->trans("Date") . '</td>';
print '</tr>';
$var = true;
if (is_resource($handle)) {
while (($file = readdir($handle)) !== false) {
if (preg_match('/^payment/i', $file)) {
$var = !$var;
$tfile = $dir . '/' . $year . '/' . $file;
$relativepath = $year . '/' . $file;
print "<tr " . $bc[$var] . ">" . '<td><a data-ajax="false" href="' . DOL_URL_ROOT . '/document.php?modulepart=facture_paiement&file=' . urlencode($relativepath) . '">' . img_pdf() . ' ' . $file . '</a></td>';
print '<td align="right">' . dol_print_size(dol_filesize($tfile)) . '</td>';
print '<td align="right">' . dol_print_date(dol_filemtime($tfile), "dayhour") . '</td></tr>';
}
}
closedir($handle);
}
print '</table>';
}
}
llxFooter();
$db->close();
示例11: dol_dir_list
/**
* Scan a directory and return a list of files/directories.
* Content for string is UTF8 and dir separator is "/".
*
* @param string $path Starting path from which to search
* @param string $types Can be "directories", "files", or "all"
* @param int $recursive Determines whether subdirectories are searched
* @param string $filter Regex filter to restrict list. This regex value must be escaped for '/', since this char is used for preg_match function
* @param array $excludefilter Array of Regex for exclude filter (example: array('(\.meta|_preview\.png)$','^\.'))
* @param string $sortcriteria Sort criteria ("","fullname","name","date","size")
* @param string $sortorder Sort order (SORT_ASC, SORT_DESC)
* @param int $mode 0=Return array minimum keys loaded (faster), 1=Force all keys like date and size to be loaded (slower), 2=Force load of date only, 3=Force load of size only
* @param int $nohook Disable all hooks
* @return array Array of array('name'=>'xxx','fullname'=>'/abc/xxx','date'=>'yyy','size'=>99,'type'=>'dir|file')
*/
function dol_dir_list($path, $types = "all", $recursive = 0, $filter = "", $excludefilter = "", $sortcriteria = "name", $sortorder = SORT_ASC, $mode = 0, $nohook = false)
{
global $db, $hookmanager;
global $object;
dol_syslog("files.lib.php::dol_dir_list path=" . $path . " types=" . $types . " recursive=" . $recursive . " filter=" . $filter . " excludefilter=" . json_encode($excludefilter));
//print 'xxx'."files.lib.php::dol_dir_list path=".$path." types=".$types." recursive=".$recursive." filter=".$filter." excludefilter=".json_encode($excludefilter);
$loaddate = $mode == 1 || $mode == 2 ? true : false;
$loadsize = $mode == 1 || $mode == 3 ? true : false;
// Clean parameters
$path = preg_replace('/([\\/]+)$/i', '', $path);
$newpath = dol_osencode($path);
if (!$nohook) {
$hookmanager->initHooks(array('fileslib'));
$parameters = array('path' => $newpath, 'types' => $types, 'recursive' => $recursive, 'filter' => $filter, 'excludefilter' => $excludefilter, 'sortcriteria' => $sortcriteria, 'sortorder' => $sortorder, 'loaddate' => $loaddate, 'loadsize' => $loadsize);
$reshook = $hookmanager->executeHooks('getNodesList', $parameters, $object);
}
// $reshook may contain returns stacked by other modules
// $reshook is always empty with an array for can not lose returns stacked with other modules
// $hookmanager->resArray may contain array stacked by other modules
if (!$nohook && !empty($hookmanager->resArray)) {
return $hookmanager->resArray['nodes'];
} else {
if (!is_dir($newpath)) {
return array();
}
if ($dir = opendir($newpath)) {
$filedate = '';
$filesize = '';
$file_list = array();
while (false !== ($file = readdir($dir))) {
if (!utf8_check($file)) {
$file = utf8_encode($file);
}
// To be sure data is stored in utf8 in memory
$qualified = 1;
// Define excludefilterarray
$excludefilterarray = array('^\\.');
if (is_array($excludefilter)) {
$excludefilterarray = array_merge($excludefilterarray, $excludefilter);
} else {
if ($excludefilter) {
$excludefilterarray[] = $excludefilter;
}
}
// Check if file is qualified
foreach ($excludefilterarray as $filt) {
if (preg_match('/' . $filt . '/i', $file)) {
$qualified = 0;
break;
}
}
if ($qualified) {
$isdir = is_dir(dol_osencode($path . "/" . $file));
// Check whether this is a file or directory and whether we're interested in that type
if ($isdir && ($types == "directories" || $types == "all" || $recursive)) {
// Add entry into file_list array
if ($types == "directories" || $types == "all") {
if ($loaddate || $sortcriteria == 'date') {
$filedate = dol_filemtime($path . "/" . $file);
}
if ($loadsize || $sortcriteria == 'size') {
$filesize = dol_filesize($path . "/" . $file);
}
if (!$filter || preg_match('/' . $filter . '/i', $file)) {
preg_match('/([^\\/]+)\\/[^\\/]+$/', $path . '/' . $file, $reg);
$level1name = isset($reg[1]) ? $reg[1] : '';
$file_list[] = array("name" => $file, "path" => $path, "level1name" => $level1name, "fullname" => $path . '/' . $file, "date" => $filedate, "size" => $filesize, "type" => 'dir');
}
}
// if we're in a directory and we want recursive behavior, call this function again
if ($recursive) {
$file_list = array_merge($file_list, dol_dir_list($path . "/" . $file, $types, $recursive, $filter, $excludefilter, $sortcriteria, $sortorder, $mode));
}
} else {
if (!$isdir && ($types == "files" || $types == "all")) {
// Add file into file_list array
if ($loaddate || $sortcriteria == 'date') {
$filedate = dol_filemtime($path . "/" . $file);
}
if ($loadsize || $sortcriteria == 'size') {
$filesize = dol_filesize($path . "/" . $file);
}
if (!$filter || preg_match('/' . $filter . '/i', $file)) {
preg_match('/([^\\/]+)\\/[^\\/]+$/', $path . '/' . $file, $reg);
$level1name = isset($reg[1]) ? $reg[1] : '';
//.........这里部分代码省略.........
示例12: dol_nl2br
if ($_GET["action"] == 'edit')
{
print '<textarea class="flat" name="description" cols="80">';
print $ecmdir->description;
print '</textarea>';
}
else print dol_nl2br($ecmdir->description);
print '</td></tr>';
print '<tr><td>'.$langs->trans("ECMCreationUser").'</td><td>';
$userecm=new User($db);
$userecm->fetch($ecmdir->fk_user_c);
print $userecm->getNomUrl(1);
print '</td></tr>';
*/
print '<tr><td>'.$langs->trans("ECMCreationDate").'</td><td>';
print dol_print_date(dol_filemtime($fullpath),'dayhour');
print '</td></tr>';
/*print '<tr><td>'.$langs->trans("ECMDirectoryForFiles").'</td><td>';
print '/ecm/'.$relativepath;
print '</td></tr>';
print '<tr><td>'.$langs->trans("ECMNbOfDocs").'</td><td>';
print sizeof($filearray);
print '</td></tr>';
print '<tr><td>'.$langs->trans("TotalSizeOfAttachedFiles").'</td><td>';
print dol_print_size($totalsize);
print '</td></tr>';
*/
if ($_GET["action"] == 'edit')
{
print '<tr><td colspan="2" align="center">';
print '<input type="submit" class="button" name="submit" value="'.$langs->trans("Save").'">';
示例13: getAllByProductEntry
/**
* Return count, and sum of products
*
* @param int $year Year
* @param int $cachedelay Delay we accept for cache file (0=No read, no save of cache, -1=No read but save)
* @return array Array of values
*/
function getAllByProductEntry($year, $cachedelay = 0)
{
global $conf, $user, $langs;
$datay = array();
// Search into cache
if (!empty($cachedelay)) {
include_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
include_once DOL_DOCUMENT_ROOT . '/core/lib/json.lib.php';
}
$newpathofdestfile = $conf->user->dir_temp . '/' . get_class($this) . '_' . __FUNCTION__ . '_' . (empty($this->cachefilesuffix) ? '' : $this->cachefilesuffix . '_') . $langs->defaultlang . '_user' . $user->id . '.cache';
$newmask = '0644';
$nowgmt = dol_now();
$foundintocache = 0;
if ($cachedelay > 0) {
$filedate = dol_filemtime($newpathofdestfile);
if ($filedate >= $nowgmt - $cachedelay) {
$foundintocache = 1;
$this->_lastfetchdate[get_class($this) . '_' . __FUNCTION__] = $filedate;
} else {
dol_syslog(get_class($this) . '::' . __FUNCTION__ . " cache file " . $newpathofdestfile . " is not found or older than now - cachedelay (" . $nowgmt . " - " . $cachedelay . ") so we can't use it.");
}
}
// Load file into $data
if ($foundintocache) {
dol_syslog(get_class($this) . '::' . __FUNCTION__ . " read data from cache file " . $newpathofdestfile . " " . $filedate . ".");
$data = json_decode(file_get_contents($newpathofdestfile), true);
} else {
$data = $this->getAllByProduct($year);
// $data[$i][]=$datay[$year][$i][1]; // set yval for x=i
}
// Save cache file
if (empty($foundintocache) && ($cachedelay > 0 || $cachedelay == -1)) {
dol_syslog(get_class($this) . '::' . __FUNCTION__ . " save cache file " . $newpathofdestfile . " onto disk.");
if (!dol_is_dir($conf->user->dir_temp)) {
dol_mkdir($conf->user->dir_temp);
}
$fp = fopen($newpathofdestfile, 'w');
if ($fp) {
fwrite($fp, json_encode($data));
fclose($fp);
if (!empty($conf->global->MAIN_UMASK)) {
$newmask = $conf->global->MAIN_UMASK;
}
@chmod($newpathofdestfile, octdec($newmask));
}
$this->_lastfetchdate[get_class($this) . '_' . __FUNCTION__] = $nowgmt;
}
return $data;
}
示例14: showdocuments
//.........这里部分代码省略.........
$out .= ' ' . img_warning($langs->transnoentitiesnoconv("WarningNoDocumentModelActivated"));
}
$out .= '</th>';
$out .= '</tr>';
// Execute hooks
$parameters = array('socid' => isset($GLOBALS['socid']) ? $GLOBALS['socid'] : '', 'id' => isset($GLOBALS['id']) ? $GLOBALS['id'] : '', 'modulepart' => $modulepart);
if (is_object($hookmanager)) {
$out .= $hookmanager->executeHooks('formBuilddocOptions', $parameters, $GLOBALS['object']);
}
}
// Get list of files
if ($filedir) {
$png = '';
$filter = '';
if ($iconPDF == 1) {
$png = '\\.png$';
$filter = $filename . '.pdf';
}
$file_list = dol_dir_list($filedir, 'files', 0, $filter, '\\.meta$' . ($png ? '|' . $png : ''), 'date', SORT_DESC);
// Affiche en-tete tableau si non deja affiche
if (!empty($file_list) && !$headershown && !$iconPDF) {
$headershown = 1;
$out .= '<div class="titre">' . $titletoshow . '</div>';
$out .= '<table class="border" summary="listofdocumentstable" width="100%">';
} else {
if (empty($file_list) && !empty($iconPDF)) {
// For ajax treatment
$out .= '<div id="gen_pdf_' . $filename . '" class="linkobject hideobject">' . img_picto('', 'refresh') . '</div>' . "\n";
}
}
// Loop on each file found
foreach ($file_list as $file) {
$var = !$var;
// Define relative path for download link (depends on module)
$relativepath = $file["name"];
// Cas general
if ($filename) {
$relativepath = $filename . "/" . $file["name"];
}
// Cas propal, facture...
// Autre cas
if ($modulepart == 'donation') {
$relativepath = get_exdir($filename, 2) . $file["name"];
}
if ($modulepart == 'export') {
$relativepath = $file["name"];
}
if (!$iconPDF) {
$out .= "<tr " . $bc[$var] . ">";
}
// Show file name with link to download
if (!$iconPDF) {
$out .= '<td nowrap="nowrap">';
}
$out .= '<a href="' . DOL_URL_ROOT . '/document.php?modulepart=' . $modulepart . '&file=' . urlencode($relativepath) . '"';
$mime = dol_mimetype($relativepath, '', 0);
if (preg_match('/text/', $mime)) {
$out .= ' target="_blank"';
}
$out .= '>';
if (!$iconPDF) {
$out .= img_mime($file["name"], $langs->trans("File") . ': ' . $file["name"]) . ' ' . dol_trunc($file["name"], $maxfilenamelength);
} else {
$out .= img_pdf($file["name"], 2);
}
$out .= '</a>' . "\n";
if (!$iconPDF) {
$out .= '</td>';
// Show file size
$out .= '<td align="right" nowrap="nowrap">' . dol_print_size(dol_filesize($filedir . "/" . $file["name"])) . '</td>';
// Show file date
$out .= '<td align="right" nowrap="nowrap">' . dol_print_date(dol_filemtime($filedir . "/" . $file["name"]), 'dayhour') . '</td>';
}
if ($delallowed) {
$out .= '<td align="right">';
//$out.= '<a href="'.DOL_URL_ROOT.'/document.php?action=remove_file&modulepart='.$modulepart.'&file='.urlencode($relativepath);
$out .= '<a href="' . $urlsource . '&action=remove_file&modulepart=' . $modulepart . '&file=' . urlencode($relativepath);
$out .= $param ? '&' . $param : '';
$out .= '&urlsource=' . urlencode($urlsource);
$out .= '">' . img_delete() . '</a></td>';
}
if (!$iconPDF) {
$out .= '</tr>';
}
$this->numoffiles++;
}
}
if ($headershown) {
// Affiche pied du tableau
$out .= "</table>\n";
if ($genallowed) {
if (empty($noform)) {
$out .= '</form>' . "\n";
}
}
}
$out .= '<!-- End show_document -->' . "\n";
//return ($i?$i:$headershown);
return $out;
}