From 80c3b5792bea15876ef8f79b8a64421733c1c001 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Tue, 28 Dec 2010 15:46:00 +0100 Subject: [PATCH] Allows deletion based on 2 fields in plTableEditor. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- classes/pltableeditor.php | 13 +++++++++---- templates/table-editor.tpl | 5 ++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/classes/pltableeditor.php b/classes/pltableeditor.php index 88a4133..35113a3 100644 --- a/classes/pltableeditor.php +++ b/classes/pltableeditor.php @@ -70,11 +70,12 @@ class PLTableEditor * $idfield : the field of the table which is the id, ex: id * $editid : is the id editable or not (if not, it is considered as an int) */ - public function __construct($plname, $table, $idfield, $editid=false) + public function __construct($plname, $table, $idfield, $editid = false, $idfield2 = false) { $this->pl = $plname; $this->table = $table; $this->idfield = $idfield; + $this->idfield2 = $idfield2; $this->sortfield = $idfield; $this->idfield_editable = $editid; $this->whereclause = '1'; @@ -229,7 +230,7 @@ class PLTableEditor } // call when done - public function apply(PlPage &$page, $action, $id = false) + public function apply(PlPage &$page, $action, $id = false, $id2 = false) { $page->coreTpl('table-editor.tpl'); $list = true; @@ -239,8 +240,12 @@ class PLTableEditor if (!isset($this->delete_action)) { foreach ($this->jtables as $table => $j) XDB::execute("DELETE FROM {$table} WHERE {$j['joinid']} = {?}{$j['joinextra']}", $id); - XDB::execute("DELETE FROM {$this->table} WHERE {$this->idfield} = {?}",$id); - $page->trigSuccess("L'entrée ".$id." a été supprimée."); + $where = XDB::format("{$this->idfield} = {?}", $id); + if ($this->idfield2) { + $where .= XDB::format(" AND {$this->idfield2} = {?}", $id2); + } + XDB::rawExecute("DELETE FROM {$this->table} WHERE " . $where); + $page->trigSuccess("L'entrée " . $id . (($id2) ? '-' . $id2 : '') . ' a été supprimée.'); } else if ($this->delete_action) { XDB::execute($this->delete_action, $id); if (isset($this->delete_message)) { diff --git a/templates/table-editor.tpl b/templates/table-editor.tpl index 85e28f9..ad792bf 100644 --- a/templates/table-editor.tpl +++ b/templates/table-editor.tpl @@ -60,6 +60,9 @@ {if $myfield eq $t->idfield} {assign var="idval" value=$myrow.$myfield} {/if} + {if $t->idfield2 && $myfield eq $t->idfield2} + {assign var="idval2" value=$myrow.$myfield} + {/if} {if $myval.Type eq 'timestamp'} {$myrow.$myfield|date_format:"%x %X"} {elseif $myval.Type eq 'checkbox'} @@ -77,7 +80,7 @@ {icon name=page_edit title='éditer'} {/if} {if !$readonly} - {icon name=delete title='supprimer'} + {icon name=delete title='supprimer'} {/if} {/if} -- 2.1.4