Merge remote-tracking branch 'Upstream/develop' into develop-64
This commit is contained in:
commit
16585553c1
@ -130,6 +130,8 @@ script:
|
|||||||
- php upgrade.php 3.7.0 3.8.0 ignoredbversion > upgrade370380.log
|
- php upgrade.php 3.7.0 3.8.0 ignoredbversion > upgrade370380.log
|
||||||
# - cat upgrade370380.log
|
# - cat upgrade370380.log
|
||||||
- php upgrade2.php 3.7.0 3.8.0 ignoredbversion > upgrade370380-2.log
|
- php upgrade2.php 3.7.0 3.8.0 ignoredbversion > upgrade370380-2.log
|
||||||
|
- php upgrade.php 3.8.0 3.9.0 ignoredbversion > upgrade380390.log
|
||||||
|
- php upgrade2.php 3.8.0 3.9.0 ignoredbversion > upgrade380390-2.log
|
||||||
# - cat upgrade370380-2.log
|
# - cat upgrade370380-2.log
|
||||||
- cd ../..
|
- cd ../..
|
||||||
- date
|
- date
|
||||||
|
|||||||
@ -225,7 +225,11 @@ foreach ($syslogModules as $moduleName)
|
|||||||
print '<td align="left">';
|
print '<td align="left">';
|
||||||
if ($module->getInfo())
|
if ($module->getInfo())
|
||||||
{
|
{
|
||||||
print $form->textwithpicto('', $module->getInfo());
|
print $form->textwithpicto('', $module->getInfo(), 1, 'help');
|
||||||
|
}
|
||||||
|
if ($module->getWarning())
|
||||||
|
{
|
||||||
|
print $form->textwithpicto('', $module->getWarning(), 1, 'warning');
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|||||||
@ -364,7 +364,8 @@ class Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show a text and picto with tooltip on text or picto
|
* Show a text and picto with tooltip on text or picto.
|
||||||
|
* Can be called by an instancied $form->textwithtooltip or by a static call Form::textwithtooltip
|
||||||
*
|
*
|
||||||
* @param string $text Text to show
|
* @param string $text Text to show
|
||||||
* @param string $htmltext HTML content of tooltip. Must be HTML/UTF8 encoded.
|
* @param string $htmltext HTML content of tooltip. Must be HTML/UTF8 encoded.
|
||||||
|
|||||||
@ -234,7 +234,8 @@ class Translate
|
|||||||
if ($usecachekey)
|
if ($usecachekey)
|
||||||
{
|
{
|
||||||
//dol_syslog('Translate::Load we will cache result into usecachekey '.$usecachekey);
|
//dol_syslog('Translate::Load we will cache result into usecachekey '.$usecachekey);
|
||||||
|
//global $aaa; $aaa+=1;
|
||||||
|
//print $aaa." ".$usecachekey."\n";
|
||||||
require_once DOL_DOCUMENT_ROOT .'/core/lib/memory.lib.php';
|
require_once DOL_DOCUMENT_ROOT .'/core/lib/memory.lib.php';
|
||||||
$tmparray=dol_getcache($usecachekey);
|
$tmparray=dol_getcache($usecachekey);
|
||||||
if (is_array($tmparray) && count($tmparray))
|
if (is_array($tmparray) && count($tmparray))
|
||||||
|
|||||||
@ -47,10 +47,16 @@ function dol_setcache($memoryid,$data)
|
|||||||
// Using a memcached server
|
// Using a memcached server
|
||||||
if (! empty($conf->memcached->enabled) && class_exists('Memcached'))
|
if (! empty($conf->memcached->enabled) && class_exists('Memcached'))
|
||||||
{
|
{
|
||||||
$memoryid=session_name().'_'.$memoryid;
|
global $m;
|
||||||
$m=new Memcached();
|
if (empty($m) || ! is_object($m))
|
||||||
$tmparray=explode(':',$conf->global->MEMCACHED_SERVER);
|
{
|
||||||
$result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211);
|
$m=new Memcached();
|
||||||
|
$tmparray=explode(':',$conf->global->MEMCACHED_SERVER);
|
||||||
|
$result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211);
|
||||||
|
if (! $result) return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$memoryid=session_name().'_'.$memoryid;
|
||||||
//$m->setOption(Memcached::OPT_COMPRESSION, false);
|
//$m->setOption(Memcached::OPT_COMPRESSION, false);
|
||||||
//print "Add memoryid=".$memoryid;
|
//print "Add memoryid=".$memoryid;
|
||||||
$m->add($memoryid,$data); // This fails if key already exists
|
$m->add($memoryid,$data); // This fails if key already exists
|
||||||
@ -66,10 +72,16 @@ function dol_setcache($memoryid,$data)
|
|||||||
}
|
}
|
||||||
else if (! empty($conf->memcached->enabled) && class_exists('Memcache'))
|
else if (! empty($conf->memcached->enabled) && class_exists('Memcache'))
|
||||||
{
|
{
|
||||||
$memoryid=session_name().'_'.$memoryid;
|
global $m;
|
||||||
$m=new Memcache();
|
if (empty($m) || ! is_object($m))
|
||||||
$tmparray=explode(':',$conf->global->MEMCACHED_SERVER);
|
{
|
||||||
$result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211);
|
$m=new Memcache();
|
||||||
|
$tmparray=explode(':',$conf->global->MEMCACHED_SERVER);
|
||||||
|
$result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211);
|
||||||
|
if (! $result) return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$memoryid=session_name().'_'.$memoryid;
|
||||||
//$m->setOption(Memcached::OPT_COMPRESSION, false);
|
//$m->setOption(Memcached::OPT_COMPRESSION, false);
|
||||||
$result=$m->add($memoryid,$data); // This fails if key already exists
|
$result=$m->add($memoryid,$data); // This fails if key already exists
|
||||||
if ($result)
|
if ($result)
|
||||||
@ -103,10 +115,16 @@ function dol_getcache($memoryid)
|
|||||||
// Using a memcached server
|
// Using a memcached server
|
||||||
if (! empty($conf->memcached->enabled) && class_exists('Memcached'))
|
if (! empty($conf->memcached->enabled) && class_exists('Memcached'))
|
||||||
{
|
{
|
||||||
|
global $m;
|
||||||
|
if (empty($m) || ! is_object($m))
|
||||||
|
{
|
||||||
|
$m=new Memcached();
|
||||||
|
$tmparray=explode(':',$conf->global->MEMCACHED_SERVER);
|
||||||
|
$result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211);
|
||||||
|
if (! $result) return -1;
|
||||||
|
}
|
||||||
|
|
||||||
$memoryid=session_name().'_'.$memoryid;
|
$memoryid=session_name().'_'.$memoryid;
|
||||||
$m=new Memcached();
|
|
||||||
$tmparray=explode(':',$conf->global->MEMCACHED_SERVER);
|
|
||||||
$result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211);
|
|
||||||
//$m->setOption(Memcached::OPT_COMPRESSION, false);
|
//$m->setOption(Memcached::OPT_COMPRESSION, false);
|
||||||
//print "Get memoryid=".$memoryid;
|
//print "Get memoryid=".$memoryid;
|
||||||
$data=$m->get($memoryid);
|
$data=$m->get($memoryid);
|
||||||
@ -124,10 +142,16 @@ function dol_getcache($memoryid)
|
|||||||
}
|
}
|
||||||
else if (! empty($conf->memcached->enabled) && class_exists('Memcache'))
|
else if (! empty($conf->memcached->enabled) && class_exists('Memcache'))
|
||||||
{
|
{
|
||||||
$memoryid=session_name().'_'.$memoryid;
|
global $m;
|
||||||
$m=new Memcache();
|
if (empty($m) || ! is_object($m))
|
||||||
$tmparray=explode(':',$conf->global->MEMCACHED_SERVER);
|
{
|
||||||
$result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211);
|
$m=new Memcache();
|
||||||
|
$tmparray=explode(':',$conf->global->MEMCACHED_SERVER);
|
||||||
|
$result=$m->addServer($tmparray[0], $tmparray[1]?$tmparray[1]:11211);
|
||||||
|
if (! $result) return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$memoryid=session_name().'_'.$memoryid;
|
||||||
//$m->setOption(Memcached::OPT_COMPRESSION, false);
|
//$m->setOption(Memcached::OPT_COMPRESSION, false);
|
||||||
$data=$m->get($memoryid);
|
$data=$m->get($memoryid);
|
||||||
//print "memoryid=".$memoryid." - rescode=".$rescode." - data=".count($data)."\n<br>";
|
//print "memoryid=".$memoryid." - rescode=".$rescode." - data=".count($data)."\n<br>";
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2013-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -20,17 +20,17 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \defgroup fournisseur Module suppliers
|
* \defgroup fournisseur suppliers Module
|
||||||
* \brief Module pour gerer des societes et contacts de type fournisseurs
|
* \brief Module to manage companies and contacts of supplier type
|
||||||
* \file htdocs/core/modules/modFournisseur.class.php
|
* \file htdocs/core/modules/modFournisseur.class.php
|
||||||
* \ingroup fournisseur
|
* \ingroup fournisseur
|
||||||
* \brief Fichier de description et activation du module Fournisseur
|
* \brief Description and activation file for module Fournisseur
|
||||||
*/
|
*/
|
||||||
include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
|
include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Classe de description et activation du module Fournisseur
|
* Description and activation class for module Fournisseur
|
||||||
*/
|
*/
|
||||||
class modFournisseur extends DolibarrModules
|
class modFournisseur extends DolibarrModules
|
||||||
{
|
{
|
||||||
@ -67,7 +67,7 @@ class modFournisseur extends DolibarrModules
|
|||||||
"/fournisseur/facture/temp"
|
"/fournisseur/facture/temp"
|
||||||
);
|
);
|
||||||
|
|
||||||
// Dependances
|
// Dependencies
|
||||||
$this->depends = array("modSociete");
|
$this->depends = array("modSociete");
|
||||||
$this->requiredby = array();
|
$this->requiredby = array();
|
||||||
$this->langfiles = array('bills', 'companies', 'suppliers', 'orders');
|
$this->langfiles = array('bills', 'companies', 'suppliers', 'orders');
|
||||||
@ -75,7 +75,7 @@ class modFournisseur extends DolibarrModules
|
|||||||
// Config pages
|
// Config pages
|
||||||
$this->config_page_url = array("supplier_order.php");
|
$this->config_page_url = array("supplier_order.php");
|
||||||
|
|
||||||
// Constantes
|
// Constants
|
||||||
$this->const = array();
|
$this->const = array();
|
||||||
$r=0;
|
$r=0;
|
||||||
|
|
||||||
|
|||||||
@ -28,11 +28,21 @@ class LogHandler
|
|||||||
/**
|
/**
|
||||||
* Content of the info tooltip.
|
* Content of the info tooltip.
|
||||||
*
|
*
|
||||||
* @return false|string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getInfo()
|
public function getInfo()
|
||||||
{
|
{
|
||||||
return false;
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return warning if something is wrong with logger
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getWarning()
|
||||||
|
{
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -48,6 +48,13 @@ interface LogHandlerInterface
|
|||||||
*/
|
*/
|
||||||
public function getInfo();
|
public function getInfo();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return warning if something is wrong with logger
|
||||||
|
*
|
||||||
|
* @return string Warning message
|
||||||
|
*/
|
||||||
|
public function getWarning();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return array of configuration data
|
* Return array of configuration data
|
||||||
*
|
*
|
||||||
|
|||||||
@ -32,9 +32,19 @@ class mod_syslog_chromephp extends LogHandler implements LogHandlerInterface
|
|||||||
/**
|
/**
|
||||||
* Content of the info tooltip.
|
* Content of the info tooltip.
|
||||||
*
|
*
|
||||||
* @return false|string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getInfo()
|
public function getInfo()
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return warning if something is wrong with logger
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getWarning()
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
@ -44,7 +54,7 @@ class mod_syslog_chromephp extends LogHandler implements LogHandlerInterface
|
|||||||
/**
|
/**
|
||||||
* Is the module active ?
|
* Is the module active ?
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int -1 if not active, 0 if active but lib/path not found, 1 if OK
|
||||||
*/
|
*/
|
||||||
public function isActive()
|
public function isActive()
|
||||||
{
|
{
|
||||||
@ -65,6 +75,10 @@ class mod_syslog_chromephp extends LogHandler implements LogHandlerInterface
|
|||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch(Exception $e)
|
catch(Exception $e)
|
||||||
{
|
{
|
||||||
@ -89,7 +103,7 @@ class mod_syslog_chromephp extends LogHandler implements LogHandlerInterface
|
|||||||
'constant' => 'SYSLOG_CHROMEPHP_INCLUDEPATH',
|
'constant' => 'SYSLOG_CHROMEPHP_INCLUDEPATH',
|
||||||
'default' => DOL_DOCUMENT_ROOT . '/includes/ccampbell/chromephp/',
|
'default' => DOL_DOCUMENT_ROOT . '/includes/ccampbell/chromephp/',
|
||||||
'attr' => 'size="60"',
|
'attr' => 'size="60"',
|
||||||
'example' =>'/usr/share/php'
|
'example' =>'/usr/share/php, '.DOL_DOCUMENT_ROOT . '/includes/ccampbell/chromephp/'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/includes/autoload.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT . '/core/modules/syslog/logHandler.php';
|
require_once DOL_DOCUMENT_ROOT . '/core/modules/syslog/logHandler.php';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
* \brief File that include conf.php file and commons lib like functions.lib.php
|
* \brief File that include conf.php file and commons lib like functions.lib.php
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.8.0-beta');
|
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.9.0-beta');
|
||||||
|
|
||||||
if (! defined('EURO')) define('EURO',chr(128));
|
if (! defined('EURO')) define('EURO',chr(128));
|
||||||
|
|
||||||
|
|||||||
@ -38,12 +38,13 @@ if ($user->societe_id) $socid=$user->societe_id;
|
|||||||
$result = restrictedArea($user, 'ftp','');
|
$result = restrictedArea($user, 'ftp','');
|
||||||
|
|
||||||
// Get parameters
|
// Get parameters
|
||||||
$action = isset($_GET["action"])?$_GET["action"]:$_POST['action'];
|
$action=GETPOST('action');
|
||||||
$section=isset($_GET["section"])?$_GET["section"]:$_POST['section'];
|
$section=GETPOST('section');
|
||||||
if (! $section) $section='/';
|
if (! $section) $section='/';
|
||||||
$numero_ftp = GETPOST("numero_ftp");
|
$numero_ftp = GETPOST("numero_ftp");
|
||||||
if (! $numero_ftp) $numero_ftp=1;
|
/* if (! $numero_ftp) $numero_ftp=1; */
|
||||||
$file=isset($_GET["file"])?$_GET["file"]:$_POST['file'];
|
$file=GETPOST("file");
|
||||||
|
$confirm=GETPOST('confirm');
|
||||||
|
|
||||||
$upload_dir = $conf->ftp->dir_temp;
|
$upload_dir = $conf->ftp->dir_temp;
|
||||||
$download_dir = $conf->ftp->dir_temp;
|
$download_dir = $conf->ftp->dir_temp;
|
||||||
@ -71,18 +72,19 @@ $ftp_user=$conf->global->$s_ftp_user;
|
|||||||
$ftp_password=$conf->global->$s_ftp_password;
|
$ftp_password=$conf->global->$s_ftp_password;
|
||||||
$ftp_passive=$conf->global->$s_ftp_passive;
|
$ftp_passive=$conf->global->$s_ftp_passive;
|
||||||
|
|
||||||
|
// For result on connection
|
||||||
|
$ok=0;
|
||||||
$conn_id=null; // FTP connection ID
|
$conn_id=null; // FTP connection ID
|
||||||
|
$mesg='';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************
|
/*
|
||||||
* ACTIONS
|
* ACTIONS
|
||||||
*
|
*/
|
||||||
* Put here all code to do according to value of "action" parameter
|
|
||||||
********************************************************************/
|
|
||||||
|
|
||||||
// Envoie fichier
|
// Submit file
|
||||||
if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
if (GETPOST("sendit") && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
|
||||||
@ -127,7 +129,7 @@ if ( $_POST["sendit"] && ! empty($conf->global->MAIN_UPLOAD_DOC))
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Action ajout d'un rep
|
// Action ajout d'un rep
|
||||||
if ($_POST["action"] == 'add' && $user->rights->ftp->setup)
|
if ($action == 'add' && $user->rights->ftp->setup)
|
||||||
{
|
{
|
||||||
$ecmdir->ref = $_POST["ref"];
|
$ecmdir->ref = $_POST["ref"];
|
||||||
$ecmdir->label = $_POST["label"];
|
$ecmdir->label = $_POST["label"];
|
||||||
@ -143,12 +145,12 @@ if ($_POST["action"] == 'add' && $user->rights->ftp->setup)
|
|||||||
{
|
{
|
||||||
//TODO: Translate
|
//TODO: Translate
|
||||||
setEventMessage('Error '.$langs->trans($ecmdir->error));
|
setEventMessage('Error '.$langs->trans($ecmdir->error));
|
||||||
$_GET["action"] = "create";
|
$action = "create";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove file
|
// Remove file
|
||||||
if ($_REQUEST['action'] == 'confirm_deletefile' && $_REQUEST['confirm'] == 'yes')
|
if ($action == 'confirm_deletefile' && $_REQUEST['confirm'] == 'yes')
|
||||||
{
|
{
|
||||||
// set up a connection or die
|
// set up a connection or die
|
||||||
if (! $conn_id)
|
if (! $conn_id)
|
||||||
@ -246,7 +248,7 @@ if ($_POST["const"] && $_POST["delete"] && $_POST["delete"] == $langs->trans("De
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Remove directory
|
// Remove directory
|
||||||
if ($_REQUEST['action'] == 'confirm_deletesection' && $_REQUEST['confirm'] == 'yes')
|
if ($action == 'confirm_deletesection' && $confirm == 'yes')
|
||||||
{
|
{
|
||||||
// set up a connection or die
|
// set up a connection or die
|
||||||
if (! $conn_id)
|
if (! $conn_id)
|
||||||
@ -286,7 +288,7 @@ if ($_REQUEST['action'] == 'confirm_deletesection' && $_REQUEST['confirm'] == 'y
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Download directory
|
// Download directory
|
||||||
if ($_REQUEST['action'] == 'download')
|
if ($action == 'download')
|
||||||
{
|
{
|
||||||
// set up a connection or die
|
// set up a connection or die
|
||||||
if (! $conn_id)
|
if (! $conn_id)
|
||||||
@ -339,8 +341,7 @@ if ($_REQUEST['action'] == 'download')
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//TODO: Translate
|
setEventMessages($langs->trans('FailedToGetFile',$remotefile), null, 'errors');
|
||||||
setEventMessage('Failed to get file '.$remotefile, 'errors');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -355,11 +356,9 @@ if ($_REQUEST['action'] == 'download')
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************
|
/*
|
||||||
* PAGE
|
* View
|
||||||
*
|
*/
|
||||||
* Put here all code to do according to value of "action" parameter
|
|
||||||
********************************************************************/
|
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
@ -370,11 +369,24 @@ if ($conf->use_javascript_ajax)
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
jQuery(document).ready(function() {
|
jQuery(document).ready(function() {
|
||||||
jQuery("#delconst").hide();
|
jQuery("#delconst").hide();
|
||||||
|
|
||||||
jQuery(".checkboxfordelete").click(function() {
|
jQuery(".checkboxfordelete").click(function() {
|
||||||
jQuery("#delconst").show();
|
jQuery("#delconst").show();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#checkall").click(function() {
|
||||||
|
$(".checkboxfordelete").prop('checked', true);
|
||||||
|
jQuery("#delconst").show();
|
||||||
|
});
|
||||||
|
$("#checknone").click(function() {
|
||||||
|
$(".checkboxfordelete").prop('checked', false);
|
||||||
|
jQuery("#delconst").hide();
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,10 +395,7 @@ $formfile=new FormFile($db);
|
|||||||
$userstatic = new User($db);
|
$userstatic = new User($db);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//***********************
|
|
||||||
// List
|
// List
|
||||||
//***********************
|
|
||||||
print_fiche_titre($langs->trans("FTPArea"));
|
print_fiche_titre($langs->trans("FTPArea"));
|
||||||
|
|
||||||
print $langs->trans("FTPAreaDesc")."<br>";
|
print $langs->trans("FTPAreaDesc")."<br>";
|
||||||
@ -397,18 +406,17 @@ if (! function_exists('ftp_connect'))
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (! empty($ftp_server))
|
if (! empty($ftp_server))
|
||||||
{
|
{
|
||||||
|
|
||||||
// Confirm remove file
|
// Confirm remove file
|
||||||
if ($_GET['action'] == 'delete')
|
if ($action == 'delete')
|
||||||
{
|
{
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode($_REQUEST["section"]).'&file='.urlencode($_GET["file"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile','','',1);
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode($_REQUEST["section"]).'&file='.urlencode($_GET["file"]), $langs->trans('DeleteFile'), $langs->trans('ConfirmDeleteFile'), 'confirm_deletefile','','',1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Confirmation de la suppression d'une ligne categorie
|
// Confirmation de la suppression d'une ligne categorie
|
||||||
if ($_GET['action'] == 'delete_section')
|
if ($action == 'delete_section')
|
||||||
{
|
{
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode($_REQUEST["section"]).'&file='.urlencode($_GET["file"]), $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection',$ecmdir->label), 'confirm_deletesection','','',1);
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?numero_ftp='.$numero_ftp.'§ion='.urlencode($_REQUEST["section"]).'&file='.urlencode($_GET["file"]), $langs->trans('DeleteSection'), $langs->trans('ConfirmDeleteSection',$ecmdir->label), 'confirm_deletesection','','',1);
|
||||||
|
|
||||||
@ -417,8 +425,9 @@ else
|
|||||||
print $langs->trans("Server").': <b>'.$ftp_server.'</b><br>';
|
print $langs->trans("Server").': <b>'.$ftp_server.'</b><br>';
|
||||||
print $langs->trans("Port").': <b>'.$ftp_port.'</b> '.($ftp_passive?"(Passive)":"(Active)").'<br>';
|
print $langs->trans("Port").': <b>'.$ftp_port.'</b> '.($ftp_passive?"(Passive)":"(Active)").'<br>';
|
||||||
print $langs->trans("User").': <b>'.$ftp_user.'</b><br>';
|
print $langs->trans("User").': <b>'.$ftp_user.'</b><br>';
|
||||||
|
print $langs->trans("FTPs (FTP over SSH)").': <b>'.yn($conf->global->FTP_CONNECT_WITH_SSL).'</b><br>';
|
||||||
print $langs->trans("Directory").': ';
|
print $langs->trans("SFTP (FTP as a subsytem of SSH)").': <b>'.yn($conf->global->FTP_CONNECT_WITH_SFTP).'</b><br>';
|
||||||
|
print $langs->trans("Directory").': ';
|
||||||
$sectionarray=preg_split('|[\/]|',$section);
|
$sectionarray=preg_split('|[\/]|',$section);
|
||||||
// For /
|
// For /
|
||||||
$newsection='/';
|
$newsection='/';
|
||||||
@ -459,30 +468,50 @@ else
|
|||||||
print '<td class="liste_titre" align="center">'.$langs->trans("Owner").'</td>'."\n";
|
print '<td class="liste_titre" align="center">'.$langs->trans("Owner").'</td>'."\n";
|
||||||
print '<td class="liste_titre" align="center">'.$langs->trans("Group").'</td>'."\n";
|
print '<td class="liste_titre" align="center">'.$langs->trans("Group").'</td>'."\n";
|
||||||
print '<td class="liste_titre" align="center">'.$langs->trans("Permissions").'</td>'."\n";
|
print '<td class="liste_titre" align="center">'.$langs->trans("Permissions").'</td>'."\n";
|
||||||
print '<td class="liste_titre" align="right">';
|
print '<td class="liste_titre nowrap" align="right">';
|
||||||
|
if ($conf->use_javascript_ajax) print '<a href="#" id="checkall">'.$langs->trans("All").'</a> / <a href="#" id="checknone">'.$langs->trans("None").'</a> ';
|
||||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=refreshmanual&numero_ftp='.$numero_ftp.($section?'§ion='.urlencode($section):'').'">'.img_picto($langs->trans("Refresh"),'refresh').'</a> ';
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=refreshmanual&numero_ftp='.$numero_ftp.($section?'§ion='.urlencode($section):'').'">'.img_picto($langs->trans("Refresh"),'refresh').'</a> ';
|
||||||
print '</td>'."\n";
|
print '</td>'."\n";
|
||||||
print '</tr>'."\n";
|
print '</tr>'."\n";
|
||||||
|
|
||||||
// set up a connection or die
|
// set up a connection or die
|
||||||
if (! $conn_id)
|
if (empty($conn_id))
|
||||||
{
|
{
|
||||||
$resultarray=dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $section, $ftp_passive);
|
$resultarray=dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $section, $ftp_passive);
|
||||||
|
|
||||||
$conn_id=$resultarray['conn_id'];
|
$conn_id=$resultarray['conn_id'];
|
||||||
$ok=$resultarray['ok'];
|
$ok=$resultarray['ok'];
|
||||||
$mesg=$resultarray['mesg'];
|
$mesg=$resultarray['mesg'];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ok)
|
if ($ok)
|
||||||
{
|
{
|
||||||
//$type = ftp_systype($conn_id);
|
//$type = ftp_systype($conn_id);
|
||||||
|
|
||||||
$newsectioniso=utf8_decode($section);
|
$newsection=$section;
|
||||||
$buff = ftp_rawlist($conn_id, $newsectioniso);
|
$newsectioniso=utf8_decode($section);
|
||||||
$contents = ftp_nlist($conn_id, $newsectioniso); // Sometimes rawlist fails but never nlist
|
//$newsection='/home';
|
||||||
//var_dump($contents);
|
|
||||||
//var_dump($buff);
|
// List content of directory ($newsection = '/', '/home', ...)
|
||||||
|
if (! empty($conf->global->FTP_CONNECT_WITH_SFTP))
|
||||||
|
{
|
||||||
|
if ($newsection == '/') $newsection='/./'; // workaround for bug https://bugs.php.net/bug.php?id=64169
|
||||||
|
//$dirHandle = opendir("ssh2.sftp://$conn_id".$newsection);
|
||||||
|
//var_dump($dirHandle);
|
||||||
|
$contents = scandir('ssh2.sftp://' . $conn_id . $newsection);
|
||||||
|
$buff=array();
|
||||||
|
foreach($contents as $i => $key)
|
||||||
|
{
|
||||||
|
$buff[$i]="---------- - root root 1234 Aug 01 2000 ".$key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$buff = ftp_rawlist($conn_id, $newsectioniso);
|
||||||
|
$contents = ftp_nlist($conn_id, $newsectioniso); // Sometimes rawlist fails but never nlist
|
||||||
|
//var_dump($contents);
|
||||||
|
//var_dump($buff);
|
||||||
|
}
|
||||||
|
|
||||||
$nboflines=count($contents);
|
$nboflines=count($contents);
|
||||||
$var=true;
|
$var=true;
|
||||||
@ -590,9 +619,16 @@ else
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
|
||||||
|
|
||||||
|
if (! $ok)
|
||||||
|
{
|
||||||
|
print $mesg.'<br>'."\n";
|
||||||
|
setEventMessages($mesg, null, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
/*
|
/*
|
||||||
if ($user->rights->ftp->write && ! empty($section))
|
if ($user->rights->ftp->write && ! empty($section))
|
||||||
@ -611,20 +647,43 @@ else
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $langs->trans("SetupOfFTPClientModuleNotComplete");
|
$s_ftp_server='FTP_SERVER_1';
|
||||||
|
if (empty($s_ftp_server))
|
||||||
|
{
|
||||||
|
print $langs->trans("SetupOfFTPClientModuleNotComplete");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $langs->trans("ChooseAFTPEntryIntoMenu");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
// Close FTP connection
|
// Close FTP connection
|
||||||
if ($conn_id) ftp_close($conn_id);
|
if ($conn_id)
|
||||||
|
{
|
||||||
|
if (! empty($conf->global->FTP_CONNECT_WITH_SFTP))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (! empty($conf->global->FTP_CONNECT_WITH_SSL))
|
||||||
|
{
|
||||||
|
ftp_close($conn_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ftp_close($conn_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// End of page
|
|
||||||
$db->close();
|
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connect to FTP server
|
* Connect to FTP server
|
||||||
@ -642,46 +701,90 @@ function dol_ftp_connect($ftp_server, $ftp_port, $ftp_user, $ftp_password, $sect
|
|||||||
global $langs, $conf;
|
global $langs, $conf;
|
||||||
|
|
||||||
$ok=1;
|
$ok=1;
|
||||||
|
$conn_id=null;
|
||||||
|
|
||||||
if (! is_numeric($ftp_port))
|
if (! is_numeric($ftp_port))
|
||||||
{
|
{
|
||||||
$mesg=$langs->trans("FailedToConnectToFTPServer",$ftp_server,$ftp_port);
|
$mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServer",$ftp_server,$ftp_port);
|
||||||
$ok=0;
|
$ok=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ok)
|
if ($ok)
|
||||||
{
|
{
|
||||||
$connecttimeout=(empty($conf->global->FTP_CONNECT_TIMEOUT)?40:$conf->global->FTP_CONNECT_TIMEOUT);
|
$connecttimeout=(empty($conf->global->FTP_CONNECT_TIMEOUT)?40:$conf->global->FTP_CONNECT_TIMEOUT);
|
||||||
if (! empty($conf->global->FTP_CONNECT_WITH_SSL)) $conn_id = ftp_ssl_connect($ftp_server, $ftp_port, $connecttimeout);
|
if (! empty($conf->global->FTP_CONNECT_WITH_SFTP))
|
||||||
else $conn_id = ftp_connect($ftp_server, $ftp_port, $connecttimeout);
|
{
|
||||||
if ($conn_id)
|
dol_syslog('Try to connect with ssh2_ftp');
|
||||||
|
$tmp_conn_id = ssh2_connect($ftp_server, $ftp_port);
|
||||||
|
}
|
||||||
|
else if (! empty($conf->global->FTP_CONNECT_WITH_SSL))
|
||||||
|
{
|
||||||
|
dol_syslog('Try to connect with ftp_ssl_connect');
|
||||||
|
$conn_id = ftp_ssl_connect($ftp_server, $ftp_port, $connecttimeout);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dol_syslog('Try to connect with ftp_connect');
|
||||||
|
$conn_id = ftp_connect($ftp_server, $ftp_port, $connecttimeout);
|
||||||
|
}
|
||||||
|
if ($conn_id || $tmp_conn_id)
|
||||||
{
|
{
|
||||||
if ($ftp_user)
|
if ($ftp_user)
|
||||||
{
|
{
|
||||||
if (ftp_login($conn_id, $ftp_user, $ftp_password))
|
if (! empty($conf->global->FTP_CONNECT_WITH_SFTP))
|
||||||
{
|
{
|
||||||
// Turn on passive mode transfers (must be after a successful login
|
if (ssh2_auth_password($tmp_conn_id, $ftp_user, $ftp_password))
|
||||||
if ($ftp_passive) ftp_pasv($conn_id, true);
|
{
|
||||||
|
// Turn on passive mode transfers (must be after a successful login
|
||||||
|
//if ($ftp_passive) ftp_pasv($conn_id, true);
|
||||||
|
|
||||||
// Change the dir
|
// Change the dir
|
||||||
$newsectioniso=utf8_decode($section);
|
$newsectioniso=utf8_decode($section);
|
||||||
ftp_chdir($conn_id, $newsectioniso);
|
//ftp_chdir($conn_id, $newsectioniso);
|
||||||
|
$conn_id = ssh2_sftp($tmp_conn_id);
|
||||||
|
if (! $conn_id)
|
||||||
|
{
|
||||||
|
$mesg=$langs->transnoentitiesnoconv("FailedToConnectToSFTPAfterSSHAuthentication");
|
||||||
|
$ok=0;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials");
|
||||||
|
$ok=0;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$mesg=$langs->trans("FailedToConnectToFTPServerWithCredentials");
|
if (ftp_login($conn_id, $ftp_user, $ftp_password))
|
||||||
$ok=0;
|
{
|
||||||
|
// Turn on passive mode transfers (must be after a successful login
|
||||||
|
if ($ftp_passive) ftp_pasv($conn_id, true);
|
||||||
|
|
||||||
|
// Change the dir
|
||||||
|
$newsectioniso=utf8_decode($section);
|
||||||
|
ftp_chdir($conn_id, $newsectioniso);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServerWithCredentials");
|
||||||
|
$ok=0;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$mesg=$langs->trans("FailedToConnectToFTPServer",$ftp_server,$ftp_port);
|
dol_syslog('FailedToConnectToFTPServer '.$ftp_server.' '.$ftp_port, LOG_ERR);
|
||||||
|
$mesg=$langs->transnoentitiesnoconv("FailedToConnectToFTPServer",$ftp_server,$ftp_port);
|
||||||
$ok=0;
|
$ok=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$arrayresult=array('conn_id'=>$conn_id, 'ok'=>$ok, 'mesg'=>$mesg);
|
$arrayresult=array('conn_id'=>$conn_id, 'ok'=>$ok, 'mesg'=>$mesg, 'curdir'=>$section, 'curdiriso'=>$newsectioniso);
|
||||||
return $arrayresult;
|
return $arrayresult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload.php @generated by Composer
|
|
||||||
|
|
||||||
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
|
||||||
|
|
||||||
return ComposerAutoloaderInit8837e679482b97ebb428daf0298d9535::getLoader();
|
|
||||||
@ -1,413 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Composer.
|
|
||||||
*
|
|
||||||
* (c) Nils Adermann <naderman@naderman.de>
|
|
||||||
* Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Composer\Autoload;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ClassLoader implements a PSR-0 class loader
|
|
||||||
*
|
|
||||||
* See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md
|
|
||||||
*
|
|
||||||
* $loader = new \Composer\Autoload\ClassLoader();
|
|
||||||
*
|
|
||||||
* // register classes with namespaces
|
|
||||||
* $loader->add('Symfony\Component', __DIR__.'/component');
|
|
||||||
* $loader->add('Symfony', __DIR__.'/framework');
|
|
||||||
*
|
|
||||||
* // activate the autoloader
|
|
||||||
* $loader->register();
|
|
||||||
*
|
|
||||||
* // to enable searching the include path (eg. for PEAR packages)
|
|
||||||
* $loader->setUseIncludePath(true);
|
|
||||||
*
|
|
||||||
* In this example, if you try to use a class in the Symfony\Component
|
|
||||||
* namespace or one of its children (Symfony\Component\Console for instance),
|
|
||||||
* the autoloader will first look for the class under the component/
|
|
||||||
* directory, and it will then fallback to the framework/ directory if not
|
|
||||||
* found before giving up.
|
|
||||||
*
|
|
||||||
* This class is loosely based on the Symfony UniversalClassLoader.
|
|
||||||
*
|
|
||||||
* @author Fabien Potencier <fabien@symfony.com>
|
|
||||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
*/
|
|
||||||
class ClassLoader
|
|
||||||
{
|
|
||||||
// PSR-4
|
|
||||||
private $prefixLengthsPsr4 = array();
|
|
||||||
private $prefixDirsPsr4 = array();
|
|
||||||
private $fallbackDirsPsr4 = array();
|
|
||||||
|
|
||||||
// PSR-0
|
|
||||||
private $prefixesPsr0 = array();
|
|
||||||
private $fallbackDirsPsr0 = array();
|
|
||||||
|
|
||||||
private $useIncludePath = false;
|
|
||||||
private $classMap = array();
|
|
||||||
|
|
||||||
private $classMapAuthoritative = false;
|
|
||||||
|
|
||||||
public function getPrefixes()
|
|
||||||
{
|
|
||||||
if (!empty($this->prefixesPsr0)) {
|
|
||||||
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
|
||||||
}
|
|
||||||
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPrefixesPsr4()
|
|
||||||
{
|
|
||||||
return $this->prefixDirsPsr4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getFallbackDirs()
|
|
||||||
{
|
|
||||||
return $this->fallbackDirsPsr0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getFallbackDirsPsr4()
|
|
||||||
{
|
|
||||||
return $this->fallbackDirsPsr4;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getClassMap()
|
|
||||||
{
|
|
||||||
return $this->classMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $classMap Class to filename map
|
|
||||||
*/
|
|
||||||
public function addClassMap(array $classMap)
|
|
||||||
{
|
|
||||||
if ($this->classMap) {
|
|
||||||
$this->classMap = array_merge($this->classMap, $classMap);
|
|
||||||
} else {
|
|
||||||
$this->classMap = $classMap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-0 directories for a given prefix, either
|
|
||||||
* appending or prepending to the ones previously set for this prefix.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix
|
|
||||||
* @param array|string $paths The PSR-0 root directories
|
|
||||||
* @param bool $prepend Whether to prepend the directories
|
|
||||||
*/
|
|
||||||
public function add($prefix, $paths, $prepend = false)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
if ($prepend) {
|
|
||||||
$this->fallbackDirsPsr0 = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->fallbackDirsPsr0
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->fallbackDirsPsr0 = array_merge(
|
|
||||||
$this->fallbackDirsPsr0,
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$first = $prefix[0];
|
|
||||||
if (!isset($this->prefixesPsr0[$first][$prefix])) {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ($prepend) {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->prefixesPsr0[$first][$prefix]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->prefixesPsr0[$first][$prefix] = array_merge(
|
|
||||||
$this->prefixesPsr0[$first][$prefix],
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-4 directories for a given namespace, either
|
|
||||||
* appending or prepending to the ones previously set for this namespace.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
|
||||||
* @param array|string $paths The PSR-0 base directories
|
|
||||||
* @param bool $prepend Whether to prepend the directories
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function addPsr4($prefix, $paths, $prepend = false)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
// Register directories for the root namespace.
|
|
||||||
if ($prepend) {
|
|
||||||
$this->fallbackDirsPsr4 = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->fallbackDirsPsr4
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$this->fallbackDirsPsr4 = array_merge(
|
|
||||||
$this->fallbackDirsPsr4,
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
|
|
||||||
// Register directories for a new namespace.
|
|
||||||
$length = strlen($prefix);
|
|
||||||
if ('\\' !== $prefix[$length - 1]) {
|
|
||||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
|
||||||
}
|
|
||||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
|
||||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
|
||||||
} elseif ($prepend) {
|
|
||||||
// Prepend directories for an already registered namespace.
|
|
||||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
|
||||||
(array) $paths,
|
|
||||||
$this->prefixDirsPsr4[$prefix]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
// Append directories for an already registered namespace.
|
|
||||||
$this->prefixDirsPsr4[$prefix] = array_merge(
|
|
||||||
$this->prefixDirsPsr4[$prefix],
|
|
||||||
(array) $paths
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-0 directories for a given prefix,
|
|
||||||
* replacing any others previously set for this prefix.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix
|
|
||||||
* @param array|string $paths The PSR-0 base directories
|
|
||||||
*/
|
|
||||||
public function set($prefix, $paths)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
$this->fallbackDirsPsr0 = (array) $paths;
|
|
||||||
} else {
|
|
||||||
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers a set of PSR-4 directories for a given namespace,
|
|
||||||
* replacing any others previously set for this namespace.
|
|
||||||
*
|
|
||||||
* @param string $prefix The prefix/namespace, with trailing '\\'
|
|
||||||
* @param array|string $paths The PSR-4 base directories
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function setPsr4($prefix, $paths)
|
|
||||||
{
|
|
||||||
if (!$prefix) {
|
|
||||||
$this->fallbackDirsPsr4 = (array) $paths;
|
|
||||||
} else {
|
|
||||||
$length = strlen($prefix);
|
|
||||||
if ('\\' !== $prefix[$length - 1]) {
|
|
||||||
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
|
|
||||||
}
|
|
||||||
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
|
|
||||||
$this->prefixDirsPsr4[$prefix] = (array) $paths;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Turns on searching the include path for class files.
|
|
||||||
*
|
|
||||||
* @param bool $useIncludePath
|
|
||||||
*/
|
|
||||||
public function setUseIncludePath($useIncludePath)
|
|
||||||
{
|
|
||||||
$this->useIncludePath = $useIncludePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Can be used to check if the autoloader uses the include path to check
|
|
||||||
* for classes.
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function getUseIncludePath()
|
|
||||||
{
|
|
||||||
return $this->useIncludePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Turns off searching the prefix and fallback directories for classes
|
|
||||||
* that have not been registered with the class map.
|
|
||||||
*
|
|
||||||
* @param bool $classMapAuthoritative
|
|
||||||
*/
|
|
||||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
|
||||||
{
|
|
||||||
$this->classMapAuthoritative = $classMapAuthoritative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Should class lookup fail if not found in the current class map?
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function isClassMapAuthoritative()
|
|
||||||
{
|
|
||||||
return $this->classMapAuthoritative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Registers this instance as an autoloader.
|
|
||||||
*
|
|
||||||
* @param bool $prepend Whether to prepend the autoloader or not
|
|
||||||
*/
|
|
||||||
public function register($prepend = false)
|
|
||||||
{
|
|
||||||
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Unregisters this instance as an autoloader.
|
|
||||||
*/
|
|
||||||
public function unregister()
|
|
||||||
{
|
|
||||||
spl_autoload_unregister(array($this, 'loadClass'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Loads the given class or interface.
|
|
||||||
*
|
|
||||||
* @param string $class The name of the class
|
|
||||||
* @return bool|null True if loaded, null otherwise
|
|
||||||
*/
|
|
||||||
public function loadClass($class)
|
|
||||||
{
|
|
||||||
if ($file = $this->findFile($class)) {
|
|
||||||
includeFile($file);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finds the path to the file where the class is defined.
|
|
||||||
*
|
|
||||||
* @param string $class The name of the class
|
|
||||||
*
|
|
||||||
* @return string|false The path if found, false otherwise
|
|
||||||
*/
|
|
||||||
public function findFile($class)
|
|
||||||
{
|
|
||||||
// work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
|
|
||||||
if ('\\' == $class[0]) {
|
|
||||||
$class = substr($class, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// class map lookup
|
|
||||||
if (isset($this->classMap[$class])) {
|
|
||||||
return $this->classMap[$class];
|
|
||||||
}
|
|
||||||
if ($this->classMapAuthoritative) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$file = $this->findFileWithExtension($class, '.php');
|
|
||||||
|
|
||||||
// Search for Hack files if we are running on HHVM
|
|
||||||
if ($file === null && defined('HHVM_VERSION')) {
|
|
||||||
$file = $this->findFileWithExtension($class, '.hh');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($file === null) {
|
|
||||||
// Remember that this class does not exist.
|
|
||||||
return $this->classMap[$class] = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function findFileWithExtension($class, $ext)
|
|
||||||
{
|
|
||||||
// PSR-4 lookup
|
|
||||||
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
|
|
||||||
|
|
||||||
$first = $class[0];
|
|
||||||
if (isset($this->prefixLengthsPsr4[$first])) {
|
|
||||||
foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
|
|
||||||
if (0 === strpos($class, $prefix)) {
|
|
||||||
foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-4 fallback dirs
|
|
||||||
foreach ($this->fallbackDirsPsr4 as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 lookup
|
|
||||||
if (false !== $pos = strrpos($class, '\\')) {
|
|
||||||
// namespaced class name
|
|
||||||
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
|
|
||||||
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
|
|
||||||
} else {
|
|
||||||
// PEAR-like class name
|
|
||||||
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($this->prefixesPsr0[$first])) {
|
|
||||||
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
|
|
||||||
if (0 === strpos($class, $prefix)) {
|
|
||||||
foreach ($dirs as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 fallback dirs
|
|
||||||
foreach ($this->fallbackDirsPsr0 as $dir) {
|
|
||||||
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PSR-0 include paths.
|
|
||||||
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Scope isolated include.
|
|
||||||
*
|
|
||||||
* Prevents access to $this/self from included files.
|
|
||||||
*/
|
|
||||||
function includeFile($file)
|
|
||||||
{
|
|
||||||
include $file;
|
|
||||||
}
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
Copyright (c) 2015 Nils Adermann, Jordi Boggiano
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished
|
|
||||||
to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_classmap.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname(dirname($vendorDir));
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'Datamatrix' => $vendorDir . '/tecnick.com/tcpdf/include/barcodes/datamatrix.php',
|
|
||||||
'Mobile_Detect' => $vendorDir . '/mobiledetect/mobiledetectlib/Mobile_Detect.php',
|
|
||||||
'PDF417' => $vendorDir . '/tecnick.com/tcpdf/include/barcodes/pdf417.php',
|
|
||||||
'QRcode' => $vendorDir . '/tecnick.com/tcpdf/include/barcodes/qrcode.php',
|
|
||||||
'TCPDF' => $vendorDir . '/tecnick.com/tcpdf/tcpdf.php',
|
|
||||||
'TCPDF2DBarcode' => $vendorDir . '/tecnick.com/tcpdf/tcpdf_barcodes_2d.php',
|
|
||||||
'TCPDFBarcode' => $vendorDir . '/tecnick.com/tcpdf/tcpdf_barcodes_1d.php',
|
|
||||||
'TCPDF_COLORS' => $vendorDir . '/tecnick.com/tcpdf/include/tcpdf_colors.php',
|
|
||||||
'TCPDF_FILTERS' => $vendorDir . '/tecnick.com/tcpdf/include/tcpdf_filters.php',
|
|
||||||
'TCPDF_FONTS' => $vendorDir . '/tecnick.com/tcpdf/include/tcpdf_fonts.php',
|
|
||||||
'TCPDF_FONT_DATA' => $vendorDir . '/tecnick.com/tcpdf/include/tcpdf_font_data.php',
|
|
||||||
'TCPDF_IMAGES' => $vendorDir . '/tecnick.com/tcpdf/include/tcpdf_images.php',
|
|
||||||
'TCPDF_IMPORT' => $vendorDir . '/tecnick.com/tcpdf/tcpdf_import.php',
|
|
||||||
'TCPDF_PARSER' => $vendorDir . '/tecnick.com/tcpdf/tcpdf_parser.php',
|
|
||||||
'TCPDF_STATIC' => $vendorDir . '/tecnick.com/tcpdf/include/tcpdf_static.php',
|
|
||||||
);
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_namespaces.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname(dirname($vendorDir));
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'Raven_' => array($vendorDir . '/raven/raven/lib'),
|
|
||||||
'PHPExcel' => array($vendorDir . '/phpoffice/phpexcel/Classes'),
|
|
||||||
'Luracast\\Restler' => array($vendorDir . '/restler/framework'),
|
|
||||||
'Detection' => array($vendorDir . '/mobiledetect/mobiledetectlib/namespaced'),
|
|
||||||
'ChromePhp' => array($vendorDir . '/ccampbell/chromephp'),
|
|
||||||
);
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_psr4.php @generated by Composer
|
|
||||||
|
|
||||||
$vendorDir = dirname(dirname(__FILE__));
|
|
||||||
$baseDir = dirname(dirname($vendorDir));
|
|
||||||
|
|
||||||
return array(
|
|
||||||
);
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
|
||||||
|
|
||||||
class ComposerAutoloaderInit8837e679482b97ebb428daf0298d9535
|
|
||||||
{
|
|
||||||
private static $loader;
|
|
||||||
|
|
||||||
public static function loadClassLoader($class)
|
|
||||||
{
|
|
||||||
if ('Composer\Autoload\ClassLoader' === $class) {
|
|
||||||
require __DIR__ . '/ClassLoader.php';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getLoader()
|
|
||||||
{
|
|
||||||
if (null !== self::$loader) {
|
|
||||||
return self::$loader;
|
|
||||||
}
|
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInit8837e679482b97ebb428daf0298d9535', 'loadClassLoader'), true, true);
|
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInit8837e679482b97ebb428daf0298d9535', 'loadClassLoader'));
|
|
||||||
|
|
||||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
|
||||||
foreach ($map as $namespace => $path) {
|
|
||||||
$loader->set($namespace, $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
$map = require __DIR__ . '/autoload_psr4.php';
|
|
||||||
foreach ($map as $namespace => $path) {
|
|
||||||
$loader->setPsr4($namespace, $path);
|
|
||||||
}
|
|
||||||
|
|
||||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
|
||||||
if ($classMap) {
|
|
||||||
$loader->addClassMap($classMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
$loader->register(true);
|
|
||||||
|
|
||||||
return $loader;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function composerRequire8837e679482b97ebb428daf0298d9535($file)
|
|
||||||
{
|
|
||||||
require $file;
|
|
||||||
}
|
|
||||||
@ -1,400 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"name": "ccampbell/chromephp",
|
|
||||||
"version": "4.1.0",
|
|
||||||
"version_normalized": "4.1.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/ccampbell/chromephp.git",
|
|
||||||
"reference": "c3c297615d48ae5b2a86a82311152d1ed095fcef"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/ccampbell/chromephp/zipball/c3c297615d48ae5b2a86a82311152d1ed095fcef",
|
|
||||||
"reference": "c3c297615d48ae5b2a86a82311152d1ed095fcef",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.0.0"
|
|
||||||
},
|
|
||||||
"time": "2013-06-26 03:44:33",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"ChromePhp": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"Apache-2.0"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Craig Campbell",
|
|
||||||
"email": "iamcraigcampbell@gmail.com",
|
|
||||||
"homepage": "http://craig.is",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Log variables to the Chrome console (via Chrome Logger Google Chrome extension).",
|
|
||||||
"homepage": "http://github.com/ccampbell/chromephp",
|
|
||||||
"keywords": [
|
|
||||||
"log",
|
|
||||||
"logging"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ckeditor/ckeditor",
|
|
||||||
"version": "4.3.3",
|
|
||||||
"version_normalized": "4.3.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/ckeditor/ckeditor-releases.git",
|
|
||||||
"reference": "0068dd540ce8bf1815abb7b5455c55354bc56334"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/ckeditor/ckeditor-releases/zipball/0068dd540ce8bf1815abb7b5455c55354bc56334",
|
|
||||||
"reference": "0068dd540ce8bf1815abb7b5455c55354bc56334",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"time": "2014-02-26 15:34:37",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"GPL-2.0+",
|
|
||||||
"LGPL-2.1+",
|
|
||||||
"MPL-1.1+"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "CKSource - Frederico Knabben",
|
|
||||||
"homepage": "http://cksource.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "JavaScript WYSIWYG web text editor.",
|
|
||||||
"homepage": "http://ckeditor.com",
|
|
||||||
"keywords": [
|
|
||||||
"CKEditor",
|
|
||||||
"editor",
|
|
||||||
"fckeditor",
|
|
||||||
"html",
|
|
||||||
"javascript",
|
|
||||||
"richtext",
|
|
||||||
"text",
|
|
||||||
"wysiwyg"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mobiledetect/mobiledetectlib",
|
|
||||||
"version": "2.8.3",
|
|
||||||
"version_normalized": "2.8.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/serbanghita/Mobile-Detect.git",
|
|
||||||
"reference": "f5753e4b90daffe50c902e99df5ce3c58fca3fee"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/f5753e4b90daffe50c902e99df5ce3c58fca3fee",
|
|
||||||
"reference": "f5753e4b90daffe50c902e99df5ce3c58fca3fee",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.0.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "*"
|
|
||||||
},
|
|
||||||
"time": "2014-07-10 20:00:25",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"Mobile_Detect.php"
|
|
||||||
],
|
|
||||||
"psr-0": {
|
|
||||||
"Detection": "namespaced/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Serban Ghita",
|
|
||||||
"email": "serbanghita@gmail.com",
|
|
||||||
"homepage": "http://ghita.org",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
|
|
||||||
"homepage": "https://github.com/serbanghita/Mobile-Detect",
|
|
||||||
"keywords": [
|
|
||||||
"detect mobile devices",
|
|
||||||
"mobile",
|
|
||||||
"mobile detect",
|
|
||||||
"mobile detector",
|
|
||||||
"php mobile detect"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "phpoffice/phpexcel",
|
|
||||||
"version": "1.8.0",
|
|
||||||
"version_normalized": "1.8.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/PHPOffice/PHPExcel.git",
|
|
||||||
"reference": "e69a5e4d0ffa7fb6f171859e0a04346e580df30b"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/PHPOffice/PHPExcel/zipball/e69a5e4d0ffa7fb6f171859e0a04346e580df30b",
|
|
||||||
"reference": "e69a5e4d0ffa7fb6f171859e0a04346e580df30b",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-xml": "*",
|
|
||||||
"ext-xmlwriter": "*",
|
|
||||||
"php": ">=5.2.0"
|
|
||||||
},
|
|
||||||
"time": "2014-03-02 15:22:49",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"PHPExcel": "Classes/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"LGPL"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Maarten Balliauw",
|
|
||||||
"homepage": "http://blog.maartenballiauw.be"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Mark Baker"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Franck Lefevre",
|
|
||||||
"homepage": "http://blog.rootslabs.net"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Erik Tilt"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
|
|
||||||
"homepage": "http://phpexcel.codeplex.com",
|
|
||||||
"keywords": [
|
|
||||||
"OpenXML",
|
|
||||||
"excel",
|
|
||||||
"php",
|
|
||||||
"spreadsheet",
|
|
||||||
"xls",
|
|
||||||
"xlsx"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "restler/framework",
|
|
||||||
"version": "3.0.0",
|
|
||||||
"version_normalized": "3.0.0.0",
|
|
||||||
"target-dir": "Luracast/Restler",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Luracast/Restler-Framework.git",
|
|
||||||
"reference": "6ee10b3e5dbc6376916fed55ec2340a37cce436b"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Luracast/Restler-Framework/zipball/6ee10b3e5dbc6376916fed55ec2340a37cce436b",
|
|
||||||
"reference": "6ee10b3e5dbc6376916fed55ec2340a37cce436b",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"replace": {
|
|
||||||
"luracast/restler": "3.*"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"bshaffer/oauth2-server-php": "v1.0",
|
|
||||||
"luracast/explorer": "*",
|
|
||||||
"mustache/mustache": "dev-master",
|
|
||||||
"rodneyrehm/plist": "dev-master",
|
|
||||||
"symfony/yaml": "*",
|
|
||||||
"twig/twig": "v1.13.0",
|
|
||||||
"zendframework/zendamf": "dev-master"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"bshaffer/oauth2-server-php": "Restler can provide OAuth2 authentication using this library (see require-dev for details)",
|
|
||||||
"luracast/explorer": "Restler's very own api explorer (see require-dev for details)",
|
|
||||||
"mustache/mustache": "Restler can render HtmlView using mustache/handlebar templates (see require-dev for details)",
|
|
||||||
"rodneyrehm/plist": "Restler supports tho Apple plist xml format (see require-dev for details)",
|
|
||||||
"symfony/yaml": "Restler can produce content in yaml format as well (see require-dev for details)",
|
|
||||||
"twig/twig": "Restler can render HtmlView using twig templates (see require-dev for details)",
|
|
||||||
"zendframework/zendamf": "Support for the amf document format (see require-dev for details)"
|
|
||||||
},
|
|
||||||
"time": "2015-08-04 07:52:49",
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"master": "v3.0.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Luracast\\Restler": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"LGPL-2.1"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Luracast",
|
|
||||||
"email": "arul@luracast.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Nick nickl- Lombard",
|
|
||||||
"email": "github@jigsoft.co.za"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Just the Restler Framework without the tests and examples",
|
|
||||||
"homepage": "http://luracast.com/products/restler/",
|
|
||||||
"keywords": [
|
|
||||||
"api",
|
|
||||||
"framework",
|
|
||||||
"rest",
|
|
||||||
"server"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tecnick.com/tcpdf",
|
|
||||||
"version": "6.2.6",
|
|
||||||
"version_normalized": "6.2.6.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/tecnickcom/TCPDF.git",
|
|
||||||
"reference": "a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb",
|
|
||||||
"reference": "a2e8f5b505a7a14a4ed960313c4baf699fd1f4bb",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"time": "2015-01-28 18:51:40",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"fonts",
|
|
||||||
"config",
|
|
||||||
"include",
|
|
||||||
"tcpdf.php",
|
|
||||||
"tcpdf_parser.php",
|
|
||||||
"tcpdf_import.php",
|
|
||||||
"tcpdf_barcodes_1d.php",
|
|
||||||
"tcpdf_barcodes_2d.php",
|
|
||||||
"include/tcpdf_colors.php",
|
|
||||||
"include/tcpdf_filters.php",
|
|
||||||
"include/tcpdf_font_data.php",
|
|
||||||
"include/tcpdf_fonts.php",
|
|
||||||
"include/tcpdf_images.php",
|
|
||||||
"include/tcpdf_static.php",
|
|
||||||
"include/barcodes/datamatrix.php",
|
|
||||||
"include/barcodes/pdf417.php",
|
|
||||||
"include/barcodes/qrcode.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"LGPLv3"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nicola Asuni",
|
|
||||||
"email": "info@tecnick.com",
|
|
||||||
"homepage": "http://nicolaasuni.tecnick.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
|
|
||||||
"homepage": "http://www.tcpdf.org/",
|
|
||||||
"keywords": [
|
|
||||||
"PDFD32000-2008",
|
|
||||||
"TCPDF",
|
|
||||||
"barcodes",
|
|
||||||
"datamatrix",
|
|
||||||
"pdf",
|
|
||||||
"pdf417",
|
|
||||||
"qrcode"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "raven/raven",
|
|
||||||
"version": "0.12.1",
|
|
||||||
"version_normalized": "0.12.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/getsentry/raven-php.git",
|
|
||||||
"reference": "b325984c792ff89f985b73da9a3ad8ed8b520bca"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/getsentry/raven-php/zipball/b325984c792ff89f985b73da9a3ad8ed8b520bca",
|
|
||||||
"reference": "b325984c792ff89f985b73da9a3ad8ed8b520bca",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-curl": "*",
|
|
||||||
"php": ">=5.2.4"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"fabpot/php-cs-fixer": "^1.8.0",
|
|
||||||
"phpunit/phpunit": "^4.6.6"
|
|
||||||
},
|
|
||||||
"time": "2015-08-25 22:38:46",
|
|
||||||
"bin": [
|
|
||||||
"bin/raven"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "0.12.x-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Raven_": "lib/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "David Cramer",
|
|
||||||
"email": "dcramer@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A PHP client for Sentry (http://getsentry.com)",
|
|
||||||
"homepage": "http://getsentry.com",
|
|
||||||
"keywords": [
|
|
||||||
"log",
|
|
||||||
"logging"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@ -387,7 +387,8 @@ else
|
|||||||
array('from'=>'3.4.0', 'to'=>'3.5.0'),
|
array('from'=>'3.4.0', 'to'=>'3.5.0'),
|
||||||
array('from'=>'3.5.0', 'to'=>'3.6.0'),
|
array('from'=>'3.5.0', 'to'=>'3.6.0'),
|
||||||
array('from'=>'3.6.0', 'to'=>'3.7.0'),
|
array('from'=>'3.6.0', 'to'=>'3.7.0'),
|
||||||
array('from'=>'3.7.0', 'to'=>'3.8.0')
|
array('from'=>'3.7.0', 'to'=>'3.8.0'),
|
||||||
|
array('from'=>'3.8.0', 'to'=>'3.9.0')
|
||||||
);
|
);
|
||||||
|
|
||||||
$count=0;
|
$count=0;
|
||||||
|
|||||||
@ -10,3 +10,5 @@ FailedToConnectToFTPServerWithCredentials=Failed to login to FTP server with def
|
|||||||
FTPFailedToRemoveFile=Failed to remove file <b>%s</b>.
|
FTPFailedToRemoveFile=Failed to remove file <b>%s</b>.
|
||||||
FTPFailedToRemoveDir=Failed to remove directory <b>%s</b> (Check permissions and that directory is empty).
|
FTPFailedToRemoveDir=Failed to remove directory <b>%s</b> (Check permissions and that directory is empty).
|
||||||
FTPPassiveMode=Passive mode
|
FTPPassiveMode=Passive mode
|
||||||
|
ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu...
|
||||||
|
FailedToGetFile=Failed to get files %s
|
||||||
@ -1428,7 +1428,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
|
|||||||
$menumanager->showmenu('top'); // This contains a \n
|
$menumanager->showmenu('top'); // This contains a \n
|
||||||
print "</div>\n";
|
print "</div>\n";
|
||||||
|
|
||||||
$form=new Form($db);
|
//$form=new Form($db);
|
||||||
|
|
||||||
// Define link to login card
|
// Define link to login card
|
||||||
$appli='Dolibarr';
|
$appli='Dolibarr';
|
||||||
@ -1496,11 +1496,11 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
|
|||||||
$text ='<a href="'.$_SERVER["PHP_SELF"].'?'.$qs.($qs?'&':'').'optioncss=print" target="_blank">';
|
$text ='<a href="'.$_SERVER["PHP_SELF"].'?'.$qs.($qs?'&':'').'optioncss=print" target="_blank">';
|
||||||
$text.= img_picto(":".$langs->trans("PrintContentArea"), 'printer.png', 'class="printer"');
|
$text.= img_picto(":".$langs->trans("PrintContentArea"), 'printer.png', 'class="printer"');
|
||||||
$text.='</a>';
|
$text.='</a>';
|
||||||
$toprightmenu.=$form->textwithtooltip('',$langs->trans("PrintContentArea"),2,1,$text,'login_block_elem',2);
|
$toprightmenu.=Form::textwithtooltip('',$langs->trans("PrintContentArea"),2,1,$text,'login_block_elem',2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Logout link
|
// Logout link
|
||||||
$toprightmenu.=$form->textwithtooltip('',$logouthtmltext,2,1,$logouttext,'login_block_elem',2);
|
$toprightmenu.=Form::textwithtooltip('',$logouthtmltext,2,1,$logouttext,'login_block_elem',2);
|
||||||
|
|
||||||
$toprightmenu.='</div>';
|
$toprightmenu.='</div>';
|
||||||
|
|
||||||
@ -1509,7 +1509,7 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a
|
|||||||
print "</div>\n";
|
print "</div>\n";
|
||||||
print '</div></div>';
|
print '</div></div>';
|
||||||
|
|
||||||
unset($form);
|
//unset($form);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print "</div><!-- End top layout -->\n";
|
if (empty($conf->dol_use_jmobile) && ! empty($conf->use_javascript_ajax) && ! empty($conf->global->MAIN_MENU_USE_JQUERY_LAYOUT)) print "</div><!-- End top layout -->\n";
|
||||||
|
|||||||
@ -1888,6 +1888,8 @@ class User extends CommonObject
|
|||||||
$s=picto_from_langcode($langs->getDefaultLang());
|
$s=picto_from_langcode($langs->getDefaultLang());
|
||||||
$label.= '<br><b>'.$langs->trans("CurrentUserLanguage").':</b> '.($s?$s.' ':'').$langs->getDefaultLang();
|
$label.= '<br><b>'.$langs->trans("CurrentUserLanguage").':</b> '.($s?$s.' ':'').$langs->getDefaultLang();
|
||||||
$label.= '<br><b>'.$langs->trans("Browser").':</b> '.$conf->browser->name.($conf->browser->version?' '.$conf->browser->version:'').' ('.$_SERVER['HTTP_USER_AGENT'].')';
|
$label.= '<br><b>'.$langs->trans("Browser").':</b> '.$conf->browser->name.($conf->browser->version?' '.$conf->browser->version:'').' ('.$_SERVER['HTTP_USER_AGENT'].')';
|
||||||
|
$label.= '<br><b>'.$langs->trans("Layout").':</b> '.$conf->browser->layout;
|
||||||
|
$label.= '<br><b>'.$langs->trans("Screen").':</b> '.$_SESSION['dol_screenwidth'].' x '.$_SESSION['dol_screenheight'];
|
||||||
if (! empty($conf->browser->phone)) $label.= '<br><b>'.$langs->trans("Phone").':</b> '.$conf->browser->phone;
|
if (! empty($conf->browser->phone)) $label.= '<br><b>'.$langs->trans("Phone").':</b> '.$conf->browser->phone;
|
||||||
if (! empty($_SESSION["disablemodules"])) $label.= '<br><b>'.$langs->trans("DisabledModules").':</b> <br>'.join(', ',explode(',',$_SESSION["disablemodules"]));
|
if (! empty($_SESSION["disablemodules"])) $label.= '<br><b>'.$langs->trans("DisabledModules").':</b> <br>'.join(', ',explode(',',$_SESSION["disablemodules"]));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user