|
17 | 17 |
|
18 | 18 | class ZipExportReferences
|
19 | 19 | {
|
20 |
| - /** @var ZipExportPage[] */ |
| 20 | + /** @var array<int, ZipExportPage> */ |
21 | 21 | protected array $pages = [];
|
22 |
| - /** @var ZipExportChapter[] */ |
| 22 | + /** @var array<int, ZipExportChapter> */ |
23 | 23 | protected array $chapters = [];
|
24 |
| - /** @var ZipExportBook[] */ |
| 24 | + /** @var array<int, ZipExportBook> */ |
25 | 25 | protected array $books = [];
|
26 | 26 |
|
27 |
| - /** @var ZipExportAttachment[] */ |
| 27 | + /** @var array<int, ZipExportAttachment> */ |
28 | 28 | protected array $attachments = [];
|
29 | 29 |
|
30 |
| - /** @var ZipExportImage[] */ |
| 30 | + /** @var array<int, ZipExportImage> */ |
31 | 31 | protected array $images = [];
|
32 | 32 |
|
33 | 33 | public function __construct(
|
@@ -134,11 +134,12 @@ protected function handleModelReference(Model $model, ZipExportModel $exportMode
|
134 | 134 |
|
135 | 135 | // Find and include images if in visibility
|
136 | 136 | $page = $model->getPage();
|
137 |
| - if ($page && userCan('view', $page) && $exportModel instanceof ZipExportPage) { |
| 137 | + $pageExportModel = $this->pages[$page->id] ?? ($exportModel instanceof ZipExportPage ? $exportModel : null); |
| 138 | + if (isset($this->images[$model->id]) || ($page && $pageExportModel && userCan('view', $page))) { |
138 | 139 | if (!isset($this->images[$model->id])) {
|
139 | 140 | $exportImage = ZipExportImage::fromModel($model, $files);
|
140 | 141 | $this->images[$model->id] = $exportImage;
|
141 |
| - $exportModel->images[] = $exportImage; |
| 142 | + $pageExportModel->images[] = $exportImage; |
142 | 143 | }
|
143 | 144 | return "[[bsexport:image:{$model->id}]]";
|
144 | 145 | }
|
|
0 commit comments