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

Class: GALGroup

Source Location: /libgallue/group.inc.php

Class Overview

GALRow
   |
   --GALTableRow
      |
      --GALGroup

Provide information about a group'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 243]
Provide information about a group's content and association with other objects inside the gallery.

A GALGroup 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 group.

This class provides various properties accessed via the magic methods GALGroup::__get() and GALGroup::__set(). Some of these properties correspond to database fields, some do not. The __get() and __set() methods internally use the GALGroup::get() and GALGroup::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 groupID r The group's numerical ID, the primary key of the Groups table.
  • INTEGER UNSIGNED ownerID r The ID of the GALUser the group belongs to. Foreign key field from Users.ownerID.
  • INTEGER changeDate rw The UNIX timestamp of the moment the group was changed the last time.
  • INTEGER createDate rw The UNIX timestamp of the moment the group 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 group'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 group's title.
  • MEDIUMTEXT comment rw The group'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 group belongs to.
3. Properties not corresponding to database fields.
  • images r New iterator on all images which are member of this group (see GALImage)
  • visibleImages r New iterator on all images which are member of this group and visible to the current user (see GALImage and GALImages::loadVisible())
  • comments r New iterator on all user comments made about this group (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 278]

Cache user comments about this group.

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




Tags:

access:  protected
see:  GALResultIterator::iterator()

Type:   mixed


[ Top ]

$_glb =  false

[line 247]

Link to GALGallery object



Tags:

access:  protected

Type:   mixed


[ Top ]

$_images =  false

[line 257]

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 group. All requests for the images property then just return a new iterator on this variable.




Tags:

access:  protected
see:  GALResultIterator::iterator()

Type:   mixed


[ Top ]

$_vImages =  false

[line 268]

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 group 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:   mixed


[ Top ]



Class Methods


constructor __construct [line 289]

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

Initialize.

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




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

Parameters:

GALGallery   $glb   Used to initialize the GALGroup::$_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 573]

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

Add the specified image to this group.

Note that the $position parameter is just a raw value and not the real position of the image.




Parameters:

GALImage   $image   The image to be added to this group.
int   $position   The new value of ImageInGroup.imagePosition.
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method canEdit [line 669]

bool canEdit( GALUser $user)

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



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 654]

bool canView( GALUser $user)

Check if the specified user has got the privilege to read the group's properties.



Tags:

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


Parameters:

User   $user   The user whose privileges are checked.

[ Top ]

method countComments [line 466]

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

Counts user comments about this group.

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 436]

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

Counts images which are member of this group.

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 534]

void delete( [bool $super = false])

Deletes this group.

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




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

Parameters:

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

[ Top ]

method get [line 326]

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

Reads a property via method call.

First of all it performs access control. 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 GALGroup::__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.




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 362]

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 getPosition [line 617]

int getPosition( GALImage $image, [bool $super = false])

Returns the position of the given GALImage.

Note that the returned position is just the raw value read from ImageInGroup.imagePosition. If the image isn't member of this group, this method returns FALSE.




Tags:

return:  The position of the image or false if not member of this group.


Parameters:

GALImage   $image   The image whose position is returned.
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method loadComments [line 408]

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

Loads user comments about this group.

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 378]

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

Loads images which are member of this group.

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 521]

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 637]

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

Remove the specified image from this group.



Parameters:

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

[ Top ]

method set [line 504]

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 setPosition [line 595]

void setPosition( GALImage $image, int $position, [bool $super = false])

Sets the position of the given GALImage.

Note that the $position parameter is just a raw value and not the real position. If the image isn't inside this group, nothing happens, not even an error message.




Parameters:

GALImage   $image   The image whose position is set.
int   $position   The imagePosition field of the ImageInGroup table.
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method __get [line 307]

mixed __get( string $field)

Magic method to read properties.

It internally uses the 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 489]

void __set( string $field, mixed $value)

Magic method to set properties It internally uses GALGroup::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:36:06 +0200 by phpDocumentor 1.3.0RC6