hidden field

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end Developer

Do you want to work with the latest technologies on the development of new systems and applications? Create elegant interfaces using VueJS for thousands of users? Get moving and strengthen Nederlandse Loterij as a Front-end Developer. Thanks to your efforts, our services are always presented in style. As a Front-end Developer you are responsible for website development and improving customer experience based on data analyze. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Front-end Developer you score by: Writing elegant, testable components without side-effects to provide functionality to the users Website development, adding

Bekijk vacature »

Back-end ontwikkelaar

Functie omschrijving Wil jij meebouwen aan diverse databasesystemen in een klein bedrijf met een platte organisatie? In een team van ruim 10 ontwikkelaars wordt er aan diverse ICT oplossingen gewerkt. Jouw taken hierbij zullen bestaan uit: Het onderhouden en door-ontwikkelen van bestaande databases. Denk hierbij aan schema verbeteringen en performance-tuning. Bij nieuwe ontwikkelingen ga jij ook bezig met het bouwen van het databaseschema. Omdat je in een klein team werkt zal je ook de C# routine verder uitbouwen en ontwikkelen. Ook kan je meedraaien in algemene refactory-, ontwikkel- of testwerkzaamheden. Je zal voornamelijk gebruik maken van de volgende technieken: .NET

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

Software Developer

Dit ga je doen Ontwikkelen aan de software dat beschikbaar is op de substations; Ontwikkelen in C++, C, Python en JavaScript. Daarnaast op een Embedded Linux omgeving, opgebouwd met containers en DevOps; Meewerken aan cyber security (OWASP); Uitvoeren/bouwen van geautomatiseerde testen in samenwerking met de Quality Specialist; Vertalen van wensen van de klanten/business naar werkbare/duurzame oplossingen. Hier ga je werken Als Software Ontwikkelaar kom je te werken bij een organisatie gericht op de (internationale) energiemarkt, waar wordt gewerkt voor het verwerven en verwerken van realtime, high quality data. Er wordt gewerkt vanuit het hart van de substations en direct voor

Bekijk vacature »

Junior Front end developer Onderwijssoftware

Functie Als Junior front end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

IoT Software Developer PHP

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een IoT software developer met kennis van PHP. In deze rol wordt je verantwoordelijk voor het vernieuwen van het multimedia platform van een super tof bedrijf in Breda. Je gebruikt PHP als programmeerlaag, en bent in staat om de helicopterview te pakken / projectmatig te werken. Jouw werkzaamheden zien er als volgt uit: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "intern" ontwikkelde multimedia platform. Je neemt de lead in het moderniseren van het platform door het deels opnieuw op te zetten of

Bekijk vacature »

Front end developer binnen de consultancy

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

Bekijk vacature »

Senior Fullstack Developer (GOLang, TypeScript)

Bedrijfsomschrijving Our client is one of the large worldwide accounting firms. Functieomschrijving We are looking for a senior (all-round) developer (Project On Demand / Tax Technology) Uses as much as possible technology in support of the development process: Git, Jenkins, Docker, npm, skaffold, helm, etc. We are looking for a real hands-on developer; ie not a team lead or other managerial-style role; Acts with integrity both internally and externally and takes personal responsibility in this respect; Curious about the developments within their field and driven to make a difference with the team; Able to empathize with colleagues and stakeholders and

Bekijk vacature »

Ontwikkelaar MS Dynamics 365 Projecten

Samengevat: Deze werkgever is de kwaliteitsdienst in de tuinbouwsector. Ben jij een ervaren ontwikkelaar? Heb jij ervaring met Ms Dynamics 365 BC? Vaste baan: Ontwikkelaar Ms Dynamics 365 BC ICT MBO 3.500 - 5.000 Ontwikkelaar Ms Dynamics 365 BC Ons bedrijf bewaakt en bevordert de kwaliteit van producten, processen en ketens in de tuinbouw. Wij kenmerken zich door openheid, ruimte voor initiatief, collegialiteit en zelfontplooiing. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Functie: Voor de vacature als Ontwikkelaar Ms Dynamics 365 BC Roelofarendsveen MBO

Bekijk vacature »

Java Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Junior PHP (Laravel) Developer

Functie omschrijving Wij zijn op zoek naar een PHP Laravel Developer! Sta je aan het begin van je carrière en ben je op zoek naar een leuke baan? Lees dan verder! Voor een softwarebedrijf in omgeving van Schiphol zijn wij op zoek naar een ervaren PHP (Laravel) Developer. Je gaat je bezighouden met het ontwikkelen van innovatieve bedrijfsapplicaties. Samen met het team, bestaande uit designers en developers, maak je mooie oplossingen voor bedrijven in diverse branches. Je zorgt dat de opgeleverde websites perfect werken en de klant meer dan tevreden is. Je kunt rekenen op een afwisselende baan met leuke

Bekijk vacature »

Account Developer

Voor Bol.com zijn wij per direct op zoek naar een Account Developer voor 32-40 uur per week op het kantoor in Utrecht. Wil jij een directe bijdrage leveren door partners van de juiste data-inzichten te voorzien en via campagnes op nieuwe platformkansen en features te wijzen? Ben jij analytisch sterk en kun jij dit vertalen naar plannen en inspirerende gesprekken? Lees dan snel verder! wat bieden wij jou Salaris van €2400 - €2600 obv 40 uur Minimaal 6 maanden Werklocatie is Utrecht Werken bij bol.com wie ben jij Jij bent commercieel gedreven en weet altijd aan de juiste knoppen te

Bekijk vacature »
Rob migaleddu

rob migaleddu

13/03/2017 21:09:59
Quote Anchor link
The return URL is already set in form form as a hidden field

mijn vraag is kan ik de plaats opzoeken waar de hidden field zou moeten zijn


(op mijn site als je betaald met paypal het geld komt wel aan ...maar de mensen krijgen een foutmelding,
dus ik vermoed dat de foutmelding komt via de auto return
foutmelding is : eeror occurred! whoops an error ha occured the payment was stopped if the problem persist please contact us

maar het geld overmaken is wel juist en komt goed aan
of is mijn return url niet goed bij PayPal ( want ik weet niet wat ik daar zou moeten invullen


als iemand idee heeft


mvg rob
 
PHP hulp

PHP hulp

06/11/2024 03:49:36
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 21:53:34
Quote Anchor link
Ik vermoed dat je de return URL op twee manieren al meegeeft, waaronder al in het formulier. Dit kan mogelijk een GET-request zijn.

Heb je relevante code hoe jij die request naar PayPal doet.
 
Rob migaleddu

rob migaleddu

13/03/2017 21:55:43
Quote Anchor link
bedoel je dit???

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
<?php
  * @param object $oMembership The Object Membership Model.
     * @
return void
     */
    public function buttonPayPal($oMembership)
    {

        $oPayPal = new PayPal($this->config->values['module.setting']['sandbox.enabled']);

        $oPayPal->param('business', $this->config->values['module.setting']['paypal.email'])
            ->
param('custom', base64_encode($oMembership->groupId . '|' . $oMembership->price)) // Use base64_encode() to discourage curious people
            ->param('amount', $oMembership->price)
            ->
param('item_number', $oMembership->groupId)
            ->
param('item_name', $this->registry->site_name . ' ' . $oMembership->name)
            ->
param('no_note', 1)
            ->
param('no_shipping', 1)
            ->
param('currency_code', $this->config->values['module.setting']['currency'])
            ->
param('tax_cart', $this->config->values['module.setting']['vat_rate'])
            ->
param('return', Uri::get('payment', 'main', 'process', 'paypal'))
            ->
param('rm', 2) // Auto redirection in POST data
            ->param('notify_url',  Uri::get('payment', 'main', 'notification', 'PayPal'))
            ->
param('cancel_return', Uri::get('payment', 'main', 'pay', '?msg=' . t('The payment was aborted. No charge has been taken from your account.'), false));

        echo
        '<form action="', $oPayPal->getUrl(), '" method="post">',
            $oPayPal->generate(),
            '<button class="btn btn-primary btn-lg" type="submit" name="submit">', static::buyTxt($oMembership->name, 'PayPal'), '</button>
        </form>'
;

        unset($oPayPal, $oMembership);
?>

- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!


Toevoeging op 13/03/2017 21:57:07:

ik weet niet wat ik in de return url moet schrijven bij PayPal
omdat ik de url niet vind



gr
Gewijzigd op 13/03/2017 21:57:00 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 21:58:10
Quote Anchor link
En de generate() functie?
 
Rob migaleddu

rob migaleddu

13/03/2017 21:59:45
Quote Anchor link
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
<?php
/**
 * @title          Stripe
 *
 * @author         Pierre-Henry Soria <[email protected]>
 * @copyright      (c) 2015-2016, Pierre-Henry Soria. All Rights Reserved.
 * @license        GNU General Public License; See PH7.LICENSE.txt and PH7.COPYRIGHT.txt in the root directory.
 * @package        PH7 / App / System / Module / Payment / Inc / Class
 * @version        1.0
 */

namespace PH7;

class Stripe extends Framework\Payment\Gateway\Api\Stripe
{
    use Api; // Import the Api trait

    /**
     * @param string $sPrice Normal price format (e.g., 19.95).
     * @return integer Returns amount in cents (without points) to be validated for Stripe.
     */

    public static function getAmount($sPrice)
    {

        return str_replace('.', '', $sPrice);
?>


Toevoeging op 13/03/2017 22:00:34:

wat bedoel je met generate functie ? of waar vind ik deze
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 22:03:10
Quote Anchor link
Die vind je in de class PayPal.
 
Rob migaleddu

rob migaleddu

13/03/2017 22:05:50
Quote Anchor link
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
<?php
/**
 * @title            PayPal Class
 *
 * @author           Pierre-Henry Soria <[email protected]>
 * @copyright        (c) 2012-2016, Pierre-Henry Soria. All Rights Reserved.
 * @license          GNU General Public License; See PH7.LICENSE.txt and PH7.COPYRIGHT.txt in the root directory.
 * @package          PH7 / Framework / Payment / Gateway / Api
 * @version          1.1
 */


namespace PH7\Framework\Payment\Gateway\Api;
defined('PH7') or exit('Restricted access');

use PH7\Framework\File\Stream, PH7\Framework\Url\Url;

/**
 * PayPal class using PayPal's API
 *
 * @link https://developer.paypal.com/docs/integration/direct/identity/seamless-checkout/
 */

class Paypal extends Provider implements Api
{

    private
    $_sUrl = 'https://www.paypal.com/cgi-bin/webscr',
    $_sRequest = 'cmd=_notify-validate',
    $_sMsg,
    $_bValid = null;


    /**
     * @param boolean $bSandbox Default FALSE
     * @return void
     */

    public function __construct($bSandbox = false)
    {

        if ($bSandbox) $this->_sUrl = 'https://www.sandbox.paypal.com/cgi-bin/webscr';

        $this->param('cmd', '_xclick');
    }


    /**
     * Get Checkout URL.
     *
     * @return string
     * @internal We added an empty parameter for the method only to be compatible with the API interface.
     */

    public function getUrl($sParam = '')
    {

        return $this->_sUrl;
    }


    /**
     * Get message status.
     *
     * @return string
     */

    public function getMsg()
    {

        return $this->_sMsg;
    }


    /**
     * Check if the transaction is valid.
     *
     * @return boolean
     * @internal We added two empty parameters for the method only to be compatible with the API interface.
     */

    public function valid($sParam1 = '', $sParam2 = '')
    {

        // If already validated, just return last result
        if (true === $this->_bValid || false === $this->_bValid) return $this->_bValid;

        $this->setParams();

        $mStatus = $this->getStatus();

        // Valid
        if (0 == strcmp('VERIFIED', $mStatus))
        {

            if ($_POST['payment_status'] == 'Completed')
            {

                $this->_bValid = true;
                $this->_sMsg = t('Transaction valid and completed.');
            }

            else
            {
                $this->_bValid = false;
                $this->_sMsg = t('Transaction valid but not completed.');
            }
        }

        // Invalid
        elseif (0 == strcmp('INVALID', $mStatus))
        {

            $this->_bValid = false;
            $this->_sMsg = t('Invalid transaction.');
        }

        // Bad Connection
        else
        {
            $this->_bValid = false;
            $this->_sMsg = t('Connection to PayPal failed.');
        }


        return $this->_bValid;
    }


    /**
     * Connect to Paypal.
     *
     * @return mixed (boolean | string) Message from the transaction status on success or FALSE on failure.
     */

     protected function getStatus()
     {

         $rCh = curl_init($this->_sUrl);
         curl_setopt($rCh, CURLOPT_POST, 1);
         curl_setopt($rCh, CURLOPT_RETURNTRANSFER, 1);
         curl_setopt($rCh, CURLOPT_POSTFIELDS, $this->_sRequest);
         curl_setopt($rCh, CURLOPT_SSL_VERIFYPEER, 1);
         curl_setopt($rCh, CURLOPT_SSL_VERIFYHOST, 2);
         curl_setopt($rCh, CURLOPT_HTTPHEADER, array('Host: www.paypal.com'));
         $mRes = curl_exec($rCh);
         curl_close($rCh);
         unset($rCh);

         return $mRes;
     }


    /**
     * Set the data parameters POST from PayPal system.
     *
     * @return object this
     */

     protected function setParams()
     {

         foreach ($this->getPostDatas() as $sKey => $sValue)
             $this->setUrlData($sKey, $sValue);

         return $this;
     }


    /**
     * Set data URL e.g., "&key=value"
     *
     * @param string $sName
     * @param string $sValue
     * @return object this
     */

    protected function setUrlData($sName, $sValue)
    {

        $this->_sRequest .= '&' . $sName . '=' . Url::encode($sValue);
        return $this;
    }


    /**
     * Get the Post Data.
     *
     * @return array
     */

    protected function getPostDatas()
    {

        $rRawPost = Stream::getInput();
        $aRawPost = explode('&', $rRawPost);
        $aPostData = array();

        foreach ($aRawPost as $sKeyVal)
        {

            $aKeyVal = explode ('=', $sKeyVal);
            if (count($aKeyVal) == 2)
                $aPostData[$aKeyVal[0]] = Url::encode($aKeyVal[1]);
            unset($aKeyVal);
        }

        unset($aRawPost);

        return $aPostData;
    }

}

//deze

?>
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 22:09:08
Quote Anchor link
Zoek anders even je met editor naar function generate
Gewijzigd op 13/03/2017 22:09:24 door - Ariën -
 
Rob migaleddu

rob migaleddu

13/03/2017 22:14:16
Quote Anchor link
op lijn 383

Toevoeging op 13/03/2017 22:15:18:

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
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
<?php
tinyMCEPopup.requireLangPack();

var
defaultFonts = "" +
    "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" +
    "Times New Roman, Times, serif=Times New Roman, Times, serif;" +
    "Courier New, Courier, mono=Courier New, Courier, mono;" +
    "Times New Roman, Times, serif=Times New Roman, Times, serif;" +
    "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" +
    "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" +
    "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";

var
defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";
var
defaultMeasurement = "+pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%";
var
defaultSpacingMeasurement = "pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;+ems=em;exs=ex;%";
var
defaultIndentMeasurement = "pixels=px;+points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%";
var
defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";
var
defaultTextStyle = "normal;italic;oblique";
var
defaultVariant = "normal;small-caps";
var
defaultLineHeight = "normal";
var
defaultAttachment = "fixed;scroll";
var
defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";
var
defaultPosH = "left;center;right";
var
defaultPosV = "top;center;bottom";
var
defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";
var
defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";
var
defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";
var
defaultBorderWidth = "thin;medium;thick";
var
defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";

function
init() {
    var
ce = document.getElementById('container'), h;

    ce.style.cssText = tinyMCEPopup.getWindowArg('style_text');

    h = getBrowserHTML('background_image_browser','background_image','image','advimage');
    document.getElementById("background_image_browser").innerHTML = h;

    document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');
    document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');
    document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');
    document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');
    document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');
    document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');

    fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);
    fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);
    fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);
    fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);
    fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);
    fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);
    fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);
    fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);

    fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);
    fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);

    fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);

    fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);
    fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);

    fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);
    fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);
    fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);
    fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);
    fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);
    fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);
    fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);
    fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);
    fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);

    fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);
    fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);
    fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);

    fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);
    fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);
    fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);
    fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);

    fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);
    fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);
    fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);
    fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);

    fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);

    fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);
    fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);

    fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);
    fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);

    fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);

    fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);

    fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);
    fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);

    TinyMCE_EditableSelects.init();
    setupFormData();
    showDisabledControls();
}

function
setupFormData() {
    var
ce = document.getElementById('container'), f = document.forms[0], s, b, i;

    // Setup text fields

    selectByValue(f, 'text_font', ce.style.fontFamily, true, true);
    selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);
    selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));
    selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);
    selectByValue(f, 'text_style', ce.style.fontStyle, true, true);
    selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);
    selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));
    selectByValue(f, 'text_case', ce.style.textTransform, true, true);
    selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);
    f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color);
    updateColor('text_color_pick', 'text_color');
    f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');
    f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');
    f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');
    f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');

    // Setup background fields

    f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor);
    updateColor('background_color_pick', 'background_color');
    f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
    selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);
    selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);
    selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);
    selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));
    selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);
    selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));

    // Setup block fields

    selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);
    selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));
    selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);
    selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));
    selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);
    selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);
    f.block_text_indent.value = getNum(ce.style.textIndent);
    selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));
    selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);
    selectByValue(f, 'block_display', ce.style.display, true, true);

    // Setup box fields

    f.box_width.value = getNum(ce.style.width);
    selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));

    f.box_height.value = getNum(ce.style.height);
    selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));
    selectByValue(f, 'box_float', ce.style.cssFloat || ce.style.styleFloat, true, true);

    selectByValue(f, 'box_clear', ce.style.clear, true, true);

    setupBox(f, ce, 'box_padding', 'padding', '');
    setupBox(f, ce, 'box_margin', 'margin', '');

    // Setup border fields

    setupBox(f, ce, 'border_style', 'border', 'Style');
    setupBox(f, ce, 'border_width', 'border', 'Width');
    setupBox(f, ce, 'border_color', 'border', 'Color');

    updateColor('border_color_top_pick', 'border_color_top');
    updateColor('border_color_right_pick', 'border_color_right');
    updateColor('border_color_bottom_pick', 'border_color_bottom');
    updateColor('border_color_left_pick', 'border_color_left');

    f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value);
    f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value);
    f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value);
    f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value);

    // Setup list fields

    selectByValue(f, 'list_type', ce.style.listStyleType, true, true);
    selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);
    f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");

    // Setup box fields

    selectByValue(f, 'positioning_type', ce.style.position, true, true);
    selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);
    selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);
    f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";

    f.positioning_width.value = getNum(ce.style.width);
    selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));

    f.positioning_height.value = getNum(ce.style.height);
    selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));

    setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']);

    s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");
    s = s.replace(/,/g, ' ');

    if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) {
        f.positioning_clip_top.value = getNum(getVal(s, 0));
        selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
        f.positioning_clip_right.value = getNum(getVal(s, 1));
        selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));
        f.positioning_clip_bottom.value = getNum(getVal(s, 2));
        selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));
        f.positioning_clip_left.value = getNum(getVal(s, 3));
        selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));
    }
else {
        f.positioning_clip_top.value = getNum(getVal(s, 0));
        selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
        f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;
    }


//    setupBox(f, ce, '', 'border', 'Color');
}

function
getMeasurement(s) {
    return s.replace(/^([0-9.]+)(.*)$/, "$2");
}

function
getNum(s) {
    if (new RegExp('^(?:[0-9.]+)(?:[a-z%]+)$', 'gi').test(s))
        return s.replace(/[^0-9.]/g, '');

    return s;
}

function
inStr(s, n) {
    return new RegExp(n, 'gi').test(s);
}

function
getVal(s, i) {
    var
a = s.split(' ');

    if (a.length > 1)
        return a[i];

    return "";
}

function
setValue(f, n, v) {
    if (f.elements[n].type == "text")
        f.elements[n].value = v;
    else
        selectByValue(f, n, v, true, true);
}

function
setupBox(f, ce, fp, pr, sf, b) {
    if (typeof(b) == "undefined")
        b = ['Top', 'Right', 'Bottom', 'Left'];

    if (isSame(ce, pr, sf, b)) {
        f.elements[fp + "_same"].checked = true;

        setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
        f.elements[fp + "_top"].disabled = false;

        f.elements[fp + "_right"].value = "";
        f.elements[fp + "_right"].disabled = true;
        f.elements[fp + "_bottom"].value = "";
        f.elements[fp + "_bottom"].disabled = true;
        f.elements[fp + "_left"].value = "";
        f.elements[fp + "_left"].disabled = true;

        if (f.elements[fp + "_top_measurement"]) {
            selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
            f.elements[fp + "_left_measurement"].disabled = true;
            f.elements[fp + "_bottom_measurement"].disabled = true;
            f.elements[fp + "_right_measurement"].disabled = true;
        }
    }
else {
        f.elements[fp + "_same"].checked = false;

        setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
        f.elements[fp + "_top"].disabled = false;

        setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));
        f.elements[fp + "_right"].disabled = false;

        setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));
        f.elements[fp + "_bottom"].disabled = false;

        setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));
        f.elements[fp + "_left"].disabled = false;

        if (f.elements[fp + "_top_measurement"]) {
            selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
            selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));
            selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));
            selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));
            f.elements[fp + "_left_measurement"].disabled = false;
            f.elements[fp + "_bottom_measurement"].disabled = false;
            f.elements[fp + "_right_measurement"].disabled = false;
        }
    }
}

function
isSame(e, pr, sf, b) {
    var
a = [], i, x;

    if (typeof(b) == "undefined")
        b = ['Top', 'Right', 'Bottom', 'Left'];

    if (typeof(sf) == "undefined" || sf == null)
        sf = "";

    a[0] = e.style[pr + b[0] + sf];
    a[1] = e.style[pr + b[1] + sf];
    a[2] = e.style[pr + b[2] + sf];
    a[3] = e.style[pr + b[3] + sf];

    for (i=0; i<a.length; i++) {
        if (a[i] == null)
            return false;

        for (x=0; x<a.length; x++) {
            if (a[x] != a[i])
                return false;
        }
    }


    return true;
};

function
hasEqualValues(a) {
    var
i, x;

    for (i=0; i<a.length; i++) {
        if (a[i] == null)
            return false;

        for (x=0; x<a.length; x++) {
            if (a[x] != a[i])
                return false;
        }
    }


    return true;
}

function
applyAction() {
    var
ce = document.getElementById('container'), ed = tinyMCEPopup.editor;

    generateCSS();

    tinyMCEPopup.restoreSelection();
    ed.dom.setAttrib(ed.selection.getSelectedBlocks(), 'style', tinyMCEPopup.editor.dom.serializeStyle(tinyMCEPopup.editor.dom.parseStyle(ce.style.cssText)));
}

function
updateAction() {
    applyAction();
    tinyMCEPopup.close();
}

function
generateCSS() {
    var
ce = document.getElementById('container'), f = document.forms[0], num = new RegExp('[0-9]+', 'g'), s, t;

    ce.style.cssText = "";

    // Build text styles
    ce.style.fontFamily = f.text_font.value;
    ce.style.fontSize = f.text_size.value + (isNum(f.text_size.value) ? (f.text_size_measurement.value || 'px') : "");
    ce.style.fontStyle = f.text_style.value;
    ce.style.lineHeight = f.text_lineheight.value + (isNum(f.text_lineheight.value) ? f.text_lineheight_measurement.value : "");
    ce.style.textTransform = f.text_case.value;
    ce.style.fontWeight = f.text_weight.value;
    ce.style.fontVariant = f.text_variant.value;
    ce.style.color = f.text_color.value;

    s = "";
    s += f.text_underline.checked ? " underline" : "";
    s += f.text_overline.checked ? " overline" : "";
    s += f.text_linethrough.checked ? " line-through" : "";
    s += f.text_blink.checked ? " blink" : "";
    s = s.length > 0 ? s.substring(1) : s;

    if (f.text_none.checked)
        s = "none";

    ce.style.textDecoration = s;

    // Build background styles

    ce.style.backgroundColor = f.background_color.value;
    ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";
    ce.style.backgroundRepeat = f.background_repeat.value;
    ce.style.backgroundAttachment = f.background_attachment.value;

    if (f.background_hpos.value != "") {
        s = "";
        s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";
        s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");
        ce.style.backgroundPosition = s;
    }


    // Build block styles

    ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");
    ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");
    ce.style.verticalAlign = f.block_vertical_alignment.value;
    ce.style.textAlign = f.block_text_align.value;
    ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");
    ce.style.whiteSpace = f.block_whitespace.value;
    ce.style.display = f.block_display.value;

    // Build box styles

    ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");
    ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");
    ce.style.styleFloat = f.box_float.value;
    ce.style.cssFloat = f.box_float.value;

    ce.style.clear = f.box_clear.value;

    if (!f.box_padding_same.checked) {
        ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
        ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");
        ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");
        ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");
    }
else
        ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");

    if (!f.box_margin_same.checked) {
        ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
        ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");
        ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");
        ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");
    }
else
        ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");

    // Build border styles

    if (!f.border_style_same.checked) {
        ce.style.borderTopStyle = f.border_style_top.value;
        ce.style.borderRightStyle = f.border_style_right.value;
        ce.style.borderBottomStyle = f.border_style_bottom.value;
        ce.style.borderLeftStyle = f.border_style_left.value;
    }
else
        ce.style.borderStyle = f.border_style_top.value;

    if (!f.border_width_same.checked) {
        ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
        ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");
        ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");
        ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");
    }
else
        ce.style.borderWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");

    if (!f.border_color_same.checked) {
        ce.style.borderTopColor = f.border_color_top.value;
        ce.style.borderRightColor = f.border_color_right.value;
        ce.style.borderBottomColor = f.border_color_bottom.value;
        ce.style.borderLeftColor = f.border_color_left.value;
    }
else
        ce.style.borderColor = f.border_color_top.value;

    // Build list styles

    ce.style.listStyleType = f.list_type.value;
    ce.style.listStylePosition = f.list_position.value;
    ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";

    // Build positioning styles

    ce.style.position = f.positioning_type.value;
    ce.style.visibility = f.positioning_visibility.value;

    if (ce.style.width == "")
        ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");

    if (ce.style.height == "")
        ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");

    ce.style.zIndex = f.positioning_zindex.value;
    ce.style.overflow = f.positioning_overflow.value;

    if (!f.positioning_placement_same.checked) {
        ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
        ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");
        ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");
        ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");
    }
else {
        s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
        ce.style.top = s;
        ce.style.right = s;
        ce.style.bottom = s;
        ce.style.left = s;
    }


    if (!f.positioning_clip_same.checked) {
        s = "rect(";
        s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";
        s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";
        s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";
        s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");
        s += ")";

        if (s != "rect(auto auto auto auto)")
            ce.style.clip = s;
    }
else {
        s = "rect(";
        t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";
        s += t + " ";
        s += t + " ";
        s += t + " ";
        s += t + ")";

        if (s != "rect(auto auto auto auto)")
            ce.style.clip = s;
    }


    ce.style.cssText = ce.style.cssText;
}

function
isNum(s) {
    return new RegExp('[0-9]+', 'g').test(s);
}

function
showDisabledControls() {
    var
f = document.forms, i, a;

    for (i=0; i<f.length; i++) {
        for (a=0; a<f[i].elements.length; a++) {
            if (f[i].elements[a].disabled)
                tinyMCEPopup.editor.dom.addClass(f[i].elements[a], "disabled");
            else
                tinyMCEPopup.editor.dom.removeClass(f[i].elements[a], "disabled");
        }
    }
}

function
fillSelect(f, s, param, dval, sep, em) {
    var
i, ar, p, se;

    f = document.forms[f];
    sep = typeof(sep) == "undefined" ? ";" : sep;

    if (em)
        addSelectValue(f, s, "", "");

    ar = tinyMCEPopup.getParam(param, dval).split(sep);
    for (i=0; i<ar.length; i++) {
        se = false;

        if (ar[i].charAt(0) == '+') {
            ar[i] = ar[i].substring(1);
            se = true;
        }


        p = ar[i].split('=');

        if (p.length > 1) {
            addSelectValue(f, s, p[0], p[1]);

            if (se)
                selectByValue(f, s, p[1]);
        }
else {
            addSelectValue(f, s, p[0], p[0]);

            if (se)
                selectByValue(f, s, p[0]);
        }
    }
}

function
toggleSame(ce, pre) {
    var
el = document.forms[0].elements, i;

    if (ce.checked) {
        el[pre + "_top"].disabled = false;
        el[pre + "_right"].disabled = true;
        el[pre + "_bottom"].disabled = true;
        el[pre + "_left"].disabled = true;

        if (el[pre + "_top_measurement"]) {
            el[pre + "_top_measurement"].disabled = false;
            el[pre + "_right_measurement"].disabled = true;
            el[pre + "_bottom_measurement"].disabled = true;
            el[pre + "_left_measurement"].disabled = true;
        }
    }
else {
        el[pre + "_top"].disabled = false;
        el[pre + "_right"].disabled = false;
        el[pre + "_bottom"].disabled = false;
        el[pre + "_left"].disabled = false;

        if (el[pre + "_top_measurement"]) {
            el[pre + "_top_measurement"].disabled = false;
            el[pre + "_right_measurement"].disabled = false;
            el[pre + "_bottom_measurement"].disabled = false;
            el[pre + "_left_measurement"].disabled = false;
        }
    }


    showDisabledControls();
}

function
synch(fr, to) {
    var
f = document.forms[0];

    f.elements[to].value = f.elements[fr].value;

    if (f.elements[fr + "_measurement"])
        selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);
}

?>

tinyMCEPopup.onInit.add(init);
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 22:21:53
Quote Anchor link
Dat is JavaScript. Het gaat hier om PHP.
 
Rob migaleddu

rob migaleddu

13/03/2017 22:23:36
Quote Anchor link
dacht dat deze geintergreerd was

ok bedankt

groeten

Toevoeging op 13/03/2017 22:24:53:

een stomme vraag
hoe krijg ik de url er dan uit ??
niet of is deze verborgen in java


gr
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 22:26:55
Quote Anchor link
Er wordt een functie aangeroepen die 'iets' genereert:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
            $oPayPal->generate(),


Als ik weet dat dit doet, dan komen we mogelijk wat meer te weten.
Vermoedelijk staat hier ook een return URL in, en zou mogelijk deze weg kunnen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
->param('return', Uri::get('payment', 'main', 'process', 'paypal'))

Of anderzijds die uit die generate() functie.

Ik ben niet bekend met de class, maar het valt te proberen.
Gewijzigd op 13/03/2017 22:27:11 door - Ariën -
 
Rob migaleddu

rob migaleddu

13/03/2017 22:32:04
Quote Anchor link
waar zou ik dan moeten zoeken



Toevoeging op 13/03/2017 22:32:31:

bij de class?
(java)
 
- Ariën  -
Beheerder

- Ariën -

13/03/2017 22:56:45
Quote Anchor link
Zoals ik al net zei heeft het met PHP te maken. Welke editor gebruik je, want als je bijv. NetBeans IDE, PHPstorm of Eclipse hebt, dan kan je in een heel project zoeken, en kan je de functie in no-time vinden.
 
Rob migaleddu

rob migaleddu

13/03/2017 22:58:40
Quote Anchor link
ik gebruik dreamweaver (niet dat ik alle functie ervan ken)
dus beter overstappen op vb netbeans

Toevoeging op 13/03/2017 23:45:48:

ik heb phpstorm en de file ingelezen waar naar moet ik nu op zoek,?


gr
 



Overzicht Reageren

 
 

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.