refactor detail.php to template.php
- refactor detail en mediamanager link creation - refactor metadata listing
This commit is contained in:
parent
5d873dd4ce
commit
becfa414b5
|
@ -5,7 +5,7 @@
|
|||
* following contents:
|
||||
* fieldname - Where data will be saved (EXIF or IPTC field)
|
||||
* label - key to lookup in the $lang var, if not found printed as is
|
||||
* htmltype - 'text' or 'textarea'
|
||||
* htmltype - 'text', 'textarea' or 'date'
|
||||
* lookups - array additional fields to lookup the data (EXIF or IPTC fields)
|
||||
*
|
||||
* The fields are not ordered continously to make inserting additional items
|
||||
|
|
|
@ -52,6 +52,8 @@ $lang['btn_register'] = 'Register';
|
|||
$lang['btn_apply'] = 'Apply';
|
||||
$lang['btn_media'] = 'Media Manager';
|
||||
$lang['btn_deleteuser'] = 'Remove My Account';
|
||||
$lang['btn_img_backto'] = 'Back to %s';
|
||||
$lang['btn_mediaManager'] = 'View in media manager';
|
||||
|
||||
$lang['loggedinas'] = 'Logged in as';
|
||||
$lang['user'] = 'Username';
|
||||
|
@ -253,7 +255,6 @@ $lang['admin_register'] = 'Add new user';
|
|||
$lang['metaedit'] = 'Edit Metadata';
|
||||
$lang['metasaveerr'] = 'Writing metadata failed';
|
||||
$lang['metasaveok'] = 'Metadata saved';
|
||||
$lang['img_backto'] = 'Back to';
|
||||
$lang['img_title'] = 'Title';
|
||||
$lang['img_caption'] = 'Caption';
|
||||
$lang['img_date'] = 'Date';
|
||||
|
@ -266,7 +267,6 @@ $lang['img_camera'] = 'Camera';
|
|||
$lang['img_keywords'] = 'Keywords';
|
||||
$lang['img_width'] = 'Width';
|
||||
$lang['img_height'] = 'Height';
|
||||
$lang['img_manager'] = 'View in media manager';
|
||||
|
||||
$lang['subscr_subscribe_success'] = 'Added %s to subscription list for %s';
|
||||
$lang['subscr_subscribe_error'] = 'Error adding %s to subscription list for %s';
|
||||
|
|
|
@ -548,6 +548,7 @@ function tpl_actionlink($type, $pre = '', $suf = '', $inner = '', $return = fals
|
|||
* @var string $method
|
||||
* @var bool $nofollow
|
||||
* @var array $params
|
||||
* @var string $replacement
|
||||
*/
|
||||
extract($data);
|
||||
if(strpos($id, '#') === 0) {
|
||||
|
@ -556,6 +557,9 @@ function tpl_actionlink($type, $pre = '', $suf = '', $inner = '', $return = fals
|
|||
$linktarget = wl($id, $params);
|
||||
}
|
||||
$caption = $lang['btn_'.$type];
|
||||
if(strpos($caption, '%s')){
|
||||
$caption = sprintf($caption, $replacement);
|
||||
}
|
||||
$akey = $addTitle = '';
|
||||
if($accesskey) {
|
||||
$akey = 'accesskey="'.$accesskey.'" ';
|
||||
|
@ -609,11 +613,12 @@ function tpl_get_action($type) {
|
|||
if ($type == 'subscription') $type = 'subscribe';
|
||||
if(!actionOK($type)) return false;
|
||||
|
||||
$accesskey = null;
|
||||
$id = $ID;
|
||||
$method = 'get';
|
||||
$params = array('do' => $type);
|
||||
$nofollow = true;
|
||||
$accesskey = null;
|
||||
$id = $ID;
|
||||
$method = 'get';
|
||||
$params = array('do' => $type);
|
||||
$nofollow = true;
|
||||
$replacement = '';
|
||||
switch($type) {
|
||||
case 'edit':
|
||||
// most complicated type - we need to decide on current action
|
||||
|
@ -670,6 +675,11 @@ function tpl_get_action($type) {
|
|||
$params = array();
|
||||
$accesskey = 'b';
|
||||
break;
|
||||
case 'img_backto':
|
||||
$params = array();
|
||||
$accesskey = 'b';
|
||||
$replacement = $ID;
|
||||
break;
|
||||
case 'login':
|
||||
$params['sectok'] = getSecurityToken();
|
||||
if(isset($_SERVER['REMOTE_USER'])) {
|
||||
|
@ -717,11 +727,26 @@ function tpl_get_action($type) {
|
|||
case 'media':
|
||||
$params['ns'] = getNS($ID);
|
||||
break;
|
||||
case 'mediaManager':
|
||||
// View image in media manager
|
||||
global $IMG;
|
||||
$imgNS = getNS($IMG);
|
||||
$authNS = auth_quickaclcheck("$imgNS:*");
|
||||
if ($authNS < AUTH_UPLOAD) {
|
||||
return false;
|
||||
}
|
||||
$params = array(
|
||||
'ns' => $imgNS,
|
||||
'image' => $IMG,
|
||||
'do' => 'media'
|
||||
);
|
||||
//$type = 'media';
|
||||
break;
|
||||
default:
|
||||
return '[unknown %s type]';
|
||||
break;
|
||||
}
|
||||
return compact('accesskey', 'type', 'id', 'method', 'params', 'nofollow');
|
||||
return compact('accesskey', 'type', 'id', 'method', 'params', 'nofollow', 'replacement');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1016,6 +1041,67 @@ function tpl_img_getTag($tags, $alt = '', $src = null) {
|
|||
return $info;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a description list of the metatags of the current image
|
||||
*
|
||||
* @return string html of description list
|
||||
*/
|
||||
function tpl_img_meta() {
|
||||
global $lang;
|
||||
|
||||
$tags = tpl_get_img_meta();
|
||||
|
||||
echo '<dl>';
|
||||
foreach($tags as $tag) {
|
||||
$label = $lang[$tag['langkey']];
|
||||
if(!$label) $label = $tag['langkey'];
|
||||
|
||||
echo '<dt>'.$label.':</dt><dd>';
|
||||
if ($tag['type'] == 'date') {
|
||||
echo dformat($tag['value']);
|
||||
} else {
|
||||
echo hsc($tag['value']);
|
||||
}
|
||||
echo '</dd>';
|
||||
}
|
||||
echo '</dl>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns metadata as configured in mediameta config file, ready for creating html
|
||||
*
|
||||
* @return array with arrays containing the entries:
|
||||
* - string langkey key to lookup in the $lang var, if not found printed as is
|
||||
* - string type type of value
|
||||
* - string value tag value (unescaped)
|
||||
*/
|
||||
function tpl_get_img_meta() {
|
||||
|
||||
$config_files = getConfigFiles('mediameta');
|
||||
foreach ($config_files as $config_file) {
|
||||
if(@file_exists($config_file)) {
|
||||
include($config_file);
|
||||
}
|
||||
}
|
||||
/** @var array $fields the included array with metadata */
|
||||
|
||||
$tags = array();
|
||||
foreach($fields as $tag){
|
||||
$t = array();
|
||||
if (!empty($tag[0])) {
|
||||
$t = array($tag[0]);
|
||||
}
|
||||
if(is_array($tag[3])) {
|
||||
$t = array_merge($t,$tag[3]);
|
||||
}
|
||||
$value = tpl_img_getTag($t);
|
||||
if ($value) {
|
||||
$tags[] = array('langkey' => $tag[1], 'type' => $tag[2], 'value' => $value);
|
||||
}
|
||||
}
|
||||
return $tags;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints the image with a link to the full sized version
|
||||
*
|
||||
|
|
|
@ -231,3 +231,4 @@
|
|||
.pagetools-item(subscribe, 9, subscribe);
|
||||
.pagetools-item(mediaManager, 11);
|
||||
.pagetools-item(back, 12);
|
||||
.pagetools-item(img_backto, 12);
|
||||
|
|
|
@ -55,37 +55,7 @@ header('X-UA-Compatible: IE=edge,chrome=1');
|
|||
<?php tpl_img(900,700); /* parameters: maximum width, maximum height (and more) */ ?>
|
||||
|
||||
<div class="img_detail">
|
||||
<dl>
|
||||
<?php
|
||||
// @todo: logic should be transferred to backend
|
||||
$config_files = getConfigFiles('mediameta');
|
||||
foreach ($config_files as $config_file) {
|
||||
if(@file_exists($config_file)) {
|
||||
include($config_file);
|
||||
}
|
||||
}
|
||||
|
||||
foreach($fields as $key => $tag){
|
||||
$t = array();
|
||||
if (!empty($tag[0])) {
|
||||
$t = array($tag[0]);
|
||||
}
|
||||
if(is_array($tag[3])) {
|
||||
$t = array_merge($t,$tag[3]);
|
||||
}
|
||||
$value = tpl_img_getTag($t);
|
||||
if ($value) {
|
||||
echo '<dt>'.$lang[$tag[1]].':</dt><dd>';
|
||||
if ($tag[2] == 'date') {
|
||||
echo dformat($value);
|
||||
} else {
|
||||
echo hsc($value);
|
||||
}
|
||||
echo '</dd>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</dl>
|
||||
<?php tpl_img_meta(); ?>
|
||||
</div>
|
||||
<?php //Comment in for Debug// dbg(tpl_img_getTag('Simple.Raw'));?>
|
||||
<?php endif; ?>
|
||||
|
@ -109,23 +79,17 @@ header('X-UA-Compatible: IE=edge,chrome=1');
|
|||
<div class="tools">
|
||||
<ul>
|
||||
<?php
|
||||
$data = array();
|
||||
$data['view'] = 'detail';
|
||||
|
||||
// View in media manager; @todo: transfer logic to backend
|
||||
$imgNS = getNS($IMG);
|
||||
$authNS = auth_quickaclcheck("$imgNS:*");
|
||||
if (($authNS >= AUTH_UPLOAD) && function_exists('media_managerURL')) {
|
||||
$mmURL = media_managerURL(array('ns' => $imgNS, 'image' => $IMG));
|
||||
$data['items']['mediaManager'] = '<li><a href="'.$mmURL.'" class="mediaManager"><span>'.$lang['img_manager'].'</span></a></li>';
|
||||
}
|
||||
|
||||
// Back to [ID]; @todo: transfer logic to backend
|
||||
$data['items']['img_backto'] = '<li><a href="'.wl($ID).'" class="back"><span>'.$lang['img_backto'].' '.$ID.'</span></a></li>';
|
||||
$data = array(
|
||||
'view' => 'detail',
|
||||
'items' => array(
|
||||
'mediaManager' => tpl_action('mediaManager', 1, 'li', 1, '<span>', '</span>'),
|
||||
'img_backto' => tpl_action('img_backto', 1, 'li', 1, '<span>', '</span>'),
|
||||
)
|
||||
);
|
||||
|
||||
// the page tools can be amended through a custom plugin hook
|
||||
$evt = new Doku_Event('TEMPLATE_PAGETOOLS_DISPLAY', $data);
|
||||
if($evt->advise_before()){
|
||||
if($evt->advise_before()) {
|
||||
foreach($evt->data['items'] as $k => $html) echo $html;
|
||||
}
|
||||
$evt->advise_after();
|
||||
|
|
Loading…
Reference in New Issue