diff --git a/dev/skeletons/build_class_from_table.php b/dev/skeletons/build_class_from_table.php
index f4f25c84391..6aff50161a9 100755
--- a/dev/skeletons/build_class_from_table.php
+++ b/dev/skeletons/build_class_from_table.php
@@ -450,186 +450,137 @@ else $error++;
-//--------------------------------
-// Build skeleton_script.php
-//--------------------------------
+//--------------------------------------------------------------------
+// Build skeleton_script.php, skeleton_list.php and skeleton_card.php
+//--------------------------------------------------------------------
-// Read skeleton_script.php file
-$skeletonfile=$path.'skeleton_script.php';
-$sourcecontent=file_get_contents($skeletonfile);
-if (! $sourcecontent)
+$skeletonfiles=array(
+ $path.'skeleton_script.php' => 'out.'.$classmin.'_script.php',
+ $path.'skeleton_list.php' => 'out.'.$classmin.'_list.php',
+ $path.'skeleton_card.php' => 'out.'.$classmin.'_card.php'
+ );
+
+foreach ($skeletonfiles as $skeletonfile => $outfile)
{
- print "\n";
- print "Error: Failed to read skeleton sample '".$skeletonfile."'\n";
- print "Try to run script from skeletons directory.\n";
- exit;
+ $sourcecontent=file_get_contents($skeletonfile);
+ if (! $sourcecontent)
+ {
+ print "\n";
+ print "Error: Failed to read skeleton sample '".$skeletonfile."'\n";
+ print "Try to run script from skeletons directory.\n";
+ exit;
+ }
+
+ // Define output variables
+ $targetcontent=$sourcecontent;
+
+ // Substitute module name
+ $targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent);
+ $targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent);
+ $targetcontent=preg_replace('/mymodule/', $module, $targetcontent);
+
+ // Substitute class name
+ $targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent);
+ $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/', $classname, $targetcontent);
+ $targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent);
+ $targetcontent=preg_replace('/skeleton/', $classmin, $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."'.$tablenoprefix, $targetcontent);
+
+ // Substitute GETPOST search_fieldx
+ $varprop="\n";
+ $cleanparam='';
+ foreach($property as $key => $prop)
+ {
+ if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
+ {
+ if ($prop['isint']) $varprop.='$search_'.$prop['field']."=GETPOST('search_".$prop['field']."','int');\n";
+ else $varprop.='$search_'.$prop['field']."=GETPOST('search_".$prop['field']."','alpha');\n";
+ }
+ }
+ $targetcontent=preg_replace('/'.preg_quote('$search_field1=GETPOST("search_field1");','/').'/', $varprop, $targetcontent);
+ $targetcontent=preg_replace('/'.preg_quote('$search_field2=GETPOST("search_field2");','/').'/', '', $targetcontent);
+
+ // Substitute GETPOST fieldx
+ $varprop="\n";
+ $cleanparam='';
+ foreach($property as $key => $prop)
+ {
+ if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
+ {
+ if ($prop['isint']) $varprop.="\t\$object->".$prop['field']."=GETPOST('".$prop['field']."','int');\n";
+ else $varprop.="\t\$object->".$prop['field']."=GETPOST('".$prop['field']."','alpha');\n";
+ }
+ }
+ $targetcontent=preg_replace('/'.preg_quote('$object->prop1=GETPOST("field1");','/').'/', $varprop, $targetcontent);
+ $targetcontent=preg_replace('/'.preg_quote('$object->prop2=GETPOST("field2");','/').'/', '', $targetcontent);
+
+ // Substitute fetch/select parameters
+ $targetcontent=preg_replace('/\$sql\s*\.= " t\.field1,";/', $varpropselect, $targetcontent);
+ $targetcontent=preg_replace('/\$sql\s*\.= " t\.field2";/', '', $targetcontent);
+
+ // Substitute where for search
+ $varprop="\n";
+ $cleanparam='';
+ foreach($property as $key => $prop)
+ {
+ if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
+ {
+ $varprop.='if ($search_'.$prop['field'].') $sql.= natural_search("'.$prop['field'].'",$search_'.$prop['field'].');'."\n";
+ }
+ }
+ $targetcontent=preg_replace('/'.preg_quote('if ($search_field1) $sql.= natural_search("field1",$search_field1);','/').'/', $varprop, $targetcontent);
+ $targetcontent=preg_replace('/'.preg_quote('if ($search_field2) $sql.= natural_search("field2",$search_field2);','/').'/', '', $targetcontent);
+
+ // Substitute print_liste_field_titre
+ $varprop="\n";
+ $cleanparam='';
+ foreach($property as $key => $prop)
+ {
+ if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
+ {
+ $varprop.="print_liste_field_titre(\$langs->trans('".$prop['field']."'),\$_SERVER['PHP_SELF'],'t.".$prop['field']."','',\$param,'',\$sortfield,\$sortorder);\n";
+ }
+ }
+
+ $targetcontent=preg_replace('/'.preg_quote("print_liste_field_titre(\$langs->trans('field1'),\$_SERVER['PHP_SELF'],'t.field1','',\$param,'',\$sortfield,\$sortorder);",'/').'/', $varprop, $targetcontent);
+ $targetcontent=preg_replace('/'.preg_quote("print_liste_field_titre(\$langs->trans('field2'),\$_SERVER['PHP_SELF'],'t.field1','',\$param,'',\$sortfield,\$sortorder);",'/').'/', '', $targetcontent);
+
+ // Substitute where for
.fieldx. |
+ $varprop="\n";
+ $cleanparam='';
+ foreach($property as $key => $prop)
+ {
+ if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
+ {
+ $varprop.="print ''.\$obj->".$prop['field'].".' | ';\n";
+ }
+ }
+ $targetcontent=preg_replace('/'.preg_quote("print ''.\$obj->field1.' | ';",'/').'/', $varprop, $targetcontent);
+ $targetcontent=preg_replace('/'.preg_quote("print ''.\$obj->field2.' | ';",'/').'/', '', $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++;
}
-// Define output variables
-$outfile='out.'.$classmin.'_script.php';
-$targetcontent=$sourcecontent;
-
-// Substitute module name
-$targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent);
-$targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent);
-$targetcontent=preg_replace('/mymodule/', $module, $targetcontent);
-
-// Substitute class name
-$targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent);
-$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/', $classname, $targetcontent);
-$targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent);
-$targetcontent=preg_replace('/skeleton/', $classmin, $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."'.$tablenoprefix, $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++;
-
-
-
-//--------------------------------
-// Build skeleton_page.php
-//--------------------------------
-
-// Read skeleton_page.php file
-$skeletonfile=$path.'skeleton_page.php';
-$sourcecontent=file_get_contents($skeletonfile);
-if (! $sourcecontent)
-{
- 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.'_page.php';
-$targetcontent=$sourcecontent;
-
-// Substitute module name
-$targetcontent=preg_replace('/dev\/skeletons/', $module, $targetcontent);
-$targetcontent=preg_replace('/mymodule othermodule1 othermodule2/', $module, $targetcontent);
-$targetcontent=preg_replace('/mymodule/', $module, $targetcontent);
-
-// Substitute class name
-$targetcontent=preg_replace('/skeleton_class\.class\.php/', $classmin.'.class.php', $targetcontent);
-$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/', $classname, $targetcontent);
-$targetcontent=preg_replace('/skeletons/', $classmin, $targetcontent);
-$targetcontent=preg_replace('/skeleton/', $classmin, $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."'.$tablenoprefix, $targetcontent);
-
-// Substitute GETPOST search_fieldx
-$varprop="\n";
-$cleanparam='';
-foreach($property as $key => $prop)
-{
- if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
- {
- if ($prop['isint']) $varprop.='$search_'.$prop['field']."=GETPOST('search_".$prop['field']."','int');\n";
- else $varprop.='$search_'.$prop['field']."=GETPOST('search_".$prop['field']."','alpha');\n";
- }
-}
-$targetcontent=preg_replace('/'.preg_quote('$search_field1=GETPOST("search_field1");','/').'/', $varprop, $targetcontent);
-$targetcontent=preg_replace('/'.preg_quote('$search_field2=GETPOST("search_field2");','/').'/', '', $targetcontent);
-
-// Substitute GETPOST fieldx
-$varprop="\n";
-$cleanparam='';
-foreach($property as $key => $prop)
-{
- if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
- {
- if ($prop['isint']) $varprop.="\t\$object->".$prop['field']."=GETPOST('".$prop['field']."','int');\n";
- else $varprop.="\t\$object->".$prop['field']."=GETPOST('".$prop['field']."','alpha');\n";
- }
-}
-$targetcontent=preg_replace('/'.preg_quote('$object->prop1=GETPOST("field1");','/').'/', $varprop, $targetcontent);
-$targetcontent=preg_replace('/'.preg_quote('$object->prop2=GETPOST("field2");','/').'/', '', $targetcontent);
-
-// Substitute fetch/select parameters
-$targetcontent=preg_replace('/\$sql\s*\.= " t\.field1,";/', $varpropselect, $targetcontent);
-$targetcontent=preg_replace('/\$sql\s*\.= " t\.field2";/', '', $targetcontent);
-
-// Substitute where for search
-$varprop="\n";
-$cleanparam='';
-foreach($property as $key => $prop)
-{
- if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
- {
- $varprop.='if ($search_'.$prop['field'].') $sql.= natural_search("'.$prop['field'].'",$search_'.$prop['field'].');'."\n";
- }
-}
-$targetcontent=preg_replace('/'.preg_quote('if ($search_field1) $sql.= natural_search("field1",$search_field1);','/').'/', $varprop, $targetcontent);
-$targetcontent=preg_replace('/'.preg_quote('if ($search_field2) $sql.= natural_search("field2",$search_field2);','/').'/', '', $targetcontent);
-
-// Substitute print_liste_field_titre
-$varprop="\n";
-$cleanparam='';
-foreach($property as $key => $prop)
-{
- if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
- {
- $varprop.="print_liste_field_titre(\$langs->trans('".$prop['field']."'),\$_SERVER['PHP_SELF'],'t.".$prop['field']."','',\$param,'',\$sortfield,\$sortorder);\n";
- }
-}
-
-$targetcontent=preg_replace('/'.preg_quote("print_liste_field_titre(\$langs->trans('field1'),\$_SERVER['PHP_SELF'],'t.field1','',\$param,'',\$sortfield,\$sortorder);",'/').'/', $varprop, $targetcontent);
-$targetcontent=preg_replace('/'.preg_quote("print_liste_field_titre(\$langs->trans('field2'),\$_SERVER['PHP_SELF'],'t.field1','',\$param,'',\$sortfield,\$sortorder);",'/').'/', '', $targetcontent);
-
-// Substitute where for .fieldx. |
-$varprop="\n";
-$cleanparam='';
-foreach($property as $key => $prop)
-{
- if ($prop['field'] != 'rowid' && $prop['field'] != 'id' && ! $prop['istime'])
- {
- $varprop.="print ''.\$obj->".$prop['field'].".' | ';\n";
- }
-}
-$targetcontent=preg_replace('/'.preg_quote("print ''.\$obj->field1.' | ';",'/').'/', $varprop, $targetcontent);
-$targetcontent=preg_replace('/'.preg_quote("print ''.\$obj->field2.' | ';",'/').'/', '', $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 can now rename generated files by removing the 'out.' prefix in their name and store them into directory /yourmodule/class.\n";
+print "You can now rename generated files by removing the 'out.' prefix in their name and store them into directory /yourmodule/class (for .class.php file) or /yourmodule.\n";
return $error;
diff --git a/dev/skeletons/skeleton_card.php b/dev/skeletons/skeleton_card.php
new file mode 100644
index 00000000000..a7191560108
--- /dev/null
+++ b/dev/skeletons/skeleton_card.php
@@ -0,0 +1,325 @@
+
+ * Copyright (C) ---Put here your own copyright and developer email---
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+/**
+ * \file dev/skeletons/skeleton_card.php
+ * \ingroup mymodule othermodule1 othermodule2
+ * \brief This file is an example of a php page
+ * Put here some comments
+ */
+
+//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1');
+//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1');
+//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
+//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
+//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check anti CSRF attack test
+//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data
+//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not check anti POST attack test
+//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu
+//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php
+//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
+//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session)
+
+// Change this following line to use the correct relative path (../, ../../, etc)
+$res=0;
+if (! $res && file_exists("../main.inc.php")) $res=@include '../main.inc.php'; // to work if your module directory is into dolibarr root htdocs directory
+if (! $res && file_exists("../../main.inc.php")) $res=@include '../../main.inc.php'; // to work if your module directory is into a subdir of root htdocs directory
+if (! $res && file_exists("../../../dolibarr/htdocs/main.inc.php")) $res=@include '../../../dolibarr/htdocs/main.inc.php'; // Used on dev env only
+if (! $res && file_exists("../../../../dolibarr/htdocs/main.inc.php")) $res=@include '../../../../dolibarr/htdocs/main.inc.php'; // Used on dev env only
+if (! $res) die("Include of main fails");
+// Change this following line to use the correct relative path from htdocs
+include_once(DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php');
+dol_include_once('/mymodule/class/skeleton_class.class.php');
+
+// Load traductions files requiredby by page
+$langs->load("companies");
+$langs->load("other");
+
+// Get parameters
+$id = GETPOST('id','int');
+$action = GETPOST('action','alpha');
+$backtopage = GETPOST('backtopage');
+$myparam = GETPOST('myparam','alpha');
+
+$search_field1=GETPOST("search_field1");
+$search_field2=GETPOST("search_field2");
+
+// Protection if external user
+if ($user->societe_id > 0)
+{
+ //accessforbidden();
+}
+
+if (empty($action) && empty($id) && empty($ref)) $action='list';
+
+// Load object if id or ref is provided as parameter
+$object=new Skeleton_Class($db);
+if (($id > 0 || ! empty($ref)) && $action != 'add')
+{
+ $result=$object->fetch($id,$ref);
+ if ($result < 0) dol_print_error($db);
+}
+
+// Initialize technical object to manage hooks of modules. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('skeleton'));
+$extrafields = new ExtraFields($db);
+
+
+
+/*******************************************************************
+* ACTIONS
+*
+* Put here all code to do according to value of "action" parameter
+********************************************************************/
+
+$parameters=array();
+$reshook=$hookmanager->executeHooks('doActions',$parameters); // Note that $action and $object may have been modified by some hooks
+if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
+
+if (empty($reshook))
+{
+ // Action to add record
+ if ($action == 'add')
+ {
+ if (GETPOST('cancel'))
+ {
+ $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1);
+ header("Location: ".$urltogo);
+ exit;
+ }
+
+ $error=0;
+
+ /* object_prop_getpost_prop */
+ $object->prop1=GETPOST("field1");
+ $object->prop2=GETPOST("field2");
+
+ if (empty($object->ref))
+ {
+ $error++;
+ setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),'errors');
+ }
+
+ if (! $error)
+ {
+ $result=$object->create($user);
+ if ($result > 0)
+ {
+ // Creation OK
+ $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1);
+ header("Location: ".$urltogo);
+ exit;
+ }
+ {
+ // Creation KO
+ if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors');
+ else setEventMessages($object->error, null, 'errors');
+ $action='create';
+ }
+ }
+ else
+ {
+ $action='create';
+ }
+ }
+
+ // Cancel
+ if ($action == 'update' && GETPOST('cancel')) $action='view';
+
+ // Action to update record
+ if ($action == 'update' && ! GETPOST('cancel'))
+ {
+ $error=0;
+
+ $object->prop1=GETPOST("field1");
+ $object->prop2=GETPOST("field2");
+
+ if (empty($object->ref))
+ {
+ $error++;
+ setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors');
+ }
+
+ if (! $error)
+ {
+ $result=$object->update($user);
+ if ($result > 0)
+ {
+ $action='view';
+ }
+ else
+ {
+ // Creation KO
+ if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors');
+ else setEventMessages($object->error, null, 'errors');
+ $action='edit';
+ }
+ }
+ else
+ {
+ $action='edit';
+ }
+ }
+
+ // Action to delete
+ if ($action == 'confirm_delete')
+ {
+ $result=$object->delete($user);
+ if ($result > 0)
+ {
+ // Delete OK
+ setEventMessages("RecordDeleted", null, 'mesgs');
+ header("Location: ".dol_buildpath('/mymodule/list.php',1));
+ exit;
+ }
+ else
+ {
+ if (! empty($object->errors)) setEventMessages(null,$object->errors,'errors');
+ else setEventMessages($object->error,null,'errors');
+ }
+ }
+}
+
+
+
+
+/***************************************************
+* VIEW
+*
+* Put here all code to build page
+****************************************************/
+
+llxHeader('','MyPageName','');
+
+$form=new Form($db);
+
+
+// Put here content of your page
+
+// Example : Adding jquery code
+print '';
+
+
+// Part to create
+if ($action == 'create')
+{
+ print load_fiche_titre($langs->trans("NewSkeleton"));
+
+ print '';
+}
+
+
+
+// Part to edit record
+if (($id || $ref) && $action == 'edit')
+{
+ print '';
+}
+
+
+
+// Part to show record
+if ($id && (empty($action) || $action == 'view'))
+{
+ dol_fiche_head();
+
+
+
+ dol_fiche_end();
+
+
+ // Buttons
+ print ''."\n";
+ $parameters=array();
+ $reshook=$hookmanager->executeHooks('addMoreActionsButtons',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
+ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
+
+ if (empty($reshook))
+ {
+ if ($user->rights->mymodule->write)
+ {
+ print '
'."\n";
+ }
+
+ if ($user->rights->mymodule->delete)
+ {
+ if ($conf->use_javascript_ajax && empty($conf->dol_use_jmobile)) // We can't use preloaded confirm form with jmobile
+ {
+ print '
'.$langs->trans('Delete').'
'."\n";
+ }
+ else
+ {
+ print '
'."\n";
+ }
+ }
+ }
+ print '
'."\n";
+
+
+ // Example 2 : Adding links to objects
+ //$somethingshown=$form->showLinkedObjectBlock($object);
+ //$linktoelem = $form->showLinkToObjectBlock($object);
+ //if ($linktoelem) print '
'.$linktoelem;
+
+}
+
+
+// End of page
+llxFooter();
+$db->close();
diff --git a/dev/skeletons/skeleton_page.php b/dev/skeletons/skeleton_list.php
similarity index 68%
rename from dev/skeletons/skeleton_page.php
rename to dev/skeletons/skeleton_list.php
index c1e12c2f93c..06a88a23020 100644
--- a/dev/skeletons/skeleton_page.php
+++ b/dev/skeletons/skeleton_list.php
@@ -17,7 +17,7 @@
*/
/**
- * \file dev/skeletons/skeleton_page.php
+ * \file dev/skeletons/skeleton_list.php
* \ingroup mymodule othermodule1 othermodule2
* \brief This file is an example of a php page
* Put here some comments
@@ -93,89 +93,6 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
if (empty($reshook))
{
- // Action to add record
- if ($action == 'add')
- {
- if (GETPOST('cancel'))
- {
- $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1);
- header("Location: ".$urltogo);
- exit;
- }
-
- $error=0;
-
- /* object_prop_getpost_prop */
- $object->prop1=GETPOST("field1");
- $object->prop2=GETPOST("field2");
-
- if (empty($object->ref))
- {
- $error++;
- setEventMessage($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),'errors');
- }
-
- if (! $error)
- {
- $result=$object->create($user);
- if ($result > 0)
- {
- // Creation OK
- $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1);
- header("Location: ".$urltogo);
- exit;
- }
- {
- // Creation KO
- if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors');
- else setEventMessages($object->error, null, 'errors');
- $action='create';
- }
- }
- else
- {
- $action='create';
- }
- }
-
- // Cancel
- if ($action == 'update' && GETPOST('cancel')) $action='view';
-
- // Action to update record
- if ($action == 'update' && ! GETPOST('cancel'))
- {
- $error=0;
-
- $object->prop1=GETPOST("field1");
- $object->prop2=GETPOST("field2");
-
- if (empty($object->ref))
- {
- $error++;
- setEventMessages($langs->transnoentitiesnoconv("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")),null,'errors');
- }
-
- if (! $error)
- {
- $result=$object->update($user);
- if ($result > 0)
- {
- $action='view';
- }
- else
- {
- // Creation KO
- if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors');
- else setEventMessages($object->error, null, 'errors');
- $action='edit';
- }
- }
- else
- {
- $action='edit';
- }
- }
-
// Action to delete
if ($action == 'confirm_delete')
{
@@ -184,7 +101,7 @@ if (empty($reshook))
{
// Delete OK
setEventMessages("RecordDeleted", null, 'mesgs');
- header("Location: ".dol_buildpath('/buildingmanagement/list.php',1));
+ header("Location: ".dol_buildpath('/mymodule/list.php',1));
exit;
}
else
@@ -347,100 +264,6 @@ if ($action == 'list' || (empty($id) && $action != 'create'))
}
-
-// Part to create
-if ($action == 'create')
-{
- print load_fiche_titre($langs->trans("NewSkeleton"));
-
- print '';
-}
-
-
-
-// Part to edit record
-if (($id || $ref) && $action == 'edit')
-{
- print '';
-}
-
-
-
-// Part to show record
-if ($id && (empty($action) || $action == 'view'))
-{
- dol_fiche_head();
-
-
-
- dol_fiche_end();
-
-
- // Buttons
- print ''."\n";
- $parameters=array();
- $reshook=$hookmanager->executeHooks('addMoreActionsButtons',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
- if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
-
- if (empty($reshook))
- {
- if ($user->rights->mymodule->write)
- {
- print '
'."\n";
- }
-
- if ($user->rights->mymodule->delete)
- {
- if ($conf->use_javascript_ajax && empty($conf->dol_use_jmobile)) // We can't use preloaded confirm form with jmobile
- {
- print '
'.$langs->trans('Delete').'
'."\n";
- }
- else
- {
- print '
'."\n";
- }
- }
- }
- print '
'."\n";
-
-
- // Example 2 : Adding links to objects
- //$somethingshown=$form->showLinkedObjectBlock($object);
- //$linktoelem = $form->showLinkToObjectBlock($object);
- //if ($linktoelem) print '
'.$linktoelem;
-
-}
-
-
// End of page
llxFooter();
$db->close();