Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur 2015-07-12 12:31:37 +02:00
commit 39a9b41c42
6 changed files with 80 additions and 62 deletions

View File

@ -86,10 +86,9 @@ class Skeleton_Class extends CommonObject
*
* @param DoliDb $db Database handler
*/
public function __construct( DoliDB $db )
public function __construct(DoliDB $db)
{
$this->db = $db;
return 1;
}
@ -101,18 +100,18 @@ class Skeleton_Class extends CommonObject
*
* @return int <0 if KO, Id of created object if OK
*/
public function create( User $user, $notrigger = false )
public function create(User $user, $notrigger = false)
{
dol_syslog( __METHOD__, LOG_DEBUG );
dol_syslog(__METHOD__, LOG_DEBUG);
$error = 0;
// Clean parameters
if (isset( $this->prop1 )) {
$this->prop1 = trim( $this->prop1 );
if (isset($this->prop1)) {
$this->prop1 = trim($this->prop1);
}
if (isset( $this->prop2 )) {
$this->prop2 = trim( $this->prop2 );
if (isset($this->prop2)) {
$this->prop2 = trim($this->prop2);
}
//...
@ -132,15 +131,15 @@ class Skeleton_Class extends CommonObject
$this->db->begin();
$resql = $this->db->query( $sql );
$resql = $this->db->query($sql);
if (!$resql) {
$error ++;
$this->errors[] = 'Error ' . $this->db->lasterror();
dol_syslog( __METHOD__ . ' ' . join( ',', $this->errors ), LOG_ERR );
dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
}
if (!$error) {
$this->id = $this->db->last_insert_id( MAIN_DB_PREFIX . $this->table_element );
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element);
if (!$notrigger) {
// Uncomment this and change MYOBJECT to your own tag if you
@ -173,9 +172,9 @@ class Skeleton_Class extends CommonObject
*
* @return int <0 if KO, 0 if not found, >0 if OK
*/
public function fetch( $id, $ref = null )
public function fetch($id, $ref = null)
{
dol_syslog( __METHOD__, LOG_DEBUG );
dol_syslog(__METHOD__, LOG_DEBUG);
$sql = 'SELECT';
$sql .= ' t.rowid,';
@ -189,18 +188,18 @@ class Skeleton_Class extends CommonObject
$sql .= ' WHERE t.rowid = ' . $id;
}
$resql = $this->db->query( $sql );
$resql = $this->db->query($sql);
if ($resql) {
$numrows = $this->db->num_rows( $resql );
$numrows = $this->db->num_rows($resql);
if ($numrows) {
$obj = $this->db->fetch_object( $resql );
$obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid;
$this->prop1 = $obj->field1;
$this->prop2 = $obj->field2;
//...
}
$this->db->free( $resql );
$this->db->free($resql);
if ($numrows) {
return 1;
@ -209,7 +208,7 @@ class Skeleton_Class extends CommonObject
}
} else {
$this->errors[] = 'Error ' . $this->db->lasterror();
dol_syslog( __METHOD__ . ' ' . join( ',', $this->errors ), LOG_ERR );
dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
return - 1;
}
@ -226,9 +225,9 @@ class Skeleton_Class extends CommonObject
*
* @return int <0 if KO, >0 if OK
*/
public function fetchAll( $sortorder, $sortfield, $limit, $offset, array $filter = array() )
public function fetchAll($sortorder, $sortfield, $limit, $offset, array $filter = array())
{
dol_syslog( __METHOD__, LOG_DEBUG );
dol_syslog(__METHOD__, LOG_DEBUG);
$sql = 'SELECT';
$sql .= ' t.rowid,';
@ -239,23 +238,23 @@ class Skeleton_Class extends CommonObject
// Manage filter
$sqlwhere = array();
if (count( $filter ) > 0) {
if (count($filter) > 0) {
foreach ($filter as $key => $value) {
$sqlwhere [] = ' AND ' . $key . ' LIKE \'%' . $this->db->escape( $value ) . '%\'';
$sqlwhere [] = ' AND ' . $key . ' LIKE \'%' . $this->db->escape($value) . '%\'';
}
}
if (count( $sqlwhere ) > 0) {
$sql .= ' WHERE ' . implode( ' AND ', $sqlwhere );
if (count($sqlwhere) > 0) {
$sql .= ' WHERE ' . implode(' AND ', $sqlwhere);
}
$sql .= ' ORDER BY ' . $sortfield . ' ' . $sortorder . ' ' . $this->db->plimit( $limit + 1, $offset );
$sql .= ' ORDER BY ' . $sortfield . ' ' . $sortorder . ' ' . $this->db->plimit($limit + 1, $offset);
$this->lines = array();
$resql = $this->db->query( $sql );
$resql = $this->db->query($sql);
if ($resql) {
$num = $this->db->num_rows( $resql );
$num = $this->db->num_rows($resql);
while ($obj = $this->db->fetch_object( $resql )) {
while ($obj = $this->db->fetch_object($resql)) {
$line = new Skeleton_ClassLine();
$line->id = $obj->rowid;
@ -265,12 +264,12 @@ class Skeleton_Class extends CommonObject
$this->lines[] = $line;
//...
}
$this->db->free( $resql );
$this->db->free($resql);
return $num;
} else {
$this->errors[] = 'Error ' . $this->db->lasterror();
dol_syslog( __METHOD__ . ' ' . join( ',', $this->errors ), LOG_ERR );
dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
return - 1;
}
@ -284,18 +283,18 @@ class Skeleton_Class extends CommonObject
*
* @return int <0 if KO, >0 if OK
*/
public function update( User $user, $notrigger = false )
public function update(User $user, $notrigger = false)
{
$error = 0;
dol_syslog( __METHOD__, LOG_DEBUG );
dol_syslog(__METHOD__, LOG_DEBUG);
// Clean parameters
if (isset( $this->prop1 )) {
$this->prop1 = trim( $this->prop1 );
if (isset($this->prop1)) {
$this->prop1 = trim($this->prop1);
}
if (isset( $this->prop2 )) {
$this->prop2 = trim( $this->prop2 );
if (isset($this->prop2)) {
$this->prop2 = trim($this->prop2);
}
//...
@ -304,13 +303,13 @@ class Skeleton_Class extends CommonObject
// Update request
$sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . ' SET';
if (isset( $this->field1 )) {
$sql .= ' field1=\'' . $this->db->escape( $this->field1 ) . '\',';
if (isset($this->field1)) {
$sql .= ' field1=\'' . $this->db->escape($this->field1) . '\',';
} else {
$sql .= ' field1=null' . ',';
}
if (isset( $this->field2 )) {
$sql .= ' field2=\'' . $this->db->escape( $this->field2 ) . '\'';
if (isset($this->field2)) {
$sql .= ' field2=\'' . $this->db->escape($this->field2) . '\'';
} else {
$sql .= ' field2=null';
}
@ -319,11 +318,11 @@ class Skeleton_Class extends CommonObject
$this->db->begin();
$resql = $this->db->query( $sql );
$resql = $this->db->query($sql);
if (!$resql) {
$error ++;
$this->errors[] = 'Error ' . $this->db->lasterror();
dol_syslog( __METHOD__ . ' ' . join( ',', $this->errors ), LOG_ERR );
dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
}
if (!$error && !$notrigger) {
@ -356,9 +355,9 @@ class Skeleton_Class extends CommonObject
*
* @return int <0 if KO, >0 if OK
*/
public function delete( User $user, $notrigger = false )
public function delete(User $user, $notrigger = false)
{
dol_syslog( __METHOD__, LOG_DEBUG );
dol_syslog(__METHOD__, LOG_DEBUG);
$error = 0;
@ -380,11 +379,11 @@ class Skeleton_Class extends CommonObject
$sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element;
$sql .= ' WHERE rowid=' . $this->id;
$resql = $this->db->query( $sql );
$resql = $this->db->query($sql);
if (!$resql) {
$error ++;
$this->errors[] = 'Error ' . $this->db->lasterror();
dol_syslog( __METHOD__ . ' ' . join( ',', $this->errors ), LOG_ERR );
dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
}
}
@ -407,18 +406,18 @@ class Skeleton_Class extends CommonObject
*
* @return int New id of clone
*/
public function createFromClone( $fromid )
public function createFromClone($fromid)
{
dol_syslog( __METHOD__, LOG_DEBUG );
dol_syslog(__METHOD__, LOG_DEBUG);
global $user;
$error = 0;
$object = new Skeleton_Class( $this->db );
$object = new Skeleton_Class($this->db);
$this->db->begin();
// Load source object
$object->fetch( $fromid );
$object->fetch($fromid);
// Reset object
$object->id = 0;
@ -426,13 +425,13 @@ class Skeleton_Class extends CommonObject
// ...
// Create clone
$result = $object->create( $user );
$result = $object->create($user);
// Other options
if ($result < 0) {
$error ++;
$this->errors = $object->errors;
dol_syslog( __METHOD__ . ' ' . join( ',', $this->errors ), LOG_ERR );
dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
}
// End

View File

@ -366,7 +366,7 @@ class CMailFile
*/
function sendfile()
{
global $conf;
global $conf,$db;
$errorlevel=error_reporting();
error_reporting($errorlevel ^ E_WARNING); // Desactive warnings
@ -375,6 +375,20 @@ class CMailFile
if (empty($conf->global->MAIN_DISABLE_ALL_MAILS))
{
dol_include_once('/core/class/hookmanager.class.php');
$hookmanager=new HookManager($db);
$hookmanager->initHooks(array('maildao'));
$reshook=$hookmanager->executeHooks('doactions',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
if (!empty($reshook))
{
$this->error="Error in hook maildao doactions ".$reshook;
dol_syslog("CMailFile::sendfile: mail end error=".$this->error, LOG_ERR);
return $reshook;
}
// Action according to choosed sending method
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail')
{

View File

@ -3537,7 +3537,7 @@ class Form
$ret.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
$ret.='<table class="nobordernopadding" cellpadding="0" cellspacing="0">';
$ret.='<tr><td>';
$ret.=$this->select_date($selected,$htmlname,$displayhour,$displaymin,1,'form'.$htmlname);
$ret.=$this->select_date($selected,$htmlname,$displayhour,$displaymin,1,'form'.$htmlname,1,0,1);
$ret.='</td>';
$ret.='<td align="left"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td>';
$ret.='</tr></table></form>';

View File

@ -837,13 +837,13 @@ function unActivateModule($value, $requiredby=1)
}
else
{
// TODO Cannot instantiate abstract class
//$genericMod = new DolibarrModul($db);
//$genericMod->name=preg_replace('/^mod/i','',$modName);
//$genericMod->rights_class=strtolower(preg_replace('/^mod/i','',$modName));
//$genericMod->const_name='MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',$modName));
// TODO Replace this afte DolibarrModules is moved as abstract class with a try catch to show module is bugged
$genericMod = new DolibarrModules($db);
$genericMod->name=preg_replace('/^mod/i','',$modName);
$genericMod->rights_class=strtolower(preg_replace('/^mod/i','',$modName));
$genericMod->const_name='MAIN_MODULE_'.strtoupper(preg_replace('/^mod/i','',$modName));
dol_syslog("modules::unActivateModule Failed to find module file, we use generic function with name " . $modName);
//$genericMod->_remove();
$genericMod->_remove();
}
// Desactivation des modules qui dependent de lui

View File

@ -257,6 +257,8 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
global $conf,$langs,$db;
global $bc;
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formother.class.php';
$formother = new FormOther($db);
//$dirthemes=array(empty($conf->global->MAIN_FORCETHEMEDIR)?'/theme':$conf->global->MAIN_FORCETHEMEDIR.'/theme');

View File

@ -199,8 +199,11 @@ abstract class DolibarrModules
*
* @param DoliDB $db Database handler
*/
abstract public function __construct($db);
//public function __construct($db);
// We should but can't set this as abstract because this will make dolibarr hang
// after migration due to old module not implementing. We must wait PHP is able to make
// a try catch on Fatal error to manage this correctly.
/**
* Enables a module.
* Inserts all informations into database