function qa_permit_check($opt) { if (qa_opt($opt) == QA_PERMIT_POINTS) { return qa_get_logged_in_points() >= qa_opt($opt . '_points'); } return !qa_permit_value_error(qa_opt($opt), qa_get_logged_in_userid(), qa_get_logged_in_level(), qa_get_logged_in_flags()); }
function forbid_new_tag() { $q_edit = $this->template == 'ask' || isset($this->content['form_q_edit']); $tag_prevent = qa_opt('tag_synonyms_prevent'); if ($q_edit && $tag_prevent) { return qa_get_logged_in_points() < (int) qa_opt('tag_synonyms_rep') && qa_get_logged_in_level() < QA_USER_LEVEL_EXPERT; } return false; }
function logged_in() { qa_html_theme_base::logged_in(); if (qa_is_logged_in()) { $userpoints = qa_get_logged_in_points(); $pointshtml = $userpoints == 1 ? qa_lang_html_sub('main/1_point', '1', '1') : qa_lang_html_sub('main/x_points', qa_html(number_format($userpoints))); $this->output('<SPAN CLASS="qa-logged-in-points">', '(' . $pointshtml . ')', '</SPAN>'); } }
function logged_in() { if (qa_is_logged_in()) { // output user avatar to login bar $this->output('<div class="qa-logged-in-avatar">', QA_FINAL_EXTERNAL_USERS ? qa_get_external_avatar_html(qa_get_logged_in_userid(), 24, true) : qa_get_user_avatar_html(qa_get_logged_in_flags(), qa_get_logged_in_email(), qa_get_logged_in_handle(), qa_get_logged_in_user_field('avatarblobid'), qa_get_logged_in_user_field('avatarwidth'), qa_get_logged_in_user_field('avatarheight'), 24, true), '</div>'); } qa_html_theme_base::logged_in(); if (qa_is_logged_in()) { // adds points count after logged in username $userpoints = qa_get_logged_in_points(); $pointshtml = $userpoints == 1 ? qa_lang_html_sub('main/1_point', '1', '1') : qa_lang_html_sub('main/x_points', qa_html(number_format($userpoints))); $this->output('<span class="qa-logged-in-points">', '(' . $pointshtml . ')', '</span>'); } }
function set_duodaa_user() { $user = array(); $user['username'] = qa_get_logged_in_handle(); if (!$user['username']) { //header("Content-type: text/html; charset=utf-8"); //unset($user['username']); $user['nologin'] = 1; $user['nologinzh'] = '没有登录'; //echo json_encode($user); } else { $user['nologin'] = 0; $user['points'] = qa_get_logged_in_points(); } return $user; }
function process_request($request) { require_once QA_INCLUDE_DIR . 'qa-app-users.php'; $appid = qa_opt('fb_app_id'); $secret = qa_opt('fb_app_secret'); $fb = new Facebook\Facebook(['app_id' => $appid, 'app_secret' => $secret, 'default_graph_version' => 'v2.4']); $qa_content = qa_content_prepare(); $qa_content['title'] = 'Facebook Sharing Page'; $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo $e->getMessage(); exit; } if (isset($accessToken)) { $_SESSION['fb_access_token'] = (string) $accessToken; $res = $fb->post('/me/feed', array('link' => 'http://nathorr.com/qeta/user/' . qa_get_logged_in_handle() . '/', 'name' => qa_opt('fb_shared_message_title'), 'picture' => qa_opt('fb_shared_message_picture'), 'description' => qa_opt('fb_shared_message_description'), 'message' => 'I have scored ' . qa_get_logged_in_points() . ' points and achieved some nice badges in Nathorr Q&A, check it out!'), $accessToken); $post = $res->getGraphObject(); $qa_content['custom'] = '<a href="http://nathorr.com/qeta/user/' . qa_get_logged_in_handle() . '">Successfully shared, return by clicking here.</a>'; return $qa_content; } else { if ($helper->getError()) { var_dump($helper->getError()); echo '<br><br>'; var_dump($helper->getErrorCode()); echo '<br><br>'; var_dump($helper->getErrorReason()); echo '<br><br>'; var_dump($helper->getErrorDescription()); echo '<br><br>'; echo '<a href="http://nathorr.com/qeta/user/' . qa_get_logged_in_handle() . '/">Something went wrong, return by clicking here.</a>'; exit; } } http_response_code(400); exit; }
function qa_user_moderation_reason($userlevel = null) { if (qa_to_override(__FUNCTION__)) { $args = func_get_args(); return qa_call_override(__FUNCTION__, $args); } $reason = false; if (!isset($userlevel)) { $userlevel = qa_get_logged_in_level(); } if ($userlevel < QA_USER_LEVEL_EXPERT && qa_user_permit_error('permit_moderate')) { $userid = qa_get_logged_in_userid(); if (isset($userid)) { if (qa_opt('moderate_users') && qa_opt('moderate_unapproved') && $userlevel < QA_USER_LEVEL_APPROVED) { $reason = 'approve'; } elseif (qa_opt('confirm_user_emails') && qa_opt('moderate_unconfirmed') && !(qa_get_logged_in_flags() & QA_USER_FLAGS_EMAIL_CONFIRMED)) { $reason = 'confirm'; } elseif (qa_opt('moderate_by_points') && qa_get_logged_in_points() < qa_opt('moderate_points_limit')) { $reason = 'points'; } } elseif (qa_opt('moderate_anon_post')) { $reason = 'login'; } } return $reason; }
/** * Adding point count for logged in user * * @since Snow 1.4 */ public function logged_in() { parent::logged_in(); if (qa_is_logged_in()) { $userpoints = qa_get_logged_in_points(); $pointshtml = $userpoints == 1 ? qa_lang_html_sub('main/1_point', '1', '1') : qa_html(number_format($userpoints)); $this->output('<div class="qam-logged-in-points">' . $pointshtml . '</div>'); } }
function voting_inner_html($post) { if (qw_hook_exist(__FUNCTION__)) { $args = func_get_args(); array_unshift($args, $this); return qw_event_hook(__FUNCTION__, $args, NULL); } $up_tags = preg_replace('/onclick="([^"]+)"/', '', str_replace('name', 'data-id', @$post['vote_up_tags'])); $down_tags = preg_replace('/onclick="([^"]+)"/', '', str_replace('name', 'data-id', @$post['vote_down_tags'])); if (qa_is_logged_in()) { $user_point = qa_get_logged_in_points(); if ($post['raw']['type'] == 'Q') { if (qa_opt('permit_vote_q') == '106') { $need = qa_opt('permit_vote_q_points') - $user_point; $up_tags = str_replace(qa_lang_html('main/vote_disabled_level'), 'You need ' . $need . ' more points to vote', $up_tags); } if (qa_opt('permit_vote_q') == '106' && qa_opt('permit_vote_down') == '106') { $max = max(qa_opt('permit_vote_down_points'), qa_opt('permit_vote_q_points')); $need = $max - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } elseif (qa_opt('permit_vote_q') == '106') { $need = qa_opt('permit_vote_q_points') - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } elseif (qa_opt('permit_vote_down') == '106') { $need = qa_opt('permit_vote_down_points') - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } } if ($post['raw']['type'] == 'A') { if (qa_opt('permit_vote_a') == '106') { $need = qa_opt('permit_vote_a_points') - $user_point; $up_tags = str_replace(qa_lang_html('main/vote_disabled_level'), 'You need ' . $need . ' more points to vote', $up_tags); } if (qa_opt('permit_vote_a') == '106' && qa_opt('permit_vote_down') == '106') { $max = max(qa_opt('permit_vote_down_points'), qa_opt('permit_vote_a_points')); $need = $max - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } elseif (qa_opt('permit_vote_a') == '106') { $need = qa_opt('permit_vote_a_points') - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } elseif (qa_opt('permit_vote_down') == '106') { $need = qa_opt('permit_vote_down_points') - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } } } $state = @$post['vote_state']; $code = qa_get_form_security_code('vote'); $vote_text = $post['raw']['netvotes'] > 1 || $post['raw']['netvotes'] < -1 ? _ra_lang('votes') : _ra_lang('vote'); $this->output('<p class="count">' . $post['raw']['netvotes'] . '<span>' . $vote_text . '</span></p>'); if (isset($post['vote_up_tags'])) { $this->output('<a ' . @$up_tags . ' href="#" data-code="' . $code . '" class="icon-chevron-up enabled vote-up ' . $state . '"></a>'); } if (isset($post['vote_down_tags'])) { $this->output('<a ' . @$down_tags . ' href="#" data-code="' . $code . '" class="icon-chevron-down enabled vote-down ' . $state . '"></a>'); } }
function voting_inner_html($post) { $up_tags = preg_replace('/onclick="([^"]+)"/', '', str_replace('name', 'data-id', @$post['vote_up_tags'])); $down_tags = preg_replace('/onclick="([^"]+)"/', '', str_replace('name', 'data-id', @$post['vote_down_tags'])); if (qa_is_logged_in()) { $user_point = qa_get_logged_in_points(); if ($post['raw']['type'] == 'Q') { if (qa_opt('permit_vote_q') == '106') { $need = qa_opt('permit_vote_q_points') - $user_point; $up_tags = str_replace(qa_lang_html('main/vote_disabled_level'), 'You need ' . $need . ' more points to vote', $up_tags); } if (qa_opt('permit_vote_q') == '106' && qa_opt('permit_vote_down') == '106') { $max = max(qa_opt('permit_vote_down_points'), qa_opt('permit_vote_q_points')); $need = $max - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } elseif (qa_opt('permit_vote_q') == '106') { $need = qa_opt('permit_vote_q_points') - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } elseif (qa_opt('permit_vote_down') == '106') { $need = qa_opt('permit_vote_down_points') - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } } if ($post['raw']['type'] == 'A') { if (qa_opt('permit_vote_a') == '106') { $need = qa_opt('permit_vote_a_points') - $user_point; $up_tags = str_replace(qa_lang_html('main/vote_disabled_level'), 'You need ' . $need . ' more points to vote', $up_tags); } if (qa_opt('permit_vote_a') == '106' && qa_opt('permit_vote_down') == '106') { $max = max(qa_opt('permit_vote_down_points'), qa_opt('permit_vote_a_points')); $need = $max - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } elseif (qa_opt('permit_vote_a') == '106') { $need = qa_opt('permit_vote_a_points') - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } elseif (qa_opt('permit_vote_down') == '106') { $need = qa_opt('permit_vote_down_points') - $user_point; $down_tags = preg_replace('/title="([^"]+)"/', 'title="You need ' . $need . ' more points to vote" ', $down_tags); } } } $state = @$post['vote_state']; $code = qa_get_form_security_code('vote'); $vote_text = $post['raw']['netvotes'] > 1 || $post['raw']['netvotes'] < -1 ? qa_lang('cleanstrap/votes') : qa_lang('cleanstrap/vote'); if (isset($post['vote_up_tags'])) { $this->output('<a ' . @$up_tags . ' href="#" data-code="' . $code . '" class=" icon-thumbs-up2 enabled vote-up ' . $state . '"></a>'); } $this->output('<span class="count">' . $post['raw']['netvotes'] . '</span>'); if (isset($post['vote_down_tags'])) { $this->output('<a ' . @$down_tags . ' href="#" data-code="' . $code . '" class=" icon-thumbs-down2 enabled vote-down ' . $state . '"></a>'); } }
<?php echo qa_lang_html('misc/nav_user_pms'); ?> </a> </li> <?php } ?> <li> <a href="<?php echo qa_path_html('user/' . qa_get_logged_in_handle()); ?> "> <span class="fa fa-money"></span> <?php echo qa_get_logged_in_points() . ' ' . qa_lang_html('admin/points_title'); ?> </a> </li> <?php foreach ($this->content['navigation']['user'] as $key => $user_nav) { ?> <?php if ($key !== 'logout') { ?> <li> <a href="<?php echo @$user_nav['url']; ?> "> <?php
/** * Get logged in user's points * * @access private * @since Snow 1.4 * @version 1.0 * @return string|null LoggedIn user's total points, null for guest * * @author Q2A Market <http://www.q2amarket.com> * @copyright (c) 2014, Q2A Market * @license http://www.gnu.org/copyleft/gpl.html */ private function user_points() { if (qa_is_logged_in()) { $userpoints = qa_get_logged_in_points(); $pointshtml = $userpoints == 1 ? qa_lang_html_sub('main/1_point', '1', '1') : qa_html(number_format($userpoints)); $points = '<DIV CLASS="qam-logged-in-points">' . $pointshtml . '</DIV>'; return $points; } return null; }
function qa_post_html_fields($post, $userid, $cookieid, $usershtml, $dummy, $options = array()) { if (qa_to_override(__FUNCTION__)) { $args = func_get_args(); return qa_call_override(__FUNCTION__, $args); } require_once QA_INCLUDE_DIR . 'qa-app-updates.php'; if (isset($options['blockwordspreg'])) { require_once QA_INCLUDE_DIR . 'qa-util-string.php'; } $fields = array(); $fields['raw'] = $post; // Useful stuff used throughout function $postid = $post['postid']; $isquestion = $post['basetype'] == 'Q'; $isanswer = $post['basetype'] == 'A'; $isbyuser = qa_post_is_by_user($post, $userid, $cookieid); $anchor = urlencode(qa_anchor($post['basetype'], $postid)); $elementid = isset($options['elementid']) ? $options['elementid'] : $anchor; $microformats = @$options['microformats']; $isselected = @$options['isselected']; // High level information $fields['hidden'] = @$post['hidden']; $fields['tags'] = 'ID="' . qa_html($elementid) . '"'; if ($microformats) { $fields['classes'] = 'hentry ' . ($isquestion ? 'question' : ($isanswer ? $isselected ? 'answer answer-selected' : 'answer' : 'comment')); } // Question-specific stuff (title, URL, tags, answer count, category) if ($isquestion) { if (isset($post['title'])) { $fields['url'] = qa_q_path_html($postid, $post['title']); if (isset($options['blockwordspreg'])) { $post['title'] = qa_block_words_replace($post['title'], $options['blockwordspreg']); } $fields['title'] = qa_html($post['title']); if ($microformats) { $fields['title'] = '<SPAN CLASS="entry-title">' . $fields['title'] . '</SPAN>'; } /*if (isset($post['score'])) // useful for setting match thresholds $fields['title'].=' <SMALL>('.$post['score'].')</SMALL>';*/ } if (@$options['tagsview'] && isset($post['tags'])) { $fields['q_tags'] = array(); $tags = qa_tagstring_to_tags($post['tags']); foreach ($tags as $tag) { if (isset($options['blockwordspreg']) && count(qa_block_words_match_all($tag, $options['blockwordspreg']))) { // skip censored tags continue; } $fields['q_tags'][] = qa_tag_html($tag, $microformats); } } if (@$options['answersview'] && isset($post['acount'])) { $fields['answers_raw'] = $post['acount']; $fields['answers'] = $post['acount'] == 1 ? qa_lang_html_sub_split('main/1_answer', '1', '1') : qa_lang_html_sub_split('main/x_answers', number_format($post['acount'])); $fields['answer_selected'] = isset($post['selchildid']); } if (@$options['viewsview'] && isset($post['views'])) { $fields['views_raw'] = $post['views']; $fields['views'] = $post['views'] == 1 ? qa_lang_html_sub_split('main/1_view', '1', '1') : qa_lang_html_sub_split('main/x_views', number_format($post['views'])); } if (@$options['categoryview'] && isset($post['categoryname']) && isset($post['categorybackpath'])) { $fields['where'] = qa_lang_html_sub_split('main/in_category_x', '<A HREF="' . qa_path_html(@$options['categorypathprefix'] . implode('/', array_reverse(explode('/', $post['categorybackpath'])))) . '" CLASS="qa-category-link">' . qa_html($post['categoryname']) . '</A>'); } } // Answer-specific stuff (selection) if ($isanswer) { $fields['selected'] = $isselected; if ($isselected) { $fields['select_text'] = qa_lang_html('question/select_text'); } } // Post content if (@$options['contentview'] && !empty($post['content'])) { $viewer = qa_load_viewer($post['content'], $post['format']); $fields['content'] = $viewer->get_html($post['content'], $post['format'], array('blockwordspreg' => @$options['blockwordspreg'], 'showurllinks' => @$options['showurllinks'], 'linksnewwindow' => @$options['linksnewwindow'])); if ($microformats) { $fields['content'] = '<DIV CLASS="entry-content">' . $fields['content'] . '</DIV>'; } $fields['content'] = '<A NAME="' . qa_html($postid) . '"></A>' . $fields['content']; // this is for backwards compatibility with any existing links using the old style of anchor // that contained the post id only (changed to be valid under W3C specifications) } // Voting stuff if (@$options['voteview']) { $voteview = $options['voteview']; // Calculate raw values and pass through $upvotes = (int) @$post['upvotes']; $downvotes = (int) @$post['downvotes']; $netvotes = (int) ($upvotes - $downvotes); $fields['upvotes_raw'] = $upvotes; $fields['downvotes_raw'] = $downvotes; $fields['netvotes_raw'] = $netvotes; // Create HTML versions... $upvoteshtml = qa_html($upvotes); $downvoteshtml = qa_html($downvotes); if ($netvotes >= 1) { $netvoteshtml = '+' . qa_html($netvotes); } elseif ($netvotes <= -1) { $netvoteshtml = '–' . qa_html(-$netvotes); } else { $netvoteshtml = '0'; } // ...with microformats if appropriate if ($microformats) { $netvoteshtml .= '<SPAN CLASS="votes-up"><SPAN CLASS="value-title" TITLE="' . $upvoteshtml . '"></SPAN></SPAN>' . '<SPAN CLASS="votes-down"><SPAN CLASS="value-title" TITLE="' . $downvoteshtml . '"></SPAN></SPAN>'; $upvoteshtml = '<SPAN CLASS="votes-up">' . $upvoteshtml . '</SPAN>'; $downvoteshtml = '<SPAN CLASS="votes-down">' . $downvoteshtml . '</SPAN>'; } // Pass information on vote viewing // $voteview will be one of: // updown, updown-disabled-page, updown-disabled-level, updown-uponly-level // net, net-disabled-page, net-disabled-level, net-uponly-level $fields['vote_view'] = substr($voteview, 0, 6) == 'updown' ? 'updown' : 'net'; $fields['vote_on_page'] = strpos($voteview, '-disabled-page') ? 'disabled' : 'enabled'; $fields['upvotes_view'] = $upvotes == 1 ? qa_lang_html_sub_split('main/1_liked', $upvoteshtml, '1') : qa_lang_html_sub_split('main/x_liked', $upvoteshtml); $fields['downvotes_view'] = $downvotes == 1 ? qa_lang_html_sub_split('main/1_disliked', $downvoteshtml, '1') : qa_lang_html_sub_split('main/x_disliked', $downvoteshtml); $fields['netvotes_view'] = abs($netvotes) == 1 ? qa_lang_html_sub_split('main/1_vote', $netvoteshtml, '1') : qa_lang_html_sub_split('main/x_votes', $netvoteshtml); // Voting buttons $fields['vote_tags'] = 'ID="voting_' . qa_html($postid) . '"'; $onclick = 'onClick="return qa_vote_click(this);"'; if ($fields['hidden']) { $fields['vote_state'] = 'disabled'; $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html($isanswer ? 'main/vote_disabled_hidden_a' : 'main/vote_disabled_hidden_q') . '"'; $fields['vote_down_tags'] = $fields['vote_up_tags']; } elseif ($isbyuser) { $fields['vote_state'] = 'disabled'; $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html($isanswer ? 'main/vote_disabled_my_a' : 'main/vote_disabled_my_q') . '"'; $fields['vote_down_tags'] = $fields['vote_up_tags']; } elseif (strpos($voteview, '-disabled-')) { $fields['vote_state'] = @$post['uservote'] > 0 ? 'voted_up_disabled' : (@$post['uservote'] < 0 ? 'voted_down_disabled' : 'disabled'); if (strpos($voteview, '-disabled-page')) { $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_q_page_only') . '"'; } else { $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_level') . '"'; } $fields['vote_down_tags'] = $fields['vote_up_tags']; } elseif (@$post['uservote'] > 0) { $fields['vote_state'] = 'voted_up'; $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html('main/voted_up_popup') . '" NAME="' . qa_html('vote_' . $postid . '_0_' . $elementid) . '" ' . $onclick; $fields['vote_down_tags'] = ' '; } elseif (@$post['uservote'] < 0) { $fields['vote_state'] = 'voted_down'; $fields['vote_up_tags'] = ' '; $fields['vote_down_tags'] = 'TITLE="' . qa_lang_html('main/voted_down_popup') . '" NAME="' . qa_html('vote_' . $postid . '_0_' . $elementid) . '" ' . $onclick; } else { $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html('main/vote_up_popup') . '" NAME="' . qa_html('vote_' . $postid . '_1_' . $elementid) . '" ' . $onclick; // calculation new points for the case the user clicks on down or upvote button if ($isquestion) { $newpointsafterdownvote = qa_get_logged_in_points() + (@$post['uservote'] > 0 ? -1 * qa_opt('points_vote_up_q') : qa_opt('points_vote_down_q')); $newpointsafterupvote = qa_get_logged_in_points() + (@$post['uservote'] < 0 ? -1 * qa_opt('points_vote_down_q') : qa_opt('points_vote_up_q')); } else { $newpointsafterdownvote = qa_get_logged_in_points() + (@$post['uservote'] > 0 ? -1 * qa_opt('points_vote_up_a') : qa_opt('points_vote_down_a')); $newpointsafterupvote = qa_get_logged_in_points() + (@$post['uservote'] < 0 ? -1 * qa_opt('points_vote_down_a') : qa_opt('points_vote_up_a')); } if ($newpointsafterdownvote < 0) { // If after downvote user will have less than 0 points, then hide downvoting button if ($newpointsafterupvote < 0) { // If after upvote user will have less than 0 points, then hide upvoting button $fields['vote_state'] = 'disabled'; $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_level') . '"'; $fields['vote_down_tags'] = $fields['vote_up_tags']; } else { // only hide downvoting button $fields['vote_state'] = 'up_only'; $fields['vote_down_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_level') . '"'; } } else { if ($newpointsafterupvote < 0) { // only hide upvoting button if (strpos($voteview, '-uponly-level')) { $fields['vote_state'] = 'disabled'; $fields['vote_down_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_down') . '"'; $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_level') . '"'; } else { // vote_state 'down_only' does not exist. Therfore use disabled state. $fields['vote_state'] = 'disabled'; $fields['vote_down_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_down') . '"'; $fields['vote_up_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_level') . '"'; } } else { // after click on either up or downvote button, points will be >0 if (strpos($voteview, '-uponly-level')) { $fields['vote_state'] = 'up_only'; $fields['vote_down_tags'] = 'TITLE="' . qa_lang_html('main/vote_disabled_down') . '"'; } else { $fields['vote_state'] = 'enabled'; $fields['vote_down_tags'] = 'TITLE="' . qa_lang_html('main/vote_down_popup') . '" NAME="' . qa_html('vote_' . $postid . '_-1_' . $elementid) . '" ' . $onclick; } } } } } // Flag count if (@$options['flagsview'] && @$post['flagcount']) { $fields['flags'] = $post['flagcount'] == 1 ? qa_lang_html_sub_split('main/1_flag', '1', '1') : qa_lang_html_sub_split('main/x_flags', $post['flagcount']); } // Created when and by whom $fields['meta_order'] = qa_lang_html('main/meta_order'); // sets ordering of meta elements which can be language-specific if (@$options['whatview']) { $fields['what'] = qa_lang_html($isquestion ? 'main/asked' : ($isanswer ? 'main/answered' : 'main/commented')); if (@$options['whatlink'] && !$isquestion) { $fields['what_url'] = qa_path_html(qa_request(), array('show' => $postid), null, null, qa_anchor($post['basetype'], $postid)); } } if (isset($post['created']) && @$options['whenview']) { $fields['when'] = qa_when_to_html($post['created'], @$options['fulldatedays']); if ($microformats) { $fields['when']['data'] = '<SPAN CLASS="published"><SPAN CLASS="value-title" TITLE="' . gmdate('Y-m-d\\TH:i:sO', $post['created']) . '"></SPAN>' . $fields['when']['data'] . '</SPAN>'; } } if (@$options['whoview']) { $fields['who'] = qa_who_to_html($isbyuser, @$post['userid'], $usershtml, @$options['ipview'] ? @$post['createip'] : null, $microformats); if (isset($post['points'])) { if (@$options['pointsview']) { $fields['who']['points'] = $post['points'] == 1 ? qa_lang_html_sub_split('main/1_point', '1', '1') : qa_lang_html_sub_split('main/x_points', qa_html(number_format($post['points']))); } if (isset($options['pointstitle'])) { $fields['who']['title'] = qa_get_points_title_html($post['points'], $options['pointstitle']); } } if (isset($post['level'])) { $fields['who']['level'] = qa_html(qa_user_level_string($post['level'])); } } if (@$options['avatarsize'] > 0) { if (QA_FINAL_EXTERNAL_USERS) { $fields['avatar'] = qa_get_external_avatar_html($post['userid'], $options['avatarsize'], false); } else { $fields['avatar'] = qa_get_user_avatar_html(@$post['flags'], @$post['email'], @$post['handle'], @$post['avatarblobid'], @$post['avatarwidth'], @$post['avatarheight'], $options['avatarsize']); } } // Updated when and by whom if (@$options['updateview'] && isset($post['updated']) && ($post['updatetype'] != QA_UPDATE_SELECTED || $isselected) && (!isset($post['created']) || $post['hidden'] && $post['updatetype'] == QA_UPDATE_VISIBLE || isset($post['closedbyid']) && $post['updatetype'] == QA_UPDATE_CLOSED || abs($post['updated'] - $post['created']) > 300 || $post['lastuserid'] != $post['userid'])) { switch ($post['updatetype']) { case QA_UPDATE_TYPE: case QA_UPDATE_PARENT: $langstring = 'main/moved'; break; case QA_UPDATE_CATEGORY: $langstring = 'main/recategorized'; break; case QA_UPDATE_VISIBLE: $langstring = $post['hidden'] ? 'main/hidden' : 'main/reshown'; break; case QA_UPDATE_CLOSED: $langstring = isset($post['closedbyid']) ? 'main/closed' : 'main/reopened'; break; case QA_UPDATE_TAGS: $langstring = 'main/retagged'; break; case QA_UPDATE_SELECTED: $langstring = 'main/selected'; break; default: $langstring = 'main/edited'; break; } $fields['what_2'] = qa_lang_html($langstring); if (@$options['whenview']) { $fields['when_2'] = qa_when_to_html($post['updated'], @$options['fulldatedays']); if ($microformats) { $fields['when_2']['data'] = '<SPAN CLASS="updated"><SPAN CLASS="value-title" TITLE="' . gmdate('Y-m-d\\TH:i:sO', $post['updated']) . '"></SPAN>' . $fields['when_2']['data'] . '</SPAN>'; } } if (isset($post['lastuserid']) && @$options['whoview']) { $fields['who_2'] = qa_who_to_html(isset($userid) && $post['lastuserid'] == $userid, $post['lastuserid'], $usershtml, @$options['ipview'] ? $post['lastip'] : null, false); } } // That's it! return $fields; }
function qa_permit_error($permitoption, $userid, $userlevel, $userflags, $userpoints = null) { $permit = isset($permitoption) ? qa_opt($permitoption) : QA_PERMIT_ALL; if ($permit == QA_PERMIT_POINTS || $permit == QA_PERMIT_POINTS_CONFIRMED) { // deal with points threshold by converting as appropriate $permit = QA_PERMIT_EXPERTS; // by default, only special users pass this, but... if (isset($userid)) { if (!isset($userpoints) && $userid == qa_get_logged_in_userid()) { $userpoints = qa_get_logged_in_points(); } // allow late retrieval of points (to avoid unnecessary DB query when using external users) if ($userpoints >= qa_opt($permitoption . '_points')) { $permit = $permit == QA_PERMIT_POINTS_CONFIRMED ? QA_PERMIT_CONFIRMED : QA_PERMIT_USERS; } // convert if user has enough points } } if ($permit >= QA_PERMIT_ALL) { $error = false; } elseif ($permit >= QA_PERMIT_USERS) { $error = isset($userid) ? false : 'login'; } elseif ($permit >= QA_PERMIT_CONFIRMED) { if (!isset($userid)) { $error = 'login'; } elseif (QA_FINAL_EXTERNAL_USERS || $userlevel >= QA_USER_LEVEL_EXPERT || $userflags & QA_USER_FLAGS_EMAIL_CONFIRMED || !qa_opt('confirm_user_emails')) { $error = false; } else { $error = 'confirm'; } } elseif ($permit >= QA_PERMIT_EXPERTS) { $error = isset($userid) && $userlevel >= QA_USER_LEVEL_EXPERT ? false : 'level'; } elseif ($permit >= QA_PERMIT_EDITORS) { $error = isset($userid) && $userlevel >= QA_USER_LEVEL_EDITOR ? false : 'level'; } elseif ($permit >= QA_PERMIT_MODERATORS) { $error = isset($userid) && $userlevel >= QA_USER_LEVEL_MODERATOR ? false : 'level'; } elseif ($permit >= QA_PERMIT_ADMINS) { $error = isset($userid) && $userlevel >= QA_USER_LEVEL_ADMIN ? false : 'level'; } else { $error = isset($userid) && $userlevel >= QA_USER_LEVEL_SUPER ? false : 'level'; } if (isset($userid) && $userflags & QA_USER_FLAGS_USER_BLOCKED && $error != 'level') { $error = 'userblock'; } return $error; }
<li id="user-nag"> <a class="profile" href="<?php echo qa_path_html('user/' . qa_get_logged_in_handle()); ?> "> <img src="<?php echo ra_get_avatar(qa_get_logged_in_handle(), 20, false); ?> " /> <span><?php echo ra_name(qa_get_logged_in_handle()); ?> </span> <span class="points"><?php echo qa_get_logged_in_points(); ?> </span> </a> </li> <li class="dropdown" id="menuLogin"> <a class="dropdown-toggle user-tools" data-toggle="dropdown" href="#"> <i class="icon-cog"></i> </a> <div class="dropdown-menu"> <ul class="user-nav"> <li><a class="icon-profile" href="<?php echo qa_path_html('user/' . qa_get_logged_in_handle()); ?> "><?php
function logged_in() { qa_html_theme_base::logged_in(); if (qa_is_logged_in()) { $userpoints = qa_get_logged_in_points(); $username = qa_html(qa_get_logged_in_handle()); $userid = qa_get_logged_in_userid(); $user = qa_db_select_with_pending(qa_db_user_rank_selectspec($userid)); $userrank = ''; if (is_array($user)) { if (array_key_exists('rank', $user)) { $userrank = '(#' . number_format((int) $user['rank']) . ')'; } } $pointshtml = $userpoints == 1 ? qa_lang_html_sub('main/1_point', '1', '1') : qa_lang_html_sub('main/x_points', qa_html(number_format($userpoints))); $this->output('<SPAN><a CLASS="qa-logged-in-points" href="index.php?qa=user&qa_1=' . $username . '#activity">' . $pointshtml . $userrank . '</a></SPAN>'); } }