For files inside /apps/appname/id, also make available the placeholders for that application

This commit is contained in:
Nathan Gray 2012-06-18 15:02:52 +00:00
parent 358252b4a1
commit 4d2f551a5a
2 changed files with 37 additions and 0 deletions

View File

@ -138,6 +138,35 @@ class filemanager_merge extends bo_merge
$file["links/{$app}"] = $this->get_links('filemanager',$id, $app);
}
*/
// If in apps folder, try for app-specific placeholders
if($dirlist[1] == 'apps' && count($dirlist) > 1)
{
// Get rid of any virtual folders (eg: All$)
$resolved = egw_vfs::resolve_url_symlinks($file['path']);
if($resolved)
{
list($app, $id) = explode('/', substr($resolved, strpos($resolved, 'apps/')+5));
if($app && $GLOBALS['egw_info']['user']['apps'][$app])
{
$app_merge = null;
try
{
$classname = $app .'_merge';
if(class_exists($classname))
{
$app_merge = new $classname();
if($app_merge && method_exists($app_merge, 'get_replacements'))
{
$app_placeholders = $app_merge->get_replacements($id, $content);
}
}
}
// Silently discard & continue
catch(Exception $e) {}
}
}
}
$link = egw_link::mime_open($file['url'], $file['mime']);
if(is_array($link))
{
@ -166,6 +195,10 @@ class filemanager_merge extends bo_merge
if(!$value) $value = '';
$info['$$'.($prefix ? $prefix.'/':'').$key.'$$'] = $value;
}
if($app_placeholders)
{
$info = array_merge($app_placeholders, $info);
}
return $info;
}
@ -212,6 +245,9 @@ class filemanager_merge extends bo_merge
echo '<tr><td>{{#'.$name.'}}</td><td colspan="3">'.$field['label']."</td></tr>\n";
}
echo '<tr><td colspan="4"><h3>'.lang('Application fields').":</h3></td></tr>";
echo '<tr><td colspan="4">'.lang('For files linked to an application entry (inside /apps/appname/id/) the placeholders for that application are also available. See the specific application for a list of available placeholders.').'</td></tr>';
echo '<tr><td colspan="4"><h3>'.lang('General fields:')."</h3></td></tr>";
foreach(array(
'date' => lang('Date'),

View File

@ -105,6 +105,7 @@ files in this directory filemanager en Files in this directory
filesystem check reported no problems. filemanager en Filesystem check reported no problems.
fix reported problems filemanager en Fix reported problems
folder up filemanager en Folder up
for files linked to an application entry (inside /apps/appname/id/) the placeholders for that application are also available. see the specific application for a list of placeholders filemanager en For files linked to an application entry (inside /apps/appname/id/) the placeholders for that application are also available. See the specific application for a list of placeholders
general filemanager en General
go home filemanager en Go home
go to filemanager en Go to