| | 202 | |
|---|
| | 203 | function vmblast_check_default($extension) { |
|---|
| | 204 | $sql = "SELECT ext FROM vmblast_groups WHERE ext = '$extension' AND grpnum = (SELECT value FROM admin WHERE variable = 'default_vmblast_grp' limit 1)"; |
|---|
| | 205 | $results = sql($sql,"getAll"); |
|---|
| | 206 | return (count($results) ? 1 : 0); |
|---|
| | 207 | } |
|---|
| | 208 | |
|---|
| | 209 | function vmblast_set_default($extension, $value) { |
|---|
| | 210 | $default_group = sql("SELECT value FROM `admin` WHERE variable = 'default_vmblast_grp' limit 1", "getOne"); |
|---|
| | 211 | if ($default_group == '') { |
|---|
| | 212 | return false; |
|---|
| | 213 | } |
|---|
| | 214 | sql("DELETE FROM vmblast_groups WHERE ext = '$extension' AND grpnum = '$default_group'"); |
|---|
| | 215 | if ($value == 1) { |
|---|
| | 216 | sql("INSERT INTO vmblast_groups (grpnum, ext) VALUES ('$default_group', '$extension')"); |
|---|
| | 217 | } |
|---|
| | 218 | } |
|---|
| | 219 | |
|---|
| | 220 | function vmblast_configpageinit($pagename) { |
|---|
| | 221 | global $currentcomponent; |
|---|
| | 222 | |
|---|
| | 223 | $action = isset($_REQUEST['action'])?$_REQUEST['action']:null; |
|---|
| | 224 | $extdisplay = isset($_REQUEST['extdisplay'])?$_REQUEST['extdisplay']:null; |
|---|
| | 225 | $extension = isset($_REQUEST['extension'])?$_REQUEST['extension']:null; |
|---|
| | 226 | $tech_hardware = isset($_REQUEST['tech_hardware'])?$_REQUEST['tech_hardware']:null; |
|---|
| | 227 | |
|---|
| | 228 | // We only want to hook 'users' or 'extensions' pages. |
|---|
| | 229 | if ($pagename != 'users' && $pagename != 'extensions') { |
|---|
| | 230 | return true; |
|---|
| | 231 | } |
|---|
| | 232 | |
|---|
| | 233 | //if ($tech_hardware != null && ($pagename == 'extensions' || $pagename == 'users')) { |
|---|
| | 234 | if ($tech_hardware != null || $pagename == 'users') { |
|---|
| | 235 | vmblast_applyhooks(); |
|---|
| | 236 | $currentcomponent->addprocessfunc('vmblast_configprocess', 8); |
|---|
| | 237 | } elseif ($action=="add") { |
|---|
| | 238 | // We don't need to display anything on an 'add', but we do need to handle returned data. |
|---|
| | 239 | $currentcomponent->addprocessfunc('vmblast_configprocess', 8); |
|---|
| | 240 | } elseif ($extdisplay != '') { |
|---|
| | 241 | // We're now viewing an extension, so we need to display _and_ process. |
|---|
| | 242 | vmblast_applyhooks(); |
|---|
| | 243 | $currentcomponent->addprocessfunc('vmblast_configprocess', 8); |
|---|
| | 244 | } |
|---|
| | 245 | } |
|---|
| | 246 | |
|---|
| | 247 | function vmblast_applyhooks() { |
|---|
| | 248 | global $currentcomponent; |
|---|
| | 249 | |
|---|
| | 250 | // Add the 'process' function - this gets called when the page is loaded, to hook into |
|---|
| | 251 | // displaying stuff on the page. |
|---|
| | 252 | $currentcomponent->addoptlistitem('vmblast_group', '0', _("Exclude")); |
|---|
| | 253 | $currentcomponent->addoptlistitem('vmblast_group', '1', _("Include")); |
|---|
| | 254 | $currentcomponent->setoptlistopts('vmblast_group', 'sort', false); |
|---|
| | 255 | |
|---|
| | 256 | $currentcomponent->addguifunc('vmblast_configpageload'); |
|---|
| | 257 | } |
|---|
| | 258 | |
|---|
| | 259 | // This is called before the page is actually displayed, so we can use addguielem(). |
|---|
| | 260 | function vmblast_configpageload() { |
|---|
| | 261 | global $currentcomponent; |
|---|
| | 262 | |
|---|
| | 263 | // Init vars from $_REQUEST[] |
|---|
| | 264 | $action = isset($_REQUEST['action']) ? $_REQUEST['action']:null; |
|---|
| | 265 | $extdisplay = isset($_REQUEST['extdisplay']) ? $_REQUEST['extdisplay']:null; |
|---|
| | 266 | |
|---|
| | 267 | // Don't display this stuff it it's on a 'This xtn has been deleted' page. |
|---|
| | 268 | if ($action != 'del') { |
|---|
| | 269 | |
|---|
| | 270 | $default_group = sql("SELECT value FROM `admin` WHERE variable = 'default_vmblast_grp'", "getOne"); |
|---|
| | 271 | $section = _("Default Group Inclusion"); |
|---|
| | 272 | if ($default_group != "") { |
|---|
| | 273 | $in_default_vmblast_grp = vmblast_check_default($extdisplay); |
|---|
| | 274 | $currentcomponent->addguielem($section, new gui_selectbox('in_default_vmblast_grp', $currentcomponent->getoptlist('vmblast_group'), $in_default_vmblast_grp, _('Default VMblast Group'), _('You can include or exclude this extension/device from being part of the default voicemail blast group when creating or editing.'), false)); |
|---|
| | 275 | } |
|---|
| | 276 | } |
|---|
| | 277 | } |
|---|
| | 278 | |
|---|
| | 279 | function vmblast_configprocess() { |
|---|
| | 280 | global $db; |
|---|
| | 281 | |
|---|
| | 282 | //create vars from the request |
|---|
| | 283 | // |
|---|
| | 284 | $action = isset($_REQUEST['action'])?$_REQUEST['action']:null; |
|---|
| | 285 | $ext = isset($_REQUEST['extdisplay'])?$_REQUEST['extdisplay']:null; |
|---|
| | 286 | $extn = isset($_REQUEST['extension'])?$_REQUEST['extension']:null; |
|---|
| | 287 | $in_default_vmblast_grp = isset($_REQUEST['in_default_vmblast_grp'])?$_REQUEST['in_default_vmblast_grp']:false; |
|---|
| | 288 | |
|---|
| | 289 | $extdisplay = ($ext==='') ? $extn : $ext; |
|---|
| | 290 | |
|---|
| | 291 | if ($action == "add" || $action == "edit") { |
|---|
| | 292 | if (!isset($GLOBALS['abort']) || $GLOBALS['abort'] !== true) { |
|---|
| | 293 | if ($in_default_vmblast_grp !== false) { |
|---|
| | 294 | vmblast_set_default($extdisplay, $in_default_vmblast_grp); |
|---|
| | 295 | } |
|---|
| | 296 | } |
|---|
| | 297 | } elseif ($action == "del") { |
|---|
| | 298 | $sql = "DELETE FROM vmblast_groups WHERE ext = '$extdisplay'"; |
|---|
| | 299 | sql($sql); |
|---|
| | 300 | } |
|---|
| | 301 | } |
|---|