Skip to content

Commit 5ffe9d8

Browse files
committed
allow the same name for every directive snippets type (Implemets #5631)
1 parent c40524c commit 5ffe9d8

File tree

2 files changed

+52
-4
lines changed

2 files changed

+52
-4
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
3+
/*
4+
Copyright (c) 2020, Florian Schaal, schaal @it UG
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 validate_server_directive_snippets {
32+
33+
function get_error($errmsg) {
34+
global $app;
35+
36+
if(isset($app->tform->wordbook[$errmsg])) {
37+
return $app->tform->wordbook[$errmsg]."<br>\r\n";
38+
} else {
39+
return $errmsg."<br>\r\n";
40+
}
41+
}
42+
43+
function validate_snippet($field_name, $field_value, $validator) {
44+
global $app;
45+
$check = $app->db->queryAllRecords('SELECT * FROM directive_snippets WHERE name = ? AND type = ?', $field_value, trim($_POST['type']));
46+
if(!empty($check)) return $this->get_error('directive_snippets_name_error_unique');
47+
}
48+
49+
}

interface/web/admin/form/directive_snippets.tform.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,9 @@
6666
'name' => array (
6767
'datatype' => 'VARCHAR',
6868
'formtype' => 'TEXT',
69-
'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
70-
'errmsg'=> 'directive_snippets_name_empty'),
71-
1 => array ( 'type' => 'UNIQUE',
72-
'errmsg'=> 'directive_snippets_name_error_unique'),
69+
'validators' => array (
70+
0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'directive_snippets_name_empty'),
71+
1 => array ( 'type' => 'CUSTOM', 'class' => 'validate_server_directive_snippets', 'function' => 'validate_snippet'),
7372
),
7473
'filters' => array(
7574
0 => array( 'event' => 'SAVE',

0 commit comments

Comments
 (0)