root/dev/common/admin_shp_val.php @ 91

Revision 91, 10.3 KB (checked in by exi, 16 years ago)

Made contracts to be able to be targeted on systems.
Added Mapoptions to make you graphics guys scream.
Added adjustable posting permissions for killmail authorization.
Aded killmail exporter, it can export multiple pilots, corporation and alliances at once.

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