/** * Handles warning the user */ function mcp_warn_user_view($action) { global $phpEx, $phpbb_root_path, $config, $module; global $template, $db, $user, $auth; $user_id = request_var('u', 0); $username = request_var('username', '', true); $notify = (isset($_REQUEST['notify_user'])) ? true : false; $warning = utf8_normalize_nfc(request_var('warning', '', true)); $sql_where = ($user_id) ? "user_id = $user_id" : "username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'"; $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE ' . $sql_where; $result = $db->sql_query($sql); $user_row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$user_row) { trigger_error('NO_USER'); } // Prevent someone from warning themselves if ($user_row['user_id'] == $user->data['user_id']) { trigger_error('CANNOT_WARN_SELF'); } $user_id = $user_row['user_id']; if (strpos($this->u_action, "&u=$user_id") === false) { $this->p_master->adjust_url('&u=' . $user_id); $this->u_action .= "&u=$user_id"; } if ($warning && $action == 'add_warning') { if (check_form_key('mcp_warn')) { add_warning($user_row, $warning, $notify); $msg = $user->lang['USER_WARNING_ADDED']; } else { $msg = $user->lang['FORM_INVALID']; } $redirect = append_sid("{$phpbb_root_path}mcp.$phpEx", "i=notes&mode=user_notes&u=$user_id"); meta_refresh(2, $redirect); trigger_error($msg . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a>')); } // Generate the appropriate user information for the user we are looking at if (!function_exists('get_user_avatar')) { include($phpbb_root_path . 'includes/functions_display.' . $phpEx); } $rank_title = $rank_img = ''; $avatar_img = get_user_avatar($user_row['user_avatar'], $user_row['user_avatar_type'], $user_row['user_avatar_width'], $user_row['user_avatar_height']); // OK, they didn't submit a warning so lets build the page for them to do so $template->assign_vars(array( 'U_POST_ACTION' => $this->u_action, 'USERNAME' => $user_row['username'], 'USER_COLOR' => (!empty($user_row['user_colour'])) ? $user_row['user_colour'] : '', 'RANK_TITLE' => $rank_title, 'JOINED' => $user->format_date($user_row['user_regdate']), 'POSTS' => ($user_row['user_posts']) ? $user_row['user_posts'] : 0, 'WARNINGS' => ($user_row['user_warnings']) ? $user_row['user_warnings'] : 0, 'AVATAR_IMG' => $avatar_img, 'RANK_IMG' => $rank_img, )); return $user_id; }
case rectype_daily: case rectype_weekly: break; // Everything else gets ignored // Everything else gets ignored default: $_POST['record'] = 0; } // Cancelling a schedule? if ($_POST['record'] == 0) { // Cancel this schedule if ($schedule && $schedule->recordid) { // Delete the schedule $schedule->delete(); // Redirect back to the schedule list add_warning(t('The requested recording schedule has been deleted.')); save_session_errors(); header('Location: ' . root_url . 'tv/schedules'); exit; } } else { // Set things as the user requested $schedule->profile = $_POST['profile']; $schedule->recgroup = $_POST['recgroup']; $schedule->storagegroup = $_POST['storagegroup']; $schedule->playgroup = $_POST['playgroup']; $schedule->autoexpire = $_POST['autoexpire'] ? 1 : 0; $schedule->autocommflag = $_POST['autocommflag'] ? 1 : 0; $schedule->autouserjob1 = $_POST['autouserjob1'] ? 1 : 0; $schedule->autouserjob2 = $_POST['autouserjob2'] ? 1 : 0; $schedule->autouserjob3 = $_POST['autouserjob3'] ? 1 : 0;
$query .= " {$compare} {$search}"; } $query .= ')'; } } } elseif (preg_match('/^\\s*canned:\\s*(.+)\\s*$/i', $_SESSION['search']['s'], $search_name)) { $search_name = $search_name[1]; // Load the canned searches require_once 'modules/tv/canned_searches.conf.php'; // Load the local canned searches (if it exists) if (file_exists('configuration/canned_searches.conf.php')) { include 'configuration/canned_searches.conf.php'; } // Find the query if (empty($Canned_Searches[$search_name])) { add_warning("Unknown canned query: {$search_name}"); } else { $query = $Canned_Searches[$search_name]; } } else { // Make a backup so we can edit it without affecting the original $search_str = $_SESSION['search']['s']; // If it starts with hd: it's an hd-only search if (preg_match('/^hd:\\s*(.+)$/', $search_str, $match)) { $extra_query[] = 'program.hdtv & 1'; $search_str = $match[1]; } // If the next thing starts with stars, it's a movie rating query if (preg_match('#(\\*+\\s*(1/2\\b|0?\\.5\\b|-)?)\\s*(.*?)$#', $search_str, $match)) { $starcount = substr_count($match[1], '*') / 4; if (preg_match('/1\\/2|\\.5|-/', $match[1])) {
unset($_SESSION['recorded_title']); continue; } // Catch anything else $_REQUEST['refresh'] = true; $warning = t('Showing all programs.'); unset($_REQUEST['title'], $_REQUEST['recgroup']); unset($_SESSION['recorded_title'], $_SESSION['recorded_recgroup']); continue; } // Did the best we could to find some programs; let's move on. break; } // Warning? if (!empty($warning)) { add_warning(t('No matching programs found.') . "\n" . $warning); } // Now that we've selected only certain shows, load them into objects $All_Shows = array(); foreach ($Programs as $title => $shows) { foreach ($shows as $key => $record) { // Create a new program object $show =& new Program($record); // Assign a reference to this show to the various arrays $All_Shows[] =& $show; $Programs[$title][$key] =& $show; $channel =& Channel::find($show->chanid); $channel->programs[] =& $show; unset($show); } }
/** * Handles warning the user */ function mcp_warn_user_view($action) { global $phpEx, $phpbb_root_path, $config, $request; global $template, $db, $user, $phpbb_dispatcher; $user_id = $request->variable('u', 0); $username = $request->variable('username', '', true); $notify = isset($_REQUEST['notify_user']) ? true : false; $warning = $request->variable('warning', '', true); $sql_where = $user_id ? "user_id = {$user_id}" : "username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'"; $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE ' . $sql_where; $result = $db->sql_query($sql); $user_row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$user_row) { trigger_error('NO_USER'); } // Prevent someone from warning themselves if ($user_row['user_id'] == $user->data['user_id']) { trigger_error('CANNOT_WARN_SELF'); } $user_id = $user_row['user_id']; if (strpos($this->u_action, "&u={$user_id}") === false) { $this->p_master->adjust_url('&u=' . $user_id); $this->u_action .= "&u={$user_id}"; } // Check if can send a notification if ($config['allow_privmsg']) { $auth2 = new \phpbb\auth\auth(); $auth2->acl($user_row); $s_can_notify = $auth2->acl_get('u_readpm') ? true : false; unset($auth2); } else { $s_can_notify = false; } // Prevent against clever people if ($notify && !$s_can_notify) { $notify = false; } if ($warning && $action == 'add_warning') { if (check_form_key('mcp_warn')) { $s_mcp_warn_user = true; /** * Event for before warning a user from MCP. * * @event core.mcp_warn_user_before * @var array user_row The entire user row * @var string warning The warning message * @var bool notify If true, we notify the user for the warning * @var bool s_mcp_warn_user If true, we add the warning else we omit it * @since 3.1.0-b4 */ $vars = array('user_row', 'warning', 'notify', 's_mcp_warn_user'); extract($phpbb_dispatcher->trigger_event('core.mcp_warn_user_before', compact($vars))); if ($s_mcp_warn_user) { add_warning($user_row, $warning, $notify); $message = $user->lang['USER_WARNING_ADDED']; /** * Event for after warning a user from MCP. * * @event core.mcp_warn_user_after * @var array user_row The entire user row * @var string warning The warning message * @var bool notify If true, the user was notified for the warning * @var string message Message displayed to the moderator * @since 3.1.0-b4 */ $vars = array('user_row', 'warning', 'notify', 'message'); extract($phpbb_dispatcher->trigger_event('core.mcp_warn_user_after', compact($vars))); } } else { $message = $user->lang['FORM_INVALID']; } if (!empty($message)) { $redirect = append_sid("{$phpbb_root_path}mcp.{$phpEx}", "i=notes&mode=user_notes&u={$user_id}"); meta_refresh(2, $redirect); trigger_error($message . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a>')); } } // Generate the appropriate user information for the user we are looking at if (!function_exists('phpbb_get_user_rank')) { include $phpbb_root_path . 'includes/functions_display.' . $phpEx; } $user_rank_data = phpbb_get_user_rank($user_row, $user_row['user_posts']); $avatar_img = phpbb_get_user_avatar($user_row); // OK, they didn't submit a warning so lets build the page for them to do so $template->assign_vars(array('U_POST_ACTION' => $this->u_action, 'RANK_TITLE' => $user_rank_data['title'], 'JOINED' => $user->format_date($user_row['user_regdate']), 'POSTS' => $user_row['user_posts'] ? $user_row['user_posts'] : 0, 'WARNINGS' => $user_row['user_warnings'] ? $user_row['user_warnings'] : 0, 'USERNAME_FULL' => get_username_string('full', $user_row['user_id'], $user_row['username'], $user_row['user_colour']), 'USERNAME_COLOUR' => get_username_string('colour', $user_row['user_id'], $user_row['username'], $user_row['user_colour']), 'USERNAME' => get_username_string('username', $user_row['user_id'], $user_row['username'], $user_row['user_colour']), 'U_PROFILE' => get_username_string('profile', $user_row['user_id'], $user_row['username'], $user_row['user_colour']), 'AVATAR_IMG' => $avatar_img, 'RANK_IMG' => $user_rank_data['img'], 'S_CAN_NOTIFY' => $s_can_notify)); return $user_id; }
/** * Handles warning the user */ function mcp_warn_user_view($id, $mode, $action) { global $phpEx, $phpbb_root_path, $config; global $template, $db, $user, $auth; $user_id = request_var('u', 0); $username = request_var('username', '', true); $notify = isset($_REQUEST['notify_user']) ? true : false; $warning = request_var('warning', '', true); $sql_where = $user_id ? "user_id = {$user_id}" : "username = '******'"; $sql = 'SELECT * FROM ' . USERS_TABLE . ' WHERE ' . $sql_where; $result = $db->sql_query($sql); $userrow = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!$userrow) { trigger_error('NO_USER'); } $user_id = $userrow['user_id']; if ($warning && $action == 'add_warning') { add_warning($userrow, $warning, $notify); $redirect = append_sid("{$phpbb_root_path}mcp.{$phpEx}", "i=notes&mode=user_notes&u={$user_id}"); meta_refresh(2, $redirect); trigger_error($user->lang['USER_WARNING_ADDED'] . '<br /><br />' . sprintf($user->lang['RETURN_PAGE'], '<a href="' . $redirect . '">', '</a>')); } // Generate the appropriate user information for the user we are looking at $rank_title = $rank_img = ''; // get_user_rank($userrow['user_rank'], $userrow['user_posts'], $rank_title, $rank_img); $avatar_img = ''; if (!empty($userrow['user_avatar'])) { switch ($userrow['user_avatar_type']) { case AVATAR_UPLOAD: $avatar_img = $config['avatar_path'] . '/'; break; case AVATAR_GALLERY: $avatar_img = $config['avatar_gallery_path'] . '/'; break; } $avatar_img .= $userrow['user_avatar']; $avatar_img = '<img src="' . $avatar_img . '" width="' . $userrow['user_avatar_width'] . '" height="' . $userrow['user_avatar_height'] . '" alt="" />'; } // OK, they didn't submit a warning so lets build the page for them to do so $template->assign_vars(array('U_POST_ACTION' => append_sid("{$phpbb_root_path}mcp.{$phpEx}", "i={$id}&mode={$mode}&u={$user_id}"), 'USERNAME' => $userrow['username'], 'USER_COLOR' => !empty($userrow['user_colour']) ? $userrow['user_colour'] : '', 'RANK_TITLE' => $rank_title, 'JOINED' => $user->format_date($userrow['user_regdate']), 'POSTS' => $userrow['user_posts'] ? $userrow['user_posts'] : 0, 'WARNINGS' => $userrow['user_warnings'] ? $userrow['user_warnings'] : 0, 'AVATAR_IMG' => $avatar_img, 'RANK_IMG' => $rank_img)); }
function gen_docs($name, $type) { /* {{{ */ global $OPTION, $INFO; if ($type & DOC_EXTENSION) { try { $extension = new ReflectionExtension($name); $INFO['actual_extension'] = $name; write_doc($extension, DOC_EXTENSION); foreach ($extension->getClasses() as $class) { gen_docs($class->name, DOC_CLASS); } foreach ($extension->getFunctions() as $function) { gen_docs($function->name, DOC_FUNCTION); } } catch (Exception $e) { die('Error: ' . $e->getMessage() . "\n"); } } else { if ($type & DOC_FUNCTION) { try { $function = new ReflectionFunction($name); if (!$INFO['actual_extension']) { if ($extname = $function->getExtensionName()) { $INFO['actual_extension'] = $extname; } else { add_warning("The function {$name} lacks Reflection information"); } } write_doc($function, DOC_FUNCTION); } catch (Exception $e) { die('Error: ' . $e->getMessage() . "\n"); } } else { if ($type & DOC_METHOD) { try { $class = new ReflectionClass($OPTION['class']); if (!$INFO['actual_extension']) { if ($extname = $class->getExtensionName()) { $INFO['actual_extension'] = $extname; } else { add_warning("The method {$name} lacks Reflection information"); } } foreach ($class->getMethods() as $method) { /* Don't get the inherited methods */ if ($method->getDeclaringClass()->name == $class->name && (is_array($OPTION['method']) && in_array(strtolower($method->getName()), $OPTION['method']) || $OPTION['method'] == strtolower($method->getName()))) { write_doc($method, $method->isConstructor() ? DOC_CONSTRUCTOR : DOC_METHOD); } } } catch (Exception $e) { die('Error: ' . $e->getMessage() . "\n"); } } else { if ($type & DOC_CLASS) { try { $class = new ReflectionClass($name); if (!$INFO['actual_extension']) { if ($extname = $class->getExtensionName()) { $INFO['actual_extension'] = $extname; } else { add_warning("The class {$name} lacks Reflection information"); } } write_doc($class, DOC_CLASS); foreach ($class->getMethods() as $method) { /* Don't get the inherited methods */ if ($method->getDeclaringClass()->name == $class->name) { write_doc($method, $method->isConstructor() ? DOC_CONSTRUCTOR : DOC_METHOD); } } } catch (Exception $e) { die('Error: ' . $e->getMessage() . "\n"); } } } } } }
} elseif ($_REQUEST['never_record']) { $program->rec_never_record(); } elseif ($_REQUEST['default']) { $program->rec_default(); } elseif ($_REQUEST['dontrec']) { $program->rec_override(rectype_dontrec); } elseif ($_REQUEST['record']) { $program->rec_override(rectype_override); } elseif ($_REQUEST['activate']) { $program->activate(); } } else { if ($_REQUEST['dontrec']) { $schedule =& Schedule::find($_GET['chanid'], $_GET['starttime'])->save(rectype_dontrec); } else { add_warning('Unknown program.'); } } // Redirect back to the page again, but without the query string, so reloads are cleaner redirect_browser(root_url . 'tv/upcoming'); } // Ignore certain shows? if ($_POST['change_display']) { $_SESSION['scheduled_recordings']['disp_scheduled'] = $_POST['disp_scheduled'] ? true : false; $_SESSION['scheduled_recordings']['disp_duplicates'] = $_POST['disp_duplicates'] ? true : false; $_SESSION['scheduled_recordings']['disp_deactivated'] = $_POST['disp_deactivated'] ? true : false; $_SESSION['scheduled_recordings']['disp_conflicts'] = $_POST['disp_conflicts'] ? true : false; $_SESSION['scheduled_recordings']['disp_recgroup'] = $_POST['disp_recgroup']; $_SESSION['scheduled_recordings']['disp_title'] = $_POST['disp_title']; } // Defaults
function rdm($miles, $carrier, $fare) { $miles = segment_min($miles, $carrier); $multiplier = 0; $elite_bonus_multiplier = 1.0; $fare = trim($fare); switch ($carrier) { case "DL": $multiplier = get_multiplier_by_fare($fare, "FAPGJCDIZWYBM", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "SHQKLUTXVE", 1.0, $multiplier); break; case "SV": $multiplier = get_multiplier_by_fare($fare, "FPAR", 1.6, $multiplier); $multiplier = get_multiplier_by_fare($fare, "JCD", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YWOBMKHTQLXVG", 1.0, $multiplier); break; case "SU": $multiplier = get_multiplier_by_fare($fare, "JCDIYS", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "BMHKVT", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "LQW", 0.75, $multiplier); $multiplier = get_multiplier_by_fare($fare, "NU", 0.25, $multiplier); break; case "AM": $multiplier = get_multiplier_by_fare($fare, "AJD", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBMKNQSTX", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "VLWP", 0.75, $multiplier); break; case "AF": $multiplier = get_multiplier_by_fare($fare, "PFJCDZI", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "SWA", 1.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBMUKHLQEGNTR", 1.0, $multiplier); break; case "AS": $multiplier = get_multiplier_by_fare($fare, "F", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YSBMHQLVKGTU", 1.0, $multiplier); break; case "AZ": $multiplier = get_multiplier_by_fare($fare, "JCDIAP", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBMHKVTQNLOXWSRG", 1.0, $multiplier); break; case "OK": $multiplier = get_multiplier_by_fare($fare, "JCD", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBMTHK", 1.0, $multiplier); break; case "KL": $multiplier = get_multiplier_by_fare($fare, "JCDIZ", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "A", 1.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBMUKHLQEGNTR", 1.0, $multiplier); break; case "KE": $multiplier = get_multiplier_by_fare($fare, "FPR", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "J", 1.35, $multiplier); $multiplier = get_multiplier_by_fare($fare, "CDI", 1.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "ZYWMHEKB", 1.0, $multiplier); break; case "RO": # TAROM $multiplier = get_multiplier_by_fare($fare, "CDJS", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBMEGHNTWKRLQUV", 1.0, $multiplier); break; case "NW": $multiplier = get_multiplier_by_fare($fare, "PJCZF", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBIMHQVSKTL", 1.0, $multiplier); break; case "UX": # Air Europa $multiplier = get_multiplier_by_fare($fare, "CDI", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YMBKWXOUVSR", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "Q", 1.0, $multiplier); break; case "HA": # Hawaiian add_warning("Mileage credit for Hawaiian Airlines depends on the route flown, which this calculator is not smart enough to figure out. The results for this trip may be wrong."); $multiplier = get_multiplier_by_fare($fare, "FJP", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "XYVWQMIBS", 1.0, $multiplier); break; case "CI": # China Airlines $multiplier = get_multiplier_by_fare($fare, "F", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "AJ", 1.3, $multiplier); $multiplier = get_multiplier_by_fare($fare, "C", 1.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "DYBMT", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "KVW", 0.8, $multiplier); $multiplier = get_multiplier_by_fare($fare, "RQHNZ", 0.5, $multiplier); break; case "MU": # China Eastern $multiplier = get_multiplier_by_fare($fare, "FP", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "CJO", 1.3, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YKBH", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "ELMNRV", 0.7, $multiplier); $multiplier = get_multiplier_by_fare($fare, "STQWXG", 0.3, $multiplier); add_warning("Despite what is reported here, there is no Medallion elite bonus for RDMs for China Eastern flights."); add_warning("Mileage credit varies depending on route. Don't trust these results."); break; case "CZ": # China Southern $multiplier = get_multiplier_by_fare($fare, "FAPJCDI", 1.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "WSYBMHUK", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "LQEVKUTN", 0.4, $multiplier); $elite_bonus_multiplier = 0.0; # add_warning("Segment minimum miles may be wrong for China Southern."); break; case "G3": # GOL $multiplier = get_multiplier_by_fare($fare, "CD", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YKMHQLVTUJWPEFSB", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "O", 0.3, $multiplier); break; case "IT": # Kingfisher Airlines $multiplier = get_multiplier_by_fare($fare, "JCDI", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YKBMONLQWVSHGU", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "EXZRT", 0.0, $multiplier); add_warning("Delta's partnership with Kingfisher is terminating as of Oct 1, 2012. Mileage earned depends on the particular routes flown, so expect that this estimate is wrong."); break; case "9W": # Jet Airways $multiplier = get_multiplier_by_fare($fare, "FACJZIP", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YMTUNLQS", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "KHVOWBXEG", 0.0, $multiplier); add_warning("Delta's partnership with Jet Airways is terminating as of Oct 1, 2012."); break; case "KQ": # Kenya Airways $multiplier = get_multiplier_by_fare($fare, "CIJZ", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBMEHKLNQRSTUG", 1.0, $multiplier); break; case "MH": # Malaysia Airlines $multiplier = get_multiplier_by_fare($fare, "AFP", 2.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "CJD", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YWU", 1.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "BK", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "MQH", 0.7, $multiplier); $multiplier = get_multiplier_by_fare($fare, "SV", 0.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "OL", 0.3, $multiplier); add_warning("For some fare classes, mileage is only accurate for international segments."); break; case "YX": # Midwest Airlines $multiplier = get_multiplier_by_fare($fare, "YBHVQKWMTROP", 1.0, $multiplier); break; case "VN": # Vietnam Airlines $multiplier = get_multiplier_by_fare($fare, "JC", 1.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "DWZYB", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "MSHKLQ", 0.75, $multiplier); break; case "VA": # Virgin Australia International $multiplier = get_multiplier_by_fare($fare, "DICJ", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "WSRO", 1.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBH", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "KGELNT", 0.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "VQ", 0.25, $multiplier); $multiplier = get_multiplier_by_fare($fare, "AFMUXZP", 0.0, $multiplier); break; case "DJ": # Virgin Australia (yes, this is distinct from VA) $multiplier = get_multiplier_by_fare($fare, "JOWYNBMPSTAFURXGEC", 1.0, $multiplier); break; case "OA": # Olympic Air $multiplier = get_multiplier_by_fare($fare, "CDZWKQLMY", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "XBVNSEOUTA", 1.0, $multiplier); break; case "RO": # TAROM $multiplier = get_multiplier_by_fare($fare, "J", 1.75, $multiplier); $multiplier = get_multiplier_by_fare($fare, "CDI", 1.5, $multiplier); $multiplier = get_multiplier_by_fare($fare, "YBM", 1.0, $multiplier); $multiplier = get_multiplier_by_fare($fare, "UKR", 0.75, $multiplier); $multiplier = get_multiplier_by_fare($fare, "HGLQNTVSE", 0.5, $multiplier); break; } # FIXME #else if($multiplier == 1.0) # 500-mile minimum only seems to apply in economy # $miles = segment_min($miles, $carrier); # print "(" .round($miles * $multiplier) . ")" . "[" .elite_bonus_rdm($miles, $carrier, $fare) ."]"; return round($miles * $multiplier) + $elite_bonus_multiplier * elite_bonus_rdm(segment_min($miles, $carrier), $carrier, $fare); }