edex-naar-xml

Gesponsorde koppelingen

PHP script bestanden

  1. edex-naar-xml

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?php

// Laden van alle EDEX bestanden.
$aEDEXLL = file ('EDEXLL.txt');
$aEDEXLK = file ('EDEXLK.txt');
$aEDEXGR = file ('EDEXGR.txt');
$aEDEXLG = file ('EDEXLG.txt');
    
### Record-layout leerlinggegevens in EDEXLL.TXT ################################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLL.TXT bevat de volgende gegevens van een leerling.                                            #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 achternaam 40 karakters 01 t/m 40                                                                            #
# 2 tussenvoegsel 10 karakters 41 t/m 50                                                                        #
# 3 voornaam 20 karakters 51 t/m 70                                                                                #
# 4 geboortedatum 8 karakters 71 t/m 78 format: DD/MM/JJ [1]                                                    #
# 5 geslacht 1 karakter 79 format J of M                                                                        #
# 6 land van herkomst  1 karakter 80 numeriek: 0 = autochtoon, 1 = allochtoon                                    #
# 7 leerlingkey 5 karakters 81 t/m 85 numeriek [2]                                                                #
# 8 groeps key 5 karakters 86 t/m 90 alfanumeriek [3]                                                            #
#---------------------------------------------------------------------------------------------------------------#
# [1] Er zijn ook pakketten die een dash in plaats van een slash gebruiken, dus DD-MM-JJ.                        #
# Bij het importeren is het verstandig om met beide varianten rekening te houden.                                #
# [2] Er zijn ook pakketten die een (decimale) punt in de leerlingkey opnemen.                                    #
# [3] Een leerling komt in precies één groep voor.                                                                #
#################################################################################################################


### Uitzonderling van EDEX export van ESIS .#####################################################################
# Esis reserveerd niet de juiste hoeveelheid tekens voor Groep dit zorgt voor onregelmatigheid in de regels.    #
# Een groep kan uit meerdere tekens bestaan.                                                                    #
# In de laatste regel van de foreach word er niet van het begin gerekent maar vanaf het einde.                    #
# Zo ontrekken we de datum en groep.                                                                            #
# ESIS gebruikt ook een Schooljaar. Deze staat niet in record lay-out omschreven.                                 #
#################################################################################################################


#### EDEXLL.TXT ####

foreach ($aEDEXLL as $line_num => $line) {

    $aLL[$line_num]['achternaam']    =trim(substr($line, 0,40)," ");    // 1
    $aLL[$line_num]['tussenvoeg']    =trim(substr($line,40,10)," ");    // 2
    $aLL[$line_num]['voornaam']        =trim(substr($line,50,20)," ");    // 3
    $aLL[$line_num]['geboortedatum']=trim(substr($line,70,8)," ");    // 4
    $aLL[$line_num]['geslacht']        =trim(substr($line,78,1)," ");    // 5
    $aLL[$line_num]['herkomst']        =trim(substr($line,79,1)," ");    // 6
    $aLL[$line_num]['leerlingkey']    =trim(substr($line,80,5)," ");    // 7
    $aLL[$line_num]['groep']        =trim(substr($line,85,-11)," ");    // 8
    $aLL[$line_num]['schooljaar']    =trim(substr($line,-11)," ");    // 9
    }

#### Einde EDEXLL.TXT ###########################################################################################

### Record-layout leerkrachtgegevens in EDEXLK.TXT ##############################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLK.TXT bevat de volgende gegevens van een leerkracht.                                        #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 achternaam 40 karakters 01 t/m 40                                                                            #
# 2 tussenvoegsel 10 karakters 41 t/m 50                                                                        #
# 3 voornaam 20 karakters 51 t/m 70                                                                                #
# 4 leerkrachtkey 5 karakters 71 t/m 75 alfanumeriek                                                            #
#                                                                                                                #
#################################################################################################################


#### EDEX.TXT ####

foreach($aEDEXLK as $line_num =>$line){
    $aLK[$line_num]['achternaam']        =trim(substr($line, 0,40)," ");
    $aLK[$line_num]['tussenvoeg']        =trim(substr($line, 40,10)," ");
    $aLK[$line_num]['voornaam']            =trim(substr($line, 50,20)," ");
    $aLK[$line_num]['leerkrachtkey']    =trim(substr($line, 70,5)," ");
}


#### Einde EDEXLK.TXT ############################################################################################


### Record-layout groepgegevens in EDEXGR.TXT ###################################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXGR.TXT bevat de volgende gegevens van een groep.                                                #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 groepsnaam 30 karakters 01 t/m 30                                                                            #
# 2 jaargroep 1 karakter 31 1 t/m 8 voor jaargroepen 1 t/m 8;                                                    #
# S voor speciaal onderwijs; H voor historische groepen [1]                                                        #
# 3 groepkey 5 karakters 32 t/m 36 alfanumeriek                                                                    #
#                                                                                                                #
#################################################################################################################

### Uitzonderling van EDEX export van ESIS .#####################################################################
# ESIS staat mEer tekens toe in velden dan word aangegeven in Recaord lay-out                                    #
# In het geval van speciaal onderwijs of combinatie groepen ( 7/8 ) kunnen er meerder tekens in het veld groep    #
# voorkomen. In dit geval is er gekozen dan een groep uit maximaal 5 tekens kan bestaan.                        #
#################################################################################################################

#### EDEXGR.TXT ####

foreach($aEDEXGR as $line_num =>$line){
    $aGR[$line_num]['groepsnaam']        =trim(substr($line, 0,30)," ");    // 1
    $aGR[$line_num]['jaargroep']        =trim(substr($line, 29,5)," ");    // 2
    $aGR[$line_num]['groepskey']        =trim(substr($line, 34)," ");    // 3
}

#### Einde EDEXGR.TXT ###########################################################################################


### Record-layout koppeling leerkrachten en groepen in EDEXLG.TXT ###############################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLG.TXT geeft aan welke leerkracht bij welke groep behoort. Hierbij kan het voorkomen dat een    #
# leerkracht bij verschillende groepen behoort, en dat bij een groep verschillende leerkrachten horen.            #
# Nr - Veldnaam -  Grootte - Positie - Toelichting                                                                #
# 1 leerkrachtkey 5 karakters 01 t/m 05 alfanumeriek; zie EDEXLK.TXT; koppeling met veld 4                        #
# 2 groepkey 5 karakters 06 t/m 10 alfanumeriek; zie EDEXGR.TXT; koppeling met veld 3                            #
#################################################################################################################


foreach($aEDEXLG as $line_num =>$line){
    $aLG[$line_num]['leerkrachtkey']    =trim(substr($line, 0,5)," ");    // 1
    $aLG[$line_num]['groepskey']        =trim(substr($line, 5,5)," ");    // 2
}

#### Einde EDEXLG.TXT ###########################################################################################

class cls_EdexXML extends DomDocument{
    private $m_Root;
    private $m_Datum;

    function
__construct(){
        parent::__construct('1.0');

        $this->m_Root= $this->createElement("root");
        $this->m_Root= $this->appendChild($this->m_Root);
        
        $this->m_Datum = $this->createElement("update_datum");
        $this->m_Datum = $this->m_Root->appendChild($this->m_Datum);
        $Node = $this->createTextNode(date("m-d-y H:i "));
        $Node = $this->m_Datum->appendChild($Node);

    }

    function
XML($ap_List, $p_ElementName){


        foreach ($ap_List as $key => $value){
            $p_ParentElement =  $this->createElement($p_ElementName);
            $p_ParentElement = $this->m_Root->appendChild($p_ParentElement);
            $p_ParentElement->setAttribute("id", $key);
            foreach ($value as $ChildElement =>$Node ){
                if (!empty($ChildElement)){
                    $ChildElement = $this->createElement($ChildElement);
                    $ChildElement = $p_ParentElement->appendChild($ChildElement);
                    $Node = $this->createTextNode($Node);
                    $Node = $ChildElement->appendChild($Node);
                }    
            }
        }
        
    }
}

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
//Print_r($aLL);
$Object = new cls_EdexXML;
$Object->XML($aLL,'leerling');
$Object->XML($aLK,'leerkracht');
$Object->XML($aGR,'groepen');
$Object->XML($aLG,'Leerkachtengroepen');
$Object->save("edex.xml");
?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.