94 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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('', array('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(array('IPTC.Headline', 'xmp.dc:title'));
 | |
|         $d = $this->mediaFile->getMeta()->getField(array(
 | |
|             'IPTC.Caption',
 | |
|             'EXIF.UserComment',
 | |
|             'EXIF.TIFFImageDescription',
 | |
|             'EXIF.TIFFUserComment',
 | |
|         ));
 | |
|         if (PhpString::strlen($d) > 250) $d = PhpString::substr($d, 0, 250) . '...';
 | |
|         $k = $this->mediaFile->getMeta()->getField(array('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>';
 | |
|     }
 | |
| 
 | |
| }
 |