xref: /dokuwiki/inc/Ui/Media/DisplayTile.php (revision 0603f506f0268170ae59481c161bf882d14307f9)
1bf9684bcSAndreas Gohr<?php
2bf9684bcSAndreas Gohr
3bf9684bcSAndreas Gohrnamespace dokuwiki\Ui\Media;
4bf9684bcSAndreas Gohr
5*0603f506SAndreas Gohruse dokuwiki\File\MediaFile;
6bf9684bcSAndreas Gohr
7bf9684bcSAndreas Gohr/**
8bf9684bcSAndreas Gohr * Display a MediaFile in the FullScreen MediaManager
9bf9684bcSAndreas Gohr */
10bf9684bcSAndreas Gohrclass DisplayTile extends Display
11bf9684bcSAndreas Gohr{
12bf9684bcSAndreas Gohr    /** @var string URL to open this file in the media manager */
13bf9684bcSAndreas Gohr    protected $mmUrl;
14bf9684bcSAndreas Gohr
15bf9684bcSAndreas Gohr    /** @inheritDoc */
16bf9684bcSAndreas Gohr    public function __construct(MediaFile $mediaFile)
17bf9684bcSAndreas Gohr    {
18bf9684bcSAndreas Gohr        parent::__construct($mediaFile);
19bf9684bcSAndreas Gohr
20bf9684bcSAndreas Gohr        // FIXME we may want to integrate this function here or in another class
21bf9684bcSAndreas Gohr        $this->mmUrl = media_managerURL([
22bf9684bcSAndreas Gohr            'image' => $this->mediaFile->getId(),
23bf9684bcSAndreas Gohr            'ns' => getNS($this->mediaFile->getId()),
24bf9684bcSAndreas Gohr            'tab_details' => 'view',
25bf9684bcSAndreas Gohr        ]);
26bf9684bcSAndreas Gohr    }
27bf9684bcSAndreas Gohr
28bf9684bcSAndreas Gohr    /**
29bf9684bcSAndreas Gohr     * Display the tile
30bf9684bcSAndreas Gohr     */
31bf9684bcSAndreas Gohr    public function show()
32bf9684bcSAndreas Gohr    {
339453716dSAndreas Gohr        $jump = $this->scrollIntoView ? 'id="scroll__here"' : '';
349453716dSAndreas Gohr
359453716dSAndreas Gohr        echo '<dl title="' . $this->mediaFile->getDisplayName() . '"' . $jump . '>';
36bf9684bcSAndreas Gohr        echo '<dt>';
37bf9684bcSAndreas Gohr        echo '<a id="l_:' . $this->mediaFile->getId() . '" class="image thumb" href="' . $this->mmUrl . '">';
38bf9684bcSAndreas Gohr        echo $this->getPreviewHtml(90, 90);
39bf9684bcSAndreas Gohr        echo '</a>';
40bf9684bcSAndreas Gohr        echo '</dt>';
41bf9684bcSAndreas Gohr
42bf9684bcSAndreas Gohr        echo '<dd class="name">';
43bf9684bcSAndreas Gohr        echo '<a href="' . $this->mmUrl . '" id="h_:' . $this->mediaFile->getId() . '">' .
4479b00823SAndreas Gohr            $this->formatDisplayName() .
45bf9684bcSAndreas Gohr            '</a>';
46bf9684bcSAndreas Gohr        echo '</dd>';
47bf9684bcSAndreas Gohr
48bf9684bcSAndreas Gohr        echo '<dd class="size">' . $this->formatDimensions() . '</dd>';
49bf9684bcSAndreas Gohr        echo '<dd class="date">' . $this->formatDate() . '</dd>';
50bf9684bcSAndreas Gohr        echo '<dd class="filesize">' . $this->formatFileSize() . '</dd>';
51bf9684bcSAndreas Gohr
52bf9684bcSAndreas Gohr        echo '</dl>';
53bf9684bcSAndreas Gohr    }
54bf9684bcSAndreas Gohr}
55