Versio

[script review] CLASS: Watermerk (Zoals 1001 anderen)

Overzicht Reageren

Gunther Peeters

Gunther Peeters

09/01/2012 19:28:09
Quote Anchor link
Mijn eerste Class... Geef jullie gedacht hierover
[File: image.inc.php][UPDATE]
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<?php

    /***********************************************************
    * Een Class om een watermerk op een afbeelding te plaatsen *
    ***********************************************************/

    
class img {
    // Construct => Benodigheden om de class te starten
    function __construct($pathtoimage = NULL, $pathtowatermark = NULL, $watermarkalign = 'left', $watermarkvalign = 'top', $watermarktransparent = '100'){

        // Afbeelding
        img::image($pathtoimage);

        // Watermerk
        img::watermark($pathtowatermark);

        // Positie van het watermerk
        img::align($watermarkalign);
        img::valign($watermarkvalign);

        // Doorzichtigheid van het watermerk
        img::transparent($watermarktransparent);

    }


    // Controleer de afbeelding
    function image($pathtoimage = NULL){
        $this->pathtoimage = $pathtoimage;
        img::checkErrors();
    }


    // Controleer het watermerk
    function watermark($pathtowatermark = NULL){
        $this->pathtowatermark = $pathtowatermark;
        img::checkErrors();
    }


    // Posititie van het watermerk (Links => Midden => Rechts => Getal [Links -> Rechts])
    function align($watermarkalign = 'left'){
        $this->align = $watermarkalign;
        img::checkErrors();
    }


    // Posititie van het watermerk (Boven => Midden => Onder => Getal [Boven -> Onder])
    function valign($watermarkvalign = 'top'){
        $this->valign = $watermarkvalign;
        img::checkErrors();
    }


    // Doorzichtigheid van het watermerk
    function transparent($watermarktransparent = '100'){
        $this->transparent = $watermarktransparent;
        img::checkErrors();
    }


    // Controleer op fouten
    private function checkErrors(){
        // Standaard waarden
        $this->error['total_errors'] = '0';
        $this->error['image'] = NULL;
        $this->error['watermark'] = NULL;
        $this->pathtoimage = isset($this->pathtoimage) ? $this->pathtoimage : NULL;
        $this->pathtowatermark = isset($this->pathtowatermark) ? $this->pathtowatermark : NULL;
        $this->valign = isset($this->valign) ? $this->valign : 'top';
        $this->align = isset($this->align) ? $this->align : 'left';
        $this->transparent = isset($this->transparent) ? $this->transparent : '100';

        // Controleer op afbeelding
        if ($this->pathtoimage == NULL){
            $this->error['total_errors'] ++;
            $this->error['image'] = 'No Image!';
        }
else
        // Controleer op bestaande afbeelding
        if (!file_exists($this->pathtoimage)){
            $this->error['total_errors'] ++;
            $this->error['image'] = 'Image Not Found!';
        }
else
        // Controleer of het wel een afbeelding is
        if (!$this->picture = getimagesize($this->pathtoimage)){
            $this->error['total_errors'] ++;
            $this->error['image'] = 'Not An Image!';
        }


        // Controleer op watermerk
        if ($this->pathtowatermark == NULL){
            $this->error['total_errors'] ++;
            $this->error['watermark'] = 'No Watermark!';
        }
else
        // Controleer op bestaande watermerk
        if (!file_exists($this->pathtowatermark)){
            $this->error['total_errors'] ++;
            $this->error['watermark'] = 'Watermark Not Found!';
        }
else
        // Controleer het watermerk is een afbeelding
        if (!$this->watermark = getimagesize($this->pathtowatermark)){
            $this->error['total_errors'] ++;
            $this->error['watermark'] = 'Not A Watermark!';
        }


        // Controleer Transparant
        if ($this->error['total_errors'] == '0'){
            if (!is_numeric($this->transparent)){
                $this->error['total_errors'] ++;
                $this->error['watermark'] = 'Not A Valid Number For transparent! (USE a number BETWEEN 0 - 100)';
            }
else
            if ($this->transparent > '100' || $this->transparent < '0'){
                $this->error['total_errors'] ++;
                $this->error['watermark'] = 'Not A Valid Number For transparent! (USE a number BETWEEN 0 - 100)';
            }
else {
                if ($this->transparent > '0' && $this->transparent <= '100'){
                    $this->transparent = 100 - round($this->transparent);
                }
else {
                    $this->transparent = '100';
                }
            }

        }


        if ($this->error['total_errors'] == '0'){
            // Controleer positie Links => Rechts
            switch($this->align){
                case
'left':
                    $this->align = '0';
                    break;
                case
'center':
                    $this->align = round($this->picture['0'] / 2) - round($this->watermark['0'] / 2);
                    break;
                case
'right':
                    $this->align = round($this->picture['0']) - round($this->watermark['0']);
                    break;
                case
is_numeric($this->align):
                    $this->align = round($this->align);
                    break;
                default:

                    $this->error['total_errors'] ++;
                    $this->error['watermark'] = 'Not A Valid Input For align! (USE `left`, `right`, `center` OR a number)';
            }


            // Controleer positie Boven => Onder
            switch($this->valign){
                case
'top':
                    $this->valign = '0';
                    break;
                case
'center':
                    $this->valign = round($this->picture['1'] / 2) - round($this->watermark['1'] / 2);
                    break;
                case
'bottom':
                    $this->valign = round($this->picture['1']) - round($this->watermark['1']);
                    break;
                case
is_numeric($this->valign):
                    $this->valign = round($this->valign);
                    break;
                default:

                    $this->error['total_errors'] ++;
                    $this->error['watermark'] = 'Not A Valid Input For valign! (USE `top`, `bottom`, `center` OR a number)';
            }
        }
    }


    // Afbeelding maken
    private function createImg($image = NULL, $mime = NULL){
        switch($mime){
            case
'image/gif':
                return imagecreatefromgif($image);
                break;
            case
'image/jpg':
                return imagecreatefromjpeg($image);
                break;
            case
'image/jpeg':
                return imagecreatefromjpeg($image);
                break;
            case
'image/png':
                return imagecreatefrompng($image);
                break;
            default:

                return imagecreatefromjpeg($image);
                break;
        }
    }


    // Afbeelding maken
    private function setImage(){
        $this->imgPicture = img::createImg($this->pathtoimage, $this->picture['mime']);
        img::checkErrors();
    }


    // Watermerk maken
    private function setWatermark(){
        $this->imgWatermark = img::createImg($this->pathtowatermark, $this->watermark['mime']);
        img::checkErrors();
    }


    // Toon de afbeelding
    function show(){
        if ($this->error['total_errors'] == '0'){
            img::setImage();
            img::setWatermark();
            imagecopymerge($this->imgPicture, $this->imgWatermark, $this->align, $this->valign, 0, 0, $this->watermark['0'], $this->watermark['1'], $this->transparent);
            switch($this->picture['mime']){
                case
'image/gif':
                    header('Content-type: image/gif');
                    imagegif($this->imgPicture);
                    break;
                case
'image/png':
                    header('Content-type: image/png');
                    imagepng($this->imgPicture);
                    break;
                default:

                    header('Content-type: image/jpeg');
                    imagejpeg($this->imgPicture);
                    break;
            }

            imagedestroy($this->imgPicture);
            imagedestroy($this->imgWatermark);
        }
else {
            print '<h1>There Are Some Errors Found!</h1>';
            print '<pre>';
            print_r($this->error);
            print '</pre>';
        }

    }

}


?>
[File: show.php]
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
<?php

// Start een sessie
session_start();

// Ophalen van Class
require_once('image.inc.php');

// OPTIE 1
$img = new img('image.jpg', 'watermark.gif', 'center', 'center', '50');

if ($img->error['total'] != '0'){
    print '<pre>';
    print_r($img);
    print '</pre>';
}
else {
    $img->show();
}


// OPTIE 2
$img = new img();
$img->image('image.jpg'); // URL naar de afbeelding
$img->watermark('watermark.gif'); // URL naar het watermerk
$img->align('center'); // Positie van het watermerk (Left, Center, Right of een getal...
$img->valign('center'); // Positie van het watermerk (Top, Center, Bottom of een getal...
$img->transparent('50'); // Doorzichtigheid van het watermerk (0 -> 100);

if ($img->error['total'] != '0'){
    print '<pre>';
    print_r($img);
    print '</pre>';
}
else {
    $img->show();
}


?>


Titel aangepast, zo is het wat duidelijker.[/modedit]
Gewijzigd op 10/01/2012 19:39:24 door Gunther Peeters
 
PHP hulp

PHP hulp

25/05/2012 15:20:02
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Kris Peeters

Kris Peeters

10/01/2012 15:42:17
Quote Anchor link
Het ziet er wel proper uit.

Straks eens uitproberen.

Ik zie wel nog een mogelijkheid om iets toe te voegen.

Wanneer je zo'n soort dingen doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$img
= new img();
$img->image('image.jpg'); // URL naar de afbeelding
$img->watermark('watermark.gif'); // URL naar het watermerk
$img->align('center'); // Positie van het watermerk (Left, Center, Right of een getal...
...
?>


Het is ook mogelijk dat je het zo doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$img
= new img();
$img->image('image.jpg') // URL naar de afbeelding
    ->watermark('watermark.gif') // URL naar het watermerk
    ->align('center'); // Positie van het watermerk (Left, Center, Right of een getal...
...
?>


Wat moet je dan doen? Simpelweg al die functies waarbij je gegevens in het object pompt, die eindig je allemaal met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  return $this;
}

?>
 
Pim -

Pim -

10/01/2012 15:46:09
Quote Anchor link
Probeer eens met exceptions te werken.
 
Gunther Peeters

Gunther Peeters

10/01/2012 19:46:24
Quote Anchor link
Script is geupdated, volgende kan je gebruiken.
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
<?php

// Start een sessie
session_start();

// Ophalen van Class
require_once('function.inc.php');

// OPTIE 1
$img = new img('image.jpg', 'watermark.gif', 'center', 'center', '50');
$img->show();

// OPTIE 2
$img = new img();
$img->image('lightbulb.jpg'); // URL naar de afbeelding
$img->watermark('watermark.gif'); // URL naar het watermerk
$img->align('right'); // Positie van het watermerk (Left, Center, Right of een getal...
$img->valign('bottom'); // Positie van het watermerk (Top, Center, Bottom of een getal...
$img->transparent('75'); // Doorzichtigheid van het watermerk (0 -> 100);
$img->show();

?>
Natuurlijk werkt de eerste optie (zoals hierboven beschreven) ook nog altijd.

Update Info:
1) Foutmelding tonen als er fouten zijn toon anders de afbeelding
2) Transparent rekent nu in %, 100 = is onzichtbaar, 0 = volledig zichtbaar.
3) Klein foutje bij error[total_errors] is weg gewerkt

Toevoeging op 10/01/2012 19:48:21:

@Kris: Geen return
@Pim: Dat zal de volgende stap zijn... ben aan het leren in kleine stapjes...
 
- Jim  -

- Jim -

10/01/2012 21:06:09
Quote Anchor link
@Pim: Exceptions??? Daar heeft PHP toch DIE() voor??? :p

$img->image(...), het is misschien handig om er setImage() van te maken.
Dat zegt n.l. meer dan alleen image.

"getter & setters, query & command, that kind of things...."
 
Gunther Peeters

Gunther Peeters

11/01/2012 01:37:50
Quote Anchor link
@Jim: Inderdaad, setImage en setWatermark zal duidelijker zijn, handige tip! :)
 
Niels Kieviet
Beheerder

Niels Kieviet

11/01/2012 11:12:25
Quote Anchor link
Een watermerk een een afbeelding zijn toch twee verschillende zaken? Afgezien van het feit dat ze wel met elkaar te maken hebben.

Daarnaast, ik mis method visibility ?
Gewijzigd op 11/01/2012 11:26:23 door Niels Kieviet
 
Kris Peeters

Kris Peeters

11/01/2012 11:26:43
Quote Anchor link
De private methodes staan wel als private.
Alleen lijkt het er op dat enkel public niet expliciet vermeld wordt, wegens toch default
 
Niels Kieviet
Beheerder

Niels Kieviet

11/01/2012 11:29:41
Quote Anchor link
Ja inderdaad.

Daarnaast zie ik nog het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if ($this->error['total_errors'] == '0'){
?>


0 is een integer dus dan moet je dat ook als integer controleren.
Ook zie ik dat hij diversen variabelen gebruikt maar die niet gedefinieerd heeft.

Maar goed dit is nog het belangrijkste:
Quote:
Een watermerk een een afbeelding zijn toch twee verschillende zaken? Afgezien van het feit dat ze wel met elkaar te maken hebben.
Gewijzigd op 11/01/2012 11:29:53 door Niels Kieviet
 
Wouter J

Wouter J

11/01/2012 11:35:51
Quote Anchor link
Ook img::image($pathtoimage) of al die andere methods die je aanroept in de class zelf. Het is toch veel beter om $this->image($pathtoimage) te gebruiken?
 
Kris Peeters

Kris Peeters

11/01/2012 12:50:46
Quote Anchor link
Gunther Peeters op 10/01/2012 19:46:24:
...
@Kris: Geen return
...


Ik zal eens tonen wat ik bedoel.
Dit is jouw script, maar een beetje aangepast.

index.php
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
<?php
/*
Dit script verwacht drie files: "watermark.gif", "trein.jpg" en "auto.jpg"
*/

session_start();
require_once('watermark.php');

if (!empty($_GET['w'])) {
  switch($_GET['w']) {
    case
1:
      $img = new img();
      $img->image('trein.jpg')            // URL naar de afbeelding
          ->watermark('watermark.gif')    // URL naar het watermerk
          ->align('right')                // Positie van het watermerk (Left, Center, Right of een getal...
          ->valign('bottom')              // Positie van het watermerk (Top, Center, Bottom of een getal...
          ->transparent('50');            // Doorzichtigheid van het watermerk (0 -> 100);

      if ($img->error['total'] != '0') {
          print '<pre>';
          print_r($img);
          print '</pre>';
      }
else {
          $img->show();
      }

      break;
    case
2:
      $img = new img();
      $img->image('auto.jpg')            // URL naar de afbeelding
          ->watermark('watermark.gif')    // URL naar het watermerk
          ->align('left')               // Positie van het watermerk (Left, Center, Right of een getal...
          ->valign('top')              // Positie van het watermerk (Top, Center, Bottom of een getal...
          ->transparent('50');            // Doorzichtigheid van het watermerk (0 -> 100);

      if ($img->error['total'] != '0') {
          print '<pre>';
          print_r($img);
          print '</pre>';
      }
else {
          $img->show();
      }

      break;
  }
}

else {
  echo '<img src="?w=1"/> <img src="?w=2"/>';
}

?>


watermark.php
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<?php
    /***********************************************************
    * Een Class om een watermerk op een afbeelding te plaatsen *
    ***********************************************************/

class img {
    // Construct => Benodigheden om de class te starten
    function __construct($pathtoimage = NULL, $pathtowatermark = NULL, $watermarkalign = 'left', $watermarkvalign = 'top', $watermarktransparent = '100') {

        // Foutmeldingen
        $this->error['total'] = '0';
        $this->error['image'] = $pathtoimage;
        $this->error['watermark'] = $pathtowatermark;

        // Afbeelding
        if ($pathtoimage != NULL) { img::image($pathtoimage); }

        // Watermerk
        if ($pathtowatermark != NULL) { img::watermark($pathtowatermark); }

        // Positie van het watermerk
        img::align($watermarkalign);
        img::valign($watermarkvalign);

        // Doorzichtigheid van het watermerk
        img::transparent($watermarktransparent);
    }


    // Controleer de afbeelding
    function image($pathtoimage = NULL) {
        $this->error['image'] = $pathtoimage;
        // Controleer op afbeelding
        if ($this->error['image'] == NULL) {
            $this->error['total'] ++;
            $this->error['image'] = 'No Image!';
        }
else
        // Controleer op bestaande afbeelding
        if (!file_exists($this->error['image'])) {
            $this->error['total'] ++;
            $this->error['image'] = 'Image Not Found!';
        }
else
        if (!$this->picture = getimagesize($this->error['image'])) {
            $this->error['total'] ++;
            $this->error['image'] = 'Not An Image!';
        }

      return $this;
    }


    // Controleer het watermerk
    function watermark($pathtowatermark = NULL) {
        $this->error['watermark'] = $pathtowatermark;
        // Controleer op watermerk
        if ($this->error['watermark'] == NULL) {
            $this->error['total'] ++;
            $this->error['watermark'] = 'No Watermark!';
        }
else
        // Controleer op bestaande watermerk
        if (!file_exists($this->error['watermark'])) {
            $this->error['total'] ++;
            $this->error['watermark'] = 'Watermark Not Found!';
        }
else
        // Controleer het watermerk is een afbeelding
        if (!$this->watermark = getimagesize($this->error['watermark'])) {
            $this->error['total'] ++;
            $this->error['watermark'] = 'Not A Watermark!';
        }


      return $this;
    }


    // Posititie van het watermerk (Links => Midden => Rechts => Getal [Links -> Rechts])
    function align($watermarkalign = 'left') {
        if ($this->error['total'] == '0') {
            switch($watermarkalign) {
                case
'left':
                    $this->align = '0';
                    break;
                case
'center':
                    $this->align = round($this->picture['0'] / 2) - round($this->watermark['0'] / 2);
                    break;
                case
'right':
                    $this->align = round($this->picture['0']) - round($this->watermark['0']);
                    break;
                case
is_numeric($watermarkalign):
                    $this->align = round($watermarkalign);
                    break;
                default:

                    $this->error['total'] ++;
                    $this->error['watermark'] = 'Not A Valid Input For align! (USE `left`, `right`, `center` OR a number)';
            }
        }

      return $this;
    }


    // Posititie van het watermerk (Boven => Midden => Onder => Getal [Boven -> Onder])
    function valign($watermarkvalign = 'top') {
        if ($this->error['total'] == '0') {
            switch($watermarkvalign) {
                case
'top':
                    $this->valign = '0';
                    break;
                case
'center':
                    $this->valign = round($this->picture['1'] / 2) - round($this->watermark['1'] / 2);
                    break;
                case
'bottom':
                    $this->valign = round($this->picture['1']) - round($this->watermark['1']);
                    break;
                case
is_numeric($watermarkvalign):
                    $this->valign = round($watermarkvalign);
                    break;
                default:

                    $this->error['total'] ++;
                    $this->error['watermark'] = 'Not A Valid Input For valign! (USE `top`, `bottom`, `center` OR a number)';
            }
        }

      return $this;
    }


    // Doorzichtigheid van het watermerk
    function transparent($watermarktransparent = '100') {
        if (!is_numeric($watermarktransparent)) {
            $this->error['total'] ++;
            $this->error['watermark'] = 'Not A Valid Number For transparent! (USE a number BETWEEN 0 - 100)';
        }
else
        if ($watermarktransparent > '100' || $watermarktransparent < '0') {
            $this->error['total'] ++;
            $this->error['watermark'] = 'Not A Valid Number For transparent! (USE a number BETWEEN 0 - 100)';
        }
else {
            $this->transparent = round($watermarktransparent);
        }

      return $this;
    }


    // Afbeelding maken
    private function createImg($image = NULL, $mime = NULL) {
        switch($mime) {
            case
'image/gif':
                return imagecreatefromgif($image);
                break;
            case
'image/jpg':
                return imagecreatefromjpeg($image);
                break;
            case
'image/jpeg':
                return imagecreatefromjpeg($image);
                break;
            case
'image/png':
                return imagecreatefrompng($image);
                break;
            default:

                return imagecreatefromjpeg($image);
                break;
        }
    }


    // Afbeelding maken
    private function setImage() {
        $this->imgPicture = img::createImg($this->error['image'], $this->picture['mime']);
    }


    // Watermerk maken
    private function setWatermark() {
        $this->imgWatermark = img::createImg($this->error['watermark'], $this->watermark['mime']);
    }


    // Toon de afbeelding
    function show() {
        img::setImage();
        img::setWatermark();
        imagecopymerge($this->imgPicture, $this->imgWatermark, $this->align, $this->valign, 0, 0, $this->watermark['0'], $this->watermark['1'], $this->transparent);
        switch($this->picture['mime']) {
            case
'image/gif':
                header('Content-type: image/gif');
                imagegif($this->imgPicture);
                break;
            case
'image/png':
                header('Content-type: image/png');
                imagepng($this->imgPicture);
                break;
            default:

                header('Content-type: image/jpeg');
                imagejpeg($this->imgPicture);
                break;
        }

        imagedestroy($this->imgPicture);
        imagedestroy($this->imgWatermark);
    }
}

?>
Gewijzigd op 11/01/2012 12:51:49 door Kris Peeters
 
Jelle -

Jelle -

11/01/2012 13:42:45
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

img::image($pathtoimage);

?>


Dit zijn static aanroepen en niet object aanroepen. Geen idee waarom je dat doet je functies zijn ook niet static. Do you know?
 
Kris Peeters

Kris Peeters

11/01/2012 14:27:55
Quote Anchor link
Wel ja, daar kan nog aan gewerkt worden. De static functies als static bestempelen, en ze zo ook gebruiken.

Als de functie niet static is, spreek je ze aan met $this->functienaam(), als ze static zijn met self::functienaam()
 
Gunther Peeters

Gunther Peeters

12/01/2012 11:52:32
Quote Anchor link
Hartelijk bedankt iedereen voor al deze mooie commentaren, ik zal hierbij ZEKER rekening houden. Zodra dit script een update krijgt zal ik deze ook meteen plaatsen.
 



Overzicht Reageren

Get Adobe Flash player