SourceForge.net LogoPHPGallue
[ class tree: libgallue ] [ index: libgallue ] [ all elements ]

Class: GALCategory

Source Location: /libgallue/category.inc.php

Class Overview

GALRow
   |
   --GALTableRow
      |
      --GALCategory

Provide information about a category's content and association with other objects inside the gallery.


Variables

Methods


Inherited Variables

Inherited Methods

Class: GALTableRow

GALTableRow::__construct()
Initializes this object.
GALTableRow::delete()
Deletes this row from the database.
GALTableRow::getParent()
Returns the top level parent of this row.
GALTableRow::set()
Sets the specified field of this row to the specified value.
GALTableRow::__set()
Magic method to set a field of this row almost like a native PHP property.

Class: GALRow

GALRow::__construct()
Initializes a row.
GALRow::countFields()
Returns the number of fields contained in a result.
GALRow::get()
Returns the value of a field.
GALRow::getData()
Provides access to the stored data.
GALRow::getFields()
Returns all fields contained in this result.
GALRow::getFlags()
Gets the flags of the given field.
GALRow::getLength()
Gets the length of the given field.
GALRow::getParent()
Returns the top level parent of an entity.
GALRow::getTable()
Gets the name of the table the given field is contained in.
GALRow::getType()
Gets the type of the given field.
GALRow::isField()
Checks if the given field is contained in a result.
GALRow::__destruct()
Deletes the stored data and sets $_dead to TRUE.
GALRow::__get()
Magic method to access this row's fields like native PHP properties.

Class Details

[line 246]
Provide information about a category's content and association with other objects inside the gallery.

A GALCategory provides access to information like title and commentary text, and informs about and creates associations with other gallery objects like membership of images or user comments made about the category.

This class provides various properties accessed via the magic methods GALCategory::__get() and GALCategory::__set(). Some of these properties correspond to database fields, some do not. The __get() and __set() methods internally use the GALCategory::get() and GALCategory::set() methods which provide access control - in contrast to the parent class's GALRow::get() and GALTableRow::set() methods. After performing the access control, these are used to read and write the properties corresponding to database fields. All properties corresponding to database fields are of type string, but instead database types are given here. (r indicates readable, w writable)

  1. Properties corresponding to database fields:
  • INTEGER UNSIGNED categoryID r The category's numerical ID, the primary key of the Categories table.
  • INTEGER UNSIGNED ownerID r The ID of the GALUser the category belongs to. Foreign key field from Users.ownerID.
  • INTEGER changeDate rw The UNIX timestamp of the moment the category was changed the last time.
  • INTEGER createDate rw The UNIX timestamp of the moment the category was created.
  • INTEGER tag rw A value that has no fixed meaning. It might be used to organize items beyond the structure of libgallue.
  • TINYINT permission rw The category's access permission, one of GAL_PERMISSION_LOCKED, GAL_PERMISSION_PRIVATE, GAL_PERMISSION_PROTECTED, GAL_PERMISSION_PUBLIC.
  • BOOL trashFlag rw A flag that indicates if the item is inside the trash bin.
  • INTEGER sortHint rw Used to put items in a defined order.
  • VARCHAR(255) title rw The category's title.
  • MEDIUMTEXT comment rw The category's commentary text.
  • ENUM ('ltr', 'rtl') direction rw The text direction.
2. Properties generated using database fields
  • GALUser owner (from ownerID) r The user the category belongs to.
3. Properties not corresponding to database fields.
  • images r New iterator on all images which are member of this category (see GALImage)
  • visibleImages r New iterator on all images which are member of this category and visible to the current user (see GALImage and GALImages::loadVisible())
  • comments r New iterator on all user comments made about this category (see GALComment).
The properties of the third kind are all iterators, so before working with them, you have to store them in a local variable. It is to be considered if one should provide these iterators with methods like getImagesIterator() and so on to make this clear.

Note that all "real" properties (called object variables in the following) start with an underscore so that they do not interfere with properties accessed using __get() and __set().




[ Top ]


Class Variables

$_comments =  false

[line 285]

Cache user comments about this category.

The first time the comments property is accessed, this object variable is initialized with a GALCommentIterator on all user comments about this category. All requests for the comments property then just return a new iterator on this variable.




Tags:

access:  protected
see:  GALResultIterator::iterator()

Type:   GALCommentIterator


[ Top ]

$_glb =  false

[line 251]

Link to GALGallery object.



Tags:

access:  protected

Type:   GALGallery


[ Top ]

$_images =  false

[line 262]

Cache membership of images.

The first time the images property is accessed, this object variable is initialized with a GALImageIterator on all images which are member of this category. All requests for the images property then just return a new iterator on this variable.




Tags:

access:  protected
see:  GALResultIterator::iterator()

Type:   GALImageIterator


[ Top ]

$_vImages =  false

[line 274]

Cache membership of visible images.

The first time the visibleImages property is accessed, this object variable is initialized with a GALImageIterator on all images which are member of this category and visible to the current user. All requests for the visibleImages property then just return a new iterator on this variable.




Tags:

access:  protected
see:  GALResultIterator::iterator()

Type:   GALImageIterator


[ Top ]



Class Methods


constructor __construct [line 296]

GALCategory __construct( GALGallery $glb, $result, &$data, $table, array $data)

Initialize This constructor is not intended to be called by library users, it is called inside GALCategoryIterator::fetch().



Overrides GALTableRow::__construct() (Initializes this object.)

Parameters:

GALGallery   $glb   Used to initialize the GALCategory::$_glb object variable.
GALResult   $result   Used in parent constructor GALTableRow::__construct().
array   $data   Used in parent constructor GALTableRow::__construct().
GALTable   $table   Used in parent constructor GALTableRow::__construct().
   &$data  

[ Top ]

method addImage [line 583]

void addImage( GALImage $image, [bool $super = false])

Add the specified image to this category.

Note that the semantic of permissions is different for categories: An AUTHOR can add his images to PROTECTED or PUBLIC categories which don't belong him.




Parameters:

GALImage   $image   The image to be added to this category.
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method canEdit [line 656]

bool canEdit( GALUser $user)

Check if the specified user has got the privilege to change the category's properties.

Note that all AUTHORs can add images to categories which are PROTECTED or PUBLIC.




Tags:

return:  True if the user can change the category, false otherwise.


Parameters:

User   $user   The user whose privileges are checked.

[ Top ]

method canView [line 639]

bool canView( GALUser $user)

Checks if the specified user has got the privilege to read the category's properties.



Tags:

return:  True if the user can see the category, false otherwise.


Parameters:

User   $user   The user whose privileges are checked.

[ Top ]

method countComments [line 475]

GALCommentIterator countComments( $expr, [GALOrder $order = ""], [string $limit = ""], [string $additional = ""], [bool $super = false])

Counts user comments about this category.

It adds a comparison expression and ordering by commentID to the arguments and passes them to GALTable::extendedCount().




Tags:



Parameters:

GALExpression   $expr  
GALOrder   $order   Can also be an empty string or a string containing sth. like "`title` DESC".
string   $limit  
string   $additional  
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method countImages [line 445]

GALImageIterator countImages( $expr, [GALOrder $order = ""], [string $limit = ""], [string $additional = ""], [bool $super = false])

Counts images which are member of this category.

It adds a specially crafted join, a comparison expression and ordering by imageID to the arguments and passes them to GALTable::extendedCount().




Tags:



Parameters:

GALExpression   $expr  
GALOrder   $order   Can also be an empty string or a string containing sth. like "`title` DESC".
string   $limit  
string   $additional  
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method delete [line 543]

void delete( [bool $super = false])

Deletes this category.

Remove all images from this category and force them to reload their category membership information; then delete all user comments about this category.




Overrides GALTableRow::delete() (Deletes this row from the database.)

Parameters:

bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method get [line 334]

string get( string $field, [bool $super = true])

Read a property via method call.

First of all access control is performed. If successful, properties not corresponding to database fields are handled by this method itself. Properties corresponding to database fields are delegated to the inherited GALRow::get() method. It might seem strange that overriding access control is the default. It is like it is because GALRow::__construct() called by GALCategory::__construct reads the row's primary key using the get() method. In our case the original get() method is overridden by the current one, so it has to work in this case without second parameter.




Tags:

return:  The property's value


Overrides GALRow::get() (Returns the value of a field.)

Parameters:

string   $field   The propertie's name
bool   $super   TRUE indicates privileged access overriding access control.

[ Top ]

method getID [line 371]

int getID( [ $super = false])

The value of the primary key field.

This method provides access to the primary key without knowing the name of the primary key field. This method is implemented by all classes whose tables have a single numerical primary key. At the moment it is only used in GALComments::add(). (Better: It was introduced for GALComments::add() ;-) )




Tags:

return:  The value of the primary key field.


Parameters:

   $super  

[ Top ]

method loadComments [line 417]

GALCommentIterator loadComments( $expr, [GALOrder $order = ""], [string $limit = ""], [string $additional = ""], [bool $super = false])

Loads user comments about this category.

It adds a comparison expression and ordering by commentID to the arguments and passes them to GALTable::extendedLoad().




Tags:



Parameters:

GALExpression   $expr  
GALOrder   $order   Can also be an empty string or a string containing sth. like "`title` DESC".
string   $limit  
string   $additional  
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method loadImages [line 387]

GALImageIterator loadImages( $expr, [GALOrder $order = ""], [string $limit = ""], [string $additional = ""], [bool $super = false])

Loads images which are member of this category.

It adds a specially crafted join, a comparison expression and ordering by imageID to the arguments and passes them to GALTable::extendedLoad().




Tags:



Parameters:

GALExpression   $expr  
GALOrder   $order   Can also be an empty string or a string containing sth. like "`title` DESC".
string   $limit  
string   $additional  
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method refresh [line 530]

void refresh( )

Force reloading cached information about membership of images and visible images and about user comments.

The information is reread on the next access of the property.




[ Top ]

method removeImage [line 613]

void removeImage( GALImage $image, [bool $super = false])

Remove the specified image from this category.

Note that the semantic of permissions is different for categories: An AUTHOR can remove his images from PROTECTED or PUBLIC categories which don't belong him.




Parameters:

GALImage   $image   The image to be removed from this category.
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method set [line 513]

void set( string $field, mixed $value, [bool $super = false])

Set a property via method call.

First of all access control is performed. If successful, properties not corresponding to database fields are handled by this method itself. Properties corresponding to database fields are delegated to the inherited GALTableRow::set() method. It also updates the changeDate property on every call.




Overrides GALTableRow::set() (Sets the specified field of this row to the specified value.)

Parameters:

string   $field   The propertie's name.
mixed   $value   The propertie's new value.
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method __get [line 314]

string __get( string $field)

Magic method to read properties.

It internally uses the GALCategory::get() method with enforced access control. Library users should not explicitly call the __get() method - it is good for nothing. If you want to read a property with a method call, use get() instead. That method also provides overriding access control if required.




Tags:

return:  The propertie's value.


Overrides GALRow::__get() (Magic method to access this row's fields like native PHP properties.)

Parameters:

string   $field   The requested propertie's name.

[ Top ]

method __set [line 498]

void __set( string $field, mixed $value)

Magic method to set properties.

It internally uses GALCategory::set() with enforced access control.




Overrides GALTableRow::__set() (Magic method to set a field of this row almost like a native PHP property.)

Parameters:

string   $field   The name of the property to set.
mixed   $value   The propertie's new value.

[ Top ]


Documentation generated on Wed, 16 Aug 2006 15:35:29 +0200 by phpDocumentor 1.3.0RC6