<?php require '../includes/config.php'; $cache_timer = time() - 86400; $stmt = $db->prepare('SELECT * FROM doctrines WHERE value_fetched <= ? LIMIT 1'); $stmt->execute(array($cache_timer)); $doctrine = $stmt->fetch(PDO::FETCH_ASSOC); if (isset($doctrine['doctrineid'])) { $stmt = $db->prepare('SELECT * FROM doctrines_fits WHERE doctrineid = ?'); $stmt->execute(array($doctrine['doctrineid'])); $fittings = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($fittings as $fitting) { echo "Previous fitting value: " . number_format($fitting['fitting_value']) . "<br />"; $fitting_value = Fitting::getFittingValue($fitting['fittingid'], $fitting['fitting_ship']); $stmt = $db->prepare('UPDATE doctrines_fits SET fitting_value = ? WHERE fittingid = ?'); $stmt->execute(array($fitting_value, $fitting['fittingid'])); echo "Fitting value added for Fitting " . number_format($fitting['fittingid']) . '<br />'; echo "New fitting value: " . number_format($fitting_value) . "<br />"; } $stmt = $db->prepare('UPDATE doctrines SET value_fetched = ? WHERE doctrineid = ?'); $stmt->execute(array(time(), $doctrine['doctrineid'])); } else { echo 'Nothing outside of 24 hour cache timer'; }
public static function addFitting($doctrineID, $fittingRaw, $fittingRole, $fittingPriority, $fittingNotes, $groupID, $user) { global $db; global $eve; // Turning the raw fitting into an array $fittingArray = explode("\n", $fittingRaw); // Removing the ship name and fitting name from the array. $shipRaw = $fittingArray[0]; unset($fittingArray[0]); // Breaking Apart the preg_match('/(.+?),(.+?)\\]/', $shipRaw, $shipMatches); $shipTypeName = trim(substr($shipMatches[1], 1)); $shipTypeID = $eve->getTypeID($shipTypeName); $shipFittingName = trim(substr($shipMatches[2], 1)); $stmt = $db->prepare('INSERT INTO doctrines_fits (gid,doctrineid,fitting_name,fitting_ship,fitting_role,fitting_priority,fitting_notes,fitting_value,' . 'lastupdated_time,lastupdated_user) VALUES (?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE fitting_name=VALUES(fitting_name),' . 'fitting_role=VALUES(fitting_role),fitting_priority=VALUES(fitting_priority),fitting_notes=VALUES(fitting_notes),fitting_value=VALUES(fitting_value),' . 'lastupdated_time=VALUES(lastupdated_time),lastupdated_user=VALUES(lastupdated_user)'); $stmt->execute(array($groupID, $doctrineID, $shipFittingName, $shipTypeID, $fittingRole, $fittingPriority, $fittingNotes, 0, time(), $user->getUsername())); $stmt = $db->prepare('SELECT fittingid FROM doctrines_fits WHERE fitting_name = ? AND doctrineid = ? AND gid = ?'); $stmt->execute(array($shipFittingName, $doctrineID, $groupID)); $fittingInfo = $stmt->fetch(); foreach ($fittingArray as $fitting) { $ammoCheck = strpos($fitting, ','); $emptyCheck = strpos($fitting, '[empty'); if ($ammoCheck !== FALSE) { $ammoArray = explode(",", $fitting); $fitting = $ammoArray[0]; } if ($emptyCheck !== FALSE) { $emptyArray = explode(" ", $fitting); $emptySlot = ucwords($emptyArray[1]); $stmt = $db->prepare('INSERT INTO doctrines_fittingmods (fittingid,type_id,module_quantity,module_slot) VALUEs (?,?,?,?)' . ' ON DUPLICATE KEY UPDATE module_quantity = module_quantity + VALUES(module_quantity)'); $stmt->execute(array($fittingInfo['fittingid'], 0, 1, $emptySlot)); } else { $fitting = trim($fitting); if ($fitting != '' and $fitting != 'Empty') { $fittingPreg = $fitting; preg_match('/^(.*)(\\s+x)(\\d+)?/', $fittingPreg, $matches); if (isset($matches[3]) and gettype($matches[3]) == 'string') { $quantity = $matches[3]; $typeName = $matches[1]; } else { $quantity = 1; $typeName = $fitting; } $typeID = $eve->getTypeID($typeName); if (strpos($typeName, 'Proteus') === FALSE and strpos($typeName, 'Loki') === FALSE and strpos($typeName, 'Legion') === FALSE and strpos($typeName, 'Tengu') === FALSE) { $moduleSlot = Fitting::getModuleSlot($typeID); } else { $moduleSlot = 'Subsystem'; } if ($typeID == NULL) { setAlert('danger', 'Unidentified Module Detected', 'The module ' . $typeName . ' does not exist, and may have been renamed by CCP. Please correct this module name and try again.'); $stmt = $db->prepare('DELETE FROM doctrines_fittingmods WHERE fittingid = ?'); $stmt->execute(array($fittingInfo['fittingid'])); $stmt = $db->prepare('DELETE FROM doctrines_fits WHERE fittingid = ? AND gid = ?'); $stmt->execute(array($fittingInfo['fittingid'], $user->getGroup())); break; } else { $stmt = $db->prepare('INSERT INTO doctrines_fittingmods (fittingid,type_id,module_quantity,module_slot) VALUES (?,?,?,?)' . ' ON DUPLICATE KEY UPDATE module_quantity = module_quantity + VALUES(module_quantity)'); $stmt->execute(array($fittingInfo['fittingid'], $typeID, $quantity, $moduleSlot)); } } } } $fitting_value = Fitting::getFittingValue($fittingInfo['fittingid'], $shipTypeID); $stmt = $db->prepare('UPDATE doctrines_fits SET fitting_value = ? WHERE fittingid = ?'); $stmt->execute(array($fitting_value, $fittingInfo['fittingid'])); }