本文整理汇总了PHP中my_unserialize函数的典型用法代码示例。如果您正苦于以下问题:PHP my_unserialize函数的具体用法?PHP my_unserialize怎么用?PHP my_unserialize使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了my_unserialize函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
/**
* Execute Custom Moderation Tool
*
* @param int $tool_id Tool ID
* @param int|array Thread ID(s)
* @param int|array Post ID(s)
* @return string 'forum' or 'default' indicating where to redirect
*/
function execute($tool_id, $tids = 0, $pids = 0)
{
global $db;
// Get tool info
$query = $db->simple_select("modtools", '*', 'tid="' . (int) $tool_id . '"');
$tool = $db->fetch_array($query);
if (!$tool['tid']) {
return false;
}
// Format single tid and pid
if (!is_array($tids)) {
$tids = array($tids);
}
if (!is_array($pids)) {
$pids = array($pids);
}
// Unserialize custom moderation
$post_options = my_unserialize($tool['postoptions']);
$thread_options = my_unserialize($tool['threadoptions']);
// If the tool type is a post tool, then execute the post moderation
$deleted_thread = 0;
if ($tool['type'] == 'p') {
$deleted_thread = $this->execute_post_moderation($post_options, $pids, $tids);
}
// Always execute thead moderation
$this->execute_thread_moderation($thread_options, $tids);
// If the thread is deleted, indicate to the calling script to redirect to the forum, and not the nonexistant thread
if ($thread_options['deletethread'] == 1 || $deleted_thread === 1) {
return 'forum';
}
return 'default';
}
示例2: fetch_unread_count
/**
* Fetches the number of unread threads for the current user in a particular forum.
*
* @param string The forums (CSV list)
* @return int The number of unread threads
*/
function fetch_unread_count($fid)
{
global $cache, $db, $mybb;
$onlyview = $onlyview2 = '';
$permissions = forum_permissions($fid);
$cutoff = TIME_NOW - $mybb->settings['threadreadcut'] * 60 * 60 * 24;
if (!empty($permissions['canonlyviewownthreads'])) {
$onlyview = " AND uid = '{$mybb->user['uid']}'";
$onlyview2 = " AND t.uid = '{$mybb->user['uid']}'";
}
if ($mybb->user['uid'] == 0) {
$comma = '';
$tids = '';
$threadsread = my_unserialize($mybb->cookies['mybb']['threadread']);
$forumsread = my_unserialize($mybb->cookies['mybb']['forumread']);
if (!empty($threadsread)) {
foreach ($threadsread as $key => $value) {
$tids .= $comma . intval($key);
$comma = ',';
}
}
if (!empty($tids)) {
$count = 0;
// We've read at least some threads, are they here?
$query = $db->simple_select("threads", "lastpost, tid, fid", "visible=1 AND closed NOT LIKE 'moved|%' AND fid IN ({$fid}) AND lastpost > '{$cutoff}'{$onlyview}", array("limit" => 100));
while ($thread = $db->fetch_array($query)) {
if ($thread['lastpost'] > intval($threadsread[$thread['tid']]) && $thread['lastpost'] > intval($forumsread[$thread['fid']])) {
++$count;
}
}
return $count;
}
// Not read any threads?
return false;
} else {
// START - Unread posts MOD
$fieldname = 'dateline';
if (function_exists("unreadPosts_is_installed") && unreadPosts_is_installed()) {
$cutoff = $mybb->user['lastmark'];
}
// END - Unread posts MOD
switch ($db->type) {
case "pgsql":
$query = $db->query("\n SELECT COUNT(t.tid) AS unread_count\n FROM " . TABLE_PREFIX . "threads t\n LEFT JOIN " . TABLE_PREFIX . "threadsread tr ON (tr.tid=t.tid AND tr.uid='{$mybb->user['uid']}')\n LEFT JOIN " . TABLE_PREFIX . "forumsread fr ON (fr.fid=t.fid AND fr.uid='{$mybb->user['uid']}')\n WHERE t.visible=1 AND t.closed NOT LIKE 'moved|%' \n AND t.fid IN ({$fid}) \n AND t.lastpost > COALESCE(tr.dateline,{$cutoff}) \n AND t.lastpost > COALESCE(fr.dateline,{$cutoff}) \n AND t.lastpost > {$cutoff}\n {$onlyview2}\n ");
break;
default:
$query = $db->query("\n SELECT COUNT(t.tid) AS unread_count\n FROM " . TABLE_PREFIX . "threads t\n LEFT JOIN " . TABLE_PREFIX . "threadsread tr ON (tr.tid=t.tid AND tr.uid='{$mybb->user['uid']}')\n LEFT JOIN " . TABLE_PREFIX . "forumsread fr ON (fr.fid=t.fid AND fr.uid='{$mybb->user['uid']}')\n WHERE t.visible=1 AND t.closed NOT LIKE 'moved|%' \n AND t.fid IN ({$fid}) \n AND t.lastpost > IFNULL(tr.dateline,{$cutoff}) \n AND t.lastpost > IFNULL(fr.dateline,{$cutoff}) \n AND t.lastpost > {$cutoff}\n {$onlyview2}\n ");
}
return (int) $db->fetch_field($query, "unread_count");
}
}
示例3: find_warnlevels_to_check
/**
* @param resource|PDOStatement|mysqli_result $query The query to be run. Needs to select the "action" column of the "warninglevels" table
* @param array $max_expiration_times Return variable. The maximum expiration time
* @param array $check_levels Return variable. Whether those "levels" were checked
*/
function find_warnlevels_to_check($query, &$max_expiration_times, &$check_levels)
{
global $db;
// we have some warning levels we need to revoke
$max_expiration_times = array(1 => -1, 2 => -1, 3 => -1);
$check_levels = array(1 => false, 2 => false, 3 => false);
while ($warn_level = $db->fetch_array($query)) {
// revoke actions taken at this warning level
$action = my_unserialize($warn_level['action']);
if ($action['type'] < 1 || $action['type'] > 3) {
continue;
}
$check_levels[$action['type']] = true;
$max_exp_time =& $max_expiration_times[$action['type']];
if ($action['length'] && $max_exp_time != 0) {
$expiration = $action['length'];
if ($expiration > $max_exp_time) {
$max_exp_time = $expiration;
}
} else {
$max_exp_time = 0;
}
}
}
示例4: add_breadcrumb
$message = $lang->sprintf($lang->warning_pm_message, $user['username'], $mybb->settings['bbname']);
$warn_errors = '';
}
$lang->nav_profile = $lang->sprintf($lang->nav_profile, $user['username']);
add_breadcrumb($lang->nav_profile, get_profile_link($user['uid']));
add_breadcrumb($lang->nav_add_warning);
$user_link = build_profile_link($user['username'], $user['uid']);
if ($mybb->settings['maxwarningpoints'] < 1) {
$mybb->settings['maxwarningpoints'] = 10;
}
$current_level = round($user['warningpoints'] / $mybb->settings['maxwarningpoints'] * 100);
// Fetch warning levels
$levels = array();
$query = $db->simple_select("warninglevels", "*");
while ($level = $db->fetch_array($query)) {
$level['action'] = my_unserialize($level['action']);
switch ($level['action']['type']) {
case 1:
if ($level['action']['length'] > 0) {
$ban_length = fetch_friendly_expiration($level['action']['length']);
$lang_str = "expiration_" . $ban_length['period'];
$period = $lang->sprintf($lang->result_period, $ban_length['time'], $lang->{$lang_str});
} else {
$period = $lang->result_period_perm;
}
$group_name = $groupscache[$level['action']['usergroup']]['title'];
$level['friendly_action'] = $lang->sprintf($lang->result_banned, $group_name, $period);
break;
case 2:
if ($level['action']['length'] > 0) {
$period = fetch_friendly_expiration($level['action']['length']);
示例5: array
// Missing theme was from a forum, run a query to set any forums using the theme to the default
if ($load_from_forum == 1) {
$db->update_query('forums', array('style' => 0), "style = '{$style['style']}'");
} else {
if ($load_from_user == 1) {
$db->update_query('users', array('style' => 0), "style = '{$mybb->user['style']}'");
}
}
// Attempt to load the master or any other theme if the master is not available
$query = $db->simple_select('themes', 'name, tid, properties, stylesheets', '', array('order_by' => 'tid', 'limit' => 1));
$theme = $db->fetch_array($query);
}
$theme = @array_merge($theme, my_unserialize($theme['properties']));
// Fetch all necessary stylesheets
$stylesheets = '';
$theme['stylesheets'] = my_unserialize($theme['stylesheets']);
$stylesheet_scripts = array("global", basename($_SERVER['PHP_SELF']));
if (!empty($theme['color'])) {
$stylesheet_scripts[] = $theme['color'];
}
$stylesheet_actions = array("global");
if (!empty($mybb->input['action'])) {
$stylesheet_actions[] = $mybb->get_input('action');
}
foreach ($stylesheet_scripts as $stylesheet_script) {
// Load stylesheets for global actions and the current action
foreach ($stylesheet_actions as $stylesheet_action) {
if (!$stylesheet_action) {
continue;
}
if (!empty($theme['stylesheets'][$stylesheet_script][$stylesheet_action])) {
示例6: get_admin_log_action
//.........这里部分代码省略.........
} elseif ($logitem['data'][2] && !$logitem['data'][1]) {
$lang_string = 'admin_log_tools_adminlog_prune_module';
} elseif ($logitem['data'][1] && $logitem['data'][2]) {
$lang_string = 'admin_log_tools_adminlog_prune_user_module';
}
break;
case 'admin_log_tools_modlog_prune':
// Moderator Log Pruning
if ($logitem['data'][1] && !$logitem['data'][2]) {
$lang_string = 'admin_log_tools_modlog_prune_user';
} elseif ($logitem['data'][2] && !$logitem['data'][1]) {
$lang_string = 'admin_log_tools_modlog_prune_forum';
} elseif ($logitem['data'][1] && $logitem['data'][2]) {
$lang_string = 'admin_log_tools_modlog_prune_user_forum';
}
break;
case 'admin_log_tools_backupdb_backup':
// Create backup
if ($logitem['data'][0] == 'download') {
$lang_string = 'admin_log_tools_backupdb_backup_download';
}
$logitem['data'][1] = '...' . substr($logitem['data'][1], -20);
break;
case 'admin_log_tools_backupdb_dlbackup':
// Download backup
$logitem['data'][0] = '...' . substr($logitem['data'][0], -20);
break;
case 'admin_log_tools_backupdb_delete':
// Delete backup
$logitem['data'][0] = '...' . substr($logitem['data'][0], -20);
break;
case 'admin_log_tools_optimizedb_':
// Optimize DB
$logitem['data'][0] = @implode(', ', my_unserialize($logitem['data'][0]));
break;
case 'admin_log_tools_recount_rebuild_':
// Recount and rebuild
$detail_lang_string = $lang_string . $logitem['data'][0];
if (isset($lang->{$detail_lang_string})) {
$lang_string = $detail_lang_string;
}
break;
// == USERS ==
// == USERS ==
case 'admin_log_user_admin_permissions_edit':
// editing default/group/user admin permissions
if ($logitem['data'][0] > 0) {
// User
$lang_string .= '_user';
} elseif ($logitem['data'][0] < 0) {
// Group
$logitem['data'][0] = abs($logitem['data'][0]);
$lang_string .= '_group';
}
break;
case 'admin_log_user_admin_permissions_delete':
// deleting group/user admin permissions
if ($logitem['data'][0] > 0) {
// User
$lang_string .= '_user';
} elseif ($logitem['data'][0] < 0) {
// Group
$logitem['data'][0] = abs($logitem['data'][0]);
$lang_string .= '_group';
}
break;
示例7: json_encode
$page->show_login($login_lang_string, "error");
} else {
// If we have this error while retreiving it from an AJAX request, then send back a nice error
if (isset($mybb->input['ajax']) && $mybb->input['ajax'] == 1) {
echo json_encode(array("errors" => array("login")));
exit;
}
$page->show_login($login_message, "error");
}
}
// Time to check for Two-Factor Authentication
// First: are we trying to verify a code?
if ($mybb->input['do'] == "do_2fa" && $mybb->request_method == "post") {
// Test whether it's a recovery code
$recovery = false;
$codes = my_unserialize($admin_options['recovery_codes']);
if (!empty($codes) && in_array($mybb->get_input('code'), $codes)) {
$recovery = true;
$ncodes = array_diff($codes, array($mybb->input['code']));
// Removes our current code from the codes array
$db->update_query("adminoptions", array("recovery_codes" => $db->escape_string(my_serialize($ncodes))), "uid='{$mybb->user['uid']}'");
if (count($ncodes) == 0) {
flash_message($lang->my2fa_no_codes, "error");
}
}
// Validate the code
require_once MYBB_ROOT . "inc/3rdparty/2fa/GoogleAuthenticator.php";
$auth = new PHPGangsta_GoogleAuthenticator();
$test = $auth->verifyCode($admin_options['authsecret'], $mybb->get_input('code'));
// Either the code was okay or it was a recovery code
if ($test === true || $recovery === true) {
示例8: htmlspecialchars_uni
$logitem['tsubject'] = htmlspecialchars_uni($logitem['tsubject']);
$logitem['thread'] = get_thread_link($logitem['tid']);
eval("\$information .= \"" . $templates->get("modcp_modlogs_result_thread") . "\";");
}
if ($logitem['fname']) {
$logitem['forum'] = get_forum_link($logitem['fid']);
eval("\$information .= \"" . $templates->get("modcp_modlogs_result_forum") . "\";");
}
if ($logitem['psubject']) {
$logitem['psubject'] = htmlspecialchars_uni($logitem['psubject']);
$logitem['post'] = get_post_link($logitem['pid']);
eval("\$information .= \"" . $templates->get("modcp_modlogs_result_post") . "\";");
}
// Edited a user or managed announcement?
if (!$logitem['tsubject'] || !$logitem['fname'] || !$logitem['psubject']) {
$data = my_unserialize($logitem['data']);
if ($data['uid']) {
$information = $lang->sprintf($lang->edited_user_info, htmlspecialchars_uni($data['username']), get_profile_link($data['uid']));
}
if ($data['aid']) {
$data['subject'] = htmlspecialchars_uni($data['subject']);
$data['announcement'] = get_announcement_link($data['aid']);
eval("\$information .= \"" . $templates->get("modcp_modlogs_result_announcement") . "\";");
}
}
eval("\$modlogresults .= \"" . $templates->get("modcp_modlogs_result") . "\";");
}
if (!$modlogresults) {
eval("\$modlogresults = \"" . $templates->get("modcp_modlogs_nologs") . "\";");
}
eval("\$latestfivemodactions = \"" . $templates->get("modcp_latestfivemodactions") . "\";");
示例9: eval
if (!isset($stats) || isset($stats) && !is_array($stats)) {
// Load the stats cache.
$stats = $cache->read('stats');
}
$post_code_string = '';
if ($mybb->user['uid']) {
$post_code_string = '&my_post_key=' . $mybb->post_code;
}
eval('$boardstats = "' . $templates->get('index_boardstats') . '";');
}
if ($mybb->user['uid'] == 0) {
// Build a forum cache.
$query = $db->simple_select('forums', '*', 'active!=0', array('order_by' => 'pid, disporder'));
$forumsread = array();
if (isset($mybb->cookies['mybb']['forumread'])) {
$forumsread = my_unserialize($mybb->cookies['mybb']['forumread']);
}
} else {
// Build a forum cache.
$query = $db->query("\n\t\tSELECT f.*, fr.dateline AS lastread\n\t\tFROM " . TABLE_PREFIX . "forums f\n\t\tLEFT JOIN " . TABLE_PREFIX . "forumsread fr ON (fr.fid = f.fid AND fr.uid = '{$mybb->user['uid']}')\n\t\tWHERE f.active != 0\n\t\tORDER BY pid, disporder\n\t");
}
while ($forum = $db->fetch_array($query)) {
if ($mybb->user['uid'] == 0) {
if (!empty($forumsread[$forum['fid']])) {
$forum['lastread'] = $forumsread[$forum['fid']];
}
}
$fcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
}
$forumpermissions = forum_permissions();
// Get the forum moderators if the setting is enabled.
示例10: array
$table->construct_cell("{$set_popup}<strong><a href=\"index.php?module=style-templates&sid={$sid}{$group['expand_str']}#group_{$group['gid']}\">{$group['title']}</a></strong>");
$table->construct_cell("<a href=\"index.php?module=style-templates&sid={$sid}{$group['expand_str']}#group_{$group['gid']}\">{$expand}</a>", array("class" => "align_center"));
$table->construct_row(array("class" => "alt_row", "id" => "group_" . $group['gid'], "name" => "group_" . $group['gid']));
}
}
$table->output($template_sets[$sid]);
$page->output_footer();
}
if (!$mybb->input['action']) {
$plugins->run_hooks("admin_style_templates_start");
$page->output_header($lang->template_sets);
$page->output_nav_tabs($sub_tabs, 'templates');
$themes = array();
$query = $db->simple_select("themes", "name,tid,properties", "tid != '1'");
while ($theme = $db->fetch_array($query)) {
$tbits = my_unserialize($theme['properties']);
$themes[$tbits['templateset']][$theme['tid']] = htmlspecialchars_uni($theme['name']);
}
$template_sets = array();
$template_sets[-1]['title'] = $lang->global_templates;
$template_sets[-1]['sid'] = -1;
$query = $db->simple_select("templatesets", "*", "", array('order_by' => 'title', 'order_dir' => 'ASC'));
while ($template_set = $db->fetch_array($query)) {
$template_sets[$template_set['sid']] = $template_set;
}
$table = new Table();
$table->construct_header($lang->template_set);
$table->construct_header($lang->controls, array("class" => "align_center", "width" => 150));
foreach ($template_sets as $set) {
if ($set['sid'] == -1) {
$table->construct_cell("<strong><a href=\"index.php?module=style-templates&sid=-1\">{$lang->global_templates}</a></strong><br /><small>{$lang->used_by_all_themes}</small>");
示例11: check_wcf1
function check_wcf1($password, $user)
{
// WCF 1 has some special parameters, which are saved in the passwordconvert field
$settings = my_unserialize($user['passwordconvert']);
$user['passwordconvert'] = $settings['password'];
if (wcf1_encrypt($user['passwordconvertsalt'] . wcf1_hash($password, $user['passwordconvertsalt'], $settings), $settings['encryption_method']) == $user['passwordconvert']) {
return true;
}
return false;
}
示例12: m_get_new_report_func
function m_get_new_report_func($xmlrpc_params)
{
global $input, $post, $thread, $forum, $pid, $tid, $fid, $modlogdata, $db, $lang, $theme, $plugins, $mybb, $session, $settings, $cache, $time, $mybbgroups, $moderation, $parser;
$input = Tapatalk_Input::filterXmlInput(array('start_num' => Tapatalk_Input::INT, 'last_num' => Tapatalk_Input::INT), $xmlrpc_params);
mod_setup();
list($start, $limit) = process_page($input['start_num'], $input['last_num']);
$query = $db->simple_select("moderators", "*", "(id='{$mybb->user['uid']}' AND isgroup = '0') OR (id='{$mybb->user['usergroup']}' AND isgroup = '1')");
$numreportedposts = 0;
while ($m_forum = $db->fetch_array($query)) {
// For Reported posts
if ($m_forum['canmanagereportedposts'] == 1) {
$flist_reports .= ",'{$m_forum['fid']}'";
$children = get_child_list($m_forum['fid']);
if (!empty($children)) {
$flist_reports .= ",'" . implode("','", $children) . "'";
}
++$numreportedposts;
}
}
// Load global language phrases
if ($mybb->usergroup['canmanagereportedcontent'] == 0) {
error_no_permission();
}
if ($numreportedposts == 0 && $mybb->usergroup['issupermod'] != 1) {
error($lang->you_cannot_view_reported_posts);
}
$lang->load('report');
add_breadcrumb($lang->mcp_nav_report_center, "modcp.php?action=reports");
$perpage = $limit;
if (!$perpage) {
$perpage = 20;
}
$query = $db->simple_select("forums", "fid, name");
while ($forum = $db->fetch_array($query)) {
$forums[$forum['fid']] = $forum['name'];
}
// Multipage
if ($mybb->usergroup['cancp'] || $mybb->usergroup['issupermod']) {
$query = $db->simple_select("reportedcontent", "COUNT(rid) AS count", "reportstatus ='0'");
$report_count = $db->fetch_field($query, "count");
} else {
$query = $db->simple_select('reportedcontent', 'id3', "reportstatus='0' AND (type = 'post' OR type = '')");
$report_count = 0;
while ($fid = $db->fetch_field($query, 'id3')) {
if (is_moderator($fid, "canmanagereportedposts")) {
++$report_count;
}
}
unset($fid);
}
$plugins->run_hooks("modcp_reports_start");
if ($flist_reports) {
$wflist_reports = "WHERE r.id3 IN (0{$flist_reports})";
$tflist_reports = " AND r.id3 IN (0{$flist_reports})";
$flist_reports = " AND id3 IN (0{$flist_reports})";
}
// Reports
$reports = '';
$query = $db->query("\n\t\tSELECT r.*, u.username\n\t\tFROM " . TABLE_PREFIX . "reportedcontent r\n\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (r.uid = u.uid)\n\t\tWHERE r.reportstatus = '0'{$tflist_reports}\n\t\tORDER BY r.reports DESC\n\t\tLIMIT {$start}, {$perpage}\n\t");
if (!$db->num_rows($query)) {
// No unread reports
//eval("\$reports = \"".$templates->get("modcp_reports_noreports")."\";");
$reportcache = array();
} else {
$reportedcontent = $cache->read("reportedcontent");
$reportcache = $usercache = $postcache = array();
while ($report = $db->fetch_array($query)) {
if ($report['type'] == 'profile' || $report['type'] == 'reputation') {
// Profile UID is in ID
if (!isset($usercache[$report['id']])) {
$usercache[$report['id']] = $report['id'];
}
// Reputation comment? The offender is the ID2
if ($report['type'] == 'reputation') {
if (!isset($usercache[$report['id2']])) {
$usercache[$report['id2']] = $report['id2'];
}
if (!isset($usercache[$report['id3']])) {
// The user who was offended
$usercache[$report['id3']] = $report['id3'];
}
}
} else {
if (!$report['type'] || $report['type'] == 'post') {
// This (should) be a post
$postcache[$report['id']] = $report['id'];
}
}
// Lastpost info - is it missing (pre-1.8)?
$lastposter = $report['uid'];
if (!$report['lastreport']) {
// Last reporter is our first reporter
$report['lastreport'] = $report['dateline'];
}
if ($report['reporters']) {
$reporters = my_unserialize($report['reporters']);
if (is_array($reporters)) {
$lastposter = end($reporters);
}
}
//.........这里部分代码省略.........
示例13: htmlspecialchars_uni
$event['usertitle'] = htmlspecialchars_uni($event['usertitle']);
if ($event['ignoretimezone'] == 0) {
$offset = $event['timezone'];
} else {
$offset = $mybb->user['timezone'];
}
$event['starttime_user'] = $event['starttime'] + $offset * 3600;
// Events over more than one day
$time_period = '';
if ($event['endtime'] > 0 && $event['endtime'] != $event['starttime']) {
$event['endtime_user'] = $event['endtime'] + $offset * 3600;
$start_day = gmmktime(0, 0, 0, gmdate("n", $event['starttime_user']), gmdate("j", $event['starttime_user']), gmdate("Y", $event['starttime_user']));
$end_day = gmmktime(0, 0, 0, gmdate("n", $event['endtime_user']), gmdate("j", $event['endtime_user']), gmdate("Y", $event['endtime_user']));
$start_time = gmdate("Hi", $event['starttime_user']);
$end_time = gmdate("Hi", $event['endtime_user']);
$event['repeats'] = my_unserialize($event['repeats']);
// Event only runs over one day
if ($start_day == $end_day && $event['repeats']['repeats'] == 0) {
$time_period = gmdate($mybb->settings['dateformat'], $event['starttime_user']);
// Event runs all day
if ($start_time != 00 && $end_time != 2359) {
$time_period .= $lang->comma . gmdate($mybb->settings['timeformat'], $event['starttime_user']) . " - " . gmdate($mybb->settings['timeformat'], $event['endtime_user']);
} else {
$time_period .= $lang->comma . $lang->all_day;
}
} else {
$time_period = gmdate($mybb->settings['dateformat'], $event['starttime_user']) . ", " . gmdate($mybb->settings['timeformat'], $event['starttime_user']);
$time_period .= " - ";
$time_period .= gmdate($mybb->settings['dateformat'], $event['endtime_user']) . ", " . gmdate($mybb->settings['timeformat'], $event['endtime_user']);
}
} else {
示例14: get_announcement_list
function get_announcement_list($foruminfo, $fid)
{
// Gather forum stats
global $db, $lang, $theme, $plugins, $mybb, $session, $settings, $time, $mybbgroups, $cache;
$has_announcements = $has_modtools = false;
$forum_stats = $cache->read("forumsdisplay");
$parser = new postParser();
if (is_array($forum_stats)) {
if (!empty($forum_stats[-1]['modtools']) || !empty($forum_stats[$fid]['modtools'])) {
// Mod tools are specific to forums, not parents
$has_modtools = true;
}
if (!empty($forum_stats[-1]['announcements']) || !empty($forum_stats[$fid]['announcements'])) {
// Global or forum-specific announcements
$has_announcements = true;
}
}
$parentlist = $foruminfo['parentlist'];
$parentlistexploded = explode(",", $parentlist);
foreach ($parentlistexploded as $mfid) {
if (!empty($forum_stats[$mfid]['announcements'])) {
$has_announcements = true;
}
}
$announcementlist = $topic_list = array();
if ($has_announcements == true) {
$limit = '';
$announcements = '';
if ($mybb->settings['announcementlimit']) {
$limit = "LIMIT 0, " . $mybb->settings['announcementlimit'];
}
$sql = build_parent_list($fid, "fid", "OR", $parentlist);
$time = TIME_NOW;
$query = $db->query("\n\t\t\tSELECT a.*, u.username\n\t\t\tFROM " . TABLE_PREFIX . "announcements a\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "users u ON (u.uid=a.uid)\n\t\t\tWHERE a.startdate<='{$time}' AND (a.enddate>='{$time}' OR a.enddate='0') AND ({$sql} OR fid='-1')\n\t\t\tORDER BY a.startdate DESC {$limit}\n\t\t");
// See if this announcement has been read in our announcement array
$cookie = array();
if (isset($mybb->cookies['mybb']['announcements'])) {
$cookie = my_unserialize(stripslashes($mybb->cookies['mybb']['announcements']));
}
$announcementlist = '';
$bgcolor = alt_trow(true);
// Reset the trow colors
while ($announcement = $db->fetch_array($query)) {
if ($announcement['startdate'] > $mybb->user['lastvisit'] && !$cookie[$announcement['aid']]) {
$new_class = ' class="subject_new"';
$folder = "newfolder";
} else {
$new_class = ' class="subject_old"';
$folder = "folder";
}
// Mmm, eat those announcement cookies if they're older than our last visit
if (isset($cookie[$announcement['aid']]) && $cookie[$announcement['aid']] < $mybb->user['lastvisit']) {
unset($cookie[$announcement['aid']]);
}
$announcement['announcementlink'] = get_announcement_link($announcement['aid']);
$announcement['subject'] = $parser->parse_badwords($announcement['subject']);
$announcement['subject'] = htmlspecialchars_uni($announcement['subject']);
$postdate = my_date('relative', $announcement['startdate']);
$announcement['profilelink'] = build_profile_link($announcement['username'], $announcement['uid']);
$announcementlist[] = $announcement;
}
if (empty($cookie)) {
// Clean up cookie crumbs
my_setcookie('mybb[announcements]', 0, TIME_NOW - 60 * 60 * 24 * 365);
} else {
if (!empty($cookie)) {
my_setcookie("mybb[announcements]", addslashes(serialize($cookie)), -1);
}
}
foreach ($announcementlist as $announce) {
$user_info = get_user($announce['uid']);
$icon_url = absolute_url($user_info['avatar']);
$xmlrpc_topic = new xmlrpcval(array('forum_id' => new xmlrpcval($fid, 'string'), 'topic_id' => new xmlrpcval('ann_' . $announce['aid'], 'string'), 'topic_title' => new xmlrpcval(basic_clean($announce['subject']), 'base64'), 'topic_author_id' => new xmlrpcval($announce['uid'], 'string'), 'topic_author_name' => new xmlrpcval(basic_clean($announce['username']), 'base64'), 'icon_url' => new xmlrpcval(absolute_url($icon_url), 'string'), 'reply_number' => new xmlrpcval(0, 'int'), 'view_number' => new xmlrpcval(0, 'int'), 'short_content' => new xmlrpcval(process_short_content($announce['message'], $parser), 'base64')), 'struct');
$topic_list[] = $xmlrpc_topic;
}
}
$response = new xmlrpcval(array('total_topic_num' => new xmlrpcval(count($announcementlist), 'int'), 'forum_id' => new xmlrpcval($fid), 'forum_name' => new xmlrpcval(basic_clean($foruminfo['name']), 'base64'), 'can_post' => new xmlrpcval(false, 'boolean'), 'can_upload' => new xmlrpcval(false, 'boolean'), 'topics' => new xmlrpcval($topic_list, 'array')), 'struct');
return new xmlrpcresp($response);
}
示例15: get_upgrade_store
function get_upgrade_store($title)
{
global $db;
$query = $db->simple_select("upgrade_data", "*", "title='" . $db->escape_string($title) . "'");
$data = $db->fetch_array($query);
return my_unserialize($data['contents']);
}