Fix Sccp Button Save
Correct PDO statements and implimentation concept
This commit is contained in:
parent
9f5459f7c5
commit
ef4fc4fe12
|
@ -742,7 +742,7 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
|||
foreach ($request['idn'] as $idv) {
|
||||
if ($this->strpos_array($idv, array('SEP', 'ATA', 'VG')) !== false) {
|
||||
$this->dbinterface->write('sccpdevice', array('name' => $idv), 'delete', "name");
|
||||
$this->dbinterface->write("sccpbuttons", array(), 'delete', '', $idv);
|
||||
$this->dbinterface->write('sccpbuttons', array(), 'delete', '', $idv);
|
||||
$this->deleteSccpDeviceXML($idv); // Концы в вводу !!
|
||||
$this->srvinterface->sccpDeviceReset($idv);
|
||||
}
|
||||
|
@ -1289,9 +1289,9 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
|||
$save_settings[$key] = $value;
|
||||
}
|
||||
}
|
||||
$this->dbinterface->write("sccpdevice", $save_settings, 'replace');
|
||||
$this->dbinterface->write('sccpdevice', $save_settings, 'replace');
|
||||
$save_buttons = $this->getPhoneButtons($get_settings, $name_dev, $hw_type);
|
||||
$this->dbinterface->write("sccpbuttons", $save_buttons, $update_hw, 'add', $name_dev); //was empty so would fall through to INSERT
|
||||
$this->dbinterface->write('sccpbuttons', $save_buttons, $update_hw, '', $name_dev);
|
||||
$this->createSccpDeviceXML($name_dev);
|
||||
if ($hw_id == 'new') {
|
||||
$this->srvinterface->sccpDeviceReset($name_dev);
|
||||
|
@ -1482,8 +1482,8 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
|||
$save_settings[$key] = $value;
|
||||
}
|
||||
}
|
||||
$this->dbinterface->write("sccpuser", $save_settings, 'replace', 'name');
|
||||
$this->dbinterface->write("sccpbuttons", $save_buttons, 'delete', '', $name_dev); //standardise to delete
|
||||
$this->dbinterface->write('sccpuser', $save_settings, 'replace', 'name');
|
||||
$this->dbinterface->write('sccpbuttons', $save_buttons, 'delete', '', $name_dev); //standardise to delete
|
||||
return $save_buttons;
|
||||
// Why is there a second return here???????
|
||||
return $save_settings;
|
||||
|
@ -1856,7 +1856,7 @@ class Sccp_manager extends \FreePBX_Helpers implements \BMO {
|
|||
if (empty($save_buttons)) {
|
||||
return array('Response' => 'No update required', 'data' => ' 0 - records ');
|
||||
}
|
||||
$res = $this->dbinterface->write("sccpbuttons", $save_buttons, 'replace', '', '');
|
||||
$res = $this->dbinterface->write('sccpbuttons', $save_buttons, 'replace', '', '');
|
||||
return array('Response' => 'Update records :' . count($save_buttons), 'data' => $res);
|
||||
}
|
||||
|
||||
|
|
|
@ -147,7 +147,6 @@ class dbinterface
|
|||
$stmt->execute();
|
||||
$raw_settings = $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
} elseif (!empty($stmts)) {
|
||||
dbug('statement is before execute', $stmts);
|
||||
$stmts->execute();
|
||||
$raw_settings = $stmts->fetchAll(\PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
@ -331,18 +330,34 @@ dbug('statement is before execute', $stmts);
|
|||
$result = $stmt->execute();
|
||||
break;
|
||||
case 'replace':
|
||||
if (!empty($save_value)) {
|
||||
$stmt = $dbh->prepare('UPDATE sccpbuttonconfig SET name =? WHERE ref = ? AND reftype =? AND instance =? AND buttontype =?');
|
||||
$result= $dbh->executeMultiple($stmt, $save_value);
|
||||
foreach ($save_value as $button_array) {
|
||||
$stmt = $dbh->prepare('UPDATE sccpbuttonconfig SET name =:name WHERE ref = :ref AND reftype =:reftype AND instance = :instance AND buttontype = :buttontype');
|
||||
$stmt->bindParam(':ref', $button_array['ref'],\PDO::PARAM_STR);
|
||||
$stmt->bindParam(':reftype', $button_array['reftype'],\PDO::PARAM_STR);
|
||||
$stmt->bindParam(':instance', $button_array['instance'],\PDO::PARAM_INT);
|
||||
$stmt->bindParam(':buttontype', $button_array['type'],\PDO::PARAM_STR);
|
||||
$stmt->bindParam(':name', $button_array['name'],\PDO::PARAM_STR);
|
||||
$result= $dbh->execute();
|
||||
}
|
||||
break;
|
||||
case 'add':
|
||||
if (!empty($save_value)) {
|
||||
$stmt = $dbh->prepare('INSERT INTO sccpbuttonconfig (ref, reftype, instance, buttontype, name, options) VALUES (?,?,?,?,?,?)');
|
||||
$result = $dbh->executeMultiple($stmt, $save_value);
|
||||
foreach ($save_value as $button_array) {
|
||||
$stmt = $dbh->prepare('INSERT INTO sccpbuttonconfig (ref, reftype, instance, buttontype, name, options) VALUES (:ref, :reftype, :instance, :buttontype, :name, :options)');
|
||||
$stmt->bindParam(':ref', $button_array['ref'],\PDO::PARAM_STR);
|
||||
$stmt->bindParam(':reftype', $button_array['reftype'],\PDO::PARAM_STR);
|
||||
$stmt->bindParam(':instance', $button_array['instance'],\PDO::PARAM_INT);
|
||||
$stmt->bindParam(':buttontype', $button_array['type'],\PDO::PARAM_STR);
|
||||
$stmt->bindParam(':name', $button_array['name'],\PDO::PARAM_STR);
|
||||
$stmt->bindParam(':options', $button_array['options'],\PDO::PARAM_STR);
|
||||
$result = $stmt->execute();
|
||||
}
|
||||
break;
|
||||
// No default case - must be specific in request.
|
||||
case 'clear';
|
||||
// Clear is equivalent of delete + insert.
|
||||
$this->write('sccpbuttons', '', $mode = 'delete','', $hwid);
|
||||
$this->write('sccpbuttons', $save_value, $mode = 'add','', $hwid);
|
||||
break;
|
||||
// No default case - must be specific in request.
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
|
|
Loading…
Reference in a new issue