function __wps__do_Gallery_Widget($albumcount) { global $wpdb, $current_user; $shown_aid = ""; $shown_count = 0; // Get profile URL worked out $profile_url = __wps__get_url('profile'); $q = __wps__string_query($profile_url); // Content of widget $sql = "SELECT * FROM ".$wpdb->base_prefix."symposium_gallery g INNER JOIN ".$wpdb->base_prefix."users u ON g.owner = u.ID WHERE is_group != 'on' ORDER BY updated DESC LIMIT 0,50"; $albums = $wpdb->get_results($sql); if ($albums) { echo "<div id='__wps__gallery_recent_activity'>"; foreach ($albums as $album) { if ($shown_count < $albumcount) { if (strpos($shown_aid, $album->gid.",") === FALSE) { if ( (is_user_logged_in() && strtolower($album->sharing) == 'everyone') || (strtolower($album->sharing) == 'public') || (strtolower($album->sharing) == 'friends only' && __wps__friend_of($album->owner, $current_user->ID)) ) { echo "<div class='__wps__gallery_recent_activity_row'>"; echo "<div class='__wps__gallery_recent_activity_row_avatar'>"; echo get_avatar($album->owner, 32); echo "</div>"; echo "<div class='__wps__gallery_recent_activity_row_post'>"; $text = __('added to ', WPS_TEXT_DOMAIN)." <a href='".$profile_url.$q."uid=".$album->owner."&embed=on&album_id=".$album->gid."'>".stripslashes($album->name)."</a>"; echo "<a href='".$profile_url.$q."uid=".$album->owner."'>".$album->display_name."</a> ".$text." ".__wps__time_ago($album->updated); echo "</div>"; echo "</div>"; $shown_count++; $shown_aid .= $album->gid.","; } } } else { break; } } echo "</div>"; } }
$return = __('Message sent to', WPS_TEXT_DOMAIN).' '.$recipient->display_name; } else { $return = '<p><strong>'.__('There was a problem sending your mail to', WPS_TEXT_DOMAIN).' '.$recipient->display_name.'.</strong></p>'; } $mail_id = $wpdb->insert_id; // Filter to allow further actions to take place apply_filters ('__wps__sendmessage_filter', $recipient->ID, $current_user->ID, $current_user->display_name, $mail_id); // Send real email if chosen if ( __wps__get_meta($recipient->ID, 'notify_new_messages') ) { $url = __wps__get_url('mail'); $body = "<h1>".$subject."</h1>"; $body .= "<p><a href='".$url.__wps__string_query($url)."mid=".$mail_id."'>".sprintf(__("Go to %s Mail", WPS_TEXT_DOMAIN), __wps__get_url('mail'))."...</a></p>"; $body .= "<p>"; $body .= $message; $body .= "</p>"; $body .= "<p><em>"; $body .= $current_user->display_name; $body .= "</em></p>"; $body .= $previous; $body = str_replace(chr(13), "<br />", $body); $body = str_replace("\\r\\n", "<br />", $body); $body = str_replace("\\", "", $body); $mail_subject = get_option(WPS_OPTIONS_PREFIX.'_subject_mail_new'); if (strpos($mail_subject, '[subject]') !== FALSE) { $mail_subject = str_replace("[subject]", $subject, $mail_subject);
function __wps__buffer($buffer){ // $buffer contains entire page if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite') && !strpos($buffer, "<rss") ) { global $wpdb; if (get_option(WPS_OPTIONS_PREFIX.'_emoticons') == "on") { $smileys = WPS_PLUGIN_URL . '/images/smilies/'; $smileys_dir = WPS_PLUGIN_DIR . '/images/smilies/'; // Smilies as classic text $buffer = str_replace(":)", "<img src='".$smileys."smile.png' />", $buffer); $buffer = str_replace(":-)", "<img src='".$smileys."smile.png' />", $buffer); $buffer = str_replace(":(", "<img src='".$smileys."sad.png' />", $buffer); $buffer = str_replace(":'(", "<img src='".$smileys."crying.png' />", $buffer); $buffer = str_replace(":x", "<img src='".$smileys."kiss.png' />", $buffer); $buffer = str_replace(":X", "<img src='".$smileys."shutup.png' />", $buffer); $buffer = str_replace(":D", "<img src='".$smileys."laugh.png' />", $buffer); $buffer = str_replace(":|", "<img src='".$smileys."neutral.png' />", $buffer); $buffer = str_replace(":?", "<img src='".$smileys."question.png' />", $buffer); $buffer = str_replace(":z", "<img src='".$smileys."sleepy.png' />", $buffer); $buffer = str_replace(":P", "<img src='".$smileys."tongue.png' />", $buffer); $buffer = str_replace(";)", "<img src='".$smileys."wink.png' />", $buffer); // Other images $i = 0; do { $i++; $start = strpos($buffer, "{{"); if ($start === false) { } else { $end = strpos($buffer, "}}"); if ($end === false) { } else { $first_bit = substr($buffer, 0, $start); $last_bit = substr($buffer, $end+2, strlen($buffer)-$end-2); $bit = substr($buffer, $start+2, $end-$start-2); $buffer = $first_bit."<img style='width:24px;height:24px' src='".$smileys.strip_tags($bit).".png' />".$last_bit; } } } while ($i < 100 && strpos($buffer, "{{")>0); } if (get_option(WPS_OPTIONS_PREFIX.'_tags') == "on") { // User tagging $profile_url = __wps__get_url('profile'); $profile = $profile_url.__wps__string_query($profile_url).'uid='; $needles = array(); for($i=0;$i<=47;$i++){ array_push($needles, chr($i)); } for($i=58;$i<=63;$i++){ array_push($needles, chr($i)); } for($i=91;$i<=96;$i++){ array_push($needles, chr($i)); } $i = 0; do { $i++; $start = strpos($buffer, "@"); if ($start === false) { } else { $end = __wps__strpos($buffer, $needles, $start); if ($end === false) $end = strlen($buffer); $first_bit = substr($buffer, 0, $start); $last_bit = substr($buffer, $end, strlen($buffer)-$end+2); $bit = substr($buffer, $start+1, $end-$start-1); $sql = 'SELECT ID FROM '.$wpdb->base_prefix.'users WHERE replace(display_name, " ", "") = %s LIMIT 0,1'; $id = $wpdb->get_var($wpdb->prepare($sql, $bit)); if ($id) { $buffer = $first_bit.'<a href="'.$profile.$id.'" class="__wps__usertag">@'.$bit.'</a>'.$last_bit; } else { $sql = 'SELECT ID FROM '.$wpdb->base_prefix.'users WHERE user_login = %s LIMIT 0,1'; $id = $wpdb->get_var($wpdb->prepare($sql, $bit)); if ($id) { $buffer = $first_bit.'<a href="'.$profile.$id.'" class="__wps__usertag">@'.$bit.'</a>'.$last_bit; } else { $buffer = $first_bit.'@'.$bit.$last_bit; } } } } while ($i < 100 && strpos($buffer, "@")); } } return $buffer; }
function __wps__get_facebook() { $profile_url = __wps__get_url('profile'); $q = __wps__string_query($profile_url); $fhtml = "<div id='facebook_div'>"; if (!class_exists('__wps__FacebookApiException')) include_once("library/src/facebook.php"); $__wps__facebook = new __wps__Facebook(array( 'appId'=>get_option(WPS_OPTIONS_PREFIX.'_facebook_api'), 'secret'=>get_option(WPS_OPTIONS_PREFIX.'_facebook_secret'), 'cookie'=>true )); if (isset($_GET['fb']) && $_GET['fb'] == 'lo') { setcookie('fbs_'.$__wps__facebook->getAppId(), '', time()-100, '/', 'domain.com'); session_destroy(); header('Location: '.$profile_url); } // Get User ID $user = $__wps__facebook->getUser(); if ($user) { try { // Proceed knowing you have a logged in user who's authenticated. $user_profile = $__wps__facebook->api('/me'); $fhtml .= "<input type='checkbox' CHECKED id='post_to_facebook' /> "; $fhtml .= sprintf(__("Share post on Facebook as <a target='_blank' href='%s'>%s</a>", WPS_TEXT_DOMAIN), $user_profile['link'], $user_profile['name']); $fhtml .= ' (<a href="'.$profile_url.$q.'fb=lo">'.__('Disconnect', WPS_TEXT_DOMAIN).'</a>)'; } catch (__wps__FacebookApiException $e) { $result = $e->getResult(); echo "<pre>User authenticated"; print_r($result); echo "</pre>"; $user = null; } } else { $fhtml .= "<img src='".WPS_PLUGIN_URL."/images/logo_facebook.png' style='float:left; margin-right: 5px;' />"; $params = array( 'canvas' => 1, 'scope' => 'publish_actions,user_about_me', 'fbconnect' => 1 ); $fhtml .= '<a href="'.$__wps__facebook->getLoginUrl($params).'">'.__('Connect to Facebook', WPS_TEXT_DOMAIN).'</a>'; } $fhtml .= "</div>"; return $fhtml; }
function __wps__members($attr) { global $wpdb, $current_user; wp_get_current_user(); $plugin = WPS_PLUGIN_URL; $dbpage = $plugin.'/symposium_members_db.php'; $roles = isset($attr['roles']) ? $attr['roles'] : ''; if ($roles) { if (strpos($roles, ' ') !== FALSE) $roles = str_replace(' ', '', $roles); if (strpos($roles, '_') !== FALSE) $roles = str_replace('_', '', $roles); } $html = '<div class="__wps__wrapper">'; if (!is_user_logged_in() && get_option(WPS_OPTIONS_PREFIX.'dir_hide_public') ) { echo __wps__show_login_link(__("You need to be <a href='%s'>logged in</a> to view the directory.", WPS_TEXT_DOMAIN)); } else { // If 'term' is passed as a parameter, it will influence the results $me = $current_user->ID; $page = 1; // Now check against shortcode parameter (overrides global roles) if ( !isset( $wp_roles ) ) $wp_roles = new WP_Roles(); if ($roles) { $dir_levels = $roles; } else { // Get included global levels $dir_levels = strtolower(get_option(WPS_OPTIONS_PREFIX.'_dir_level')); if (strpos($dir_levels, ' ') !== FALSE) $dir_levels = str_replace(' ', '', $dir_levels); if (strpos($dir_levels, '_') !== FALSE) $dir_levels = str_replace('_', '', $dir_levels); } $html .= '<div id="__wps__directory_roles" style="display:none">'.$dir_levels.'</div>'; // Stores start value for more $start = get_option(WPS_OPTIONS_PREFIX.'_dir_page_length')+1; $html .= '<div id="symposium_directory_start" style="display:none">'.$start.'</div>'; $html .= '<div id="symposium_directory_page_length" style="display:none">'.get_option(WPS_OPTIONS_PREFIX.'_dir_page_length').'</div>'; $term = ""; if (isset($_POST['member'])) { $term .= strtolower($_POST['member']); } if (isset($_GET['term'])) { $term .= strtolower($_GET['term']); } $html .= "<div class='members_row' style='padding:0px'>"; $html .= '<div style="float:right; padding:0px;padding-top:2px;">'; $html .= '<input id="members_go_button" type="submit" class="__wps__button" value="'.__("Search", WPS_TEXT_DOMAIN).'" />'; if (is_user_logged_in()) { $html .= '<div style="clear:both;"><input type="checkbox" id="symposium_member_friends" /> '.__('Only friends', WPS_TEXT_DOMAIN).'</div>'; } $html .= '</div>'; $html .= '<input type="text" id="symposium_member" autocomplete="off" name="symposium_member" class="members_search_box" value="'.$term.'" />'; if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite') && function_exists('__wps__profile_plus')) { $html .= '<div style="clear:both">'; $html .= '<a href="javascript:void(0);" id="symposium_show_advanced" /> '.__('Advanced search', WPS_TEXT_DOMAIN).'</a>'; $html .= '</div>'; } $html .= "</div>"; if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite') && function_exists('__wps__profile_plus')) { // Loop through extended fields and offer as a search options (if there are any) $extensions = $wpdb->get_results("SELECT * FROM ".$wpdb->base_prefix."symposium_extended WHERE search = 'on' ORDER BY extended_order, extended_name"); if ($extensions) { $html .= "<div id='symposium_advanced_search' style='width:90%;padding:0px;display:none;'>"; $html .= "<table style='border:0'>"; foreach ($extensions as $extension) { $html .= '<tr>'; if ($extension->extended_type == 'Checkbox') { $html .= '<td id="__wps__ext_label_'.$extension->eid.'" style="border:0">'; $html .= stripslashes($extension->extended_name); $html .= '</td><td id="__wps__ext_value_'.$extension->eid.'" style="border:0">'; $html .= '<input rel="checkbox" id="'.$extension->eid.'" class="symposium_extended_search" type="checkbox" name="extended_value[]" />'; $html .= '</td>'; } if ($extension->extended_type == 'List') { $html .= '<td id="__wps__ext_label_'.$extension->eid.'" style="border:0">'; $html .= stripslashes($extension->extended_name).':'; $html .= '</td><td id="__wps__ext_value_'.$extension->eid.'" style="border:0">'; $html .= '<select rel="list" id="'.$extension->eid.'" class="symposium_extended_search" name="extended_value[]">'; $items = explode(',', $extension->extended_default); $html .= '<option value="'.__('Any', WPS_TEXT_DOMAIN).'">'.__('Any', WPS_TEXT_DOMAIN).'</option>'; foreach ($items as $item) { $html .= '<option value="'.$item.'">'.$item.'</option>'; } $html .= '</select>'; $html .= '</td>'; } $html .= '</tr>'; } $html .= "</table>"; $html .= "</div>"; } } // Sort by option $order = get_option(WPS_OPTIONS_PREFIX.'_dir_atoz_order'); if ($order == 'surname') { $orderby = 'surname'; } if ($order == 'display_name') { $orderby = 'u.display_name'; } if ($order == 'distance') { $orderby = 'distance, u.display_name'; } if ($order == 'last_activity') { $orderby = 'cast(m4.meta_value as datetime) DESC'; } $html .= '<br /><div id="symposium_members_orderby_div">'; $html .= __('Sort by:', WPS_TEXT_DOMAIN).' '; $html .= '<select id="symposium_members_orderby">'; $html .= '<option value="last_activity"'; if ($order == 'last_activity') $html .= ' SELECTED'; $html .= '>'.__('Last activity', WPS_TEXT_DOMAIN).'</option>'; $html .= '<option value="display_name"'; if ($order == 'display_name') $html .= ' SELECTED'; $html .= '>'.__('Display name', WPS_TEXT_DOMAIN).'</option>'; $html .= '<option value="surname"'; if ($order == 'surname') $html .= ' SELECTED'; $html .= '>'.__('Surname (if entered in display name)', WPS_TEXT_DOMAIN).'</option>'; if (get_option(WPS_OPTIONS_PREFIX.'_use_distance') && function_exists('__wps__profile_plus') && !get_option(WPS_OPTIONS_PREFIX.'_hide_location')) { $html .= '<option value="distance"'; if ($order == 'distance') $html .= ' SELECTED'; $html .= '>'.__('Distance', WPS_TEXT_DOMAIN).'</option>'; } $html .= '</select>'; $html .= '</div>'; // A to Z $html .= '<div id="symposium_members_atoz">'; for ($i = 65; $i <= 90; $i++) { if (chr($i) != strtoupper($term)) { // Get directory URL worked out $member_url = __wps__get_url('members'); $q = __wps__string_query($member_url); $html .= '<a href="'.$member_url.$q.'term='.chr($i).'">'.chr($i).'</a> '; } else { $html .= '<strong>'.chr($i).'</strong> '; } } $html .= '</div>'; $html .= '<div id="__wps__members">'; $search_limit = 1000; $sql_ext = strlen($term) != 1 ? "OR (lower(u.display_name) LIKE '% %".$term."%')" : ""; $lat = __wps__get_meta($current_user->ID, 'plus_lat'); if (get_option(WPS_OPTIONS_PREFIX.'_use_distance') && $lat != 0 && is_user_logged_in() && function_exists('__wps__profile_plus')) { $long = __wps__get_meta($current_user->ID, 'plus_long'); $measure = ($value = get_option(WPS_OPTIONS_PREFIX."_plus_lat_long")) ? $value : ''; $show_alt = ($value = get_option(WPS_OPTIONS_PREFIX."_plus_show_alt")) ? $value : ''; $sql = "SELECT u.ID as uid, u.display_name, cast(m4.meta_value as datetime) as last_activity, CASE WHEN u.display_name LIKE '% %' THEN right(u.display_name, length(u.display_name)-locate(' ', u.display_name)) ELSE u.display_name END AS surname, CASE m7.meta_value WHEN '0' THEN 99999 ELSE FLOOR(((ACOS(SIN(".$lat." * PI() / 180) * SIN(m7.meta_value * PI() / 180) + COS(".$lat." * PI() / 180) * COS(m7.meta_value * PI() / 180) * COS((".$long." - m8.meta_value) * PI() / 180)) * 180 / PI()) * 60 * 1.1515)) END AS distance FROM ".$wpdb->base_prefix."users u LEFT JOIN ".$wpdb->base_prefix."usermeta m4 ON m4.user_id = u.ID LEFT JOIN ".$wpdb->base_prefix."usermeta m7 ON m7.user_id = u.ID LEFT JOIN ".$wpdb->base_prefix."usermeta m8 ON m8.user_id = u.ID WHERE m4.meta_key = 'symposium_last_activity' AND m7.meta_key = 'symposium_plus_lat' AND m8.meta_key = 'symposium_plus_long' AND (u.display_name IS NOT NULL) AND ( (lower(u.display_name) LIKE '".$term."%') ".$sql_ext." ) ORDER BY ".$orderby." LIMIT 0,".$search_limit; $members = $wpdb->get_results($sql); } else { $members = $wpdb->get_results(" SELECT u.ID as uid, u.display_name, cast(m4.meta_value as datetime) as last_activity, 99999 as distance, CASE WHEN u.display_name LIKE '% %' THEN right(u.display_name, length(u.display_name)-locate(' ', u.display_name)) ELSE u.display_name END AS surname FROM ".$wpdb->base_prefix."users u LEFT JOIN ".$wpdb->base_prefix."usermeta m4 ON u.ID = m4.user_id WHERE m4.meta_key = 'symposium_last_activity' AND (u.display_name IS NOT NULL) AND ( (lower(u.display_name) LIKE '".$term."%') ".$sql_ext." ) ORDER BY ".$orderby." LIMIT 0,".$search_limit); } if (WPS_DEBUG) { $html .= $wpdb->last_query; $html .= '<p>Returned '.count($members).' records.</p>'; } else { $html .= '<div style="display:none">'.$wpdb->last_query.'</div>'; } if ($members) { if (WPS_DEBUG) $html .= '<p>Processing $members.</p>'; $inactive = get_option(WPS_OPTIONS_PREFIX.'_online'); $offline = get_option(WPS_OPTIONS_PREFIX.'_offline'); $profile = __wps__get_url('profile'); $mailpage = __wps__get_url('mail'); $q = __wps__string_query($mailpage); $count = 0; $user_info = get_user_by('login', 'nobody'); $nobody_id = $user_info ? $user_info->ID : 0; foreach ($members as $member) { if (WPS_DEBUG) $html .= 'Member: '.$member->display_name.'<br />'; $user_info = get_userdata($member->uid); // Check to see if this member is in the included list of roles if (WPS_DEBUG) $html .= 'Checking capabilities... '; $user = get_userdata( $member->uid ); $capabilities = $user->{$wpdb->base_prefix.'capabilities'}; $include = false; if ($capabilities) { foreach ( $capabilities as $role => $name ) { if ($role) { if (WPS_DEBUG) $html .= $role.'<br />'; $role = strtolower($role); $role = str_replace(' ', '', $role); $role = str_replace('_', '', $role); if (WPS_DEBUG) $html .= 'Checking role '.$role.' against '.$dir_levels.'<br />'; if (strpos($dir_levels, $role) !== FALSE) $include = true; } else { if (WPS_DEBUG) $html .= 'no role<br />'; } } } else { if (WPS_DEBUG) $html .= 'no capabilities.<br />'; // No capabilities, so let's assume they should be included $include = true; } if ($include && ($member->uid != $nobody_id)) { if (WPS_DEBUG) $html .= 'Include!<br />'; $city = __wps__get_meta($member->uid, 'extended_city'); $country = __wps__get_meta($member->uid, 'extended_country'); $share = __wps__get_meta($member->uid, 'share'); $wall_share = __wps__get_meta($member->uid, 'wall_share'); $count++; if ($count > get_option(WPS_OPTIONS_PREFIX.'_dir_page_length')) break; $time_now = time(); $last_active_minutes = strtotime($member->last_activity); $last_active_minutes = floor(($time_now-$last_active_minutes)/60); $html .= "<div class='members_row"; $is_friend = __wps__friend_of($member->uid, $current_user->ID); if ($is_friend || $member->uid == $me) { $html .= " row_odd corners"; } else { $html .= " row corners"; } $html .= "'>"; $html .= "<div class='members_info'>"; $html .= "<div class='members_avatar'>"; $html .= get_avatar($member->uid, 64); $html .= "</div>"; $html .= "<div style='padding-left: 75px;'>"; if ( ($member->uid == $me) || (is_user_logged_in() && strtolower($share) == 'everyone') || (strtolower($share) == 'public') || (strtolower($share) == 'friends only' && $is_friend) ) { $html .= "<div class='members_location'>"; if ($city != '') { $html .= $city; } if ($country != '') { if ($city != '') { $html .= ', '.$country; } else { $html .= $country; } } $html .= "</div>"; } if (function_exists('__wps__mail') && !get_option(WPS_OPTIONS_PREFIX.'_wps_lite')) { // Show Send Mail button if (get_option(WPS_OPTIONS_PREFIX.'_show_dir_buttons') && $member->uid != $current_user->ID) { if ($is_friend) { // A friend $html .= "<div class='mail_icon' style='display:none;float:right; margin-right:5px;'>"; $html .= '<img style="cursor:pointer" src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/orange-tick.gif" onclick="document.location = \''.$mailpage.$q.'view=compose&to='.$member->uid.'\';">'; $html .= "</div>"; } } } $html .= __wps__profile_link($member->uid); if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite')) { $html .= ', '; } else { $html .= '<br />'; } $html .= __('last active', WPS_TEXT_DOMAIN).' '.__wps__time_ago($member->last_activity).". "; if ($last_active_minutes >= $offline) { //$html .= '<img src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/loggedout.gif">'; } else { if ($last_active_minutes >= $inactive) { $html .= '<img src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/inactive.gif">'; } else { $html .= '<img src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/online.gif">'; } } // Distance if (function_exists('__wps__profile_plus') && is_user_logged_in() && $member->distance < 99999 && $member->uid != $current_user->ID) { // if privacy settings permit if ( (strtolower($share) == 'everyone') || (strtolower($share) == 'public') || (strtolower($share) == 'friends only' && __wps__friend_of($member->uid, $current_user->ID)) ) { if ($measure != 'on') { $distance = intval(($member->distance/5)*8); $miles = __('km', WPS_TEXT_DOMAIN); } else { $distance = $member->distance; $miles = __('miles', WPS_TEXT_DOMAIN); } $html .= '<br />'.__('Distance', WPS_TEXT_DOMAIN).': '.$distance.' '.$miles; if ($show_alt == 'on') { if ($measure != 'on') { $html .= ' ('.intval(($distance/8)*5).' '.__('miles', WPS_TEXT_DOMAIN).')'; } else { $html .= ' ('.intval(($distance/5)*8).' '.__('km', WPS_TEXT_DOMAIN).')'; } } } } if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite')) { // Show label if entered if ($label = __wps__get_meta($member->uid, 'profile_label')) $html .= '<div class="__wps__members_info_label">'.$label.'</div>'; // if privacy settings permit if ( (strtolower($wall_share) == 'everyone') || (strtolower($wall_share) == 'public') || (strtolower($wall_share) == 'friends only' && __wps__friend_of($member->uid, $current_user->ID)) ) { // Show comment $sql = "SELECT cid, comment, type FROM ".$wpdb->base_prefix."symposium_comments WHERE author_uid = %d AND comment_parent = 0 AND type = 'post' ORDER BY cid DESC LIMIT 0,1"; $comment = $wpdb->get_row($wpdb->prepare($sql, $member->uid)); if ($comment) { $html .= '<div style="max-height:250px">'.__wps__buffer(__wps__make_url(stripslashes($comment->comment))).'</div>'; } // Show latest non-status activity if applicable if (function_exists('__wps__forum')) { $sql = "SELECT cid, comment FROM ".$wpdb->base_prefix."symposium_comments WHERE author_uid = %d AND comment_parent = 0 AND type = 'forum' ORDER BY cid DESC LIMIT 0,1"; $forum = $wpdb->get_row($wpdb->prepare($sql, $member->uid)); if ($forum && (!$comment || $forum->cid != $comment->cid)) { $html .= '<div>'.__wps__buffer(__wps__make_url(stripslashes($forum->comment))).'</div>'; } } } } // Show add as a friend if (is_user_logged_in() && get_option(WPS_OPTIONS_PREFIX.'_show_dir_buttons') && $member->uid != $current_user->ID) { if (__wps__pending_friendship($member->uid)) { // Pending $html .= sprintf(__('%s request sent.', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')); } else { if (!$is_friend) { // Not a friend $html .= '<div id="addasfriend_done1_'.$member->uid.'">'; $html .= '<input class="add_as_friend_message addfriend_text" title="'.$member->uid.'" id="addtext_'.$member->uid.'" type="text" onclick="this.value=\'\'" value="'.sprintf(__('Add as a %s...', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'">'; $html .= '<input type="submit" title="'.$member->uid.'" class="addasfriend __wps__button" value="'.__('Add', WPS_TEXT_DOMAIN).'" /> '; $html .= '</div>'; $html .= '<div id="addasfriend_done2_'.$member->uid.'" class="hidden">'.sprintf(__('%s Request Sent', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'</div>'; } } } // Filter for individual member reults $html = apply_filters ( '__wps__directory_member_filter', $html, $member->uid); $html .= "</div>"; $html .= "</div>"; // members_info $html .= "</div>"; // members_row } // if ($include) } // foreach ($members as $member) $html .= "<div id='showmore_directory_div' style='text-align:center; width:100%'><a href='javascript:void(0)' id='showmore_directory'>".__("more...", WPS_TEXT_DOMAIN)."</a></div>"; } else { $html .= '<br />'.__('No members found', WPS_TEXT_DOMAIN)."...."; } // if ($members) } $html .= '</div>'; // __wps__members $html .= '</div>'; // __wps__wrapper // Filter for header $html = apply_filters ( 'symposium_member_header_filter', $html ); // Send HTML return $html; }
function __wps__do_Forumnoanswer_Widget($preview,$cat_id,$cat_id_exclude,$timescale,$postcount,$groups) { global $wpdb, $current_user; $html = ''; // Previous login if (is_user_logged_in()) { $previous_login = __wps__get_meta($current_user->ID, 'previous_login'); } // Content of widget $sql = "SELECT t.tid, t.topic_subject, t.topic_owner, t.topic_post, t.topic_category, t.topic_date, u.display_name, t.topic_parent, t.topic_group, t.topic_started, (SELECT COUNT(*) FROM ".$wpdb->prefix."symposium_topics v WHERE v.topic_parent = t.tid) AS replies FROM ".$wpdb->prefix."symposium_topics t INNER JOIN ".$wpdb->base_prefix.'users'." u ON t.topic_owner = u.ID WHERE t.topic_parent = 0 AND t.for_info != 'on' AND t.topic_approved = 'on' AND t.topic_started >= ( CURDATE() - INTERVAL ".$timescale." DAY ) AND NOT EXISTS (SELECT tid from ".$wpdb->prefix."symposium_topics s WHERE s.topic_parent = t.tid AND s.topic_answer = 'on') "; if ($cat_id != '' && $cat_id > 0) { $sql .= "AND topic_category IN (".$cat_id.") "; } if ($cat_id_exclude != '' && $cat_id_exclude > 0) { $sql .= "AND topic_category NOT IN (".$cat_id_exclude.") "; } if ($groups != 'on') { $sql .= "AND topic_group = 0 "; } $sql .= "ORDER BY t.topic_started DESC LIMIT 0,".$postcount; $posts = $wpdb->get_results($sql); // Get forum URL worked out $forum_url = __wps__get_url('forum'); $forum_q = __wps__string_query($forum_url); // Get list of roles for this user $user_roles = $current_user->roles; $user_role = strtolower(array_shift($user_roles)); if ($user_role == '') $user_role = 'NONE'; if ($posts) { $html .= "<div id='__wps__latest_forum'>"; foreach ($posts as $post) { if ($post->topic_group == 0 || (__wps__member_of($post->topic_group) == "yes") || ($wpdb->get_var($wpdb->prepare("SELECT content_private FROM ".$wpdb->prefix."symposium_groups WHERE gid = %d", $post->topic_group)) != "on") ) { // Check permitted to see forum category $sql = "SELECT level FROM ".$wpdb->prefix."symposium_cats WHERE cid = %d"; $levels = $wpdb->get_var($wpdb->prepare($sql, $post->topic_category)); $cat_roles = unserialize($levels); if (strpos(strtolower($cat_roles), 'everyone,') !== FALSE || strpos(strtolower($cat_roles), $user_role.',') !== FALSE) { $html .= "<div class='__wps__latest_forum_row'>"; $html .= "<div class='__wps__latest_forum_row_avatar'>"; $html .= get_avatar($post->topic_owner, 32); $html .= "</div>"; $html .= "<div class='__wps__latest_forum_row_post'>"; $html .= __wps__profile_link($post->topic_owner); if ($preview > 0) { $text = stripslashes($post->topic_subject); if ( strlen($text) > $preview ) { $text = substr($text, 0, $preview)."..."; } if ($post->topic_group == 0) { $url = $forum_url; $q = $forum_q; } else { // Get group URL worked out $url = __wps__get_url('group'); if (strpos($url, '?') !== FALSE) { $q = "&gid=".$post->topic_group."&"; } else { $q = "?gid=".$post->topic_group."&"; } } $html .= " ".__('started', WPS_TEXT_DOMAIN)." <a href='".$url.$q."cid=".$post->topic_category."&show=".$post->tid."'>".$text."</a>"; } else { $html .= "<br />"; } $html .= " ".__wps__time_ago($post->topic_started).". "; if ($post->replies > 0) { $html .= $post->replies.' '; if ($post->replies != 1) { $html .= __('replies', WPS_TEXT_DOMAIN); } else { $html .= __('reply', WPS_TEXT_DOMAIN); } $html .= "."; } if (is_user_logged_in() && get_option(WPS_OPTIONS_PREFIX.'_forum_stars')) { if ($post->topic_started > $previous_login && $post->topic_owner != $current_user->ID) { $html .= " <img src='".get_option(WPS_OPTIONS_PREFIX.'_images')."/new.gif' alt='New!' />"; } } $html .= "<br />"; $html .= "</div>"; $html .= "</div>"; } } } $html .= "</div>"; } echo $html; }
function get_breadcrumbs($current_catid=0, $param='catid', $show_home=true, $sep='→', $include_last_link=false, $return_array='', $url='', $order=100) { global $wpdb; $url = $url != '' ? $url : get_bloginfo('url').get_option(WPS_OPTIONS_PREFIX.'_forum_url'); if ($return_array=='') { $return_array = array(); if ($show_home) { $row_array['order'] = 0; $row_array['cat_id'] = 0; $row_array['this_id'] = 0; $row_array['cat_title'] = __('Top Level', WPS_TEXT_DOMAIN); $row_array['cat_description'] = __('Top Level', WPS_TEXT_DOMAIN); array_push($return_array,$row_array); } } $sql = "select * from ".$wpdb->prefix."symposium_cats where cid = %d"; $parent_cat = $wpdb->get_row($wpdb->prepare($sql, $current_catid)); if (!$parent_cat) { return false; } else { $row_array['order'] = $order; $row_array['cat_id'] = $parent_cat->cat_parent; $row_array['this_id'] = $parent_cat->cid; $row_array['cat_title'] = $parent_cat->title; $row_array['cat_description'] = $parent_cat->cat_desc; array_push($return_array,$row_array); if ($parent_cat->cat_parent > 0) { $order--; $this->get_breadcrumbs($parent_cat->cat_parent, $param, $show_home, $sep, $include_last_link, $return_array, $url, $order); } else { $trail = __wps__sub_val_sort($return_array,'order'); $crumbs = ''; $count = 0; foreach ($trail as $crumb) { $count++; if ($count < count($trail) || $include_last_link) { $crumbs .= "<a href='".$url.__wps__string_query($url).$param."=".$crumb['this_id']."'>".$crumb['cat_title']."</a> "; if ($count < count($trail)) $crumbs .= $sep." "; } else { $crumbs .= $crumb['cat_title']; } } echo $crumbs; } } }
if (__wps__member_of($group->gid) == 'yes') { $html .= "<div class='groups_row row_odd corners'>"; } else { $html .= "<div class='groups_row row corners'>"; } $html .= "<div class='groups_info'>"; $html .= "<div class='groups_avatar'>"; $html .= __wps__get_group_avatar($group->gid, 64); $html .= "</div>"; $html .= "<div class='group_name'>"; $name = stripslashes($group->name) != '' ? stripslashes($group->name) : __('[No name]', WPS_TEXT_DOMAIN); $html .= "<a class='row_link' href='".__wps__get_url('group').__wps__string_query($url)."gid=".$group->gid."'>".$name."</a>"; $html .= "</div>"; $html .= "<div class='group_member_count'>"; $html .= __("Member Count:", WPS_TEXT_DOMAIN)." ".$group->member_count; if ($group->last_activity) { $html .= '<br /><em>'.__('last active', WPS_TEXT_DOMAIN).' '.__wps__time_ago($group->last_activity)."</em>"; } $html .= "</div>"; $html .= "<div class='group_description'>"; $html .= stripslashes($group->description); $html .= "</div>"; $html .= "</div>";
function __wps__mail_menu() { global $wpdb, $current_user; // See if the user has posted forum settings if( isset($_POST[ 'symposium_update' ]) && $_POST[ 'symposium_update' ] == '__wps__mail_menu' ) { $mail_all = (isset($_POST[ 'mail_all' ])) ? $_POST[ 'mail_all' ] : ''; // Update database update_option(WPS_OPTIONS_PREFIX.'_mail_all', $mail_all); } if ( isset($_POST['bulk_message']) ) { $cnt = 0; $subject = $_POST['bulk_subject']; $message =$_POST['bulk_message']; if ($subject == '' || $message == '') { echo "<div class='error'><p>".__('Please fill in the subject and message fields.', WPS_TEXT_DOMAIN).".</p></div>"; } else { if (isset($_POST['roles'])) { $range = array_keys($_POST['roles']); $include_roles = ''; foreach ($range as $key) { $include_roles .= $_POST['roles'][$key].','; } $include_roles = str_replace('', ' ', $include_roles); } else { $include_roles = ''; } // Chosen at least one WordPress role? if ($include_roles != '') { $url = __wps__get_url('mail'); $sql = "SELECT * FROM ".$wpdb->base_prefix."users"; $members = $wpdb->get_results($sql); foreach ($members as $member) { // Get this member's WP role and check in permitted list $the_user = get_userdata( $member->ID ); $capabilities = $the_user->{$wpdb->prefix . 'capabilities'}; $user_role = 'NONE'; if ( !isset( $wp_roles ) ) $wp_roles = new WP_Roles(); if ($capabilities) { foreach ( $wp_roles->role_names as $role => $name ) { if ( array_key_exists( $role, $capabilities ) ) { $user_role = str_replace(' ', '', $role); } } } // Check in this topics category level if (strpos(strtolower($include_roles), 'everyone,') !== FALSE || strpos(strtolower($include_roles), $user_role.',') !== FALSE) { // Send mail if ( $rows_affected = $wpdb->prepare( $wpdb->insert( $wpdb->base_prefix . "symposium_mail", array( 'mail_from' => $current_user->ID, 'mail_to' => $member->ID, 'mail_sent' => date("Y-m-d H:i:s"), 'mail_subject' => $subject, 'mail_message' => $message ) ), '' ) ) { $cnt++; } $mail_id = $wpdb->insert_id; // Filter to allow further actions to take place apply_filters ('__wps__sendmessage_filter', $member->ID, $current_user->ID, $current_user->display_name, $mail_id); // Send real email if chosen if ( __wps__get_meta($member->ID, 'notify_new_messages') ) { $body = "<h1>".$subject."</h1>"; $body .= "<p><a href='".$url.__wps__string_query($url)."mid=".$mail_id."'>".__("Go to Mail", WPS_TEXT_DOMAIN)."...</a></p>"; $body .= "<p>"; $body .= $message; $body .= "</p>"; $body .= "<p><em>"; $body .= $current_user->display_name; $body .= "</em></p>"; $body = str_replace(chr(13), "<br />", $body); $body = str_replace("\\r\\n", "<br />", $body); $body = str_replace("\\", "", $body); // Send real email if (isset($_POST['bulk_email'])) { __wps__sendmail($member->user_email, __('New Mail Message', WPS_TEXT_DOMAIN), $body); } } } } echo "<div class='updated'><p>"; if (isset($_POST['bulk_email'])) { echo sprintf(__('Bulk message sent to %d members, and to their email addresses.', WPS_TEXT_DOMAIN), $cnt); } else { echo sprintf(__('Bulk message sent to %d members (but not to their email addresses).', WPS_TEXT_DOMAIN), $cnt); } echo "</p></div>"; $subject = ''; $message = ''; } else { echo "<div class='error'><p>".__('Please choose at least one WordPress role.', WPS_TEXT_DOMAIN).".</p></div>"; } } } else { $subject = ''; $message = ''; } // Get config data to show $mail_all = get_option(WPS_OPTIONS_PREFIX.'_mail_all'); echo '<div class="wrap">'; echo '<div id="icon-themes" class="icon32"><br /></div>'; echo '<h2>'.sprintf(__('%s Options', WPS_TEXT_DOMAIN), WPS_WL).'</h2><br />'; __wps__show_tabs_header('mail'); ?> <form method="post" action=""> <input type="hidden" name="symposium_update" value="__wps__mail_menu"> <table class="form-table __wps__admin_table"> <tr><td colspan="2"><h2><?php _e('Options', WPS_TEXT_DOMAIN) ?></h2></td></tr> <tr valign="top"> <td scope="row"><label for="mail_all"><?php echo __('Mail to all', WPS_TEXT_DOMAIN); ?></label></td> <td> <input type="checkbox" name="mail_all" id="mail_all" <?php if ($mail_all == "on") { echo "CHECKED"; } ?>/> <span class="description"><?php echo __('Allow mail to all members, even if not a friend?', WPS_TEXT_DOMAIN); ?></span></td> </tr> </table> <p class="submit" style='margin-left:6px;'> <input type="submit" name="Submit" class="button-primary" value="<?php echo __('Save Changes', WPS_TEXT_DOMAIN); ?>" /> </p> </form> <?php echo '<div style="margin-left:10px">'; echo '<h2>'.__('Send bulk mail', WPS_TEXT_DOMAIN).'</h2>'; echo '<p>'.sprintf(__('Send a message from you (%s) to all members of this website - if running WordPress MultiSite, this means all members on your site network.', WPS_TEXT_DOMAIN), $current_user->display_name).'</p>'; echo '<form method="post" action="">'; echo '<strong>'.__('Subject', WPS_TEXT_DOMAIN).'</strong><br />'; echo '<textarea name="bulk_subject" style="width:500px; height:23px; margin-bottom:15px; overflow:hidden;">'.$subject.'</textarea><br />'; echo '<strong>'.__('Select WordPress roles to include', WPS_TEXT_DOMAIN).'</strong><br />'; echo '<div style="margin:10px">'; // Get list of roles global $wp_roles; $all_roles = $wp_roles->roles; echo '<input type="checkbox" name="roles[]" value="everyone"> '.__('All users', WPS_TEXT_DOMAIN).'<br />'; foreach ($all_roles as $role) { echo '<input type="checkbox" name="roles[]" value="'.$role['name'].'"'; echo '> '.$role['name'].'<br />'; } echo '</div>'; echo '<strong>'.__('Message', WPS_TEXT_DOMAIN).'</strong><br />'; echo '<textarea name="bulk_message" style="width:500px; height:200px;">'.$message.'</textarea><br />'; echo '<p><em>'.__('You can include HTML.', WPS_TEXT_DOMAIN).'</em></p>'; echo '<input type="checkbox" name="bulk_email" CHECKED> '.__('Internal mail will be sent, but also send out email notifications?', WPS_TEXT_DOMAIN); echo '<br /><em>'.__('Be wary of limitations from your hosting provider. Members who do not want email notifications will not be sent one.', WPS_TEXT_DOMAIN).'</em><br /><br />'; echo '<input type="submit" name="Submit" class="button-primary" value="'.__('Send', WPS_TEXT_DOMAIN).'" />'; echo '</form></div>'; ?> <table style="margin-left:10px; margin-top:10px;"> <tr><td colspan="2"><h2>Shortcodes</h2></td></tr> <tr><td width="165px">[<?php echo WPS_SHORTCODE_PREFIX; ?>-mail]</td> <td><?php echo __('Display the mail page.', WPS_TEXT_DOMAIN); ?></td></tr> </table> <?php __wps__show_tabs_header_end(); echo '</div>'; }
} } else { echo 'NOT LOGGED IN'; exit; } } // AJAX to fetch forum activity if ($_POST['action'] == 'getActivity') { // Work out link to this page, dealing with permalinks or not $thispage = __wps__get_url('forum'); $q = __wps__string_query($thispage); $grouppage = __wps__get_url('group'); $snippet_length = get_option(WPS_OPTIONS_PREFIX.'_preview1'); if ($snippet_length == '') { $snippet_length = '0'; } $html = '<div id="forum_activity_div">'; $html .= '<div id="forum_activity_all_new_topics">'; $html .= '<div id="forum_activity_title">'.__('Recent Topics', WPS_TEXT_DOMAIN).'</div>'; // All topics started $sql = "SELECT t.*, u.display_name FROM ".$wpdb->prefix."symposium_topics t LEFT JOIN ".$wpdb->base_prefix."users u ON t.topic_owner = u.ID WHERE t.topic_approved = 'on' AND topic_parent = 0 ORDER BY topic_started DESC LIMIT 0,40"; $topics = $wpdb->get_results($sql);
function sendmail($compose_recipient_id) { global $wpdb, $current_user; if (is_user_logged_in()) { $recipient = $wpdb->get_row("SELECT * FROM ".$wpdb->base_prefix."users WHERE ID = '".$compose_recipient_id."'"); if (!$recipient) { $return = false; } else { // subject and message from wps_ui elements $subject = $_POST['wps-mail-subject']; $message = $_POST['wps-mail-message']; // Do some magic to the message $message = str_replace(chr(13), "<br />", $message); // Send mail if ( $rows_affected = $wpdb->prepare( $wpdb->insert( $wpdb->base_prefix . "symposium_mail", array( 'mail_from' => $current_user->ID, 'mail_to' => $recipient->ID, 'mail_sent' => date("Y-m-d H:i:s"), 'mail_subject' => $subject, 'mail_message' => $message ) ) ) ) { $return = true; } else { $return = false; } $mail_id = $wpdb->insert_id; // Filter to allow further actions to take place apply_filters ('__wps__sendmessage_filter', $recipient->ID, $current_user->ID, $current_user->display_name, $mail_id); // Send real email if chosen if ( __wps__get_meta($recipient->ID, 'notify_new_messages') ) { $url = __wps__get_url('mail'); $body = "<h1>".$subject."</h1>"; $body .= "<p><a href='".$url.__wps__string_query($url)."mid=".$mail_id."'>".sprintf(__("Go to %s Mail", WPS_TEXT_DOMAIN), __wps__get_url('mail'))."...</a></p>"; $body .= "<p>"; $body .= $message; $body .= "</p>"; $body .= "<p><em>"; $body .= $current_user->display_name; $body .= "</em></p>"; $body .= $previous; $body = str_replace(chr(13), "<br />", $body); $body = str_replace("\\r\\n", "<br />", $body); $body = str_replace("\\", "", $body); $mail_subject = get_option(WPS_OPTIONS_PREFIX.'_subject_mail_new'); if (strpos($mail_subject, '[subject]') !== FALSE) { $mail_subject = str_replace("[subject]", $subject, $mail_subject); } if ( __wps__sendmail($recipient->user_email, $mail_subject, $body) ) { $return = true; } else { $return = false; } } } } else { $return = false; // not logged in } return $return; }
$rss_share = __wps__get_meta($uid, 'rss_share'); if ($rss_share == 'on') { $sql = "SELECT cid, comment_timestamp, comment FROM ".$wpdb->base_prefix."symposium_comments WHERE is_group != 'on' AND comment_parent = 0 AND author_uid = %d AND subject_uid = %d ORDER BY cid DESC LIMIT 0,25"; $activities = $wpdb->get_results($wpdb->prepare($sql, $uid, $uid)); $profile_url = __wps__get_url('profile'); foreach ($activities as $activity) { echo '<item>'; echo '<title>'.stripslashes($activity->comment).'</title>'; echo '<link>'.$profile_url.__wps__string_query($profile_url).'uid='.$uid.'&post='.$activity->cid.'</link>'; echo '<guid>'.$profile_url.__wps__string_query($profile_url).'uid='.$uid.'&post='.$activity->cid.'</guid>'; echo '<pubDate>'.date(DATE_RSS, strtotime($activity->comment_timestamp)).'</pubDate>'; echo '</item>'; } echo '</channel>'; echo '</rss>'; } else { echo '<item>'; echo '<title>'.__('This activity is now not available publicly.', WPS_TEXT_DOMAIN).'</title>'; echo '</item>';
'' ) ) ); // Updated gallery table $wpdb->query( $wpdb->prepare( "UPDATE ".$wpdb->prefix."symposium_gallery SET updated = %s WHERE gid = %d", date("Y-m-d H:i:s"), $uploader_aid ) ); // Set album cover if not yet set $cover = $wpdb->get_var($wpdb->prepare("SELECT cover FROM ".$wpdb->prefix."symposium_gallery_items WHERE gid = %d", $uploader_aid)); if (!$cover) { $first_item = $wpdb->get_var($wpdb->prepare("SELECT iid FROM ".$wpdb->prefix."symposium_gallery_items WHERE gid = %d ORDER BY iid LIMIT 0,1", $uploader_aid)); $wpdb->query( $wpdb->prepare( "UPDATE ".$wpdb->prefix."symposium_gallery_items SET cover = 'on' WHERE iid = %d", $first_item ) ); } $profile_url = __wps__get_url('profile'); $q = __wps__string_query($profile_url); echo __('Image uploaded', WPS_TEXT_DOMAIN).'. <a href="file_upload_form.php?uploader_uid='.$current_user->ID.'&uploader_tid='.$tid.'&uploader_gid='.$uploader_gid.'&uploader_aid='.$uploader_aid.'&uploader_dir='.$uploader_dir.'&uploader_url='.$uploader_url.'&uploader_ver='.$uploader_ver.'">'.__('Upload another', WPS_TEXT_DOMAIN).'</a>'; echo ', or <a target="_parent" href="'.$profile_url.$q.'?view=gallery&album_id='.$uploader_aid.'&embed=on">'.__('refresh album', WPS_TEXT_DOMAIN).'</a>?'; add_to_create_activity_feed($uploader_aid); } } else { echo 'Failed to process '.$_FILES["file"]["tmp_name"].' > '.$targetFile; } } } } else { echo 'Sorry, file upload does not work here yet.'; }
if (WPS_DEBUG) $html .= $wpdb->last_query; if ($members) { if (WPS_DEBUG) $html .= 'Members found '; $inactive = get_option(WPS_OPTIONS_PREFIX.'_online'); $offline = get_option(WPS_OPTIONS_PREFIX.'_offline'); $profile = __wps__get_url('profile'); $count = 0; $skip = 0; $mailpage = __wps__get_url('mail'); if ($mailpage[strlen($mailpage)-1] != '/') { $mailpage .= '/'; } $q = __wps__string_query($mailpage); if ( !isset( $wp_roles ) ) $wp_roles = new WP_Roles(); // Get Extended Field info for advanced search if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite')) { $sql = "SELECT * FROM ".$wpdb->base_prefix."symposium_extended ORDER BY eid"; $extensions = $wpdb->get_results($sql); } foreach ($members as $member) { if (WPS_DEBUG) $html .= $member->display_name.' '; // Check to see if this member is in the included list of roles
function __wps__admin_header() { if (get_option(WPS_OPTIONS_PREFIX.'_redirect_wp_profile') == 'on' && __wps__get_current_userlevel() < 2) { if ( strpos($_SERVER['PHP_SELF'], "wp-admin/profile.php") !== FALSE ) { if (function_exists('__wps__profile')) { $profile_page = __wps__get_url('profile'); if ( (isset($_GET['uid'])) && ($_GET['uid'] != '') ) { $uid = __wps__string_query($profile_page).'uid='.$_GET['uid']; } else { $uid = ''; } wp_redirect( $profile_page.$uid ); } } } }
// Update to alerts and then redirect if (isset($_GET['href'])) { global $wpdb, $current_user; $num = isset($_GET['num']) ? $_GET['num'] : 0; $aid = $_GET['aid']; // Add to activity feed add_to_create_activity_feed($aid); // Then re-direct $href = __wps__get_url('profile'); $href .= __wps__string_query($href); $href .= "uid=".$current_user->ID."&embed=on&album_id=".$aid; wp_redirect( $href ); exit; } // Re-order thumbnails if ($_POST['action'] == 'symposium_reorder_photos') { global $wpdb,$current_user; if (is_user_logged_in()) { $album_id = str_replace('symposium_gallery_photos_', '', $_POST['album_id']); $order = explode(",", $_POST['order']); for($i=0;$i < sizeof($order);$i++){
function get_url_q($url) { return __wps__string_query($url); }
function __wps__profile_friends($uid, $limit_from) { global $wpdb, $current_user; wp_get_current_user(); $limit_count = 10; $privacy = __wps__get_meta($uid, 'share'); $is_friend = __wps__friend_of($uid, $current_user->ID); $html = ""; if ( ($uid == $current_user->ID) || (is_user_logged_in() && strtolower($privacy) == 'everyone') || (strtolower($privacy) == 'public') || (strtolower($privacy) == 'friends only' && $is_friend) || __wps__get_current_userlevel() == 5) { $mailpage = __wps__get_url('mail'); if ($mailpage[strlen($mailpage)-1] != '/') { $mailpage .= '/'; } $q = __wps__string_query($mailpage); // Friend Requests if ($uid == $current_user->ID) { $sql = "SELECT u1.display_name, u1.ID, f.friend_timestamp, f.friend_message, f.friend_from FROM ".$wpdb->base_prefix."symposium_friends f LEFT JOIN ".$wpdb->base_prefix."users u1 ON f.friend_from = u1.ID WHERE f.friend_to = %d AND f.friend_accepted != 'on' ORDER BY f.friend_timestamp DESC"; $requests = $wpdb->get_results($wpdb->prepare($sql, $current_user->ID)); if ($requests) { $html .= '<h2>'.sprintf(__('%s Requests', WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend')).'...</h2>'; foreach ($requests as $request) { $html .= "<div id='request_".$request->friend_from."' style='clear:right; margin-top:8px; overflow: auto; margin-bottom: 15px; width:95%;'>"; $html .= "<div style='float: left; width:64px; margin-right: 15px'>"; $html .= get_avatar($request->ID, 64); $html .= "</div>"; $html .= "<div class='__wps__friend_request_info'>"; $html .= __wps__profile_link($request->ID)."<br />"; $html .= __wps__time_ago($request->friend_timestamp)."<br />"; $html .= "<em>".stripslashes($request->friend_message)."</em>"; $html .= "</div>"; $html .= "<div style='clear: both; float:right;'>"; $html .= '<input type="submit" title="'.$request->friend_from.'" id="rejectfriendrequest" class="__wps__button" style="'.__wps__get_extension_button_style().'" value="'.__('Reject', WPS_TEXT_DOMAIN).'" /> '; $html .= "</div>"; $html .= "<div style='float:right;'>"; $html .= '<input type="submit" title="'.$request->friend_from.'" id="acceptfriendrequest" class="__wps__button" style="'.__wps__get_extension_button_style().'" value="'.__('Accept', WPS_TEXT_DOMAIN).'" /> '; $html .= "</div>"; $html .= "</div>"; } $html .= '<hr />'; } } // Friends $sql = "SELECT f.*, cast(m.meta_value as datetime) as last_activity FROM ".$wpdb->base_prefix."symposium_friends f LEFT JOIN ".$wpdb->base_prefix."usermeta m ON m.user_id = f.friend_to WHERE f.friend_to > 0 AND f.friend_from = %d AND m.meta_key = 'symposium_last_activity' AND f.friend_accepted = 'on' ORDER BY cast(m.meta_value as datetime) DESC LIMIT %d, %d"; $friends = $wpdb->get_results($wpdb->prepare($sql, $uid, $limit_from, $limit_count)); if ($friends) { if ($current_user->ID == $uid || __wps__get_current_userlevel() == 5) { $html .= '<input type="submit" id="removeAllFriends" name="Submit" class="__wps__button" style="'.__wps__get_extension_button_style().'; width:200px;" value="'.__('Remove all friends', WPS_TEXT_DOMAIN).'" />'; } $count = 0; $inactive = get_option(WPS_OPTIONS_PREFIX.'_online'); $offline = get_option(WPS_OPTIONS_PREFIX.'_offline'); foreach ($friends as $friend) { $count++; $time_now = time(); $last_active_minutes = strtotime($friend->last_activity); $last_active_minutes = floor(($time_now-$last_active_minutes)/60); $html .= "<div id='friend_".$friend->friend_to."' class='friend_div row_odd corners' style='clear:right; margin-top:8px; overflow: auto; margin-bottom: 15px; padding:6px; width:95%;'>"; $html .= "<div style='width:64px; margin-right: 15px'>"; $html .= get_avatar($friend->friend_to, 64); $html .= "</div>"; // Send Mail and remove as friend $html .= "<div style='width:50px; height: 16px; float:right;'>"; if ($friend->friend_accepted == 'on') { if ($uid == $current_user->ID) { $html .= "<div style='display:none;' class='friend_icons'>"; $html .= "<div style='float:right;margin-left:5px;margin-right:5px;'>"; $html .= '<img style="cursor:pointer" src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/delete.png" title="'.$friend->friend_to.'" class="frienddelete">'; $html .= '</form>'; $html .= "</div>"; if (function_exists('__wps__mail')) { $html .= "<div style='float:right;'>"; $html .= '<img style="cursor:pointer" src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/orange-tick.gif" onclick="document.location = \''.$mailpage.$q.'view=compose&to='.$friend->friend_to.'\';">'; $html .= "</div>"; } $html .= "</div>"; } } $html .= '</div>'; $html .= "<div style='padding-left:74px;'>"; $html .= __wps__profile_link($friend->friend_to); $html .= "<br />"; if ($last_active_minutes >= $offline) { $html .= __('Logged out', WPS_TEXT_DOMAIN).'. '.__('Last active', WPS_TEXT_DOMAIN).' '.__wps__time_ago($friend->last_activity)."."; } else { if ($last_active_minutes >= $inactive) { $html .= __('Offline', WPS_TEXT_DOMAIN).'. '.__('Last active', WPS_TEXT_DOMAIN).' '.__wps__time_ago($friend->last_activity)."."; } else { $html .= __('Last active', WPS_TEXT_DOMAIN).' '.__wps__time_ago($friend->last_activity)."."; } } if (!get_option(WPS_OPTIONS_PREFIX.'_wps_lite')) { $html .= '<br />'; // Show comment $sql = "SELECT cid, comment FROM ".$wpdb->base_prefix."symposium_comments WHERE author_uid = %d AND subject_uid = %d AND comment_parent = 0 AND type = 'post' ORDER BY cid DESC LIMIT 0,1"; $comment = $wpdb->get_row($wpdb->prepare($sql, $friend->friend_to, $friend->friend_to)); if ($comment) { $html .= '<div>'.__wps__buffer(__wps__make_url(stripslashes($comment->comment))).'</div>'; } // Show latest non-status activity if applicable if (function_exists('__wps__forum')) { $sql = "SELECT cid, comment FROM ".$wpdb->base_prefix."symposium_comments WHERE author_uid = %d AND subject_uid = %d AND comment_parent = 0 AND type = 'forum' ORDER BY cid DESC LIMIT 0,1"; $forum = $wpdb->get_row($wpdb->prepare($sql, $friend->friend_to, $friend->friend_to)); if ($comment && $forum && $forum->cid != $comment->cid) { $html .= '<div>'.__wps__buffer(__wps__make_url(stripslashes($forum->comment))).'</div>'; } } } $html .= "</div>"; if ($friend->friend_accepted != 'on') { $html .= "<div style='float:left;'>"; $html .= "<strong>".sprintf(__("%s request sent.", WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend'))."</strong>"; $html .= "</div>"; } $html .= "</div>"; } if ($count == $limit_count) { $html .= "<a href='javascript:void(0)' id='friends' class='showmore_wall' title='".($limit_from+$limit_count)."'>".__("more...", WPS_TEXT_DOMAIN)."</a>"; } } else { $html .= __("Nothing to show, sorry.", WPS_TEXT_DOMAIN); } } else { if (strtolower($privacy) == 'friends only') { $html .= sprintf(__("Personal information only for %s.", WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friends')); } if (strtolower($privacy) == 'nobody') { $html .= __("Personal information is private.", WPS_TEXT_DOMAIN); } } return $html; }
echo '<strong>TOPIC</strong>'; echo '</div>'; echo '<div class="my-topics-title-topic">'; echo '<strong>LAST REPLY</strong>'; echo '</div>'; echo '<div class="my-topics-title-replies">'; echo '<strong>REPLIES</strong>'; echo '</div>'; echo '</div>'; foreach ($topics as $topic) { echo '<div class="my-topic-row">'; // Topic subject echo '<div class="my-topic-row-title">'; $topic_subject = stripslashes($topic->topic_subject); if (strlen($topic_subject) > 60) $topic_subject = substr($topic_subject, 0, 60).'...'; echo "<a href='".$wps->get_forum_url().__wps__string_query($wps->get_forum_url())."catid=".$catid."&tid=".$topic->tid."'>".$topic_subject."</a>"; echo '</div>'; // Last reply $last_reply = $wps_forum->get_replies($topic->tid, 0, 1); echo '<div class="my-forum-row-last-topic">'; if ($last_reply) { $reply = stripslashes($last_reply->topic_post); $reply = str_replace('<br />', ' ', $reply); $reply = str_replace('<p>', '', $reply); $reply = str_replace('</p>', ' ', $reply); if (strlen($reply) > 60) $reply = substr(strip_tags($reply), 0, 60).'...'; echo '<div class="my-topic-row-last-topic-avatar">'; $wps_user = new wps_user($last_reply->topic_owner); echo '<a href="'.$wps->get_profile_url().'?uid='.$last_reply->topic_owner.'">'; echo $wps_user->get_avatar(48); echo '</a>';
function symposium_forum_latestposts_showThreadChildren($count, $cat_id, $parent, $level, $use_answers) { global $wpdb, $current_user; $thispage = __wps__get_url('forum'); if ($thispage[strlen($thispage)-1] != '/') { $thispage .= '/'; } $q = __wps__string_query($thispage); $symposium_last_login = __wps__get_meta($current_user->ID, 'symposium_last_login'); $html = ""; $preview = 30; if ($count != '') { $postcount = $count; } else { $postcount = get_option(WPS_OPTIONS_PREFIX.'_symposium_forumlatestposts_count'); } if ($level == 0) { $avatar_size = 30; $margin_top = 10; $desc = "DESC"; } else { $avatar_size = 20; $margin_top = 6; $desc = "DESC"; } // All topics started $cat_sql = ($cat_id) ? " AND t.topic_category = ".$cat_id : ''; $posts = $wpdb->get_results(" SELECT t.tid, t.topic_subject, t.stub, p.stub as parent_stub, t.topic_owner, t.topic_post, t.topic_category, t.topic_started, u.display_name, t.topic_parent, t.topic_answer, t.topic_date, t.topic_approved FROM ".$wpdb->prefix.'symposium_topics'." t INNER JOIN ".$wpdb->base_prefix.'users'." u ON t.topic_owner = u.ID LEFT JOIN ".$wpdb->prefix.'symposium_topics'." p ON t.topic_parent = p.tid WHERE t.topic_parent = ".$parent." AND t.topic_group = 0".$cat_sql." ORDER BY t.tid ".$desc." LIMIT 0,".$postcount); if ($posts) { foreach ($posts as $post) { if ( ($post->topic_approved == 'on') || ($post->topic_approved != 'on' && ($post->topic_owner == $current_user->ID || current_user_can('level_10'))) ) { $padding_left = ($level == 0) ? 40 : 30; $html .= "<div class='__wps__latest_forum_row' style='padding-left: ".$padding_left."px; margin-left: ".($level*40)."px; margin-top:".$margin_top."px;'>"; $html .= "<div class='__wps__latest_forum_row_avatar'>"; $html .= get_avatar($post->topic_owner, $avatar_size); $html .= "</div>"; $html .= "<div style='float:left'>"; if ($post->topic_parent > 0) { $text = strip_tags(stripslashes($post->topic_post)); if ( strlen($text) > $preview ) { $text = substr($text, 0, $preview)."..."; } $reply_text = $level == 1 ? 'replied' : 'commented'; $html .= __wps__profile_link($post->topic_owner)." ".__($reply_text, WPS_TEXT_DOMAIN)." "; if (get_option(WPS_OPTIONS_PREFIX.'_permalink_structure')) { $perma_cat = __wps__get_forum_category_part_url($post->topic_category); $html .= "<a title='".$text."' href='".$thispage.$perma_cat.$post->parent_stub."'>"; } else { $html .= "<a title='".$text."' href='".$thispage.$q."cid=".$post->topic_category."&show=".$post->topic_parent."'>"; } $html .= $text."</a> ".__wps__time_ago($post->topic_started); if ($use_answers == 'on' && $post->topic_answer == 'on') { $html .= ' <img style="width:12px;height:12px" src="'.get_option(WPS_OPTIONS_PREFIX.'_images').'/tick.png" alt="'.__('Answer Accepted', WPS_TEXT_DOMAIN).'" />'; } $html .= "<br>"; } else { $text = stripslashes($post->topic_subject); if ( strlen($text) > $preview ) { $text = substr($text, 0, $preview)."..."; } $html .= __wps__profile_link($post->topic_owner)." ".__('started', WPS_TEXT_DOMAIN); if (get_option(WPS_OPTIONS_PREFIX.'_permalink_structure')) { $perma_cat = __wps__get_forum_category_part_url($post->topic_category); $html .= " <a title='".$text."' href='".$thispage.$perma_cat.$post->stub."'>".$text."</a> "; } else { $html .= " <a title='".$text."' href='".$thispage.$q."cid=".$post->topic_category."&show=".$post->tid."'>".$text."</a> "; } $html .= __wps__time_ago($post->topic_started).".<br>"; } $html .= "</div>"; if ($post->topic_date > $symposium_last_login && $post->topic_owner != $current_user->ID) { $html .= "<div style='float:left;'>"; $html .= " <img src='".get_option(WPS_OPTIONS_PREFIX.'_images')."/new.gif' alt='New!' />"; $html .= "</div>"; } if ($post->topic_approved != 'on') { $html .= " <em>[".__("pending approval", WPS_TEXT_DOMAIN)."]</em>"; } $html .= "</div>"; } $html .= symposium_forum_latestposts_showThreadChildren($count, $cat_id, $post->tid, $level+1, $use_answers); } } return $html; }
function __wps__news_add_friendaccepted($message_to, $message_from, $from_name) { $url = __wps__get_url('profile'); __wps__news_add($message_from, $message_to, "<a href='".$url.__wps__string_query($url)."view=friends'>".sprintf(__("%s request accepted by", WPS_TEXT_DOMAIN), get_option(WPS_OPTIONS_PREFIX.'_alt_friend'))." ".$from_name."</a>"); }
function __wps__inform_members($group_name, $gid, $new_member_emails) { global $wpdb, $current_user; $html = ''; // First check that this group tells about new members if ($new_member_emails == 'on') { $body = "<h1>".stripslashes($group_name)."</h1>"; $body .= '<p>'.__("New group member", WPS_TEXT_DOMAIN).': '.$current_user->display_name.'</p>'; $url = __wps__get_url('group'); $url .= __wps__string_query($url); $url .= "gid=".$gid; $body .= '<p><a href="'.$url.'">'.$url.'</a></p>'; $sql = "SELECT u.user_email FROM ".$wpdb->base_prefix."users u LEFT JOIN ".$wpdb->prefix."symposium_group_members m ON u.ID = m.member_id WHERE m.group_id = %d"; $recipients = $wpdb->get_results($wpdb->prepare($sql, $gid)); foreach ($recipients AS $recipient) { if (__wps__sendmail($recipient->user_email, __('New group member', WPS_TEXT_DOMAIN), $body)) { //$html .= 'Sent to '.$recipient->user_email.' '; } else { $html .= 'Failed to send email to '.$recipient->user_email.'<br />'; } } } else { //$html .= 'Not sending emails for this group!'; } return $html; }