root/modules/branches/2.2/phonebook/page.phonebook.php

Revision 3201, 7.2 kB (checked in by gregmac, 2 years ago)

Added redirect_standard() calls

  • Property svn:mime-type set to text/plain
  • Property svn:eol-style set to native
Line 
1 <?php /* $Id */
2 //Copyright (C) 2006 WeBRainstorm S.r.l. (ask@webrainstorm.it)
3 //
4 //This program is free software; you can redistribute it and/or
5 //modify it under the terms of the GNU General Public License
6 //as published by the Free Software Foundation; either version 2
7 //of the License, or (at your option) any later version.
8 //
9 //This program is distributed in the hope that it will be useful,
10 //but WITHOUT ANY WARRANTY; without even the implied warranty of
11 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 //GNU General Public License for more details.
13
14 isset($_REQUEST['action'])?$action = $_REQUEST['action']:$action='';
15 isset($_REQUEST['number'])?$number = $_REQUEST['number']:$number='';
16 isset($_REQUEST['name'])?$name = $_REQUEST['name']:$name='';
17 isset($_REQUEST['speeddial'])?$speeddial = $_REQUEST['speeddial']:$speeddial='';
18
19 isset($_REQUEST['editnumber'])?$editnumber = $_REQUEST['editnumber']:$editnumber='';
20
21 $dispnum = "phonebook"; //used for switch on config.php
22
23 //if submitting form, update database
24
25 if(isset($_REQUEST['action'])) {
26         switch ($action) {
27                 case "add":
28                         phonebook_add($number, $name, $speeddial);
29                         redirect_standard();
30                 exit;
31                 break;
32                 case "delete":
33                         $numbers = phonebook_list();
34                         phonebook_del($number, $numbers[$number]['speeddial']);
35                         redirect_standard();
36                 break;
37                 case "edit":
38                         $numbers = phonebook_list();
39                         phonebook_del($editnumber, $numbers[$editnumber]['speeddial']);
40                         phonebook_add($number, $name, $speeddial);
41                         redirect_standard();
42                 break;
43                 case "empty":
44                         phonebook_empty();
45                 break;
46                 case "import":
47                         $i = 0; // imported lines
48                         if(is_uploaded_file($_FILES['csv']['tmp_name'])) {
49                                 $lines = file($_FILES['csv']['tmp_name']);
50                                 if (is_array($lines))   {
51                                         $n = count($lines); // total lines
52                                         foreach($lines as $line) {
53                                                 $fields = phonebook_fgetcsvfromline($line, 3);
54                                                 $fields = array_map('trim', $fields);
55                                                 if (is_array($fields) && count($fields) == 3 && is_numeric($fields[2]) &&  ($fields[3] == '' || is_numeric($fields[3]))) {
56                                                         phonebook_del($fields[2], $numbers[$fields[2]]['speeddial']);
57                                                         phonebook_add($fields[2], addslashes($fields[1]), $fields[3]);
58                                                         $i++;
59                                                 }
60                                         }
61                                         redirect_standard();
62                                 }
63                         } else
64                                 $n = 0; // total lines if no file
65     break;
66                 case "export":
67                         header('Content-Type: text/csv');
68                         header('Content-disposition: attachment; filename=phonebook.csv');
69                         $numbers = phonebook_list();
70                         foreach ($numbers as $number => $values)
71                                 printf("\"%s\";%s;%s\n", $values['name'], $number, $values['speeddial']);
72                         die();
73                 break;
74         }
75 }
76
77 $numbers = phonebook_list();
78
79 ?>
80
81 </div>
82
83 <!-- NO rnav in this module -->
84
85
86 <div class="content">
87 <?php
88 if ($action == 'delete')
89         echo '<h3>'._("Phonebook entry").' '.$itemid.' '._("deleted").' !</h3>';
90 elseif ($action == 'import')
91         echo '<h3>'._("Imported").' '.$i.' '._("lines of").' '.$n.' '.'!</h3>';
92 elseif ($action == 'empty')
93         echo '<h3>'._("Phonebook emptied").' !</h3>';
94        
95 if (is_array($numbers)) {
96
97 ?>
98
99 <table cellpadding="5" width="100%">
100
101 <form autocomplete="off" name="delete" action="<?php $_SERVER['PHP_SELF'] ?>" method="post" onsubmit="return confirm('<? echo _("Are you sure you want to empty your phonebook ?")?>');">
102 <?#onsubmit="return edit_onsubmit();"?>
103         <input type="hidden" name="action" value="empty">
104
105         <tr>
106                 <td colspan="5"><h5><?php echo _("Phonebook entries") ?></h5><hr></td>
107         </tr>
108
109         <tr>
110                 <td><b><?=_("Number")?></b></td>
111                 <td><b><?=_("Name")?></b></td>
112                 <td><b><?=_("Speed dial")?></b></td>
113                 <td>&nbsp;</td>
114                 <td>&nbsp;</td>
115         </tr>
116
117 <?php
118 // Why should I specify type=tool ???
119
120         foreach ($numbers as $num => $values)   {
121                 print('<tr>');
122                 printf('<td>%s</td><td>%s</td><td>%s</td>', $num, $values['name'], $values['speeddial']);
123                 printf('<td><a href="%s?type=tool&display=%s&number=%s&action=delete" onclick="return confirm(\'%s\')">%s</a></td>',
124                         $_SERVER['PHP_SELF'], urlencode($dispnum), urlencode($num), _("Are you sure you want to delete this entry ?"), _("Delete"));
125                 printf('<td><a href="#" onClick="theForm.number.value = \'%s\'; theForm.name.value = \'%s\' ; theForm.speeddial.value = \'%s\' ; theForm.editnumber.value = \'%s\' ; theForm.action.value = \'edit\' ; ">%s</a></td>',
126                         $num,  addslashes($values['name']), $values['speeddial'], $num, _("Edit"));
127                 print('</tr>');
128         }
129
130 ?>
131
132         <tr>
133                 <td colspan="3"><br><h6><a href="<?php echo $_SERVER['PHP_SELF'] ?>?type=tool&display=phonebook&action=export&quietmode=1"><?php echo _("Export in CSV") ?></a></h6></td><td colspan="2" align="center"><input name="submit" type="submit" value="<?php echo _("Empty Phonebook")?>"></td>             
134         </tr>
135 </form>
136
137 </table>
138
139 <?
140 }
141 ?>
142
143 <table cellpadding="5" width="100%">
144 <form autocomplete="off" name="edit" action="<?php $_SERVER['PHP_SELF'] ?>" method="post" onsubmit="return edit_onsubmit();">
145         <input type="hidden" name="display" value="<?php echo $dispnum?>">
146         <input type="hidden" name="action" value="add">
147         <input type="hidden" name="editnumber" value="">
148
149
150         <tr><td colspan="4"><h5><?php echo _("Add or replace entry") ?><hr></h5></td></tr>
151
152         <tr>
153                 <td><a href="#" class="info"><?php echo _("Number:")?>
154                 <span><?php echo _("Enter the number (For caller ID lookup to work it should match the caller ID received from network)")?></span></a></td>
155                 <td><input type="text" name="number"></td>
156         </tr>
157
158         <tr>
159                 <td><a href="#" class="info"><?php echo _("Name:")?><span><?php echo _("Enter the name")?></span></a></td>
160                 <td><input type="text" name="name"></td>
161         </tr>
162
163         <tr>
164                 <td><a href="#" class="info"><?php echo _("Speed dial code:")?><span><?php echo _("Enter a speed dial code<br/>Speeddial module is required to use speeddial codes")?></span></a></td>
165                 <td><input type="text" name="speeddial"></td>
166         </tr>
167
168         <tr>
169                 <td colspan="2"><br><h6><input name="submit" type="submit" value="<?php echo _("Submit Changes")?>"></h6></td>         
170         </tr>
171 </form>
172 </table>
173
174 <table cellpadding="5" width="100%">
175 <form autocomplete="off" enctype="multipart/form-data" name="import" action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
176         <input type="hidden" name="MAX_FILE_SIZE" value="30000">
177         <input type="hidden" name="display" value="<?php echo $dispnum?>">
178         <input type="hidden" name="action" value="import">
179
180
181         <tr><td colspan="4"><h5><?php echo _("Import from CSV") ?><hr></h5></td></tr>
182
183         <tr>
184                 <td><a href="#" class="info"><?php echo _("File:")?>
185                 <span><?php echo _("Import a CSV File formatted as follows:<br/>\"Name\";Number;Speeddial<br /> Names should be enclosed by '\"' and fields separated by ';' <br /><br /> Example:<br/>\"John Doe\";12345678;123")?></span></a></td>
186                 <td><input type="file" name="csv"></td>
187         </tr>
188
189         <tr>
190                 <td colspan="2"><br><h6><input name="submit" type="submit" value="<?php echo _("Upload")?>"></h6></td>         
191         </tr>
192 </form>
193 </table>
194 <script language="javascript">
195 <!--
196
197 var theForm = document.edit;
198 theForm.number.focus();
199
200 function edit_onsubmit() {
201         defaultEmptyOK = false;
202         if (!isInteger(theForm.number.value))
203                 return warnInvalid(theForm.number, "Please enter a valid Number");
204         if (!isAlphanumeric(theForm.name.value))
205                 return warnInvalid(theForm.name, "Please enter a valid Name");
206        
207         defaultEmptyOK = true;
208         if (!isInteger(theForm.speeddial.value))
209                 return warnInvalid(theForm.speeddial, "Please enter a valid Speeddial code or leave it empty");
210                
211         return true;
212 }
213
214
215 -->
216 </script>
Note: See TracBrowser for help on using the browser.
Donate



Support
Download
Develop
Forums
News
Documentation
Paid Support
About

Paid Ads