Jump to content

dale0404

Members
  • Posts

    87
  • Joined

  • Last visited

Profile Information

  • Gender
    Male

dale0404's Achievements

Newbie

Newbie (1/14)

1

Reputation

  1. Is there any update for this as it looks bloody good!
  2. Did you get this sorted out mate?
  3. After work getting in the way of things Robin Hood Airlines is back in business!!
  4. dale0404

    Obsess Blue

    Could someone please pm me the stylesheet of this skin. I messed around with it a few weeks back and I cant quite remember what I changed!! Cheers Dale
  5. Made me chuckle. The link is at the bottom of the page, so what is the damn problem with it?
  6. Lose the pickle dude, go for a Guerkin!
  7. Just curious, can you post the code I used and the code you used? I am sure I copied and pasted correctly!
  8. Got 7 days to go mate, then I am all yours!
  9. I am using fivedev hosting and it still isnt working. Code: <?php /** * phpVMS - Virtual Airline Administration Software * Copyright (c) 2008 Nabeel Shahzad * For more information, visit www.phpvms.net * Forums: http://www.phpvms.net/forum * Documentation: http://www.phpvms.net/docs * * phpVMS is licenced under the following license: * Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) * View license.txt in the root, or visit http://creativecommons.org/licenses/by-nc-sa/3.0/ * * @author Nabeel Shahzad * @copyright Copyright (c) 2008, Nabeel Shahzad * @link http://www.phpvms.net * @license http://creativecommons.org/licenses/by-nc-sa/3.0/ */ class PilotData extends CodonData { public static $pilot_data = array(); /** * Find any pilots based on the parameters passed in * * @param array $params All the parameters * @param int $limit Number of results to return * @param int $start Record to start from * @return array Returns all the pilots requested * */ public static function findPilots($params, $limit='', $start = '') { $sql = "SELECT p.*, r.`rankimage`, r.`payrate` FROM ".TABLE_PREFIX."pilots p LEFT JOIN ".TABLE_PREFIX."ranks r ON r.rank=p.rank "; /* Build the select "WHERE" based on the columns passed, this is a generic function */ $sql .= DB::build_where($params); // Order matters if(Config::Get('PILOT_ORDER_BY') != '') { $sql .= ' ORDER BY '.Config::Get('PILOT_ORDER_BY'); } if(strlen($limit) != 0) { $sql .= ' LIMIT '.$limit; } if(strlen($start) != 0) { $sql .= ' OFFSET '. $start; } $ret = DB::get_results($sql); return $ret; } /** * Get all the pilots, or the pilots who's last names start * with the letter */ public static function getAllPilots($letter='') { $params = array(); if(!empty($letter)) { $params['lastname'] = $letter.'%'; } return self::findPilots($params); } /** * Get all the detailed pilot's information */ public static function getAllPilotsDetailed($limit=20, $start='') { return self::findPilots(array(), $limit, $start); } /** * Get a pilot's avatar */ public static function getPilotAvatar($pilotid) { if(is_numeric($pilotid)) { $pilot = self::getPilotData($pilotid); $last_location = PIREPData::getLastReports($pilotid, 1, PIREP_ACCEPTED); $pilotid = self::getPilotCode($pilot->code, $pilot->pilotid); } $link = AVATAR_PATH.'/'.$pilotid.'.png'; if(!file_exists(SITE_ROOT.'/'.$link)) { return SITE_URL.'/lib/images/noavatar.png'; } return SITE_URL.'/'.$link; } /** * Get all the pilots on a certain hub */ public static function getAllPilotsByHub($hub) { return self::findPilots(array('p.hub'=>$hub)); } /** * Return the pilot's code (ie DVA1031), using * the code and their DB ID */ public static function getPilotCode($code, $pilotid) { # Make sure values are entered if(Config::Get('PILOTID_LENGTH') == '') Config::Set('PILOTID_LENGTH', 4); if(Config::Get('PILOTID_OFFSET') == '') Config::Set('PILOTID_OFFSET', 0); $pilotid = $pilotid + Config::Get('PILOTID_OFFSET'); return $code . str_pad($pilotid, Config::Get('PILOTID_LENGTH'), '0', STR_PAD_LEFT); } /** * The the basic pilot information * Quasi 'cached' in case it's called multiple times * for the same pilot in one script */ public static function getPilotData($pilotid) { $pilot = self::findPilots(array('p.pilotid' => $pilotid), 1); if(!$pilot) { return false; } return $pilot[0]; } /** * Get a pilot's information by email */ public static function getPilotByEmail($email) { $pilot = self::findPilots(array('p.email'=>$email)); if(!$pilot) { return false; } return $pilot[0]; } /** * Parse a pilot ID from a passed ID * * @param int $pilotid Pass the ID string * @return int Returns the integer database ID * */ public static function getProperPilotID($pilotid) { return self::parsePilotID($pilotid); } /** * Parse a pilot ID from a passed ID * * @param int $pilotid Pass the ID string * @return int Returns the integer database ID * */ public static function parsePilotID($pilotid) { if(!is_numeric($pilotid)) { $airlines = OperationsData::getAllAirlines(); foreach($airlines as $a) { $a->code = strtoupper($a->code); if(strpos($pilotid, $a->code) === false) { continue; } $pilotid = intval(str_ireplace($a->code, '', $pilotid)); $pilotid = $pilotid - Config::Get('PILOTID_OFFSET'); } } return $pilotid; } /** * Get the list of all the pending pilots */ public static function getPendingPilots($count='') { $params = array( 'p.confirmed' => PILOT_PENDING ); return self::findPilots($params, $count); } public static function getLatestPilots($count=10) { $sql = 'SELECT * FROM '.TABLE_PREFIX.'pilots ORDER BY `pilotid` DESC LIMIT '.$count; return DB::get_results($sql); } /** * Change a pilot's name. This is separate because this is an * admin-only operation (strictly speaking), and isn't included * in a normal change of a pilot's profile (whereas SaveProfile * only changes minute information */ public static function changeName($pilotid, $firstname, $lastname) { # Non-blank if(empty($pilotid) || empty($firstname) || empty($lastname)) { return false; } $params = array( 'firstname' => $firstname, 'lastname' => $lastname, ); return self::updateProfile($pilotid, $params); } public static function changePilotID($old_pilotid, $new_pilotid) { $pilot_exists = self::getPilotData($new_pilotid); if(is_object($pilot_exists)) { return false; } DB::query('SET foreign_key_checks = 0;'); // List of all the tables which need to update $table_list = array( 'groupmembers', 'pilots', 'adminlog', 'awardsgranted', 'acarsdata', 'sessions', 'pireps', 'pirepcomments', 'fieldvalues', 'bids', ); foreach($table_list as $table) { $sql = 'UPDATE `'.TABLE_PREFIX.$table.'` SET `pilotid`='.$new_pilotid.' WHERE `pilotid`='.$old_pilotid; DB::query($sql); //DB::debug(); } return true; } public static function changePilotRank($pilotid, $rankid) { $rank = RanksData::getRankInfo($rankid); $rank_level = RanksData::getRankLevel($rankid); if(!$rank) { return false; } $data = array( 'rankid' => $rank->rankid, 'rank' => $rank->rank, 'ranklevel' => $rank_level, ); return self::updateProfile($pilotid, $data); } /** * Save any changes to a pilot's profile, calls updateProfile() * * @deprecated Use updateProfile() instead!! * */ /*public static function saveProfile($params) { $pilotid = $params['pilotid']; unset($params['pilotid']); return self::updateProfile($pilotid, $params); }*/ /** * Update a pilot, $params is an array of column_name=>value * * @param mixed $pilotid This is a description * @param mixed $params This is a description * @return mixed This is the return value description * */ public static function updateProfile($pilotid, $params) { /*$params = array( 'pilotid' => '', 'code' => '', 'email' => '', 'location' => '', 'hub' => '', 'bgimage' => '', 'retired' => false, );*/ if(!is_array($params)) { return false; } /* Cleanup any specific parameters */ if(isset($params['location'])) { $params['location'] = strtoupper($params['location']); } if(isset($params['retired'])) { if(is_bool($params['retired'])) { //$params['retired'] = intval($params['retired']); # The above doesn't work for false =\ if($params['retired'] == true) $params['retired'] = 1; else $params['retired'] = 0; } } if(isset($params['pilotid'])) { unset($params['pilotid']); } $sql = "UPDATE ".TABLE_PREFIX."pilots SET "; $sql .= DB::build_update($params); $sql .= " WHERE `pilotid`={$pilotid}"; $res = DB::query($sql); if(DB::errno() != 0) { return false; } return true; } public static function updatePilotRankLevels() { $all_pilots = self::findPilots(array()); foreach($all_pilots as $pilot) { $rank_level = RanksData::getRankLevel($pilot->rankid); self::updateProfile($pilot->pilotid, array('ranklevel'=>$rank_level)); } } public static function setPilotRetired($pilotid, $retired) { if($retired === true || $retired == '1') { $retired = 1; } else { $retired = 0; } return self::updateProfile($pilotid, array('retired'=>$retired)); } /** * Returns an array with a list of background images available * * @return array The background images list * */ public static function getBackgroundImages() { $list = array(); $files = scandir(SITE_ROOT.'/lib/signatures/background'); foreach($files as $file) { if($file == '.' || $file == '..') continue; if(strstr($file, '.png') !== false) $list[] = $file; } return $list; } /** * Save avatars */ public static function saveAvatar($code, $pilotid, $_FILES) { # Check the proper file size # Ignored for now since there is a resize /*if ($_FILES['avatar']['size'] > Config::Get('AVATAR_FILE_SIZE')) { return false; }*/ if(!$_FILES['avatar']['type']) return false; # Create the image so we can convert it to PNG if($_FILES['avatar']['type'] == 'image/gif') { $img = imagecreatefromgif($_FILES['file']['tmp_name']); } elseif($_FILES['avatar']['type'] == 'image/jpeg' || $_FILES['avatar']['type'] == 'image/pjpeg') { $img = imagecreatefromjpeg($_FILES['avatar']['tmp_name']); } elseif($_FILES['avatar']['type'] == 'image/png') { $img = imagecreatefrompng($_FILES['avatar']['tmp_name']); } # Resize it $height = imagesy($img); $width = imagesx($img); $new_width = Config::Get('AVATAR_MAX_WIDTH'); $new_height = floor( $height * ( Config::Get('AVATAR_MAX_HEIGHT') / $width ) ); $avatarimg = imagecreatetruecolor($new_width, $new_height); imagecopyresized($avatarimg, $img, 0,0,0,0,$new_width, $new_height, $width, $height); # Output the file, to /lib/avatar/pilotcode.png $pilotCode = self::getPilotCode($code, $pilotid); imagepng($avatarimg, SITE_ROOT.AVATAR_PATH.'/'.$pilotCode.'.png'); imagedestroy($img); } /** * Accept the pilot (allow them into the system) */ public static function AcceptPilot($pilotid) { return self::updateProfile($pilotid, array('confirmed'=>PILOT_ACCEPTED, 'retired'=>'0')); } /** * Reject a pilot */ public static function RejectPilot($pilotid) { return self::DeletePilot($pilotid); } /** * Completely delete a pilot * * @param int $pilotid Pilot ID * @return mixed This is the return value description * */ public static function deletePilot($pilotid) { $sql = array(); unset(self::$pilot_data[$pilotid]); $sql[] = 'DELETE FROM '.TABLE_PREFIX.'acarsdata WHERE pilotid='.$pilotid; $sql[] = 'DELETE FROM '.TABLE_PREFIX.'bids WHERE pilotid='.$pilotid; $sql[] = 'DELETE FROM '.TABLE_PREFIX.'pireps WHERE pilotid='.$pilotid; $sql[] = 'DELETE FROM '.TABLE_PREFIX.'pilots WHERE pilotid='.$pilotid; # These SHOULD delete on cascade, but incase they don't $sql[] = 'DELETE FROM '.TABLE_PREFIX.'fieldvalues WHERE pilotid='.$pilotid; $sql[] = 'DELETE FROM '.TABLE_PREFIX.'groupmembers WHERE pilotid='.$pilotid; $sql[] = 'DELETE FROM '.TABLE_PREFIX.'pirepcomments WHERE pilotid='.$pilotid; foreach($sql as $query) { $res = DB::query($query); } if(DB::errno() != 0) return false; return true; } /** * Update the login time */ public static function updateLogin($pilotid) { return self::updateProfile($pilotid, array( 'lastlogin'=>'NOW()', 'lastip' => $_SERVER['REMOTE_ADDR'], ) ); } public static function getPilotHours($pilotid) { $sql = 'SELECT `flighttime` FROM '.TABLE_PREFIX.'pireps WHERE `accepted`='.PIREP_ACCEPTED.' AND `pilotid`='.$pilotid; $pireps = DB::get_results($sql); if(!$pireps) return '0.0'; $total = 0; foreach($pireps as $report) { $total = Util::AddTime($total, $report->flighttime); } return $total; } /** * Get the total number of hours for a pilot, add them up * * @param int $pilotid The pilot ID * @return int Total hours for pilot * */ public static function updateFlightHours($pilotid) { $total = self::getPilotHours($pilotid); $ret = self::updateProfile($pilotid, array('totalhours'=>$total)); return $total; } /** * Update a pilot's flight data, ie after a pirep * * @param int $pilotid Pilot ID * @param int $flighttime Number of hours.minutes to increment by * @param int $numflights Number of flights (default 1) * @return bool Success * */ public static function updateFlightData($pilotid, $flighttime, $numflights=1) { # Update the flighttime $pilotdata = PilotData::getPilotData($pilotid); $flighttime = Util::AddTime($pilotdata->totalhours, $flighttime); if($numflights == '') $numflights = 1; $params = array( 'totalhours' => $flighttime, 'totalflights' => ($pilotdata->totalflights + $numflights), ); return self::updateProfile($pilotid, $params); } public static function updatePilotStats($pilotid) { $pireps = PIREPData::findPIREPS(array('p.pilotid'=>$pilotid)); $totalpireps = 0; $totalhours = 0; if(is_array($pireps)) { foreach($pireps as $p) { if($p->accepted != PIREP_ACCEPTED) { continue; } $totalpireps++; $totalhours = Util::AddTime($p->flighttime, $totalhours); } } $params = array( 'totalhours'=>$totalhours, 'totalflights'=>$totalpireps, ); return self::updateProfile($pilotid, $params); } /** * Update the last PIREP date for a pilot * * @param int $pilotid Pilot ID * @return bool Success * */ public static function updateLastPIREPDate($pilotid) { return self::updateProfile($pilotid, array('lastpirep'=>'NOW()')); } /** * Don't update the pilot's flight data, but just replace it * with the values given * * $data = array( 'pilotid' => '', 'flighttime' => '', 'numflights' => '', 'totalpay' => '', 'transferhours' => '', ); * * @param int $pilotid Pilot ID * @param int $flighttime Number of flight hours * @param int $numflights Number of flights * @param int $totalpay The total amount of money they have * @return bool Success * */ public static function replaceFlightData($params) { /*$data = array( 'pilotid' => '', 'flighttime' => '', 'numflights' => '', 'totalpay' => '', 'transferhours' => '', );*/ $pilotid = $data['pilotid']; unset($data['pilotid']); return self::updateProfile($pilotid, $params); } public static function resetPilotPay($pilotid) { $total = 0; self::updateProfile($pilotid, array('totalpay'=>0)); $sql = "SELECT `pirepid`, `flighttime`, `pilotpay` FROM ".TABLE_PREFIX."pireps WHERE `pilotid`={$pilotid}"; $results = DB::get_results($sql); if(!$results) { return $total; } foreach($results as $row) { $payupdate = self::getPilotPay($row->flighttime, $row->pilotpay); $total += $payupdate; } self::updateProfile($pilotid, array('totalpay'=>$total)); return $total; } /** * Update a pilot's pay. Pass the pilot ID, and the number of * hours they are being paid for * * @param int $pilotid The pilot ID * @param int $flighthours Number of hours to pay the pilot for * @return bool Success * */ public static function updatePilotPay($pilotid, $flighthours) { $sql = 'SELECT payrate FROM '.TABLE_PREFIX.'ranks r, '.TABLE_PREFIX.'pilots p WHERE p.rank=r.rank AND p.pilotid='.$pilotid; $payrate = DB::get_row($sql); $payupdate = self::getPilotPay($flighthours, $payrate->payrate); $sql = 'UPDATE '.TABLE_PREFIX.'pilots SET totalpay=totalpay+'.$payupdate.' WHERE pilotid='.$pilotid; DB::query($sql); if(DB::errno() != 0) return false; return true; } /** * Get the total pay for a flight at a certain rate, * for a certain number of hours * * @param float $hours Number of hours in Hours.Minutes format * @param float $rate Hourly rate * @return float Returns the total * */ public static function getPilotPay($hours, $rate) { /* Hours are in hours.minutes convert to minutes */ $peices = explode('.', $hours); $minutes = ($peices[0] * 60) + $peices[1]; $payupdate = $minutes * ($rate/60); return $payupdate; } /** * Find and set any pilots as retired * * @return mixed This is the return value description * */ public static function findRetiredPilots() { $days = Config::Get('PILOT_INACTIVE_TIME'); if($days == '') $days = 90; $sql = "SELECT * FROM ".TABLE_PREFIX."pilots WHERE DATE_SUB(CURDATE(), INTERVAL {$days} DAY) > `lastlogin` AND `totalflights` = 0 AND `lastlogin` != 0 AND `retired` = 0"; $results = DB::get_results($sql); $sql = "SELECT * FROM ".TABLE_PREFIX."pilots WHERE DATE_SUB(CURDATE(), INTERVAL {$days} DAY) > `lastpirep` AND `totalflights` > 0 AND `lastpirep` != 0 AND `retired` = 0"; $results2 = DB::get_results($sql); // messy but two queries, merge them both if(!is_array($results) && !is_array($results2)) { return false; } else { if(is_array($results) && is_array($results2)) { $results = array_merge($results, $results2); } if(!is_array($results) && is_array($results2)) { $results = $results2; } } if(!$results) { return false; } foreach($results as $row) { // Set them retired self::updateProfile($row->pilotid, array('retired'=>1)); Template::Set('pilot', $row); $pilot_retired_template = Template::Get('email_pilot_retired.tpl', true, true, true); Util::SendEmail($row->email, Lang::get('email.pilot.retired.subject'), $pilot_retired_template); } } /** * This saves all of the custom fields attributed to pilot * Pass an associated array (fieldname NOT title) to value * * @param int $pilotid Pilot ID * @param array $list fieldname=>fieldvalue associated array * @return bool Success value * */ public static function SaveFields($pilotid, $list) { $allfields = RegistrationData::getCustomFields(true); if(!$allfields) return true; foreach($allfields as $field) { $sql = 'SELECT id FROM '.TABLE_PREFIX.'fieldvalues WHERE fieldid='.$field->fieldid.' AND pilotid='.$pilotid; $res = DB::get_row($sql); $fieldname =str_replace(' ', '_', $field->fieldname); if(!isset($list[$fieldname])) continue; $value = $list[$fieldname]; // if it exists if($res) { $sql = 'UPDATE '.TABLE_PREFIX.'fieldvalues SET value="'.$value.'" WHERE fieldid='.$field->fieldid.' AND pilotid='.$pilotid; } else { $sql = "INSERT INTO ".TABLE_PREFIX."fieldvalues (fieldid, pilotid, value) VALUES ($field->fieldid, $pilotid, '$value')"; } DB::query($sql); } return true; } /** * Get all of the custom fields and values for a pilot * * @param int $pilotid The pilot ID * @param bool $inclprivate TRUE to also include private fields (default false) * @return array Returns all of the fields (names and values) * */ public static function getFieldData($pilotid, $inclprivate=false) { $sql = 'SELECT f.fieldid, f.title, f.type, f.fieldname, f.value as fieldvalues, v.value, f.public FROM '.TABLE_PREFIX.'customfields f LEFT JOIN '.TABLE_PREFIX.'fieldvalues v ON f.fieldid=v.fieldid AND v.pilotid='.$pilotid; if($inclprivate == false) $sql .= ' WHERE f.public=1 '; return DB::get_results($sql); } /** * Get the value of a "custom field" for a pilot * * @param int $pilotid The pilot ID * @param string $title Full title of field, as enter "VATSIM ID" * @return string Returns the value of that field * */ public static function getFieldValue($pilotid, $title) { $sql = "SELECT f.fieldid, v.value FROM ".TABLE_PREFIX."customfields f, ".TABLE_PREFIX."fieldvalues v WHERE f.fieldid=v.fieldid AND f.title='$title' AND v.pilotid=$pilotid"; $res = DB::get_row($sql); return $res->value; } /** * Get all of the groups a pilot is a member of * * @param int $pilotid The pilot ID * @return array Groups the pilot is in (groupid and groupname) * */ public static function getPilotGroups($pilotid) { $pilotid = DB::escape($pilotid); $sql = 'SELECT g.groupid, g.name FROM ' . TABLE_PREFIX . 'groupmembers u,'.TABLE_PREFIX.'groups g WHERE u.pilotid='.$pilotid.' AND g.groupid=u.groupid'; $ret = DB::get_results($sql); return $ret; } /** * This generates the forum signature of a pilot which * can be used wherever. It's dynamic, and adjusts it's * size, etc based on the background image. * * Each image is output into the /lib/signatures directory, * and is named by the pilot code+number (ie, VMA0001.png) * * This is called whenever a PIREP is accepted by an admin, * as not to burden a server with image generation * * Also requires GD to be installed on the server * * @param int The pilot ID for which to generate a signature for * @return bool Success */ public function generateSignature($pilotid) { $pilot = self::getPilotData($pilotid); $pilotcode = self::getPilotCode($pilot->code, $pilot->pilotid); if(Config::Get('TRANSFER_HOURS_IN_RANKS') === true) { $totalhours = $pilot->totalhours + $pilot->transferhours; } else { $totalhours = $pilot->totalhours; } # Configure what we want to show on each line $output = array(); $output[] = $pilotcode.' '. $pilot->firstname.' '.$pilot->lastname; $output[] = $pilot->rank.', '.$pilot->hub; $output[] = 'Total Flights: ' . $pilot->totalflights; $output[] = 'Total Hours: ' . $totalhours; if(Config::Get('SIGNATURE_SHOW_EARNINGS') == true) { $output[] = 'Total Earnings: ' . $pilot->totalpay; $output[] = 'Last Location: ' . $last_location->arricao; } # Load up our image # Get the background image the pilot selected if(empty($pilot->bgimage)) $bgimage = SITE_ROOT.'/lib/signatures/background/background.png'; else $bgimage = SITE_ROOT.'/lib/signatures/background/'.$pilot->bgimage; if(!file_exists($bgimage)) { # Doesn't exist so use the default $bgimage = SITE_ROOT.'/lib/signatures/background/background.png'; if(!file_exists($bgimage)) { return false; } } $img = @imagecreatefrompng($bgimage); if(!$img) { $img = imagecreatetruecolor(300, 50); } $height = imagesy($img); $width = imagesx($img); $txtcolor = str_replace('#', '', Config::Get('SIGNATURE_TEXT_COLOR')); $color = sscanf($txtcolor, '%2x%2x%2x'); $textcolor = imagecolorallocate($img, $color[0], $color[1], $color[2]); $font = 3; // Set the font-size $xoffset = Config::Get('SIGNATURE_X_OFFSET'); # How many pixels, from left, to start $yoffset = Config::Get('SIGNATURE_Y_OFFSET'); # How many pixels, from top, to start $font = Config::Get('SIGNATURE_FONT_PATH'); $font_size = Config::Get('SIGNATURE_FONT_SIZE'); if(function_exists('imageantialias')) { imageantialias($img, true); } /* Font stuff */ if(!function_exists('imagettftext')) { Config::Set('SIGNATURE_USE_CUSTOM_FONT', false); } # The line height of each item to fit nicely, dynamic if(Config::Get('SIGNATURE_USE_CUSTOM_FONT') == false) { $stepsize = imagefontheight($font); $fontwidth = imagefontwidth($font); } else { // get the font width and step size $bb = imagettfbbox ( $font_size, 0, $font, 'A'); $stepsize = $bb[3] - $bb[5] + Config::Get('SIGNATURE_FONT_PADDING'); $fontwidth = $bb[2] - $bb[0]; } $currline = $yoffset; $total = count($output); for($i=0;$i<$total;$i++) { if(Config::Get('SIGNATURE_USE_CUSTOM_FONT') == false) { imagestring($img, $font, $xoffset, $currline, $output[$i], $textcolor); } else { // Use TTF $tmp = imagettftext($img, $font_size, 0, $xoffset, $currline, $textcolor, $font, $output[$i]); // Flag is placed at the end of of the first line, so have that bounding box there if($i==0) { $flag_bb = $tmp; } } $currline+=$stepsize; } # Add the country flag, line it up with the first line, which is the # pilot code/name $country = strtolower($pilot->location); if(file_exists(SITE_ROOT.'/lib/images/countries/'.$country.'.png')) { $flagimg = imagecreatefrompng(SITE_ROOT.'/lib/images/countries/'.$country.'.png'); if(Config::Get('SIGNATURE_USE_CUSTOM_FONT') == false) { $ret = imagecopy($img, $flagimg, strlen($output[0])*$fontwidth, ($yoffset+($stepsize/2)-5.5), 0, 0, 16, 11); } else { # figure out where it would go $ret = imagecopy($img, $flagimg, $flag_bb[4]+5, $flag_bb[5]+2, 0, 0, 16, 11); } } # Add the Rank image if(Config::Get('SIGNATURE_SHOW_RANK_IMAGE') == true && $pilot->rankimage!='' && file_exists($pilot->rankimage)) { $ext = substr($pilot->rankimage, strlen($pilot->rankimage)-3, 3); # Get the rank image type, just jpg, gif or png if($ext == 'png') $rankimg = @imagecreatefrompng($pilot->rankimage); elseif($ext == 'gif') $rankimg = @imagecreatefromgif($pilot->rankimage); else $rankimg = @imagecreatefromjpg($pilot->rankimage); if(!$rankimg) { echo '';} else { $r_width = imagesx($rankimg); $r_height = imagesy($rankimg); imagecopy($img, $rankimg, $width-$r_width-$xoffset, $yoffset, 0, 0, $r_width, $r_height); } } if(Config::Get('SIGNATURE_SHOW_COPYRIGHT') == true) { # # DO NOT remove this, as per the phpVMS license $font = 1; $text = 'powered by phpvms, '. SITE_NAME.' '; imagestring($img, $font, $width-(strlen($text)*imagefontwidth($font)), $height-imagefontheight($font), $text, $textcolor); } imagepng($img, SITE_ROOT.SIGNATURE_PATH.'/'.$pilotcode.'.png', 1); imagedestroy($img); } }
  10. I got the same thing lol, Matthew, sort it out dude!
  11. Gents, I have searched and searched with all the different spellings and abbreviations of FSpassengersX I can think of but to no avail I'm afraid. I am looking to integrate FSpassengersX into my website, could someone point me in the right direction if there is a thread I have missed or could someone explain how to do this. Thanks Dale
  12. This might be your answer mate, I had the same kind of problem with the recaptcha stuff: From Nabeel: That skin is not updated to 2.1, so you need to update it using the stock registration_mainform.tpl from /core/templates folder (copy it into your skin's folder). You might want to post in the topic for that skin asking for it to be updated
  13. crash, not to derail this thread, could you please explain how you have managed to get your last location on your sig please? I know there is a thread about it which I have followed but you'll see a slight problem with my sig, ie it doesnt show the location!
  14. Ok that is certainly cool!
×
×
  • Create New...