summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fileviewer.php15
-rw-r--r--js/jquery.scrollTo.js10
-rw-r--r--styles/style.css6
-rw-r--r--templates/fileviewer.phtml10
4 files changed, 37 insertions, 4 deletions
diff --git a/fileviewer.php b/fileviewer.php
index 2c375ad..b26b32f 100644
--- a/fileviewer.php
+++ b/fileviewer.php
@@ -1,7 +1,14 @@
<?php
-function highlight_num($file){
- $numbers = '<code class="num">'. implode(range(1, count(file($file))), '<br />') . '</code>';
- return $numbers . highlight_file($file, true);
+function highlight_num($file, $line){
+ $lineCount = count(file($file));
+ $numbers = '<code class="num">';
+ for($i = 1; $i<=$lineCount; $i++){
+ $numbers .= ($i==$line)? '<span id="num_emph">&bull; '.$i.'</span>' : $i;
+ $numbers .= '<br />';
+ }
+ $numbers .= '</code>';
+
+ return $numbers . highlight_file($file, true);
}
@@ -14,7 +21,7 @@ if(isset($_GET['file']) && $_GET['file']!=''){
if(!is_readable($file))
$content = 'File('.$file.') is not readable.';
else
- $content = highlight_num($file);
+ $content = highlight_num($file, $line);
} else {
$content = 'No file to view';
diff --git a/js/jquery.scrollTo.js b/js/jquery.scrollTo.js
new file mode 100644
index 0000000..b9d696e
--- /dev/null
+++ b/js/jquery.scrollTo.js
@@ -0,0 +1,10 @@
+/**
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
+ * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ * Date: 2/19/2008
+ * @author Ariel Flesler
+ * @version 1.3.3
+ */
+;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); \ No newline at end of file
diff --git a/styles/style.css b/styles/style.css
index 4a7f8f5..9c85024 100644
--- a/styles/style.css
+++ b/styles/style.css
@@ -141,3 +141,9 @@ img.list_reload {
padding-right: 6pt;
border-right: 1px solid gray;
}
+
+#num_emph {
+ color: red;
+ background-color: #ddd;
+ font-weight: bold;
+} \ No newline at end of file
diff --git a/templates/fileviewer.phtml b/templates/fileviewer.phtml
index 9250765..f3c878d 100644
--- a/templates/fileviewer.phtml
+++ b/templates/fileviewer.phtml
@@ -3,10 +3,20 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+ <script src="js/jquery-1.2.3.pack.js" type="text/javascript" charset="utf-8"></script>
+ <script src="js/jquery.scrollTo.js" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" type="text/css" href="styles/style.css" />
<title>
webgrind - fileviewer: <?=$file?>
</title>
+ <script type="text/javascript" charset="utf-8">
+ $(document).ready(function() {
+ $.scrollTo.defaults.offset = {left:0, top:-150 };
+ $.scrollTo($('#num_emph'));
+ });
+
+ </script>
+
</head>
<body>
<?=$file?>