~budgester/irm/trunk

« back to all changes in this revision

Viewing changes to FCKeditor/editor/filemanager/upload/lasso/upload.lasso

  • Committer: budgester at budgester
  • Date: 2008-03-05 23:14:13 UTC
  • Revision ID: budgester@budgester.com-20080305231413-k5vqfuckfo09ju42
Initial import of IRM codebase

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
[//lasso
 
2
/*
 
3
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
 
4
 * Copyright (C) 2003-2007 Frederico Caldeira Knabben
 
5
 *
 
6
 * == BEGIN LICENSE ==
 
7
 *
 
8
 * Licensed under the terms of any of the following licenses at your
 
9
 * choice:
 
10
 *
 
11
 *  - GNU General Public License Version 2 or later (the "GPL")
 
12
 *    http://www.gnu.org/licenses/gpl.html
 
13
 *
 
14
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 
15
 *    http://www.gnu.org/licenses/lgpl.html
 
16
 *
 
17
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 
18
 *    http://www.mozilla.org/MPL/MPL-1.1.html
 
19
 *
 
20
 * == END LICENSE ==
 
21
 *
 
22
 * This is the "File Uploader" for Lasso.
 
23
 */
 
24
 
 
25
    /*.....................................................................
 
26
    Include global configuration. See config.lasso for details.
 
27
    */
 
28
        include('config.lasso');
 
29
 
 
30
 
 
31
    /*.....................................................................
 
32
    Convert query string parameters to variables and initialize output.
 
33
    */
 
34
        var(
 
35
                'Type'                  =       action_param('Type'),
 
36
                'CurrentFolder' =       action_param('CurrentFolder'),
 
37
                'ServerPath'    =       action_param('ServerPath'),
 
38
                'NewFile'               =       null,
 
39
                'NewFileName'   =       string,
 
40
                'OrigFilePath'  =       string,
 
41
                'NewFilePath'   =       string,
 
42
                'errorNumber'   =       0,
 
43
                'customMsg'             =       ''
 
44
        );
 
45
 
 
46
        $Type == '' ? $Type = 'File';
 
47
 
 
48
 
 
49
    /*.....................................................................
 
50
    Calculate the path to the current folder.
 
51
    */
 
52
        $ServerPath == '' ? $ServerPath = $config->find('UserFilesPath');
 
53
 
 
54
        var('currentFolderURL' = $ServerPath
 
55
                + $config->find('Subdirectories')->find(action_param('Type'))
 
56
                + action_param('CurrentFolder')
 
57
        );
 
58
 
 
59
 
 
60
        /*.....................................................................
 
61
        Custom tag sets the HTML response.
 
62
        */
 
63
 
 
64
        define_tag(
 
65
                'sendresults',
 
66
                -namespace='fck_',
 
67
                -priority='replace',
 
68
                -required='errorNumber',
 
69
                -type='integer',
 
70
                -optional='fileUrl',
 
71
                -type='string',
 
72
                -optional='fileName',
 
73
                -type='string',
 
74
                -optional='customMsg',
 
75
                -type='string',
 
76
                -description='Sets the HTML response for the FCKEditor Quick Upload feature.'
 
77
        );
 
78
                $__html_reply__ = '\
 
79
<script type="text/javascript">
 
80
        window.parent.OnUploadCompleted(' + #errorNumber + ',"'
 
81
                + string_replace(#fileUrl, -find='"', -replace='\\"') + '","'
 
82
                + string_replace(#fileName, -find='"', -replace='\\"') + '","'
 
83
                + string_replace(#customMsg, -find='"', -replace='\\"') + '");
 
84
</script>
 
85
                ';
 
86
        /define_tag;
 
87
 
 
88
 
 
89
        if($config->find('Enabled'));
 
90
                /*.................................................................
 
91
                Process an uploaded file.
 
92
                */
 
93
                inline($connection);
 
94
                        /*.............................................................
 
95
                        Was a file actually uploaded?
 
96
                        */
 
97
                        file_uploads->size ? $NewFile = file_uploads->get(1) | $errorNumber = 202;
 
98
 
 
99
                        if($errorNumber == 0);
 
100
                                /*.........................................................
 
101
                                Split the file's extension from the filename in order
 
102
                                to follow the API's naming convention for duplicate
 
103
                                files. (Test.txt, Test(1).txt, Test(2).txt, etc.)
 
104
                                */
 
105
                                $NewFileName = $NewFile->find('OrigName');
 
106
                                $OrigFilePath = $currentFolderURL + $NewFileName;
 
107
                                $NewFilePath = $OrigFilePath;
 
108
                                local('fileExtension') = '.' + $NewFile->find('OrigExtension');
 
109
                                local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
 
110
 
 
111
 
 
112
                                /*.........................................................
 
113
                                Make sure the file extension is allowed.
 
114
                                */
 
115
 
 
116
                                if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
 
117
                                        $errorNumber = 202;
 
118
                                else;
 
119
                                        /*.....................................................
 
120
                                        Rename the target path until it is unique.
 
121
                                        */
 
122
                                        while(file_exists($NewFilePath));
 
123
                                                $NewFileName = #shortFileName + '(' + loop_count + ')' + #fileExtension;
 
124
                                                $NewFilePath = $currentFolderURL + $NewFileName;
 
125
                                        /while;
 
126
 
 
127
 
 
128
                                        /*.....................................................
 
129
                                        Copy the uploaded file to its final location.
 
130
                                        */
 
131
                                        file_copy($NewFile->find('path'), $NewFilePath);
 
132
 
 
133
 
 
134
                                        /*.....................................................
 
135
                                        Set the error code for the response.
 
136
                                        */
 
137
                                        select(file_currenterror( -errorcode));
 
138
                                                case(0);
 
139
                                                        $OrigFilePath != $NewFilePath ? $errorNumber = 201;
 
140
                                                case;
 
141
                                                        $errorNumber = 202;
 
142
                                        /select;
 
143
                                /if;
 
144
                        /if;
 
145
                /inline;
 
146
        else;
 
147
                $errorNumber = 1;
 
148
                $customMsg = 'This file uploader is disabled. Please check the "editor/filemanager/upload/lasso/config.lasso" file.';
 
149
        /if;
 
150
 
 
151
        fck_sendresults(
 
152
                -errorNumber=$errorNumber,
 
153
                -fileUrl=$NewFilePath,
 
154
                -fileName=$NewFileName,
 
155
                -customMsg=$customMsg
 
156
        );
 
157
]