.attachment-266x266, .thumbnail img { width: 100% !important; height: auto !important; } '; } add_action('admin_head', 'fix_svg'); function cc_mime_types($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } add_filter('upload_mimes', 'cc_mime_types'); ?> 300000, // blog 1 / main blog 4121 => 300000, // blog 4121 datenanalyse2016 can upload files 300MB in size or less 4117 => 300000, // blog 4117 arduino2016 can upload files 300MB in size or less 5103 => 300000, // blog 5103 arduino2016g2 can upload files 300MB in size or less 5105 => 300000, // blog 5105 arduino2016g3 can upload files 300MB in size or less 8336 => 1048576 // blog 8336 kmaebforschungsmethoden can upload file up to 1024MB in size ); if ( isset( $blog_upload_map[$current_blog->blog_id] ) && absint( $blog_upload_map[$current_blog->blog_id] ) ) { $maxk = $blog_upload_map[$current_blog->blog_id]; } return $maxk; } //add_filter( 'pre_site_option_fileupload_maxk', 'filter_fileupload_maxk' ); blogid; if(!$user_id) $user_id = (int)$post->post_author; if ( $post->post_type != 'post' ) return false; if ( 'publish' == $post->post_status && '' == $post->post_password ) { if((int)get_blog_option( $blog_id, 'blog_public' )== 0){ error_log("add filter blog_public"); add_filter('blog_option_blog_public','oo_get_activity_change_blog_public',10,2); } error_log("oo_get_activity_before_bp_save_post user:".$user_id." blog:".$blog_id); } } /* add action with prority 9 (bp uses 10) */ //error_log("add action oo_get_activity_before_bp_save_post 9 2"); add_action( 'save_post','oo_get_activity_before_bp_save_post',9,3); function oo_get_activity_after_bp_save_post($post_id,$post,$user_id=false){ global $bp,$wpdb; $post_id= (int)$post_id; $blog_id= (int)$wpdb->blogid; if(!$user_id) $user_id = (int)$post->post_author; if ( $post->post_type != 'post' ) return false; if ( 'publish' == $post->post_status && '' == $post->post_password ) { if((int)get_blog_option( $blog_id, 'blog_public' )== 0){ error_log("remove filter blog_public"); remove_filter('blog_option_blog_public','oo_get_activity_change_blog_public',10,2); } error_log("oo_get_activity_after_bp_save_post user:".$user_id." blog:".$blog_id); } } /* add action with prority 11 (bp uses 10) */ add_action( 'save_post','oo_get_activity_after_bp_save_post',11,3); function oo_get_activity_change_blog_public($value,$blog_id){ $value=(int)$value; error_log("oo_get_activity_change_blog_public value:".$value." blog_id:".$blog_id); if(!$value)$value=-1; error_log("oo_get_activity_blog_public new value:".$value); return $value; } $val){ if($function($val)==true) $return[$idx++]=$val; } return $return; } function uhb_activity_filter ($arg){ $result=$arg; $result['activities']=uhb_array_filter_newkey($arg['activities'],'uhb_array_filter'); $result['total']=count($result['activities']); return $result; } function uhb_array_filter($part){ $result=true; if($part->component_name=='blogs'){ $blogid=get_blogid($part->primary_link); $privacy=get_blog_option($blogid,'blog_public'); if($privacy<0)$result=false; } return $result; } function get_blogid($link){ global $wpdb; $link=str_replace(get_blog_option(1,'siteurl'),"",$link); $blogid=1; if(strlen($link)>0){ $link_parts=explode( "/" , $link ); $blogids=$wpdb->get_row("SELECT blog_id FROM wp_blogs WHERE path LIKE '/".$link_parts[1]."/'"); if($blogids) $blogid=$blogids->blog_id; } return $blogid; } Updates } //create_users $role = get_role( 'administrator' ); if ( isset($role) && $role->has_cap('create_users') && ! is_main_site( get_current_blog_id() ) ) { // Because this is saved to the database, we check first // to see if it's already been done $role->remove_cap('create_users'); } "; error_log("zmml_epoocs emebed: ".$embed); return apply_filters( 'embed_zmml_epoocs', $embed, $matches, $attr, $url, $rawattr ); } '; echo 'Impressum'; echo ''; } function uhb_alter_bp_adminbar(){ add_action('bp_adminbar_menus', 'uhb_adminbar_impr_menu'); } add_action('wp_footer','uhb_alter_bp_adminbar',1); function uhb_wp_admin_bar_render() { global $wp_admin_bar; $wp_admin_bar->add_menu( array( 'parent' => false, // use 'false' for a root menu, or pass the ID of the parent menu 'id' => 'imprint', // link ID, defaults to a sanitized title value 'title' => __('Impressum'), // link title 'href' => '/impressum', // name of file 'meta' => false // array of any of the following options: array( 'html' => '', 'class' => '', 'onclick' => '', target => '', title => '' ); )); } add_action( 'wp_before_admin_bar_render', 'uhb_wp_admin_bar_render' ); ?> userdata[$key])){ $data=$this->userdata[$key][0]; } else { $data=$this->userdata[$key]; } return $data; } private function file_get_contents_curl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); $data = curl_exec($ch); curl_close($ch); return $data; } /** * Header for redirect if cookie is set */ public function login_redirect() { //error_log("uhbshib login_redirect"); //error_log(print_r($_COOKIE,true)); if(!is_user_logged_in()){ if(isset($_COOKIE['eluhb-sp-last-auth-try'])) { $last_auth = $_COOKIE['eluhb-sp-last-auth-try']; if((time() - $last_auth) < 43200) { $login_url = site_url( 'wp-login.php', 'login_post' ); $login_url = add_query_arg('action', 'uhbshib', $login_url); $login_url = remove_query_arg('reauth', $login_url); error_log("wp_redirect: ".$login_url); if(get_query_var('action')!='uhbshib'){ //wp_redirect( $login_url ); //exit; } } } } else { error_log("user logged in, no shib redirect"); } } /* Logout redirect for single logout */ public function logout_redirect($user_id) { error_log("uhbshib logout_redirect"); error_log(print_r($_COOKIE,true)); if(get_user_meta($user_id,'shib_login',true)){ error_log("uhbshib user is shib login"); error_log("uhbshib logout redirect"); if(wp_redirect($this->logout_url)){ exit; } } else { error_log("no shib user logged in, no shib logout redirect"); } } /** * Add a "Login with Shibboleth" link to the WordPress login form. This link * will be wrapped in a

with an id value of "shibboleth_login" so that * deployers can style this however they choose. */ public function login_form() { error_log("uhbshib login_form"); $login_url = site_url( 'wp-login.php', 'login_post' ); $login_url = add_query_arg('action', 'uhbshib', $login_url); $login_url = remove_query_arg('reauth', $login_url); echo '

' . __('Shibboleth Login', 'uhbshib') . '

'; } private function create_new_user($user_login){ error_log("create_new_user"); if ( empty($user_login) ) return null; // create account and flag as a shibboleth acount require_once( ABSPATH . WPINC . '/registration.php' ); //$user_id = wp_insert_user(array('user_login'=>$user_login)); $random_password = wp_generate_password( $length=20, $include_standard_special_chars=false ); $user_id = wp_create_user( $user_login, $random_password); $user = new WP_User($user_id); $user->remove_all_caps(); // don't add new user to any blog... error_log("user:".print_r($user,true)); // always update user data and role on account creation $this->update_user_data($user->ID, true); return $user; } private function update_user_data($user_id,$new_user=true) { require_once( ABSPATH . WPINC . '/registration.php' ); error_log("update_user_data"); error_log("user_id:".$user_id); update_usermeta($user_id, 'shibboleth_used', true); $user_fields = array( 'first_name' => 'givenname', 'last_name' => 'sn', 'user_email' => 'mail' ); if($new_user){ $user_fields['user_login'] = 'username'; $user_fields['user_nicename'] = 'givenname'; $user_fields['nickname'] = 'givenname'; $user_fields['display_name'] = 'givenname'; } $user_data = array( 'ID' => $user_id, ); foreach ($user_fields as $field => $shibfield) { $filter = 'shibboleth_' . ( strpos($field, 'user_') === 0 ? '' : 'user_' ) . $field; $user_data[$field] = apply_filters($filter, $this->getUserData($shibfield)); } $shmail=$this->userdata['mail']; if(is_array($shmail)){ $epn=$this->getUserData('edupersonprincipalname'); error_log("shib mail array found"); if(!( array_search($epn, $shmail)===FALSE)){ error_log("found epn set epn as mail"); $user_data['user_email']=$epn; } } error_log(print_r($user_data,true)); wp_update_user($user_data); } public function authenticate(){ $ret_user=false; if($epn=$this->getUserData('edupersonprincipalname')){ $domain=substr(strrchr($epn, "@"), 1); error_log("UHBShib_Plugin domains:".$domain); $allowed_domains = array ('uni-bremen.de'); if(in_array($domain,$allowed_domains)){ $wpsh_user=get_user_by('email',$this->getUserData('mail')); error_log("UHBShib_Plugin authenticate"); error_log("update by email: ".$this->getUserData('mail')); error_log("wpsh_user: ".print_r($wpsh_user,true)); if ( $wpsh_user && $wpsh_user->ID ) { $this->update_user_data($wpsh_user->ID,true); $ret_user=$wpsh_user; } else { error_log("user not found by mail try edupersonprincipalname"); $wpsh_user=get_user_by('email',$this->getUserData('edupersonprincipalname')); error_log("update by edupersonprincipalname: ".$this->getUserData('edupersonprincipalname')); error_log(print_r($wpsh_user,true)); if( $wpsh_user && $wpsh_user->ID) { $this->update_user_data($wpsh_user->ID,true); $ret_user=$wpsh_user; } else { $ret_user=$this->create_new_user($this->getUserData('username')); } } } } if($ret_user){ add_user_meta($ret_user->ID,'shib_login',true); } return $ret_user; } /** * When wp-login.php is loaded with 'action=shibboleth', hook Shibboleth * into the WordPress authentication flow. */ public function login_form_shibboleth() { if(isset($_REQUEST['token']) && $token=$_REQUEST['token']){ error_log("Token:".$token); $shibauth = $this->file_get_contents_curl($this->validate_url.'/'.$token); $this->userdata = json_decode($shibauth, true); if(!is_array($this->userdata))return; reset($this->userdata); if (isset($this->local_domain)) { $this->userdata['username'] = str_replace('@'.$this->local_domain, '', $this->getUserData('edupersonprincipalname')); } else { $this->userdata['username'] = $this->getUserData('edupersonprincipalname'); } error_log(print_r($this->userdata,true)); error_log("add filter authenticate"); add_filter('authenticate', array($this,'authenticate'), 10, 3); } else { if (empty($remote_user) || isset($this->validate_url)) { // force Shibboleth authentication (lazy session) $shib_url = $this->session_initiator; $shib_url .= strpos($shib_url, '?') === false ? '?' : '&'; $login_url = get_site_url(); $login_url .= add_query_arg('action', 'uhbshib'); $shib_url .= 'target='.urlencode($login_url); // break redirection loop in case of misconfiguration if (strstr($_SERVER['HTTP_REFERER'], 'target=') == false) { wp_redirect($shib_url); exit; } } } } } //$uhbsihblogin=new UHBShib_Plugin(); load_plugin_textdomain( 'uhbshib', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); groups->current_group; $groupid = $group->id; $ret="---"; if($groupid && $module){ $ret=$wpdb->get_var('SELECT name FROM '.$bp->feedbackr->modules_table_name.' WHERE groupid = '.$groupid.' AND id = '.$module); } return $ret; } function bp_feedbackr_is_vablog($blog_id){ global $wpdb,$bp; $ret=false; $q='SELECT isvablog FROM '.$bp->feedbackr->table_name. ' WHERE blogid = '.$blog_id; $isvablog=$wpdb->get_var($q); if($isvablog)$ret=true; return $ret; } function bp_feedbackr_set_rating_for_activity($activityid, $ratingid, $vote){ global $wpdb,$bp; $v=array('activityid' => $activityid, 'ratingid' => $ratingid, 'vote' => $vote); $t=array('%d','%d','%d'); $wpdb->replace($bp->feedbackr->ratings, $v,$t); } function bp_feedbackr_get_rating_for_activity($activityid, $ratingid){ global $wpdb,$bp; $ret=0; $q='SELECT vote FROM '.$bp->feedbackr->ratings.' WHERE activityid = '.$activityid.' AND ratingid = '.$ratingid; $ret=$wpdb->get_var($q); if(!$ret)$ret=0; return $ret; } function bp_feedbackr_get_rating_sum_for_activity($activityid) { global $wpdb,$bp; $sum=0; $ratings=$wpdb->get_col('SELECT vote FROM '.$bp->feedbackr->ratings.' WHERE activityid = '.$activityid); if($ratings){ error_log("ACT ID: ".$activityid); error_log("Ratings: ".print_r($ratings,true)); foreach($ratings as $vote) { $sum+=$vote; } } return $sum; } function bp_feedbackr_get_post_id_for_activity($activityid){ global $wpdb,$bp; $ret=0; $q='SELECT secondary_item_id FROM '.$bp->activity->table_name. ' WHERE id = '.$activityid; $ret=$wpdb->get_var($q); return $ret; } function bp_feedbackr_get_fb_actitiy_for_module_low_fb($groupid,$module,$userid){ global $wpdb,$bp; $ret=0; //error_log("module_low_fb: $groupid,$module,$userid"); $blogid_or=bp_feedbackr_get_group_blogid_or($groupid); // function bp_feedbackr_get_comment_count_for_post($blog_id,$post_id){ // function bp_feedbackr_get_blogid_for_act($act_id){ // function bp_feedbackr_is_peer_for_act($userid,$activityid){ $userblogid=bp_feedbackr_get_userblog($groupid,$userid); $min_c_count=-1; $q="SELECT activityid,blogid FROM ".$bp->feedbackr->fb_table_name." WHERE module=$module AND ( ".$blogid_or.' ) AND NOT blogid='.$userblogid; $acts=$wpdb->get_results($q); foreach($acts as $act){ $actid=$act->activityid; $blogid=$act->blogid; //error_log("a,b $actid,$blogid"); if(!bp_feedbackr_is_peer_for_act($userid,$actid)){ $postid=bp_feedbackr_get_post_id_for_activity($actid); $c_count=bp_feedbackr_get_comment_count_for_post($blogid,$postid); //error_log("Post-ID: ".$postid." c_count: ".$c_count); if($c_count<$min_c_count || $min_c_count==-1){ $min_c_count=$c_count; } } } //error_log("Part 2, min_c_count: $min_c_count"); reset($acts); $low_comments=array(); if($min_c_count!=-1){ foreach($acts as $act){ $actid=$act->activityid; $blogid=$act->blogid; //error_log("a,b $actid,$blogid"); if(!bp_feedbackr_is_peer_for_act($userid,$actid)){ $postid=bp_feedbackr_get_post_id_for_activity($actid); $c_count=bp_feedbackr_get_comment_count_for_post($blogid,$postid); //error_log("Post-ID: ".$postid." c_count: ".$c_count); if($c_count==$min_c_count){ $low_comments[]=$actid; } } } //error_log("low comments"); //error_log(print_r($low_comments,true)); if(count($low_comments)>0){ //error_log(count($low_comments)); $ret=$low_comments[rand(0,count($low_comments)-1)]; //error_log("$userid,$groupid ret: ".$ret); } else { //error_log("$userid,$groupid No low comments found! $ret"); } } return $ret; } function bp_feedbackr_get_fb_actitiy_for_module_random($groupid,$module){ global $wpdb,$bp; $ret=0; $blogid_or=bp_feedbackr_get_group_blogid_or($groupid); $q="SELECT COUNT(activityid) FROM ".$bp->feedbackr->fb_table_name." WHERE module=$module AND ( ".$blogid_or.' )'; $numact=(int)$wpdb->get_var($q); $actnum=rand(0,$numact-1); $q="SELECT activityid FROM ".$bp->feedbackr->fb_table_name." WHERE module=$module AND ( ".$blogid_or.' ) LIMIT $actnum,1'; //error_log($q); $ret=(int)$wpdb->get_var($q); return $ret; } function bp_feedbackr_get_fb_actitiy_for_module($groupid,$module){ global $wpdb,$bp; $userid=$bp->loggedin_user->id; $userblogid=bp_feedbackr_get_userblog($groupid,$userid); $ret=0; $blogid_or=bp_feedbackr_get_group_blogid_or($groupid); $q="SELECT activityid FROM ".$bp->feedbackr->fb_table_name." WHERE module=$module AND has_peer_fbuser=0 AND ( ".$blogid_or.' ) AND NOT blogid='.$userblogid.' LIMIT 1'; //error_log($q); $ret=(int)$wpdb->get_var($q); return $ret; } function bp_feedbackr_is_peer_for_act($userid,$activityid){ global $wpdb,$bp; $ret=0; $q="SELECT count(userid) FROM ".$bp->feedbackr->peer_fb_user." WHERE userid=$userid AND activityid=$activityid"; //error_log($q); $c=(int)$wpdb->get_var($q); $ret=$c>0; return $ret; } function bp_feedbackr_get_fbuser_count($groupid,$userid,$module){ global $wpdb,$bp; $q="SELECT COUNT(*) FROM ".$bp->feedbackr->peer_fb_user." WHERE groupid=$groupid AND userid=$userid AND module=$module"; //error_log($q); return $wpdb->get_var($q); } function bp_feedbackr_set_haspeeruser_for_activity($act){ global $wpdb,$bp; $ret=0; //error_log('Set haspeeruser for:'.$act); $v=array('has_peer_fbuser' => 1); $vf=array('%d'); $w=array('activityid' => $act); $wf=array('%d'); $ret=$wpdb->update($bp->feedbackr->fb_table_name, $v,$w, $vf,$wf); //error_log($ret); return $ret; } function bp_feedbackr_add_fbuser($groupid,$userid,$activityid,$module){ global $wpdb,$bp; //error_log("bp_feedbackr_add_fbuser($groupid,$userid,$activityid,$module)"); $v=array('groupid' => $groupid, 'userid' => $userid, 'activityid' => $activityid, 'module' => $module); $t=array('%d','%d','%d','%d'); $wpdb->insert($bp->feedbackr->peer_fb_user, $v,$t); } function bp_feedbackr_is_peerfbuser_for_module($groupid,$userid,$moduleid){ global $wpdb,$bp; $q="SELECT count(activityid) FROM ".$bp->feedbackr->peer_fb_user." WHERE module=".$moduleid." AND groupid=".$groupid. " AND userid=".$userid; $ret=$wpdb->get_var($q); //error_log($q); //error_log($ret); return ($ret>0); } function bp_feedbackr_show_peermatrix($group_id,$show_stats=false,$showpg=0){ global $wpdb,$bp; $userid=$bp->loggedin_user->id; $numpeergroups = (int)groups_get_groupmeta( $group_id, 'bpfeedbackrnumpeergroups' ); $q='SELECT id,name FROM '.$bp->feedbackr->modules_table_name. " WHERE groupid='".$group_id."'"; //error_log($q); $modules=$wpdb->get_results($q); echo "\n"; $pg=0; while($pg<=$numpeergroups){ if($pg==0){ echo "\n"; echo "\n"; foreach($modules as $mod){ echo "\n"; } echo "\n"; } else { $pg_blogid_or=bp_feedbackr_get_peergroup_blogid_or($group_id,$pg); if($showpg && $pg==$showpg){ echo ''."\n"; echo "\n"; } else { echo "\n"; echo "\n"; } foreach($modules as $mod){ $m=bp_feedbackr_get_peermodus($group_id,$mod->id,$pg); if($m=="k"){ echo '\n"; } echo "\n"; } $pg++; } echo "\n"; if($show_stats){ echo ""; $blog_or=bp_feedbackr_get_group_blogid_or($group_id); foreach($modules as $mod){ $q='SELECT COUNT(id) FROM '.$bp->feedbackr->fb_table_name. ' WHERE module = '.$mod->id.' AND ( '.$blog_or.')'; //error_log($q); echo '"; } } echo "\n"; echo "
P/M".$mod->name."
☆ ".$pg."
".$pg."K'; //error_log("showpg: $showpg"); //error_log("pg: $pg"); //error_log("Peermatrix Kommentare"); if($showpg && $pg==$showpg){ // Kommentare if(bp_feedbackr_is_peerfbuser_for_module($group_id,$userid,$mod->id)){ $q='SELECT activityid FROM '.$bp->feedbackr->peer_fb_user. ' WHERE groupid = '.$group_id.' AND module = '.$mod->id.' AND userid='.$userid; $m_acts=$wpdb->get_results($q); //$m_act_id=$wpdb->get_var($q); $c_ok_count=0; foreach($m_acts AS $m_act){ $m_act_id=$m_act->activityid; //error_log("m_act_id: ".$m_act_id); $q='SELECT secondary_item_id FROM '.$bp->activity->table_name. ' WHERE id = '.$m_act_id; $m_post_id=$wpdb->get_var($q); //error_log("m_post_id: ".$m_post_id); if($m_post_id){ $q='SELECT primary_link FROM '.$bp->activity->table_name. ' WHERE id = '.$m_act_id; $m_post_link=$wpdb->get_var($q); //error_log("m_post_link: ".$m_post_link); $fb_blogid=bp_feedbackr_act_get_blogid($m_post_link); //error_log("fb_blogid: ".$fb_blogid); if($fb_blogid){ if(bp_feedbackr_check_user_comment_for_post($fb_blogid,$m_post_id,$userid)){ echo "✓"; $c_ok_count++; } } } } //error_log("c_ok_count: $c_ok_count"); if($c_ok_count>=2){ echo ""; } } // Blogbeitraege $userblogid=bp_feedbackr_get_userblog($group_id,$userid); $q='SELECT COUNT(*) FROM '.$bp->feedbackr->fb_table_name. ' WHERE blogid = '.$userblogid.' AND module = '.$mod->id; $m_done=$wpdb->get_var($q); //error_log($q); //error_log($m_done); if($m_done){ echo " (B -)"; } } } else { echo 'B'; if($showpg && $pg==$showpg){ // Blogbeitraege $userblogid=bp_feedbackr_get_userblog($group_id,$userid); $q='SELECT COUNT(*) FROM '.$bp->feedbackr->fb_table_name. ' WHERE blogid = '.$userblogid.' AND module = '.$mod->id; $m_done=$wpdb->get_var($q); //error_log($q); //error_log($m_done); if($m_done){ echo "✓"; } } } if($show_stats){ $q="SELECT COUNT(id) FROM ".$bp->feedbackr->fb_table_name. ' WHERE module = '.$mod->id.' AND ( '.$pg_blogid_or.' )'; //error_log($q); $bcount=$wpdb->get_var($q); $ccount=0; $q="SELECT activityid,blogid FROM ".$bp->feedbackr->fb_table_name. ' WHERE module = '.$mod->id.' AND ( '.$pg_blogid_or.' )'; //error_log($q); $acts=$wpdb->get_results($q); foreach($acts as $act){ $acount=bp_feedbackr_get_comment_count_for_post($act->blogid, bp_feedbackr_get_post_id_for_activity($act->activityid)); //error_log("acount1: $acount"); if($acount>1000){ //error_log("*****************************##################################"); //error_log("BlogID: ".$act->blogid); //error_log("ActID: ".$act->activityid); //error_log("PostID: ".bp_feedbackr_get_post_id_for_activity($act->activityid)); } $ccount+=$acount; //error_log("acount: $acount"); //error_log("ccount: $ccount"); } echo "
(☆".(int)$bcount.", ✍".(int)$ccount.")"; } echo "
 '; echo '☆'.(int)$wpdb->get_var($q); $q="SELECT activityid,blogid FROM ".$bp->feedbackr->fb_table_name. ' WHERE module = '.$mod->id.' AND ( '.$blog_or.')'; //error_log($q); $ccount=0; $acts=$wpdb->get_results($q); foreach($acts as $act){ $acount=bp_feedbackr_get_comment_count_for_post($act->blogid, bp_feedbackr_get_post_id_for_activity($act->activityid)); if($acount>1000){ //error_log("*****************************##################################"); //error_log("BlogID: ".$act->blogid); //error_log("ActID: ".$act->activityid); //error_log("PostID: ".bp_feedbackr_get_post_id_for_activity($act->activityid)); } $ccount+=$acount; //error_log("acount: $acount"); //error_log("ccount: $ccount"); } echo " ✍".(int)$ccount; echo "
\n
"; echo "K = ". bp_feedbackr_matrix_text_k($group_id)."
"; echo "B = ". bp_feedbackr_matrix_text_b($group_id)."
"; } function bp_feedbackr_get_moderatorname($group_id){ $modname = ""; $modname = groups_get_groupmeta( $group_id, 'bpfeedbackrmoderatorname' ); if(strlen($modname)<2){ $modname="VL-DozentIn"; } return $modname; } function bp_feedbackr_get_dozname($group_id){ $dozname=""; $dozname = groups_get_groupmeta( $group_id, 'bpfeedbackrdozname' ); if(strlen($dozname)<2){ $dozname="VL-LeiterIn"; } return $dozname; } function bp_feedbackr_matrix_text_k($groupid){ $matrix_text_k = groups_get_groupmeta( $groupid, 'bpfeedbackrmatrixtextk' ); if(strlen($matrix_text_k)<2){ $matrix_text_k="Kommentierung (Pflicht)"; } return $matrix_text_k; } function bp_feedbackr_matrix_text_b($groupid){ $matrix_text_b = groups_get_groupmeta( $groupid, 'bpfeedbackrmatrixtextb' ); if(strlen($matrix_text_b)<2){ $matrix_text_b="Beitrag (von den 8 Zuordnungen, können Sie 4 wählen)"; } return $matrix_text_b; } function bp_feedbackr_get_group_blogid_or($group_id){ global $wpdb,$bp; $ret=""; $q="SELECT blogid FROM ".$bp->feedbackr->table_name. ' WHERE groupid = '.$group_id; //error_log($q); $pgusers=$wpdb->get_results($q); $n=0; foreach($pgusers as $pguser){ if(!bp_feedbackr_is_vablog($pguser->blogid)){ if($n!=0)$ret.=" OR"; $ret.=" blogid = ".$pguser->blogid; $n=1; } } return $ret; } function bp_feedbackr_get_peergroup_userid_or($group_id,$peergroup){ global $wpdb,$bp; $ret=""; $q="SELECT userid FROM ".$bp->feedbackr->table_name. ' WHERE groupid = '.$group_id.' AND peergroup = '.$peergroup; $pgusers=$wpdb->get_results($q); $n=0; foreach($pgusers as $pguser){ if($n!=0)$ret.=" OR"; $ret.=" userid = ".$pguser->userid; $n=1; } return $ret; } function bp_feedbackr_get_peergroup_blogid_or($group_id,$peergroup){ global $wpdb,$bp; $ret=""; $q="SELECT blogid FROM ".$bp->feedbackr->table_name. ' WHERE groupid = '.$group_id.' AND peergroup = '.$peergroup; $pgusers=$wpdb->get_results($q); $n=0; foreach($pgusers as $pguser){ if($n!=0)$ret.=" OR"; $ret.=" blogid = ".$pguser->blogid; $n=1; } return $ret; } function bp_feedbackr_get_peermodus($group_id,$peermodule,$peergroup){ global $wpdb,$bp; $q='SELECT modus FROM '.$bp->feedbackr->peer_matrix_table_name. " WHERE groupid='".$group_id."'". " AND peermodule='".$peermodule."'". " AND peergroup='".$peergroup."';"; return $wpdb->get_var($q); } function bp_feedbackr_get_peergroup_commentmodules($group_id,$peergroup){ global $wpdb,$bp; $q='SELECT peermodule FROM '.$bp->feedbackr->peer_matrix_table_name. ' WHERE groupid='.$group_id.' AND peergroup='.$peergroup." AND modus LIKE 'k'"; //error_log($q); return $wpdb->get_results($q); } function bp_feedbackr_create_peermatrix($group_id){ global $wpdb,$bp; //error_log("Start2 create_peermatrix($groupid)"); $numpeergroups = (int)groups_get_groupmeta( $group_id, 'bpfeedbackrnumpeergroups' ); $q='DELETE FROM '.$bp->feedbackr->peer_matrix_table_name.' WHERE groupid='.$group_id; //error_log($q); $wpdb->query($q); $q='SELECT id,name FROM '.$bp->feedbackr->modules_table_name. " WHERE groupid='".$group_id."'"; //error_log($q); $modules=$wpdb->get_results($q); $kg=1; foreach($modules as $mod){ //error_log(print_r($mod,true)); $pg=1; $v=array(); $t=array('%d','%d','%d','%s'); while($pg<=$numpeergroups){ //error_log("pg: $pg"); //error_log("kg: $kg"); $modus='a'; if($pg==$kg)$modus='k'; //error_log("modus: $modus"); $v['groupid'] = $group_id; $v['peermodule'] = $mod->id; $v['peergroup'] = $pg; $v['modus'] = $modus; //error_log("Insert:"); //error_log(print_r($v,true)); $wpdb->insert($bp->feedbackr->peer_matrix_table_name,$v,$t); $pg++; } $kg++; if($kg>$numpeergroups)$kg=1; } } function bp_feedbackr_get_comment_count_for_post($blog_id,$post_id){ global $wpdb,$bp; //$wpdbobj = clone $wpdb; //$wpdb->blogid = $blog_id; //$wpdb->set_prefix( $wpdb->base_prefix ); $q="SELECT count(comment_ID) FROM ". $wpdb->base_prefix.$blog_id."_comments ". "WHERE comment_post_ID='".$post_id."' AND ". "(comment_approved ='1' OR comment_approved = '1')"; //error_log($q); $count=$wpdb->get_var($q); if($blog_id==977)error_log("comment coung for post: $blog_id,$post_id: $count"); /* switch_to_blog($blog_id); $gc_args=array('post_id' => $post_id); $comments = get_comments($gc_args); // $wpdb->flush(); restore_current_blog(); // $wpdb = clone $wpdbobj; return count($comments); */ return $count; } function bp_feedbackr_check_user_comment_for_post($blog_id,$post_id,$userid){ global $wpdb,$bp; //$wpdbobj = clone $wpdb; //$wpdb->blogid = $blog_id; //$wpdb->set_prefix( $wpdb->base_prefix ); $q="SELECT count(comment_ID) FROM ". $wpdb->base_prefix.$blog_id."_comments ". "WHERE comment_post_ID='".$post_id."' AND ". "(comment_approved ='1' OR comment_approved = '1') ". "AND user_id='".$userid."'"; //error_log($q); $count=$wpdb->get_var($q); return ($count>0); /* switch_to_blog($blog_id); $gc_args=array('post_id' => $post_id); $comments = get_comments($gc_args); restore_current_blog(); ////error_log(print_r($comments,true)); // $wpdb = clone $wpdbobj; $ret=false; if(count($comments)){ foreach($comments AS $comment){ //error_log("comment uid: ".$comment->user_id." userid: ".$userid); //error_log(print_r($comment,true)); if($comment->user_id == $userid){ $ret=true; } } } return $ret; */ } function bp_feedbackr_get_group_id( $blog_id ) { global $bp,$wpdb; $q='SELECT groupid FROM '.$bp->feedbackr->table_name. ' WHERE blogid = '.$blog_id; $group_id=$wpdb->get_var($q); //error_log("bp_feedbackr_get_group_id(".$blog_id.")=".$group_id."\n"); return $group_id; } function bp_feedbackr_act_get_blogid($link){ global $wpdb; $parsed_link=parse_url($link); $parsed_siteurl=parse_url(get_blog_option(1,'siteurl')); //error_log(print_r($parsed_link,true)); //error_log(print_r($parsed_siteurl,true)); $blogid=1; if($parsed_link['host']==$parsed_siteurl['host']){ $link_parts=explode( "/" , $parsed_link['path'] ); //error_log("link_parts:".print_r($link_parts,true)); $blogids=$wpdb->get_row("SELECT blog_id FROM wp_blogs WHERE path LIKE '/".$link_parts[1]."/'"); if($blogids) $blogid=$blogids->blog_id; } return $blogid; } /* function bp_feedbackr_act_get_blogid($link){ global $wpdb; $link=str_replace(get_blog_option(1,'siteurl'),"",$link); $blogid=1; if(strlen($link)>0){ $link_parts=explode( "/" , $link ); $blogids=$wpdb->get_row("SELECT blog_id FROM wp_blogs WHERE path LIKE '/".$link_parts[1]."/'"); if($blogids) $blogid=$blogids->blog_id; } return $blogid; } */ function bp_feedbackr_get_group_id_for_blog( $blog_id){ global $wpdb, $bp; if(!isset($bp->feedbackr->id)) bp_feedbackr_setup_globals(); $q = 'SELECT groupid FROM '.$bp->feedbackr->table_name. ' WHERE blogid = '.$blog_id; //error_log($q); $gid=$wpdb->get_var($q); //error_log("Found GroupID: ".$gid); return $gid; } function bp_feedbackr_get_feedback($act_id){ return stripslashes(bp_feedbackr_get_fbr_field($act_id,"comment")); } function bp_feedbackr_get_blogid_for_act($act_id){ global $wpdb,$bp; $q='SELECT blogid FROM '.$bp->feedbackr->fb_table_name. ' WHERE activityid = '.$act_id; return (int)$wpdb->get_var($q); } function bp_feedbackr_get_module_for_act($act_id){ global $wpdb,$bp; $q='SELECT module FROM '.$bp->feedbackr->fb_table_name. ' WHERE activityid = '.$act_id; return (int)$wpdb->get_var($q); } function bp_feedbackr_get_review_for_act($act_id){ global $wpdb,$bp; $q='SELECT review FROM '.$bp->feedbackr->fb_table_name. ' WHERE activityid = '.$act_id; return (int)$wpdb->get_var($q); } function bp_feedbackr_get_fbr_field($id,$field){ global $wpdb,$bp; $q='SELECT '.$field.' FROM '.$bp->feedbackr->fb_table_name. ' WHERE activityid = '.$id; return $wpdb->get_var($q); } function bp_feedbackr_is_tutor(){ global $bp,$wpdb; $ret=false; $group=$bp->groups->current_group; $groupid = $group->id; $userid=$bp->loggedin_user->id; if($userid){ if(bp_feedbackr_count_fbgroup('blog')>0){ // wir haben bloggruppen $q='SELECT fbgroupid FROM '.$bp->feedbackr->fbgroups_tutors_table_name. ' WHERE ('. ' tutorid = '.$userid. ' OR tutorid2 = '.$userid. ' OR tutorid3 = '.$userid. ' OR keytutorid = '.$userid. ' )'; //error_log($q); $fbgroups=$wpdb->get_results($q); //error_log(print_r($fbgroups,true)); foreach($fbgroups AS $fbgroup){ $q='SELECT count(*) FROM '.$bp->feedbackr->groups_table_name. ' WHERE id='.$fbgroup.' AND bpgroupid='.$groupid; $c = $wpdb->get_var($q); //error_log($q); //error_log("c= ".(int)$c); if($c>0)$ret=true; } } else { $q='SELECT count(*) FROM '.$bp->feedbackr->table_name. ' WHERE groupid = '.$groupid.' AND ('. ' tutorid = '.$userid. ' OR tutorid2 = '.$userid. ' OR tutorid3 = '.$userid. ' OR keytutorid = '.$userid. ' )'; //error_log($q); $c = $wpdb->get_var($q); //error_log("c= ".(int)$c); if($c>0)$ret=true; } } return $ret; } function bp_feedbackr_get_userblog($groupid,$userid){ global $wpdb,$bp; $ret=0; $q='SELECT blogid FROM '.$bp->feedbackr->table_name.' '. 'WHERE groupid = '.$groupid.' AND '. 'userid = '.$userid. ' AND isvablog = 0'; //error_log($q); $ret=$wpdb->get_var($q); return $ret; } function bp_fb_reset_act_module($blogid,$groupid,$activityid){ global $wpdb,$bp; $ret=0; $mod_id=0; $v=array('module' => $mod_id); $vf=array('%d'); $w=array('activityid' => $activityid, 'blogid' => $blogid); $wf=array('%d','%d'); $ret=$wpdb->update($bp->feedbackr->fb_table_name, $v,$w, $vf,$wf); return $ret; } function bp_fb_set_act_module($tag,$blogid,$groupid,$activityid){ global $wpdb,$bp; $ret=0; $q='SELECT id FROM '.$bp->feedbackr->modules_table_name.' WHERE groupid = '.$groupid." AND tag like '%".$tag->name."%'"; //error_log($q); $mod_id=$wpdb->get_var($q); if($mod_id){ //error_log("Modul id: ".$mod_id); $v=array('module' => $mod_id); $vf=array('%d'); $w=array('activityid' => $activityid, 'blogid' => $blogid); $wf=array('%d','%d'); $ret=$wpdb->update($bp->feedbackr->fb_table_name, $v,$w, $vf,$wf); } return $ret; } function bp_feedbackr_get_userpeergroup($groupid,$userid,$blogid=0){ global $wpdb,$bp; $ret=0; $q='SELECT peergroup FROM '.$bp->feedbackr->table_name.' '. 'WHERE groupid = '.$groupid.' AND '. 'userid = '.$userid; //error_log($q); $ret=$wpdb->get_var($q); return $ret; } function bp_feedbackr_set_userpeergroup($groupid,$userid,$blogid=0,$peergroup){ global $wpdb,$bp; $ret=0; $v=array('peergroup' => $peergroup); $vf=array('%d'); $w=array('groupid' => $groupid, 'userid' => $userid); $wf=array('%d','%d'); $ret=$wpdb->update($bp->feedbackr->table_name, $v,$w, $vf,$wf); return $ret; } function bp_feedbackr_is_keytutor(){ global $bp,$wpdb; $ret=false; $group=$bp->groups->current_group; $groupid = $group->id; $userid=$bp->loggedin_user->id; if($userid){ $q='SELECT count(*) FROM '.$bp->feedbackr->table_name. ' WHERE groupid = '.$groupid.' AND '. ' keytutorid = '.$userid; //error_log($q); $c = $wpdb->get_var($q); //error_log("c= ".(int)$c); if($c>0)$ret=true; } return $ret; } function bp_feedbackr_count_fbgroup($fbg_type){ global $wpdb,$bp; $group=$bp->groups->current_group; $groupid = $bp->groups->current_group->id; $ret=0; $q='SELECT id FROM '.$bp->feedbackr->groups_table_name. " WHERE type='".$fbg_type."' AND bpgroupid=".$groupid; $fbg_groups=$wpdb->get_results($q); $ret=count($fbg_groups); return $ret; } function bp_feedbackr_get_fbgroups($fbg_type){ global $wpdb,$bp; $group=$bp->groups->current_group; $groupid = $bp->groups->current_group->id; $ret=0; $q='SELECT id FROM '.$bp->feedbackr->groups_table_name. " WHERE type='".$fbg_type."' AND bpgroupid=".$groupid; $fbg_groups=$wpdb->get_results($q); $ret=$fbg_groups; return $ret; } function bp_feedbackr_create_fbgroup($fbg_name, $fbg_type){ global $wpdb,$bp; $group=$bp->groups->current_group; $groupid = $bp->groups->current_group->id; $ret=0; if(!bp_feedbackr_find_fbgroup($fbg_name,$fbg_type)){ $v=array('bpgroupid' => $groupid, 'type' => $fbg_type, 'name' => $fbg_name); $t=array('%d','%s','%s'); $wpdb->insert($bp->feedbackr->groups_table_name, $v,$t); $ret=bp_feedbackr_find_fbgroup($fbg_name,$fbg_type); } return $ret; } function bp_feedbackr_find_fbgroup($fbg_name, $fbg_type){ global $wpdb,$bp; $ret=0; $group=$bp->groups->current_group; $groupid = $bp->groups->current_group->id; $q='SELECT id FROM '.$bp->feedbackr->groups_table_name. " WHERE name = '".$fbg_name."' and type='".$fbg_type."' and bpgroupid=".$groupid; $fbg_groups=$wpdb->get_results($q); if(count($fbg_groups)){ $ret=$fbg_groups[0]->id; } return $ret; } function bp_feedbackr_get_fbgroup_name($fbg_id, $fbg_type){ global $wpdb,$bp; $ret=0; $group=$bp->groups->current_group; $groupid = $bp->groups->current_group->id; $q='SELECT name FROM '.$bp->feedbackr->groups_table_name. " WHERE id = '".$fbg_id."' and type='".$fbg_type."' and bpgroupid=".$groupid; $fbg_groups=$wpdb->get_results($q); if(count($fbg_groups)){ $ret=$fbg_groups[0]->name; } return $ret; } function bp_feedbackr_get_tutorid_for_fbgroup($fbgroup,$tutorfield='keytutorid'){ global $wpdb,$bp; $ret=0; $group=$bp->groups->current_group; $groupid = $bp->groups->current_group->id; $q=' SELECT '.$tutorfield.' FROM '.$bp->feedbackr->fbgroups_tutors_table_name. ' WHERE fbgroupid ='.$fbgroup; $ret=(int)$wpdb->get_var($q); return $ret; } function bp_feedbackr_get_fbgroup_for_blog($blogid){ global $wpdb,$bp; $ret=0; $group=$bp->groups->current_group; $groupid = $bp->groups->current_group->id; $q=' SELECT bloggroup FROM '.$bp->feedbackr->table_name. ' WHERE blogid='.$blogid.' AND groupid='.$groupid; //error_log($q); $blog_groups=$wpdb->get_results($q); //error_log(print_r($blog_groups,true)); if(count($blog_groups)){ $ret=$blog_groups[0]->bloggroup; } return $ret; } function bp_feedbackr_is_tutor_for_blog($blogid){ global $bp,$wpdb; $ret=false; $group=$bp->groups->current_group; $groupid = $group->id; $userid=$bp->loggedin_user->id; //error_log("bp_feedback_is_tutor_for_blog($blogid)"); if($userid){ if(bp_feedbackr_count_fbgroup('blog')>0){ // wir haben bloggruppen //error_log("bloggorups mode..."); $fbgroup=bp_feedbackr_get_fbgroup_for_blog($blogid); //error_log("feedbackr_group fbgroup=".$fbgroup); if($fbgroup){ $tid=bp_feedbackr_get_tutorid_for_fbgroup($fbgroup,'keytutorid'); //error_log("keytutorid: $tid, userid: $userid"); if($tid==$userid){ $ret=true; } else { $tid=bp_feedbackr_get_tutorid_for_fbgroup($fbgroup,'tutorid'); //error_log("tutorid: $tid, userid: $userid"); if($tid==$userid){ $ret=true; } else { $tid=bp_feedbackr_get_tutorid_for_fbgroup($fbgroup,'tutorid2'); //error_log("tutor2id: $tid, userid: $userid"); if($tid==$userid){ $ret=true; } else { $tid=bp_feedbackr_get_tutorid_for_fbgroup($fbgroup,'tutorid3'); //error_log("tutorid: $tid, userid: $userid"); if($tid==$userid){ $ret=true; } } } } } } else { $q='SELECT count(*) FROM '.$bp->feedbackr->table_name. ' WHERE blogid = '.$blogid.' AND groupid = '.$groupid.' AND ('. ' tutorid = '.$userid. ' OR tutorid2 = '.$userid. ' OR tutorid3 = '.$userid. ' OR keytutorid = '.$userid. ' )'; //error_log($q); $c = (int)$wpdb->get_var($q); //error_log("c= ".$c); if($c>0)$ret=true; } } //error_log("ret=".(int)$ret); return $ret; } function bp_feedbackr_is_keytutor_for_blog($blogid){ global $bp,$wpdb; $ret=false; $group=$bp->groups->current_group; $groupid = $group->id; $userid=$bp->loggedin_user->id; if($userid){ if(bp_feedbackr_count_fbgroup('blog')>0){ // wir haben bloggruppen $fbgroup=bp_feedbackr_get_fbgroup_for_blog($blogid); if($fbgroup){ $ktid=bp_feedbackr_get_tutorid_for_fbgroup($fbgroup,'keytutorid'); //error_log("keytutorid: $ktid, userid: $userid"); if($ktid==$userid){ $ret=true; } } } else { $q='SELECT count(*) FROM '.$bp->feedbackr->table_name. ' WHERE blogid = '.$blogid.' AND groupid = '.$groupid.' AND ('. ' keytutorid = '.$userid. ')'; //error_log($q); $c = (int)$wpdb->get_var($q); //error_log("c= ".(int)$c); if($c>0)$ret=true; } } return $ret; } function bp_feedbackr_is_dozent(){ global $bp; return $bp->is_item_admin; }