Mercurial > hg > batmud > chester
comparison index.php @ 3:aeb37c6b16fd
Fixes, also added integrated test data.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 10 Jan 2011 04:15:48 +0200 |
parents | 666d475c8f92 |
children | 563783b8cd22 |
comparison
equal
deleted
inserted
replaced
2:666d475c8f92 | 3:aeb37c6b16fd |
---|---|
1 <? | 1 <? |
2 $pageTitle = "Pupunen BatMUD Chest Command Creator ALPHA"; | 2 $pageTitle = "Pupunen BatMUD Chest Command Creator ALPHA"; |
3 $pageIndex = "index.php"; | 3 $pageIndex = "index.php"; |
4 require "mcommon.inc.php"; | 4 require "mcommon.inc.php"; |
5 | 5 |
6 $fixNumbers = array( | 6 |
7 "one" => 1, "two" => 2, "three" => 3, "four" => 4, | 7 // Multi-stack item fixups |
8 "five" => 5, "six" => 6, "seven" => 7, "eight" => 8, | |
9 "nine" => 9, "ten" => 10 | |
10 ); | |
11 | |
12 | |
13 $fixItemTable = array( | 8 $fixItemTable = array( |
14 "(purple|green) gloves" => 'a ${1} glove', | 9 "(purple|green) gloves" => 'a ${1} glove', |
15 "heavy black metal rings" => "a heavy black metal ring", | 10 "heavy black metal rings" => "a heavy black metal ring", |
16 "bracelet mades of green crystal" => "a bracelet made of green crystal", | 11 "bracelet mades of green crystal" => "a bracelet made of green crystal", |
17 "white cloth packs for holding salves" => "white cloth pack for holding salves", | 12 "white cloth packs for holding salves" => "white cloth pack for holding salves", |
13 ); | |
14 | |
15 | |
16 $fixNumbers = array( | |
17 "one" => 1, "two" => 2, "three" => 3, "four" => 4, | |
18 "five" => 5, "six" => 6, "seven" => 7, "eight" => 8, | |
19 "nine" => 9, "ten" => 10 | |
18 ); | 20 ); |
19 | 21 |
20 | 22 |
21 function getJSArraySegment($arr) | 23 function getJSArraySegment($arr) |
22 { | 24 { |
78 <p> | 80 <p> |
79 <b>This application REQUIRES JavaScript to be enabled!</b> | 81 <b>This application REQUIRES JavaScript to be enabled!</b> |
80 </p> | 82 </p> |
81 </noscript> | 83 </noscript> |
82 <p> | 84 <p> |
85 <form action"<? echo $pageIndex; ?>" method="post"> | |
86 <input type="hidden" value="YToxOntzOjU6Iml0ZW1zIjthOjQ3OntpOjA7czozODoiVGhlIHN0YWZmIG9mIExlcmV0aGluIGxhYmVsZWQgYXMgfEdncnwiO2k6MTtzOjM1OiJzd2lybGVkIGdyZWVuIHZlc3QgbGFiZWxlZCBhcyAoR2dyKSI7aToyO3M6Njk6ImEgd2VsbC1jcmFmdGVkIHBhaXIgb2Ygc3R1ZC1jb3ZlcmVkIGxlYXRoZXIgbGVnZ2luZ3MgbGFiZWxlZCBhcyAoR2dyKSI7aTozO3M6NTU6IlJpbmcgb2Ygd2lzZG9tIFtNYWRlIGJ5OiBOdWFuZV0gbGFiZWxlZCBhcyA2d2lzMWhwci9nZ3IiO2k6NDtzOjU0OiJzaGluaW5nIHJpbmcgY3JhZnRlZCBvdXQgb2YgbW9vbnN0b25lIGxhYmVsZWQgYXMgKEdncikiO2k6NTtzOjUxOiJHcmlteSBncmVhdCBjbG9hayBvZiB0cnVlIHNvcmNlcmVyIGxhYmVsZWQgYXMgfEdncnwiO2k6NjtzOjI5OiJhIGJsYWNrIGhvb2QgbGFiZWxlZCBhcyB8R2dyfCI7aTo3O3M6Mzg6InRoZSB0b21lIG9mIGtub3dsZWRnZSBsYWJlbGVkIGFzIChHZ3IpIjtpOjg7czo1MzoiaGVhdnkgdGFiYXJkIHdpdGggYSBjaGFsaWNlIGVuc2lnbmlhIGxhYmVsZWQgYXMgKEdncikiO2k6OTtzOjQ3OiJkYXJrIGdyZXkgYW5kIHdoaXRlIHBsYWlkIGtpbHQgbGFiZWxlZCBhcyAoR2dyKSI7aToxMDtzOjM4OiJzdHJvbmcgc2FwcGhpcmUgYm9vdHMgbGFiZWxlZCBhcyAoR2dyKSI7aToxMTtzOjI3OiJzdW4gYW11bGV0IGxhYmVsZWQgYXMgKEdncikiO2k6MTI7czo0MDoiQW5jaWVudCBCcmFjZXJzIG9mIFh6dWkgbGFiZWxlZCBhcyAoR2dyKSI7aToxMztzOjQyOiJnbGl0dGVyaW5nIGxlZyBwcm90ZWN0b3JzIGxhYmVsZWQgYXMgKEdncikiO2k6MTQ7czo0OToiYSBicmFjZWxldCBtYWRlIG9mIGdyZWVuIGNyeXN0YWwgbGFiZWxlZCBhcyAoR2dyKSI7aToxNTtzOjQ5OiJhIGJyYWNlbGV0IG1hZGUgb2YgZ3JlZW4gY3J5c3RhbCBsYWJlbGVkIGFzIChHZ3IpIjtpOjE2O3M6NDU6ImEgcmVpbmZvcmNlZCBicm9uemUgYnJhY2VsZXQgbGFiZWxlZCBhcyAoR2dyKSI7aToxNztzOjQyOiJ0aGUgQnJhY2VsZXRzIG9mIERhcmtuZXNzIGxhYmVsZWQgYXMgKEdncikiO2k6MTg7czozNDoiVGlidXJjaW8ncyBhbXVsZXQgbGFiZWxlZCBhcyAoR2dyKSI7aToxOTtzOjQ5OiJuZWNrbGFjZSBtYWRlIG91dCBvZiBzaGFycCBmYW5ncyBsYWJlbGVkIGFzIChHZ3IpIjtpOjIwO3M6NjI6ImEgZ2xpbW1lcmluZyBsZWF0aGVyIGJlbHQgd2l0aCBnZW0gZGVjb3JhdGlvbiBsYWJlbGVkIGFzIChHZ3IpIjtpOjIxO3M6NDE6ImEgaGVhdnkgYmxhY2sgbWV0YWwgcmluZyBsYWJlbGVkIGFzIChHZ3IpIjtpOjIyO3M6NDE6ImEgaGVhdnkgYmxhY2sgbWV0YWwgcmluZyBsYWJlbGVkIGFzIChHZ3IpIjtpOjIzO3M6NDU6IkRlbW9uaWMgUmluZyBvZiBJbnZpc2liaWxpdHkgbGFiZWxlZCBhcyAoR2dyKSI7aToyNDtzOjMxOiJhIHB1cnBsZSBnbG92ZSBsYWJlbGVkIGFzIChHZ3IpIjtpOjI1O3M6MzE6ImEgcHVycGxlIGdsb3ZlIGxhYmVsZWQgYXMgKEdncikiO2k6MjY7czozMDoiYSBncmVlbiBnbG92ZSBsYWJlbGVkIGFzIChHZ3IpIjtpOjI3O3M6MzA6ImEgZ3JlZW4gZ2xvdmUgbGFiZWxlZCBhcyAoR2dyKSI7aToyODtzOjQzOiJhIHBhaXIgb2YgYmxhY2sgYm9vdHMgbGFiZWxlZCBhcyB8R2dyTXVycml8IjtpOjI5O3M6NzI6IkEgYmVhdXRpZnVsIHJvc2FyeSBlbmZvbGRlZCB3aXRoIHdoaXRlIG1pc3QgbGFiZWxlZCBhcyB8R2dyTXVycml8IChob2x5KSI7aTozMDtzOjgyOiJhIHNtYWxsIHJpbmcgYmVhcmluZyB0aGUgZW1ibGVtIG9mIHRoZSBidW5ueSBbTWFkZSBieTogS2lvbWV0XSBsYWJlbGVkIGFzIDZ3aXMyaW50IjtpOjMxO3M6NjE6ImEgdmlhbCBjb250YWluaW5nIHRoZSB0ZWFycyBvZiBPeHRvdGggbGFiZWxlZCBhcyAoR2dyKSAoaG9seSkiO2k6MzI7czo0NDoiQSBsZWF0aGVyIHBvdWNoIGxhYmVsZWQgYXMgdjQgKHF1YXJ0ZXIgZnVsbCkiO2k6MzM7czo0Mzoic2xlZXZlcyBvZiBtb29taW4gZW11bHNpb24gbGFiZWxlZCBhcyAoR2dyKSI7aTozNDtzOjMzOiJhIGdyZWVuIGhlYWRiYW5kIGxhYmVsZWQgYXMgKEdncikiO2k6MzU7czozNDoiQ2FwZSBvZiBLbm93bGVkZ2UgbGFiZWxlZCBhcyAoR2dyKSI7aTozNjtzOjU0OiJUaGUgZ2xlYW1pbmcgYmx1ZSBjb2xsYXIgb2YgQmVuZ2Fsb3JlIGxhYmVsZWQgYXMgKEdncikiO2k6Mzc7czo1MToiZ29sZGVuIGJlbHQgb2YgRmFpciBSaXZlci1EYXVnaHRlciBsYWJlbGVkIGFzIChHZ3IpIjtpOjM4O3M6NDI6ImEgYmxhY2sgY2xvYWsgKGV2aWwgZ2xvdykgbGFiZWxlZCBhcyB8R2dyfCI7aTozOTtzOjM1OiJSaW5nIG9mIHRoZSBNZWR1c2EgbGFiZWxlZCBhcyAoR2dyKSI7aTo0MDtzOjQ0OiJBIGxvdyB3aWRlLWJyaW1tZWQgaGF0IGxhYmVsZWQgYXMgfEdnck11cnJpfCI7aTo0MTtzOjEzOiJhIHN0ZXRob3Njb3BlIjtpOjQyO3M6NjY6ImEgc2hpbW1lcmluZyBibHVlIGJyZWFzdHBsYXRlIG1hZGUgb2YgcXVhcnR6IGxhYmVsZWQgYXMgfEdnck11cnJpfCI7aTo0MztzOjUzOiJhIHBhaXIgb2YgcHVyZSB3aGl0ZSBmbG93aW5nIHNsZWV2ZXMgbGFiZWxlZCBhcyAoR2dyKSI7aTo0NDtzOjQzOiJSZWRmYW5nIEJlYWRzIG9mIElyb24gV2lsbCBsYWJlbGVkIGFzIChHZ3IpIjtpOjQ1O3M6NTk6Ik5vdmEgQXJjYW51bSwgTWVsa2lvcidzIGJvb2sgb2YgbmVjcm9tYW5jeSBsYWJlbGVkIGFzIChHZ3IpIjtpOjQ2O3M6NDQ6ImEgcGFpciBvZiBzaG9ydCBncmVlbiBib290cyBsYWJlbGVkIGFzIChHZ3IpIjt9fQ==" name="data" /> | |
87 <input type="hidden" value="2" name="mode" /> | |
83 First, you should provide a list of equipments you wish to manage. | 88 First, you should provide a list of equipments you wish to manage. |
84 Just plain copy & paste of an inventory listing is enough. | 89 Just plain copy & paste of an inventory listing is enough. |
90 You can also test with pre-defined equipments, | |
91 <input type="submit" value=" Test " /> by clicking the button. | |
92 </form> | |
85 </p> | 93 </p> |
86 <p> | 94 <p> |
87 <b>Stacks of items are not supported, and few other things may cause problems too.</b> | 95 <b>Stacks of items are not supported, and few other things may cause problems too.</b> |
88 </p> | 96 </p> |
89 <form action="<? echo $pageIndex; ?>" method="post"> | 97 <form action="<? echo $pageIndex; ?>" method="post"> |
117 } | 125 } |
118 | 126 |
119 foreach ($postData as $line) { | 127 foreach ($postData as $line) { |
120 // Trim whitespace | 128 // Trim whitespace |
121 $str = trim($line); | 129 $str = trim($line); |
122 | 130 if ($str == "") continue; |
123 if ($str != "") { | 131 |
124 // Strip glows and counters from item "handle" | 132 // Strip glows and counters from item "handle" |
125 if (preg_match("/^(.+?)\s+(<.+? glow>|\(\d+\/\d+\)|\[\d+\/\d+\])$/", $str, $m)) | 133 if (preg_match("/^(.+?)\s+(<.+? glow>|\(\d+\/\d+\)|\[\d+\/\d+\])$/", $str, $m)) |
126 $str = $m[1]; | 134 $str = $m[1]; |
127 | 135 |
128 // Discard multi-item lines | 136 // Discard multi-item lines |
129 if (preg_match("/^(two|three|four|five|six|seven|eight|nine)\s+(.+?)( labeled as .+|)$/", $str, $m)) { | 137 if (preg_match("/^(many|two|three|four|five|six|seven|eight|nine|ten)\s+(.+?)( labeled as .+|)$/", $str, $m)) { |
130 if (isset($fixNumbers[$m[1]])) { | 138 if (!isset($fixNumbers[$m[1]])) { |
131 $n = $fixNumbers[$m[1]]; | 139 $ignored[$str] = "Unparsed stack of many"; |
132 $changed = 0; | 140 } else { |
133 | 141 $n = $fixNumbers[$m[1]]; |
134 foreach ($fixItemTable as $pat => $rep) { | 142 $changed = 0; |
135 if ($pat[0] == "*") { | 143 foreach ($fixItemTable as $pat => $rep) { |
136 if (substr($pat, 1) == $m[2]) { | 144 if ($pat[0] == "*") { |
137 $res = $rep; | 145 if (substr($pat, 1) == $m[2]) { |
138 $changed = 1; | 146 $res = $rep; |
139 } | 147 $changed = 1; |
140 } else { | |
141 $res = preg_replace("/".$pat."/", $rep, $m[2], -1, &$changed); | |
142 } | 148 } |
143 if ($changed > 0) { | 149 } else { |
144 addItems($n, $res.$m[3]); | 150 $res = preg_replace("/".$pat."/", $rep, $m[2], -1, &$changed); |
145 break; | |
146 } | |
147 } | 151 } |
148 | 152 if ($changed > 0) { |
149 if ($changed == 0) { | 153 addItems($n, $res.$m[3]); |
150 $ignored[$str] = "Unsupported item stack"; | 154 break; |
151 } | 155 } |
152 } else | 156 } |
153 $ignored[$str] = "Unparsed stack of many"; | 157 if ($changed == 0) { |
154 } else | 158 $ignored[$str] = "Unsupported item stack"; |
155 addItems(1, $str); | 159 } |
156 } | 160 } |
161 } else | |
162 addItems(1, $str); | |
157 } | 163 } |
158 | 164 |
159 if (count($ignored) > 0) { | 165 if (count($ignored) > 0) { |
160 ?> | 166 ?> |
161 <p>Item data processed. Following lines <b>were not accepted</b>:</p> | 167 <p>Item data processed. Following lines <b>were not accepted</b>:</p> |
163 <tr><th>Item</th><th>Reason</th></tr> | 169 <tr><th>Item</th><th>Reason</th></tr> |
164 <? | 170 <? |
165 foreach ($ignored as $name => $reason) { | 171 foreach ($ignored as $name => $reason) { |
166 echo " <tr><td>".htmlentities($name)."</td><td>".htmlentities($reason)."</td></tr>\n"; | 172 echo " <tr><td>".htmlentities($name)."</td><td>".htmlentities($reason)."</td></tr>\n"; |
167 } | 173 } |
174 | |
175 $encData = base64_encode(serialize($data)); | |
168 ?> | 176 ?> |
169 </table> | 177 </table> |
170 | 178 |
171 <form action="<? echo $pageIndex; ?>" method="post"> | 179 <form action="<? echo $pageIndex; ?>" method="post"> |
172 <input type="hidden" value="<? echo base64_encode(serialize($data)); ?>" name="data" /> | 180 <input type="hidden" value="<? echo $encData ?>" name="data" /> |
173 <input type="hidden" value="2" name="mode" /> | 181 <input type="hidden" value="2" name="mode" /> |
182 <? | |
183 // echo "<textarea name=\"data\" cols=\"100\" rows=\"20\">".$encData."</textarea>\n"; | |
184 ?> | |
185 <br /> | |
174 <input type="submit" value=" Continue " /> | 186 <input type="submit" value=" Continue " /> |
175 </form> | 187 </form> |
176 <? | 188 <? |
177 } else | 189 } else |
178 $formMode = 3; | 190 $formMode = 3; |
179 } else { | 191 } else { |
180 $errorMsg = "No item data provided."; | 192 $errorMsg = "No item data provided."; |
181 $errorSet = TRUE; | 193 $errorSet = TRUE; |
182 } | 194 } |
183 } | 195 } // formMode == 1 |
184 | 196 |
185 | 197 |
186 /* | 198 /* |
187 * Unserialize data from previous step | 199 * Unserialize data from previous step |
188 */ | 200 */ |