You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			121 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
| <?php
 | |
| /*
 | |
|  * Created on 01.09.2016
 | |
|  *
 | |
|  * @copyright (c) 2016 animegame.eu
 | |
|  * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence
 | |
|  *
 | |
|  */
 | |
| 
 | |
| function getItemTopicsMap() {
 | |
| 	$qry = db_query('SELECT * from sp_set_topics ORDER BY id');
 | |
| 	$topics_map = array();
 | |
| 
 | |
|         while( $row = mysqli_fetch_assoc($qry) ) {
 | |
|                 $topics_map[$row['id']] = $row;
 | |
|         }
 | |
| 
 | |
| 	return $topics_map;
 | |
| }
 | |
| 
 | |
| function getItemsMap() {
 | |
| 	$items_map = array();
 | |
|         $qry = db_query('SELECT * from sp_item WHERE type != \'Teufels Frucht\'');
 | |
|         while( $row = mysqli_fetch_assoc($qry) ) {
 | |
|                 $row['table_name'] = 'sp_item';
 | |
|                 $items_map['sp_item'][$row['id']] = $row;
 | |
|         }
 | |
| 
 | |
|         $qry = db_query('SELECT * from item');
 | |
|         while( $row = mysqli_fetch_assoc($qry)) {
 | |
|                 $row['table_name'] = 'item';
 | |
|                 $items_map['item'][$row['id']] = $row;
 | |
|         }
 | |
| 
 | |
|         $qry = db_query('SELECT * from wochen_markt');
 | |
|         while( $row = mysqli_fetch_assoc($qry) ) {
 | |
|                 $row['name'] = $row['item'];
 | |
|                 $row['table_name'] = 'wochen_markt';
 | |
|                 $items_map['wochen_markt'][$row['id']] = $row;
 | |
|         }
 | |
| 	return $items_map;
 | |
| }
 | |
| 
 | |
| function item2Name($item) {
 | |
| 	return $item['name'].'('.$item['table_name'].')';
 | |
| }
 | |
| 
 | |
| function item2Value($item) {
 | |
|         return $item['id'].'_'.$item['table_name'];
 | |
| }
 | |
| 
 | |
| function getSetDefinitions() {
 | |
|         $items_map = getItemsMap(); 
 | |
| 	$topics_map = getItemTopicsMap();
 | |
| 
 | |
|         $qry = db_query('SELECT * from sp_sets order by set_topic_id');
 | |
|         $sets = array();
 | |
|         while( $row = mysqli_fetch_assoc($qry) ) {
 | |
|                 $set = array();
 | |
|                 $set['item'] = $items_map[$row['table_name']][$row['item_id']];
 | |
|                 $dep_items = array();
 | |
|                 $qry2 = db_query('SELECT * from sp_set_ingredient WHERE set_id = '.$row['set_id']);
 | |
|                 while( $row2 = mysqli_fetch_assoc($qry2) ) {
 | |
|                         $dep_items[] = $items_map[$row2['table_name']][$row2['item_id']];
 | |
|                 }
 | |
|                 $set['deps'] = $dep_items;
 | |
|                 $set['id'] = $row['set_id'];
 | |
| 		$set['topic_id'] = $row['set_topic_id'];
 | |
| 		if ( $set['topic_id'] !== NULL ) {
 | |
| 			$set['topic'] = $topics_map[$set['topic_id']]['name'];
 | |
| 		}
 | |
|                 $sets[] = $set;
 | |
|         }
 | |
|         return $sets;
 | |
| }
 | |
| 
 | |
| function get_set_definitions() {
 | |
| 	return getSetDefinitions();
 | |
| }
 | |
| 
 | |
| function getSetDefinition($set_id) {
 | |
| 	$sets = get_set_definitions();
 | |
| 	foreach ($sets as $set) {
 | |
| 		if ($set['id'] == $set_id) {
 | |
| 			return $set;
 | |
| 		}
 | |
| 	}
 | |
| 	return NULL;
 | |
| }
 | |
| 
 | |
| function lookupItem($items, $itemIdHash) {
 | |
| 	$pair = explode('_', $itemIdHash, 2);
 | |
| 	return $items[$pair[1]][$pair[0]];
 | |
| }
 | |
| 
 | |
| function itemEquals($lhs, $rhs) {
 | |
| 	return $lhs['id'] == $rhs['id'] && $lhs['table_name'] == $rhs['table_name'];
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * @return, true in case item creation was successful!
 | |
|  */
 | |
| function createItemForUser($item, $user_id, $amount = 1) {
 | |
| 	$ware_table=array('item' => 'ware', 'sp_item' => 'sp_ware', 'wochen_markt' => 'wochen_ware');
 | |
| 	
 | |
| 	$table = $ware_table[$item['table_name']];
 | |
| 	if ($table === NULL) {
 | |
| 		$table = $item['table_name'];
 | |
| 	}
 | |
| 
 | |
| 	for ($i=0;$i<$amount;++$i) {
 | |
| 		if ( $table == 'ware' ) {
 | |
| 			$ru = $item['s_type']=='Trank'?' ':'1';
 | |
| 			db_query('INSERT ware(user,item_id,ru_mal) values('.$user_id.', '.$item['id'].', \''.$ru.'\')');
 | |
| 		} else {
 | |
| 			db_query('INSERT '.$table.'(user, item) values('.$user_id.', '.$item['id'].')');
 | |
| 		}
 | |
| 	}
 | |
| 	return db_affected_rows() > 0;
 | |
| }
 |