$match_flip = $matches_flip[1]; // 0 is french version $text = mv2txt($match_flip['text']); if (count($matches_pt) > 1) { // Multiple P/T found, first is day, other are night $text = $matches_pt[1]['pow'] . '/' . $matches_pt[1]['tou'] . "\n" . $text; } $card->flip($match_flip['name'], $match_flip['type'], $text); } // Face down $nbmoon = preg_match_all($reg_moon, $html, $matches_moon, PREG_SET_ORDER); if ($nbmoon > 0) { $match_moon = $matches_moon[1]; // 0 is french version $nbcolor = preg_match_all('#<img height=10 src=graph/manas/l(?<color>.).gif>#', $match_moon['colors'], $matches_colors, PREG_SET_ORDER); $ci = ''; if ($nbcolor > 0) { foreach ($matches_colors as $color) { $ci .= $color['color']; } } else { echo 'Color not found<br>'; } $text = mv2txt($match_moon['text']); if (isset($matches_moon[1]['pt'])) { $text = $matches_moon[1]['pow'] . '/' . $matches_moon[1]['tou'] . "\n" . $text; } $card->transform(card_name_sanitize($match_moon['name']), $ci, $match_moon['type'], $text, card_image_url($mv_ext_name . '/' . $mv_card_id . 'f')); } } }
$node = $node->nextSibling; } while ($node->nodeName == 'img'); // Text & PT : managed in sun face text & PT managements if ($trpt != '') { $trtext = $trpt . "\n" . $trtext; } // Image if (preg_match('#if \\(bflst==1\\) \\{document\\["BIGflippic"\\].src="(.*?)";bflst=2;\\}#', $card_html, $matches)) { $trimg = $matches[1]; } if (strpos($trimg, 'FR')) { $frtrimg = $trimg; $trimg = str_replace('FR', '', $trimg); } // Import $card->transform(card_name_sanitize($trname), $trcolor, $trtypes, $trtext, $base_url . $trimg); if ($frtrimg != null) { $card->addlangimg('fr', $frtrimg); } } } function mv_planeswalker($text_nodes, $text_idx) { $text = $text_nodes->item($text_idx)->C14N(); $text = mv2txt($text) . "\n"; if (preg_match_all('/\\s*([+|-]?\\d*)\\s*(.*?)\\n/', $text, $matches, PREG_SET_ORDER)) { $text = ''; foreach ($matches as $match) { $text .= $match[1] . ': ' . $match[2] . "\n"; } }
<?php if (array_key_exists('name', $_GET)) { include '../lib.php'; include '../includes/db.php'; include '../includes/card.php'; $connec = card_connect(); $query = query("SELECT * FROM card WHERE `name`='" . mysql_real_escape_string(card_name_sanitize($_GET['name'])) . "'", 'Card search', $connec); if ($card = mysql_fetch_object($query)) { $id = $card->id; } else { die('{"name": "' . $_GET['name'] . '"}'); } if (array_key_exists('lang', $_GET) && $_GET['lang'] != 'en') { if ($lang = query_oneshot("SELECT * FROM cardname WHERE `lang` = '" . $_GET['lang'] . "' AND `card_id` = '{$id}'", 'Card language', $connec)) { $card->card_name = $lang->card_name; } } $query = query("SELECT extension.id, extension.se, extension.name, card_ext.nbpics FROM card_ext, extension WHERE card_ext.card = '{$id}' AND card_ext.ext = extension.id AND card_ext.nbpics > 0 ORDER BY extension.priority DESC", 'Card\' extension', $connec); $ext = array(); while ($obj = mysql_fetch_object($query)) { $ext[] = $obj; } $card->ext = $ext; die(json_encode($card)); } else { die('No ID in param'); }
function addcard($card_url, $rarity, $oldname, $cost, $types, $text, $url, $multiverseid = '') { // Name checking $name = card_name_sanitize($oldname); $text = card_text_sanitize($text); $types = preg_replace('#\\s+#', ' ', $types); $cost = strtoupper($cost); if ($name == '') { return $this->adderror('Empty name', $card_url); } // Searching in already imported cards foreach ($this->cards as $card) { if ($card->name == $name) { $log = ''; foreach (array('rarity', 'name', 'cost', 'types', 'text') as $val) { if (trim(${$val}) != $card->{$val}) { $log .= ' - ' . $val . ' : ' . $card->{$val} . ' -> ' . ${$val} . "\n"; //$card->{$val} = $$val ; } } if ($log != '') { // For Planeshift from MCI, has 3 promos as "special" rarity in list echo 'Card already parsed with different data (ignored) : ' . $name . "\n" . $log . "\n"; } else { if ($card->addimage($url)) { $card->nbimages++; } $card->addurl($card_url); } return $card; } } // Else it's a new card $card = new ImportCard($this, $card_url, $rarity, $name, $cost, $types, $text, $url, $multiverseid); $this->cards[] = $card; return $card; }
function card_search($get, $connec = null) { $data = new stdClass(); if (isset($get['page'])) { $data->page = intval($get['page']); unset($get['page']); } else { $data->page = 1; } if (isset($get['limit'])) { $data->limit = intval($get['limit']); unset($get['limit']); } else { $data->limit = 30; } $get['name'] = card_name_sanitize($get['name']); $from = ($data->page - 1) * $data->limit; $where = ''; if (isset($get['ext']) && $get['ext'] != '') { $select = 'SELECT `card`.*, `extension`.`se` FROM `card` LEFT JOIN `card_ext` ON `card`.`id` = `card_ext`.`card` LEFT JOIN `extension` ON `card_ext`.`ext` = `extension`.`id`'; $where .= 'AND ( `extension`.`se` = \'' . $get['ext'] . '\' OR `extension`.`sea` = \'' . $get['ext'] . '\' )'; // OR `extension`.`name` LIKE \''.$get['ext'].'%\' ; unset($get['ext']); } else { $select = 'SELECT * FROM `card` '; $where = ''; } $order = ' ORDER BY `card`.`name`'; if (isset($get['lang'])) { if ($get['lang'] != 'en') { $data->lang = $get['lang']; $select .= ' LEFT JOIN `cardname` ON `card`.`id` = `cardname`.`card_id`'; $get['card_name'] = $get['name']; // Search in lang table $where .= ' AND `cardname`.`lang` = "' . $data->lang . '"'; $order = ' ORDER BY `cardname`.`card_name`'; unset($get['name']); // Search only in lang table } unset($get['lang']); } // Search part of word $query = $select . get2where($get, 'LIKE', '%', '%', 'card') . $where . $order; $result = query($query, 'Card listing', $connec); $data->num_rows = mysql_num_rows($result); $data->cards = array(); while ($from > 0 && ($obj = mysql_fetch_object($result))) { $from--; } while (($obj = mysql_fetch_object($result)) && count($data->cards) < $data->limit) { $query = "SELECT extension.id, extension.se, extension.name, card_ext.nbpics\n\t\t\t\tFROM card_ext, extension\n\t\t\t\tWHERE\n\t\t\t\t\tcard_ext.nbpics != 0 AND\n\t\t\t\t\tcard_ext.card = '" . $obj->id . "' AND\n\t\t\t\t\tcard_ext.ext = extension.id\n\t\t\t\tORDER BY extension.priority DESC"; $result2 = query($query, 'Card\' extension', $connec); $obj->ext = array(); while ($obj_ext = mysql_fetch_object($result2)) { $obj->ext[] = $obj_ext; } $data->cards[] = $obj; } return $data; }
} } else { if ($apply) { $query = query("INSERT INTO extension (`se`, `name`) VALUES ('{$ext}', '" . $cards[0] . "')"); } $ext_id = mysql_insert_id(); } ?> <table> <tr> <th>Name</th> <th>Action</th> </tr> <?php for ($i = 0; $i < count($cards); $i++) { $name = mysql_real_escape_string(card_name_sanitize($cards[$i])); $log = '<tr title="' . $name . '">'; $log = '<td>' . $name . '</td>'; $qs = query("SELECT id FROM card WHERE `name` = '{$name}'"); if ($arr = mysql_fetch_array($qs)) { $card_id = $arr['id']; } else { $masterlog .= 'Card not found : ' . $name; break; } $query = query("SELECT * FROM card_ext WHERE `card` = '{$card_id}' AND `ext` = '{$ext_id}' ;"); $log .= '<td>'; if ($res = mysql_fetch_object($query)) { } else { if ($apply) { query("INSERT INTO card_ext (`card`, `ext`, `rarity`, `nbpics`) VALUES ('{$card_id}', '{$ext_id}', 'C', '0') ;");
function card_search($get, $connec = null) { $data = new stdClass(); if (isset($get['page'])) { $data->page = intval($get['page']); unset($get['page']); } else { $data->page = 1; } if (isset($get['limit'])) { $data->limit = intval($get['limit']); unset($get['limit']); } else { $data->limit = 30; } $firstresult = ($data->page - 1) * $data->limit; $get['name'] = card_name_sanitize($get['name']); // Start to build query $select = '`card`.*'; $from = '`card`'; $where = ''; $order = '`card`.`name`'; // Special fields that modify query instead of just beeing searched if (isset($get['ext']) && $get['ext'] != '') { $select .= ', `extension`.`se`'; $from .= 'LEFT JOIN `card_ext` ON `card`.`id` = `card_ext`.`card` LEFT JOIN `extension` ON `card_ext`.`ext` = `extension`.`id`'; $where .= 'AND ( `extension`.`se` = \'' . $get['ext'] . '\' OR `extension`.`sea` = \'' . $get['ext'] . '\' )'; unset($get['ext']); } if (isset($get['lang'])) { if ($get['lang'] != 'en') { $data->lang = $get['lang']; $select .= ', `cardname`.`card_name` '; $from .= ' LEFT JOIN `cardname` ON `card`.`id` = `cardname`.`card_id`'; $where .= ' AND `cardname`.`lang` = "' . $get['lang'] . '"'; $where .= ' AND `cardname`.`card_name` LIKE "%' . $get['name'] . '%"'; unset($get['name']); // Don't search that name in card table, it has been searched in lang table $order = '`cardname`.`card_name`'; } unset($get['lang']); } // Normal fields $where .= get2where($get, 'LIKE', '%', '%', 'card'); // Parts acquired, merge and query $query = "SELECT {$select} FROM {$from} WHERE 1 {$where} ORDER BY {$order}"; $result = query($query, 'Card listing', $connec); $data->num_rows = mysql_num_rows($result); $data->cards = array(); while ($firstresult > 0 && ($obj = mysql_fetch_object($result))) { $firstresult--; } while (($obj = mysql_fetch_object($result)) && count($data->cards) < $data->limit) { $query = "SELECT extension.id, extension.se, extension.name, card_ext.nbpics\n\t\t\t\tFROM card_ext, extension\n\t\t\t\tWHERE\n\t\t\t\t\tcard_ext.nbpics != 0 AND\n\t\t\t\t\tcard_ext.card = '" . $obj->id . "' AND\n\t\t\t\t\tcard_ext.ext = extension.id\n\t\t\t\tORDER BY extension.priority DESC"; $result2 = query($query, 'Card\' extension', $connec); $obj->ext = array(); while ($obj_ext = mysql_fetch_object($result2)) { $obj->ext[] = $obj_ext; } $data->cards[] = $obj; } return $data; }
static function get($name, $ext = '') { $name = card_name_sanitize($name); // Parse image number $pic_num = 0; if (preg_match('/(.*) \\((\\d*)\\)/', $name, $matches)) { $name = $matches[1]; // Remove it from name $pic_num = intval($matches[2]); } // Search in cache foreach (Card::$cache as $card) { if ($card->name == $name) { return $card->extend($ext, $pic_num); } } // Search in DB global $db_cards; $name = $db_cards->escape($name); $cards = $db_cards->select("SELECT * FROM `card` WHERE `name` LIKE '{$name}'"); if (count($cards) > 1) { // Multiple cards found, bug echo count($cards) . " cards found : {$name}\n"; } else { if (count($cards) == 0) { echo "Card not found : [{$name}]\n"; return null; } } $card_obj = new Card($cards[0]); Card::$cache[] = $card_obj; return $card_obj->extend($ext, $pic_num); }