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

Class: GALFilm

Source Location: /libgallue/film.inc.php

Class Overview

GALRow
   |
   --GALTableRow
      |
      --GALFilm

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

A GALFilm 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 film.

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

The first time the comments property is accessed, this object variable is initialized with a GALCommentIterator on all user comments about this film. 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 244]

Link to GALGallery object.



Tags:

access:  protected

Type:   GALGallery


[ Top ]

$_images =  false

[line 255]

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

Cache membership of visible images.

The first time the visibleImages property is accessed, this object variable is initialized with a GALImageIterator on all images of this film which are 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 288]

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

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



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

Parameters:

GALGallery   $glb   Used to initialize the $_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 canEdit [line 567]

bool canEdit( GALUser $user)

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



Tags:

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


Parameters:

User   $user   The user whose privileges are checked.

[ Top ]

method canView [line 553]

bool canView( GALUser $user)

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



Tags:

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


Parameters:

User   $user   The user whose privileges are checked.

[ Top ]

method countComments [line 456]

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

Counts user comments about this film.

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

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

Counts images which are member of this film.

It adds 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 523]

void delete( [bool $super = false])

Deletes this film.

Removes all images from this film and set their film property to the default film; then deletes all user comments about this film.




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]

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 GALFilm::__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 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 loadComments [line 403]

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

Loads user comments about this film.

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 film.

It adds 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 511]

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 set [line 494]

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. It will be converted to string.
bool   $super   If set to TRUE, access control is overridden.

[ Top ]

method __get [line 306]

string __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 property'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 479]

void __set( string $field, mixed $value)

Magic method to set properties.

It internally uses 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:41 +0200 by phpDocumentor 1.3.0RC6