Skip to:
Content
Pages
Categories
Search
Top
Bottom

Group website stats API on BuddyPress


  • commium
    Participant

    @commium

    WP 5.3.2
    Buddypress 5.1.2
    Website https://connect.commium.fr/
    Theme : Woffice wordpress

    Hi guys,

    I’m beginner developper and i have a problem which i’m trying to solve on my website, i created a function to show groups website statistics on their group -> stats tab on group page, the thing work perfectly with an embedded public stats API, but i want to show theses tab on user dashboard too, not only on group -> stats tab, so i tried to copy past the function display() but it didn’t work, the $setting variable and $setting2 variable are NULL..

    Someone can help me on this problem please, you can check the code below for more informations :

    function stats() {
    	
    if ( bp_is_active( 'groups' ) ) :
     
    class Entreprise_Statistiques extends BP_Group_Extension {
        /**
         * Your __construct() method will contain configuration options for 
         * your extension, and will pass them to parent::init()
         */
        function __construct() {
            $args = array(
                'slug' => 'entreprise_statistiques',
                'name' => 'Statistiques',
            );
            parent::init( $args );
        }
     
        /**
         * display() contains the markup that will be displayed on the main 
         * plugin tab
         */
    
    	
    	
        function display( $group_id = NULL ) {
    		$setting = groups_get_groupmeta( $group_id, 'entreprise_statistiques_setting' );
    		$setting2 = groups_get_groupmeta( $group_id, 'entreprise_statistiques_setting2' );
            $group_id = bp_get_group_id();
    		?>
    			
    		<script>
    		StatHatEmbed=new function(){function d(){var a=document.getElementsByTagName("script");return a[a.length-1]}function e(a,b){var d=document.createElement("script"),c="//www.stathat.com/embed/"+a+"/"+b.s1;b.dev&&(c="//localhost:8081/embed/"+a+"/"+b.s1);b.s2&&(c+="/"+b.s2);b.s3&&(c+="/"+b.s3);c+="?w="+b.w+"&h="+b.h+"&tf="+b.tf;b.style&&(c+="&style="+b.style);b.dev&&(c+="&dev=1");b.title&&(c+="&title="+b.title);d.src=c;d.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(d)}function f(a){return[a.s1,
    		a.s2,a.s3,a.w,a.h,a.tf,a.style].join("_")}this.render_graph=function(a){DIV_ID="statd_embed_graph_"+f(a);d().insertAdjacentHTML("AfterEnd","<div id='"+DIV_ID+"' style='display:none'></div>");e("graph",a)};this.render_histogram=function(a){DIV_ID="statd_embed_histogram_"+f(a);d().insertAdjacentHTML("AfterEnd","<div id='"+DIV_ID+"' style='display:none'></div>");e("histogram",a)};this.render_data=function(a){DIV_ID="statd_embed_data_"+f(a);d().insertAdjacentHTML("AfterEnd","<div id='"+DIV_ID+"' style='display:none'></div>");
    		e("data",a)};this.render_table=function(a){DIV_ID="statd_embed_table_"+f(a);d().insertAdjacentHTML("AfterEnd","<div id='"+DIV_ID+"' style='display:none'></div>");e("table",a)};this.render_text=function(a){DIV_ID=["statd_embed_text",a.s1,a.u].join("_");d().insertAdjacentHTML("AfterEnd","<div id='"+DIV_ID+"' style='display:none'></div>");e("text",a)};this.render=function(a){a.tf||(a.tf="week_compare");a.kind||(a.kind="graph");switch(a.kind){case "graph":this.render_graph(a);break;case "histogram":this.render_histogram(a);
    		break;default:this.render_graph(a)}}};
    
    		</script>
    		<div id="stats">
    		<script>StatHatEmbed.render({s1: '<?php echo($setting); ?>', w: 760, h: 235, tf:'month_compare', style:'fill', title:'<?php echo($setting2); ?>'});</script>
    		</div>
    
    		<?php
    		
    		if ($setting == NULL) {
    			echo ("Aucun site internet détecté, merci de contacter l'équipe COMMIUM.");
    		}
        }
     
        /**
         * Création
         */
        function settings_screen( $group_id = NULL ) {
            $setting = groups_get_groupmeta( $group_id, 'entreprise_statistiques_setting' );
    		$setting2 = groups_get_groupmeta( $group_id, 'entreprise_statistiques_setting2' );
     
            ?>
    				<input type="text" name="entreprise_statistiques_setting2" id="entreprise_statistiques_setting2" placeholder="Nom d'entreprise"><?php echo esc_attr( $setting2 ) ?></input>
    				<input type="text" name="entreprise_statistiques_setting" id="entreprise_statistiques_setting"placeholder="Code suivi"><?php echo esc_attr( $setting ) ?></input>
            <?php
    			$settingInfo = $_POST['entreprise_statistiques_setting'];
    			$settingInfo2 = $_POST['entreprise_statistiques_setting2'];
        }
    	function settings_screen_save( $group_id = NULL ) {
    		$setting = '';
    		$setting2 = '';
    
    		if ( isset( $_POST['entreprise_statistiques_setting']) && isset($_POST['entreprise_statistiques_setting2'] ) ) {
    			$setting = $_POST['entreprise_statistiques_setting'];
    			$setting2 = $_POST['entreprise_statistiques_setting2'];
    		}
    
    		groups_update_groupmeta( $group_id, 'entreprise_statistiques_setting', $setting );
    		groups_update_groupmeta( $group_id, 'entreprise_statistiques_setting2', $setting2 );
    		}
    	}
    bp_register_group_extension( 'Entreprise_Statistiques' );
     
    endif; // if ( bp_is_active( 'groups' ) )
    }
    echo stats();
Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.
Skip to toolbar