Skip to content

Commit aa15001

Browse files
committed
Improved Client templates.
1 parent 5b35a71 commit aa15001

File tree

7 files changed

+216
-154
lines changed

7 files changed

+216
-154
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
/*
4+
Copyright (c) 2008, Till Brehm, projektfarm Gmbh
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
class custom_datasource {
32+
33+
function master_templates($field, $record) {
34+
global $app, $conf;
35+
$records = $app->db->queryAllRecords("SELECT template_id,template_name FROM client_template WHERE template_type ='m'");
36+
$records_new[0] = $app->lng('Custom');
37+
foreach($records as $rec) {
38+
$key = $rec['template_id'];
39+
$records_new[$key] = $rec['template_name'];
40+
}
41+
return $records_new;
42+
}
43+
44+
}
45+
46+
?>

interface/web/client/client_template_edit.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,29 @@
5252

5353
class page_action extends tform_actions {
5454

55+
function onBeforeUpdate() {
56+
global $app;
57+
58+
if(isset($this->dataRecord['template_type'])) {
59+
//* Check if the template_type has been changed
60+
$rec = $app->db->queryOneRecord("SELECT template_type from client_template WHERE template_id = ".$this->id);
61+
if($rec['template_type'] != $this->dataRecord['template_type']) {
62+
//* Add a error message and switch back to old server
63+
$app->tform->errorMessage .= $app->lng('The template type can not be changed.');
64+
$this->dataRecord['template_type'] = $rec['template_type'];
65+
}
66+
unset($rec);
67+
}
68+
}
69+
70+
5571
/*
5672
This function is called automatically right after
5773
the data was successful updated in the database.
5874
*/
5975
function onAfterUpdate() {
6076
global $app;
61-
77+
6278
/*
6379
* the template has changed. apply the new data to all clients
6480
*/

interface/web/client/form/client.tform.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -301,12 +301,11 @@
301301
'datatype' => 'INTEGER',
302302
'formtype' => 'SELECT',
303303
'default' => '1',
304-
'datasource' => array ( 'type' => 'SQL',
305-
'querystring' => "SELECT template_id,template_name FROM client_template WHERE template_type ='m'",
306-
'keyfield'=> 'template_id',
307-
'valuefield'=> 'template_name'
304+
'datasource' => array ( 'type' => 'CUSTOM',
305+
'class'=> 'custom_datasource',
306+
'function'=> 'master_templates'
308307
),
309-
'value' => array('0' => 'custom')
308+
'value' => ''
310309
),
311310
'template_additional' => array (
312311
'datatype' => 'VARCHAR',

interface/web/client/lib/lang/en_client.lng

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,6 @@ $wb["default_dbserver_txt"] = 'Default Database Server';
8282
$wb["limit_database_txt"] = 'Max. number of Databases';
8383
$wb["limit_database_error_notint"] = 'The database limit must be a number.';
8484
$wb["username_error_regex"] = 'The Username contains invalid chracaters.';
85+
$wb["template_master_txt"] = 'Master';
86+
$wb["template_additional_txt"] = 'Addon';
8587
?>

0 commit comments

Comments
 (0)