|
- <?php
-
- namespace dokuwiki\Ui\Media;
-
- use dokuwiki\Utf8\PhpString;
-
- /**
- * Display a MediaFile in the Media Popup
- */
- class DisplayRow extends DisplayTile
- {
- /** @inheritDoc */
- public function show()
- {
- global $lang;
- // FIXME Zebra classes have been dropped and need to be readded via CSS
-
- $id = $this->mediaFile->getId();
- $class = 'select mediafile mf_' . $this->mediaFile->getIcoClass();
- $info = trim($this->formatDimensions('') . ' ' . $this->formatDate() . ' ' . $this->formatFileSize());
- $jump = $this->scrollIntoView ? 'id="scroll__here"' : '';
-
- echo '<div title="' . $id . '" ' . $jump . '>';
- echo '<a id="h_:' . $id . '" class="' . $class . '">' .
- $this->formatDisplayName() .
- '</a> ';
- echo '<span class="info">(' . $info . ')</span>' . NL;
-
- // view button
- $link = ml($id, '', true);
- echo ' <a href="' . $link . '" target="_blank"><img src="' . DOKU_BASE . 'lib/images/magnifier.png" ' .
- 'alt="' . $lang['mediaview'] . '" title="' . $lang['mediaview'] . '" class="btn" /></a>';
-
- // mediamanager button
- $link = wl('', ['do' => 'media', 'image' => $id, 'ns' => getNS($id)]);
- echo ' <a href="' . $link . '" target="_blank"><img src="' . DOKU_BASE . 'lib/images/mediamanager.png" ' .
- 'alt="' . $lang['btn_media'] . '" title="' . $lang['btn_media'] . '" class="btn" /></a>';
-
- // delete button
- if ($this->mediaFile->isWritable() && $this->mediaFile->userPermission() >= AUTH_DELETE) {
- $link = DOKU_BASE . 'lib/exe/mediamanager.php?delete=' . rawurlencode($id) .
- '&sectok=' . getSecurityToken();
- echo ' <a href="' . $link . '" class="btn_media_delete" title="' . $id . '">' .
- '<img src="' . DOKU_BASE . 'lib/images/trash.png" alt="' . $lang['btn_delete'] . '" ' .
- 'title="' . $lang['btn_delete'] . '" class="btn" /></a>';
- }
-
- echo '<div class="example" id="ex_' . str_replace(':', '_', $id) . '">';
- echo $lang['mediausage'] . ' <code>{{:' . $id . '}}</code>';
- echo '</div>';
- if ($this->mediaFile->isImage()) $this->showDetails();
- echo '<div class="clearer"></div>' . NL;
- echo '</div>' . NL;
- }
-
- /**
- * Show Thumbnail and EXIF data
- */
- protected function showDetails()
- {
- $id = $this->mediaFile->getId();
-
- echo '<div class="detail">';
- echo '<div class="thumb">';
- echo '<a id="d_:' . $id . '" class="select">';
- echo $this->getPreviewHtml(120, 120);
- echo '</a>';
- echo '</div>';
-
- // read EXIF/IPTC data
- $t = $this->mediaFile->getMeta()->getField(['IPTC.Headline', 'xmp.dc:title']);
- $d = $this->mediaFile->getMeta()->getField([
- 'IPTC.Caption',
- 'EXIF.UserComment',
- 'EXIF.TIFFImageDescription',
- 'EXIF.TIFFUserComment'
- ]);
- if (PhpString::strlen($d) > 250) $d = PhpString::substr($d, 0, 250) . '...';
- $k = $this->mediaFile->getMeta()->getField(['IPTC.Keywords', 'IPTC.Category', 'xmp.dc:subject']);
-
- // print EXIF/IPTC data
- if ($t || $d || $k) {
- echo '<p>';
- if ($t) echo '<strong>' . hsc($t) . '</strong><br />';
- if ($d) echo hsc($d) . '<br />';
- if ($t) echo '<em>' . hsc($k) . '</em>';
- echo '</p>';
- }
- echo '</div>';
- }
- }
|