Commit: 613a15b4954034a65072cd78d007072221779998
Author: Levi Morrison <le...@php.net> Wed, 24 Jul 2013 16:03:00 -0600
Parents: c9ee02900ed89e5de45bec513c1ce3b27e758758
Branches: responsive
Link:
http://git.php.net/?p=web/php.git;a=commitdiff;h=613a15b4954034a65072cd78d007072221779998
Log:
Merged and optimized JavaScript. Also removed jQuery UI dependency. Users are
reporting slow load-times; this is an effort to improve the situation. Missing
features include auto-complete and highlighting a user note when clicking on a
link to it.
Changed paths:
M include/footer.inc
M include/header.inc
M js/common.js
D js/jquery.scrollto.min.js
D js/usernotes.js
diff --git a/include/footer.inc b/include/footer.inc
index 9258d2c..fd635c4 100644
--- a/include/footer.inc
+++ b/include/footer.inc
@@ -42,8 +42,10 @@
}
?>
- <script type="text/javascript" src="/js/jquery.scrollto.min.js"></script>
+ <script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/common.js<?php echo $v?>"></script>
+ <?php include 'uservoice.inc' ?>
</body>
</html>
diff --git a/include/header.inc b/include/header.inc
index 7101fd2..f3b507c 100644
--- a/include/header.inc
+++ b/include/header.inc
@@ -42,7 +42,6 @@ if (isset($shortname) && $shortname) {
<link rel="stylesheet" type="text/css" href="<?php echo $STATIC_ROOT
?>styles/bootstrap.css<?php echo $v?>" media="all" />
<link rel="stylesheet" type="text/css" href="<?php echo $STATIC_ROOT
?>styles/theme.css<?php echo $v?>" media="screen" />
<link rel="stylesheet" type="text/css" href="<?php echo $STATIC_ROOT
?>styles/doc.css<?php echo $v?>" media="screen" />
- <link rel="stylesheet" type="text/css" href="<?php echo $STATIC_ROOT
?>styles/dynamic.php<?php echo $v?>" media="screen" />
<?php
if(isset($config['css']) && is_array($config['css'])):
@@ -66,17 +65,6 @@ if (isset($shortname) && $shortname) {
<script type="text/javascript" src="<?php echo $STATIC_ROOT
?>js/ext/html5.js<?php echo $v?>"></script>
<![endif]-->
- <script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
- <script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
- <script type="text/javascript">
- if (typeof jQuery == 'undefined') {
- document.write('<script type="text/javascript" src="<?php echo
$STATIC_ROOT ?>js/ext/jquery-1.7.2.min.js"><' + '/script>');
- document.write('<script type="text/javascript" src="<?php echo
$STATIC_ROOT ?>js/ext/jquery-ui-1.8.7.min.js"><' + '/script>');
- }
- </script>
- <script type="text/javascript" src="<?php echo $STATIC_ROOT
?>js/ext/jquery.ui.totop.js"></script>
- <script type="text/javascript" src="<?php echo $STATIC_ROOT
?>js/common.js<?php echo $v?>"></script>
- <script type="text/javascript" src="<?php echo $STATIC_ROOT
?>js/usernotes.js"></script>
<?php if (!empty($_SERVER["BASE_HREF"])): ?>
<base href="<?php echo $_SERVER["BASE_HREF"] ?>" />
<?php endif ?>
@@ -110,13 +98,6 @@ if (isset($shortname) && $shortname) {
</div>
</nav>
-<div id='mega-drop-down'>
- <div id='menu-container'>
- </div>
-</div>
-
-<?php include 'uservoice.inc' ?>
-
<?php if (!empty($config['intro'])):?>
<div id="intro">
<div class="container">
diff --git a/js/common.js b/js/common.js
index 2153f8a..e9e8106 100644
--- a/js/common.js
+++ b/js/common.js
@@ -1,6 +1,19 @@
+/* Plugins, etc, are on top. */
+
+/** {{{
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com |
http://flesler.blogspot.com
+ * Dual licensed under MIT and GPL.
+ * Date: 5/25/2009
+ * @author Ariel Flesler
+ * @version 1.4.2
+ *
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
+ */
+;(function(d){var
k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return
d(window)._scrollable()};d.fn._scrollable=function(){return
this.map(function(){var
a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return
a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return
d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof
j=='object'){b=j;j=0}if(typeof
b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return
this._scrollable().each(function(){var
q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof
f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var
e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var
o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete
g[c]}});t(b.onAfter);function
t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var
e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return
a[h]-d(a)[e.toLowerCase()]();var
c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return
Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof
a=='object'?a:{top:a,left:a}}})(jQuery);
+/*}}}*/
$(document).ready(function() {
-
// Ugh, cookie handling.
var cookies = document.cookie.split(";");
var showBetaWarning = true;
@@ -34,102 +47,6 @@ $(document).ready(function() {
});
}
- // load the search index and enable auto-complete.
- jQuery.getScript("/search-index.php?lang=" + getLanguage(), function(){
- var haveDesc = 0;
- jQuery.getScript("/search-index.php?lang=" + getLanguage() +
"&description=1", function(){
- haveDesc = 1;
- });
- $.widget("custom.catcomplete", $.ui.autocomplete, {
- /*
- // Print out category headers rather then in () after the match
- _renderMenu: function(ul, items) {
- var self = this, currentCategory = "";
- $.each(items, function(index, item) {
- if (item.category != currentCategory) {
- var cat = self._resolveIndexName(item.category);
- ul.append("<li class='ui-autocomplete-category'>" +
cat + "</li>");
- currentCategory = item.category;
- }
-
- self._renderItem(ul, item);
- });
- },
- */
- _renderItem: function(ul, item) {
- var n = $("<li></li>").data("item.autocomplete", item);
- var cat = this._resolveIndexName(item.category);
- if (item.desc) {
- n.append("<a><span class='search-item-label'>" +
item.label + " <span class='search-item-category'>(" + cat +
")</span></span><span class='search-item-description'>" + item.desc +
"</span></a>");
- }
- else {
- n.append("<a>" + item.label + " (" + cat + ") </a>");
- }
-
- return n.appendTo(ul);
- },
- // Resolve the element names to human understandable things
- _resolveIndexName: function(key) {
- var indexes = {
- 'phpdoc:varentry': 'Variables',
- 'phpdoc:classref': 'Classes',
- 'phpdoc:exceptionref': 'Exceptions',
- 'refentry': 'Functions'
- };
- return indexes[key] || key;
- }
- });
- $('#headsearch-keywords').catcomplete({
- delay: 50,
- minScore: 50,
- maxResults: 20,
- source: function(request, response){
- var term = request.term;
- var minScore = this.options.minScore;
-
- // Score an possible match
- var score = function(item){
- var match = item.search(new RegExp(term, "i"));
- if (match < 0) return 0;
- return 100 - (match * 2) - (item.length - term.length);
- };
-
- var results = [];
- $.each(searchIndex, function(idx, item) {
- var itemScore = score(item[0]);
- if (item && itemScore > minScore) {
- results.push({
- label: item[0],
- value: item[1],
- desc: haveDesc ? descriptionIndex[item[1]] : '',
- category: item[2],
- score: itemScore
- });
- }
- });
-
- // Only sort the matches
- results.sort(function(a, b){
- return b.score - a.score;
- });
-
- // Return at most maxResults
- response(results.slice(0, this.options.maxResults));
- },
- focus: function(event, ui) {
- $('#headsearch-keywords').val(ui.item.label);
- return false;
- },
- select: function(event, ui){
- event.preventDefault();
- $('#headsearch-keywords').val(ui.item.label);
- if (ui.item.value) {
- window.location = '/manual/' + getLanguage() + '/' +
ui.item.value + '.php';
- }
- }
- });
- });
-
var $docs = $('.docs');
var $refsect1 = $docs.find('.refentry .refsect1');
var $docsDivWithId = $docs.find('div[id]');
@@ -226,9 +143,102 @@ $(document).ready(function() {
$this.remove();
}
});
-
- $().UItoTop({ easingType: 'easeOutQuart' });
-
+
+/*{{{ Scroll to top */
+ (function() {
+ var settings = {
+ text: 'To Top',
+ min: 200,
+ inDelay:600,
+ outDelay:400,
+ containerID: 'toTop',
+ containerHoverID: 'toTopHover',
+ scrollSpeed: 400,
+ easingType: 'linear'
+ };
+ var containerIDhash = '#' + settings.containerID;
+ var containerHoverIDHash = '#'+settings.containerHoverID;
+
+ $('body').append('<a href="#" id="'+settings.containerID+'"
onclick="return false;">'+settings.text+'</a>');
+ $(containerIDhash).hide().click(function(){
+ $('html, body').animate({scrollTop:0}, settings.scrollSpeed,
settings.easingType);
+ $('#'+settings.containerHoverID, this).stop().animate({'opacity':
0 }, settings.inDelay, settings.easingType);
+ return false;
+ })
+ .prepend('<span id="'+settings.containerHoverID+'"></span>')
+ .hover(function() {
+ $(containerHoverIDHash, this).stop().animate({
+ 'opacity': 1
+ }, 600, 'linear');
+ }, function() {
+ $(containerHoverIDHash, this).stop().animate({
+ 'opacity': 0
+ }, 700, 'linear');
+ });
+
+ $(window).scroll(function() {
+ var sd = $(window).scrollTop();
+ if (typeof document.body.style.maxHeight === "undefined") {
+ $(containerIDhash).css({
+ 'position': 'absolute',
+ 'top': $(window).scrollTop() + $(window).height() - 50
+ });
+ }
+ if ( sd > settings.min ) {
+ $(containerIDhash).fadeIn(settings.inDelay);
+ } else {
+ $(containerIDhash).fadeOut(settings.outDelay);
+ }
+ });
+
+ })();
+/*}}}*/
+
+/*{{{User Notes*/
+ $("#usernotes a.usernotes-voteu, #usernotes a.usernotes-voted").each(
+ function () {
+ $(this).click(
+ function (event) {
+ event.preventDefault();
+ var url = $(this).attr("href");
+ var id = url.match(/\?id=(\d+)/)[1];
+ var request = $.ajax({
+ type: "POST",
+ url: url,
+ dataType: "json",
+ headers: {"X-Json": "On" },
+ beforeSend: function() {
+ $("#Vu"+id).hide();
+ $("#Vd"+id).hide();
+ $("#V"+id).html("<img src=\"/images/working.gif\"
alt=\"Working...\" border=\"0\" title=\"Working...\" />");
+ }
+ });
+ request.done(function(data) {
+ if(data.success != null && data.success == true) {
+ $("#V"+id).html("<div style=\"float: left; width: 16px; height:
16px; background-image: url(/images/notes-features.png);
background-position:-32px 16px; margin-right: 8px; overflow: hidden;\"
border=\"0\" alt=\"success\" title=\"Thank you for voting!\"></div>" +
data.update);
+ }
+ else {
+ var responsedata = "Error :(";
+ if (data.msg != null) {
+ responsedata = data.msg;
+ }
+ $("#V"+id).html("<div style=\"float: left; width: 16px; height:
16px; background-image: url(/images/notes-features.png);
background-position:-32px 0px; margin-right: 8px; overflow: hidden;\"
border=\"0\" alt=\"fail\" title=\"" + responsedata + "\"></div>");
+ }
+ });
+ request.fail(function(jqXHR, textStatus) {
+ $("#Vu"+id).show();
+ $("#Vd"+id).show();
+ $("#V"+id).html("<div style=\"float: left; width: 16px; height:
16px; background-image: url(/images/notes-features.png);
background-position:-32px 0px; margin-right: 8px; overflow: hidden;\"
border=\"0\" alt=\"fail\" title=\"Error :(\"></div>");
+ });
+ request.always(function(data) {
+ $("#V"+id).fadeIn(500, "linear");
+ });
+ }
+ );
+ }
+ );
+/*}}}*/
+
});
/**
diff --git a/js/jquery.scrollto.min.js b/js/jquery.scrollto.min.js
deleted file mode 100644
index f242cb9..0000000
--- a/js/jquery.scrollto.min.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * jQuery.ScrollTo - Easy element scrolling using jQuery.
- * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com |
http://flesler.blogspot.com
- * Dual licensed under MIT and GPL.
- * Date: 5/25/2009
- * @author Ariel Flesler
- * @version 1.4.2
- *
- * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
- */
-;(function(d){var
k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return
d(window)._scrollable()};d.fn._scrollable=function(){return
this.map(function(){var
a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return
a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return
d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof
j=='object'){b=j;j=0}if(typeof
b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return
this._scrollable().each(function(){var
q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof
f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var
e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var
o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete
g[c]}});t(b.onAfter);function
t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var
e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return
a[h]-d(a)[e.toLowerCase()]();var
c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return
Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof
a=='object'?a:{top:a,left:a}}})(jQuery);
diff --git a/js/usernotes.js b/js/usernotes.js
deleted file mode 100644
index 83804ea..0000000
--- a/js/usernotes.js
+++ /dev/null
@@ -1,49 +0,0 @@
-$(document).ready(function() {
- $("a").each(
- function () {
- if ($(this).is("a:.usernotes-voteu") ||
$(this).is("a:.usernotes-voted")) $(this).click(
- function (event) {
- event.preventDefault();
- var url = $(this).attr("href");
- var id = url.match(/\?id=(\d+)/)[1];
- var request = $.ajax({
- type: "POST",
- url: url,
- dataType: "json",
- headers: {"X-Json": "On" },
- beforeSend: function() {
- $("#Vu"+id).hide();
- $("#Vd"+id).hide();
- $("#V"+id).html("<img src=\"/images/working.gif\"
alt=\"Working...\" border=\"0\" title=\"Working...\" />");
- }
- });
- request.done(function(data) {
- if(data.success != null && data.success == true) {
- $("#V"+id).html("<div style=\"float: left; width: 16px; height:
16px; background-image: url(/images/notes-features.png);
background-position:-32px 16px; margin-right: 8px; overflow: hidden;\"
border=\"0\" alt=\"success\" title=\"Thank you for voting!\"></div>" +
data.update);
- }
- else {
- var responsedata = "Error :(";
- if (data.msg != null) {
- responsedata = data.msg;
- }
- $("#V"+id).html("<div style=\"float: left; width: 16px; height:
16px; background-image: url(/images/notes-features.png);
background-position:-32px 0px; margin-right: 8px; overflow: hidden;\"
border=\"0\" alt=\"fail\" title=\"" + responsedata + "\"></div>");
- }
- });
- request.fail(function(jqXHR, textStatus) {
- $("#Vu"+id).show();
- $("#Vd"+id).show();
- $("#V"+id).html("<div style=\"float: left; width: 16px; height:
16px; background-image: url(/images/notes-features.png);
background-position:-32px 0px; margin-right: 8px; overflow: hidden;\"
border=\"0\" alt=\"fail\" title=\"Error :(\"></div>");
- });
- request.always(function(data) {
- $("#V"+id).fadeIn(500, "linear");
- });
- }
- );
- }
- );
- if (window.location.href.match(/#\d+$/)) {
- var highlightId = window.location.href.match(/#(\d+)$/);
- highlightId = highlightId[1];
- $("#Hcom"+highlightId).effect("highlight", {}, 3000);
- }
-});
--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php