Differences From Artifact [218ac5f508]:

To Artifact [0e8c0cdaf4]:


1
2
3
4


5
6
7
8
9
10
11
<?php
namespace Garradin;

require_once __DIR__ . '/_inc.php';



$champs = $config->get('champs_membres');
$text_query = trim(qg('qt'));
$query = null;
$limit = f('limit') ?: 100;
$order = f('order');
$desc = (bool) f('desc');




>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
namespace Garradin;

require_once __DIR__ . '/_inc.php';

$recherche = new Recherche;

$champs = $config->get('champs_membres');
$text_query = trim(qg('qt'));
$query = null;
$limit = f('limit') ?: 100;
$order = f('order');
$desc = (bool) f('desc');
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
elseif (f('q') !== null)
{
    $query = json_decode(f('q'), true);
}

if ($query)
{
    $sql_query = $membres->buildSQLSearchQuery($query, $order, $desc, $limit);
    $result = $membres->searchSQL($sql_query);

    if (count($result) == 1 && $text_query !== '')
    {
        Utils::redirect(ADMIN_URL . 'membres/fiche.php?id=' . (int)$result[0]->id);
    }

    $tpl->assign('result_header', $membres->getSearchHeaderFields($result));







|
|







46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
elseif (f('q') !== null)
{
    $query = json_decode(f('q'), true);
}

if ($query)
{
    $sql_query = $recherche->buildQuery('membres', $query, $order, $desc, $limit);
    $result = $recherche->searchSQL('membres', $sql_query);

    if (count($result) == 1 && $text_query !== '')
    {
        Utils::redirect(ADMIN_URL . 'membres/fiche.php?id=' . (int)$result[0]->id);
    }

    $tpl->assign('result_header', $membres->getSearchHeaderFields($result));
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

$tpl->assign('query', $query);
$tpl->assign('sql_query', $sql_query);
$tpl->assign('result', $result);
$tpl->assign('order', $order);
$tpl->assign('desc', $desc);
$tpl->assign('limit', $limit);

$colonnes = [];

foreach ($champs->getList() as $champ => $config)
{
    $colonne = [
        'label' => $config->title,
        'type'  => 'text',
        'null'  => true,
    ];

    if ($config->type == 'checkbox')
    {
        $colonne['type'] = 'boolean';
    }
    elseif ($config->type == 'select')
    {
        $colonne['type'] = 'enum';
        $colonne['values'] = $config->options;
    }
    elseif ($config->type == 'multiple')
    {
        $colonne['type'] = 'bitwise';
        $colonne['values'] = $config->options;
    }
    elseif ($config->type == 'date' || $config->type == 'datetime')
    {
        $colonne['type'] = $config->type;
    }
    elseif ($config->type == 'number' || $champ == 'numero')
    {
        $colonne['type'] = 'integer';
    }

    $colonnes[$champ] = $colonne;
}

$tpl->assign('colonnes', $colonnes);

$tpl->display('admin/membres/recherche.tpl');







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|


77
78
79
80
81
82
83





































84
85
86

$tpl->assign('query', $query);
$tpl->assign('sql_query', $sql_query);
$tpl->assign('result', $result);
$tpl->assign('order', $order);
$tpl->assign('desc', $desc);
$tpl->assign('limit', $limit);





































$tpl->assign('colonnes', $recherche->getColumns('membres'));

$tpl->display('admin/membres/recherche.tpl');