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