Location: PHPKode > projects > Floopo > floopo/lib/lib_visibility/visibility.php
<?php

//----------------------------------------------------------------------------
// This class will check the "visibility" of content
// blocks based on the following conditions
// 1) Logged in status of viewer
// 2) Viewers relationship with content (i.e. owner or guest)
// 3) Type of content
// More methods can be added and also additional vars to existing comps
//----------------------------------------------------------------------------

defined('BASEPATH') or die('You can not directly access this file');//check its within this framework

class Visibility {


    //___Set initial assumed states_____________________

    var $viewer_loggedin = 0; //not logged in
    var $viewer_username = NULL; //no user name
    var $viewer_is_admin = 0;
    var $content; //com_text etc
    var $content_owner = 0; //not owner
    var $stream = NULL; //no stream
    var $stream_exists = 0; //stream does not exist
    var $stream_type = '';
    






    //__Set up enviroment_______________________________
    function Visibility($content) {

        //Globals
        GLOBAL $incoming_stream, $stream_type; //set in calling component
        
        $this->stream_type = $stream_type;

        //set incoming stream
        if($incoming_stream == '' || $incoming_stream == 'public') {
            $this->stream = 'public';
        } else {
            $sql = "SELECT user_id FROM member_profile WHERE user_name = '$incoming_stream'"; //TODO - maybe check if active memeber
            if(mysql_num_rows(mysql_query($sql)) > 0) {
                $this->stream = $incoming_stream;
                $this->stream_exists = 1;
            } else {
                $this->stream = 'public';
            }
        }


        //Set Content type
        $this->content = $content;


        //admin viewer
        $this->viewer_is_admin = $_SESSION['admin'];
        
        //Is viewer logged
        if(isset($_SESSION["env_user_name"])) {
            $this->viewer_loggedin = 1;
            $this->viewer_username = $_SESSION["env_user_name"];
        }

        //Is viewer owner of the stream
        if($this->stream == $this->viewer_username) {
            $this->content_owner = 1;
        }

    }


    //___Updates Visibility Method (also for ComImages)__________________________________________
    function ComText() {

        global $stream;

        $loggedin_quicklinks = 0; // my favs, my stream etc
        $general_welcome_message = 0; //standard welcome
        $memebers_welcome_message = 0; //members welcome
        $members_dashboard = 0; //summary of members pub data
        $public_dashboard = 0; // signup today etc
        $followings_submenu = 0; // "following updates | following images"
        $favorites_submenu = 0; // "following updates | following images"
        $submenu = 1;
        $follow_me = 0; //follow me link
        $my_replies = 0; //replies link
        $delete_content = 0;




        //____While I am NOT logged in_____________________________________
        if($this->viewer_loggedin != 1) {
            $public_dashboard = 1;
        }


        //____Delete Links_____________________________________
            
            //I am admin
            if($this->viewer_is_admin == 1) {
                $delete_content = 1;
            }
            
            //I am owner
            if($this->content_owner == 1) {
             $delete_content = 1;
            }
            
            //remove delete links on all others sections (favs, replies, following) for none admin
            if($this->viewer_is_admin == 0) {
             if($this->stream_type == 'following_updates' || $this->stream_type == 'favorite_updates' || $this->stream_type == 'replies' || $this->stream_type == 'following_images' || $this->stream_type == 'favorite_images'){
			 $delete_content = 0;			 
              }
			}
			           
            
        //____While I am logged in_____________________________________
        if($this->viewer_loggedin == 1) {

            // general logged in links
            $loggedin_quicklinks = 1;

            //my replies links
            if($this->viewer_username == $this->stream) {
                $my_replies = 1;
            }

            //others follow links
            if($this->viewer_username != $this->stream) {
                $follow_me = 1;
            }

        }

        //________Public stream______________________________________________
        if($this->stream == 'public') {

            //general welcome
            $general_welcome_message = 1;
        }

        //____Specific stream_____________________________________
        if($this->stream_exists == 1) {

            //members dashboard
            $members_dashboard = 1;

            //members welcome
            $memebers_welcome_message = 1;

            //advanced sub-menu links
            $followings_submenu = 1;
            $favorites_submenu = 1;
        }





        //___________________Visibility array_____________________
        $com_text_visibility = array(
            'loggedin_quicklinks' => $loggedin_quicklinks,
            'general_welcome_message' => $general_welcome_message,
            'memebers_welcome_message' => $memebers_welcome_message,
            'members_dashboard' => $members_dashboard,
            'submenu' => $submenu,
            'followings_submenu' => $followings_submenu,
            'favorites_submenu' => $followings_submenu,
            'follow_me' => $follow_me,
            'my_replies' => $my_replies,
            'delete_content' => $delete_content,
            'public_dashboard' => $public_dashboard);

        return $com_text_visibility;

    }


    //___Followings Visibility Method__________________________________________
    function ComFollowings() {

        global $stream;
        global $stream_type; //following or followers

        $followings = 1; //main following html block in template
        $loggedin_quicklinks = 0; // my favs, my stream etc
        $general_page_header = 0; // e.g. "People following Fred"
        $followings_actions_follow = 0; // follow button/link
        $followings_actions_delete = 0; // delete button/link
        $submenu = 0; // the main submenu "updates | images | etc"
        $follow_me = 0; //follow me link
        $my_replies = 0; //replies link


        //____While I am NOT logged in_____________________________________
        if($this->viewer_loggedin != 1) {
            $public_dashboard = 1;
        }



        //___________The stream_____________________
        if($this->stream_exists == 1) {
            $members_dashboard = 1;
            $followings_submenu = 1;
            $general_page_header = 1;

            //____viewing own following
            if($this->viewer_username == $this->stream) {
                $followings_actions_delete = 1;
            }

            //____viewing own followers
            if($this->viewer_username == $this->stream && $stream_type == 2) {
                $followings_actions_follow = 1;
            }



        //____While I am logged in_____________________________________
        if($this->viewer_loggedin == 1) {

            //general logged in links
            $loggedin_quicklinks = 1;

            //others follow links
            if($this->viewer_username != $this->stream) {
                $follow_me = 1;
            }

            //my replies links
            if($this->viewer_username == $this->stream) {
                $my_replies = 1;
            }

             //actions on "followers"        
              if($this->viewer_username != $this->stream) {
                $followings_actions_follow = 1;
            }

           }

        }

        //count stream array
        if(count($stream) <= 0) {
            $followings = 0;
        }

        //___________________Visibility array_____________________
        $com_followings_visibility = array(
           'loggedin_quicklinks' => $loggedin_quicklinks,
           'members_dashboard' => $members_dashboard,
           'submenu' => $submenu,
           'followings' => $followings,
           'followings_actions_follow' => $followings_actions_follow,
           'followings_actions_delete' => $followings_actions_delete,
           'follow_me' => $follow_me,
           'my_replies' => $my_replies,
           'public_dashboard' => $public_dashboard);

        return $com_followings_visibility;

    }


}

?>
Return current item: Floopo