';",'/').'/', '', $targetcontent);
// Build file
$fp=fopen($outfile,"w");
diff --git a/dev/skeletons/skeleton_card.php b/dev/skeletons/skeleton_card.php
index a7191560108..8b643ff3f6c 100644
--- a/dev/skeletons/skeleton_card.php
+++ b/dev/skeletons/skeleton_card.php
@@ -47,7 +47,7 @@ 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("mymodule");
$langs->load("other");
// Get parameters
diff --git a/dev/skeletons/skeleton_list.php b/dev/skeletons/skeleton_list.php
index 06a88a23020..e2452324d99 100644
--- a/dev/skeletons/skeleton_list.php
+++ b/dev/skeletons/skeleton_list.php
@@ -47,7 +47,7 @@ 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("mymodule");
$langs->load("other");
// Get parameters
@@ -58,14 +58,35 @@ $myparam = GETPOST('myparam','alpha');
$search_field1=GETPOST("search_field1");
$search_field2=GETPOST("search_field2");
+$optioncss = GETPOST('optioncss','alpha');
+
+// Load variable for pagination
+$limit = GETPOST("limit")?GETPOST("limit","int"):$conf->liste_limit;
+$sortfield = GETPOST('sortfield','alpha');
+$sortorder = GETPOST('sortorder','alpha');
+$page = GETPOST('page','int');
+if ($page == -1) { $page = 0; }
+$offset = $limit * $page;
+$pageprev = $page - 1;
+$pagenext = $page + 1;
+if (! $sortfield) $sortfield="t.rowid"; // Set here default search field
+if (! $sortorder) $sortorder="ASC";
// Protection if external user
+$socid=0;
if ($user->societe_id > 0)
{
+ $socid = $user->societe_id;
//accessforbidden();
}
-if (empty($action) && empty($id) && empty($ref)) $action='list';
+// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array
+$hookmanager->initHooks(array('skeletonlist'));
+$extrafields = new ExtraFields($db);
+
+// fetch optionals attributes and labels
+$extralabels = $extrafields->fetch_name_optionals_label('mymodule');
+$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_');
// Load object if id or ref is provided as parameter
$object=new Skeleton_Class($db);
@@ -75,9 +96,7 @@ if (($id > 0 || ! empty($ref)) && $action != 'add')
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);
+
@@ -91,6 +110,18 @@ $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');
+include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
+
+if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") ||GETPOST("button_removefilter")) // All test are required to be compatible with all browsers
+{
+ $search_field1='';
+ $search_field2='';
+ $search_date_creation='';
+ $search_date_update='';
+ $search_array_options=array();
+}
+
+
if (empty($reshook))
{
// Action to delete
@@ -125,8 +156,8 @@ llxHeader('','MyPageName','');
$form=new Form($db);
-
// Put here content of your page
+print load_fiche_titre('PageTitle');
// Example : Adding jquery code
print '';
-// Part to show a list
-if ($action == 'list' || (empty($id) && $action != 'create'))
+$sql = "SELECT";
+$sql.= " t.rowid,";
+$sql.= " t.field1,";
+$sql.= " t.field2";
+// Add fields for extrafields
+foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
+// Add fields from hooks
+$parameters=array();
+$reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook
+$sql.=$hookmanager->resPrint;
+$sql.= " FROM ".MAIN_DB_PREFIX."mytable as t";
+if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."mytable_extrafields as ef on (u.rowid = ef.fk_object)";
+$sql.= " WHERE 1 = 1";
+//$sql.= " WHERE u.entity IN (".getEntity('mytable',1).")";
+if ($search_field1) $sql.= natural_search("field1",$search_field1);
+if ($search_field2) $sql.= natural_search("field2",$search_field2);
+if ($sall) $sql.= natural_search(array_keys($fieldstosearchall), $sall);
+// Add where from extra fields
+foreach ($search_array_options as $key => $val)
{
- // Put here content of your page
- print load_fiche_titre('PageTitle');
-
- $sql = "SELECT";
- $sql.= " t.rowid,";
- $sql.= " t.field1,";
- $sql.= " t.field2";
- // Add fields for extrafields
- foreach ($extrafields->attribute_list as $key => $val) $sql.=",ef.".$key.' as options_'.$key;
- // Add fields from hooks
- $parameters=array();
- $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook
- $sql.=$hookmanager->resPrint;
- $sql.= " FROM ".MAIN_DB_PREFIX."mytable as t";
- $sql.= " WHERE 1 = 1";
- if ($search_field1) $sql.= natural_search("field1",$search_field1);
- if ($search_field2) $sql.= natural_search("field2",$search_field2);
-
- // Add where from hooks
- $parameters=array();
- $reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
- $sql.=$hookmanager->resPrint;
-
- // Count total nb of records
- $nbtotalofrecords = 0;
- if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
+ $crit=$val;
+ $tmpkey=preg_replace('/search_options_/','',$key);
+ $typ=$extrafields->attribute_type[$tmpkey];
+ $mode=0;
+ if (in_array($typ, array('int'))) $mode=1; // Search on a numeric
+ if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit)))
{
- $result = $db->query($sql);
- $nbtotalofrecords = $db->num_rows($result);
- }
+ $sql .= natural_search('ef.'.$tmpkey, $crit, $mode);
+ }
+}
+// Add where from hooks
+$parameters=array();
+$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook
+$sql.=$hookmanager->resPrint;
+$sql.=$db->order($sortfield,$sortorder);
+//$sql.= $db->plimit($conf->liste_limit+1, $offset);
+
+// Count total nb of records
+$nbtotalofrecords = 0;
+if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST))
+{
+ $result = $db->query($sql);
+ $nbtotalofrecords = $db->num_rows($result);
+}
+
+$sql.= $db->plimit($conf->liste_limit+1, $offset);
+
+
+dol_syslog($script_file, LOG_DEBUG);
+$resql=$db->query($sql);
+if ($resql)
+{
+ $num = $db->num_rows($resql);
+
+ $params='';
+ if ($search_field1 != '') $params.= '&search_field1='.urlencode($search_field1);
+ if ($search_field2 != '') $params.= '&search_field2='.urlencode($search_field2);
+ if ($optioncss != '') $param.='&optioncss='.$optioncss;
+ // Add $param from extra fields
+ foreach ($search_array_options as $key => $val)
+ {
+ $crit=$val;
+ $tmpkey=preg_replace('/search_options_/','',$key);
+ if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val);
+ }
+
+ print_barre_liste($title, $page, $_SERVER["PHP_SELF"],$params,$sortfield,$sortorder,'',$num,$nbtotalofrecords,'title_companies');
+
+
+ print '\n";
-
+ foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val);
+ print $langs->trans("FilterOnInto", $sall, join(', ',$fieldstosearchall));
}
- else
+
+ if (! empty($moreforfilter))
{
- $error++;
- dol_print_error($db);
+ print '
';
+ print $moreforfilter;
+ $parameters=array();
+ $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook
+ print $hookmanager->resPrint;
+ print '
';
+ if (! empty($arrayfields['t.field1']['checked'])) print_liste_field_titre($langs->trans('field1'),$_SERVER['PHP_SELF'],'t.field1','',$param,'',$sortfield,$sortorder);
+ if (! empty($arrayfields['t.field2']['checked'])) print_liste_field_titre($langs->trans('field2'),$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder);
+ // Extra fields
+ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
+ {
+ foreach($extrafields->attribute_label as $key => $val)
+ {
+ if (! empty($arrayfields["ef.".$key]['checked']))
+ {
+ $align=$extrafields->getAlignFlag($key);
+ print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+ }
+ }
+ }
+ // Hook fields
+ $parameters=array('arrayfields'=>$arrayfields);
+ $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
+ print $hookmanager->resPrint;
+ if (! empty($arrayfields['t.datec']['checked'])) print_liste_field_titre($langs->trans("DateCreationShort"),$_SERVER["PHP_SELF"],"t.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+ if (! empty($arrayfields['t.tms']['checked'])) print_liste_field_titre($langs->trans("DateModificationShort"),$_SERVER["PHP_SELF"],"t.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+ //if (! empty($arrayfields['u.statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"u.statut","",$param,'align="center"',$sortfield,$sortorder);
+ print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
+ print '
'."\n";
+
+ // Fields title search
+ print '
';
+ if (! empty($arrayfields['t.field1']['checked'])) print '
';
+ if (! empty($arrayfields['t.field2']['checked'])) print '
';
+ // Extra fields
+ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
+ {
+ foreach($extrafields->attribute_label as $key => $val)
+ {
+ if (! empty($arrayfields["ef.".$key]['checked'])) print '
';
+ }
+ }
+ // Fields from hook
+ $parameters=array('arrayfields'=>$arrayfields);
+ $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook
+ print $hookmanager->resPrint;
+ if (! empty($arrayfields['t.datec']['checked']))
+ {
+ // Date creation
+ print '
';
+ print '
';
}
+ if (! empty($arrayfields['t.tms']['checked']))
+ {
+ // Date modification
+ print '
';
+ }
+ }
+ }
+ // Fields from hook
+ $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj);
+ $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook
+ print $hookmanager->resPrint;
+ // Date creation
+ if (! empty($arrayfields['t.datec']['checked']))
+ {
+ print '
';
+ }
+ // Status
+ /*
+ if (! empty($arrayfields['u.statut']['checked']))
+ {
+ $userstatic->statut=$obj->statut;
+ print '
'.$userstatic->getLibStatut(3).'
';
+ }*/
+ // Action column
+ print '
';
+ print '
';
+ }
+ $i++;
+ }
+
+ $db->free($resql);
+
+ $parameters=array('sql' => $sql);
+ $reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook
+ print $hookmanager->resPrint;
+
+ print "
\n";
+ print "\n";
+
+ $db->free($result);
+}
+else
+{
+ $error++;
+ dol_print_error($db);
}
diff --git a/htdocs/user/card.php b/htdocs/user/card.php
index 83762e988ee..42e1617e4c1 100644
--- a/htdocs/user/card.php
+++ b/htdocs/user/card.php
@@ -92,7 +92,7 @@ $extrafields = new ExtraFields($db);
// fetch optionals attributes and labels
$extralabels=$extrafields->fetch_name_optionals_label($object->table_element);
-// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
+// Initialize technical object to manage hooks. Note that conf->hooks_modules contains array
$hookmanager->initHooks(array('usercard','globalcard'));
diff --git a/htdocs/user/index.php b/htdocs/user/index.php
index 28699839a18..9c1828653ac 100644
--- a/htdocs/user/index.php
+++ b/htdocs/user/index.php
@@ -55,6 +55,7 @@ $optioncss = GETPOST('optioncss','alpha');
if ($search_statut == '') $search_statut='1';
+// Load variable for pagination
$limit = GETPOST("limit")?GETPOST("limit","int"):$conf->liste_limit;
$sortfield = GETPOST('sortfield','alpha');
$sortorder = GETPOST('sortorder','alpha');
@@ -78,24 +79,6 @@ $userstatic=new User($db);
$companystatic = new Societe($db);
$form = new Form($db);
-if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers
-{
- $search_user="";
- $search_login="";
- $search_lastname="";
- $search_firstname="";
- $search_accountancy_code="";
- $search_email="";
- $search_statut="";
- $search_thirdparty="";
- $search_supervisor="";
- $search_datelastlogin="";
- $search_datepreviouslogin="";
- $search_date_creation="";
- $search_date_update="";
- $search_array_options=array();
-}
-
// List of fields to search into when doing a "search in all"
$fieldstosearchall = array(
'u.login'=>"Login",
@@ -117,6 +100,24 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e
include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php';
+if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") ||GETPOST("button_removefilter")) // All test are required to be compatible with all browsers
+{
+ $search_user="";
+ $search_login="";
+ $search_lastname="";
+ $search_firstname="";
+ $search_accountancy_code="";
+ $search_email="";
+ $search_statut="";
+ $search_thirdparty="";
+ $search_supervisor="";
+ $search_datelastlogin="";
+ $search_datepreviouslogin="";
+ $search_date_creation="";
+ $search_date_update="";
+ $search_array_options=array();
+}
+
/*
@@ -248,7 +249,7 @@ if ($result)
}
$varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage;
$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields
- print '
';
+ print '
';
print '
';
if (! empty($arrayfields['u.login']['checked'])) print_liste_field_titre($langs->trans("Login"),$_SERVER['PHP_SELF'],"u.login",$param,"","",$sortfield,$sortorder);
if (! empty($arrayfields['u.lastname']['checked'])) print_liste_field_titre($langs->trans("Lastname"),$_SERVER['PHP_SELF'],"u.lastname",$param,"","",$sortfield,$sortorder);