1*bf9684bcSAndreas Gohr<?php 2*bf9684bcSAndreas Gohr 3*bf9684bcSAndreas Gohrnamespace dokuwiki\Ui\Media; 4*bf9684bcSAndreas Gohr 5*bf9684bcSAndreas Gohruse dokuwiki\Utf8\PhpString; 6*bf9684bcSAndreas Gohr 7*bf9684bcSAndreas Gohr/** 8*bf9684bcSAndreas Gohr * Display a MediaFile in the Media Popup 9*bf9684bcSAndreas Gohr */ 10*bf9684bcSAndreas Gohrclass DisplayRow extends DisplayTile 11*bf9684bcSAndreas Gohr{ 12*bf9684bcSAndreas Gohr /** @inheritDoc */ 13*bf9684bcSAndreas Gohr public function show() 14*bf9684bcSAndreas Gohr { 15*bf9684bcSAndreas Gohr global $lang; 16*bf9684bcSAndreas Gohr 17*bf9684bcSAndreas Gohr // FIXME support for jumping to file? 18*bf9684bcSAndreas Gohr // FIXME Zebra classes have been dropped and need to be readded via CSS 19*bf9684bcSAndreas Gohr // FIXME use of $display_namespace unclear, dropped for now -> maybe for search? 20*bf9684bcSAndreas Gohr 21*bf9684bcSAndreas Gohr $id = $this->mediaFile->getId(); 22*bf9684bcSAndreas Gohr $class = 'select mediafile mf_' . $this->mediaFile->getIcoClass(); 23*bf9684bcSAndreas Gohr $info = trim($this->formatDimensions('') . ' ' . $this->formatDate() . ' ' . $this->formatFileSize()); 24*bf9684bcSAndreas Gohr 25*bf9684bcSAndreas Gohr echo '<div title="' . $id . '">'; 26*bf9684bcSAndreas Gohr echo '<a id="h_:' . $id . '" class="' . $class . '">' . 27*bf9684bcSAndreas Gohr $this->mediaFile->getDisplayName() . 28*bf9684bcSAndreas Gohr '</a> '; 29*bf9684bcSAndreas Gohr echo '<span class="info">(' . $info . ')</span>' . NL; 30*bf9684bcSAndreas Gohr 31*bf9684bcSAndreas Gohr // view button 32*bf9684bcSAndreas Gohr $link = ml($id, '', true); 33*bf9684bcSAndreas Gohr echo ' <a href="' . $link . '" target="_blank"><img src="' . DOKU_BASE . 'lib/images/magnifier.png" ' . 34*bf9684bcSAndreas Gohr 'alt="' . $lang['mediaview'] . '" title="' . $lang['mediaview'] . '" class="btn" /></a>'; 35*bf9684bcSAndreas Gohr 36*bf9684bcSAndreas Gohr // mediamanager button 37*bf9684bcSAndreas Gohr $link = wl('', array('do' => 'media', 'image' => $id, 'ns' => getNS($id))); 38*bf9684bcSAndreas Gohr echo ' <a href="' . $link . '" target="_blank"><img src="' . DOKU_BASE . 'lib/images/mediamanager.png" ' . 39*bf9684bcSAndreas Gohr 'alt="' . $lang['btn_media'] . '" title="' . $lang['btn_media'] . '" class="btn" /></a>'; 40*bf9684bcSAndreas Gohr 41*bf9684bcSAndreas Gohr // delete button FIXME 42*bf9684bcSAndreas Gohr if ($item['writable'] && $auth >= AUTH_DELETE) { 43*bf9684bcSAndreas Gohr $link = DOKU_BASE . 'lib/exe/mediamanager.php?delete=' . rawurlencode($id) . 44*bf9684bcSAndreas Gohr '&sectok=' . getSecurityToken(); 45*bf9684bcSAndreas Gohr echo ' <a href="' . $link . '" class="btn_media_delete" title="' . $id . '">' . 46*bf9684bcSAndreas Gohr '<img src="' . DOKU_BASE . 'lib/images/trash.png" alt="' . $lang['btn_delete'] . '" ' . 47*bf9684bcSAndreas Gohr 'title="' . $lang['btn_delete'] . '" class="btn" /></a>'; 48*bf9684bcSAndreas Gohr } 49*bf9684bcSAndreas Gohr 50*bf9684bcSAndreas Gohr echo '<div class="example" id="ex_' . str_replace(':', '_', $id) . '">'; 51*bf9684bcSAndreas Gohr echo $lang['mediausage'] . ' <code>{{:' . $id . '}}</code>'; 52*bf9684bcSAndreas Gohr echo '</div>'; 53*bf9684bcSAndreas Gohr if ($item['isimg']) media_printimgdetail($item); 54*bf9684bcSAndreas Gohr echo '<div class="clearer"></div>' . NL; 55*bf9684bcSAndreas Gohr echo '</div>' . NL; 56*bf9684bcSAndreas Gohr 57*bf9684bcSAndreas Gohr } 58*bf9684bcSAndreas Gohr 59*bf9684bcSAndreas Gohr public function showDetails() 60*bf9684bcSAndreas Gohr { 61*bf9684bcSAndreas Gohr $id = $this->mediaFile->getId(); 62*bf9684bcSAndreas Gohr 63*bf9684bcSAndreas Gohr echo '<div class="detail">'; 64*bf9684bcSAndreas Gohr echo '<div class="thumb">'; 65*bf9684bcSAndreas Gohr echo '<a id="d_:' . $id . '" class="select">'; 66*bf9684bcSAndreas Gohr echo $this->getPreviewHtml(120, 120); 67*bf9684bcSAndreas Gohr echo '</a>'; 68*bf9684bcSAndreas Gohr echo '</div>'; 69*bf9684bcSAndreas Gohr 70*bf9684bcSAndreas Gohr // read EXIF/IPTC data 71*bf9684bcSAndreas Gohr $t = $this->mediaFile->getMeta()->getField(array('IPTC.Headline', 'xmp.dc:title')); 72*bf9684bcSAndreas Gohr $d = $this->mediaFile->getMeta()->getField(array( 73*bf9684bcSAndreas Gohr 'IPTC.Caption', 74*bf9684bcSAndreas Gohr 'EXIF.UserComment', 75*bf9684bcSAndreas Gohr 'EXIF.TIFFImageDescription', 76*bf9684bcSAndreas Gohr 'EXIF.TIFFUserComment', 77*bf9684bcSAndreas Gohr )); 78*bf9684bcSAndreas Gohr if (PhpString::strlen($d) > 250) $d = PhpString::substr($d, 0, 250) . '...'; 79*bf9684bcSAndreas Gohr $k = $this->mediaFile->getMeta()->getField(array('IPTC.Keywords', 'IPTC.Category', 'xmp.dc:subject')); 80*bf9684bcSAndreas Gohr 81*bf9684bcSAndreas Gohr // print EXIF/IPTC data 82*bf9684bcSAndreas Gohr if ($t || $d || $k) { 83*bf9684bcSAndreas Gohr echo '<p>'; 84*bf9684bcSAndreas Gohr if ($t) echo '<strong>' . hsc($t) . '</strong><br />'; 85*bf9684bcSAndreas Gohr if ($d) echo hsc($d) . '<br />'; 86*bf9684bcSAndreas Gohr if ($t) echo '<em>' . hsc($k) . '</em>'; 87*bf9684bcSAndreas Gohr echo '</p>'; 88*bf9684bcSAndreas Gohr } 89*bf9684bcSAndreas Gohr echo '</div>'; 90*bf9684bcSAndreas Gohr } 91*bf9684bcSAndreas Gohr 92*bf9684bcSAndreas Gohr} 93