Version Notes
Fist stable
Download this release
Release Info
| Developer | volgodark |
| Extension | Magazento_Productivity |
| Version | 1.0.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.0 to 1.0.1
- app/etc/modules/Ip_Productactivity.xml +9 -0
- package.xml +6 -6
- skin/frontend/base/default/ip_productactivity/img/all.gif +0 -0
- skin/frontend/base/default/ip_productactivity/img/drop.gif +0 -0
- skin/frontend/base/default/ip_productactivity/img/drop.png +0 -0
- skin/frontend/base/default/ip_productactivity/img/home.png +0 -0
- skin/frontend/base/default/ip_productactivity/img/menu_tabs_sprite.png +0 -0
- skin/frontend/base/default/ip_productactivity/livepipe.js +181 -0
- skin/frontend/base/default/ip_productactivity/promo.jpg +0 -0
- skin/frontend/base/default/ip_productactivity/style.css +152 -0
- skin/frontend/base/default/ip_productactivity/tabs.css +55 -0
- skin/frontend/base/default/ip_productactivity/tabs.js +465 -0
app/etc/modules/Ip_Productactivity.xml
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Ip_Productactivity>
|
| 5 |
+
<active>true</active>
|
| 6 |
+
<codePool>community</codePool>
|
| 7 |
+
</Ip_Productactivity>
|
| 8 |
+
</modules>
|
| 9 |
+
</config>
|
package.xml
CHANGED
|
@@ -1,18 +1,18 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Magazento_Productivity</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>GPL</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Show best, popular, new reviews and new products and reviews to your customers</summary>
|
| 10 |
<description>Show best, popular, new reviews and new products and reviews to your customers</description>
|
| 11 |
-
<notes>
|
| 12 |
-
<authors><author><name>volgodark</name><user>
|
| 13 |
<date>2012-12-03</date>
|
| 14 |
-
<time>22:
|
| 15 |
-
<contents><target name="magecommunity"><dir name="Ip"><dir name="Productactivity"><dir name="Block"><file name="Developer.php" hash="e779bd431338e7f703148338ef02fdc4"/><file name="New.php" hash="c05d663f09f242ef8bbdf04dbf5925a9"/><file name="Popular.php" hash="d296c325bbc3fcd51d839e559e0baa6b"/><file name="Review.php" hash="d79ceddd7d74c6cf77c94e7d04b808bc"/><file name="Toprated.php" hash="413c113f5849eb5b055fc071d3df33c2"/><file name="Topsell.php" hash="a3172ab702d3e7ef2c5844407098cfd9"/></dir><dir name="Helper"><file name="Data.php" hash="ca7d799b81f41b7098e04ce0daefaa8d"/></dir><dir name="Model"><file name="Data.php" hash="0f41804ab583e2fef0eae3e98e7810b4"/></dir><dir name="etc"><file name="config.xml" hash="c1974d781b7e2eae921b158c249cd929"/><file name="system.xml" hash="aacdce560d44c6c8b2bb29176168924d"/></dir></dir></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
-
<dependencies
|
| 18 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Magazento_Productivity</name>
|
| 4 |
+
<version>1.0.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>GPL</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Show best, popular, new reviews and new products and reviews to your customers</summary>
|
| 10 |
<description>Show best, popular, new reviews and new products and reviews to your customers</description>
|
| 11 |
+
<notes>Fist stable</notes>
|
| 12 |
+
<authors><author><name>volgodark</name><user>volgodark</user><email>volgodark@gmail.com</email></author></authors>
|
| 13 |
<date>2012-12-03</date>
|
| 14 |
+
<time>22:40:58</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="Ip"><dir name="Productactivity"><dir name="Block"><file name="Developer.php" hash="e779bd431338e7f703148338ef02fdc4"/><file name="New.php" hash="c05d663f09f242ef8bbdf04dbf5925a9"/><file name="Popular.php" hash="d296c325bbc3fcd51d839e559e0baa6b"/><file name="Review.php" hash="d79ceddd7d74c6cf77c94e7d04b808bc"/><file name="Toprated.php" hash="413c113f5849eb5b055fc071d3df33c2"/><file name="Topsell.php" hash="a3172ab702d3e7ef2c5844407098cfd9"/></dir><dir name="Helper"><file name="Data.php" hash="ca7d799b81f41b7098e04ce0daefaa8d"/></dir><dir name="Model"><file name="Data.php" hash="0f41804ab583e2fef0eae3e98e7810b4"/></dir><dir name="etc"><file name="config.xml" hash="c1974d781b7e2eae921b158c249cd929"/><file name="system.xml" hash="aacdce560d44c6c8b2bb29176168924d"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><file name="ip_productactivity.xml" hash=""/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Ip_Productactivity.xml" hash="8bc75d6951ff272798ae6b97bbbae8c6"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="ip_productactivity"><dir name="img"><file name="all.gif" hash="8a5e2259f5cbf06bdbf303a258be4590"/><file name="drop.gif" hash="1be9ffe42c8d599225596272663e3e06"/><file name="drop.png" hash="4178363d189e1a18093bf7412a0b7808"/><file name="home.png" hash="31fed0cd2dfe3ed662ed92a9cb4af580"/><file name="menu_tabs_sprite.png" hash="16fcb5977b65ca67b0f20008d950afba"/></dir><file name="livepipe.js" hash="3f8ee3a15b811a4a11817f1662599213"/><file name="promo.jpg" hash="8e34bc79c2f2927ce674471e463cddc0"/><file name="style.css" hash="a746f2398f2c450e8f1e62782cd6ece4"/><file name="tabs.css" hash="21d3a70626a48d4e039a774fc66eefd4"/><file name="tabs.js" hash="bbdba6abfaef6a655ef12e61f3eb2f90"/></dir></dir></dir></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
+
<dependencies><required><php><min>5.1.1</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
</package>
|
skin/frontend/base/default/ip_productactivity/img/all.gif
ADDED
|
Binary file
|
skin/frontend/base/default/ip_productactivity/img/drop.gif
ADDED
|
Binary file
|
skin/frontend/base/default/ip_productactivity/img/drop.png
ADDED
|
Binary file
|
skin/frontend/base/default/ip_productactivity/img/home.png
ADDED
|
Binary file
|
skin/frontend/base/default/ip_productactivity/img/menu_tabs_sprite.png
ADDED
|
Binary file
|
skin/frontend/base/default/ip_productactivity/livepipe.js
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* @author Ryan Johnson <http://syntacticx.com/>
|
| 3 |
+
* @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
|
| 4 |
+
* @package LivePipe UI
|
| 5 |
+
* @license MIT
|
| 6 |
+
* @url http://livepipe.net/core
|
| 7 |
+
* @require prototype.js
|
| 8 |
+
*/
|
| 9 |
+
|
| 10 |
+
if(typeof(Control) == 'undefined')
|
| 11 |
+
Control = {};
|
| 12 |
+
|
| 13 |
+
var $proc = function(proc){
|
| 14 |
+
return typeof(proc) == 'function' ? proc : function(){return proc};
|
| 15 |
+
};
|
| 16 |
+
|
| 17 |
+
var $value = function(value){
|
| 18 |
+
return typeof(value) == 'function' ? value() : value;
|
| 19 |
+
};
|
| 20 |
+
|
| 21 |
+
Object.Event = {
|
| 22 |
+
extend: function(object){
|
| 23 |
+
object._objectEventSetup = function(event_name){
|
| 24 |
+
this._observers = this._observers || {};
|
| 25 |
+
this._observers[event_name] = this._observers[event_name] || [];
|
| 26 |
+
};
|
| 27 |
+
object.observe = function(event_name,observer){
|
| 28 |
+
if(typeof(event_name) == 'string' && typeof(observer) != 'undefined'){
|
| 29 |
+
this._objectEventSetup(event_name);
|
| 30 |
+
if(!this._observers[event_name].include(observer))
|
| 31 |
+
this._observers[event_name].push(observer);
|
| 32 |
+
}else
|
| 33 |
+
for(var e in event_name)
|
| 34 |
+
this.observe(e,event_name[e]);
|
| 35 |
+
};
|
| 36 |
+
object.stopObserving = function(event_name,observer){
|
| 37 |
+
this._objectEventSetup(event_name);
|
| 38 |
+
if(event_name && observer)
|
| 39 |
+
this._observers[event_name] = this._observers[event_name].without(observer);
|
| 40 |
+
else if(event_name)
|
| 41 |
+
this._observers[event_name] = [];
|
| 42 |
+
else
|
| 43 |
+
this._observers = {};
|
| 44 |
+
};
|
| 45 |
+
object.observeOnce = function(event_name,outer_observer){
|
| 46 |
+
var inner_observer = function(){
|
| 47 |
+
outer_observer.apply(this,arguments);
|
| 48 |
+
this.stopObserving(event_name,inner_observer);
|
| 49 |
+
}.bind(this);
|
| 50 |
+
this._objectEventSetup(event_name);
|
| 51 |
+
this._observers[event_name].push(inner_observer);
|
| 52 |
+
};
|
| 53 |
+
object.notify = function(event_name){
|
| 54 |
+
this._objectEventSetup(event_name);
|
| 55 |
+
var collected_return_values = [];
|
| 56 |
+
var args = $A(arguments).slice(1);
|
| 57 |
+
try{
|
| 58 |
+
for(var i = 0; i < this._observers[event_name].length; ++i)
|
| 59 |
+
collected_return_values.push(this._observers[event_name][i].apply(this,args) || null);
|
| 60 |
+
}catch(e){
|
| 61 |
+
if(e == $break)
|
| 62 |
+
return false;
|
| 63 |
+
else
|
| 64 |
+
throw e;
|
| 65 |
+
}
|
| 66 |
+
return collected_return_values;
|
| 67 |
+
};
|
| 68 |
+
if(object.prototype){
|
| 69 |
+
object.prototype._objectEventSetup = object._objectEventSetup;
|
| 70 |
+
object.prototype.observe = object.observe;
|
| 71 |
+
object.prototype.stopObserving = object.stopObserving;
|
| 72 |
+
object.prototype.observeOnce = object.observeOnce;
|
| 73 |
+
object.prototype.notify = function(event_name){
|
| 74 |
+
if(object.notify){
|
| 75 |
+
var args = $A(arguments).slice(1);
|
| 76 |
+
args.unshift(this);
|
| 77 |
+
args.unshift(event_name);
|
| 78 |
+
object.notify.apply(object,args);
|
| 79 |
+
}
|
| 80 |
+
this._objectEventSetup(event_name);
|
| 81 |
+
var args = $A(arguments).slice(1);
|
| 82 |
+
var collected_return_values = [];
|
| 83 |
+
try{
|
| 84 |
+
if(this.options && this.options[event_name] && typeof(this.options[event_name]) == 'function')
|
| 85 |
+
collected_return_values.push(this.options[event_name].apply(this,args) || null);
|
| 86 |
+
var callbacks_copy = this._observers[event_name]; // since original array will be modified after observeOnce calls
|
| 87 |
+
for(var i = 0; i < callbacks_copy.length; ++i)
|
| 88 |
+
collected_return_values.push(callbacks_copy[i].apply(this,args) || null);
|
| 89 |
+
}catch(e){
|
| 90 |
+
if(e == $break)
|
| 91 |
+
return false;
|
| 92 |
+
else
|
| 93 |
+
throw e;
|
| 94 |
+
}
|
| 95 |
+
return collected_return_values;
|
| 96 |
+
};
|
| 97 |
+
}
|
| 98 |
+
}
|
| 99 |
+
};
|
| 100 |
+
|
| 101 |
+
/* Begin Core Extensions */
|
| 102 |
+
|
| 103 |
+
//Element.observeOnce
|
| 104 |
+
Element.addMethods({
|
| 105 |
+
observeOnce: function(element,event_name,outer_callback){
|
| 106 |
+
var inner_callback = function(){
|
| 107 |
+
outer_callback.apply(this,arguments);
|
| 108 |
+
Element.stopObserving(element,event_name,inner_callback);
|
| 109 |
+
};
|
| 110 |
+
Element.observe(element,event_name,inner_callback);
|
| 111 |
+
}
|
| 112 |
+
});
|
| 113 |
+
|
| 114 |
+
//mouse:wheel
|
| 115 |
+
(function(){
|
| 116 |
+
function wheel(event){
|
| 117 |
+
var delta, element, custom_event;
|
| 118 |
+
// normalize the delta
|
| 119 |
+
if (event.wheelDelta) { // IE & Opera
|
| 120 |
+
delta = event.wheelDelta / 120;
|
| 121 |
+
} else if (event.detail) { // W3C
|
| 122 |
+
delta =- event.detail / 3;
|
| 123 |
+
}
|
| 124 |
+
if (!delta) { return; }
|
| 125 |
+
element = Event.extend(event).target;
|
| 126 |
+
element = Element.extend(element.nodeType === Node.TEXT_NODE ? element.parentNode : element);
|
| 127 |
+
custom_event = element.fire('mouse:wheel',{ delta: delta });
|
| 128 |
+
if (custom_event.stopped) {
|
| 129 |
+
Event.stop(event);
|
| 130 |
+
return false;
|
| 131 |
+
}
|
| 132 |
+
}
|
| 133 |
+
document.observe('mousewheel',wheel);
|
| 134 |
+
document.observe('DOMMouseScroll',wheel);
|
| 135 |
+
})();
|
| 136 |
+
|
| 137 |
+
/* End Core Extensions */
|
| 138 |
+
|
| 139 |
+
//from PrototypeUI
|
| 140 |
+
var IframeShim = Class.create({
|
| 141 |
+
initialize: function() {
|
| 142 |
+
this.element = new Element('iframe',{
|
| 143 |
+
style: 'position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none',
|
| 144 |
+
src: 'javascript:void(0);',
|
| 145 |
+
frameborder: 0
|
| 146 |
+
});
|
| 147 |
+
$(document.body).insert(this.element);
|
| 148 |
+
},
|
| 149 |
+
hide: function() {
|
| 150 |
+
this.element.hide();
|
| 151 |
+
return this;
|
| 152 |
+
},
|
| 153 |
+
show: function() {
|
| 154 |
+
this.element.show();
|
| 155 |
+
return this;
|
| 156 |
+
},
|
| 157 |
+
positionUnder: function(element) {
|
| 158 |
+
var element = $(element);
|
| 159 |
+
var offset = element.cumulativeOffset();
|
| 160 |
+
var dimensions = element.getDimensions();
|
| 161 |
+
this.element.setStyle({
|
| 162 |
+
left: offset[0] + 'px',
|
| 163 |
+
top: offset[1] + 'px',
|
| 164 |
+
width: dimensions.width + 'px',
|
| 165 |
+
height: dimensions.height + 'px',
|
| 166 |
+
zIndex: element.getStyle('zIndex') - 1
|
| 167 |
+
}).show();
|
| 168 |
+
return this;
|
| 169 |
+
},
|
| 170 |
+
setBounds: function(bounds) {
|
| 171 |
+
for(prop in bounds)
|
| 172 |
+
bounds[prop] += 'px';
|
| 173 |
+
this.element.setStyle(bounds);
|
| 174 |
+
return this;
|
| 175 |
+
},
|
| 176 |
+
destroy: function() {
|
| 177 |
+
if(this.element)
|
| 178 |
+
this.element.remove();
|
| 179 |
+
return this;
|
| 180 |
+
}
|
| 181 |
+
});
|
skin/frontend/base/default/ip_productactivity/promo.jpg
ADDED
|
Binary file
|
skin/frontend/base/default/ip_productactivity/style.css
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.block-productactivity { font-size: 11px; line-height: 1.25; }
|
| 2 |
+
.block-productactivity .products-grid {
|
| 3 |
+
background: none;
|
| 4 |
+
border-bottom: 0;
|
| 5 |
+
position: relative;
|
| 6 |
+
}
|
| 7 |
+
.content-home-wrapper { padding: 10px;}
|
| 8 |
+
|
| 9 |
+
.block-productactivity .title-homepage-new {
|
| 10 |
+
background: none repeat scroll 0 0 #E46404;
|
| 11 |
+
}
|
| 12 |
+
.block-productactivity .title-homepage-topsellers {
|
| 13 |
+
background: none repeat scroll 0 0 #93C627;
|
| 14 |
+
}
|
| 15 |
+
.block-productactivity .title-homepage-popular {
|
| 16 |
+
background: none repeat scroll 0 0 #CC3112;
|
| 17 |
+
}
|
| 18 |
+
.block-productactivity .title-homepage-toprated {
|
| 19 |
+
background: none repeat scroll 0 0 #709CC1;
|
| 20 |
+
}
|
| 21 |
+
.block-productactivity .title-homepage-reviews {
|
| 22 |
+
background: none repeat scroll 0 0 #336699;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
.block-productactivity .block-title {
|
| 26 |
+
border-bottom: 1px solid #CACACA;
|
| 27 |
+
height: 25px;
|
| 28 |
+
overflow: hidden;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
.block-productactivity .block-title span {
|
| 32 |
+
color: #FFFFFF;
|
| 33 |
+
font: bold 12px/2em Arial,Helvetica,sans-serif;
|
| 34 |
+
padding: 12px 0 3px 10px;
|
| 35 |
+
text-transform: uppercase;
|
| 36 |
+
}
|
| 37 |
+
.block-productactivity {
|
| 38 |
+
border: 1px solid #B6B6B6;
|
| 39 |
+
color: #333;
|
| 40 |
+
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
|
| 41 |
+
font-size: 10px;
|
| 42 |
+
margin: 0 0 0px;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
.block-productactivity .block-title span {
|
| 46 |
+
color: #FFFFFF;
|
| 47 |
+
font: bold 12px/2em Arial,Helvetica,sans-serif;
|
| 48 |
+
padding: 12px 0 3px 10px;
|
| 49 |
+
text-transform: uppercase;
|
| 50 |
+
}
|
| 51 |
+
.block-productactivity .block-content {
|
| 52 |
+
background: #FAF7EE;
|
| 53 |
+
min-height: 400px;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
.block-productactivity .block-content li.item {
|
| 57 |
+
padding: 7px 9px;
|
| 58 |
+
float: left;
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
.block-productactivity .block-content .product-name {
|
| 63 |
+
color: #1E7EC8;
|
| 64 |
+
color: #203548;
|
| 65 |
+
font-size: 13px;
|
| 66 |
+
font-weight: bold;
|
| 67 |
+
margin: 0 0 5px;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
.block-productactivity .products-grid .product-name a {
|
| 71 |
+
color: #1E7EC8;
|
| 72 |
+
}
|
| 73 |
+
.block-productactivity .block-productactivity a {
|
| 74 |
+
font-size: 12px;
|
| 75 |
+
font-weight: bold;
|
| 76 |
+
}
|
| 77 |
+
.block-productactivity .product-name a {
|
| 78 |
+
color: #1E7EC8;
|
| 79 |
+
}
|
| 80 |
+
.block-productactivity .products-grid .price-box {
|
| 81 |
+
margin: 5px 0;
|
| 82 |
+
}
|
| 83 |
+
.block-productactivity .link-cart {
|
| 84 |
+
color: #DC6809 !important;
|
| 85 |
+
font-weight: bold;
|
| 86 |
+
font-size: 12px;
|
| 87 |
+
text-decoration: underline !important;
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
.block-productactivity .product-image {
|
| 91 |
+
float: left;
|
| 92 |
+
margin-right: 5px;
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
.block-productactivity .products-grid .product-image {
|
| 96 |
+
display: block;
|
| 97 |
+
height: 135px;
|
| 98 |
+
margin: 0 0 10px;
|
| 99 |
+
width: 135px;
|
| 100 |
+
}
|
| 101 |
+
.block-productactivity img {
|
| 102 |
+
border: 1px solid #E5DCC3;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
.block-productactivity dl {
|
| 108 |
+
clear: both;
|
| 109 |
+
display: block;
|
| 110 |
+
float: left;
|
| 111 |
+
width: 100%;
|
| 112 |
+
margin-bottom: 8px;
|
| 113 |
+
padding-bottom: 8px;
|
| 114 |
+
border-bottom: 1px solid #E5DCC3;
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
.block-productactivity dl.last {
|
| 118 |
+
border: 0;
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
.block-productactivity li.odd {
|
| 122 |
+
background-color: #E5DCC3;
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
#productactivity-no-products {
|
| 126 |
+
margin: 0 auto;
|
| 127 |
+
width: 50%;
|
| 128 |
+
padding-top: 160px;
|
| 129 |
+
}
|
| 130 |
+
.block-productactivity .block-content #productactivity-no-products li.item {
|
| 131 |
+
border: 1px solid #B6B6B6;
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
.ip_productactivity_box {
|
| 135 |
+
margin-top: 5px;
|
| 136 |
+
clear: both;
|
| 137 |
+
float: left;
|
| 138 |
+
width: 100%;
|
| 139 |
+
padding-top: 5px;
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
.ip_productactivity_box .add-to-links {
|
| 143 |
+
font-size: 10px;
|
| 144 |
+
margin: 5px 0 0;
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
.magazento-powered, .magazento-powered a {
|
| 148 |
+
color: #BBB !important;
|
| 149 |
+
font-size: 9px;
|
| 150 |
+
text-align: right;
|
| 151 |
+
text-decoration: none;
|
| 152 |
+
}
|
skin/frontend/base/default/ip_productactivity/tabs.css
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* Subsection Tabs
|
| 2 |
+
--------------------*/
|
| 3 |
+
#main-ops-container ul.subsection_tabs {
|
| 4 |
+
list-style: none;
|
| 5 |
+
margin: 0;
|
| 6 |
+
padding: 0;
|
| 7 |
+
clear: both;
|
| 8 |
+
height: 27px;
|
| 9 |
+
background: white url("img/menu_tabs_sprite.png") repeat-x 0 -156px;
|
| 10 |
+
border: 1px solid #B6B6B6;
|
| 11 |
+
border-bottom: 0;
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
#main-ops-container ul.subsection_tabs li {
|
| 15 |
+
float:left;
|
| 16 |
+
text-align:center;
|
| 17 |
+
border-right: solid 1px #CDCDCD;
|
| 18 |
+
}
|
| 19 |
+
#main-ops-container ul.subsection_tabs li.last {
|
| 20 |
+
border-right: 0;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
#main-ops-container ul.subsection_tabs li.tab a {
|
| 24 |
+
display: block;
|
| 25 |
+
height: 19px;
|
| 26 |
+
padding: 4px 12px;
|
| 27 |
+
color: #666;
|
| 28 |
+
font-weight: normal;
|
| 29 |
+
text-decoration: none;
|
| 30 |
+
font-size: 12px;
|
| 31 |
+
text-transform: uppercase;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
#main-ops-container ul.subsection_tabs li.tab a:hover {
|
| 35 |
+
|
| 36 |
+
}
|
| 37 |
+
#main-ops-container ul.subsection_tabs li.tab a {
|
| 38 |
+
background: #fff url("img/menu_tabs_sprite.png") no-repeat 0 -156px;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
#main-ops-container ul.subsection_tabs li.tab a.active {
|
| 42 |
+
background: #FAF7EE;
|
| 43 |
+
font-weight: bold;
|
| 44 |
+
height: 20px;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
#main-ops-container ul.subsection_tabs li.source_code {
|
| 48 |
+
float:right;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
#main-ops-container a {
|
| 52 |
+
text-decoration: none;
|
| 53 |
+
font-weight: bold;
|
| 54 |
+
color: #2777A1;
|
| 55 |
+
}
|
skin/frontend/base/default/ip_productactivity/tabs.js
ADDED
|
@@ -0,0 +1,465 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* @author Ryan Johnson <http://syntacticx.com/>
|
| 3 |
+
* @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
|
| 4 |
+
* @package LivePipe UI
|
| 5 |
+
* @license MIT
|
| 6 |
+
* @url http://livepipe.net/control/tabs
|
| 7 |
+
* @require prototype.js, livepipe.js
|
| 8 |
+
*/
|
| 9 |
+
|
| 10 |
+
/*global window, document, Prototype, $, $A, $H, $break, Class, Element, Event, Control */
|
| 11 |
+
|
| 12 |
+
if(typeof(Prototype) == "undefined") {
|
| 13 |
+
throw "Control.Tabs requires Prototype to be loaded."; }
|
| 14 |
+
if(typeof(Object.Event) == "undefined") {
|
| 15 |
+
throw "Control.Tabs requires Object.Event to be loaded."; }
|
| 16 |
+
|
| 17 |
+
Control.Tabs = Class.create({
|
| 18 |
+
initialize: function(tab_list_container,options){
|
| 19 |
+
if(!$(tab_list_container)) {
|
| 20 |
+
throw "Control.Tabs could not find the element: " + tab_list_container; }
|
| 21 |
+
this.activeContainer = false;
|
| 22 |
+
this.activeLink = false;
|
| 23 |
+
this.containers = $H({});
|
| 24 |
+
this.links = [];
|
| 25 |
+
this.options = {
|
| 26 |
+
beforeChange: Prototype.emptyFunction,
|
| 27 |
+
afterChange: Prototype.emptyFunction,
|
| 28 |
+
hover: false,
|
| 29 |
+
tracked: true,
|
| 30 |
+
linkSelector: 'li a',
|
| 31 |
+
linkAttribute: 'href',
|
| 32 |
+
setClassOnContainer: false,
|
| 33 |
+
activeClassName: 'active',
|
| 34 |
+
disabledClassName: 'disabled',
|
| 35 |
+
defaultTab: 'first',
|
| 36 |
+
autoLinkExternal: true,
|
| 37 |
+
targetRegExp: /#(.+)$/,
|
| 38 |
+
showFunction: Element.show,
|
| 39 |
+
hideFunction: Element.hide
|
| 40 |
+
};
|
| 41 |
+
Object.extend(this.options,options || {});
|
| 42 |
+
if (this.options.tracked) {
|
| 43 |
+
Control.Tabs.instances.push(this);
|
| 44 |
+
}
|
| 45 |
+
var filterLinks;
|
| 46 |
+
switch (this.options.linkAttribute) {
|
| 47 |
+
case 'href':
|
| 48 |
+
case 'src':
|
| 49 |
+
filterLinks = function(link){
|
| 50 |
+
return (/^#/).test(link.getAttribute(this.options.linkAttribute).replace(
|
| 51 |
+
window.location.href.split('#')[0],''));
|
| 52 |
+
};
|
| 53 |
+
break;
|
| 54 |
+
|
| 55 |
+
default:
|
| 56 |
+
if (typeof(this.options.linkAttribute) == 'function') {
|
| 57 |
+
filterLinks = this.options.linkAttribute;
|
| 58 |
+
}
|
| 59 |
+
else {
|
| 60 |
+
filterLinks = function(link) {
|
| 61 |
+
return link.hasAttribute(this.options.linkAttribute);
|
| 62 |
+
};
|
| 63 |
+
}
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
(typeof(this.options.linkSelector) == 'string' ?
|
| 67 |
+
$(tab_list_container).select(this.options.linkSelector) :
|
| 68 |
+
this.options.linkSelector($(tab_list_container))
|
| 69 |
+
).findAll(filterLinks.bind(this)).each(function(link){
|
| 70 |
+
this.addTab(link);
|
| 71 |
+
}.bind(this));
|
| 72 |
+
this.containers.values().each(Element.hide);
|
| 73 |
+
if(this.options.defaultTab == 'first') {
|
| 74 |
+
this.setActiveTab(this.links.first());
|
| 75 |
+
} else if(this.options.defaultTab == 'last') {
|
| 76 |
+
this.setActiveTab(this.links.last());
|
| 77 |
+
} else {
|
| 78 |
+
this.setActiveTab(this.options.defaultTab); }
|
| 79 |
+
var targets = this.options.targetRegExp.exec(window.location);
|
| 80 |
+
if(targets && targets[1]){
|
| 81 |
+
targets[1].split(',').each(function(target){
|
| 82 |
+
this.setActiveTab(this.links.find(function(link){
|
| 83 |
+
return link.key == target;
|
| 84 |
+
}));
|
| 85 |
+
}.bind(this));
|
| 86 |
+
}
|
| 87 |
+
if(this.options.autoLinkExternal){
|
| 88 |
+
$A(document.getElementsByTagName('a')).each(function(a){
|
| 89 |
+
if(!this.links.include(a)){
|
| 90 |
+
var clean_href = a.href.replace(window.location.href.split('#')[0],'');
|
| 91 |
+
if(clean_href.substring(0,1) == '#'){
|
| 92 |
+
if(this.containers.keys().include(clean_href.substring(1))){
|
| 93 |
+
$(a).observe('click',function(event,clean_href){
|
| 94 |
+
this.setActiveTab(clean_href.substring(1));
|
| 95 |
+
}.bindAsEventListener(this,clean_href));
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
}
|
| 99 |
+
}.bind(this));
|
| 100 |
+
}
|
| 101 |
+
},
|
| 102 |
+
addTab: function(link){
|
| 103 |
+
this.links.push(link);
|
| 104 |
+
|
| 105 |
+
switch (this.options.linkAttribute) {
|
| 106 |
+
case 'href':
|
| 107 |
+
case 'src':
|
| 108 |
+
link.key = link.getAttribute(this.options.linkAttribute).replace(
|
| 109 |
+
window.location.href.split('#')[0],'').split('#').last().replace(/#/,'');
|
| 110 |
+
break;
|
| 111 |
+
|
| 112 |
+
default:
|
| 113 |
+
if (typeof(this.options.linkAttribute) == 'function') {
|
| 114 |
+
link.key = this.options.linkAttribute(link);
|
| 115 |
+
}
|
| 116 |
+
else {
|
| 117 |
+
link.key = link.getAttribute(this.options.linkAttribute);
|
| 118 |
+
}
|
| 119 |
+
}
|
| 120 |
+
var container = this.options.tabs_container ? this.options.tabs_container.down('#'+link.key) : $(link.key);
|
| 121 |
+
if(!container) {
|
| 122 |
+
throw "Control.Tabs: #" + link.key + " was not found on the page."; }
|
| 123 |
+
this.containers.set(link.key,container);
|
| 124 |
+
link[this.options.hover ? 'onmouseover' : 'onclick'] = function(link){
|
| 125 |
+
if(window.event) {
|
| 126 |
+
Event.stop(window.event); }
|
| 127 |
+
this.setActiveTab(link);
|
| 128 |
+
return false;
|
| 129 |
+
}.bind(this,link);
|
| 130 |
+
},
|
| 131 |
+
getTab: function (link) {
|
| 132 |
+
if(!link && typeof(link) == 'undefined') {
|
| 133 |
+
return null; }
|
| 134 |
+
if(typeof(link) == 'string'){
|
| 135 |
+
return this.getTab(this.links.find(function(_link){
|
| 136 |
+
return _link.key == link;
|
| 137 |
+
}));
|
| 138 |
+
}else if(typeof(link) == 'number'){
|
| 139 |
+
return this.getTab(this.links[link]);
|
| 140 |
+
}else {
|
| 141 |
+
return this.containers.get(link.key);
|
| 142 |
+
}
|
| 143 |
+
},
|
| 144 |
+
setActiveTab: function(link){
|
| 145 |
+
if(!link && typeof(link) == 'undefined') {
|
| 146 |
+
return; }
|
| 147 |
+
if(typeof(link) == 'string'){
|
| 148 |
+
this.setActiveTab(this.links.find(function(_link){
|
| 149 |
+
return _link.key == link;
|
| 150 |
+
}));
|
| 151 |
+
}else if(typeof(link) == 'number'){
|
| 152 |
+
this.setActiveTab(this.links[link]);
|
| 153 |
+
}else if(!(this.options.setClassOnContainer ? $(link.parentNode) : link).hasClassName(this.options.disabledClassName)){
|
| 154 |
+
if(link == this.activeLink) {
|
| 155 |
+
return; }
|
| 156 |
+
if(this.notify('beforeChange',this.activeContainer,this.containers.get(link.key)) === false) {
|
| 157 |
+
return; }
|
| 158 |
+
if(this.activeContainer) {
|
| 159 |
+
this.options.hideFunction(this.activeContainer); }
|
| 160 |
+
this.links.each(function(item){
|
| 161 |
+
(this.options.setClassOnContainer ? $(item.parentNode) : item).removeClassName(this.options.activeClassName);
|
| 162 |
+
}.bind(this));
|
| 163 |
+
(this.options.setClassOnContainer ? $(link.parentNode) : link).addClassName(this.options.activeClassName);
|
| 164 |
+
this.activeContainer = this.containers.get(link.key);
|
| 165 |
+
this.activeLink = link;
|
| 166 |
+
this.options.showFunction(this.containers.get(link.key));
|
| 167 |
+
this.notify('afterChange',this.containers.get(link.key));
|
| 168 |
+
}
|
| 169 |
+
},
|
| 170 |
+
disableTab: function (link) {
|
| 171 |
+
if(!link && typeof(link) == 'undefined') {
|
| 172 |
+
return; }
|
| 173 |
+
if(typeof(link) == 'string'){
|
| 174 |
+
this.disableTab(this.links.find(function(_link){
|
| 175 |
+
return _link.key == link;
|
| 176 |
+
}));
|
| 177 |
+
}else if(typeof(link) == 'number'){
|
| 178 |
+
this.disableTab(this.links[link]);
|
| 179 |
+
}else{
|
| 180 |
+
if ({'INPUT':true,'BUTTON':true,'SELECT':true,'TEXTAREA':true}[link.nodeName]) {
|
| 181 |
+
link.disabled = true; }
|
| 182 |
+
(this.options.setClassOnContainer ? $(link.parentNode) : link).addClassName(this.options.disabledClassName);
|
| 183 |
+
}
|
| 184 |
+
},
|
| 185 |
+
enableTab: function (link) {
|
| 186 |
+
if(!link && typeof(link) == 'undefined') {
|
| 187 |
+
return; }
|
| 188 |
+
if(typeof(link) == 'string'){
|
| 189 |
+
this.enableTab(this.links.find(function(_link){
|
| 190 |
+
return _link.key == link;
|
| 191 |
+
}));
|
| 192 |
+
}else if(typeof(link) == 'number'){
|
| 193 |
+
this.enableTab(this.links[link]);
|
| 194 |
+
}else{
|
| 195 |
+
if ({'INPUT':true,'BUTTON':true,'SELECT':true,'TEXTAREA':true}[link.nodeName]) {
|
| 196 |
+
link.disabled = false; }
|
| 197 |
+
(this.options.setClassOnContainer ? $(link.parentNode) : link).removeClassName(this.options.disabledClassName);
|
| 198 |
+
}
|
| 199 |
+
},
|
| 200 |
+
next: function(){
|
| 201 |
+
this.links.each(function(link,i){
|
| 202 |
+
if(this.activeLink == link && this.links[i + 1]){
|
| 203 |
+
this.setActiveTab(this.links[i + 1]);
|
| 204 |
+
throw $break;
|
| 205 |
+
}
|
| 206 |
+
}.bind(this));
|
| 207 |
+
},
|
| 208 |
+
previous: function(){
|
| 209 |
+
this.links.each(function(link,i){
|
| 210 |
+
if(this.activeLink == link && this.links[i - 1]){
|
| 211 |
+
this.setActiveTab(this.links[i - 1]);
|
| 212 |
+
throw $break;
|
| 213 |
+
}
|
| 214 |
+
}.bind(this));
|
| 215 |
+
},
|
| 216 |
+
first: function(){
|
| 217 |
+
this.setActiveTab(this.links.first());
|
| 218 |
+
},
|
| 219 |
+
last: function(){
|
| 220 |
+
this.setActiveTab(this.links.last());
|
| 221 |
+
}
|
| 222 |
+
});
|
| 223 |
+
Object.extend(Control.Tabs,{
|
| 224 |
+
instances: [],
|
| 225 |
+
findByTabId: function(id){
|
| 226 |
+
return Control.Tabs.instances.find(function(tab){
|
| 227 |
+
return tab.links.find(function(link){
|
| 228 |
+
return link.key == id;
|
| 229 |
+
});
|
| 230 |
+
});
|
| 231 |
+
}
|
| 232 |
+
});
|
| 233 |
+
Object.Event.extend(Control.Tabs);/**
|
| 234 |
+
* @author Ryan Johnson <http://syntacticx.com/>
|
| 235 |
+
* @copyright 2008 PersonalGrid Corporation <http://personalgrid.com/>
|
| 236 |
+
* @package LivePipe UI
|
| 237 |
+
* @license MIT
|
| 238 |
+
* @url http://livepipe.net/control/tabs
|
| 239 |
+
* @require prototype.js, livepipe.js
|
| 240 |
+
*/
|
| 241 |
+
|
| 242 |
+
/*global window, document, Prototype, $, $A, $H, $break, Class, Element, Event, Control */
|
| 243 |
+
|
| 244 |
+
if(typeof(Prototype) == "undefined") {
|
| 245 |
+
throw "Control.Tabs requires Prototype to be loaded."; }
|
| 246 |
+
if(typeof(Object.Event) == "undefined") {
|
| 247 |
+
throw "Control.Tabs requires Object.Event to be loaded."; }
|
| 248 |
+
|
| 249 |
+
Control.Tabs = Class.create({
|
| 250 |
+
initialize: function(tab_list_container,options){
|
| 251 |
+
if(!$(tab_list_container)) {
|
| 252 |
+
throw "Control.Tabs could not find the element: " + tab_list_container; }
|
| 253 |
+
this.activeContainer = false;
|
| 254 |
+
this.activeLink = false;
|
| 255 |
+
this.containers = $H({});
|
| 256 |
+
this.links = [];
|
| 257 |
+
this.options = {
|
| 258 |
+
beforeChange: Prototype.emptyFunction,
|
| 259 |
+
afterChange: Prototype.emptyFunction,
|
| 260 |
+
hover: false,
|
| 261 |
+
tracked: true,
|
| 262 |
+
linkSelector: 'li a',
|
| 263 |
+
linkAttribute: 'href',
|
| 264 |
+
setClassOnContainer: false,
|
| 265 |
+
activeClassName: 'active',
|
| 266 |
+
disabledClassName: 'disabled',
|
| 267 |
+
defaultTab: 'first',
|
| 268 |
+
autoLinkExternal: true,
|
| 269 |
+
targetRegExp: /#(.+)$/,
|
| 270 |
+
showFunction: Element.show,
|
| 271 |
+
hideFunction: Element.hide
|
| 272 |
+
};
|
| 273 |
+
Object.extend(this.options,options || {});
|
| 274 |
+
if (this.options.tracked) {
|
| 275 |
+
Control.Tabs.instances.push(this);
|
| 276 |
+
}
|
| 277 |
+
var filterLinks;
|
| 278 |
+
switch (this.options.linkAttribute) {
|
| 279 |
+
case 'href':
|
| 280 |
+
case 'src':
|
| 281 |
+
filterLinks = function(link){
|
| 282 |
+
return (/^#/).test(link.getAttribute(this.options.linkAttribute).replace(
|
| 283 |
+
window.location.href.split('#')[0],''));
|
| 284 |
+
};
|
| 285 |
+
break;
|
| 286 |
+
|
| 287 |
+
default:
|
| 288 |
+
if (typeof(this.options.linkAttribute) == 'function') {
|
| 289 |
+
filterLinks = this.options.linkAttribute;
|
| 290 |
+
}
|
| 291 |
+
else {
|
| 292 |
+
filterLinks = function(link) {
|
| 293 |
+
return link.hasAttribute(this.options.linkAttribute);
|
| 294 |
+
};
|
| 295 |
+
}
|
| 296 |
+
}
|
| 297 |
+
|
| 298 |
+
(typeof(this.options.linkSelector) == 'string' ?
|
| 299 |
+
$(tab_list_container).select(this.options.linkSelector) :
|
| 300 |
+
this.options.linkSelector($(tab_list_container))
|
| 301 |
+
).findAll(filterLinks.bind(this)).each(function(link){
|
| 302 |
+
this.addTab(link);
|
| 303 |
+
}.bind(this));
|
| 304 |
+
this.containers.values().each(Element.hide);
|
| 305 |
+
if(this.options.defaultTab == 'first') {
|
| 306 |
+
this.setActiveTab(this.links.first());
|
| 307 |
+
} else if(this.options.defaultTab == 'last') {
|
| 308 |
+
this.setActiveTab(this.links.last());
|
| 309 |
+
} else {
|
| 310 |
+
this.setActiveTab(this.options.defaultTab); }
|
| 311 |
+
var targets = this.options.targetRegExp.exec(window.location);
|
| 312 |
+
if(targets && targets[1]){
|
| 313 |
+
targets[1].split(',').each(function(target){
|
| 314 |
+
this.setActiveTab(this.links.find(function(link){
|
| 315 |
+
return link.key == target;
|
| 316 |
+
}));
|
| 317 |
+
}.bind(this));
|
| 318 |
+
}
|
| 319 |
+
if(this.options.autoLinkExternal){
|
| 320 |
+
$A(document.getElementsByTagName('a')).each(function(a){
|
| 321 |
+
if(!this.links.include(a)){
|
| 322 |
+
var clean_href = a.href.replace(window.location.href.split('#')[0],'');
|
| 323 |
+
if(clean_href.substring(0,1) == '#'){
|
| 324 |
+
if(this.containers.keys().include(clean_href.substring(1))){
|
| 325 |
+
$(a).observe('click',function(event,clean_href){
|
| 326 |
+
this.setActiveTab(clean_href.substring(1));
|
| 327 |
+
}.bindAsEventListener(this,clean_href));
|
| 328 |
+
}
|
| 329 |
+
}
|
| 330 |
+
}
|
| 331 |
+
}.bind(this));
|
| 332 |
+
}
|
| 333 |
+
},
|
| 334 |
+
addTab: function(link){
|
| 335 |
+
this.links.push(link);
|
| 336 |
+
|
| 337 |
+
switch (this.options.linkAttribute) {
|
| 338 |
+
case 'href':
|
| 339 |
+
case 'src':
|
| 340 |
+
link.key = link.getAttribute(this.options.linkAttribute).replace(
|
| 341 |
+
window.location.href.split('#')[0],'').split('#').last().replace(/#/,'');
|
| 342 |
+
break;
|
| 343 |
+
|
| 344 |
+
default:
|
| 345 |
+
if (typeof(this.options.linkAttribute) == 'function') {
|
| 346 |
+
link.key = this.options.linkAttribute(link);
|
| 347 |
+
}
|
| 348 |
+
else {
|
| 349 |
+
link.key = link.getAttribute(this.options.linkAttribute);
|
| 350 |
+
}
|
| 351 |
+
}
|
| 352 |
+
var container = this.options.tabs_container ? this.options.tabs_container.down('#'+link.key) : $(link.key);
|
| 353 |
+
if(!container) {
|
| 354 |
+
throw "Control.Tabs: #" + link.key + " was not found on the page."; }
|
| 355 |
+
this.containers.set(link.key,container);
|
| 356 |
+
link[this.options.hover ? 'onmouseover' : 'onmouseover'] = function(link){
|
| 357 |
+
if(window.event) {
|
| 358 |
+
Event.stop(window.event); }
|
| 359 |
+
this.setActiveTab(link);
|
| 360 |
+
return false;
|
| 361 |
+
}.bind(this,link);
|
| 362 |
+
},
|
| 363 |
+
getTab: function (link) {
|
| 364 |
+
if(!link && typeof(link) == 'undefined') {
|
| 365 |
+
return null; }
|
| 366 |
+
if(typeof(link) == 'string'){
|
| 367 |
+
return this.getTab(this.links.find(function(_link){
|
| 368 |
+
return _link.key == link;
|
| 369 |
+
}));
|
| 370 |
+
}else if(typeof(link) == 'number'){
|
| 371 |
+
return this.getTab(this.links[link]);
|
| 372 |
+
}else {
|
| 373 |
+
return this.containers.get(link.key);
|
| 374 |
+
}
|
| 375 |
+
},
|
| 376 |
+
setActiveTab: function(link){
|
| 377 |
+
if(!link && typeof(link) == 'undefined') {
|
| 378 |
+
return; }
|
| 379 |
+
if(typeof(link) == 'string'){
|
| 380 |
+
this.setActiveTab(this.links.find(function(_link){
|
| 381 |
+
return _link.key == link;
|
| 382 |
+
}));
|
| 383 |
+
}else if(typeof(link) == 'number'){
|
| 384 |
+
this.setActiveTab(this.links[link]);
|
| 385 |
+
}else if(!(this.options.setClassOnContainer ? $(link.parentNode) : link).hasClassName(this.options.disabledClassName)){
|
| 386 |
+
if(link == this.activeLink) {
|
| 387 |
+
return; }
|
| 388 |
+
if(this.notify('beforeChange',this.activeContainer,this.containers.get(link.key)) === false) {
|
| 389 |
+
return; }
|
| 390 |
+
if(this.activeContainer) {
|
| 391 |
+
this.options.hideFunction(this.activeContainer); }
|
| 392 |
+
this.links.each(function(item){
|
| 393 |
+
(this.options.setClassOnContainer ? $(item.parentNode) : item).removeClassName(this.options.activeClassName);
|
| 394 |
+
}.bind(this));
|
| 395 |
+
(this.options.setClassOnContainer ? $(link.parentNode) : link).addClassName(this.options.activeClassName);
|
| 396 |
+
this.activeContainer = this.containers.get(link.key);
|
| 397 |
+
this.activeLink = link;
|
| 398 |
+
this.options.showFunction(this.containers.get(link.key));
|
| 399 |
+
this.notify('afterChange',this.containers.get(link.key));
|
| 400 |
+
}
|
| 401 |
+
},
|
| 402 |
+
disableTab: function (link) {
|
| 403 |
+
if(!link && typeof(link) == 'undefined') {
|
| 404 |
+
return; }
|
| 405 |
+
if(typeof(link) == 'string'){
|
| 406 |
+
this.disableTab(this.links.find(function(_link){
|
| 407 |
+
return _link.key == link;
|
| 408 |
+
}));
|
| 409 |
+
}else if(typeof(link) == 'number'){
|
| 410 |
+
this.disableTab(this.links[link]);
|
| 411 |
+
}else{
|
| 412 |
+
if ({'INPUT':true,'BUTTON':true,'SELECT':true,'TEXTAREA':true}[link.nodeName]) {
|
| 413 |
+
link.disabled = true; }
|
| 414 |
+
(this.options.setClassOnContainer ? $(link.parentNode) : link).addClassName(this.options.disabledClassName);
|
| 415 |
+
}
|
| 416 |
+
},
|
| 417 |
+
enableTab: function (link) {
|
| 418 |
+
if(!link && typeof(link) == 'undefined') {
|
| 419 |
+
return; }
|
| 420 |
+
if(typeof(link) == 'string'){
|
| 421 |
+
this.enableTab(this.links.find(function(_link){
|
| 422 |
+
return _link.key == link;
|
| 423 |
+
}));
|
| 424 |
+
}else if(typeof(link) == 'number'){
|
| 425 |
+
this.enableTab(this.links[link]);
|
| 426 |
+
}else{
|
| 427 |
+
if ({'INPUT':true,'BUTTON':true,'SELECT':true,'TEXTAREA':true}[link.nodeName]) {
|
| 428 |
+
link.disabled = false; }
|
| 429 |
+
(this.options.setClassOnContainer ? $(link.parentNode) : link).removeClassName(this.options.disabledClassName);
|
| 430 |
+
}
|
| 431 |
+
},
|
| 432 |
+
next: function(){
|
| 433 |
+
this.links.each(function(link,i){
|
| 434 |
+
if(this.activeLink == link && this.links[i + 1]){
|
| 435 |
+
this.setActiveTab(this.links[i + 1]);
|
| 436 |
+
throw $break;
|
| 437 |
+
}
|
| 438 |
+
}.bind(this));
|
| 439 |
+
},
|
| 440 |
+
previous: function(){
|
| 441 |
+
this.links.each(function(link,i){
|
| 442 |
+
if(this.activeLink == link && this.links[i - 1]){
|
| 443 |
+
this.setActiveTab(this.links[i - 1]);
|
| 444 |
+
throw $break;
|
| 445 |
+
}
|
| 446 |
+
}.bind(this));
|
| 447 |
+
},
|
| 448 |
+
first: function(){
|
| 449 |
+
this.setActiveTab(this.links.first());
|
| 450 |
+
},
|
| 451 |
+
last: function(){
|
| 452 |
+
this.setActiveTab(this.links.last());
|
| 453 |
+
}
|
| 454 |
+
});
|
| 455 |
+
Object.extend(Control.Tabs,{
|
| 456 |
+
instances: [],
|
| 457 |
+
findByTabId: function(id){
|
| 458 |
+
return Control.Tabs.instances.find(function(tab){
|
| 459 |
+
return tab.links.find(function(link){
|
| 460 |
+
return link.key == id;
|
| 461 |
+
});
|
| 462 |
+
});
|
| 463 |
+
}
|
| 464 |
+
});
|
| 465 |
+
Object.Event.extend(Control.Tabs);
|
