root/dev/common/admin_shp_val.php @ 47

Revision 47, 10.0 KB (checked in by exi, 14 years ago)

Added Custom Shipvalue System, to be enabled in options, as always with autoupgrade(tm) ;)
Changed commenttablefield id to lowercase via autoupgrade.php, compat added in comments.php
Disabled immediate portrait update on IGB-Access

Line 
1<?php
2require_once("db.php");
3require_once("class.page.php");
4require_once("class.contract.php");
5require_once("admin_menu.php");
6require_once('class.http.php');
7
8require_once('autoupgrade.php');
9check_shipvaltable();
10
11$page = new Page();
12$page->setAdmin();
13
14if ($_REQUEST['opt'] == 'search')
15{
16    $page->setTitle("Administration - Shipvalues - Add a Shipvalue");
17
18    if ($id = intval($_REQUEST['searchid']))
19    {
20        $query = 'select count(shp_id) as cnt from kb3_ships_values where shp_id='.$id;
21        $qry = new DBQuery();
22        $qry->execute($query);
23        $data = $qry->getRow();
24        if ($data['cnt'] >= 1)
25        {
26            // value already added
27            unset($_REQUEST['opt']);
28            $html .= 'Error: That id is already on the list.<br/>';
29        }
30        else
31        {
32            $search = true;
33            $searchstr = ' where shp.shp_class != 18 and shp.shp_id='.$id;
34        }
35    }
36    elseif ($name = slashfix($_REQUEST['searchname']))
37    {
38        $search = true;
39        $searchstr = " where shp.shp_class != 18 and shp.shp_name like '%{$name}%'";
40    }
41    else
42    {
43        unset($_REQUEST['opt']);
44        $html .= 'Error: No id or name specified.<br/>';
45    }
46    if ($search)
47    {
48        $query = 'select shp.shp_id as id, shp.shp_externalid as ext, shp.shp_name, shp.shp_class,
49                         shp.shp_baseprice, scl.scl_class, shp.shp_techlevel, scl.scl_value
50                         from kb3_ships shp inner join kb3_ship_classes scl on (shp.shp_class = scl.scl_id)';
51        $qry = new DBQuery();
52        $qry->execute($query.$searchstr);
53        while ($data = $qry->getRow())
54        {
55            if (!$c)
56            {
57                $html .= '<form id="search" action="?a=admin_shp_val" method=post>';
58                $html .= '<table class=kb-table width="99%" align=center cellspacing="1">';
59                $html .= '<input type="hidden" name="opt" value="add"/>';
60                $html .= '<tr class=kb-table-header>';
61                $html .= '<td class=kb-table-header align="center">Ship</td>';
62                $html .= '<td class=kb-table-header align="center">Ship id</td>';
63                $html .= '<td class=kb-table-header>Ship Name</td>';
64                $html .= '<td class=kb-table-header>Ship type</td>';
65                $html .= '<td class=kb-table-header align="center">Techlevel</td>';
66                $html .= '<td class=kb-table-header align="right">Baseprice</td>';
67                $html .= '<td class=kb-table-header align="right">Classvalue</td>';
68                $html .= '<td class=kb-table-header align="right">Shipvalue</td></tr>';
69            }
70            $c++;
71            if (!$odd)
72            {
73                $odd = true;
74                $class = 'kb-table-row-odd';
75            }
76            else
77            {
78                $odd = false;
79                $class = 'kb-table-row-even';
80            }
81            $html .= "<tr class=".$class." style=\"height: 66px;\">";
82            $html .= '<td width="64" align="center"><img src="'.IMG_URL.'/ships/64_64/'.$data['ext'].'.png"></td>';
83            $html .= '<td align="center">'.$data['id'].'</td>';
84            $html .= '<td>'.$data['shp_name'].'</td>';
85            $html .= '<td>'.$data['scl_class'].'</td>';
86            $html .= '<td width="64" align="center">'.$data['shp_techlevel'].'</td>';
87            $html .= '<td align="right">'.number_format($data['shp_baseprice'], 0, ',', '.').'</td>';
88            $html .= '<td align="right">'.number_format($data['scl_value'], 0, ',', '.').'</td>';
89            $html .= '<td width="180" align="right"><input type="text" name="ship['.$data['id'].']" value="'.$data['scl_value'].'"></td></tr>';
90        }
91        if ($c)
92        {
93            $html .= '</table>';
94            $html .= '<br/><input type="submit" name="submit" value="Save">&nbsp;Note: Only values different from classvalue and zero will be saved.';
95            $html .= '</form>';
96        }
97    }
98}
99if ($_REQUEST['opt'] == 'add')
100{
101    $qry = new DBQuery();
102    if (!isset($_POST['ship']))
103    {
104        $_POST['ship'] = array();
105    }
106    foreach ($_POST['ship'] as $id => $value)
107    {
108        $id = intval($id);
109        // kill everything thats not a number
110        $value = preg_replace('/[^0-9]/', '', $value);
111        if ($value == 0 || $id == 0)
112        {
113            continue;
114        }
115        $query = 'select shp.shp_id as id, scl.scl_value
116                         from kb3_ships shp inner join kb3_ship_classes scl on (shp.shp_class = scl.scl_id)
117                         where shp.shp_id='.$id;
118        $qry->execute($query);
119        $data = $qry->getRow();
120        if ($data['scl_value'] == $value)
121        {
122            $qry->execute('delete from kb3_ships_values where shp_id='.$id.' limit 1');
123            continue;
124        }
125
126        $query = 'select count(shp_id) as cnt from kb3_ships_values where shp_id='.$id;
127        $qry->execute($query);
128        $data = $qry->getRow();
129        if ($data['cnt'] >= 1)
130        {
131            $qry->execute('update kb3_ships_values set shp_value=\''.$value.'\' where shp_id='.$id);
132        }
133        else
134        {
135            $qry->execute('insert into kb3_ships_values (shp_id, shp_value) values ('.$id.',\''.$value.'\')');
136        }
137    }
138    $html .= 'Shipvalues added/changed<br/>';
139    unset($_REQUEST['opt']);
140}
141if (!isset($_REQUEST['opt']))
142{
143    $page->setTitle("Administration - Shipvalues");
144
145    $html .= "<div class=block-header2>View/Change Shipvalues</div>";
146    $qry = new DBQuery();
147    $query = 'select kbs.shp_id as id, shp.shp_externalid as ext, shp.shp_name, shp.shp_class, kbs.shp_value,
148                     shp.shp_baseprice, scl.scl_class, shp.shp_techlevel, scl.scl_value
149                     from kb3_ships_values kbs
150                     inner join kb3_ships shp on (kbs.shp_id = shp.shp_id)
151                     inner join kb3_ship_classes scl on (shp.shp_class = scl.scl_id)';
152    $qry->execute($query);
153    while ($data = $qry->getRow())
154    {
155        if (!$c)
156        {
157            $html .= '<form id="search" action="?a=admin_shp_val" method=post>';
158            $html .= '<table class=kb-table width="99%" align=center cellspacing="1">';
159            $html .= '<input type="hidden" name="opt" value="add"/>';
160            $html .= '<script language="javascript">
161                        function geninput(object,id,value,orgval)
162                        {
163                          if (document.getElementById(\'ship_\'+id)) return;
164                          object.innerHTML = \'<input type="text" id="ship_\'+id+\'" name="ship[\'+id+\']" value="\'+value+\'" onblur="checkinput(this,\'+value+\',\\\'\'+orgval+\'\\\',\'+id+\');">\';
165                          document.getElementById(\'ship_\'+id).focus();
166                        }
167                        function checkinput(object,value,oldvalue,id)
168                        {
169                          if (object.value == value)
170                          {
171                              document.getElementById(\'tbrid_\'+id).innerHTML = oldvalue;
172                          }
173                        }
174                        </script>';
175            $html .= '<tr class=kb-table-header>';
176            $html .= '<td class=kb-table-header align="center">Ship</td>';
177            $html .= '<td class=kb-table-header align="center">Ship id</td>';
178            $html .= '<td class=kb-table-header>Ship Name</td>';
179            $html .= '<td class=kb-table-header>Ship type</td>';
180            $html .= '<td class=kb-table-header align="center">Techlevel</td>';
181            $html .= '<td class=kb-table-header align="right">Baseprice</td>';
182            $html .= '<td class=kb-table-header align="right">Classvalue</td>';
183            $html .= '<td class=kb-table-header align="right">Shipvalue</td></tr>';
184        }
185        $c++;
186        if (!$odd)
187        {
188            $odd = true;
189            $class = 'kb-table-row-odd';
190        }
191        else
192        {
193            $odd = false;
194            $class = 'kb-table-row-even';
195        }
196        $html .= "<tr class=".$class." style=\"height: 34px;\">";
197        $html .= '<td width="32" align="center"><img src="'.IMG_URL.'/ships/32_32/'.$data['ext'].'.png"></td>';
198        $html .= '<td align="center">'.$data['id'].'</td>';
199        $html .= '<td>'.$data['shp_name'].'</td>';
200        $html .= '<td>'.$data['scl_class'].'</td>';
201        $html .= '<td width="64" align="center">'.$data['shp_techlevel'].'</td>';
202        $html .= '<td align="right">'.number_format($data['shp_baseprice'], 0, ',', '.').'</td>';
203        $html .= '<td align="right">'.number_format($data['scl_value'], 0, ',', '.').'</td>';
204        $html .= '<td width="180" align="right" id="tbrid_'.$data['id'].'" onClick="geninput(this,'.$data['id'].','.$data['shp_value'].',\''.number_format($data['shp_value'], 0, ',', '.').'\');">'
205                 .number_format($data['shp_value'], 0, ',', '.').'</td></tr>';
206    }
207    if ($c)
208    {
209        $html .= '</table>';
210        $html .= '<br/><input type="submit" name="submit" value="Save">&nbsp;Note: Only values different from classvalue and zero will be saved. Hint: click into the Shipvalue field.';
211        $html .= '</form>';
212    }
213    else
214    {
215        $html .= 'No Data.<br/>';
216    }
217
218    $html .= '<br/><br/><div class=block-header2>Add a Shipvalue</div>';
219    $html .= '<form id="search" action="?a=admin_shp_val" method=post>';
220    $html .= '<input type="hidden" name="opt" value="search"/>';
221    $html .= '<table class="kb-subtable"><tr>';
222    $html .= '<td>ShipID</td><td>or Shipname</td>';
223    $html .= '</tr><tr>';
224    $html .= '<td><input id="searchid" name="searchid" type="text" size="4"/></td>';
225    $html .= '<td><input id="searchname" name="searchname" type="text" size="30"/></td>';
226    $html .= '<td><input type="submit" name="submit" value="Search"/></td>';
227    $html .= '</tr></table>';
228    $html .= '</form>';
229}
230$page->addContext($menubox->generate());
231$page->setContent($html);
232$page->generate();
233?>
Note: See TracBrowser for help on using the browser.