Changeset 5372

Show
Ignore:
Timestamp:
12/08/07 01:24:01 (1 year 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; 
Donate



Support
Download
Develop
Forums
News
Documentation
Paid Support
About

Paid Ads