PHP Classes
Icontem

File: CookieObjects.php


  Search   All class groups All class groups   Latest entries Latest entries   Top 10 charts Top 10 charts   Newsletter Newsletter   Blog Blog   Forums Forums   Help FAQ Help FAQ  
  Login   Register  
Recommend this page to a friend! ReTweet ReTweet Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Guillermo de Jesus Perez Chavero  >  Cookie Objects Class  >  CookieObjects.php  
File: CookieObjects.php
Role: Class source
Content type: text/plain
Description: souce code
Class: Cookie Objects Class
Store and retrieve composite data items in cookies
 

Contents

Class file image Download
<?php 
#############################################################
#
# CookieObject Class
#
#       version 0.1
#        License GPL
#
# (c) 2004 Guillermo de Jesus Perez Chavero
#        E-mail: chavero81@yahoo.es
#        Description: allow you to add "n" Single Objects with  "m" Items, and you can set a tipe off objects, all into a cookie
#        Example:
#        My objects:
#            - Cup: Color, size, type
#            - plate: Color, size, Type
#            - spoon: Color, size, Type
#
#        Set cookie
#        $cookie_k = new CookieObjects("cookie_kitchen",'Table');
#        $cookie_k->NewObject();
#        $cookie_k->addItem( "Cup" );
#        $cookie_k->addItem( "Red" );
#        $cookie_k->addItem( 10 );
#        $cookie_k->addItem( "porcelain" );
#        $cookie_k->NewObject();
#        $cookie_k->addItem( "Plate" );
#        $cookie_k->addItem( "White" );
#        $cookie_k->addItem( 11 );
#        $cookie_k->addItem( "porcelain" );
#        $cookie_k->NewObject();
#        $cookie_k->addItem( "Spoon" );
#        $cookie_k->addItem( "silver" );
#        $cookie_k->addItem( 14 );
#        $cookie_k->addItem( "silver" );
#
#        Read cookie
#        $cookie_k = new CookieObjects("cookie_kitchen",'Table');
#        if ($cookie_k->Exist()) {
#            $cookie_k->ReadCookie();
#            $cookie_k->ParseCookie();
#            echo "<br>Type: ".$$cookie_k->GetOType();
#            for ($i = 0; $i<$cookie_k->CountObjects(); $i++) {
#                echo "<br>Object: $i ";
#                for ($j = 0; $j<$cookie_k->CountItemss() ; $j++) {
#                    echo '$cookie_k->PData[$i][$j].' ';
#                }
#            }
#        }
#
#        Delete a object : plate
#        $cookie_k->deleteObject(0,"plate");
#
#        Remove a cookie
#        $cookie_k->RemoveCookie();
#
#        -> Have fun !!! :D
#        
##############################################################
class CookieObjects {
        const     
Tokenini 'XXXXX';
        const     
TokenObject 'YYYYY';
        const     
TokenData 'ZZZZZ';
        
private $Cookie_Name '';
        
private $Data '';
        
private $CountO 0;
        
private $CountI 0;
        
private $OType;
        
public     $PData = array();

        
#Constructor I
        
public function __construct$Cookie_Name $OType ) {
            
$this->Cookie_Name $Cookie_Name;
            
$this->SetOTypeAndClear$OType );
        }
//Constructor I

        #Sobre escribe el OType / overwrite Object type
        
public function SetOTypeAndClear $OType ) {
            
$this->ClearData();
            
$this->OType $OType;
            
$this->Data $OType CookieObjects::Tokenini;
        }

        
#permite conocer si existe la cookie / Allow to know if a cookie exist
        
public function Exist() {
            
try {
                if (isset(
$_COOKIE[$this->Cookie_Name])) return true;
            }
            
catch Exception $e ) {
                echo 
"Error - function Exist().";
                return 
false;
            }
            return 
false;
        }
//Exist

        #Permite crear/Sobrescribir la cookie // Create/overwrite a cookie
        
public function CreateCookie $Overwrite ) {
            
try {
                if (
$Overwrite) {
                    if(
setcookie ($this->Cookie_Name,$this->Data)==TRUE) return true;
                }
                else { 
                    if (
$this->Exist()) return false;
                    else if(
setcookie ($this->Cookie_Name,$this->Data)==TRUE) return true;
                }
            }
            
catch Exception $e ) {
                echo 
"Error - function CreateCookie($Overwrite).";
                return 
false;
            }            
            return 
false;
        }
//Create
        
        #Remueve una cookie / Remove the cookie
        
public function RemoveCookie () {
            
try {
                if(
setcookie ($this->Cookie_Name""time() - 3600)==TRUE) {
                    
$this->ClearData();
                    return 
true;
                }
            }
            
catch Exception $e ) {
                echo 
"Error - RemoveCookie().";
                return 
false;
            }
            return 
false;
        }
//Create
        
        #Borra todos los datos / Clear all data
        
public function ClearData() {
             
$this->OType ""
             
$this->Data "";
             
$this->PData nil;
             
$this->CountO 0;
             
$this->CountI 0;
        }
//ClearData
        
        #Lee el contenido de la cookie / Read the cookie
        
public function ReadCookie () {
            
try {
                if (
$this->Exist()) {
                    
$this->Data $_COOKIE[$this->Cookie_Name];
                    return 
true;
                }
            }
            
catch Exception $e ) {
                echo 
"Error - ReadCookie().";
                return 
false;
            }
            return 
false;
        }
//ReadCookie
        
        #obtiene los resultados en un arreglo / Get the data into array (DATA)
        
public function ParseCookie () {
            
try {
                
$this->PData = array();
                
$Tokenini explodeCookieObjects::Tokenini $this->Data );  //Extract the Data OType & Objects
                
$this->OType $Tokenini[0];
                if (
$Tokenini[1]!="") {
                    
$Objects explodeCookieObjects::TokenObject $Tokenini[1] );  //Extract the Data SingleObj 1 & Graphic 2
                    
$this->CountO sizeof ($Objects);
                    foreach (
$Objects as $SingleObj) {
                        
$Items explodeCookieObjects::TokenData $SingleObj );  //Extract the Data SingleObj 1 & Graphic 2
                        
$this->CountI sizeof ($Items);
                        
array_push ($this->PData$Items);
                    }
                }
                else 
$this->CountO 0;
            }
            
catch Exception $e ) {
                echo 
"Error - ParseCookie().";
                return 
false;
            }
        }
//ParseCookie
        
        #Nos indica el tipo de objeto // return the object type
        
public function GetOType() {
            return 
$this->OType;
        }
//GETOType
        
        #regresa el numero de graficas contenidas / Count the objects
        
public function CountObjects() {
            return 
$this->CountO;
        }
//CountObjects
        
        #regresa el numero de items contenidas, debe de ser constante para todos / Count the items it must be equal for all objects
        
public function CountItems() {
            return 
$this->CountI;
        }
//CountItems
        
        #Agrega el token para reconocer que existe un nuevo objecto / allow to add a new object into the cookie
        
public function NewObject() {
            if (
$this->CountO>0$this->Data .= CookieObjects::TokenObject;
            
$this->CountO++;
            
$this->CountI 0;
        }
//NewObject

        #agrega el token y el valor del item // add a item for object "It must be equal (number of items) for all objects"
        
public function AddItem$Item ) {
            if (
$this->CountI>0)    $this->Data .= CookieObjects::TokenData $Item;
            else     
$this->Data .= $Item;
            
$this->CountI++;
            return 
true;
        }
//addItem
        
        #borra un objeto donde coincida el valor dependiendo de index de un item / Remove the object with a value of a item (index of item)
        
public function DeleteObject $Index$Value ) {
            
try {
                
$this->ParseCookie();
                
$Size_i $this->CountO;
                
$Size_j $this->CountI;
                
$this->CountO 0;
                
$this->CountI 0;
                
$this->Data $this->OTypeCookieObjects::Tokenini;
                for ( 
$i=0$i<$Size_i$i++) {
                    if (
$this->PData[$i][$Index]==$Value) {}
                    else {
                        
$this->NewObject();
                        for (
$j=0$j<$Size_j$j++) {
                            
$this->AddItem$this->PData[$i][$j] );
                        }
                    }
                }
                
$this->ParseCookie();
            }
            
catch Exception $e ) {
                echo 
"Erro - deleteItem ( $Index, $Value )";
                return 
false;
            }
        }
//deleteItem
        
        #Permite la imprecion en sobrecarga
        
public function __toString() {
            return 
$this->Data;
        }
//__toString
        
        #Retorna la version de la clase
        
final function Version()  {
            return 
'CookieObject Class - Version 0.1';
        }

}
//class MySQLClass
?>

 
  Advertise on this site Advertise on this site   Site map Site map   Statistics Statistics   Site tips Site tips   Privacy policy Privacy policy   Contact Contact  

For more information send a message to :
info at phpclasses dot org.
Copyright (c) Icontem 1999-2009 PHP Classes - PHP Class Scripts
  PHP Book Reviews - Reviews of books and other products