projects/genea/out/phpdb/class_event.php
1.
<?php
2.
 
3.
/*
4.
        Généalogik
5.
        
6.
        Class for table : event.
7.
 
8.
        07/03/2021 10:45
9.
 
10.
        lvardon@laposte.net - 2021
11.
        
12.
        Licence libre
13.
 
14.
        Usage examples :
15.
 
16.
        <?php
17.
 
18.
            include_once("classdir/dbconnect.php);
19.
            include_once("classdir/class_event.php);
20.
 
21.
            // Class instance
22.
            $myevent = event( $db );
23.
 
24.
            // Select all reccords :
25.
            $results = $myevent->selectAll();
26.
            foreach($results as $row) {
27.
                print_r($row);
28.
            } 
29.
 
30.
            // Select reccord #12 :
31.
            $id = 12;
32.
            $row = $myevent->select($id);
33.
            print_r($row);
34.
 
35.
        ?>
36.
 
37.
*/
38.
class _event {
39.
      
40.
    public $db;
41.
    public $lasterror="";
42.
    public $lastInsertId=-1;
43.
    public $count 0;
44.
  
45.
    /*
46.
        Initialise object with dbHanler.
47.
                
48.
    */    
49.
    function __construct$db ) {
50.
        $this->db $db;
51.
    }
52.
 
53.
    /*
54.
        Select one reccord from event.
55.
        
56.
        parameters : $id (reccord id).
57.
        return : associative array of reccord.
58.
    */
59.
    function select($id) {
60.
 
61.
        $this->lasterror="";
62.
 
63.
        $sqlSt="
64.
        select       
65.
            a.id as 'a.id',  
66.
            a.name as 'a.name',
67.
            a.description as 'a.description',
68.
            a.private as 'a.private',
69.
            a.date_begin as 'a.date_begin',
70.
            a.date_begin_accurate as 'a.date_begin_accurate',
71.
            a.notesearch as 'a.notesearch',
72.
            a.datecreated as 'a.datecreated',
73.
            a.person_1_id as 'a.person_1_id',
74.
            a.person_2_id as 'a.person_2_id',
75.
            a.person_3_id as 'a.person_3_id',
76.
            a.eventtype_id as 'a.eventtype_id',
77.
            a.place_id as 'a.place_id',
78.
 
79.
             b1.id as 'b1.id', 
80.
             b1.displayname as 'b1.displayname', 
81.
             b1.description as 'b1.description', 
82.
             b1.firstname as 'b1.firstname', 
83.
             b1.lastname as 'b1.lastname', 
84.
             b1.private as 'b1.private', 
85.
             b1.icon as 'b1.icon', 
86.
             b1.sex as 'b1.sex', 
87.
             b1.notesearch as 'b1.notesearch', 
88.
             b1.firstnameprefix as 'b1.firstnameprefix', 
89.
             b1.displaynameprefix as 'b1.displaynameprefix', 
90.
             b1.lastnamesuffix as 'b1.lastnamesuffix', 
91.
             b1.surname as 'b1.surname', 
92.
             b1.datecreated as 'b1.datecreated', 
93.
             c2.id as 'c2.id', 
94.
             c2.displayname as 'c2.displayname', 
95.
             c2.description as 'c2.description', 
96.
             c2.firstname as 'c2.firstname', 
97.
             c2.lastname as 'c2.lastname', 
98.
             c2.private as 'c2.private', 
99.
             c2.icon as 'c2.icon', 
100.
             c2.sex as 'c2.sex', 
101.
             c2.notesearch as 'c2.notesearch', 
102.
             c2.firstnameprefix as 'c2.firstnameprefix', 
103.
             c2.displaynameprefix as 'c2.displaynameprefix', 
104.
             c2.lastnamesuffix as 'c2.lastnamesuffix', 
105.
             c2.surname as 'c2.surname', 
106.
             c2.datecreated as 'c2.datecreated', 
107.
             d3.id as 'd3.id', 
108.
             d3.displayname as 'd3.displayname', 
109.
             d3.description as 'd3.description', 
110.
             d3.firstname as 'd3.firstname', 
111.
             d3.lastname as 'd3.lastname', 
112.
             d3.private as 'd3.private', 
113.
             d3.icon as 'd3.icon', 
114.
             d3.sex as 'd3.sex', 
115.
             d3.notesearch as 'd3.notesearch', 
116.
             d3.firstnameprefix as 'd3.firstnameprefix', 
117.
             d3.displaynameprefix as 'd3.displaynameprefix', 
118.
             d3.lastnamesuffix as 'd3.lastnamesuffix', 
119.
             d3.surname as 'd3.surname', 
120.
             d3.datecreated as 'd3.datecreated', 
121.
             e4.id as 'e4.id', 
122.
             e4.name as 'e4.name', 
123.
             e4.code as 'e4.code', 
124.
             e4.category as 'e4.category', 
125.
             e4.description as 'e4.description', 
126.
             f5.id as 'f5.id', 
127.
             f5.name as 'f5.name', 
128.
             f5.description as 'f5.description', 
129.
             f5.private as 'f5.private', 
130.
             f5.icon as 'f5.icon', 
131.
             f5.adress1 as 'f5.adress1', 
132.
             f5.adress2 as 'f5.adress2', 
133.
             f5.zipcode as 'f5.zipcode', 
134.
             f5.city as 'f5.city', 
135.
             f5.cityinsee as 'f5.cityinsee', 
136.
             f5.country as 'f5.country', 
137.
             f5.url as 'f5.url', 
138.
             f5.gpslat as 'f5.gpslat', 
139.
             f5.gpslon as 'f5.gpslon', 
140.
             f5.datecreated as 'f5.datecreated' 
141.
 
142.
        from event a 
143.
             left outer join place f5 on f5.id =  a.place_id 
144.
             left outer join eventtype e4 on e4.id =  a.eventtype_id 
145.
             left outer join person d3 on d3.id =  a.person_3_id 
146.
             left outer join person c2 on c2.id =  a.person_2_id 
147.
             left outer join person b1 on b1.id =  a.person_1_id 
148.
 
149.
        where a.id = :id; 
150.
            ";
151.
 
152.
        try {                
153.
 
154.
            $stmt $this->db->prepare($sqlSt);        
155.
            $stmt->bindParam(':id'$idPDO::PARAM_INT);
156.
            $stmt->execute(); 
157.
            $results $stmt->fetchAll(PDO::FETCH_ASSOC);
158.
            return $results;
159.
 
160.
        } catch (Exception $e) {
161.
            $this->lasterror $e->getMessage().' (<b>Id</b> = '.$idkeyname.')';
162.
            return false;
163.
        }
164.
    }
165.
 
166.
    function selectPrev($id) {
167.
 
168.
        $this->lasterror="";
169.
 
170.
        $sqlSt="
171.
        select       
172.
            a.id as 'a.id',  
173.
            a.name as 'a.name',
174.
            a.description as 'a.description',
175.
            a.private as 'a.private',
176.
            a.date_begin as 'a.date_begin',
177.
            a.date_begin_accurate as 'a.date_begin_accurate',
178.
            a.notesearch as 'a.notesearch',
179.
            a.datecreated as 'a.datecreated',
180.
            a.person_1_id as 'a.person_1_id',
181.
            a.person_2_id as 'a.person_2_id',
182.
            a.person_3_id as 'a.person_3_id',
183.
            a.eventtype_id as 'a.eventtype_id',
184.
            a.place_id as 'a.place_id',
185.
 
186.
             b1.id as 'b1.id', 
187.
             b1.displayname as 'b1.displayname', 
188.
             b1.description as 'b1.description', 
189.
             b1.firstname as 'b1.firstname', 
190.
             b1.lastname as 'b1.lastname', 
191.
             b1.private as 'b1.private', 
192.
             b1.icon as 'b1.icon', 
193.
             b1.sex as 'b1.sex', 
194.
             b1.notesearch as 'b1.notesearch', 
195.
             b1.firstnameprefix as 'b1.firstnameprefix', 
196.
             b1.displaynameprefix as 'b1.displaynameprefix', 
197.
             b1.lastnamesuffix as 'b1.lastnamesuffix', 
198.
             b1.surname as 'b1.surname', 
199.
             b1.datecreated as 'b1.datecreated', 
200.
             c2.id as 'c2.id', 
201.
             c2.displayname as 'c2.displayname', 
202.
             c2.description as 'c2.description', 
203.
             c2.firstname as 'c2.firstname', 
204.
             c2.lastname as 'c2.lastname', 
205.
             c2.private as 'c2.private', 
206.
             c2.icon as 'c2.icon', 
207.
             c2.sex as 'c2.sex', 
208.
             c2.notesearch as 'c2.notesearch', 
209.
             c2.firstnameprefix as 'c2.firstnameprefix', 
210.
             c2.displaynameprefix as 'c2.displaynameprefix', 
211.
             c2.lastnamesuffix as 'c2.lastnamesuffix', 
212.
             c2.surname as 'c2.surname', 
213.
             c2.datecreated as 'c2.datecreated', 
214.
             d3.id as 'd3.id', 
215.
             d3.displayname as 'd3.displayname', 
216.
             d3.description as 'd3.description', 
217.
             d3.firstname as 'd3.firstname', 
218.
             d3.lastname as 'd3.lastname', 
219.
             d3.private as 'd3.private', 
220.
             d3.icon as 'd3.icon', 
221.
             d3.sex as 'd3.sex', 
222.
             d3.notesearch as 'd3.notesearch', 
223.
             d3.firstnameprefix as 'd3.firstnameprefix', 
224.
             d3.displaynameprefix as 'd3.displaynameprefix', 
225.
             d3.lastnamesuffix as 'd3.lastnamesuffix', 
226.
             d3.surname as 'd3.surname', 
227.
             d3.datecreated as 'd3.datecreated', 
228.
             e4.id as 'e4.id', 
229.
             e4.name as 'e4.name', 
230.
             e4.code as 'e4.code', 
231.
             e4.category as 'e4.category', 
232.
             e4.description as 'e4.description', 
233.
             f5.id as 'f5.id', 
234.
             f5.name as 'f5.name', 
235.
             f5.description as 'f5.description', 
236.
             f5.private as 'f5.private', 
237.
             f5.icon as 'f5.icon', 
238.
             f5.adress1 as 'f5.adress1', 
239.
             f5.adress2 as 'f5.adress2', 
240.
             f5.zipcode as 'f5.zipcode', 
241.
             f5.city as 'f5.city', 
242.
             f5.cityinsee as 'f5.cityinsee', 
243.
             f5.country as 'f5.country', 
244.
             f5.url as 'f5.url', 
245.
             f5.gpslat as 'f5.gpslat', 
246.
             f5.gpslon as 'f5.gpslon', 
247.
             f5.datecreated as 'f5.datecreated' 
248.
 
249.
        from event a 
250.
             left outer join place f5 on f5.id =  a.place_id 
251.
             left outer join eventtype e4 on e4.id =  a.eventtype_id 
252.
             left outer join person d3 on d3.id =  a.person_3_id 
253.
             left outer join person c2 on c2.id =  a.person_2_id 
254.
             left outer join person b1 on b1.id =  a.person_1_id 
255.
 
256.
        where a.id =  (SELECT id FROM event WHERE id < :id ORDER BY id DESC LIMIT 1) ; 
257.
            ";
258.
 
259.
        try {                
260.
 
261.
            $stmt $this->db->prepare($sqlSt);        
262.
            $stmt->bindParam(':id'$idPDO::PARAM_INT);
263.
            $stmt->execute(); 
264.
            $results $stmt->fetchAll(PDO::FETCH_ASSOC);
265.
            return $results;
266.
 
267.
        } catch (Exception $e) {
268.
            $this->lasterror $e->getMessage().' (<b>Id</b> = '.$idkeyname.')';
269.
            return false;
270.
        }
271.
    }
272.
 
273.
 
274.
    function selectNext($id) {
275.
 
276.
        $this->lasterror="";
277.
 
278.
        $sqlSt="
279.
        select       
280.
            a.id as 'a.id',  
281.
            a.name as 'a.name',
282.
            a.description as 'a.description',
283.
            a.private as 'a.private',
284.
            a.date_begin as 'a.date_begin',
285.
            a.date_begin_accurate as 'a.date_begin_accurate',
286.
            a.notesearch as 'a.notesearch',
287.
            a.datecreated as 'a.datecreated',
288.
            a.person_1_id as 'a.person_1_id',
289.
            a.person_2_id as 'a.person_2_id',
290.
            a.person_3_id as 'a.person_3_id',
291.
            a.eventtype_id as 'a.eventtype_id',
292.
            a.place_id as 'a.place_id',
293.
 
294.
             b1.id as 'b1.id', 
295.
             b1.displayname as 'b1.displayname', 
296.
             b1.description as 'b1.description', 
297.
             b1.firstname as 'b1.firstname', 
298.
             b1.lastname as 'b1.lastname', 
299.
             b1.private as 'b1.private', 
300.
             b1.icon as 'b1.icon', 
301.
             b1.sex as 'b1.sex', 
302.
             b1.notesearch as 'b1.notesearch', 
303.
             b1.firstnameprefix as 'b1.firstnameprefix', 
304.
             b1.displaynameprefix as 'b1.displaynameprefix', 
305.
             b1.lastnamesuffix as 'b1.lastnamesuffix', 
306.
             b1.surname as 'b1.surname', 
307.
             b1.datecreated as 'b1.datecreated', 
308.
             c2.id as 'c2.id', 
309.
             c2.displayname as 'c2.displayname', 
310.
             c2.description as 'c2.description', 
311.
             c2.firstname as 'c2.firstname', 
312.
             c2.lastname as 'c2.lastname', 
313.
             c2.private as 'c2.private', 
314.
             c2.icon as 'c2.icon', 
315.
             c2.sex as 'c2.sex', 
316.
             c2.notesearch as 'c2.notesearch', 
317.
             c2.firstnameprefix as 'c2.firstnameprefix', 
318.
             c2.displaynameprefix as 'c2.displaynameprefix', 
319.
             c2.lastnamesuffix as 'c2.lastnamesuffix', 
320.
             c2.surname as 'c2.surname', 
321.
             c2.datecreated as 'c2.datecreated', 
322.
             d3.id as 'd3.id', 
323.
             d3.displayname as 'd3.displayname', 
324.
             d3.description as 'd3.description', 
325.
             d3.firstname as 'd3.firstname', 
326.
             d3.lastname as 'd3.lastname', 
327.
             d3.private as 'd3.private', 
328.
             d3.icon as 'd3.icon', 
329.
             d3.sex as 'd3.sex', 
330.
             d3.notesearch as 'd3.notesearch', 
331.
             d3.firstnameprefix as 'd3.firstnameprefix', 
332.
             d3.displaynameprefix as 'd3.displaynameprefix', 
333.
             d3.lastnamesuffix as 'd3.lastnamesuffix', 
334.
             d3.surname as 'd3.surname', 
335.
             d3.datecreated as 'd3.datecreated', 
336.
             e4.id as 'e4.id', 
337.
             e4.name as 'e4.name', 
338.
             e4.code as 'e4.code', 
339.
             e4.category as 'e4.category', 
340.
             e4.description as 'e4.description', 
341.
             f5.id as 'f5.id', 
342.
             f5.name as 'f5.name', 
343.
             f5.description as 'f5.description', 
344.
             f5.private as 'f5.private', 
345.
             f5.icon as 'f5.icon', 
346.
             f5.adress1 as 'f5.adress1', 
347.
             f5.adress2 as 'f5.adress2', 
348.
             f5.zipcode as 'f5.zipcode', 
349.
             f5.city as 'f5.city', 
350.
             f5.cityinsee as 'f5.cityinsee', 
351.
             f5.country as 'f5.country', 
352.
             f5.url as 'f5.url', 
353.
             f5.gpslat as 'f5.gpslat', 
354.
             f5.gpslon as 'f5.gpslon', 
355.
             f5.datecreated as 'f5.datecreated' 
356.
 
357.
        from event a 
358.
             left outer join place f5 on f5.id =  a.place_id 
359.
             left outer join eventtype e4 on e4.id =  a.eventtype_id 
360.
             left outer join person d3 on d3.id =  a.person_3_id 
361.
             left outer join person c2 on c2.id =  a.person_2_id 
362.
             left outer join person b1 on b1.id =  a.person_1_id 
363.
 
364.
        where a.id =  (SELECT id FROM event WHERE id > :id ORDER BY id ASC LIMIT 1) ; 
365.
            ";
366.
 
367.
        try {                
368.
 
369.
            $stmt $this->db->prepare($sqlSt);        
370.
            $stmt->bindParam(':id'$idPDO::PARAM_INT);
371.
            $stmt->execute(); 
372.
            $results $stmt->fetchAll(PDO::FETCH_ASSOC);
373.
            return $results;
374.
 
375.
        } catch (Exception $e) {
376.
            $this->lasterror $e->getMessage().' (<b>Id</b> = '.$idkeyname.')';
377.
            return false;
378.
        }
379.
    }
380.
 
381.
    /*
382.
        Select all reccords from event  (with default order).
383.
        
384.
        parameters : None
385.
        return : associative array of reccords.
386.
    */
387.
    function selectAll() {
388.
 
389.
        $this->lasterror="";
390.
 
391.
        $sqlSt="
392.
        select       
393.
            a.id as 'a.id',  
394.
            a.name as 'a.name',
395.
            a.description as 'a.description',
396.
            a.private as 'a.private',
397.
            a.date_begin as 'a.date_begin',
398.
            a.date_begin_accurate as 'a.date_begin_accurate',
399.
            a.notesearch as 'a.notesearch',
400.
            a.datecreated as 'a.datecreated',
401.
            a.person_1_id as 'a.person_1_id',
402.
            a.person_2_id as 'a.person_2_id',
403.
            a.person_3_id as 'a.person_3_id',
404.
            a.eventtype_id as 'a.eventtype_id',
405.
            a.place_id as 'a.place_id',
406.
 
407.
             b1.id as 'b1.id',
408.
             b1.displayname as 'b1.displayname',
409.
             b1.description as 'b1.description',
410.
             b1.firstname as 'b1.firstname',
411.
             b1.lastname as 'b1.lastname',
412.
             b1.private as 'b1.private',
413.
             b1.icon as 'b1.icon',
414.
             b1.sex as 'b1.sex',
415.
             b1.notesearch as 'b1.notesearch',
416.
             b1.firstnameprefix as 'b1.firstnameprefix',
417.
             b1.displaynameprefix as 'b1.displaynameprefix',
418.
             b1.lastnamesuffix as 'b1.lastnamesuffix',
419.
             b1.surname as 'b1.surname',
420.
             b1.datecreated as 'b1.datecreated',
421.
             c2.id as 'c2.id',
422.
             c2.displayname as 'c2.displayname',
423.
             c2.description as 'c2.description',
424.
             c2.firstname as 'c2.firstname',
425.
             c2.lastname as 'c2.lastname',
426.
             c2.private as 'c2.private',
427.
             c2.icon as 'c2.icon',
428.
             c2.sex as 'c2.sex',
429.
             c2.notesearch as 'c2.notesearch',
430.
             c2.firstnameprefix as 'c2.firstnameprefix',
431.
             c2.displaynameprefix as 'c2.displaynameprefix',
432.
             c2.lastnamesuffix as 'c2.lastnamesuffix',
433.
             c2.surname as 'c2.surname',
434.
             c2.datecreated as 'c2.datecreated',
435.
             d3.id as 'd3.id',
436.
             d3.displayname as 'd3.displayname',
437.
             d3.description as 'd3.description',
438.
             d3.firstname as 'd3.firstname',
439.
             d3.lastname as 'd3.lastname',
440.
             d3.private as 'd3.private',
441.
             d3.icon as 'd3.icon',
442.
             d3.sex as 'd3.sex',
443.
             d3.notesearch as 'd3.notesearch',
444.
             d3.firstnameprefix as 'd3.firstnameprefix',
445.
             d3.displaynameprefix as 'd3.displaynameprefix',
446.
             d3.lastnamesuffix as 'd3.lastnamesuffix',
447.
             d3.surname as 'd3.surname',
448.
             d3.datecreated as 'd3.datecreated',
449.
             e4.id as 'e4.id',
450.
             e4.name as 'e4.name',
451.
             e4.code as 'e4.code',
452.
             e4.category as 'e4.category',
453.
             e4.description as 'e4.description',
454.
             f5.id as 'f5.id',
455.
             f5.name as 'f5.name',
456.
             f5.description as 'f5.description',
457.
             f5.private as 'f5.private',
458.
             f5.icon as 'f5.icon',
459.
             f5.adress1 as 'f5.adress1',
460.
             f5.adress2 as 'f5.adress2',
461.
             f5.zipcode as 'f5.zipcode',
462.
             f5.city as 'f5.city',
463.
             f5.cityinsee as 'f5.cityinsee',
464.
             f5.country as 'f5.country',
465.
             f5.url as 'f5.url',
466.
             f5.gpslat as 'f5.gpslat',
467.
             f5.gpslon as 'f5.gpslon',
468.
             f5.datecreated as 'f5.datecreated'
469.
 
470.
        from event a 
471.
             left outer join place f5 on f5.id =  a.place_id 
472.
             left outer join eventtype e4 on e4.id =  a.eventtype_id 
473.
             left outer join person d3 on d3.id =  a.person_3_id 
474.
             left outer join person c2 on c2.id =  a.person_2_id 
475.
             left outer join person b1 on b1.id =  a.person_1_id 
476.
 
477.
        ;    
478.
                ";
479.
 
480.
        try {        
481.
 
482.
            $stmt $this->db->prepare($sqlSt);        
483.
            $stmt->execute(); 
484.
            $results $stmt->fetchAll(PDO::FETCH_ASSOC);           
485.
            return $results;
486.
 
487.
        } catch (Exception $e) {
488.
            $this->lasterror $e->getMessage();
489.
            $this->count 0;
490.
            return false;
491.
        }
492.
    }
493.
 
494.
    /*
495.
        Update event 
496.
        
497.
        parameters : $id (reccord id) and fields list values.
498.
        return : True if no error.
499.
    */
500.
    function update$id$name,$description,$private,$date_begin,$date_begin_accurate,$notesearch,$datecreated,$person_1_id,$person_2_id,$person_3_id,$eventtype_id,$place_id ) {
501.
 
502.
        $this->lasterror="";        
503.
 
504.
        if ($name == ''$name null;
505.
        if ($description == ''$description null;
506.
        if ($private == ''$private null;
507.
        if ($date_begin == ''$date_begin null;
508.
        if ($date_begin_accurate == ''$date_begin_accurate null;
509.
        if ($notesearch == ''$notesearch null;
510.
        if ($datecreated == ''$datecreated null;
511.
        if ($person_1_id == ''$person_1_id null;
512.
        if ($person_2_id == ''$person_2_id null;
513.
        if ($person_3_id == ''$person_3_id null;
514.
        if ($eventtype_id == ''$eventtype_id null;
515.
        if ($place_id == ''$place_id null;
516.
        
517.
 
518.
        if ($this->checkValue( array( 
519.
        $name => '',
520.
        $description => '',
521.
        $private => '',
522.
        $date_begin => '',
523.
        $date_begin_accurate => '',
524.
        $notesearch => '',
525.
        $datecreated => '',
526.
        $person_1_id => '',
527.
        $person_2_id => '',
528.
        $person_3_id => '',
529.
        $eventtype_id => '',
530.
        $place_id => ''
531.
 
532.
) ) == false )
533.
        {
534.
            $this->lasterror="Check fields false";        
535.
            return false;
536.
        }
537.
 
538.
        $sqlSt="
539.
        update event set
540.
            name = :name,
541.
            description = :description,
542.
            private = :private,
543.
            date_begin = :date_begin,
544.
            date_begin_accurate = :date_begin_accurate,
545.
            notesearch = :notesearch,
546.
            datecreated = :datecreated,
547.
            person_1_id = :person_1_id,
548.
            person_2_id = :person_2_id,
549.
            person_3_id = :person_3_id,
550.
            eventtype_id = :eventtype_id,
551.
            place_id = :place_id
552.
 
553.
        where id = :id; 
554.
            ";
555.
 
556.
        try {        
557.
            
558.
            $stmt $this->db->prepare($sqlSt);
559.
            
560.
            $stmt->bindParam(':id'$idPDO::PARAM_INT);
561.
 
562.
            $stmt->bindParam(':name'$namePDO::PARAM_STR); 
563.
            $stmt->bindParam(':description'$descriptionPDO::PARAM_STR); 
564.
            $stmt->bindParam(':private'$privatePDO::PARAM_INT); 
565.
            $stmt->bindParam(':date_begin'$date_beginPDO::PARAM_STR); 
566.
            $stmt->bindParam(':date_begin_accurate'$date_begin_accuratePDO::PARAM_STR); 
567.
            $stmt->bindParam(':notesearch'$notesearchPDO::PARAM_STR); 
568.
            $stmt->bindParam(':datecreated'$datecreatedPDO::PARAM_STR); 
569.
            $stmt->bindParam(':person_1_id'$person_1_idPDO::PARAM_INT); 
570.
            $stmt->bindParam(':person_2_id'$person_2_idPDO::PARAM_INT); 
571.
            $stmt->bindParam(':person_3_id'$person_3_idPDO::PARAM_INT); 
572.
            $stmt->bindParam(':eventtype_id'$eventtype_idPDO::PARAM_INT); 
573.
            $stmt->bindParam(':place_id'$place_idPDO::PARAM_INT); 
574.
 
575.
            $stmt->execute();             
576.
            
577.
            if ($stmt->rowCount() == 0) {
578.
                $this->lasterror 'Erreur Sql update '.'  (<b>Id</b> = '.$id.'). <b>Sqlst</b> = ['.$sqlSt.'] values : '."<b>name</b> = [$name],<b>description</b> = [$description],<b>private</b> = [$private],<b>date_begin</b> = [$date_begin],<b>date_begin_accurate</b> = [$date_begin_accurate],<b>notesearch</b> = [$notesearch],<b>datecreated</b> = [$datecreated],<b>person_1_id</b> = [$person_1_id],<b>person_2_id</b> = [$person_2_id],<b>person_3_id</b> = [$person_3_id],<b>eventtype_id</b> = [$eventtype_id],<b>place_id</b> = [$place_id]";
579.
                
580.
                return false;
581.
            }   
582.
                     
583.
            return true;
584.
 
585.
        } catch (Exception $e) {            
586.
            $this->lasterror $e->getMessage().' (<b>Id</b> = '.$id.'). <b>Sqlst</b> = ['.$sqlSt.'] values : '."<b>name</b> = [$name],<b>description</b> = [$description],<b>private</b> = [$private],<b>date_begin</b> = [$date_begin],<b>date_begin_accurate</b> = [$date_begin_accurate],<b>notesearch</b> = [$notesearch],<b>datecreated</b> = [$datecreated],<b>person_1_id</b> = [$person_1_id],<b>person_2_id</b> = [$person_2_id],<b>person_3_id</b> = [$person_3_id],<b>eventtype_id</b> = [$eventtype_id],<b>place_id</b> = [$place_id]";  
587.
            return false;
588.
        }
589.
 
590.
    }
591.
 
592.
    /*
593.
        Insert new reccord into event.
594.
        
595.
        Parameters : fields values list.
596.
        return : True if no error.
597.
    */
598.
    function insert$name,$description,$private,$date_begin,$date_begin_accurate,$notesearch,$datecreated,$person_1_id,$person_2_id,$person_3_id,$eventtype_id,$place_id ) {
599.
 
600.
        $this->lasterror="";
601.
        $this->lastInsertId = -1;
602.
 
603.
        if ($name == ''$name null;
604.
        if ($description == ''$description null;
605.
        if ($private == ''$private null;
606.
        if ($date_begin == ''$date_begin null;
607.
        if ($date_begin_accurate == ''$date_begin_accurate null;
608.
        if ($notesearch == ''$notesearch null;
609.
        if ($datecreated == ''$datecreated null;
610.
        if ($person_1_id == ''$person_1_id null;
611.
        if ($person_2_id == ''$person_2_id null;
612.
        if ($person_3_id == ''$person_3_id null;
613.
        if ($eventtype_id == ''$eventtype_id null;
614.
        if ($place_id == ''$place_id null;
615.
        
616.
        
617.
        if ($this->checkValue( array( 
618.
        $name => '',
619.
        $description => '',
620.
        $private => '',
621.
        $date_begin => '',
622.
        $date_begin_accurate => '',
623.
        $notesearch => '',
624.
        $datecreated => '',
625.
        $person_1_id => '',
626.
        $person_2_id => '',
627.
        $person_3_id => '',
628.
        $eventtype_id => '',
629.
        $place_id => ''
630.
 
631.
) ) == false )
632.
        {
633.
            $this->lasterror="Check fields error";        
634.
            return false;
635.
        }
636.
 
637.
        $sqlSt="
638.
        insert into event (
639.
        name,
640.
        description,
641.
        private,
642.
        date_begin,
643.
        date_begin_accurate,
644.
        notesearch,
645.
        datecreated,
646.
        person_1_id,
647.
        person_2_id,
648.
        person_3_id,
649.
        eventtype_id,
650.
        place_id
651.
 
652.
            )
653.
        values (
654.
        :name, 
655.
        :description, 
656.
        :private, 
657.
        :date_begin, 
658.
        :date_begin_accurate, 
659.
        :notesearch, 
660.
        :datecreated, 
661.
        :person_1_id, 
662.
        :person_2_id, 
663.
        :person_3_id, 
664.
        :eventtype_id, 
665.
        :place_id 
666.
 
667.
            );    
668.
            ";
669.
 
670.
        try {        
671.
 
672.
            $stmt $this->db->prepare($sqlSt);               
673.
            
674.
            $stmt->bindParam(':name'$namePDO::PARAM_STR); 
675.
            $stmt->bindParam(':description'$descriptionPDO::PARAM_STR); 
676.
            $stmt->bindParam(':private'$privatePDO::PARAM_INT); 
677.
            $stmt->bindParam(':date_begin'$date_beginPDO::PARAM_STR); 
678.
            $stmt->bindParam(':date_begin_accurate'$date_begin_accuratePDO::PARAM_STR); 
679.
            $stmt->bindParam(':notesearch'$notesearchPDO::PARAM_STR); 
680.
            $stmt->bindParam(':datecreated'$datecreatedPDO::PARAM_STR); 
681.
            $stmt->bindParam(':person_1_id'$person_1_idPDO::PARAM_INT); 
682.
            $stmt->bindParam(':person_2_id'$person_2_idPDO::PARAM_INT); 
683.
            $stmt->bindParam(':person_3_id'$person_3_idPDO::PARAM_INT); 
684.
            $stmt->bindParam(':eventtype_id'$eventtype_idPDO::PARAM_INT); 
685.
            $stmt->bindParam(':place_id'$place_idPDO::PARAM_INT); 
686.
 
687.
 
688.
            $stmt->execute();     
689.
            $this->lastInsertId $this->db->lastInsertId(); 
690.
            
691.
            if ($stmt->rowCount() == 0) {
692.
                $this->lasterror 'Erreur Sql insert'.'  (<b>Id</b> = '.$id.'). <b>Sqlst</b> = ['.$sqlSt.'] values : '."<b>name</b> = [$name],<b>description</b> = [$description],<b>private</b> = [$private],<b>date_begin</b> = [$date_begin],<b>date_begin_accurate</b> = [$date_begin_accurate],<b>notesearch</b> = [$notesearch],<b>datecreated</b> = [$datecreated],<b>person_1_id</b> = [$person_1_id],<b>person_2_id</b> = [$person_2_id],<b>person_3_id</b> = [$person_3_id],<b>eventtype_id</b> = [$eventtype_id],<b>place_id</b> = [$place_id]";
693.
                return false;
694.
            }              
695.
                   
696.
            return true;
697.
 
698.
        } catch (Exception $e) {
699.
             $this->lasterror $e->getMessage().'  (<b>Id</b> = '.$id.'). <b>Sqlst</b> = ['.$sqlSt.'] values : '."<b>name</b> = [$name],<b>description</b> = [$description],<b>private</b> = [$private],<b>date_begin</b> = [$date_begin],<b>date_begin_accurate</b> = [$date_begin_accurate],<b>notesearch</b> = [$notesearch],<b>datecreated</b> = [$datecreated],<b>person_1_id</b> = [$person_1_id],<b>person_2_id</b> = [$person_2_id],<b>person_3_id</b> = [$person_3_id],<b>eventtype_id</b> = [$eventtype_id],<b>place_id</b> = [$place_id]";
700.
            return false;
701.
        }
702.
    }
703.
 
704.
    /*
705.
        Delete one reccord from event.
706.
        
707.
        parameters : $id (reccord id).
708.
        return : True if no error.
709.
    */
710.
    function delete($id) {
711.
 
712.
        $this->lasterror="";
713.
 
714.
        $sqlSt="
715.
        delete from event             
716.
        where id = :id; 
717.
            ";   
718.
     
719.
        try {        
720.
 
721.
            $stmt $this->db->prepare($sqlSt);  
722.
            $stmt->bindParam(':id'$idPDO::PARAM_INT);
723.
            $stmt->execute();        
724.
            
725.
            if ($stmt->rowCount() == 0) {
726.
                $this->lasterror "Erreur Sql delete ".' (<b>Id</b> ='.$id.')';       
727.
                return false;
728.
            }              
729.
 
730.
        } catch (Exception $e) {
731.
            $this->lasterror $e->getMessage().' (<b>Id</b>='.$id.')';
732.
            return false;
733.
        }
734.
        return true;
735.
    }
736.
 
737.
    /*
738.
        Get id min, id max, record count from event  
739.
        
740.
        parameters : None
741.
        return : count value or False in case of error
742.
    */
743.
    function getCount() {
744.
        
745.
        $this->lasterror="";
746.
 
747.
        $sqlSt="
748.
        select min(id) as minid, max(id) as maxid, count(*) as count 
749.
        from event 
750.
                ";
751.
 
752.
        try {        
753.
 
754.
            $stmt $this->db->prepare($sqlSt);        
755.
            $stmt->execute(); 
756.
            $results $stmt->fetchAll(PDO::FETCH_ASSOC); 
757.
            return $results[0];          
758.
 
759.
        } catch (Exception $e) {
760.
            $this->lasterror $e->getMessage();
761.
            return array( 'minid' => -1'maxid' => -1'count' => -1);
762.
        }
763.
                
764.
        //return $this->count;
765.
        return $results[0];
766.
    }
767.
 
768.
 
769.
 
770.
 
771.
    public $colmeta = [
772.
    'a.id' => array (
773.
        'metades' => "",
774.
        'sortformat' => "{{sortformat}}",
775.
        'listlen' => 4,
776.
        'listlib' => 'a_id',
777.
        'listlink' => 'on',
778.
        'selectlen' => 4,
779.
        'selectlib' => 'a_id',
780.
        'selectlink' => '',
781.
        'selectdisplay' => '',
782.
        'selectdisplaywidth' => '0'
783.
        'selectdisplayheight' => '0'
784.
        'listdisplay' => ''
785.
        'listdisplaywidth' => '0'
786.
        'listdisplayheight' => '0' 
787.
 
788.
        ),
789.
    'a.name' => array ( 
790.
        'metades' => "",
791.
        'sortformat' => ""
792.
        'listlen' => 24,
793.
        'listlib' => 'a_name' 
794.
        'listlink' => '',
795.
        'selectlen' => 12,
796.
        'selectlib' => 'a_name' 
797.
        'selectlink' => '',
798.
        'selectdisplay' => 'text',
799.
        'selectdisplaywidth' => '0'
800.
        'selectdisplayheight' => '0'
801.
        'listdisplay' => 'text',
802.
        'listdisplaywidth' => '0'
803.
        'listdisplayheight' => '0' 
804.
),
805.
    'a.description' => array ( 
806.
        'metades' => "",
807.
        'sortformat' => ""
808.
        'listlen' => 0,
809.
        'listlib' => 'a_description' 
810.
        'listlink' => '',
811.
        'selectlen' => 0,
812.
        'selectlib' => 'a_description' 
813.
        'selectlink' => '',
814.
        'selectdisplay' => 'text',
815.
        'selectdisplaywidth' => '0'
816.
        'selectdisplayheight' => '0'
817.
        'listdisplay' => 'text',
818.
        'listdisplaywidth' => '0'
819.
        'listdisplayheight' => '0' 
820.
),
821.
    'a.private' => array ( 
822.
        'metades' => "",
823.
        'sortformat' => ""
824.
        'listlen' => 0,
825.
        'listlib' => 'a_private' 
826.
        'listlink' => '',
827.
        'selectlen' => 0,
828.
        'selectlib' => 'a_private' 
829.
        'selectlink' => '',
830.
        'selectdisplay' => 'text',
831.
        'selectdisplaywidth' => '0'
832.
        'selectdisplayheight' => '0'
833.
        'listdisplay' => 'text',
834.
        'listdisplaywidth' => '0'
835.
        'listdisplayheight' => '0' 
836.
),
837.
    'a.date_begin' => array ( 
838.
        'metades' => "",
839.
        'sortformat' => "date"
840.
        'listlen' => 9,
841.
        'listlib' => 'a_date_begin' 
842.
        'listlink' => '',
843.
        'selectlen' => 9,
844.
        'selectlib' => 'a_date_begin' 
845.
        'selectlink' => '',
846.
        'selectdisplay' => 'text',
847.
        'selectdisplaywidth' => '0'
848.
        'selectdisplayheight' => '0'
849.
        'listdisplay' => 'text',
850.
        'listdisplaywidth' => '0'
851.
        'listdisplayheight' => '0' 
852.
),
853.
    'a.date_begin_accurate' => array ( 
854.
        'metades' => "",
855.
        'sortformat' => ""
856.
        'listlen' => 0,
857.
        'listlib' => 'a_date_begin_accurate' 
858.
        'listlink' => '',
859.
        'selectlen' => 0,
860.
        'selectlib' => 'a_date_begin_accurate' 
861.
        'selectlink' => '',
862.
        'selectdisplay' => 'text',
863.
        'selectdisplaywidth' => '0'
864.
        'selectdisplayheight' => '0'
865.
        'listdisplay' => 'text',
866.
        'listdisplaywidth' => '0'
867.
        'listdisplayheight' => '0' 
868.
),
869.
    'a.notesearch' => array ( 
870.
        'metades' => "",
871.
        'sortformat' => ""
872.
        'listlen' => 0,
873.
        'listlib' => 'a_notesearch' 
874.
        'listlink' => '',
875.
        'selectlen' => 0,
876.
        'selectlib' => 'a_notesearch' 
877.
        'selectlink' => '',
878.
        'selectdisplay' => 'text',
879.
        'selectdisplaywidth' => '0'
880.
        'selectdisplayheight' => '0'
881.
        'listdisplay' => 'text',
882.
        'listdisplaywidth' => '0'
883.
        'listdisplayheight' => '0' 
884.
),
885.
    'a.datecreated' => array ( 
886.
        'metades' => "",
887.
        'sortformat' => "date"
888.
        'listlen' => 4,
889.
        'listlib' => 'a_datecreated' 
890.
        'listlink' => '',
891.
        'selectlen' => 4,
892.
        'selectlib' => 'a_datecreated' 
893.
        'selectlink' => '',
894.
        'selectdisplay' => 'text',
895.
        'selectdisplaywidth' => '0'
896.
        'selectdisplayheight' => '0'
897.
        'listdisplay' => 'text',
898.
        'listdisplaywidth' => '0'
899.
        'listdisplayheight' => '0' 
900.
),
901.
    'a.person_1_id' => array ( 
902.
        'metades' => "",
903.
        'sortformat' => ""
904.
        'listlen' => 4,
905.
        'listlib' => 'a_person_1_id' 
906.
        'listlink' => '',
907.
        'selectlen' => 4,
908.
        'selectlib' => 'a_person_1_id' 
909.
        'selectlink' => '',
910.
        'selectdisplay' => 'text',
911.
        'selectdisplaywidth' => '0'
912.
        'selectdisplayheight' => '0'
913.
        'listdisplay' => 'text',
914.
        'listdisplaywidth' => '0'
915.
        'listdisplayheight' => '0' 
916.
),
917.
    'a.person_2_id' => array ( 
918.
        'metades' => "",
919.
        'sortformat' => ""
920.
        'listlen' => 4,
921.
        'listlib' => 'a_person_2_id' 
922.
        'listlink' => '',
923.
        'selectlen' => 4,
924.
        'selectlib' => 'a_person_2_id' 
925.
        'selectlink' => '',
926.
        'selectdisplay' => 'text',
927.
        'selectdisplaywidth' => '0'
928.
        'selectdisplayheight' => '0'
929.
        'listdisplay' => 'text',
930.
        'listdisplaywidth' => '0'
931.
        'listdisplayheight' => '0' 
932.
),
933.
    'a.person_3_id' => array ( 
934.
        'metades' => "",
935.
        'sortformat' => ""
936.
        'listlen' => 4,
937.
        'listlib' => 'a_person_3_id' 
938.
        'listlink' => '',
939.
        'selectlen' => 4,
940.
        'selectlib' => 'a_person_3_id' 
941.
        'selectlink' => '',
942.
        'selectdisplay' => 'text',
943.
        'selectdisplaywidth' => '0'
944.
        'selectdisplayheight' => '0'
945.
        'listdisplay' => 'text',
946.
        'listdisplaywidth' => '0'
947.
        'listdisplayheight' => '0' 
948.
),
949.
    'a.eventtype_id' => array ( 
950.
        'metades' => "",
951.
        'sortformat' => ""
952.
        'listlen' => 4,
953.
        'listlib' => 'a_eventtype_id' 
954.
        'listlink' => '',
955.
        'selectlen' => 4,
956.
        'selectlib' => 'a_eventtype_id' 
957.
        'selectlink' => '',
958.
        'selectdisplay' => 'text',
959.
        'selectdisplaywidth' => '0'
960.
        'selectdisplayheight' => '0'
961.
        'listdisplay' => 'text',
962.
        'listdisplaywidth' => '0'
963.
        'listdisplayheight' => '0' 
964.
),
965.
    'a.place_id' => array ( 
966.
        'metades' => "",
967.
        'sortformat' => ""
968.
        'listlen' => 4,
969.
        'listlib' => 'a_place_id' 
970.
        'listlink' => '',
971.
        'selectlen' => 4,
972.
        'selectlib' => 'a_place_id' 
973.
        'selectlink' => '',
974.
        'selectdisplay' => 'text',
975.
        'selectdisplaywidth' => '0'
976.
        'selectdisplayheight' => '0'
977.
        'listdisplay' => 'text',
978.
        'listdisplaywidth' => '0'
979.
        'listdisplayheight' => '0' 
980.
),
981.
 
982.
     'b1.id' => array (  // Person
983.
        'metades' => "",
984.
        'sortformat' => "",
985.
        'listlen' => 0,
986.
        'listlib' => 'id'
987.
        'listlink' => '' ,
988.
        'selectlen' => 0,
989.
        'selectlib' => 'id'
990.
        'selectlink' => '{{fkselectlink}}',
991.
        'selectdisplay' => 'text',
992.
        'selectdisplaywidth' => '0'
993.
        'selectdisplayheight' => '0'
994.
        'listdisplay' => 'text',
995.
        'listdisplaywidth' => '0'
996.
        'listdisplayheight' => '0' 
997.
), 
998.
     'b1.displayname' => array (  // Person
999.
        'metades' => "",
1000.
        'sortformat' => "",
1001.
        'listlen' => 0,
1002.
        'listlib' => 'displayname'
1003.
        'listlink' => '' ,
1004.
        'selectlen' => 0,
1005.
        'selectlib' => 'displayname'
1006.
        'selectlink' => '{{fkselectlink}}',
1007.
        'selectdisplay' => 'text',
1008.
        'selectdisplaywidth' => '0'
1009.
        'selectdisplayheight' => '0'
1010.
        'listdisplay' => 'text',
1011.
        'listdisplaywidth' => '0'
1012.
        'listdisplayheight' => '0' 
1013.
), 
1014.
     'b1.description' => array (  // Person
1015.
        'metades' => "",
1016.
        'sortformat' => "",
1017.
        'listlen' => 0,
1018.
        'listlib' => 'description'
1019.
        'listlink' => '' ,
1020.
        'selectlen' => 0,
1021.
        'selectlib' => 'description'
1022.
        'selectlink' => '{{fkselectlink}}',
1023.
        'selectdisplay' => 'text',
1024.
        'selectdisplaywidth' => '0'
1025.
        'selectdisplayheight' => '0'
1026.
        'listdisplay' => 'text',
1027.
        'listdisplaywidth' => '0'
1028.
        'listdisplayheight' => '0' 
1029.
), 
1030.
     'b1.firstname' => array (  // Person
1031.
        'metades' => "",
1032.
        'sortformat' => "",
1033.
        'listlen' => 0,
1034.
        'listlib' => 'firstname'
1035.
        'listlink' => '' ,
1036.
        'selectlen' => 0,
1037.
        'selectlib' => 'firstname'
1038.
        'selectlink' => '{{fkselectlink}}',
1039.
        'selectdisplay' => 'text',
1040.
        'selectdisplaywidth' => '0'
1041.
        'selectdisplayheight' => '0'
1042.
        'listdisplay' => 'text',
1043.
        'listdisplaywidth' => '0'
1044.
        'listdisplayheight' => '0' 
1045.
), 
1046.
     'b1.lastname' => array (  // Person
1047.
        'metades' => "",
1048.
        'sortformat' => "",
1049.
        'listlen' => 0,
1050.
        'listlib' => 'lastname'
1051.
        'listlink' => '' ,
1052.
        'selectlen' => 0,
1053.
        'selectlib' => 'lastname'
1054.
        'selectlink' => '{{fkselectlink}}',
1055.
        'selectdisplay' => 'text',
1056.
        'selectdisplaywidth' => '0'
1057.
        'selectdisplayheight' => '0'
1058.
        'listdisplay' => 'text',
1059.
        'listdisplaywidth' => '0'
1060.
        'listdisplayheight' => '0' 
1061.
), 
1062.
     'b1.private' => array (  // Person
1063.
        'metades' => "",
1064.
        'sortformat' => "",
1065.
        'listlen' => 0,
1066.
        'listlib' => 'private'
1067.
        'listlink' => '' ,
1068.
        'selectlen' => 0,
1069.
        'selectlib' => 'private'
1070.
        'selectlink' => '{{fkselectlink}}',
1071.
        'selectdisplay' => 'text',
1072.
        'selectdisplaywidth' => '0'
1073.
        'selectdisplayheight' => '0'
1074.
        'listdisplay' => 'text',
1075.
        'listdisplaywidth' => '0'
1076.
        'listdisplayheight' => '0' 
1077.
), 
1078.
     'b1.icon' => array (  // Person
1079.
        'metades' => "",
1080.
        'sortformat' => "",
1081.
        'listlen' => 8,
1082.
        'listlib' => 'icon'
1083.
        'listlink' => '' ,
1084.
        'selectlen' => 8,
1085.
        'selectlib' => 'icon'
1086.
        'selectlink' => '{{fkselectlink}}',
1087.
        'selectdisplay' => 'text',
1088.
        'selectdisplaywidth' => '0'
1089.
        'selectdisplayheight' => '0'
1090.
        'listdisplay' => 'text',
1091.
        'listdisplaywidth' => '0'
1092.
        'listdisplayheight' => '0' 
1093.
), 
1094.
     'b1.sex' => array (  // Person
1095.
        'metades' => "",
1096.
        'sortformat' => "",
1097.
        'listlen' => 0,
1098.
        'listlib' => 'sex'
1099.
        'listlink' => '' ,
1100.
        'selectlen' => 0,
1101.
        'selectlib' => 'sex'
1102.
        'selectlink' => '{{fkselectlink}}',
1103.
        'selectdisplay' => 'text',
1104.
        'selectdisplaywidth' => '0'
1105.
        'selectdisplayheight' => '0'
1106.
        'listdisplay' => 'text',
1107.
        'listdisplaywidth' => '0'
1108.
        'listdisplayheight' => '0' 
1109.
), 
1110.
     'b1.notesearch' => array (  // Person
1111.
        'metades' => "",
1112.
        'sortformat' => "",
1113.
        'listlen' => 0,
1114.
        'listlib' => 'notesearch'
1115.
        'listlink' => '' ,
1116.
        'selectlen' => 0,
1117.
        'selectlib' => 'notesearch'
1118.
        'selectlink' => '{{fkselectlink}}',
1119.
        'selectdisplay' => 'text',
1120.
        'selectdisplaywidth' => '0'
1121.
        'selectdisplayheight' => '0'
1122.
        'listdisplay' => 'text',
1123.
        'listdisplaywidth' => '0'
1124.
        'listdisplayheight' => '0' 
1125.
), 
1126.
     'b1.firstnameprefix' => array (  // Person
1127.
        'metades' => "",
1128.
        'sortformat' => "",
1129.
        'listlen' => 0,
1130.
        'listlib' => 'firstnameprefix'
1131.
        'listlink' => '' ,
1132.
        'selectlen' => 0,
1133.
        'selectlib' => 'firstnameprefix'
1134.
        'selectlink' => '{{fkselectlink}}',
1135.
        'selectdisplay' => 'text',
1136.
        'selectdisplaywidth' => '0'
1137.
        'selectdisplayheight' => '0'
1138.
        'listdisplay' => 'text',
1139.
        'listdisplaywidth' => '0'
1140.
        'listdisplayheight' => '0' 
1141.
), 
1142.
     'b1.displaynameprefix' => array (  // Person
1143.
        'metades' => "",
1144.
        'sortformat' => "",
1145.
        'listlen' => 0,
1146.
        'listlib' => 'displaynameprefix'
1147.
        'listlink' => '' ,
1148.
        'selectlen' => 0,
1149.
        'selectlib' => 'displaynameprefix'
1150.
        'selectlink' => '{{fkselectlink}}',
1151.
        'selectdisplay' => 'text',
1152.
        'selectdisplaywidth' => '0'
1153.
        'selectdisplayheight' => '0'
1154.
        'listdisplay' => 'text',
1155.
        'listdisplaywidth' => '0'
1156.
        'listdisplayheight' => '0' 
1157.
), 
1158.
     'b1.lastnamesuffix' => array (  // Person
1159.
        'metades' => "",
1160.
        'sortformat' => "",
1161.
        'listlen' => 0,
1162.
        'listlib' => 'lastnamesuffix'
1163.
        'listlink' => '' ,
1164.
        'selectlen' => 0,
1165.
        'selectlib' => 'lastnamesuffix'
1166.
        'selectlink' => '{{fkselectlink}}',
1167.
        'selectdisplay' => 'text',
1168.
        'selectdisplaywidth' => '0'
1169.
        'selectdisplayheight' => '0'
1170.
        'listdisplay' => 'text',
1171.
        'listdisplaywidth' => '0'
1172.
        'listdisplayheight' => '0' 
1173.
), 
1174.
     'b1.surname' => array (  // Person
1175.
        'metades' => "",
1176.
        'sortformat' => "",
1177.
        'listlen' => 0,
1178.
        'listlib' => 'surname'
1179.
        'listlink' => '' ,
1180.
        'selectlen' => 0,
1181.
        'selectlib' => 'surname'
1182.
        'selectlink' => '{{fkselectlink}}',
1183.
        'selectdisplay' => 'text',
1184.
        'selectdisplaywidth' => '0'
1185.
        'selectdisplayheight' => '0'
1186.
        'listdisplay' => 'text',
1187.
        'listdisplaywidth' => '0'
1188.
        'listdisplayheight' => '0' 
1189.
), 
1190.
     'b1.datecreated' => array (  // Person
1191.
        'metades' => "",
1192.
        'sortformat' => "date",
1193.
        'listlen' => 0,
1194.
        'listlib' => 'datecreated'
1195.
        'listlink' => '' ,
1196.
        'selectlen' => 0,
1197.
        'selectlib' => 'datecreated'
1198.
        'selectlink' => '{{fkselectlink}}',
1199.
        'selectdisplay' => 'text',
1200.
        'selectdisplaywidth' => '0'
1201.
        'selectdisplayheight' => '0'
1202.
        'listdisplay' => 'text',
1203.
        'listdisplaywidth' => '0'
1204.
        'listdisplayheight' => '0' 
1205.
), 
1206.
     'c2.id' => array (  // Person
1207.
        'metades' => "",
1208.
        'sortformat' => "",
1209.
        'listlen' => 0,
1210.
        'listlib' => 'id'
1211.
        'listlink' => '' ,
1212.
        'selectlen' => 0,
1213.
        'selectlib' => 'id'
1214.
        'selectlink' => '{{fkselectlink}}',
1215.
        'selectdisplay' => 'text',
1216.
        'selectdisplaywidth' => '0'
1217.
        'selectdisplayheight' => '0'
1218.
        'listdisplay' => 'text',
1219.
        'listdisplaywidth' => '0'
1220.
        'listdisplayheight' => '0' 
1221.
), 
1222.
     'c2.displayname' => array (  // Person
1223.
        'metades' => "",
1224.
        'sortformat' => "",
1225.
        'listlen' => 0,
1226.
        'listlib' => 'displayname'
1227.
        'listlink' => '' ,
1228.
        'selectlen' => 0,
1229.
        'selectlib' => 'displayname'
1230.
        'selectlink' => '{{fkselectlink}}',
1231.
        'selectdisplay' => 'text',
1232.
        'selectdisplaywidth' => '0'
1233.
        'selectdisplayheight' => '0'
1234.
        'listdisplay' => 'text',
1235.
        'listdisplaywidth' => '0'
1236.
        'listdisplayheight' => '0' 
1237.
), 
1238.
     'c2.description' => array (  // Person
1239.
        'metades' => "",
1240.
        'sortformat' => "",
1241.
        'listlen' => 8,
1242.
        'listlib' => 'description'
1243.
        'listlink' => '' ,
1244.
        'selectlen' => 0,
1245.
        'selectlib' => 'description'
1246.
        'selectlink' => '{{fkselectlink}}',
1247.
        'selectdisplay' => 'text',
1248.
        'selectdisplaywidth' => '0'
1249.
        'selectdisplayheight' => '0'
1250.
        'listdisplay' => 'text',
1251.
        'listdisplaywidth' => '0'
1252.
        'listdisplayheight' => '0' 
1253.
), 
1254.
     'c2.firstname' => array (  // Person
1255.
        'metades' => "",
1256.
        'sortformat' => "",
1257.
        'listlen' => 0,
1258.
        'listlib' => 'firstname'
1259.
        'listlink' => '' ,
1260.
        'selectlen' => 0,
1261.
        'selectlib' => 'firstname'
1262.
        'selectlink' => '{{fkselectlink}}',
1263.
        'selectdisplay' => 'text',
1264.
        'selectdisplaywidth' => '0'
1265.
        'selectdisplayheight' => '0'
1266.
        'listdisplay' => 'text',
1267.
        'listdisplaywidth' => '0'
1268.
        'listdisplayheight' => '0' 
1269.
), 
1270.
     'c2.lastname' => array (  // Person
1271.
        'metades' => "",
1272.
        'sortformat' => "",
1273.
        'listlen' => 0,
1274.
        'listlib' => 'lastname'
1275.
        'listlink' => '' ,
1276.
        'selectlen' => 0,
1277.
        'selectlib' => 'lastname'
1278.
        'selectlink' => '{{fkselectlink}}',
1279.
        'selectdisplay' => 'text',
1280.
        'selectdisplaywidth' => '0'
1281.
        'selectdisplayheight' => '0'
1282.
        'listdisplay' => 'text',
1283.
        'listdisplaywidth' => '0'
1284.
        'listdisplayheight' => '0' 
1285.
), 
1286.
     'c2.private' => array (  // Person
1287.
        'metades' => "",
1288.
        'sortformat' => "",
1289.
        'listlen' => 0,
1290.
        'listlib' => 'private'
1291.
        'listlink' => '' ,
1292.
        'selectlen' => 0,
1293.
        'selectlib' => 'private'
1294.
        'selectlink' => '{{fkselectlink}}',
1295.
        'selectdisplay' => 'text',
1296.
        'selectdisplaywidth' => '0'
1297.
        'selectdisplayheight' => '0'
1298.
        'listdisplay' => 'text',
1299.
        'listdisplaywidth' => '0'
1300.
        'listdisplayheight' => '0' 
1301.
), 
1302.
     'c2.icon' => array (  // Person
1303.
        'metades' => "",
1304.
        'sortformat' => "",
1305.
        'listlen' => 0,
1306.
        'listlib' => 'icon'
1307.
        'listlink' => '' ,
1308.
        'selectlen' => 0,
1309.
        'selectlib' => 'icon'
1310.
        'selectlink' => '{{fkselectlink}}',
1311.
        'selectdisplay' => 'text',
1312.
        'selectdisplaywidth' => '0'
1313.
        'selectdisplayheight' => '0'
1314.
        'listdisplay' => 'text',
1315.
        'listdisplaywidth' => '0'
1316.
        'listdisplayheight' => '0' 
1317.
), 
1318.
     'c2.sex' => array (  // Person
1319.
        'metades' => "",
1320.
        'sortformat' => "",
1321.
        'listlen' => 0,
1322.
        'listlib' => 'sex'
1323.
        'listlink' => '' ,
1324.
        'selectlen' => 0,
1325.
        'selectlib' => 'sex'
1326.
        'selectlink' => '{{fkselectlink}}',
1327.
        'selectdisplay' => 'text',
1328.
        'selectdisplaywidth' => '0'
1329.
        'selectdisplayheight' => '0'
1330.
        'listdisplay' => 'text',
1331.
        'listdisplaywidth' => '0'
1332.
        'listdisplayheight' => '0' 
1333.
), 
1334.
     'c2.notesearch' => array (  // Person
1335.
        'metades' => "",
1336.
        'sortformat' => "",
1337.
        'listlen' => 0,
1338.
        'listlib' => 'notesearch'
1339.
        'listlink' => '' ,
1340.
        'selectlen' => 0,
1341.
        'selectlib' => 'notesearch'
1342.
        'selectlink' => '{{fkselectlink}}',
1343.
        'selectdisplay' => 'text',
1344.
        'selectdisplaywidth' => '0'
1345.
        'selectdisplayheight' => '0'
1346.
        'listdisplay' => 'text',
1347.
        'listdisplaywidth' => '0'
1348.
        'listdisplayheight' => '0' 
1349.
), 
1350.
     'c2.firstnameprefix' => array (  // Person
1351.
        'metades' => "",
1352.
        'sortformat' => "",
1353.
        'listlen' => 0,
1354.
        'listlib' => 'firstnameprefix'
1355.
        'listlink' => '' ,
1356.
        'selectlen' => 0,
1357.
        'selectlib' => 'firstnameprefix'
1358.
        'selectlink' => '{{fkselectlink}}',
1359.
        'selectdisplay' => 'text',
1360.
        'selectdisplaywidth' => '0'
1361.
        'selectdisplayheight' => '0'
1362.
        'listdisplay' => 'text',
1363.
        'listdisplaywidth' => '0'
1364.
        'listdisplayheight' => '0' 
1365.
), 
1366.
     'c2.displaynameprefix' => array (  // Person
1367.
        'metades' => "",
1368.
        'sortformat' => "",
1369.
        'listlen' => 0,
1370.
        'listlib' => 'displaynameprefix'
1371.
        'listlink' => '' ,
1372.
        'selectlen' => 0,
1373.
        'selectlib' => 'displaynameprefix'
1374.
        'selectlink' => '{{fkselectlink}}',
1375.
        'selectdisplay' => 'text',
1376.
        'selectdisplaywidth' => '0'
1377.
        'selectdisplayheight' => '0'
1378.
        'listdisplay' => 'text',
1379.
        'listdisplaywidth' => '0'
1380.
        'listdisplayheight' => '0' 
1381.
), 
1382.
     'c2.lastnamesuffix' => array (  // Person
1383.
        'metades' => "",
1384.
        'sortformat' => "",
1385.
        'listlen' => 0,
1386.
        'listlib' => 'lastnamesuffix'
1387.
        'listlink' => '' ,
1388.
        'selectlen' => 0,
1389.
        'selectlib' => 'lastnamesuffix'
1390.
        'selectlink' => '{{fkselectlink}}',
1391.
        'selectdisplay' => 'text',
1392.
        'selectdisplaywidth' => '0'
1393.
        'selectdisplayheight' => '0'
1394.
        'listdisplay' => 'text',
1395.
        'listdisplaywidth' => '0'
1396.
        'listdisplayheight' => '0' 
1397.
), 
1398.
     'c2.surname' => array (  // Person
1399.
        'metades' => "",
1400.
        'sortformat' => "",
1401.
        'listlen' => 0,
1402.
        'listlib' => 'surname'
1403.
        'listlink' => '' ,
1404.
        'selectlen' => 0,
1405.
        'selectlib' => 'surname'
1406.
        'selectlink' => '{{fkselectlink}}',
1407.
        'selectdisplay' => 'text',
1408.
        'selectdisplaywidth' => '0'
1409.
        'selectdisplayheight' => '0'
1410.
        'listdisplay' => 'text',
1411.
        'listdisplaywidth' => '0'
1412.
        'listdisplayheight' => '0' 
1413.
), 
1414.
     'c2.datecreated' => array (  // Person
1415.
        'metades' => "",
1416.
        'sortformat' => "date",
1417.
        'listlen' => 0,
1418.
        'listlib' => 'datecreated'
1419.
        'listlink' => '' ,
1420.
        'selectlen' => 0,
1421.
        'selectlib' => 'datecreated'
1422.
        'selectlink' => '{{fkselectlink}}',
1423.
        'selectdisplay' => 'text',
1424.
        'selectdisplaywidth' => '0'
1425.
        'selectdisplayheight' => '0'
1426.
        'listdisplay' => 'text',
1427.
        'listdisplaywidth' => '0'
1428.
        'listdisplayheight' => '0' 
1429.
), 
1430.
     'd3.id' => array (  // Person
1431.
        'metades' => "",
1432.
        'sortformat' => "",
1433.
        'listlen' => 0,
1434.
        'listlib' => 'id'
1435.
        'listlink' => '' ,
1436.
        'selectlen' => 0,
1437.
        'selectlib' => 'id'
1438.
        'selectlink' => '{{fkselectlink}}',
1439.
        'selectdisplay' => 'text',
1440.
        'selectdisplaywidth' => '0'
1441.
        'selectdisplayheight' => '0'
1442.
        'listdisplay' => 'text',
1443.
        'listdisplaywidth' => '0'
1444.
        'listdisplayheight' => '0' 
1445.
), 
1446.
     'd3.displayname' => array (  // Person
1447.
        'metades' => "",
1448.
        'sortformat' => "",
1449.
        'listlen' => 0,
1450.
        'listlib' => 'displayname'
1451.
        'listlink' => '' ,
1452.
        'selectlen' => 0,
1453.
        'selectlib' => 'displayname'
1454.
        'selectlink' => '{{fkselectlink}}',
1455.
        'selectdisplay' => 'text',
1456.
        'selectdisplaywidth' => '0'
1457.
        'selectdisplayheight' => '0'
1458.
        'listdisplay' => 'text',
1459.
        'listdisplaywidth' => '0'
1460.
        'listdisplayheight' => '0' 
1461.
), 
1462.
     'd3.description' => array (  // Person
1463.
        'metades' => "",
1464.
        'sortformat' => "",
1465.
        'listlen' => 0,
1466.
        'listlib' => 'description'
1467.
        'listlink' => '' ,
1468.
        'selectlen' => 0,
1469.
        'selectlib' => 'description'
1470.
        'selectlink' => '{{fkselectlink}}',
1471.
        'selectdisplay' => 'text',
1472.
        'selectdisplaywidth' => '0'
1473.
        'selectdisplayheight' => '0'
1474.
        'listdisplay' => 'text',
1475.
        'listdisplaywidth' => '0'
1476.
        'listdisplayheight' => '0' 
1477.
), 
1478.
     'd3.firstname' => array (  // Person
1479.
        'metades' => "",
1480.
        'sortformat' => "",
1481.
        'listlen' => 0,
1482.
        'listlib' => 'firstname'
1483.
        'listlink' => '' ,
1484.
        'selectlen' => 0,
1485.
        'selectlib' => 'firstname'
1486.
        'selectlink' => '{{fkselectlink}}',
1487.
        'selectdisplay' => 'text',
1488.
        'selectdisplaywidth' => '0'
1489.
        'selectdisplayheight' => '0'
1490.
        'listdisplay' => 'text',
1491.
        'listdisplaywidth' => '0'
1492.
        'listdisplayheight' => '0' 
1493.
), 
1494.
     'd3.lastname' => array (  // Person
1495.
        'metades' => "",
1496.
        'sortformat' => "",
1497.
        'listlen' => 0,
1498.
        'listlib' => 'lastname'
1499.
        'listlink' => '' ,
1500.
        'selectlen' => 0,
1501.
        'selectlib' => 'lastname'
1502.
        'selectlink' => '{{fkselectlink}}',
1503.
        'selectdisplay' => 'text',
1504.
        'selectdisplaywidth' => '0'
1505.
        'selectdisplayheight' => '0'
1506.
        'listdisplay' => 'text',
1507.
        'listdisplaywidth' => '0'
1508.
        'listdisplayheight' => '0' 
1509.
), 
1510.
     'd3.private' => array (  // Person
1511.
        'metades' => "",
1512.
        'sortformat' => "",
1513.
        'listlen' => 0,
1514.
        'listlib' => 'private'
1515.
        'listlink' => '' ,
1516.
        'selectlen' => 0,
1517.
        'selectlib' => 'private'
1518.
        'selectlink' => '{{fkselectlink}}',
1519.
        'selectdisplay' => 'text',
1520.
        'selectdisplaywidth' => '0'
1521.
        'selectdisplayheight' => '0'
1522.
        'listdisplay' => 'text',
1523.
        'listdisplaywidth' => '0'
1524.
        'listdisplayheight' => '0' 
1525.
), 
1526.
     'd3.icon' => array (  // Person
1527.
        'metades' => "",
1528.
        'sortformat' => "",
1529.
        'listlen' => 0,
1530.
        'listlib' => 'icon'
1531.
        'listlink' => '' ,
1532.
        'selectlen' => 0,
1533.
        'selectlib' => 'icon'
1534.
        'selectlink' => '{{fkselectlink}}',
1535.
        'selectdisplay' => 'text',
1536.
        'selectdisplaywidth' => '0'
1537.
        'selectdisplayheight' => '0'
1538.
        'listdisplay' => 'text',
1539.
        'listdisplaywidth' => '0'
1540.
        'listdisplayheight' => '0' 
1541.
), 
1542.
     'd3.sex' => array (  // Person
1543.
        'metades' => "",
1544.
        'sortformat' => "",
1545.
        'listlen' => 0,
1546.
        'listlib' => 'sex'
1547.
        'listlink' => '' ,
1548.
        'selectlen' => 0,
1549.
        'selectlib' => 'sex'
1550.
        'selectlink' => '{{fkselectlink}}',
1551.
        'selectdisplay' => 'text',
1552.
        'selectdisplaywidth' => '0'
1553.
        'selectdisplayheight' => '0'
1554.
        'listdisplay' => 'text',
1555.
        'listdisplaywidth' => '0'
1556.
        'listdisplayheight' => '0' 
1557.
), 
1558.
     'd3.notesearch' => array (  // Person
1559.
        'metades' => "",
1560.
        'sortformat' => "",
1561.
        'listlen' => 0,
1562.
        'listlib' => 'notesearch'
1563.
        'listlink' => '' ,
1564.
        'selectlen' => 0,
1565.
        'selectlib' => 'notesearch'
1566.
        'selectlink' => '{{fkselectlink}}',
1567.
        'selectdisplay' => 'text',
1568.
        'selectdisplaywidth' => '0'
1569.
        'selectdisplayheight' => '0'
1570.
        'listdisplay' => 'text',
1571.
        'listdisplaywidth' => '0'
1572.
        'listdisplayheight' => '0' 
1573.
), 
1574.
     'd3.firstnameprefix' => array (  // Person
1575.
        'metades' => "",
1576.
        'sortformat' => "",
1577.
        'listlen' => 0,
1578.
        'listlib' => 'firstnameprefix'
1579.
        'listlink' => '' ,
1580.
        'selectlen' => 0,
1581.
        'selectlib' => 'firstnameprefix'
1582.
        'selectlink' => '{{fkselectlink}}',
1583.
        'selectdisplay' => 'text',
1584.
        'selectdisplaywidth' => '0'
1585.
        'selectdisplayheight' => '0'
1586.
        'listdisplay' => 'text',
1587.
        'listdisplaywidth' => '0'
1588.
        'listdisplayheight' => '0' 
1589.
), 
1590.
     'd3.displaynameprefix' => array (  // Person
1591.
        'metades' => "",
1592.
        'sortformat' => "",
1593.
        'listlen' => 0,
1594.
        'listlib' => 'displaynameprefix'
1595.
        'listlink' => '' ,
1596.
        'selectlen' => 0,
1597.
        'selectlib' => 'displaynameprefix'
1598.
        'selectlink' => '{{fkselectlink}}',
1599.
        'selectdisplay' => 'text',
1600.
        'selectdisplaywidth' => '0'
1601.
        'selectdisplayheight' => '0'
1602.
        'listdisplay' => 'text',
1603.
        'listdisplaywidth' => '0'
1604.
        'listdisplayheight' => '0' 
1605.
), 
1606.
     'd3.lastnamesuffix' => array (  // Person
1607.
        'metades' => "",
1608.
        'sortformat' => "",
1609.
        'listlen' => 0,
1610.
        'listlib' => 'lastnamesuffix'
1611.
        'listlink' => '' ,
1612.
        'selectlen' => 0,
1613.
        'selectlib' => 'lastnamesuffix'
1614.
        'selectlink' => '{{fkselectlink}}',
1615.
        'selectdisplay' => 'text',
1616.
        'selectdisplaywidth' => '0'
1617.
        'selectdisplayheight' => '0'
1618.
        'listdisplay' => 'text',
1619.
        'listdisplaywidth' => '0'
1620.
        'listdisplayheight' => '0' 
1621.
), 
1622.
     'd3.surname' => array (  // Person
1623.
        'metades' => "",
1624.
        'sortformat' => "",
1625.
        'listlen' => 0,
1626.
        'listlib' => 'surname'
1627.
        'listlink' => '' ,
1628.
        'selectlen' => 0,
1629.
        'selectlib' => 'surname'
1630.
        'selectlink' => '{{fkselectlink}}',
1631.
        'selectdisplay' => 'text',
1632.
        'selectdisplaywidth' => '0'
1633.
        'selectdisplayheight' => '0'
1634.
        'listdisplay' => 'text',
1635.
        'listdisplaywidth' => '0'
1636.
        'listdisplayheight' => '0' 
1637.
), 
1638.
     'd3.datecreated' => array (  // Person
1639.
        'metades' => "",
1640.
        'sortformat' => "date",
1641.
        'listlen' => 0,
1642.
        'listlib' => 'datecreated'
1643.
        'listlink' => '' ,
1644.
        'selectlen' => 0,
1645.
        'selectlib' => 'datecreated'
1646.
        'selectlink' => '{{fkselectlink}}',
1647.
        'selectdisplay' => 'text',
1648.
        'selectdisplaywidth' => '0'
1649.
        'selectdisplayheight' => '0'
1650.
        'listdisplay' => 'text',
1651.
        'listdisplaywidth' => '0'
1652.
        'listdisplayheight' => '0' 
1653.
), 
1654.
     'e4.id' => array (  // Eventtype
1655.
        'metades' => "",
1656.
        'sortformat' => "",
1657.
        'listlen' => 0,
1658.
        'listlib' => 'id'
1659.
        'listlink' => '' ,
1660.
        'selectlen' => 0,
1661.
        'selectlib' => 'id'
1662.
        'selectlink' => '{{fkselectlink}}',
1663.
        'selectdisplay' => 'text',
1664.
        'selectdisplaywidth' => '0'
1665.
        'selectdisplayheight' => '0'
1666.
        'listdisplay' => 'text',
1667.
        'listdisplaywidth' => '0'
1668.
        'listdisplayheight' => '0' 
1669.
), 
1670.
     'e4.name' => array (  // Eventtype
1671.
        'metades' => "",
1672.
        'sortformat' => "",
1673.
        'listlen' => 0,
1674.
        'listlib' => 'name'
1675.
        'listlink' => '' ,
1676.
        'selectlen' => 0,
1677.
        'selectlib' => 'name'
1678.
        'selectlink' => '{{fkselectlink}}',
1679.
        'selectdisplay' => 'text',
1680.
        'selectdisplaywidth' => '0'
1681.
        'selectdisplayheight' => '0'
1682.
        'listdisplay' => 'text',
1683.
        'listdisplaywidth' => '0'
1684.
        'listdisplayheight' => '0' 
1685.
), 
1686.
     'e4.code' => array (  // Eventtype
1687.
        'metades' => "",
1688.
        'sortformat' => "",
1689.
        'listlen' => 0,
1690.
        'listlib' => 'code'
1691.
        'listlink' => '' ,
1692.
        'selectlen' => 0,
1693.
        'selectlib' => 'code'
1694.
        'selectlink' => '{{fkselectlink}}',
1695.
        'selectdisplay' => 'text',
1696.
        'selectdisplaywidth' => '0'
1697.
        'selectdisplayheight' => '0'
1698.
        'listdisplay' => 'text',
1699.
        'listdisplaywidth' => '0'
1700.
        'listdisplayheight' => '0' 
1701.
), 
1702.
     'e4.category' => array (  // Eventtype
1703.
        'metades' => "",
1704.
        'sortformat' => "",
1705.
        'listlen' => 0,
1706.
        'listlib' => 'category'
1707.
        'listlink' => '' ,
1708.
        'selectlen' => 0,
1709.
        'selectlib' => 'category'
1710.
        'selectlink' => '{{fkselectlink}}',
1711.
        'selectdisplay' => 'text',
1712.
        'selectdisplaywidth' => '0'
1713.
        'selectdisplayheight' => '0'
1714.
        'listdisplay' => 'text',
1715.
        'listdisplaywidth' => '0'
1716.
        'listdisplayheight' => '0' 
1717.
), 
1718.
     'e4.description' => array (  // Eventtype
1719.
        'metades' => "",
1720.
        'sortformat' => "",
1721.
        'listlen' => 0,
1722.
        'listlib' => 'description'
1723.
        'listlink' => '' ,
1724.
        'selectlen' => 0,
1725.
        'selectlib' => 'description'
1726.
        'selectlink' => '{{fkselectlink}}',
1727.
        'selectdisplay' => 'text',
1728.
        'selectdisplaywidth' => '0'
1729.
        'selectdisplayheight' => '0'
1730.
        'listdisplay' => 'text',
1731.
        'listdisplaywidth' => '0'
1732.
        'listdisplayheight' => '0' 
1733.
), 
1734.
     'f5.id' => array (  // Place
1735.
        'metades' => "",
1736.
        'sortformat' => "",
1737.
        'listlen' => 0,
1738.
        'listlib' => 'id'
1739.
        'listlink' => '' ,
1740.
        'selectlen' => 0,
1741.
        'selectlib' => 'id'
1742.
        'selectlink' => '{{fkselectlink}}',
1743.
        'selectdisplay' => 'text',
1744.
        'selectdisplaywidth' => '0'
1745.
        'selectdisplayheight' => '0'
1746.
        'listdisplay' => 'text',
1747.
        'listdisplaywidth' => '0'
1748.
        'listdisplayheight' => '0' 
1749.
), 
1750.
     'f5.name' => array (  // Place
1751.
        'metades' => "",
1752.
        'sortformat' => "",
1753.
        'listlen' => 0,
1754.
        'listlib' => 'name'
1755.
        'listlink' => '' ,
1756.
        'selectlen' => 0,
1757.
        'selectlib' => 'name'
1758.
        'selectlink' => '{{fkselectlink}}',
1759.
        'selectdisplay' => 'text',
1760.
        'selectdisplaywidth' => '0'
1761.
        'selectdisplayheight' => '0'
1762.
        'listdisplay' => 'text',
1763.
        'listdisplaywidth' => '0'
1764.
        'listdisplayheight' => '0' 
1765.
), 
1766.
     'f5.description' => array (  // Place
1767.
        'metades' => "",
1768.
        'sortformat' => "",
1769.
        'listlen' => 0,
1770.
        'listlib' => 'description'
1771.
        'listlink' => '' ,
1772.
        'selectlen' => 0,
1773.
        'selectlib' => 'description'
1774.
        'selectlink' => '{{fkselectlink}}',
1775.
        'selectdisplay' => 'text',
1776.
        'selectdisplaywidth' => '0'
1777.
        'selectdisplayheight' => '0'
1778.
        'listdisplay' => 'text',
1779.
        'listdisplaywidth' => '0'
1780.
        'listdisplayheight' => '0' 
1781.
), 
1782.
     'f5.private' => array (  // Place
1783.
        'metades' => "",
1784.
        'sortformat' => "",
1785.
        'listlen' => 0,
1786.
        'listlib' => 'private'
1787.
        'listlink' => '' ,
1788.
        'selectlen' => 0,
1789.
        'selectlib' => 'private'
1790.
        'selectlink' => '{{fkselectlink}}',
1791.
        'selectdisplay' => 'text',
1792.
        'selectdisplaywidth' => '0'
1793.
        'selectdisplayheight' => '0'
1794.
        'listdisplay' => 'text',
1795.
        'listdisplaywidth' => '0'
1796.
        'listdisplayheight' => '0' 
1797.
), 
1798.
     'f5.icon' => array (  // Place
1799.
        'metades' => "",
1800.
        'sortformat' => "",
1801.
        'listlen' => 0,
1802.
        'listlib' => 'icon'
1803.
        'listlink' => '' ,
1804.
        'selectlen' => 0,
1805.
        'selectlib' => 'icon'
1806.
        'selectlink' => '{{fkselectlink}}',
1807.
        'selectdisplay' => 'text',
1808.
        'selectdisplaywidth' => '0'
1809.
        'selectdisplayheight' => '0'
1810.
        'listdisplay' => 'text',
1811.
        'listdisplaywidth' => '0'
1812.
        'listdisplayheight' => '0' 
1813.
), 
1814.
     'f5.adress1' => array (  // Place
1815.
        'metades' => "",
1816.
        'sortformat' => "",
1817.
        'listlen' => 0,
1818.
        'listlib' => 'adress1'
1819.
        'listlink' => '' ,
1820.
        'selectlen' => 0,
1821.
        'selectlib' => 'adress1'
1822.
        'selectlink' => '{{fkselectlink}}',
1823.
        'selectdisplay' => 'text',
1824.
        'selectdisplaywidth' => '0'
1825.
        'selectdisplayheight' => '0'
1826.
        'listdisplay' => 'text',
1827.
        'listdisplaywidth' => '0'
1828.
        'listdisplayheight' => '0' 
1829.
), 
1830.
     'f5.adress2' => array (  // Place
1831.
        'metades' => "",
1832.
        'sortformat' => "",
1833.
        'listlen' => 0,
1834.
        'listlib' => 'adress2'
1835.
        'listlink' => '' ,
1836.
        'selectlen' => 0,
1837.
        'selectlib' => 'adress2'
1838.
        'selectlink' => '{{fkselectlink}}',
1839.
        'selectdisplay' => 'text',
1840.
        'selectdisplaywidth' => '0'
1841.
        'selectdisplayheight' => '0'
1842.
        'listdisplay' => 'text',
1843.
        'listdisplaywidth' => '0'
1844.
        'listdisplayheight' => '0' 
1845.
), 
1846.
     'f5.zipcode' => array (  // Place
1847.
        'metades' => "",
1848.
        'sortformat' => "",
1849.
        'listlen' => 0,
1850.
        'listlib' => 'zipcode'
1851.
        'listlink' => '' ,
1852.
        'selectlen' => 0,
1853.
        'selectlib' => 'zipcode'
1854.
        'selectlink' => '{{fkselectlink}}',
1855.
        'selectdisplay' => 'text',
1856.
        'selectdisplaywidth' => '0'
1857.
        'selectdisplayheight' => '0'
1858.
        'listdisplay' => 'text',
1859.
        'listdisplaywidth' => '0'
1860.
        'listdisplayheight' => '0' 
1861.
), 
1862.
     'f5.city' => array (  // Place
1863.
        'metades' => "",
1864.
        'sortformat' => "",
1865.
        'listlen' => 0,
1866.
        'listlib' => 'city'
1867.
        'listlink' => '' ,
1868.
        'selectlen' => 0,
1869.
        'selectlib' => 'city'
1870.
        'selectlink' => '{{fkselectlink}}',
1871.
        'selectdisplay' => 'text',
1872.
        'selectdisplaywidth' => '0'
1873.
        'selectdisplayheight' => '0'
1874.
        'listdisplay' => 'text',
1875.
        'listdisplaywidth' => '0'
1876.
        'listdisplayheight' => '0' 
1877.
), 
1878.
     'f5.cityinsee' => array (  // Place
1879.
        'metades' => "",
1880.
        'sortformat' => "",
1881.
        'listlen' => 0,
1882.
        'listlib' => 'cityinsee'
1883.
        'listlink' => '' ,
1884.
        'selectlen' => 0,
1885.
        'selectlib' => 'cityinsee'
1886.
        'selectlink' => '{{fkselectlink}}',
1887.
        'selectdisplay' => 'text',
1888.
        'selectdisplaywidth' => '0'
1889.
        'selectdisplayheight' => '0'
1890.
        'listdisplay' => 'text',
1891.
        'listdisplaywidth' => '0'
1892.
        'listdisplayheight' => '0' 
1893.
), 
1894.
     'f5.country' => array (  // Place
1895.
        'metades' => "",
1896.
        'sortformat' => "",
1897.
        'listlen' => 0,
1898.
        'listlib' => 'country'
1899.
        'listlink' => '' ,
1900.
        'selectlen' => 0,
1901.
        'selectlib' => 'country'
1902.
        'selectlink' => '{{fkselectlink}}',
1903.
        'selectdisplay' => 'text',
1904.
        'selectdisplaywidth' => '0'
1905.
        'selectdisplayheight' => '0'
1906.
        'listdisplay' => 'text',
1907.
        'listdisplaywidth' => '0'
1908.
        'listdisplayheight' => '0' 
1909.
), 
1910.
     'f5.url' => array (  // Place
1911.
        'metades' => "",
1912.
        'sortformat' => "",
1913.
        'listlen' => 0,
1914.
        'listlib' => 'url'
1915.
        'listlink' => '' ,
1916.
        'selectlen' => 0,
1917.
        'selectlib' => 'url'
1918.
        'selectlink' => '{{fkselectlink}}',
1919.
        'selectdisplay' => 'text',
1920.
        'selectdisplaywidth' => '0'
1921.
        'selectdisplayheight' => '0'
1922.
        'listdisplay' => 'text',
1923.
        'listdisplaywidth' => '0'
1924.
        'listdisplayheight' => '0' 
1925.
), 
1926.
     'f5.gpslat' => array (  // Place
1927.
        'metades' => "",
1928.
        'sortformat' => "",
1929.
        'listlen' => 0,
1930.
        'listlib' => 'gpslat'
1931.
        'listlink' => '' ,
1932.
        'selectlen' => 0,
1933.
        'selectlib' => 'gpslat'
1934.
        'selectlink' => '{{fkselectlink}}',
1935.
        'selectdisplay' => 'text',
1936.
        'selectdisplaywidth' => '0'
1937.
        'selectdisplayheight' => '0'
1938.
        'listdisplay' => 'text',
1939.
        'listdisplaywidth' => '0'
1940.
        'listdisplayheight' => '0' 
1941.
), 
1942.
     'f5.gpslon' => array (  // Place
1943.
        'metades' => "",
1944.
        'sortformat' => "",
1945.
        'listlen' => 0,
1946.
        'listlib' => 'gpslon'
1947.
        'listlink' => '' ,
1948.
        'selectlen' => 0,
1949.
        'selectlib' => 'gpslon'
1950.
        'selectlink' => '{{fkselectlink}}',
1951.
        'selectdisplay' => 'text',
1952.
        'selectdisplaywidth' => '0'
1953.
        'selectdisplayheight' => '0'
1954.
        'listdisplay' => 'text',
1955.
        'listdisplaywidth' => '0'
1956.
        'listdisplayheight' => '0' 
1957.
), 
1958.
     'f5.datecreated' => array (  // Place
1959.
        'metades' => "",
1960.
        'sortformat' => "date",
1961.
        'listlen' => 0,
1962.
        'listlib' => 'datecreated'
1963.
        'listlink' => '' ,
1964.
        'selectlen' => 8,
1965.
        'selectlib' => 'datecreated'
1966.
        'selectlink' => '{{fkselectlink}}',
1967.
        'selectdisplay' => 'text',
1968.
        'selectdisplaywidth' => '0'
1969.
        'selectdisplayheight' => '0'
1970.
        'listdisplay' => 'text',
1971.
        'listdisplaywidth' => '0'
1972.
        'listdisplayheight' => '0' 
1973.
1974.
            
1975.
    ];
1976.
 
1977.
    /*
1978.
        Get field property value
1979.
        
1980.
        Parameters : field name and property name.
1981.
        return : value of property.
1982.
    */
1983.
 
1984.
    function getMeta$fieldkey $metakey ) {
1985.
        return $this->colmeta [$fieldkey][$metakey];
1986.
    }
1987.
 
1988.
    /*
1989.
        Get labels for list table header.
1990.
        
1991.
        Parameters : None.
1992.
        return : String.
1993.
    */
1994.
 
1995.
    function getTableHeaderList() {        
1996.
        
1997.
        $labelsStr ='';
1998.
        
1999.
        foreach (  $this->colmeta as $k => $v) {
2000.
            if ( $v['listlen'] > 
2001.
                $labelsStr $labelsStr.'<th title="'.$v['metades'].'" >'.$v['listlib'] .'</th>'."\n";
2002.
        }                
2003.
        return $labelsStr;
2004.
    }
2005.
    
2006.
    function getTableFieldLenList$field ) {        
2007.
        
2008.
        return $this->colmeta[$field]['listlen'];
2009.
    }
2010.
 
2011.
    function getTableFieldLinkList$field ) {        
2012.
        
2013.
        return $this->colmeta[$field]['listlink'];
2014.
    }
2015.
 
2016.
    /*
2017.
        Get labels for select table header.
2018.
        
2019.
        Parameters : None.
2020.
        return : String.
2021.
    */
2022.
 
2023.
    function getTableHeaderSelect() {        
2024.
        
2025.
        $labelsStr ='';
2026.
        
2027.
        foreach (  $this->colmeta as $k => $v) {
2028.
            if ( $v['selectlen'] > 
2029.
                $labelsStr $labelsStr.'<th title="'.$v['metades'].'" >'.$v['selectlib'] .'</th>'."\n";
2030.
        }                
2031.
        return $labelsStr;
2032.
    }
2033.
    
2034.
    function getTableFieldLenSelect$field ) {        
2035.
        
2036.
        return $this->colmeta[$field]['selectlen'];
2037.
    }
2038.
 
2039.
    function getTableFieldLinkSelect$field ) {        
2040.
        
2041.
        return $this->colmeta[$field]['selectlink'];
2042.
    }
2043.
 
2044.
    
2045.
    /*
2046.
        Check user input values for event.
2047.
        
2048.
        Parameters : array of fields with regexp  paterns. ex: array( $nom =>'^(?!\s*$).+' , $icone => '')
2049.
        return : False if at last one regexp does not match.
2050.
    */
2051.
    function checkValue$arrayCheck ) {
2052.
 
2053.
        $indexfield=1;
2054.
        foreach ( $arrayCheck as $value => $pattern) {
2055.
 
2056.
            if ($pattern=='') continue;
2057.
 
2058.
            $pattern='/'.$pattern.'/';
2059.
 
2060.
            if (!preg_match($pattern$value)) {
2061.
                $this->lasterror "Erreur champ #".$indexfield'. Valeur:['.$value.']';
2062.
                return false;                
2063.
            }
2064.
 
2065.
            $indexfield+=1;
2066.
 
2067.
        }
2068.
 
2069.
        return true;
2070.
    }
2071.
 
2072.
// end class
2073.
 
2074.
?>
2075.