Fix: Correct errors in code generator
This commit is contained in:
parent
40418d0d38
commit
1a9e1a896f
@ -1 +1,2 @@
|
||||
out.*
|
||||
out.*
|
||||
socpeople*
|
||||
|
||||
@ -121,6 +121,13 @@ else
|
||||
//var_dump($property);
|
||||
|
||||
|
||||
// Define working variables
|
||||
$table=strtolower($table);
|
||||
$tablenollx=eregi_replace('llx_','',$table);
|
||||
$class=ucfirst($tablenollx);
|
||||
$classmin=strtolower($class);
|
||||
|
||||
|
||||
// Read skeleton_class.class.php file
|
||||
$skeletonfile='skeleton_class.class.php';
|
||||
$sourcecontent=file_get_contents($skeletonfile);
|
||||
@ -132,16 +139,10 @@ if (! $sourcecontent)
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
// Define content
|
||||
$table=strtolower($table);
|
||||
$tablenollx=eregi_replace('llx_','',$table);
|
||||
$class=ucfirst($tablenollx);
|
||||
$classmin=strtolower($class);
|
||||
// Define output variables
|
||||
$outfile='out.'.$classmin.'.class.php';
|
||||
$targetcontent=$sourcecontent;
|
||||
|
||||
|
||||
// Substitute class name
|
||||
$targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent);
|
||||
$targetcontent=preg_replace('/\$element=\'skeleton\'/', '\$element=\''.$classmin.'\'', $targetcontent);
|
||||
@ -342,14 +343,52 @@ if ($fp)
|
||||
fclose($fp);
|
||||
print "\n";
|
||||
print "File '".$outfile."' has been built in current directory.\n";
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
else $error++;
|
||||
|
||||
|
||||
|
||||
// Read skeleton_class.class.php file
|
||||
$skeletonfile='skeleton_script.php';
|
||||
$sourcecontent=file_get_contents($skeletonfile);
|
||||
if (! $sourcecontent)
|
||||
{
|
||||
return -1;
|
||||
print "\n";
|
||||
print "Error: Failed to read skeleton sample '".$skeletonfile."'\n";
|
||||
print "Try to run script from skeletons directory.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Define output variables
|
||||
$outfile='out.'.$classmin.'_script.php';
|
||||
$targetcontent=$sourcecontent;
|
||||
|
||||
// Substitute class name
|
||||
$targetcontent=preg_replace('/skeleton_script\.php/', $classmin.'_script.php', $targetcontent);
|
||||
$targetcontent=preg_replace('/\$element=\'skeleton\'/', '\$element=\''.$classmin.'\'', $targetcontent);
|
||||
$targetcontent=preg_replace('/\$table_element=\'skeleton\'/', '\$table_element=\''.$classmin.'\'', $targetcontent);
|
||||
$targetcontent=preg_replace('/Skeleton_class/', $class, $targetcontent);
|
||||
|
||||
// Substitute comments
|
||||
$targetcontent=preg_replace('/This file is an example to create a new class file/', 'Put here description of this class', $targetcontent);
|
||||
$targetcontent=preg_replace('/\s*\/\/\.\.\./', '', $targetcontent);
|
||||
$targetcontent=preg_replace('/Put here some comments/','Initialy built by build_class_from_table on '.strftime('%Y-%m-%d %H:%M',mktime()), $targetcontent);
|
||||
|
||||
// Substitute table name
|
||||
$targetcontent=preg_replace('/MAIN_DB_PREFIX."mytable/', 'MAIN_DB_PREFIX."'.$tablenollx, $targetcontent);
|
||||
|
||||
// Build file
|
||||
$fp=fopen($outfile,"w");
|
||||
if ($fp)
|
||||
{
|
||||
fputs($fp, $targetcontent);
|
||||
fclose($fp);
|
||||
print "File '".$outfile."' has been built in current directory.\n";
|
||||
}
|
||||
else $error++;
|
||||
|
||||
// -------------------- END OF BUILD_CLASS_FROM_TABLE SCRIPT --------------------
|
||||
|
||||
print "You must rename files by removing the 'out.' prefix in their name.\n";
|
||||
return $error;
|
||||
?>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
/**
|
||||
\file dev/skeletons/skeleton_class.class.php
|
||||
\ingroup mymodule othermodule1 othermodule2
|
||||
\brief This file is an example for a class file
|
||||
\brief This file is an example for a CRUD class file (Create/Read/Update/Delete)
|
||||
\version $Id$
|
||||
\author Put author name here
|
||||
\remarks Put here some comments
|
||||
@ -64,12 +64,14 @@ class Skeleton_class // extends CommonObject
|
||||
|
||||
/**
|
||||
* \brief Create in database
|
||||
* \param user User that create
|
||||
* \return int <0 si ko, >0 si ok
|
||||
* \param user User that create
|
||||
* \param notrigger 0=launch triggers after, 1=disable triggers
|
||||
* \return int <0 if KO, Id of created object if OK
|
||||
*/
|
||||
function create($user)
|
||||
function create($user, $notrigger=0)
|
||||
{
|
||||
global $conf, $langs;
|
||||
$error=0;
|
||||
|
||||
// Clean parameters
|
||||
$this->prop1=trim($this->prop1);
|
||||
@ -90,38 +92,58 @@ class Skeleton_class // extends CommonObject
|
||||
//...
|
||||
$sql.= ")";
|
||||
|
||||
dolibarr_syslog("Skeleton_class::create sql=".$sql, LOG_DEBUG);
|
||||
$this->db->begin();
|
||||
|
||||
dolibarr_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."mytable");
|
||||
|
||||
// Appel des triggers
|
||||
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
// Fin appel triggers
|
||||
if (! $notrigger)
|
||||
{
|
||||
// Uncomment this and change MYOBJECT to your own tag if you
|
||||
// want this action call a trigger.
|
||||
|
||||
//// Call triggers
|
||||
//include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
|
||||
//$interface=new Interfaces($this->db);
|
||||
//$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
|
||||
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
//// End call triggers
|
||||
}
|
||||
}
|
||||
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
foreach($this->errors as $errmsg)
|
||||
{
|
||||
dolibarr_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
|
||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||
}
|
||||
$this->db->rollback();
|
||||
return -1*$error;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->commit();
|
||||
return $this->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error="Error ".$this->db->lasterror();
|
||||
dolibarr_syslog("Skeleton_class::create ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* \brief Update database
|
||||
* \param user User that modify
|
||||
* \param notrigger 0=no, 1=yes (no update trigger)
|
||||
* \param notrigger 0=launch triggers after, 1=disable triggers
|
||||
* \return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function update($user=0, $notrigger=0)
|
||||
{
|
||||
global $conf, $langs;
|
||||
$error=0;
|
||||
|
||||
// Clean parameters
|
||||
$this->prop1=trim($this->prop1);
|
||||
@ -138,36 +160,53 @@ class Skeleton_class // extends CommonObject
|
||||
//...
|
||||
$sql.= " WHERE rowid=".$this->id;
|
||||
|
||||
dolibarr_syslog("Skeleton_class::update sql=".$sql, LOG_DEBUG);
|
||||
$this->db->begin();
|
||||
|
||||
dolibarr_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql)
|
||||
{
|
||||
$this->error="Error ".$this->db->lasterror();
|
||||
dolibarr_syslog("Skeleton_class::update ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (! $notrigger)
|
||||
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
// Appel des triggers
|
||||
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
// Fin appel triggers
|
||||
}
|
||||
|
||||
return 1;
|
||||
if (! $notrigger)
|
||||
{
|
||||
// Uncomment this and change MYOBJECT to your own tag if you
|
||||
// want this action call a trigger.
|
||||
|
||||
//// Call triggers
|
||||
//include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
|
||||
//$interface=new Interfaces($this->db);
|
||||
//$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
|
||||
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
//// End call triggers
|
||||
}
|
||||
}
|
||||
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
foreach($this->errors as $errmsg)
|
||||
{
|
||||
dolibarr_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
|
||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||
}
|
||||
$this->db->rollback();
|
||||
return -1*$error;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
/**
|
||||
* \brief Load object in memory from database
|
||||
* \param id id object
|
||||
* \param user User that load
|
||||
* \return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function fetch($id, $user=0)
|
||||
function fetch($id)
|
||||
{
|
||||
global $langs;
|
||||
$sql = "SELECT";
|
||||
@ -178,7 +217,7 @@ class Skeleton_class // extends CommonObject
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."mytable as t";
|
||||
$sql.= " WHERE t.rowid = ".$id;
|
||||
|
||||
dolibarr_syslog("Skeleton_class::fetch sql=".$sql, LOG_DEBUG);
|
||||
dolibarr_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
|
||||
$resql=$this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -198,41 +237,64 @@ class Skeleton_class // extends CommonObject
|
||||
else
|
||||
{
|
||||
$this->error="Error ".$this->db->lasterror();
|
||||
dolibarr_syslog("Skeleton_class::fetch ".$this->error, LOG_ERR);
|
||||
dolibarr_syslog(get_class($this)."::fetch ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
/**
|
||||
* \brief Delete object in database
|
||||
* \param user User that delete
|
||||
* \return int <0 if KO, >0 if OK
|
||||
* \param user User that delete
|
||||
* \param notrigger 0=launch triggers after, 1=disable triggers
|
||||
* \return int <0 if KO, >0 if OK
|
||||
*/
|
||||
function delete($user)
|
||||
function delete($user, $notrigger=0)
|
||||
{
|
||||
global $conf, $langs;
|
||||
|
||||
$error=0;
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."mytable";
|
||||
$sql.= " WHERE rowid=".$this->id;
|
||||
|
||||
dolibarr_syslog("Skeleton_class::delete sql=".$sql);
|
||||
$this->db->begin();
|
||||
|
||||
dolibarr_syslog(get_class($this)."::delete sql=".$sql);
|
||||
$resql = $this->db->query($sql);
|
||||
if (! $resql)
|
||||
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$this->error="Error ".$this->db->lasterror();
|
||||
dolibarr_syslog("Skeleton_class::delete ".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
if (! $notrigger)
|
||||
{
|
||||
// Uncomment this and change MYOBJECT to your own tag if you
|
||||
// want this action call a trigger.
|
||||
|
||||
//// Call triggers
|
||||
//include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
|
||||
//$interface=new Interfaces($this->db);
|
||||
//$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
|
||||
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
//// End call triggers
|
||||
}
|
||||
}
|
||||
|
||||
// Commit or rollback
|
||||
if ($error)
|
||||
{
|
||||
foreach($this->errors as $errmsg)
|
||||
{
|
||||
dolibarr_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
|
||||
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||
}
|
||||
$this->db->rollback();
|
||||
return -1*$error;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Appel des triggers
|
||||
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
|
||||
$interface=new Interfaces($this->db);
|
||||
$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
|
||||
if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||
// Fin appel triggers
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<?PHP
|
||||
/* Copyright (C) 2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
/* Copyright (C) 2007-2008 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) ---Put here your own copyright and developer email---
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -33,62 +33,63 @@ if (eregi('([^\\\/]+)$',$script_file,$reg)) $script_file=$reg[1];
|
||||
$path=eregi_replace($script_file,'',$_SERVER["PHP_SELF"]);
|
||||
|
||||
if (substr($sapi_type, 0, 3) == 'cgi') {
|
||||
echo "Erreur: Vous utilisez l'interpreteur PHP pour le mode CGI. Pour executer $script_file en ligne de commande, vous devez utiliser l'interpreteur PHP pour le mode CLI.\n";
|
||||
echo "Error: You ar usingr PH for CGI. To execute ".$script_file." from command line, you must use PHP for CLI mode.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Include Dolibarr environment
|
||||
require_once($path."../../htdocs/master.inc.php");
|
||||
// After this $db is a defined handler to database.
|
||||
|
||||
// Main
|
||||
$version='$Revision$';
|
||||
@set_time_limit(0);
|
||||
$error=0;
|
||||
// After this $db is an opened handler to database. We close it at end of file.
|
||||
|
||||
// Load main language strings
|
||||
$langs->load("main");
|
||||
|
||||
|
||||
print "***** $script_file ($version) *****\n";
|
||||
// Global variables
|
||||
$version='$Revision$';
|
||||
$error=0;
|
||||
|
||||
|
||||
// -------------------- START OF YOUR CODE HERE --------------------
|
||||
|
||||
print "***** ".$script_file." (".$version.") *****\n";
|
||||
|
||||
// Check parameters
|
||||
if (! isset($argv[1])) {
|
||||
print "Usage: $script_file param1 param2 ...\n";
|
||||
print "Usage: ".$script_file." param1 param2 ...\n";
|
||||
exit;
|
||||
}
|
||||
@set_time_limit(0);
|
||||
|
||||
// Show parameters
|
||||
// print 'Arg1='.$argv[1]."\n";
|
||||
// print 'Arg2='.$argv[2]."\n";
|
||||
|
||||
|
||||
// An example of loading an object
|
||||
// Example for inserting creating object in database
|
||||
/*
|
||||
require_once(DOL_DOCUMENT_ROOT."/../dev/skeletons/skeleton_class.class.php");
|
||||
dolibarr_syslog("***** $script_file FETCH");
|
||||
dolibarr_syslog($script_file." DELETE", LOG_DEBUG);
|
||||
$myobject=new Skeleton_class($db);
|
||||
$result=$myobject->fetch(1,$user);
|
||||
$id=$myobject->create($user);
|
||||
if ($id < 0) dolibarr_print_error($db,$myobject->error);
|
||||
*/
|
||||
|
||||
|
||||
// Example for reading object from database
|
||||
/*
|
||||
require_once(DOL_DOCUMENT_ROOT."/../dev/skeletons/skeleton_class.class.php");
|
||||
dolibarr_syslog($script_file." FETCH", LOG_DEBUG);
|
||||
$myobject=new Skeleton_class($db);
|
||||
$id=1;
|
||||
$result=$myobject->fetch($id);
|
||||
if ($result < 0) dolibarr_print_error($db,$myobject->error);
|
||||
*/
|
||||
|
||||
|
||||
// An example of inserting an object in database
|
||||
// Example for updating object in database
|
||||
/*
|
||||
require_once(DOL_DOCUMENT_ROOT."/../dev/skeletons/skeleton_class.class.php");
|
||||
dolibarr_syslog("***** $script_file DELETE");
|
||||
$myobject=new Skeleton_class($db);
|
||||
$result=$myobject->delete($user);
|
||||
if ($result < 0) dolibarr_print_error($db,$myobject->error);
|
||||
*/
|
||||
|
||||
|
||||
// An example of updating an object in database
|
||||
/*
|
||||
require_once(DOL_DOCUMENT_ROOT."/../dev/skeletons/skeleton_class.class.php");
|
||||
dolibarr_syslog("***** $script_file UPDATE");
|
||||
dolibarr_syslog($script_file." UPDATE", LOG_DEBUG);
|
||||
$myobject=new Skeleton_class($db);
|
||||
$myobject->prop1='newvalue_prop1';
|
||||
$myobject->prop2='newvalue_prop2';
|
||||
@ -97,24 +98,24 @@ if ($result < 0) dolibarr_print_error($db,$myobject->error);
|
||||
*/
|
||||
|
||||
|
||||
// An example of deleting an object in database
|
||||
// Example for deleting object in database
|
||||
/*
|
||||
require_once(DOL_DOCUMENT_ROOT."/../dev/skeletons/skeleton_class.class.php");
|
||||
dolibarr_syslog("***** $script_file DELETE");
|
||||
dolibarr_syslog($script_file." DELETE", LOG_DEBUG);
|
||||
$myobject=new Skeleton_class($db);
|
||||
$result=$myobject->delete($user);
|
||||
if ($result < 0) dolibarr_print_error($db,$myobject->error);
|
||||
*/
|
||||
|
||||
|
||||
// An example of a direct SQL read
|
||||
// An example of a direct SQL read without using the fetch method
|
||||
/*
|
||||
$sql = "SELECT field1, field2";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."c_pays";
|
||||
$sql.= " WHERE field3 = 'xxx'";
|
||||
$sql.= " ORDER BY field1 ASC";
|
||||
|
||||
dolibarr_syslog("***** $script_file sql=".$sql);
|
||||
dolibarr_syslog($script_file." sql=".$sql, LOG_DEBUG);
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
@ -145,6 +146,7 @@ else
|
||||
|
||||
// -------------------- END OF YOUR CODE --------------------
|
||||
|
||||
$db->close();
|
||||
|
||||
return $error;
|
||||
?>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user