function cs_events($limit = 10, $events_type = false)
 {
     if (!$events_type) {
         $events_type = array('q_post', 'a_post', 'c_post', 'a_select', 'badge_awarded');
     }
     // query last 3 events
     $posts = qa_db_read_all_assoc(qa_db_query_sub('SELECT datetime,ipaddress,handle,event,params FROM ^eventlog WHERE event IN ("q_post", "a_post", "c_post") ORDER BY datetime DESC LIMIT #', $limit));
     if (empty($posts)) {
         return;
     }
     $postids = '';
     $i = 1;
     foreach ($posts as $post) {
         $params = preg_replace('/\\s+/', '&', $post['params']);
         parse_str($params, $data);
         $postids .= ($i != 1 ? ', ' : '') . $data['postid'];
         $i++;
     }
     $posts = qa_db_read_all_assoc(qa_db_query_sub('SELECT ^posts.* , ^users.handle FROM ^posts, ^users WHERE (^posts.userid=^users.userid AND ^posts.postid IN (' . $postids . ')) AND ^posts.type IN ("Q", "A", "C") ORDER BY ^posts.created DESC'));
     $o = '<ul class="ra-activity">';
     foreach ($posts as $p) {
         $event_name = '';
         $event_icon = '';
         if ($p['type'] == 'Q') {
             $event_name = qa_lang('cleanstrap/asked');
             $event_icon = 'icon-question';
         } else {
             if ($p['type'] == 'A') {
                 $event_name = qa_lang('cleanstrap/answered');
                 $event_icon = 'icon-answer';
             } else {
                 $event_name = qa_lang('cleanstrap/commented');
                 $event_icon = 'icon-chat';
             }
         }
         $username = is_null($p['handle']) ? qa_lang('cleanstrap/anonymous') : htmlspecialchars($p['handle']);
         $usernameLink = is_null($p['handle']) ? qa_lang('cleanstrap/anonymous') : '<a href="' . qa_path_html('user/' . $p['handle']) . '">' . $p['handle'] . '</a>';
         $timeCode = qa_when_to_html(strtotime($p['created']), 7);
         $time = @$timeCode['prefix'] . @$timeCode['data'] . @$timeCode['suffix'];
         $o .= '<li class="event-item">';
         $o .= '<div class="event-inner">';
         $o .= '<div class="event-icon pull-left ' . $event_icon . '"></div>';
         $o .= '<div class="event-content">';
         $o .= '<p class="title"><strong class="avatar" data-handle="' . $p['handle'] . '" data-id="' . $p['userid'] . '">' . @$usernameLink . '</strong> <span class="what">' . $event_name . '</span></p>';
         if ($p['type'] == 'Q') {
             $o .= '<a class="event-title" href="' . qa_q_path_html($p['postid'], $p['title']) . '" title="' . $p['title'] . '">' . cs_truncate($p['title'], 100) . '</a>';
         } elseif ($p['type'] == 'A') {
             $o .= '<a class="event-title" href="' . cs_post_link($p['parentid']) . '#a' . $p['postid'] . '">' . cs_truncate(strip_tags($p['content']), 100) . '</a>';
         } else {
             $o .= '<a class="event-title" href="' . cs_post_link($p['parentid']) . '#c' . $p['postid'] . '">' . cs_truncate(strip_tags($p['content']), 100) . '</a>';
         }
         $o .= '<span class="time">' . $time . '</span>';
         $o .= '</div>';
         $o .= '</div>';
         $o .= '</li>';
     }
     $o .= '</ul>';
     return $o;
 }
 function cs_user_post_list($handle, $type, $limit)
 {
     $userid = qa_handle_to_userid($handle);
     require_once QA_INCLUDE_DIR . 'qa-app-posts.php';
     $post = qa_db_read_all_assoc(qa_db_query_sub('SELECT * FROM ^posts INNER JOIN ^users ON ^posts.userid=^users.userid WHERE ^posts.type=$ and ^posts.userid=# ORDER BY ^posts.created DESC LIMIT #', $type, $userid, $limit));
     $output = '<ul class="question-list users-post-widget post-type-' . $type . '">';
     if (count($post) > 0) {
         foreach ($post as $p) {
             if ($type == 'Q') {
                 $what = qa_lang_html('cleanstrap/asked');
             } elseif ($type == 'A') {
                 $what = qa_lang_html('cleanstrap/answered');
             } elseif ('C') {
                 $what = qa_lang_html('cleanstrap/commented');
             }
             $handle = $p['handle'];
             $output .= '<li id="q-list-' . $p['postid'] . '" class="question-item">';
             if ($type == 'Q') {
                 $output .= '<div class="big-ans-count pull-left">' . $p['acount'] . '<span>' . qa_lang_html('cleanstrap/ans') . '</span></div>';
             } elseif ($type == 'A') {
                 $output .= '<div class="big-ans-count pull-left icon-answer"></div>';
             } elseif ($type == 'C') {
                 $output .= '<div class="big-ans-count pull-left icon-comment icon-comments"></div>';
             }
             $output .= '<div class="list-right">';
             $timeCode = qa_when_to_html(strtotime($p['created']), 7);
             $when = @$timeCode['prefix'] . @$timeCode['data'] . @$timeCode['suffix'];
             if ($type == 'Q') {
                 $output .= '<h5><a href="' . qa_q_path_html($p['postid'], $p['title']) . '" title="' . $p['title'] . '">' . qa_html($p['title']) . '</a></h5>';
             } elseif ($type == 'A') {
                 $output .= '<h5><a href="' . cs_post_link($p['parentid']) . '#a' . $p['postid'] . '">' . cs_truncate(strip_tags($p['content']), 300) . '</a></h5>';
             } else {
                 $output .= '<h5><a href="' . cs_post_link($p['parentid']) . '#c' . $p['postid'] . '">' . cs_truncate(strip_tags($p['content']), 300) . '</a></h5>';
             }
             $output .= '<div class="list-date"><span class="icon-clock">' . $when . '</span>';
             $output .= '<span class="icon-thumbs-up2">' . qa_lang_sub('cleanstrap/x_votes', $p['netvotes']) . '</span></div>';
             $output .= '</div>';
             $output .= '</li>';
         }
     } else {
         if ($type == 'Q') {
             $what = 'questions';
         } elseif ($type == 'A') {
             $what = 'answers';
         } elseif ('C') {
             $what = 'comments';
         }
         $output .= '<li class="no-post-found">' . qa_lang('cleanstrap/no_' . $what) . ' </li>';
     }
     $output .= '</ul>';
     echo $output;
 }
 function carousel_item($type, $limit, $col_item = 1)
 {
     require_once QA_INCLUDE_DIR . 'qa-app-posts.php';
     $post = qa_db_query_sub('SELECT * FROM ^postmetas, ^posts INNER JOIN ^users ON ^posts.userid=^users.userid WHERE ^posts.type=$ and ( ^postmetas.postid = ^posts.postid and ^postmetas.title = "featured_question" ) ORDER BY ^posts.created DESC LIMIT #', $type, $limit);
     $output = '<div class="item"><div class="row">';
     $i = 1;
     while ($p = mysql_fetch_array($post)) {
         if ($type == 'Q') {
             $what = qa_lang('cleanstrap/asked');
         } elseif ($type == 'A') {
             $what = qa_lang('cleanstrap/answered');
         } elseif ('C') {
             $what = qa_lang('cleanstrap/commented');
         }
         $handle = $p['handle'];
         if ($type == 'Q') {
             $link_header = '<a href="' . qa_q_path_html($p['postid'], $p['title']) . '" title="' . $p['title'] . '">';
         } elseif ($type == 'A') {
             $link_header = '<a href="' . cs_post_link($p['parentid']) . '#a' . $p['postid'] . '">';
         } else {
             $link_header = '<a href="' . cs_post_link($p['parentid']) . '#c' . $p['postid'] . '">';
         }
         $output .= '<div class="slider-item col-sm-' . 12 / $col_item . '">';
         $output .= '<div class="slider-item-inner">';
         $featured_img = get_featured_thumb($p['postid']);
         if ($featured_img) {
             $output .= $link_header . '<div class="featured-image">' . $featured_img . '</div></a>';
         }
         if ($type == 'Q') {
             $output .= '<div class="big-ans-count pull-left">' . $p['acount'] . '<span> ans</span></div>';
         } elseif ($type == 'A') {
             $output .= '<div class="big-ans-count pull-left vote">' . $p['netvotes'] . '<span>' . qa_lang('cleanstrap/vote') . '</span></div>';
         }
         $output .= '<h5>' . $link_header . cs_truncate(qa_html($p['title']), 50) . '</a></h5>';
         $output .= '<div class="meta">';
         $when = qa_when_to_html(strtotime($p['created']), 7);
         $avatar = cs_get_avatar($handle, 15, false);
         if ($avatar) {
             $output .= '<img src="' . $avatar . '" />';
         }
         $output .= '<span class="icon-time">' . implode(' ', $when) . '</span>';
         $output .= '<span class="vote-count">' . $p['netvotes'] . ' ' . qa_lang('cleanstrap/votes') . '</span></div>';
         $output .= '</div>';
         $output .= '</div>';
         if ($col_item == $i) {
             $output .= '</div></div><div class="item active"><div class="row">';
         }
         $i++;
     }
     $output .= '</div></div>';
     return $output;
 }
Beispiel #4
0
 function cs_post_list($type, $limit, $return = false)
 {
     $posts = qa_db_read_all_assoc(qa_db_query_sub('SELECT ^posts.* , ^users.* FROM ^posts, ^users WHERE ^posts.userid=^users.userid AND ^posts.type=$ ORDER BY ^posts.created DESC LIMIT #', $type, $limit));
     $output = '<ul class="posts-list">';
     foreach ($posts as $p) {
         if ($type == 'Q') {
             $what = qa_lang_html('cleanstrap/asked');
         } elseif ($type == 'A') {
             $what = qa_lang_html('cleanstrap/answered');
         } elseif ('C') {
             $what = qa_lang_html('cleanstrap/commented');
         }
         $handle = $p['handle'];
         $timeCode = qa_when_to_html(strtotime($p['created']), 7);
         $when = @$timeCode['prefix'] . @$timeCode['data'] . @$timeCode['suffix'];
         $output .= '<li>';
         $output .= cs_get_post_avatar($p, $p['userid'], 30, true);
         $output .= '<div class="post-content">';
         if ($type == 'Q') {
             $output .= '<a class="title question" href="' . qa_q_path_html($p['postid'], $p['title']) . '" title="' . $p['title'] . '">' . qa_html($p['title']) . '</a>';
         } elseif ($type == 'A') {
             $output .= '<a class="title" href="' . cs_post_link($p['parentid']) . '#a' . $p['postid'] . '">' . cs_truncate(strip_tags($p['content']), 100) . '</a>';
         } else {
             $output .= '<a class="title" href="' . cs_post_link($p['parentid']) . '#c' . $p['postid'] . '">' . cs_truncate(strip_tags($p['content']), 100) . '</a>';
         }
         $output .= '<div class="meta">';
         //$output .= '<span><a href="' . qa_path_html('user/' . $handle) . '">' . cs_name($handle) . '</a> ' . $what . '</span>';
         if ($type == 'Q') {
             $output .= '<span>' . qa_lang_sub('cleanstrap/x_answers', $p['acount']) . '</span>';
         }
         $output .= '<span class="time icon-time">' . $when . '</span>';
         $output .= '<span class="vote-count icon-thumbs-up2">' . qa_lang_sub('cleanstrap/x_votes', $p['netvotes']) . '</span>';
         $output .= '</div>';
         $output .= '</div>';
         $output .= '</li>';
     }
     $output .= '</ul>';
     if ($return) {
         return $output;
     }
     echo $output;
 }
 function output_widget($region, $place, $themeobject, $template, $request, $qa_content)
 {
     $widget_opt = @$themeobject->current_widget['param']['options'];
     require_once QA_INCLUDE_DIR . 'qa-db-selects.php';
     if (@$qa_content['q_view']['raw']['type'] != 'Q') {
         // question might not be visible, etc...
         return;
     }
     $questionid = $qa_content['q_view']['raw']['postid'];
     $userid = qa_get_logged_in_userid();
     $cookieid = qa_cookie_get();
     $questions = qa_db_single_select(qa_db_related_qs_selectspec($userid, $questionid, (int) $widget_opt['count']));
     $minscore = qa_match_to_min_score(qa_opt('match_related_qs'));
     foreach ($questions as $key => $question) {
         if ($question['score'] < $minscore) {
             unset($questions[$key]);
         }
     }
     $titlehtml = qa_lang_html(count($questions) ? 'main/related_qs_title' : 'main/no_related_qs_title');
     if (@$themeobject->current_widget['param']['locations']['show_title']) {
         $themeobject->output('<h3 class="widget-title">' . qa_lang('cleanstrap/related_questions') . '</h3>');
     }
     $themeobject->output('<div class="ra-rq-widget">');
     $themeobject->output('<ul>');
     foreach ($questions as $p) {
         $timeCode = qa_when_to_html($p['created'], 7);
         $when = @$timeCode['prefix'] . @$timeCode['data'] . @$timeCode['suffix'];
         $themeobject->output('<li>' . cs_get_post_avatar($p, $p['userid'], 30, true));
         $themeobject->output('<div class="post-content">');
         $themeobject->output('<a class="title" href="' . qa_q_path_html($p['postid'], $p['title']) . '">' . qa_html($p['title']) . '</a>');
         $themeobject->output('<div class="meta">');
         $themeobject->output('<span>' . qa_lang_sub('cleanstrap/x_answers', $p['acount']) . '</span>');
         $themeobject->output('<span class="time icon-time">' . $when . '</span>');
         $themeobject->output('<span class="vote-count icon-thumbs-up2">' . qa_lang_sub('cleanstrap/x_votes', $p['netvotes']) . '</span>');
         $themeobject->output('</div>');
         $themeobject->output('</div>');
         $themeobject->output('</li>');
     }
     $themeobject->output('</ul>');
     $themeobject->output('</div>');
 }
 $htmloptions['answersview'] = false;
 $htmloptions['viewsview'] = false;
 $htmloptions['updateview'] = false;
 $htmloptions['contentview'] = true;
 $htmloptions['flagsview'] = true;
 $htmloptions['elementid'] = $elementid;
 $htmlfields = qa_any_to_q_html_fields($question, $userid, qa_cookie_get(), $usershtml, null, $htmloptions);
 if (isset($htmlfields['what_url'])) {
     // link directly to relevant content
     $htmlfields['url'] = $htmlfields['what_url'];
 }
 $htmlfields['what_2'] = qa_lang_html('main/hidden');
 if (@$htmloptions['whenview']) {
     $updated = @$question[isset($question['opostid']) ? 'oupdated' : 'updated'];
     if (isset($updated)) {
         $htmlfields['when_2'] = qa_when_to_html($updated, @$htmloptions['fulldatedays']);
     }
 }
 $buttons = array();
 $posttype = qa_strtolower(isset($question['obasetype']) ? $question['obasetype'] : $question['basetype']);
 if (!qa_user_post_permit_error('permit_hide_show', $question)) {
     // Possible values for popup: reshow_q_popup, reshow_a_popup, reshow_c_popup
     $buttons['reshow'] = array('tags' => 'name="admin_' . qa_html($qhiddenpostid[$key]) . '_reshow" onclick="return qa_admin_click(this);"', 'label' => qa_lang_html('question/reshow_button'), 'popup' => qa_lang_html(sprintf('question/reshow_%s_popup', $posttype)));
 }
 if (!qa_user_post_permit_error('permit_delete_hidden', $question) && !$dependcounts[$qhiddenpostid[$key]]) {
     // Possible values for popup: delete_q_popup, delete_a_popup, delete_c_popup
     $buttons['delete'] = array('tags' => 'name="admin_' . qa_html($qhiddenpostid[$key]) . '_delete" onclick="return qa_admin_click(this);"', 'label' => qa_lang_html('question/delete_button'), 'popup' => qa_lang_html(sprintf('question/delete_%s_popup', $posttype)));
 }
 if (count($buttons)) {
     $htmlfields['form'] = array('style' => 'light', 'buttons' => $buttons);
 }
Beispiel #7
0
function qa_other_to_q_html_fields($question, $userid, $cookieid, $usershtml, $dummy, $options)
{
    if (qa_to_override(__FUNCTION__)) {
        $args = func_get_args();
        return qa_call_override(__FUNCTION__, $args);
    }
    require_once QA_INCLUDE_DIR . 'app/updates.php';
    $fields = qa_post_html_fields($question, $userid, $cookieid, $usershtml, null, $options);
    switch ($question['obasetype'] . '-' . @$question['oupdatetype']) {
        case 'Q-':
            $langstring = 'main/asked';
            break;
        case 'Q-' . QA_UPDATE_VISIBLE:
            if (@$question['opersonal']) {
                $langstring = $question['hidden'] ? 'misc/your_q_hidden' : 'misc/your_q_reshown';
            } else {
                $langstring = $question['hidden'] ? 'main/hidden' : 'main/reshown';
            }
            break;
        case 'Q-' . QA_UPDATE_CLOSED:
            if (@$question['opersonal']) {
                $langstring = isset($question['closedbyid']) ? 'misc/your_q_closed' : 'misc/your_q_reopened';
            } else {
                $langstring = isset($question['closedbyid']) ? 'main/closed' : 'main/reopened';
            }
            break;
        case 'Q-' . QA_UPDATE_TAGS:
            $langstring = @$question['opersonal'] ? 'misc/your_q_retagged' : 'main/retagged';
            break;
        case 'Q-' . QA_UPDATE_CATEGORY:
            $langstring = @$question['opersonal'] ? 'misc/your_q_recategorized' : 'main/recategorized';
            break;
        case 'A-':
            $langstring = @$question['opersonal'] ? 'misc/your_q_answered' : 'main/answered';
            break;
        case 'A-' . QA_UPDATE_SELECTED:
            $langstring = @$question['opersonal'] ? 'misc/your_a_selected' : 'main/answer_selected';
            break;
        case 'A-' . QA_UPDATE_VISIBLE:
            if (@$question['opersonal']) {
                $langstring = $question['ohidden'] ? 'misc/your_a_hidden' : 'misc/your_a_reshown';
            } else {
                $langstring = $question['ohidden'] ? 'main/hidden' : 'main/answer_reshown';
            }
            break;
        case 'A-' . QA_UPDATE_CONTENT:
            $langstring = @$question['opersonal'] ? 'misc/your_a_edited' : 'main/answer_edited';
            break;
        case 'Q-' . QA_UPDATE_FOLLOWS:
            $langstring = @$question['opersonal'] ? 'misc/your_a_questioned' : 'main/asked_related_q';
            break;
        case 'C-':
            $langstring = 'main/commented';
            break;
        case 'C-' . QA_UPDATE_C_FOR_Q:
            $langstring = @$question['opersonal'] ? 'misc/your_q_commented' : 'main/commented';
            break;
        case 'C-' . QA_UPDATE_C_FOR_A:
            $langstring = @$question['opersonal'] ? 'misc/your_a_commented' : 'main/commented';
            break;
        case 'C-' . QA_UPDATE_FOLLOWS:
            $langstring = @$question['opersonal'] ? 'misc/your_c_followed' : 'main/commented';
            break;
        case 'C-' . QA_UPDATE_TYPE:
            $langstring = @$question['opersonal'] ? 'misc/your_c_moved' : 'main/comment_moved';
            break;
        case 'C-' . QA_UPDATE_VISIBLE:
            if (@$question['opersonal']) {
                $langstring = $question['ohidden'] ? 'misc/your_c_hidden' : 'misc/your_c_reshown';
            } else {
                $langstring = $question['ohidden'] ? 'main/hidden' : 'main/comment_reshown';
            }
            break;
        case 'C-' . QA_UPDATE_CONTENT:
            $langstring = @$question['opersonal'] ? 'misc/your_c_edited' : 'main/comment_edited';
            break;
        case 'Q-' . QA_UPDATE_CONTENT:
        default:
            $langstring = @$question['opersonal'] ? 'misc/your_q_edited' : 'main/edited';
            break;
    }
    $fields['what'] = qa_lang_html($langstring);
    if (@$question['opersonal']) {
        $fields['what_your'] = true;
    }
    if ($question['obasetype'] != 'Q' || @$question['oupdatetype'] == QA_UPDATE_FOLLOWS) {
        $fields['what_url'] = qa_q_path_html($question['postid'], $question['title'], false, $question['obasetype'], $question['opostid']);
    }
    if (@$options['contentview'] && !empty($question['ocontent'])) {
        $viewer = qa_load_viewer($question['ocontent'], $question['oformat']);
        $fields['content'] = $viewer->get_html($question['ocontent'], $question['oformat'], array('blockwordspreg' => @$options['blockwordspreg'], 'showurllinks' => @$options['showurllinks'], 'linksnewwindow' => @$options['linksnewwindow']));
    }
    if (@$options['whenview']) {
        $fields['when'] = qa_when_to_html($question['otime'], @$options['fulldatedays']);
    }
    if (@$options['whoview']) {
        $isbyuser = qa_post_is_by_user(array('userid' => $question['ouserid'], 'cookieid' => @$question['ocookieid']), $userid, $cookieid);
        $fields['who'] = qa_who_to_html($isbyuser, $question['ouserid'], $usershtml, @$options['ipview'] ? @$question['oip'] : null, false, @$question['oname']);
        if (isset($question['opoints'])) {
            if (@$options['pointsview']) {
                $fields['who']['points'] = $question['opoints'] == 1 ? qa_lang_html_sub_split('main/1_point', '1', '1') : qa_lang_html_sub_split('main/x_points', qa_html(number_format($question['opoints'])));
            }
            if (isset($options['pointstitle'])) {
                $fields['who']['title'] = qa_get_points_title_html($question['opoints'], $options['pointstitle']);
            }
        }
        if (isset($question['olevel'])) {
            $fields['who']['level'] = qa_html(qa_user_level_string($question['olevel']));
        }
    }
    unset($fields['flags']);
    if (@$options['flagsview'] && @$question['oflagcount']) {
        $fields['flags'] = $question['oflagcount'] == 1 ? qa_lang_html_sub_split('main/1_flag', '1', '1') : qa_lang_html_sub_split('main/x_flags', $question['oflagcount']);
    }
    unset($fields['avatar']);
    if (@$options['avatarsize'] > 0) {
        if (QA_FINAL_EXTERNAL_USERS) {
            $fields['avatar'] = qa_get_external_avatar_html($question['ouserid'], $options['avatarsize'], false);
        } else {
            $fields['avatar'] = qa_get_user_avatar_html($question['oflags'], $question['oemail'], $question['ohandle'], $question['oavatarblobid'], $question['oavatarwidth'], $question['oavatarheight'], $options['avatarsize']);
        }
    }
    return $fields;
}
Beispiel #8
0
    }
}
//	Prepare content for theme
$qa_content = qa_content_prepare();
$qa_content['title'] = qa_lang_html_sub('profile/user_x', $userhtml);
$qa_content['error'] = @$errors['page'];
if (isset($loginuserid) && $loginuserid != $useraccount['userid'] && !QA_FINAL_EXTERNAL_USERS) {
    $favoritemap = qa_get_favorite_non_qs_map();
    $favorite = @$favoritemap['user'][$useraccount['userid']];
    $qa_content['favorite'] = qa_favorite_form(QA_ENTITY_USER, $useraccount['userid'], $favorite, qa_lang_sub($favorite ? 'main/remove_x_favorites' : 'users/add_user_x_favorites', $handle));
}
$qa_content['script_rel'][] = 'qa-content/qa-user.js?' . QA_VERSION;
//	General information about the user, only available if we're using internal user management
if (!QA_FINAL_EXTERNAL_USERS) {
    $membertime = qa_time_to_string(qa_opt('db_time') - $useraccount['created']);
    $joindate = qa_when_to_html($useraccount['created'], 0);
    $qa_content['form_profile'] = array('tags' => 'method="post" action="' . qa_self_html() . '"', 'style' => 'wide', 'fields' => array('avatar' => array('type' => 'image', 'style' => 'tall', 'label' => '', 'html' => qa_get_user_avatar_html($useraccount['flags'], $useraccount['email'], $useraccount['handle'], $useraccount['avatarblobid'], $useraccount['avatarwidth'], $useraccount['avatarheight'], qa_opt('avatar_profile_size')), 'id' => 'avatar'), 'removeavatar' => null, 'duration' => array('type' => 'static', 'label' => qa_lang_html('users/member_for'), 'value' => qa_html($membertime . ' (' . qa_lang_sub('main/since_x', $joindate['data']) . ')'), 'id' => 'duration'), 'level' => array('type' => 'static', 'label' => qa_lang_html('users/member_type'), 'tags' => 'name="level"', 'value' => qa_html(qa_user_level_string($useraccount['level'])), 'note' => $useraccount['flags'] & QA_USER_FLAGS_USER_BLOCKED && isset($maxlevelassign) ? qa_lang_html('users/user_blocked') : '', 'id' => 'level')));
    if (empty($qa_content['form_profile']['fields']['avatar']['html'])) {
        unset($qa_content['form_profile']['fields']['avatar']);
    }
    //	Private message link
    if (qa_opt('allow_private_messages') && isset($loginuserid) && $loginuserid != $userid && !($useraccount['flags'] & QA_USER_FLAGS_NO_MESSAGES) && !$userediting) {
        $qa_content['form_profile']['fields']['level']['value'] .= strtr(qa_lang_html('profile/send_private_message'), array('^1' => '<a href="' . qa_path_html('message/' . $handle) . '">', '^2' => '</a>'));
    }
    //	Levels editing or viewing (add category-specific levels)
    if ($userediting) {
        if (isset($maxlevelassign)) {
            $qa_content['form_profile']['fields']['level']['type'] = 'select';
            $showlevels = array(QA_USER_LEVEL_BASIC);
            if (qa_opt('moderate_users')) {
                $showlevels[] = QA_USER_LEVEL_APPROVED;
 function get_full_post($post, $options, $usershtml)
 {
     $fields['raw'] = $post;
     $userid = qa_get_logged_in_userid();
     $cookieid = qa_cookie_get();
     $fields['netvotes_raw'] = (int) $post['netvotes'];
     $postid = $post['postid'];
     $isquestion = $post['basetype'] == 'Q';
     $isanswer = $post['basetype'] == 'A';
     $isbyuser = @$post['userid'] == $userid;
     $anchor = urlencode(qa_anchor($post['basetype'], $postid));
     $elementid = isset($options['elementid']) ? $options['elementid'] : $anchor;
     $microformats = false;
     $isselected = @$options['isselected'];
     // 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 ($post['hidden']) {
         $fields['vote_state'] = 'disabled';
     } elseif ($isbyuser) {
         $fields['vote_state'] = 'disabled';
     } elseif (@$post['uservote'] > 0) {
         $fields['vote_state'] = 'voted_up';
     } elseif (@$post['uservote'] < 0) {
         $fields['vote_state'] = 'voted_down';
     } else {
         if (strpos($options['voteview'], '-uponly-level')) {
             $fields['vote_state'] = 'up_only';
         } else {
             $fields['vote_state'] = 'enabled';
         }
     }
     //	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 (@$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']));
         }
     }
     $isselected = @$options['isselected'];
     //	Updated when and by whom
     if (isset($post['opostid'])) {
         // updated meta
         switch ($post['obasetype'] . '-' . @$post['oupdatetype']) {
             case 'Q-':
                 $langstring = 'main/asked';
                 break;
             case 'Q-' . QA_UPDATE_VISIBLE:
                 $langstring = $post['hidden'] ? 'main/hidden' : 'main/reshown';
                 break;
             case 'Q-' . QA_UPDATE_CLOSED:
                 $langstring = isset($post['closedbyid']) ? 'main/closed' : 'main/reopened';
                 break;
             case 'Q-' . QA_UPDATE_TAGS:
                 $langstring = 'main/retagged';
                 break;
             case 'Q-' . QA_UPDATE_CATEGORY:
                 $langstring = 'main/recategorized';
                 break;
             case 'A-':
                 $langstring = 'main/answered';
                 break;
             case 'A-' . QA_UPDATE_SELECTED:
                 $langstring = 'main/answer_selected';
                 break;
             case 'A-' . QA_UPDATE_VISIBLE:
                 $langstring = $post['ohidden'] ? 'main/hidden' : 'main/answer_reshown';
                 break;
             case 'A-' . QA_UPDATE_CONTENT:
                 $langstring = 'main/answer_edited';
                 break;
             case 'Q-' . QA_UPDATE_FOLLOWS:
                 $langstring = 'main/asked_related_q';
                 break;
             case 'C-':
                 $langstring = 'main/commented';
                 break;
             case 'C-' . QA_UPDATE_TYPE:
                 $langstring = 'main/comment_moved';
                 break;
             case 'C-' . QA_UPDATE_VISIBLE:
                 $langstring = $post['ohidden'] ? 'main/hidden' : 'main/comment_reshown';
                 break;
             case 'C-' . QA_UPDATE_CONTENT:
                 $langstring = 'main/comment_edited';
                 break;
             case 'Q-' . QA_UPDATE_CONTENT:
             default:
                 $langstring = 'main/edited';
                 break;
         }
         $fields['what_2'] = qa_lang_html($langstring);
         if ($post['obasetype'] != 'Q' || @$post['oupdatetype'] == QA_UPDATE_FOLLOWS) {
             $fields['what_2_url'] = qa_q_path_html($post['postid'], $post['title'], false, $post['obasetype'], $post['opostid']);
         }
         if (@$options['contentview'] && !empty($post['ocontent'])) {
             $viewer = qa_load_viewer($post['ocontent'], $post['oformat']);
             $fields['content_2'] = $viewer->get_html($post['ocontent'], $post['oformat'], array('blockwordspreg' => @$options['blockwordspreg'], 'showurllinks' => @$options['showurllinks'], 'linksnewwindow' => @$options['linksnewwindow']));
         }
         if (@$options['whenview']) {
             $fields['when_2'] = qa_when_to_html($post['otime'], @$options['fulldatedays']);
         }
         if (@$options['whoview']) {
             $isbyuser = qa_post_is_by_user(array('userid' => $post['ouserid'], 'cookieid' => @$post['ocookieid']), $userid, $cookieid);
             $fields['who_2'] = qa_who_to_html($isbyuser, $post['ouserid'], $usershtml, @$options['ipview'] ? @$post['oip'] : null, false);
             if (isset($post['opoints'])) {
                 if (@$options['pointsview']) {
                     $fields['who_2']['points'] = $post['opoints'] == 1 ? qa_lang_html_sub_split('main/1_point', '1', '1') : qa_lang_html_sub_split('main/x_points', qa_html(number_format($post['opoints'])));
                 }
                 if (isset($options['pointstitle'])) {
                     $fields['who_2']['title'] = qa_get_points_title_html($post['opoints'], $options['pointstitle']);
                 }
             }
             if (isset($post['olevel'])) {
                 $fields['who_2']['level'] = qa_html(qa_user_level_string($post['olevel']));
             }
         }
     } else {
         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 (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);
             }
         }
     }
     $fields['avatar'] = $this->get_post_avatar($post);
     return $fields;
 }
        $htmloptions = qa_post_html_defaults('Q');
        $htmloptions['voteview'] = false;
        $htmloptions['tagsview'] = !isset($question['opostid']);
        $htmloptions['answersview'] = false;
        $htmloptions['updateview'] = false;
        $htmloptions['contentview'] = true;
        $htmloptions['flagsview'] = true;
        $htmloptions['elementid'] = $elementid;
        $htmlfields = qa_any_to_q_html_fields($question, $userid, qa_cookie_get(), $usershtml, null, $htmloptions);
        if (isset($htmlfields['what_url'])) {
            // link directly to relevant content
            $htmlfields['url'] = $htmlfields['what_url'];
        }
        $htmlfields['what_2'] = qa_lang_html('main/hidden');
        if (@$htmloptions['whenview']) {
            $htmlfields['when_2'] = qa_when_to_html($question[isset($question['opostid']) ? 'oupdated' : 'updated'], @$htmloptions['fulldatedays']);
        }
        $buttons = array();
        if ($allowhideshow) {
            $buttons['reshow'] = array('tags' => 'NAME="admin_' . qa_html($qhiddenpostid[$key]) . '_reshow" onclick="return qa_admin_click(this);"', 'label' => qa_lang_html('question/reshow_button'));
        }
        if ($allowdeletehidden && !$dependcounts[$qhiddenpostid[$key]]) {
            $buttons['delete'] = array('tags' => 'NAME="admin_' . qa_html($qhiddenpostid[$key]) . '_delete" onclick="return qa_admin_click(this);"', 'label' => qa_lang_html('question/delete_button'));
        }
        if (count($buttons)) {
            $htmlfields['form'] = array('style' => 'light', 'buttons' => $buttons);
        }
        $qa_content['q_list']['qs'][] = $htmlfields;
    }
} else {
    $qa_content['title'] = qa_lang_html('admin/no_hidden_found');
Beispiel #11
0
$qa_content['q_list']['qs'] = array();
if (count($questions)) {
    $qa_content['q_list']['title'] = qa_lang_html_sub('misc/recent_activity_from_x', qa_html($ip));
    foreach ($questions as $question) {
        $htmloptions = qa_post_html_defaults('Q');
        $htmloptions['tagsview'] = false;
        $htmloptions['voteview'] = false;
        $htmloptions['ipview'] = false;
        $htmloptions['answersview'] = false;
        $htmloptions['updateview'] = false;
        $htmlfields = qa_any_to_q_html_fields($question, $userid, qa_cookie_get(), $usershtml, null, $htmloptions);
        if (isset($htmlfields['what_url'])) {
            // link directly to relevant content
            $htmlfields['url'] = $htmlfields['what_url'];
        }
        $hasother = isset($question['opostid']);
        if ($question[$hasother ? 'ohidden' : 'hidden'] && !isset($question[$hasother ? 'oupdatetype' : 'updatetype'])) {
            $htmlfields['what_2'] = qa_lang_html('main/hidden');
            if (@$htmloptions['whenview']) {
                $htmlfields['when_2'] = qa_when_to_html($question[$hasother ? 'oupdated' : 'updated'], @$htmloptions['fulldatedays']);
            }
        }
        $qa_content['q_list']['qs'][] = $htmlfields;
    }
} else {
    $qa_content['q_list']['title'] = qa_lang_html_sub('misc/no_activity_from_x', qa_html($ip));
}
return $qa_content;
/*
	Omit PHP closing tag to help avoid accidental output
*/
 function process_request($request)
 {
     // get all variables
     preg_match($this->reqmatch, $request, $matches);
     $post_type = $matches[1];
     $handle = $matches[2];
     $start = (int) qa_get('start');
     $pagesize = qa_opt('page_size_qs');
     $hidecss = qa_opt($this->cssopt) === '1';
     // regular page request
     $qa_content = qa_content_prepare();
     require_once QA_INCLUDE_DIR . 'qa-util-string.php';
     // display CSS for stat summary
     if (!$hidecss) {
         $qa_content['custom'] = "<style>\n" . ".qa-useract-page-links { margin: 16px 0; color: #555753; font-size: 16px; text-align: center; }\n" . ".qa-useract-page-links > a { font-weight: bold; }\n" . ".qa-useract-stats { margin: 8px 0; text-align: center; }\n" . ".qa-useract-stat { display: inline-block; margin: 0 16px 8px; }\n" . ".qa-useract-count { font-size: 18px; font-weight: bold; }\n" . ".qa-useract-wrapper .qa-q-item-main { width: 658px; }\n" . ".qa-useract-wrapper .qa-a-count { height: auto; border: 1px solid #ebeaca; border-radius: 8px; -moz-border-radius: 8px; -webkit-border-radius:8px; }\n" . ".qa-useract-wrapper .qa-a-snippet { margin-top: 2px; color: #555753; }\n" . ".qa-useract-wrapper .qa-q-item-meta { float: none; }\n" . "</style>\n\n";
     }
     // list of questions by this user
     if ($post_type === 'questions') {
         $qa_content['title'] = qa_lang_html_sub('useractivity/questions_by', $handle);
         list($userid, $count, $sel_count) = $this->_questions_stats($handle);
         // get questions
         $columns = 'postid, categoryid, type, LEFT(type,1) AS basetype, INSTR(type,"_HIDDEN")>0 AS hidden, acount, selchildid, closedbyid, upvotes, downvotes, netvotes, hotness, flagcount, BINARY title AS title, BINARY tags AS tags, UNIX_TIMESTAMP(created) AS created';
         $sql_questions = 'SELECT ' . $columns . ' FROM ^posts WHERE type="Q" AND userid=# ORDER BY created DESC LIMIT #,#';
         $result = qa_db_query_sub($sql_questions, $userid, $start, $pagesize);
         $questions = qa_db_read_all_assoc($result);
         $htmloptions = qa_post_html_defaults('Q');
         $htmloptions['whoview'] = false;
         $htmloptions['avatarsize'] = 0;
         // html for stats
         $qa_content['custom'] .= '<div class="qa-useract-stats">' . '	<div class="qa-useract-stat"><span class="qa-useract-count">' . $count . '</span><br>' . ($count == 1 ? qa_lang_html('useractivity/question') : qa_lang_html('useractivity/questions')) . '</div>' . '	<div class="qa-useract-stat"><span class="qa-useract-count">' . $sel_count . '</span><br>' . ($sel_count == 1 ? qa_lang_html('useractivity/best_answer_given') : qa_lang_html('useractivity/best_answers_given')) . '</div>' . '</div>';
         // create html for question list
         $qa_content['q_list']['qs'] = array();
         foreach ($questions as $question) {
             $qa_content['q_list']['qs'][] = qa_any_to_q_html_fields($question, qa_get_logged_in_userid(), qa_cookie_get(), null, null, $htmloptions);
         }
         // pagination
         $qa_content['page_links'] = qa_html_page_links($request, $start, $pagesize, $count, qa_opt('pages_prev_next'), null);
         return $qa_content;
     } else {
         if ($post_type === 'answers') {
             $qa_content['title'] = qa_lang_html_sub('useractivity/answers_by', $handle);
             // userid and answer count
             $sql_count = 'SELECT u.userid, count(a.postid) AS qs, sum(q.selchildid=a.postid) AS selected ' . 'FROM ^posts a, ^posts q, ^users u ' . 'WHERE a.parentid=q.postid AND u.userid=a.userid AND a.type="A" AND q.type="Q" AND u.handle=$';
             $result = qa_db_query_sub($sql_count, $handle);
             $row = qa_db_read_one_assoc($result);
             $userid = $row['userid'];
             $count = $row['qs'];
             $sel_count = $row['selected'];
             // get answers
             $columns = 'q.postid AS qpostid, BINARY q.title AS qtitle, q.selchildid AS qselid, q.netvotes AS qvotes, a.postid AS apostid, BINARY a.content AS acontent, a.netvotes AS avotes, UNIX_TIMESTAMP(a.created) AS acreated, a.format';
             $sql_answers = 'SELECT ' . $columns . ' FROM ^posts a, ^posts q WHERE a.parentid=q.postid AND a.type="A" AND q.type="Q" AND a.userid=# ORDER BY a.created DESC LIMIT #,#';
             $result = qa_db_query_sub($sql_answers, $userid, $start, $pagesize);
             $answers = qa_db_read_all_assoc($result);
             $qa_content['custom'] .= '<div class="qa-useract-stats">' . '	<div class="qa-useract-stat"><span class="qa-useract-count">' . $count . '</span><br>' . ($count == 1 ? qa_lang_html('useractivity/answer') : qa_lang_html('useractivity/answers')) . '</div>' . '	<div class="qa-useract-stat"><span class="qa-useract-count">' . $sel_count . '</span><br>' . ($sel_count == 1 ? qa_lang_html('useractivity/best_answer_received') : qa_lang_html('useractivity/best_answers_received')) . '</div>' . '</div>';
             $qa_content['custom_2'] = '<div class="qa-useract-wrapper">';
             foreach ($answers as $ans) {
                 // to avoid ugly content, convert answer to HTML then strip the tags and remove any URLs
                 $ans['acontent'] = qa_viewer_html($ans['acontent'], $ans['format']);
                 $ans['acontent'] = strip_tags($ans['acontent']);
                 $ans['acontent'] = preg_replace('#\\shttp://[^\\s]+#', '', $ans['acontent']);
                 $ans['acontent'] = qa_substr($ans['acontent'], 0, 100);
                 if (strlen($ans['acontent']) == 100) {
                     $ans['acontent'] .= '...';
                 }
                 // question url
                 $ans['qurl'] = qa_path_html(qa_q_request($ans['qpostid'], $ans['qtitle']));
                 // answer date
                 $ans['acreated'] = qa_when_to_html($ans['acreated'], qa_opt('show_full_date_days'));
                 // html content
                 $qa_content['custom_2'] .= $this->_answer_tmpl($ans);
             }
             $qa_content['custom_2'] .= '</div>';
             // pagination
             $qa_content['page_links'] = qa_html_page_links($request, $start, $pagesize, $count, qa_opt('pages_prev_next'), null);
             return $qa_content;
         }
     }
 }
Beispiel #13
0
function getAllForumEvents($queryRecentEvents, $eventsToShow, $limit)
{
    /* 
    	Question2Answer Plugin: Recent Events Widget
    	Author: http://www.echteinfach.tv/ 
    */
    $listAllEvents = '';
    $countEvents = 0;
    $listAllEvents .= '<ul class="ra-events">';
    while (($row = qa_db_read_one_assoc($queryRecentEvents, true)) !== null) {
        if (in_array($row['event'], $eventsToShow)) {
            // question title
            $qTitle = '';
            // workaround: convert tab jumps to & to be able to use query function
            $toURL = str_replace("\t", "&", $row['params']);
            // echo $toURL."<br />"; // we get e.g. parentid=4523&parent=array(65)&postid=4524&answer=array(40)
            parse_str($toURL, $data);
            // parse URL to associative array $data
            // now we can access the following variables in array $data if they exist in toURL
            $linkToPost = "-";
            // find out type, if Q set link directly, if A or C do query to get correct link
            $postid = isset($data['postid']) ? $data['postid'] : null;
            if ($postid !== null) {
                $getPostType = mysql_fetch_array(qa_db_query_sub("SELECT type,parentid FROM `^posts` WHERE `postid` = #", $postid));
                $postType = $getPostType[0];
                // type, and $getPostType[1] is parentid
                if ($postType == "A") {
                    $getQtitle = mysql_fetch_array(qa_db_query_sub("SELECT title FROM `^posts` WHERE `postid` = # LIMIT 1", $getPostType[1]));
                    $qTitle = isset($getQtitle[0]) ? $getQtitle[0] : "";
                    // get correct public URL
                    $activity_url = qa_path_html(qa_q_request($getPostType[1], $qTitle), null, qa_opt('site_url'), null, null);
                    $linkToPost = $activity_url . "?show=" . $postid . "#a" . $postid;
                } else {
                    if ($postType == "C") {
                        // get question link from answer
                        $getQlink = mysql_fetch_array(qa_db_query_sub("SELECT parentid,type FROM `^posts` WHERE `postid` = # LIMIT 1", $getPostType[1]));
                        $linkToQuestion = $getQlink[0];
                        if ($getQlink[1] == "A") {
                            $getQtitle = mysql_fetch_array(qa_db_query_sub("SELECT title FROM `^posts` WHERE `postid` = # LIMIT 1", $getQlink[0]));
                            $qTitle = isset($getQtitle[0]) ? $getQtitle[0] : "";
                            // get correct public URL
                            $activity_url = qa_path_html(qa_q_request($linkToQuestion, $qTitle), null, qa_opt('site_url'), null, null);
                            $linkToPost = $activity_url . "?show=" . $postid . "#c" . $postid;
                        } else {
                            // default: comment on question
                            $getQtitle = mysql_fetch_array(qa_db_query_sub("SELECT title FROM `^posts` WHERE `postid` = # LIMIT 1", $getPostType[1]));
                            $qTitle = isset($getQtitle[0]) ? $getQtitle[0] : "";
                            // get correct public URL
                            $activity_url = qa_path_html(qa_q_request($getPostType[1], $qTitle), null, qa_opt('site_url'), null, null);
                            $linkToPost = $activity_url . "?show=" . $postid . "#c" . $postid;
                        }
                    } else {
                        if ($postType == "Q_HIDDEN") {
                            $qTitle = '';
                        } else {
                            // question has correct postid to link
                            // $questionTitle = (isset($data['title'])) ? $data['title'] : "";
                            $getQtitle = mysql_fetch_array(qa_db_query_sub("SELECT title FROM `^posts` WHERE `postid` = # LIMIT 1", $postid));
                            $qTitle = isset($getQtitle[0]) ? $getQtitle[0] : "";
                            // get correct public URL
                            // $activity_url = qa_path_html(qa_q_request($getPostType[1], $qTitle), null, qa_opt('site_url'), null, null);
                            $activity_url = qa_path_html(qa_q_request($postid, $qTitle), null, qa_opt('site_url'), null, null);
                            $linkToPost = $activity_url;
                        }
                    }
                }
            } elseif ($row['event'] == 'badge_awarded') {
                $toURL = str_replace("\t", "&", $row['params']);
                parse_str($toURL, $data);
                $badge = qa_get_badge_type_by_slug($data['badge_slug']);
                $badge_type = $badge['slug'];
                $badge_name = qa_opt('badge_' . $data['badge_slug'] . '_name');
                $var = qa_opt('badge_' . $data['badge_slug'] . '_var');
                $qTitle = $badge_name . ' - ' . qa_badge_desc_replace($data['badge_slug'], $var, false);
                $linkToPost = qa_path_html('user/' . $row['handle']);
            }
            $username = is_null($row['handle']) ? _ra_lang('Anonymous') : htmlspecialchars($row['handle']);
            $usernameLink = is_null($row['handle']) ? _ra_lang('Anonymous') : '<a target="_blank" class="qa-user-link" href="' . qa_opt('site_url') . 'user/' . $row['handle'] . '">' . ra_name($row['handle']) . '</a>';
            // set event name and css class
            $eventName = '';
            if ($row['event'] == "q_post") {
                $eventName = _ra_lang('asked');
            } else {
                if ($row['event'] == "a_post") {
                    $eventName = _ra_lang('answered');
                } else {
                    if ($row['event'] == "c_post") {
                        $eventName = _ra_lang('commented');
                    } else {
                        if ($row['event'] == "a_select") {
                            $eventName = _ra_lang('selected an answer');
                        } else {
                            if ($row['event'] == "badge_awarded") {
                                $eventName = _ra_lang('earned a badge');
                            }
                        }
                    }
                }
            }
            // set event icon class
            if ($row['event'] == "q_post") {
                $event_icon = 'icon-question question';
            } else {
                if ($row['event'] == "a_post") {
                    $event_icon = 'icon-chat3 ans';
                } else {
                    if ($row['event'] == "c_post") {
                        $event_icon = 'icon-chat2 comment';
                    } else {
                        if ($row['event'] == "a_select") {
                            $event_icon = 'icon-checkmark selected';
                        } else {
                            if ($row['event'] == "badge_awarded") {
                                $event_icon = 'icon-badge badge-icon ' . @$badge_type;
                            }
                        }
                    }
                }
            }
            $timeCode = implode(' ', qa_when_to_html($row['unix_time'], qa_opt('show_full_date_days')));
            $time = '<span class="time">' . $timeCode . '</span>';
            // if question title is empty, question got possibly deleted, do not show frontend!
            if ($qTitle == '') {
                continue;
            }
            $qTitleShort = mb_substr($qTitle, 0, 22, 'utf-8');
            // shorten question title to 22 chars
            $qTitleShort2 = strlen($qTitle) > 50 ? htmlspecialchars(mb_substr($qTitle, 0, 50, 'utf-8')) . '&hellip;' : htmlspecialchars($qTitle);
            // shorten question title
            $listAllEvents .= '<li class="event-item">';
            $listAllEvents .= '<div class="event-icon pull-left ' . $event_icon . '"></div>';
            $listAllEvents .= '<div class="event-inner">';
            $listAllEvents .= '<div class="avatar pull-left" data-handle="' . @$row['handle'] . '" data-id="' . qa_handle_to_userid($row['handle']) . '">' . ra_get_avatar(@$row['handle'], 40) . '</div>';
            $listAllEvents .= '<div class="event-content">';
            $listAllEvents .= '<h4>' . $usernameLink . ' ' . $eventName . ' ' . $time . '</h4>';
            if ($row['event'] == "badge_awarded") {
                $listAllEvents .= '<h5 class="event-title">' . $qTitleShort2 . '</h5>';
            } else {
                $listAllEvents .= '<a class="event-title" href="' . $linkToPost . '">' . $qTitleShort2 . '</a>';
            }
            $listAllEvents .= '</div>';
            $listAllEvents .= '</div>';
            $listAllEvents .= '</li>';
            $countEvents++;
            if ($countEvents >= $limit) {
                break;
            }
        }
    }
    $listAllEvents .= '</ul>';
    return $listAllEvents;
}
Beispiel #14
0
/* don't allow this page to be requested directly from browser */
if (!defined('QA_VERSION')) {
    header('Location: /');
    exit;
}
/* layout of question page question */
if (defined('QA_WORDPRESS_INTEGRATE_PATH')) {
    require_once QA_INCLUDE_DIR . 'qa-app-posts.php';
    $handle = qa_post_userid_to_handle($args['raw']['userid']);
} else {
    $handle = $args['raw']['handle'];
}
$user_link = qa_path_html('user/' . $handle);
$user_data = ra_user_data($handle);
$created = implode('', qa_when_to_html($args['raw']['created'], qa_opt('show_full_date_days')));
?>

<div class="question qa-q-view <?php 
echo (@$args['hidden'] ? ' qa-q-view-hidden' : '') . rtrim(' ' . @$args['classes']);
?>
"<?php 
rtrim(' ' . @$args['tags']);
?>
>
	<?php 
$context->post_tags($args, 'qa-q-view');
?>
	<div class="vote-float clearfix">
		<div class="vote-c pull-left">			
			<?php 
Beispiel #15
0
    function output_widget($region, $place, $themeobject, $template, $request, $qa_content)
    {
        $AdsPos = (int) qa_opt('tw_ads_pos');
        require_once QA_INCLUDE_DIR . 'qa-db-selects.php';
        require_once QA_INCLUDE_DIR . 'qa-app-format.php';
        require_once QA_INCLUDE_DIR . 'qa-app-q-list.php';
        $categoryslugs = qa_request_parts(1);
        $countslugs = count($categoryslugs);
        $sort = 'created';
        $userid = qa_get_logged_in_userid();
        $questions = qa_db_select_with_pending(qa_db_qs_selectspec($userid, 'created', 0, '', null, false, false, (int) qa_opt('tw_recent_number')));
        $hotquestions = qa_db_select_with_pending(qa_db_qs_selectspec($userid, 'hotness', 0, '', null, false, false, (int) qa_opt('tw_popular_number')));
        $themeobject->output('
			  <ul class="tabs nav nav-tabs">
				<li><a href="#tab1" class="active">' . qa_opt('tw_popular_lable') . '</a></li>
				<li><a href="#tab2">' . qa_opt('tw_recent_lable') . '</a></li>
			  </ul>
			  <div class="tab-content" id="tab1">
				<ul class="popular">
			');
        $thumb = '';
        $i = 0;
        foreach ($hotquestions as $question) {
            $i++;
            $questionid = $question['postid'];
            $questionlink = qa_path_html(qa_q_request($questionid, $question['title']), null, qa_opt('site_url'));
            $q_time = qa_when_to_html($question['created'], 7);
            $when = @$q_time['prefix'] . ' ' . @$q_time['data'] . ' ' . @$q_time['suffix'];
            // get question content
            $result = qa_db_query_sub('SELECT content FROM ^posts WHERE postid=#', $questionid);
            $postinfo = qa_db_read_one_assoc($result, 'postid');
            if (qa_opt('tw_thumbnail_enable')) {
                // get thumbnail
                $doc = new DOMDocument();
                @$doc->loadHTML($postinfo['content']);
                $xpath = new DOMXPath($doc);
                $src = $xpath->evaluate("string(//img/@src)");
                $default_thumbnail = qa_opt('tw_thumbnail');
                if (empty($src) && !empty($default_thumbnail)) {
                    $src = qa_opt('tw_thumbnail');
                }
                $thumb = '';
                if (!empty($src)) {
                    $thumb = '<div class="tab-div-thumb"><a class="tab-link-thumbnail" href="' . $questionlink . '"><img class="tab-thumbnail" width="60" height="50" src="' . $src . '"></a></div>';
                }
            }
            $themeobject->output('<li>' . $thumb);
            $themeobject->output('<div class="tab-div-body"><a class="tab-link" href="' . $questionlink . '"><p class="tab-link-header">' . $question['title'] . '</p></a>');
            $themeobject->output('<span class="tab-time">' . $when . '</span></div></li>');
            $ads_content = qa_opt('tw_ads');
            if ($i == $AdsPos && !empty($ads_content)) {
                $themeobject->output('<div class="tab-ads">' . qa_opt('tw_ads') . '</div>');
            }
        }
        $themeobject->output('
			  </ul>
			  </div>
			  <div class="tab-content" id="tab2" style="display: none;">
			  <ul class="recent">
			');
        $i = 0;
        foreach ($questions as $question) {
            $i++;
            $questionid = $question['postid'];
            $questionlink = qa_path_html(qa_q_request($questionid, $question['title']), null, qa_opt('site_url'));
            $q_time = qa_when_to_html($question['created'], 7);
            $when = @$q_time['prefix'] . ' ' . @$q_time['data'] . ' ' . @$q_time['suffix'];
            // get question content
            $result = qa_db_query_sub('SELECT content FROM ^posts WHERE postid=#', $questionid);
            $postinfo = qa_db_read_one_assoc($result, 'postid');
            if (qa_opt('tw_thumbnail_enable')) {
                // get thumbnail
                $doc = new DOMDocument();
                @$doc->loadHTML($postinfo['content']);
                $xpath = new DOMXPath($doc);
                $src = $xpath->evaluate("string(//img/@src)");
                $default_thumbnail = qa_opt('tw_thumbnail');
                if (empty($src) && !empty($default_thumbnail)) {
                    $src = qa_opt('tw_thumbnail');
                }
                $thumb = '';
                if (!empty($src)) {
                    $thumb = '<div class="tab-div-thumb"><a class="tab-link-thumbnail" href="' . $questionlink . '"><img class="tab-thumbnail" width="60" height="50" src="' . $src . '"></a></div>';
                }
            }
            $themeobject->output('<li>' . $thumb);
            $themeobject->output('<div class="tab-div-body"><a class="tab-link" href="' . $questionlink . '"><p class="tab-link-header">' . $question['title'] . '</p></a>');
            $themeobject->output('<span class="tab-time">' . $when . '</span></div></li>');
            $ads_content = qa_opt('tw_ads');
            if ($i == $AdsPos && !empty($ads_content)) {
                $themeobject->output('<div class="tab-ads">' . qa_opt('tw_ads') . '</div>');
            }
        }
        $themeobject->output('
			  </ul>
			  </div>
			');
    }
 function elapsedTime($timestamp)
 {
     $html = qa_when_to_html($timestamp, qa_opt('show_full_date_days'));
     $time = '<span>';
     if (strlen(@$html['prefix'])) {
         $time .= '<span>' . $html['prefix'] . '</span>';
     }
     if (strlen(@$html['data'])) {
         $time .= '<span>' . $html['data'] . '</span>';
     }
     if (strlen(@$html['suffix'])) {
         $time .= '<span>' . $html['suffix'] . '</span>';
     }
     return $time . '</span>';
 }