From 45ff586d73576de9931b482e9b2514812e66725c Mon Sep 17 00:00:00 2001 From: lukeyouell <> Date: Tue, 31 Jul 2018 11:12:33 +0100 Subject: [PATCH 1/2] super table support --- src/twigextensions/ReadTimeTwigExtension.php | 32 +++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/twigextensions/ReadTimeTwigExtension.php b/src/twigextensions/ReadTimeTwigExtension.php index 0a9c22f..2179960 100644 --- a/src/twigextensions/ReadTimeTwigExtension.php +++ b/src/twigextensions/ReadTimeTwigExtension.php @@ -51,20 +51,42 @@ public function readTimeFunction($element, $showSeconds = true) foreach ($element->getFieldLayout()->getFields() as $field) { try { // If field is a matrix then loop through fields in block - if ($field instanceof craft\fields\Matrix) { + if ($field instanceof \craft\fields\Matrix) { foreach($element->getFieldValue($field->handle)->all() as $block) { $blockFields = $block->getFieldLayout()->getFields(); - foreach($blockFields as $blockField){ + foreach ($blockFields as $blockField) { $value = $block->getFieldValue($blockField->handle); $seconds = $this->valToSeconds($value); $totalSeconds = $totalSeconds + $seconds; } } + } elseif($field instanceof \verbb\supertable\fields\SuperTableField) { + foreach($element->getFieldValue($field->handle)->all() as $block) { + $blockFields = $block->getFieldLayout()->getFields(); + + foreach ($blockFields as $blockField) { + if ($blockField instanceof \craft\fields\Matrix) { + foreach($block->getFieldValue($blockField->handle)->all() as $matrix) { + $matrixFields = $matrix->getFieldLayout()->getFields(); + + foreach ($matrixFields as $matrixField) { + $value = $matrix->getFieldValue($matrixField->handle); + $seconds = $this->valToSeconds($value); + $totalSeconds = $totalSeconds + $seconds; + } + } + } else { + $value = $block->getFieldValue($blockField->handle); + $seconds = $this->valToSeconds($value); + $totalSeconds = $totalSeconds + $seconds; + } + } + } } else { - $value = $element->getFieldValue($field->handle); - $seconds = $this->valToSeconds($value); - $totalSeconds = $totalSeconds + $seconds; + $value = $element->getFieldValue($field->handle); + $seconds = $this->valToSeconds($value); + $totalSeconds = $totalSeconds + $seconds; } } catch (ErrorException $e) { continue; From 3f8df37f295c8585e8d309e3027558edb9eba1e3 Mon Sep 17 00:00:00 2001 From: lukeyouell <> Date: Tue, 31 Jul 2018 11:13:42 +0100 Subject: [PATCH 2/2] 1.4.0 --- CHANGELOG.md | 5 +++++ README.md | 2 -- composer.json | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b115f4f..fb4a0d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to this project will be documented in this file. +## 1.4.0 - 2018-07-31 + +### Added +- Super Table support 🎉 + ## 1.3.0 - 2018-06-22 ### Added diff --git a/README.md b/README.md index 9b07e4b..65e8368 100644 --- a/README.md +++ b/README.md @@ -140,6 +140,4 @@ return [ Some things to do, and ideas for potential features: -- SuperTable integration - Brought to you by [Luke Youell](https://github.com/lukeyouell) diff --git a/composer.json b/composer.json index ea78e63..23f51de 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "lukeyouell/craft-readtime", "description": "Calculate the estimated read time for content.", "type": "craft-plugin", - "version": "1.3.0", + "version": "1.4.0", "keywords": [ "craft", "cms",