1 | <?php |
---|
2 | defined('TYPETAGS_PATH') or die('Hacking attempt!'); |
---|
3 | |
---|
4 | function get_color_text($color) |
---|
5 | { |
---|
6 | if (empty($color)) |
---|
7 | { |
---|
8 | return ''; |
---|
9 | } |
---|
10 | |
---|
11 | if (strlen($color) == 7) |
---|
12 | { |
---|
13 | $rgb[] = hexdec(substr($color, 1, 2))/255; |
---|
14 | $rgb[] = hexdec(substr($color, 3, 2))/255; |
---|
15 | $rgb[] = hexdec(substr($color, 5, 2))/255; |
---|
16 | } |
---|
17 | else if (strlen($color) == 4) |
---|
18 | { |
---|
19 | $rgb[] = hexdec(substr($color, 1, 1))/15; |
---|
20 | $rgb[] = hexdec(substr($color, 2, 1))/15; |
---|
21 | $rgb[] = hexdec(substr($color, 3, 1))/15; |
---|
22 | } |
---|
23 | |
---|
24 | $l = (min($rgb) + max($rgb)) / 2; |
---|
25 | |
---|
26 | return $l > 0.45 ? '#000' : '#fff'; |
---|
27 | } |
---|
28 | |
---|
29 | function check_color($hex) |
---|
30 | { |
---|
31 | global $page; |
---|
32 | |
---|
33 | $hex = ltrim($hex, '#'); |
---|
34 | |
---|
35 | if (strlen($hex) == 3) |
---|
36 | { |
---|
37 | $hex = $hex[0].$hex[0].$hex[1].$hex[1].$hex[2].$hex[2]; |
---|
38 | } |
---|
39 | else if (strlen($hex) != 6) |
---|
40 | { |
---|
41 | return false; |
---|
42 | } |
---|
43 | |
---|
44 | if (!ctype_xdigit($hex)) |
---|
45 | { |
---|
46 | return false; |
---|
47 | } |
---|
48 | |
---|
49 | return '#'.$hex; |
---|
50 | } |
---|
51 | |
---|
52 | function get_typetag_id($input) |
---|
53 | { |
---|
54 | if (preg_match('#^~~([0-9]+)~~$#', $input, $matches)) |
---|
55 | { |
---|
56 | return $matches[1]; |
---|
57 | } |
---|
58 | else if (strpos($input, '|') !== false) |
---|
59 | { |
---|
60 | list($color, $name) = explode('|', $input, 2); |
---|
61 | |
---|
62 | if ( ($color = check_color($color)) === false) |
---|
63 | { |
---|
64 | return false; |
---|
65 | } |
---|
66 | |
---|
67 | $query = ' |
---|
68 | SELECT id FROM ' . TYPETAGS_TABLE . ' |
---|
69 | WHERE color = "' . $color . '" |
---|
70 | LIMIT 1 |
---|
71 | ;'; |
---|
72 | $result = pwg_query($query); |
---|
73 | |
---|
74 | if (pwg_db_num_rows($result)) |
---|
75 | { |
---|
76 | list($tt_id) = pwg_db_fetch_row($result); |
---|
77 | return $tt_id; |
---|
78 | } |
---|
79 | |
---|
80 | $query = ' |
---|
81 | INSERT INTO ' . TYPETAGS_TABLE . '( |
---|
82 | name, |
---|
83 | color |
---|
84 | ) |
---|
85 | VALUES( |
---|
86 | "' . pwg_db_real_escape_string($name) . '", |
---|
87 | "' . $color . '" |
---|
88 | ) |
---|
89 | ;'; |
---|
90 | pwg_query($query); |
---|
91 | |
---|
92 | return pwg_db_insert_id(); |
---|
93 | } |
---|
94 | else |
---|
95 | { |
---|
96 | return false; |
---|
97 | } |
---|
98 | } |
---|