Changeset 5372

Show
Ignore:
Timestamp:
12/08/07 04:24:01 (5 years ago)
Author:
p_lindheimer
Message:

added vmblast_groups table and removed the grplist field from vmblast. This wil facilitate deleting members from groups when extensions are deleted as well as adding a feature to have auto add to a group at extension creation time hooked into extension/user screen

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • contributed_modules/modules/vmblast/functions.inc.php

    r5368 r5372  
    4141  } 
    4242} 
    43  
    4443 
    4544/*  Generates dialplan for vmblast We call this with retrieve_conf 
     
    137136} 
    138137 
     138function vmblast_add($grpnum,$grplist,$description,$audio_label= -1, $password = '') { 
     139  global $db; 
    139140 
    140 function vmblast_add($grpnum,$grplist,$description,$audio_label= -1, $password = '') { 
    141   $sql = "INSERT INTO vmblast (grpnum, grplist, description, audio_label, password) VALUES (".$grpnum.", '".str_replace("'", "''", $grplist)."', '".str_replace("'", "''", $description)."', '$audio_label', '".str_replace("'","''", $password)."')"; 
     141  $xtns = explode("&",$grplist); 
     142  foreach ($xtns as $key => $value) { 
     143    $xtns[$key] = addslashes(trim($value)); 
     144  } 
     145    // Sanity check input. 
     146 
     147  $compiled = $db->prepare("INSERT INTO vmblast_groups (grpnum, ext) values ('$grpnum',?)"); 
     148  $result   = $db->executeMultiple($compiled,$xtns); 
     149  if(DB::IsError($result)) { 
     150    die_freepbx($result->getDebugInfo()."<br><br>".'error adding to vmblast_groups table');  
     151  } 
     152  $sql = "INSERT INTO vmblast (grpnum, description, audio_label, password) VALUES (".$grpnum.", '".str_replace("'", "''", $description)."', '$audio_label', '".str_replace("'","''", $password)."')"; 
    142153  $results = sql($sql); 
    143154} 
    144155 
    145156function vmblast_del($grpnum) { 
    146   $results = sql("DELETE FROM vmblast WHERE grpnum = $grpnum","query"); 
     157  $results = sql("DELETE FROM vmblast WHERE grpnum = '$grpnum'","query"); 
     158  $results = sql("DELETE FROM vmblast_groups WHERE grpnum = '$grpnum'","query"); 
    147159} 
    148160 
     
    161173 
    162174function vmblast_get($grpnum) { 
    163   $results = sql("SELECT grpnum, grplist, description, audio_label, password FROM vmblast WHERE grpnum = $grpnum","getRow",DB_FETCHMODE_ASSOC); 
     175  global $db; 
     176 
     177  $results = sql("SELECT grpnum, description, audio_label, password FROM vmblast WHERE grpnum = '$grpnum'","getRow",DB_FETCHMODE_ASSOC); 
     178  $grplist = $db->getCol("SELECT ext FROM vmblast_groups WHERE grpnum = '$grpnum'"); 
     179  if(DB::IsError($grplist)) { 
     180    die_freepbx($grplist->getDebugInfo()."<br><br>".'selecting from vmblast_groups table');  
     181  } 
     182  $results['grplist'] = implode('&',$grplist); 
     183   
    164184  return $results; 
    165185} 
  • contributed_modules/modules/vmblast/install.php

    r5366 r5372  
    11<?php 
    22 
     3// TODO: 
     4// TODO: MOVE TABLE CREATIONS INTO HERE 
     5// TODO: 
     6 
    37global $db; 
    4  
    5 $results = $db->query("ALTER TABLE `vmblast` CHANGE `grplist` `grplist` VARCHAR( 255 ) NOT NULL"); 
    6 if(DB::IsError($results)) { 
    7   echo $results->getMessage(); 
    8   return false; 
    9 } 
    108 
    119echo "Upgrading vmblast to add audio_label field.."; 
     
    3735} 
    3836 
    39 echo "Converting grplist from varchar 255 to blob to handle large groups.."; 
    40 $sql = "ALTER TABLE `vmblast` CHANGE `grplist` `grplist` BLOB NOT NULL"; 
    41 $results = $db->query($sql); 
    42 if(DB::IsError($results)) { 
    43   echo "ERROR: failed to convert field<br />"; 
     37// Drop grplist field but first pull it's data and put in new table 
     38// 
     39echo "Dropping grplist.."; 
     40$sql = 'SELECT grpnum, grplist FROM vmblast'; 
     41$confs = $db->getAll($sql, DB_FETCHMODE_ASSOC); 
     42if (!DB::IsError($confs)) {  
     43  $list = array(); 
     44  foreach ($confs as $group) { 
     45    $grplist = explode('&',$group['grplist']); 
     46    foreach ($grplist as $exten) { 
     47      $list[] = array($group['grpnum'],addslashes(trim($exten))); 
     48    } 
     49  } 
     50  $compiled = $db->prepare("INSERT INTO vmblast_groups (grpnum, ext) values (?,?)"); 
     51  $result   = $db->executeMultiple($compiled, $list); 
     52  if(DB::IsError($result)) { 
     53    echo "error populating vmblast_groups table<br />";  
     54    return false; 
     55  } else { 
     56    echo "populated new table<br />Dropping old grplist field"; 
     57    $sql = "ALTER TABLE `vmblast` DROP `grplist`"; 
     58    $results = $db->query($sql); 
     59    if(DB::IsError($results)) { 
     60      echo "failed to drop field<br />"; 
     61    } else { 
     62      echo "OK<br />"; 
     63    } 
     64  } 
    4465} else { 
    45   echo "OK<br />"; 
     66  echo "Not Needed<br />"; 
    4667} 
    4768 
  • contributed_modules/modules/vmblast/install.sql

    r5366 r5372  
    22(  
    33  `grpnum` INT( 11 ) NOT NULL ,  
    4   `grplist` BLOB NOT NULL ,  
    54  `description` VARCHAR( 35 ) NOT NULL ,  
    65  `audio_label` INT( 11 ) NOT NULL DEFAULT -1 ,  
     
    87  PRIMARY KEY  (`grpnum`)  
    98);  
     9 
     10CREATE TABLE IF NOT EXISTS vmblast_groups  
     11( 
     12  grpnum  VARCHAR(50),  
     13  ext VARCHAR(25), 
     14  PRIMARY KEY (grpnum , ext) 
     15); 
  • contributed_modules/modules/vmblast/page.vmblast.php

    r5368 r5372  
    2525 
    2626  if (!$grplist) { 
    27     $grplist = null
     27    $grplist = array()
    2828  } 
    2929   
     
    133133 
    134134  } else { 
    135     $grplist = explode("-", '');
     135    $grplist = array()
    136136    $strategy = ''; 
    137137    $ringing = ''; 
  • contributed_modules/modules/vmblast/uninstall.sql

    r5063 r5372  
    11 
    22DROP TABLE IF EXISTS vmblast; 
     3DROP TABLE IF EXISTS vmblast_groups;