Unify tree template
Unify tree template

--- a/include/display.git_tree.php
+++ b/include/display.git_tree.php
@@ -28,51 +28,38 @@
 	$lsout = git_ls_tree($projectroot . $project, $hash, TRUE);
 	$refs = read_info_ref($projectroot . $project);
 	$tpl->clear_all_assign();
+	$tpl->assign("project",$project);
+	$tpl->assign("hash",$hash);
+	if (isset($hashbase))
+		$tpl->assign("hashbase",$hashbase);
 	if (isset($hashbase) && ($co = git_read_commit($projectroot . $project, $hashbase))) {
 		$basekey = $hashbase;
-		$tpl->assign("hashbase",$hashbase);
-		$tpl->assign("project",$project);
+		$tpl->assign("fullnav",TRUE);
 		$tpl->assign("title",$co['title']);
 		if (isset($refs[$hashbase]))
 			$tpl->assign("hashbaseref",$refs[$hashbase]);
-		$tpl->display("tree_nav.tpl");
-	} else {
-		$tpl->assign("hash",$hash);
-		$tpl->display("tree_emptynav.tpl");
 	}
-	$tpl->clear_all_assign();
-	$tpl->assign("project",$project);
-	$tpl->assign("hashbase",$hashbase);
 	$paths = git_path_trees($projectroot . $project, $hashbase, $file);
 	$tpl->assign("paths",$paths);
-	$tpl->display("tree_filelist_header.tpl");
 
+	if (isset($file))
+		$tpl->assign("base",$file . "/");
+
+	$treelines = array();
 	$tok = strtok($lsout,"\0");
-	$alternate = FALSE;
 	while ($tok !== false) {
 		if (ereg("^([0-9]+) (.+) ([0-9a-fA-F]{40})\t(.+)$",$tok,$regs)) {
-			$tpl->clear_all_assign();
-			if ($alternate)
-				$tpl->assign("class","dark");
-			else
-				$tpl->assign("class","light");
-			$alternate = !$alternate;
-			$tpl->assign("filemode",mode_str($regs[1]));
-			$tpl->assign("type",$regs[2]);
-			$tpl->assign("hash",$regs[3]);
-			$tpl->assign("name",$regs[4]);
-			$tpl->assign("project",$project);
-			if (isset($file))
-				$tpl->assign("base",$file . "/");
-			if (isset($basekey))
-				$tpl->assign("hashbase",$basekey);
-			$tpl->display("tree_filelist_item.tpl");
+			$treeline = array();
+			$treeline["filemode"] = mode_str($regs[1]);
+			$treeline["type"] = $regs[2];
+			$treeline["hash"] = $regs[3];
+			$treeline["name"] = $regs[4];
+			$treelines[] = $treeline;
 		}
 		$tok = strtok("\0");
 	}
-
-	$tpl->clear_all_assign();
-	$tpl->display("tree_filelist_footer.tpl");
+	$tpl->assign("treelines",$treelines);
+	$tpl->display("tree.tpl");
 }
 
 ?>

--- /dev/null
+++ b/templates/tree.tpl
@@ -1,1 +1,58 @@
+{*
+ *  tree.tpl
+ *  gitphp: A PHP git repository browser
+ *  Component: Tree view template
+ *
+ *  Copyright (C) 2009 Christopher Han <xiphux@gmail.com>
+ *}
+ {* Nav *}
+ {if $fullnav}
+   <div class="page_nav">
+     <a href="{$SCRIPT_NAME}?p={$project}&a=summary">summary</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=shortlog&h={$hashbase}">shortlog</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=log&h={$hashbase}">log</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=commit&h={$hashbase}">commit</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=commitdiff&h={$hashbase}">commitdiff</a> | tree<br /><br />
+   </div>
+   <div>
+     <a href="{$SCRIPT_NAME}?p={$project}&a=commit&h={$hashbase}" class="title">{$title}
+       {if $hashbaseref}
+         <span class="tag">{$hashbaseref}</span>
+       {/if}
+     </a>
+   </div>
+ {else}
+   <div class="page_nav"><br /><br /></div>
+   <div class="title">{$hash}</div>
+ {/if}
+ {* Path *}
+ <div class="page_path">
+   <b>
+     <a href="{$SCRIPT_NAME}?p={$project}&a=tree&hb={$hashbase}&h={$hashbase}">[{$project}]</a> / 
+     {foreach from=$paths item=path}
+       <a href="{$SCRIPT_NAME}?p={$project}&a=tree&hb={$hashbase}&h={$path.tree}&f={$path.full}">{$path.short}</a> / 
+     {/foreach}
+   </b>
+ </div>
+ <div class="page_body">
+   {* List files *}
+   <table cellspacing="0">
+     {section name=tree loop=$treelines}
+       <tr class="{cycle values="light,dark"}">
+         <td class="monospace">{$treelines[tree].filemode}</td>
+         {if $treelines[tree].type == "blob"}
+           <td class="list">
+             <a href="{$SCRIPT_NAME}?p={$project}&a=blob&h={$treelines[tree].hash}{if $hashbase}&hb={$hashbase}{/if}&f={if $base}{$base}{/if}{$treelines[tree].name}" class="list">{$treelines[tree].name}</a>
+	   </td>
+           <td class="link">
+	     <a href="{$SCRIPT_NAME}?p={$project}&a=blob&h={$treelines[tree].hash}{if $hashbase}&hb={$hashbase}{/if}&f={if $base}{$base}{/if}{$treelines[tree].name}">blob</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=history&h={$hashbase}&f={if $base}{$base}{/if}{$treelines[tree].name}">history</a>
+	   </td>
+         {elseif $treelines[tree].type == "tree"}
+           <td class="list">
+             <a href="{$SCRIPT_NAME}?p={$project}&a=tree&h={$treelines[tree].hash}{if $hashbase}&hb={$hashbase}{/if}&f={if $base}{$base}{/if}{$treelines[tree].name}">{$treelines[tree].name}</a>
+	   </td>
+           <td class="link">
+	     <a href="{$SCRIPT_NAME}?p={$project}&a=tree&h={$treelines[tree].hash}{if $hashbase}&hb={$hashbase}{/if}&f={if $base}{$base}{/if}{$treelines[tree].name}">tree</a>
+	   </td>
+         {/if}
+       </tr>
+     {/section}
+   </table>
+ </div>
 

--- a/templates/tree_emptynav.tpl
+++ /dev/null
@@ -1,10 +1,1 @@
-{*
- *  tree_emptynav.tpl
- *  gitphp: A PHP git repository browser
- *  Component: Tree view emptynav template
- *
- *  Copyright (C) 2006 Christopher Han <xiphux@gmail.com>
- *}
- <div class="page_nav"><br /><br /></div>
- <div class="title">{$hash}</div>
 

--- a/templates/tree_filelist_footer.tpl
+++ /dev/null
@@ -1,10 +1,1 @@
-{*
- *  tree_filelist_footer.tpl
- *  gitphp: A PHP git repository browser
- *  Component: Tree view filelist footer template
- *
- *  Copyright (C) 2006 Christopher Han <xiphux@gmail.com>
- *}
- </table>
- </div>
 

--- a/templates/tree_filelist_header.tpl
+++ /dev/null
@@ -1,11 +1,1 @@
-{*
- *  tree_filelist_header.tpl
- *  gitphp: A PHP git repository browser
- *  Component: Tree view filelist header template
- *
- *  Copyright (C) 2006 Christopher Han <xiphux@gmail.com>
- *}
- <div class="page_path"><b><a href="{$SCRIPT_NAME}?p={$project}&a=tree&hb={$hashbase}&h={$hashbase}">[{$project}]</a> / {foreach from=$paths item=path}<a href="{$SCRIPT_NAME}?p={$project}&a=tree&hb={$hashbase}&h={$path.tree}&f={$path.full}">{$path.short}</a> / {/foreach}</b></div>
- <div class="page_body">
- <table cellspacing="0">
 

--- a/templates/tree_filelist_item.tpl
+++ /dev/null
@@ -1,20 +1,1 @@
-{*
- *  tree_filelist_item.tpl
- *  gitphp: A PHP git repository browser
- *  Component: Tree view filelist item template
- *
- *  Copyright (C) 2006 Christopher Han <xiphux@gmail.com>
- *}
- <tr class="{$class}">
- <td class="monospace">{$filemode}</td>
- <td class="list">
- {if $type == "blob"}
- <a href="{$SCRIPT_NAME}?p={$project}&a=blob&h={$hash}{if $hashbase}&hb={$hashbase}{/if}&f={if $base}{$base}{/if}{$name}" class="list">{$name}</a></td>
- <td class="link"><a href="{$SCRIPT_NAME}?p={$project}&a=blob&h={$hash}{if $hashbase}&hb={$hashbase}{/if}&f={if $base}{$base}{/if}{$name}">blob</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=history&h={$hashbase}&f={if $base}{$base}{/if}{$name}">history</a>
- {elseif $type == "tree"}
-   <a href="{$SCRIPT_NAME}?p={$project}&a=tree&h={$hash}{if $hashbase}&hb={$hashbase}{/if}&f={if $base}{$base}{/if}{$name}">{$name}</a></td>
-   <td class="link"><a href="{$SCRIPT_NAME}?p={$project}&a=tree&h={$hash}{if $hashbase}&hb={$hashbase}{/if}&f={if $base}{$base}{/if}{$name}">tree</a>
- {/if}
- </td>
- </tr>
 

file:a/templates/tree_nav.tpl (deleted)
--- a/templates/tree_nav.tpl
+++ /dev/null
@@ -1,15 +1,1 @@
-{*
- *  tree_nav.tpl
- *  gitphp: A PHP git repository browser
- *  Component: Tree view nav template
- *
- *  Copyright (C) 2006 Christopher Han <xiphux@gmail.com>
- *}
- <div class="page_nav"><a href="{$SCRIPT_NAME}?p={$project}&a=summary">summary</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=shortlog&h={$hashbase}">shortlog</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=log&h={$hashbase}">log</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=commit&h={$hashbase}">commit</a> | <a href="{$SCRIPT_NAME}?p={$project}&a=commitdiff&h={$hashbase}">commitdiff</a> | tree<br /><br />
- </div>
- <div><a href="{$SCRIPT_NAME}?p={$project}&a=commit&h={$hashbase}" class="title">{$title}
- {if $hashbaseref}
- <span class="tag">{$hashbaseref}</span>
- {/if}
- </a></div>
 

comments