~ubuntu-branches/ubuntu/maverick/ilohamail/maverick

« back to all changes in this revision

Viewing changes to IlohaMail/source/edit_folders.php

  • Committer: Bazaar Package Importer
  • Author(s): Joerg Jaspert
  • Date: 2004-02-04 13:44:37 UTC
  • Revision ID: james.westby@ubuntu.com-20040204134437-kz8j3ui2qa7oq8z2
Tags: upstream-0.8.12
ImportĀ upstreamĀ versionĀ 0.8.12

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/////////////////////////////////////////////////////////
 
3
//      
 
4
//      source/edit_folders.php
 
5
//
 
6
//      (C)Copyright 2000-2002 Ryo Chijiiwa <Ryo@IlohaMail.org>
 
7
//
 
8
//              This file is part of IlohaMail.
 
9
//              IlohaMail is free software released under the GPL 
 
10
//              license.  See enclosed file COPYING for details,
 
11
//              or see http://www.fsf.org/copyleft/gpl.html
 
12
//
 
13
/////////////////////////////////////////////////////////
 
14
 
 
15
/********************************************************
 
16
 
 
17
        AUTHOR: Ryo Chijiiwa <ryo@ilohamail.org>
 
18
        FILE:  source/edit_folders.php
 
19
        PURPOSE:
 
20
                Provide functionality to create/delete/rename folders
 
21
        PRE-CONDITIONS:
 
22
                $user - Session ID
 
23
        TODO:
 
24
                Modify to detect and allow for hierarchy delimiters other than '/'.
 
25
                
 
26
********************************************************/
 
27
 
 
28
function decodePath($path, $delimiter){
 
29
        $parts=explode($delimiter, $path);
 
30
        while (list($key, $part)=each($parts)){
 
31
                $parts[$key]=urldecode($part);
 
32
        }
 
33
        $path=implode($delimiter, $parts);
 
34
 
 
35
        return $path;
 
36
}
 
37
 
 
38
function encodePath($path, $delimiter){
 
39
                $parts=explode($delimiter, $path);
 
40
                while (list($key, $part)=each($parts)){
 
41
                        $parts[$key]=urlencode($part);
 
42
            //echo "Encoded $part as ".$parts[$key]." <br>\n";
 
43
                }
 
44
                $path=implode($delimiter, $parts);
 
45
                
 
46
                return $path;
 
47
}
 
48
 
 
49
function prependRootdir($rootdir, $folder, $delim){
 
50
        if (empty($rootdir)) return $folder;
 
51
        
 
52
        $pos = strpos($folder, $rootdir);
 
53
        if (($pos!==false) && ($pos==0)) return $folder;
 
54
        else return $rootdir.($rootdir[strlen($rootdir)-1]!=$delim?$delim:"").$folder;
 
55
}
 
56
 
 
57
include("../include/super2global.inc");
 
58
include("../include/header_main.inc");
 
59
include("../include/icl.inc");
 
60
include("../include/cache.inc");
 
61
include("../lang/".$my_prefs["lang"]."defaultFolders.inc");
 
62
include("../lang/".$my_prefs["lang"]."edit_folders.inc");
 
63
 
 
64
        $conn = iil_Connect($host, $loginID, $password, $AUTH_MODE);
 
65
        if (!$conn)
 
66
                echo "failed";
 
67
        else{
 
68
                echo "\n<table width=\"100%\" cellpadding=2 cellspacing=0><tr bgcolor=\"".$my_colors["main_head_bg"]."\">\n";
 
69
                echo "<td align=left valign=bottom>\n";
 
70
                echo "<span class=\"bigTitle\">".$efStrings[0]."</span>\n";
 
71
                echo "</td></tr>\n";
 
72
 
 
73
                $hDelimiter = iil_C_GetHierarchyDelimiter($conn);
 
74
                flush();
 
75
                
 
76
                $modified=false;
 
77
                $error="";
 
78
                
 
79
        /********* Handle New Folder *******/
 
80
        if (isset($newfolder)){
 
81
                // prepend folder path with rootdir as necessary
 
82
                $newfolder = prependRootdir($my_prefs["rootdir"], $newfolder, $hDelimiter);
 
83
                                
 
84
                // create new folder
 
85
                $unencNF=$newfolder;
 
86
                //$newfolder=encodePath($newfolder, $hDelimiter);
 
87
                if (iil_C_CreateFolder($conn, $newfolder)){
 
88
                        iil_C_Subscribe($conn, $newfolder);
 
89
                        $error=$errors[0].$unencNF;
 
90
                        $modified=true;
 
91
                }else{
 
92
                        $error=$errors[1].$unencNF."<br>".$conn->error;
 
93
                }
 
94
        }
 
95
        /************************/
 
96
        
 
97
        /********* Handle Delete Folder ********/
 
98
        if (isset($delmenu)){
 
99
                //make sure it's unsubscribed
 
100
                iil_C_UnSubscribe($conn, $delmenu);
 
101
                
 
102
                //delete...
 
103
                $unencDF=decodePath($delmenu, $hDelimiter);
 
104
                if ((empty($defaults[$unencDF])) && (iil_C_DeleteFolder($conn, decodePath($delmenu, $hDelimiter)))){
 
105
                        $error=$errors[2].$unencDF;
 
106
                        $modified=true;
 
107
                }else{
 
108
                        $error=$errors[3].$unencDF;
 
109
                }
 
110
        }
 
111
        /***************************/
 
112
        
 
113
        /********* Handle Rename Folder ********/
 
114
        if ((isset($newname)) &&(isset($oldname))){
 
115
                //make sure it's unsubscribed
 
116
                iil_C_UnSubscribe($conn, $oldname);
 
117
 
 
118
 
 
119
                //prepend with rootdir as necessary
 
120
                $newname = prependRootdir($my_prefs["rootdir"], $newname, $hDelimiter);
 
121
 
 
122
                //rename
 
123
                $unencNF=$newname;
 
124
                $str=decodePath($oldname, $hDelimiter)." --> $unencNF";
 
125
                if ((empty($defaults[$unencNF])) && (iil_C_RenameFolder($conn, decodePath($oldname, $hDelimiter), $newname))) {
 
126
                $error=$errors[4].$str;
 
127
                        $modified=true;
 
128
        } else {
 
129
                $error=$errors[5].$str;
 
130
        }
 
131
        }
 
132
        /***************************/
 
133
        
 
134
        /********* Handle subscribe ********/
 
135
        if ((isset($subscribe)) && (is_array($sub_folders))){
 
136
                while (list($k,$folder)=each($sub_folders)){
 
137
                        iil_C_Subscribe($conn, $folder);
 
138
                }
 
139
                $modified = true;
 
140
        }
 
141
        /***************************/
 
142
        
 
143
        /********* Handle unsubscribe ********/
 
144
        if ((isset($unsubscribe)) && (is_array($unsub_folders))){
 
145
                while (list($k,$folder)=each($unsub_folders)){
 
146
                        if (empty($defaults[$folder])) iil_C_UnSubscribe($conn, $folder);
 
147
                }
 
148
                $modified = true;
 
149
        }
 
150
        /***************************/
 
151
        
 
152
        echo "<tr bgcolor=\"".$my_colors["main_bg"]."\"><td>";
 
153
        echo "<p>\n";
 
154
 
 
155
    //check if folder support is available
 
156
        if (!$ICL_CAPABILITY["folders"])  $error .= $errors[6];
 
157
        
 
158
        if ($modified){
 
159
                echo "<font color=green>".$error."</font>";
 
160
                echo "<script> parent.list1.location=\"folders.php?user=$user\"; </script>\n";
 
161
                cache_clear($loginID, $host, "folders");
 
162
        }else{
 
163
                echo "<font color=red>".$error."</font>";
 
164
                if ($port==110){
 
165
                        iil_Close($conn);
 
166
                        echo "</body></html>";
 
167
                        exit;
 
168
                }
 
169
        }
 
170
 
 
171
        //get all folders
 
172
        $mailboxes = iil_C_ListMailboxes($conn, $my_prefs["rootdir"], "*");
 
173
        if ($mailboxes) sort($mailboxes);
 
174
        
 
175
        //get subscribed folders...
 
176
        $subscribed = iil_C_ListSubscribed($conn, $my_prefs["rootdir"], "*");
 
177
        if (($subscribed) && (count($subscribed)>0)){
 
178
                sort($subscribed);
 
179
                $unsubscribed = array_diff($mailboxes, $subscribed);
 
180
        }else{
 
181
                echo "Error fetching subscribed folders: ".$conn->error."<br>";
 
182
        }
 
183
        
 
184
 
 
185
        /********* Show Create ********/
 
186
        echo "<form method=\"POST\">\n";
 
187
        echo "<b>".$efStrings[1]."</b><br>\n";
 
188
        echo "<input type=\"hidden\" name=\"user\" value=\"".$user."\">\n";
 
189
        echo $efStrings[2];
 
190
        echo "\n<input type=text name=newfolder size=20>\n";
 
191
        echo "<input type=submit value=\"".$efStrings[3]."\">";
 
192
        echo "</form>\n";
 
193
 
 
194
        /********* Show Delete Folder *******/
 
195
        echo "<form method=\"POST\">\n";
 
196
        echo "<b>$efStrings[4]</b>\n<br>";
 
197
        echo "<input type=\"hidden\" name=\"user\" value=\"".$user."\">\n";
 
198
        echo "<select name=delmenu>\n";
 
199
                FolderOptions2($mailboxes, "");
 
200
        echo "</select>\n";
 
201
        echo "<input type=submit name=delete value=\"".$efStrings[5]."\">\n</form>\n";
 
202
        /************************/
 
203
 
 
204
        /********* Show Rename Folder *******/
 
205
        echo "<form method=\"POST\">\n";
 
206
        echo "<b>$efStrings[6]</b><br>\n";
 
207
        echo "<input type=\"hidden\" name=\"user\" value=\"".$user."\">\n";
 
208
        echo "<select name=\"oldname\">\n";
 
209
                FolderOptions2($mailboxes, "");
 
210
        echo "</select>\n";
 
211
        echo "--><input type=\"text\" name=\"newname\">\n";
 
212
        echo "<input type=submit name=rename value=\"".$efStrings[7]."\">\n";
 
213
        echo "</form>\n";
 
214
        /************************/
 
215
        
 
216
        /********* Show Subscribe Folder *******/
 
217
        echo "<form method=\"POST\">\n";
 
218
        echo "<table><tr>\n";
 
219
        echo "<td valign=\"top\">\n";
 
220
        echo "<b>$efStrings[10]</b><br>\n";
 
221
        echo "<input type=\"hidden\" name=\"user\" value=\"".$user."\">\n";
 
222
        echo "<select name=\"sub_folders[]\" MULTIPLE sizse=10>\n";
 
223
                FolderOptions2($unsubscribed, "");
 
224
        echo "</select>\n";
 
225
        echo "<br><input type=submit name=subscribe value=\"".$efStrings[9]."\">\n";
 
226
        echo "</td>\n";
 
227
 
 
228
        echo "<td valign=\"top\">\n";
 
229
        echo "<b>$efStrings[8]</b><br>\n";
 
230
        echo "<input type=\"hidden\" name=\"user\" value=\"".$user."\">\n";
 
231
        echo "<select name=\"unsub_folders[]\" MULTIPLE sizse=10>\n";
 
232
                FolderOptions2($subscribed, "");
 
233
        echo "</select>\n";
 
234
        echo "<br><input type=submit name=unsubscribe value=\"".$efStrings[11]."\">\n";
 
235
        echo "</td>\n";
 
236
 
 
237
        
 
238
        echo "</tr></table>\n";
 
239
        echo "</form>\n";
 
240
        
 
241
        /************************/
 
242
 
 
243
        echo "<br>&nbsp;<br>&nbsp;\n";
 
244
        echo "</td></tr></table>";
 
245
 
 
246
        //echo "successful: $mbox ";
 
247
        iil_Close($conn);
 
248
 
 
249
        }
 
250
?>
 
251
</BODY></HTML>
 
 
b'\\ No newline at end of file'