Example #1
0
function friends_function_generate_menu(&$arg)
{
    global $auth, $cache, $config, $db, $user, $template, $phpbb_root_path;
    global $user_id, $blog_template, $blog_images_path;
    $limit = 4;
    $template->assign_vars(array('ZEBRA_LIST_LIMIT' => $limit, 'IMG_PORTAL_MEMBER' => $blog_images_path . 'icon_friend.gif', 'S_CONTENT_FLOW_BEGIN' => $user->lang['DIRECTION'] == 'ltr' ? 'left' : 'right', 'S_CONTENT_FLOW_END' => $user->lang['DIRECTION'] == 'ltr' ? 'right' : 'left'));
    if ($user_id == ANONYMOUS || $user->data['is_bot']) {
        return;
    }
    // Output listing of friends online
    $menu_friends_online = $menu_friends_offline = $user_friends = 0;
    $update_time = time() - intval($config['load_online_time']) * 60;
    // lets use the cache...as this query is quite intensive
    $cache_data = false;
    //$cache->get("_zebra{$user_id}");
    if ($cache_data === false) {
        $sql = $db->sql_build_query('SELECT_DISTINCT', array('SELECT' => 'u.user_id, u.username, u.username_clean, u.user_colour, MAX(s.session_time) as online_time, MIN(s.session_viewonline) AS viewonline', 'FROM' => array(USERS_TABLE => 'u', ZEBRA_TABLE => 'z'), 'LEFT_JOIN' => array(array('FROM' => array(SESSIONS_TABLE => 's'), 'ON' => 's.session_user_id = z.zebra_id')), 'WHERE' => 'z.user_id = ' . intval($user_id) . '
				AND z.friend = 1
				AND u.user_id = z.zebra_id', 'GROUP_BY' => 'z.zebra_id, u.user_id, u.username_clean, u.user_colour, u.username', 'ORDER_BY' => 'u.username_clean ASC'));
        $result = $db->sql_query($sql);
        $rowset = $db->sql_fetchrowset($result);
        $db->sql_freeresult($result);
        //$cache->put("_zebra{$user_id}", $rowset, 60); // cache for 1 minute
        $cache_data = $rowset;
    }
    foreach ($cache_data as $row) {
        $which = $update_time < $row['online_time'] && ($row['viewonline'] || $auth->acl_get('u_viewonline')) ? 'menu_friends_online' : 'menu_friends_offline';
        ${$which}++;
        $template->assign_block_vars("{$which}", array('USER_ID' => $row['user_id'], 'U_PROFILE' => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']), 'U_VIEW_BLOG' => blog_url($row['user_id']), 'USER_COLOUR' => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']), 'USERNAME' => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']), 'USERNAME_FULL' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']), 'HIDE' => true));
    }
    $template->assign_vars(array('S_SHOW_NEXT_ONLINE' => $menu_friends_online > $limit ? true : false, 'S_SHOW_NEXT_OFFLINE' => $menu_friends_offline > $limit ? true : false, 'S_MENU_ZEBRA_ENABLED' => $menu_friends_online || $menu_friends_offline ? true : false));
    $arg['user_menu_extra'] .= blog_plugins::parse_template('blog/plugins/friends/friends_body.html');
}
Example #2
0
function archive_function_generate_menu(&$arg)
{
    global $auth, $db, $user, $template, $phpbb_root_path, $blog_images_path;
    if (!$arg['user_id']) {
        return;
    }
    $last_mon = 0;
    $archive_rows = array();
    $sql = 'SELECT blog_id, blog_time, blog_subject FROM ' . BLOGS_TABLE . '
		WHERE user_id = ' . intval($arg['user_id']) . ($auth->acl_get('m_blogapprove') ? '' : ' AND blog_approved = 1') . (!$auth->acl_gets('m_blogdelete', 'a_blogdelete') ? ' AND (blog_deleted = 0 OR blog_deleted = ' . $user->data['user_id'] . ')' : '') . build_permission_sql($user->data['user_id']) . '
			ORDER BY blog_time DESC';
    $result = $db->sql_query($sql);
    while ($row = $db->sql_fetchrow($result)) {
        $date = getdate($row['blog_time']);
        // If we are starting a new month
        if ($date['mon'] != $last_mon) {
            $archive_row = array('MONTH' => $user->lang['datetime'][$date['month']], 'YEAR' => $date['year'], 'monthrow' => array());
            $archive_rows[] = $archive_row;
        }
        $archive_row_month = array('TITLE' => censor_text($row['blog_subject']), 'U_VIEW' => blog_url($arg['user_id'], $row['blog_id'], false, array(), array('blog_subject' => $row['blog_subject'])), 'DATE' => $user->format_date($row['blog_time']));
        $archive_rows[sizeof($archive_rows) - 1]['monthrow'][] = $archive_row_month;
        // set the last month variable as the current month
        $last_mon = $date['mon'];
    }
    $db->sql_freeresult($result);
    foreach ($archive_rows as $row) {
        $template->assign_block_vars('archiverow', $row);
    }
    $template->assign_vars(array('S_ARCHIVES' => sizeof($archive_rows) ? true : false, 'T_THEME_PATH' => "{$phpbb_root_path}styles/" . $user->theme['theme_path'] . '/theme', 'IMG_PLUS' => $blog_images_path . 'plus.gif', 'IMG_MINUS' => $blog_images_path . 'minus.gif'));
    $arg['user_menu_extra'] .= blog_plugins::parse_template('blog/plugins/archive/archive_body.html');
    unset($template->_tpldata['archiverow']);
}
Example #3
0
function tags_function_handle_basic_posting_data(&$args)
{
    global $blog_id, $template, $user;
    if ($args['page'] != 'blog') {
        return;
    }
    $args['panels']['tags-panel'] = $user->lang['TAGS'];
    $tags = '';
    if ($args['mode'] == 'edit' && isset(blog_data::$blog[$blog_id]['blog_tags'])) {
        $tags = implode("\n", get_tags_from_text(blog_data::$blog[$blog_id]['blog_tags']));
    }
    $template->assign_vars(array('TAGS' => request_var('tags', $tags, true)));
    $args['panel_data'] = blog_plugins::parse_template('blog/plugins/tags/tags_panel.html');
}