From 38b2dd0732593c74eeff8dfd30c1ae0e6ff953d7 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 19 Aug 2022 14:59:41 -0400 Subject: [PATCH] Minor adjustments and phpdoc updates in Pagefile/Pageimage and related classes --- wire/core/Pagefile.php | 105 +++++++++++++++++------------- wire/core/PagefileExtra.php | 6 +- wire/core/Pagefiles.php | 34 ++++++---- wire/core/Pageimage.php | 42 +++++++----- wire/core/PageimageVariations.php | 13 ++-- wire/core/Pageimages.php | 5 ++ 6 files changed, 120 insertions(+), 85 deletions(-) diff --git a/wire/core/Pagefile.php b/wire/core/Pagefile.php index 6de38eb5..34aba5e3 100644 --- a/wire/core/Pagefile.php +++ b/wire/core/Pagefile.php @@ -12,7 +12,7 @@ * Pagefile objects are contained by a `Pagefiles` object. * #pw-body * - * ProcessWire 3.x, Copyright 2020 by Ryan Cramer + * ProcessWire 3.x, Copyright 2022 by Ryan Cramer * https://processwire.com * * @property-read string $url URL to the file on the server. @@ -44,6 +44,7 @@ * @property int $modified_users_id ID of user that last modified the file or 0 if not known (3.0.154+). #pw-group-other * @property User|NullPage $createdUser User that added/uploaded the file or NullPage if not known (3.0.154)+. #pw-group-other * @property User|NullPage $modifiedUser User that last modified the file or NullPage if not known (3.0.154)+. #pw-group-other + * @property bool $formatted True when value has had Textformatters applied. #pw-internal * * @method void install($filename) * @method string httpUrl() @@ -132,6 +133,7 @@ class Pagefile extends WireData { $this->pagefiles = $pagefiles; if(strlen($filename)) $this->setFilename($filename); + $this->set('description', ''); $this->set('tags', ''); $this->set('formatted', false); // has an output formatter been run on this Pagefile? @@ -140,6 +142,8 @@ class Pagefile extends WireData { $this->set('filesize', 0); $this->set('created_users_id', 0); $this->set('modified_users_id', 0); + + parent::__construct(); } /** @@ -230,13 +234,14 @@ class Pagefile extends WireData { if(!is_readable($filename)) throw new WireException("Unable to read: $filename"); if(!copy($filename, $destination)) throw new WireException("Unable to copy: $filename => $destination"); } else { + /** @var WireHttp $http */ $http = $this->wire(new WireHttp()); // note: download() method throws excepton on failure $http->download($filename, $destination); // download was successful } - $this->wire('files')->chmod($destination); + $this->wire()->files->chmod($destination); $this->changed('file'); $this->isNew(true); parent::set('basename', $basename); @@ -286,7 +291,7 @@ class Pagefile extends WireData { if(strpos($key, 'description') === 0 && preg_match('/^description(\d+)$/', $value, $matches)) { // check if a language description is being set manually by description123 where 123 is language ID - $languages = $this->wire('languages'); + $languages = $this->wire()->languages; if($languages) { $language = $languages->get((int) $matches[1]); if($language && $language->id) return $this->setDescription($value, $language); @@ -310,10 +315,10 @@ class Pagefile extends WireData { */ protected function setUser($user, $type) { $id = 0; - if($user === true) $user = $this->wire('user'); + if($user === true) $user = $this->wire()->user; if(is_object($user)) { if($user instanceof NullPage) { - $id = 0; + // $id = 0; } else if($user instanceof User) { $id = $user->isGuest() ? 0 : $user->id; } @@ -322,8 +327,8 @@ class Pagefile extends WireData { } else if(ctype_digit($user)) { $id = (int) $user; } else if(is_string($user)) { - $name = $this->wire('sanitizer')->pageName($user); - $user = $name ? $this->wire('users')->get("name=$name") : null; + $name = $this->wire()->sanitizer->pageName($user); + $user = $name ? $this->wire()->users->get("name=$name") : null; $id = $user && $user->id ? $user->id : 0; } if($id < 0) $id = 0; @@ -421,8 +426,7 @@ class Pagefile extends WireData { */ protected function setDescription($value, Page $language = null) { - /** @var Languages $languages */ - $languages = $this->wire('languages'); + $languages = $this->wire()->languages; /** @var Language|null $language */ @@ -467,7 +471,7 @@ class Pagefile extends WireData { if(!$id) $id = ''; $name = $n > 0 ? "description$id" : "description"; } else if($id === 'default') { - $name = 'description'; + // $name = 'description'; } else if($languages) { $language = $languages->get($id); // i.e. "default" or "es" if(!$language->id) continue; @@ -478,8 +482,8 @@ class Pagefile extends WireData { } } else { // no JSON values so assume regular language description - $languages = $this->wire('languages'); - $language = $languages ? $this->wire('user')->language : null; + $languages = $this->wire()->languages; + $language = $languages ? $this->wire()->user->language : null; if($languages && $language && !$noLang && !$language->isDefault()) { $name = "description$language->id"; @@ -533,13 +537,14 @@ class Pagefile extends WireData { */ public function description($language = null, $value = null) { + $languages = $this->wire()->languages; + if($language === true && $value === true) { // return all in array indexed by language name - /** @var Languages $languages */ - $languages = $this->wire('languages'); if(!$languages) return array('default' => parent::get('description')); $value = array(); foreach($languages as $language) { + /** @var Language $language */ $value[$language->name] = (string) parent::get("description" . ($language->isDefault() ? '' : $language->id)); } return $value; @@ -564,16 +569,18 @@ class Pagefile extends WireData { $value = null; } - if((is_string($language) || is_int($language)) && $this->wire('languages')) { + if((is_string($language) || is_int($language)) && $languages) { // convert named or ID'd languages to Language object - $language = $this->wire('languages')->get($language); + $language = $languages->get($language); } if(is_null($language)) { // return description for current user language, or inherit from default if not available $user = $this->wire('user'); $value = null; - if($user->language && $user->language->id) $value = parent::get("description{$user->language}"); + if($user->language && $user->language->id) { + $value = parent::get("description{$user->language}"); + } if(empty($value)) { // inherit default language value $value = parent::get("description"); @@ -581,10 +588,10 @@ class Pagefile extends WireData { } else if($language === true) { // return JSON string of all languages if applicable - $languages = $this->wire('languages'); if($languages && $languages->count() > 1) { $values = array(0 => parent::get("description")); foreach($languages as $lang) { + /** @var Language $lang */ if($lang->isDefault()) continue; $v = parent::get("description$lang"); if(empty($v)) continue; @@ -600,8 +607,11 @@ class Pagefile extends WireData { } else if(is_object($language) && $language->id) { // return description for specific language or blank if not available - if($language->isDefault()) $value = parent::get("description"); - else $value = parent::get("description$language"); + if($language->isDefault()) { + $value = parent::get("description"); + } else { + $value = parent::get("description$language"); + } } // we only return strings, so return blank rather than null @@ -620,10 +630,9 @@ class Pagefile extends WireData { * */ public function get($key) { - $value = null; - if($key == 'name') $key = 'basename'; - if($key == 'pathname') $key = 'filename'; + if($key === 'name') $key = 'basename'; + if($key === 'pathname') $key = 'filename'; switch($key) { case 'url': @@ -668,7 +677,7 @@ class Pagefile extends WireData { case 'modifiedStr': case 'createdStr': $value = parent::get(str_replace('Str', '', $key)); - $value = wireDate($this->wire('config')->dateFormat, $value); + $value = wireDate($this->wire()->config->dateFormat, $value); break; case 'created_users_id': case 'modified_users_id': @@ -688,16 +697,17 @@ class Pagefile extends WireData { break; case 'mtimeStr': case 'filemtimeStr': - $value = wireDate($this->wire('config')->dateFormat, $this->filemtime()); + $value = wireDate($this->wire()->config->dateFormat, $this->filemtime()); break; case 'fieldValues': - return $this->fieldValues; + $value = $this->fieldValues; break; default: $value = $this->getFieldValue($key); - } + if(is_null($value)) return parent::get($key); + return $value; } @@ -714,7 +724,7 @@ class Pagefile extends WireData { */ public function getFieldValue($name, $formatted = null) { - $field = $this->wire('fields')->get($name); + $field = $this->wire()->fields->get($name); if(!$field) return null; $template = $this->pagefiles->getFieldsTemplate(); @@ -787,7 +797,7 @@ class Pagefile extends WireData { if($changed === null && $this->page->trackChanges()) { // detect if a change has taken place $oldValue = $this->getFieldValue($field->name, false); - if(is_object($oldValue) && $oldValue instanceof Wire && $oldValue === $value) { + if($oldValue instanceof Wire && $oldValue === $value) { // $oldValue and new $value are the same object instance, so ask it if anything has changed $changed = $oldValue->isChanged(); if($changed) $this->trackChange($field->name); @@ -822,11 +832,13 @@ class Pagefile extends WireData { * * #pw-group-traversal * - * @return Pagefile|Wire|null + * @return Pagefile|null * */ public function getNext() { - return $this->pagefiles->getNext($this); + /** @var Pagefile|null $item */ + $item = $this->pagefiles->getNext($this); + return $item; } /** @@ -834,11 +846,13 @@ class Pagefile extends WireData { * * #pw-group-traversal * - * @return Pagefile|Wire|null + * @return Pagefile|null * */ public function getPrev() { - return $this->pagefiles->getPrev($this); + /** @var Pagefile|null $item */ + $item = $this->pagefiles->getPrev($this); + return $item; } /** @@ -859,7 +873,7 @@ class Pagefile extends WireData { * */ public function url() { - return $this->wire('hooks')->isHooked('Pagefile::url()') ? $this->__call('url', array()) : $this->___url(); + return $this->wire()->hooks->isHooked('Pagefile::url()') ? $this->__call('url', array()) : $this->___url(); } /** @@ -895,7 +909,7 @@ class Pagefile extends WireData { * */ public function filename() { - return $this->wire('hooks')->isHooked('Pagefile::filename()') ? $this->__call('filename', array()) : $this->___filename(); + return $this->wire()->hooks->isHooked('Pagefile::filename()') ? $this->__call('filename', array()) : $this->___filename(); } /** @@ -950,7 +964,7 @@ class Pagefile extends WireData { $tags = str_replace(array(',', '|'), ' ', $tags); $_tags = explode(' ', $tags); $tags = array(); - foreach($_tags as $key => $tag) { + foreach($_tags as /* $key => */ $tag) { $tag = trim($tag); if($value === false) $tag = strtolower($tag); // force lowercase if(!strlen($tag)) continue; @@ -959,7 +973,7 @@ class Pagefile extends WireData { } else if($value !== null) { // set tags if(is_array($value)) $value = implode(' ', $value); // convert to string - $value = $this->wire('sanitizer')->text($value); + $value = $this->wire()->sanitizer->text($value); if(strpos($value, "\t") !== false) $value = str_replace("\t", " ", $value); // collapse extra whitespace while(strpos($value, " ") !== false) $value = str_replace(" ", " ", $value); @@ -1074,6 +1088,7 @@ class Pagefile extends WireData { * */ public function addTag($tag) { + $sanitizer = $this->wire()->sanitizer; if(is_array($tag)) { $addTags = $tag; } else if(strpos($tag, ',') !== false) { @@ -1085,7 +1100,7 @@ class Pagefile extends WireData { $numAdded = 0; foreach($addTags as $tag) { if($this->hasTag($tag)) continue; - $tag = $this->wire('sanitizer')->text(trim($tag)); + $tag = $sanitizer->text(trim($tag)); $tag = str_replace(' ', '_', $tag); $tags[strtolower($tag)] = $tag; $numAdded++; @@ -1227,11 +1242,10 @@ class Pagefile extends WireData { public function unlink() { /** @var WireFileTools $files */ if(!strlen($this->basename) || !is_file($this->filename)) return true; - $files = $this->wire('files'); foreach($this->extras() as $extra) { $extra->unlink(); } - return $files->unlink($this->filename, true); + return $this->wire()->files->unlink($this->filename, true); } /** @@ -1250,7 +1264,7 @@ class Pagefile extends WireData { $extra->filename(); // init } $basename = $this->pagefiles->cleanBasename($basename, true); - if($this->wire('files')->rename($this->filename, $this->pagefiles->path . $basename, true)) { + if($this->wire()->files->rename($this->filename, $this->pagefiles->path . $basename, true)) { $this->set('basename', $basename); $basename = $this->basename(); foreach($this->extras() as $extra) { @@ -1271,8 +1285,7 @@ class Pagefile extends WireData { * */ public function copyToPath($path) { - /** @var WireFileTools $files */ - $files = $this->wire('files'); + $files = $this->wire()->files; $result = $files->copy($this->filename(), $path); foreach($this->extras() as $extra) { if(!$extra->exists()) continue; @@ -1358,7 +1371,7 @@ class Pagefile extends WireData { */ public function extras($name = null, PagefileExtra $value = null) { if($name === null) return $this->extras; - if($value !== null && $value instanceof PagefileExtra) { + if($value instanceof PagefileExtra) { $this->extras[$name] = $value; } return isset($this->extras[$name]) ? $this->extras[$name] : null; @@ -1394,8 +1407,8 @@ class Pagefile extends WireData { */ public function replaceFile($filename, $move = true) { - /** @var WireFileTools $files */ - $files = $this->wire('files'); + $files = $this->wire()->files; + if(!is_file($filename) || !is_readable($filename)) return false; if($move && !is_writable($filename)) $move = false; diff --git a/wire/core/PagefileExtra.php b/wire/core/PagefileExtra.php index 810570db..b97a2073 100644 --- a/wire/core/PagefileExtra.php +++ b/wire/core/PagefileExtra.php @@ -224,7 +224,7 @@ class PagefileExtra extends WireData { */ public function unlink() { if(!$this->exists()) return false; - return $this->wire('files')->unlink($this->filename()); + return $this->wire()->files->unlink($this->filename()); } /** @@ -235,7 +235,7 @@ class PagefileExtra extends WireData { */ public function rename() { if(!$this->filenamePrevious || !is_readable($this->filenamePrevious)) return false; - return $this->wire('files')->rename($this->filenamePrevious, $this->filename()); + return $this->wire()->files->rename($this->filenamePrevious, $this->filename()); } /** @@ -322,4 +322,4 @@ class PagefileExtra extends WireData { public function __toString() { return $this->basename(); } -} \ No newline at end of file +} diff --git a/wire/core/Pagefiles.php b/wire/core/Pagefiles.php index ce2e9912..f8bf646c 100644 --- a/wire/core/Pagefiles.php +++ b/wire/core/Pagefiles.php @@ -193,11 +193,12 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { * * #pw-internal * - * @return Pagefiles|WireArray + * @return Pagefiles|Pageimages|WireArray * */ public function makeNew() { $class = get_class($this); + /** @var Pagefiles|Pageimages $newArray */ $newArray = $this->wire(new $class($this->page)); $newArray->setField($this->field); return $newArray; @@ -220,7 +221,10 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { foreach($this->data as $key => $value) $newArray[$key] = $value; foreach($this->extraData as $key => $value) $newArray->data($key, $value); $newArray->resetTrackChanges($this->trackChanges()); - foreach($newArray as $item) $item->setPagefilesParent($newArray); + foreach($newArray as $item) { + /** @var Pagefile $item */ + $item->setPagefilesParent($newArray); + } return $newArray; } @@ -232,6 +236,7 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { */ public function __clone() { foreach($this as $key => $pagefile) { + /** @var Pagefile $pagefile */ $pagefile = clone $pagefile; $pagefile->setPagefilesParent($this); $this->set($key, $pagefile); @@ -299,13 +304,13 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { /** * Get for direct access to properties * - * @param int|string $key + * @param int|string $property * @return bool|mixed|Page|Wire|WireData * */ - public function __get($key) { - if(in_array($key, array('page', 'field', 'url', 'path'))) return $this->get($key); - return parent::__get($key); + public function __get($property) { + if(in_array($property, array('page', 'field', 'url', 'path'))) return $this->get($property); + return parent::__get($property); } /** @@ -358,7 +363,6 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { } } - /** @var Pagefiles $result */ $result = parent::add($item); return $result; } @@ -427,12 +431,13 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { * * #pw-internal Please use the hookable delete() method for public API * - * @param Pagefile $item Item to delete/remove. + * @param Pagefile $key Item to delete/remove. * @return $this * @throws WireException * */ - public function remove($item) { + public function remove($key) { + $item = $key; if(is_string($item)) $item = $this->get($item); if(!$this->isValidItem($item)) throw new WireException("Invalid type to {$this->className}::remove(item)"); $this->addSaveHook(); @@ -519,8 +524,7 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { $pathname = $n ? ($path . $parts[0] . "-$n." . $parts[1]) : ($path . $item->basename); } while(file_exists($pathname) && $n++); - if(copy($item->filename(), $pathname)) { - $this->wire('files')->chmod($pathname); + if($this->wire()->files->copy($item->filename(), $pathname)) { $itemCopy = clone $item; $itemCopy->setPagefilesParent($pagefiles); @@ -630,6 +634,7 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { public function findTag($tag) { $items = $this->makeNew(); foreach($this as $pagefile) { + /** @var Pagefile $pagefile */ if($pagefile->hasTag($tag)) $items->add($pagefile); } return $items; @@ -656,6 +661,7 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { public function getTag($tag) { $item = null; foreach($this as $pagefile) { + /** @var Pagefile $pagefile */ if(!$pagefile->hasTag($tag)) continue; $item = $pagefile; break; @@ -706,6 +712,7 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { // return array of tags $tags = array(); foreach($this as $pagefile) { + /** @var Pagefile $pagefile */ $tags = array_merge($tags, $pagefile->tags($value)); } if($returnString) $tags = implode(' ', $tags); @@ -729,7 +736,6 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { */ public function trackChange($what, $old = null, $new = null) { if($this->field && $this->page) $this->page->trackChange($this->field->name); - /** @var Pagefiles $result */ $result = parent::trackChange($what, $old, $new); return $result; } @@ -745,6 +751,7 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { $hasFile = null; $name = basename($name); foreach($this as $pagefile) { + /** @var Pagefile $pagefile */ if($pagefile->basename == $name) { $hasFile = $pagefile; break; @@ -853,6 +860,7 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { public function deleteAllTemp() { $removed = array(); foreach($this as $pagefile) { + /** @var Pagefile $pagefile */ if(!$this->isTemp($pagefile, 'deletable')) continue; $removed[] = $pagefile->basename(); $this->remove($pagefile); @@ -950,7 +958,7 @@ class Pagefiles extends WireArray implements PageFieldValueInterface { $this->fieldsTemplate = false; /** @var FieldtypeFile $fieldtype */ $fieldtype = $field->type; - $template = $fieldtype && $fieldtype instanceof FieldtypeFile ? $fieldtype->getFieldsTemplate($field) : null; + $template = $fieldtype instanceof FieldtypeFile ? $fieldtype->getFieldsTemplate($field) : null; if($template) $this->fieldsTemplate = $template; } } diff --git a/wire/core/Pageimage.php b/wire/core/Pageimage.php index 9a155906..5c0ca119 100644 --- a/wire/core/Pageimage.php +++ b/wire/core/Pageimage.php @@ -190,7 +190,8 @@ class Pageimage extends Pagefile { * */ public function url() { - if($this->wire('hooks')->isHooked('Pagefile::url()') || $this->wire('hooks')->isHooked('Pageimage::url()')) { + $hooks = $this->wire()->hooks; + if($hooks->isHooked('Pagefile::url()') || $hooks->isHooked('Pageimage::url()')) { return $this->__call('url', array()); } else { return $this->___url(); @@ -206,7 +207,8 @@ class Pageimage extends Pagefile { * */ public function filename() { - if($this->wire('hooks')->isHooked('Pagefile::filename()') || $this->wire('hooks')->isHooked('Pageimage::filename()')) { + $hooks = $this->wire()->hooks; + if($hooks->isHooked('Pagefile::filename()') || $hooks->isHooked('Pageimage::filename()')) { return $this->__call('filename', array()); } else { return $this->___filename(); @@ -687,7 +689,7 @@ class Pageimage extends Pagefile { return $this->sizeName($width, $options); } - if($this->wire('hooks')->isHooked('Pageimage::size()')) { + if($this->wire()->hooks->isHooked('Pageimage::size()')) { $result = $this->__call('size', array($width, $height, $options)); } else { $result = $this->___size($width, $height, $options); @@ -718,7 +720,7 @@ class Pageimage extends Pagefile { protected function ___size($width, $height, $options) { $this->error = ''; - if($this->ext == 'svg') return $this; + if($this->ext === 'svg') return $this; if(!is_array($options)) $options = $this->sizeOptionsToArray($options); // originally requested options @@ -747,16 +749,16 @@ class Pageimage extends Pagefile { 'focus' => true, // allow single dimension resizes to use focus area? 'zoom' => null, // zoom override, used only if focus is applicable, int when populated 'allowOriginal' => false, // Return original image if already at requested dimensions? (must be only specified option) - ); + ); - /** @var WireFileTools $files */ - /** @var Config $config */ - $files = $this->wire('files'); - $config = $this->wire('config'); + $files = $this->wire()->files; + $config = $this->wire()->config; + $debug = $config->debug; $configOptions = $config->imageSizerOptions; $webpOptions = $config->webpOptions; $createdVariationHookData = null; // populated as array only when new variation created (for createdVariation hook) + if(!empty($webpOptions['quality'])) $defaultOptions['webpQuality'] = $webpOptions['quality']; if(!is_array($configOptions)) $configOptions = array(); @@ -773,7 +775,10 @@ class Pageimage extends Pagefile { } } - if($options['cropping'] === true && empty($options['cropExtra']) && $options['focus'] && $this->hasFocus && $width && $height) { + if($options['cropping'] === true + && empty($options['cropExtra']) + && $options['focus'] && $this->hasFocus + && $width && $height) { // crop to focus area $focus = $this->focus(); if(is_int($options['zoom'])) $focus['zoom'] = $options['zoom']; // override @@ -811,9 +816,12 @@ class Pageimage extends Pagefile { $suffix = $options['suffix']; sort($suffix); foreach($suffix as $key => $s) { - $s = strtolower($this->wire('sanitizer')->fieldName($s)); - if(empty($s)) unset($suffix[$key]); - else $suffix[$key] = $s; + $s = strtolower($this->wire()->sanitizer->fieldName($s)); + if(empty($s)) { + unset($suffix[$key]); + } else { + $suffix[$key] = $s; + } } if(count($suffix)) $suffixStr = '-' . implode('-', $suffix); } @@ -875,7 +883,7 @@ class Pageimage extends Pagefile { if(file_exists($filenameUnvalidated)) $files->unlink($filenameUnvalidated, true); if(file_exists($filenameUnvalidatedWebp)) $files->unlink($filenameUnvalidatedWebp, true); - if(@copy($this->filename(), $filenameUnvalidated)) { + if($files->copy($this->filename(), $filenameUnvalidated)) { try { $timer = $debug ? Debug::timer() : null; @@ -1035,7 +1043,7 @@ class Pageimage extends Pagefile { * */ public function sizeName($name, array $options = array()) { - $sizes = $this->wire('config')->imageSizes; + $sizes = $this->wire()->config->imageSizes; if(!isset($sizes[$name])) throw new WireException("Unknown image size '$name' (not in \$config->imageSizes)"); $size = $sizes[$name]; $options = array_merge($size, $options); @@ -1180,7 +1188,7 @@ class Pageimage extends Pagefile { if($width < 1) $width = $this->width(); if($width === "100%") return $width; return ceil($width * $scale); - } else if($width && is_int($width) && $width > 0) { + } else if($width && is_int($width)) { // resize intended if(!is_array($options)) $options = array(); return $this->hidpiSize((int) $width, 0, $options); @@ -1298,7 +1306,7 @@ class Pageimage extends Pagefile { $options['nameHeight'] = $height; } - if($this->wire('config')->installed > 1513336849) { + if($this->wire()->config->installed > 1513336849) { // New installations from 2017-12-15 forward use an "ms" suffix for images from maxSize() method $suffix = isset($options['suffix']) ? $options['suffix'] : array(); if(!is_array($suffix)) $suffix = array(); diff --git a/wire/core/PageimageVariations.php b/wire/core/PageimageVariations.php index b50152a4..8c5308af 100644 --- a/wire/core/PageimageVariations.php +++ b/wire/core/PageimageVariations.php @@ -247,13 +247,13 @@ class PageimageVariations extends Wire implements \IteratorAggregate, \Countable if(is_readable($this->pagefiles->path . $f)) { $info["{$name}Url"] = $this->pagefiles->url . $f; $info["{$name}Path"] = $this->pagefiles->path . $f; - continue; + // continue; } } if(empty($info['crop'])) { // attempt to extract crop info from suffix - foreach($info['suffix'] as $key => $suffix) { + foreach($info['suffix'] as /* $key => */ $suffix) { if(strpos($suffix, 'cropx') === 0) { $info['crop'] = ltrim($suffix, 'crop'); // i.e. x123y456 } @@ -337,6 +337,7 @@ class PageimageVariations extends Wire implements \IteratorAggregate, \Countable $count = 0; if(!$options['info'] && !$options['count']) { + /** @var Pageimages $variations */ $variations = $this->wire(new Pageimages($this->pagefiles->page)); } @@ -493,7 +494,7 @@ class PageimageVariations extends Wire implements \IteratorAggregate, \Countable } else if(strpos($s, 'cropx') === 0) { // skip cropx suffix (already known from $info[crop]) unset($info['suffix'][$k]); - continue; + // continue; } else if(strpos($s, 'pid') === 0 && preg_match('/^pid\d+$/', $s)) { // allow pid123 to pass through } else if(in_array($s, $suffix)) { @@ -602,6 +603,8 @@ class PageimageVariations extends Wire implements \IteratorAggregate, \Countable * */ public function remove(array $options = array()) { + + $files = $this->wire()->files; $defaults = array( 'dryRun' => false, @@ -612,8 +615,6 @@ class PageimageVariations extends Wire implements \IteratorAggregate, \Countable if(!empty($options['dryrun'])) $defaults['dryRun'] = $options['dryrun']; // case insurance $options = array_merge($defaults, $options); // placement after getVariations() intended - /** @var WireFileTools $files */ - $files = $this->wire('files'); $deletedFiles = array(); $this->removeExtras($this->pageimage, $deletedFiles, $options); @@ -655,4 +656,4 @@ class PageimageVariations extends Wire implements \IteratorAggregate, \Countable } } } -} \ No newline at end of file +} diff --git a/wire/core/Pageimages.php b/wire/core/Pageimages.php index da1a80b7..829a6c29 100644 --- a/wire/core/Pageimages.php +++ b/wire/core/Pageimages.php @@ -63,6 +63,8 @@ class Pageimages extends Pagefiles { * Per the WireArray interface, return a blank Pageimage * * #pw-internal + * + * @return Pageimage * */ public function makeBlankItem() { @@ -87,6 +89,7 @@ class Pageimages extends Pagefiles { $base = ($pos ? substr($name, 0, $pos) : null); foreach($this as $pagefile) { + /** @var Pageimage $pagefile */ if($base !== null && strpos($pagefile->basename, $base) !== 0) continue; // they start the same, is it a variation? if(!$pagefile->isVariation($name)) continue; @@ -129,6 +132,7 @@ class Pageimages extends Pagefiles { $basenames = array(); foreach($this as $pageimage) { + /** @var Pageimage $pageimage */ $name = $pageimage->basename; $ext = $pageimage->ext; $extensions[$name] = $ext; @@ -234,6 +238,7 @@ class Pageimages extends Pagefiles { unset($options['limit']); } foreach($this as $image) { + /** @var Pageimage $image */ $out .= $image->render($markup, $options); if($limit > 0 && ++$n >= $limit) break; }