mirror of
https://github.com/processwire/processwire.git
synced 2025-08-15 11:14:12 +02:00
Add a FieldtypeFile::getPagefile() method
This commit is contained in:
@@ -1266,6 +1266,34 @@ class FieldtypeFile extends FieldtypeMulti implements ConfigurableModule {
|
||||
return $page;
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a Page and file basename, return the Pagefile object if file is found for Page
|
||||
*
|
||||
* The returned Pagefile will have a `field` property that reveals the Field it is from.
|
||||
*
|
||||
* @param Page $page
|
||||
* @param string $basename
|
||||
* @return Pagefile|null
|
||||
*
|
||||
*/
|
||||
public function getPagefile(Page $page, $basename) {
|
||||
$pagefile = null;
|
||||
foreach($page->template->fieldgroup as $field) {
|
||||
if(!($field->type instanceof FieldtypeFile)) continue;
|
||||
$pagefiles = $page->get($field->name);
|
||||
if($pagefiles instanceof Pagefile) {
|
||||
if($pagefiles->basename() === $basename) $pagefile = $pagefiles;
|
||||
} else if($pagefiles instanceof Pagefiles) {
|
||||
foreach($pagefiles as $f) {
|
||||
if($f->basename() === $basename) $pagefile = $f;
|
||||
if($pagefile) break;
|
||||
}
|
||||
}
|
||||
if($pagefile) break;
|
||||
}
|
||||
return $pagefile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save a single Pagefile to DB
|
||||
*
|
||||
|
Reference in New Issue
Block a user