Pagefile class

Represents a single file item attached to a page, typically via a File Fieldtype.

Pagefile objects are contained by a Pagefiles object.


Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the Pagefile class also inherits all the methods and properties of: WireData and Wire.

Show class?             Show args?        

Common

NameReturnSummary 
Pagefile::__construct(Pagefiles $pagefiles, string $filename)
(nothing)Construct a new Pagefile 
Pagefile::basename()
stringReturns the basename of this Pagefile (name and extension, without disk path).
Can also be used as property: Pagefile::basename
 
Pagefile::description()
stringGet or set the file’s description (with multi-language support).
Can also be used as property: Pagefile::description
 
Pagefile::ext()
stringReturns the file’s extension - "pdf", "jpg", etc.
Can also be used as property: Pagefile::ext
 
Pagefile::filename()
stringReturns the full disk path name filename to the Pagefile.
Can also be used as property: Pagefile::filename
 
Pagefile::filesize()
intReturns the filesize in number of bytes.
Can also be used as property: Pagefile::filesize
 
Pagefile::filesizeStr()
stringReturns the filesize in a formatted, output-ready string (i.e. "123 kB")
Can also be used as property: Pagefile::filesizeStr
 
Pagefile::hash()
stringReturn a unique MD5 hash representing this Pagefile.
Can also be used as property: Pagefile::hash
 
Pagefile::httpUrl()
stringReturn the web accessible URL (with scheme and hostname) to this Pagefile.
Can also be used as property: Pagefile::httpUrl
Pagefile::name string Returns the filename without the path, same as the "basename" property. 
Pagefile::noCacheURL()
string
Pagefile::url()
stringReturn the web accessible URL to this Pagefile.
Can also be used as property: Pagefile::url
 

Traversal

For the most part you’ll want to traverse from the parent Pagefiles object than these methods.

NameReturnSummary 
Pagefile::getNext()
Pagefile nullReturn the next sibling Pagefile in the parent Pagefiles, or NULL if at the end. 
Pagefile::getPrev()
Pagefile nullReturn the previous sibling Pagefile in the parent Pagefiles, or NULL if at the beginning. 

Manipulation

Remember to follow up any manipulations with a $pages->save() call.

NameReturnSummary 
Pagefile::addTag($tag)
$thisAdd the given tag to this file’s tags (if not already present) 
Pagefile::description()
stringGet or set the file’s description (with multi-language support).
Can also be used as property: Pagefile::description
 
Pagefile::removeTag(string $tag)
$thisRemove the given tag from this file’s tags (if present) 
Pagefile::rename(string $basename)
string boolRename this file 
Pagefile::tags()
string arrayGet or set the "tags" property, when in use.
Can also be used as property: Pagefile::tags
 

Date time

NameReturnSummary 
Pagefile::created int Unix timestamp of when file was created.  
Pagefile::createdStr string Readable date/time string of when Pagefile was created  
Pagefile::modified int Unix timestamp of when Pagefile (file, description or tags) was last modified.  
Pagefile::modifiedStr string Readable date/time string of when Pagefile was last modified.  
Pagefile::mtime int Unix timestamp of when file (only) was last modified.  
Pagefile::mtimeStr string Readable date/time string when file (only) was last modified.  

For hooks

These methods are only useful for hooking and should not be called directly.

Tags

Be sure to see the Pagefiles::getTag() and Pagesfiles::findTag() methods, which enable you retrieve files by tag.

NameReturnSummary 
Pagefile::addTag($tag)
$thisAdd the given tag to this file’s tags (if not already present) 
Pagefile::hasTag(string $tag)
bool stringDoes this file have the given tag(s)? 
Pagefile::removeTag(string $tag)
$thisRemove the given tag from this file’s tags (if present) 
Pagefile::tags()
string arrayGet or set the "tags" property, when in use.
Can also be used as property: Pagefile::tags
 
Pagefile::tagsArray string Get file tags as an array.  

Other

NameReturnSummary 
Pagefile::HTTPURL string Same as the cache-busting uppercase “URL” property, but includes scheme and hostname.  
Pagefile::URL string Same as $url property but with browser cache busting query string appended.  
Pagefile::field Field The Field object that this file is part of.  
Pagefile::page Page The Page object that this file is part of.  
Pagefile::pagefiles Pagefiles The Pagefiles WireArray that contains this file.  
Pagefile::sort int Sort order in database.  

Additional methods and properties

In addition to the methods and properties above, Pagefile also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.123

Twitter updates

  • New post: In this week’s post, we’ll take a look a look at the new website and focus on some parts of it and how they were built. Then we’ll dive into the latest version of ProcessWire on the dev branch, version 3.0.124— More
    11 January 2019
  • New ProcessWire main site rebuild ready for preview— More
    4 January 2019
  • Happy Holidays! This latest master version of ProcessWire contains hundreds of new additions, fixes, optimizations and more. This post covers all the highlights— More
    21 December 2018

Latest news

  • ProcessWire Weekly #244
    In the 244th issue of ProcessWire Weekly we'll cover the latest core updates, introduce the new processwire.com site, ask a PHP version related question in the weekly poll, and showcase the site of an open source room bookings app. Read on!
    Weekly.pw / 12 January 2019
  • ProcessWire 3.0.124 and new website launched
    In this week’s post, we’ll take a look a look at the new website and focus on some parts of it and how they were built. Then we’ll dive into the latest version of ProcessWire on the dev branch, version 3.0.124.
    Blog / 11 January 2019
  • Subscribe to weekly ProcessWire news

“To Drupal, or to ProcessWire? The million dollar choice. We decided to make an early switch to PW. And in retrospect, ProcessWire was probably the best decision we made. Thanks are due to ProcessWire and the amazing system and set of modules that are in place.” —Unni Krishnan, Founder of PigtailPundits