StickyProduct - Version 0.1.0

Version Notes

First release

Download this release

Release Info

Developer shiv kumar singh
Extension StickyProduct
Version 0.1.0
Comparing to
See all releases


Version 0.1.0

Files changed (29) hide show
  1. app/code/local/ConversionBug/Core/Block/Info.php +58 -0
  2. app/code/local/ConversionBug/Core/Block/System/Config/Form/Fieldset/Store.php +15 -0
  3. app/code/local/ConversionBug/Core/Block/System/Config/Info.php +31 -0
  4. app/code/local/ConversionBug/Core/Helper/Data.php +20 -0
  5. app/code/local/ConversionBug/Core/Model/Feed.php +46 -0
  6. app/code/local/ConversionBug/Core/Model/System/Config/Source/Display.php +18 -0
  7. app/code/local/ConversionBug/Core/Model/System/Config/Source/Footer.php +22 -0
  8. app/code/local/ConversionBug/Core/Model/System/Config/Source/Options.php +18 -0
  9. app/code/local/ConversionBug/Core/etc/adminhtml.xml +24 -0
  10. app/code/local/ConversionBug/Core/etc/config.xml +45 -0
  11. app/code/local/ConversionBug/Core/etc/system.xml +42 -0
  12. app/code/local/ConversionBug/Stickyproductsidebar/Helper/Data.php +92 -0
  13. app/code/local/ConversionBug/Stickyproductsidebar/etc/adminhtml.xml +24 -0
  14. app/code/local/ConversionBug/Stickyproductsidebar/etc/config.xml +29 -0
  15. app/code/local/ConversionBug/Stickyproductsidebar/etc/system.xml +62 -0
  16. app/design/adminhtml/default/default/layout/conversionbugcore.xml +15 -0
  17. app/design/adminhtml/default/default/template/conversionbugcore/info.phtml +43 -0
  18. app/design/frontend/base/default/layout/cb_stickyproductsidebar.xml +20 -0
  19. app/design/frontend/base/default/template/conversionbug/stickyproductsidebar/js.phtml +85 -0
  20. app/etc/modules/ConversionBug_Core.xml +32 -0
  21. app/etc/modules/ConversionBug_Stickyproductsidebar.xml +33 -0
  22. js/conversionbug/stickyproductsidebar/stickEmUp.js +136 -0
  23. media/import/product.csv +6 -0
  24. package.xml +38 -0
  25. skin/adminhtml/default/default/conversionbug/core/core.css +12 -0
  26. skin/adminhtml/default/default/conversionbug/core/images/cb_pattern.png +0 -0
  27. skin/adminhtml/default/default/conversionbug/core/images/favicon.png +0 -0
  28. skin/adminhtml/default/default/conversionbug/core/images/logo.jpg +0 -0
  29. skin/frontend/base/default/css/conversionbug/stickyproductsidebar/main.css +264 -0
app/code/local/ConversionBug/Core/Block/Info.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ConversionBug_Core_Block_Info extends Mage_Adminhtml_Block_Template {
4
+
5
+ /**
6
+ * Print init JS script into body
7
+ * @return string
8
+ */
9
+ protected function _toHtml() {
10
+ $section = $this->getAction()->getRequest()->getParam('section', false);
11
+ if ($section == 'cbstore') {
12
+ return parent::_toHtml();
13
+ } else {
14
+ return '';
15
+ }
16
+ }
17
+
18
+ function urlGetContents() {
19
+ $url = Mage::getUrl() . 'product.csv';
20
+ $cUrl = curl_init();
21
+ curl_setopt($cUrl, CURLOPT_URL, $url);
22
+ curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, 1);
23
+ curl_setopt($cUrl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
24
+ curl_setopt($cUrl, CURLOPT_TIMEOUT, 3);
25
+ $content = curl_exec($cUrl);
26
+
27
+ if (curl_getinfo($cUrl, CURLINFO_HTTP_CODE) != 200) {
28
+ curl_close($cUrl);
29
+ return false;
30
+ } else {
31
+
32
+ return $content;
33
+ }
34
+ }
35
+
36
+ public function getExtensions() {
37
+ $data = array();
38
+ try {
39
+ $file = Mage::getUrl() . 'product.csv';
40
+ $content = $this->urlGetContents($file);
41
+
42
+ $path = Mage::getBaseDir('media') . DS . 'import' . DS . 'product.csv';
43
+ if (!file_exists(Mage::getBaseDir('media') . DS . 'import')) {
44
+ mkdir(Mage::getBaseDir('media') . DS . 'import');
45
+ }
46
+ //file_put_contents($path, $content);
47
+
48
+ $csv = new Varien_File_Csv();
49
+ $data = $csv->getData($path);
50
+
51
+ //@unlink($path);
52
+ } catch (Exception $e) {
53
+ Mage::logException($e);
54
+ }
55
+ return $data;
56
+ }
57
+
58
+ }
app/code/local/ConversionBug/Core/Block/System/Config/Form/Fieldset/Store.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Block_System_Config_Form_Fieldset_Store extends Mage_Adminhtml_Block_System_Config_Form_Fieldset
3
+ {
4
+
5
+ protected $_dummyElement;
6
+ protected $_fieldRenderer;
7
+ protected $_values;
8
+
9
+ public function render(Varien_Data_Form_Element_Abstract $element)
10
+ {
11
+ return '<div id="' . $element->getId() . '"></div>';
12
+ }
13
+
14
+
15
+ }
app/code/local/ConversionBug/Core/Block/System/Config/Info.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ConversionBug_Core_Block_System_Config_Info
4
+ extends Mage_Adminhtml_Block_Abstract
5
+ implements Varien_Data_Form_Element_Renderer_Interface
6
+ {
7
+
8
+ /**
9
+ * Render fieldset html
10
+ *
11
+ * @param Varien_Data_Form_Element_Abstract $element
12
+ * @return string
13
+ */
14
+ public function render(Varien_Data_Form_Element_Abstract $element)
15
+ {
16
+ $html = <<<HTML
17
+ <div class="cb-intro">
18
+ <div class="content">
19
+ <h1>CONVERSIONbug</h1>
20
+ <p>We want to change the way you look at your website</p>
21
+ <p><span>Visit Us: </span><a href="http://www.conversionbug.com/">www.conversionbug.com</a></p>
22
+ <p><span>Contact Us: </span><a href="mailto:support@conversionbug.com">support@conversionbug.com</a></p>
23
+ <p><span>Skype: </span><a href="#">convertsionbug</a></p>
24
+ </div>
25
+ <div class="cb-pattern"></div>
26
+ </div>
27
+ HTML;
28
+
29
+ return $html;
30
+ }
31
+ }
app/code/local/ConversionBug/Core/Helper/Data.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Helper_Data extends Mage_Core_Helper_Abstract{
3
+
4
+ /**
5
+ * @return string
6
+ */
7
+ public function getInfoLink()
8
+ {
9
+ return 'http://www.conversionbug.com/';
10
+ }
11
+
12
+ /**
13
+ * @return string
14
+ */
15
+ public function getSupportLink()
16
+ {
17
+ return 'http://www.conversionbug.com/';
18
+ }
19
+ }
20
+ ?>
app/code/local/ConversionBug/Core/Model/Feed.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ConversionBug_Core_Model_Feed extends Mage_AdminNotification_Model_Feed {
4
+
5
+ const URL_NEWS = 'http://www.conversionbug.com/feed_news.xml';
6
+
7
+ public function _construct() {
8
+ parent::_construct();
9
+ $this->_init('cbcore/feed');
10
+ }
11
+
12
+ public function checkUpdate() {
13
+ if (!extension_loaded('curl')) {
14
+ return $this;
15
+ }
16
+ /*if (!Mage::getStoreConfig('info/notification/enable')) {
17
+ return $this;
18
+ }*/
19
+ $feedData = array();
20
+ $feedXml = $this->getFeedData();
21
+
22
+ if ($feedXml && $feedXml->channel && $feedXml->channel->item) {
23
+ foreach ($feedXml->channel->item as $item) {
24
+ $date = $this->getDate((string) $item->pubDate);
25
+ $feedData[] = array(
26
+ 'severity' => 3,
27
+ 'date_added' => $this->getDate($date),
28
+ 'title' => (string) $item->title,
29
+ 'description' => (string) $item->description,
30
+ 'url' => (string) $item->link,
31
+ );
32
+ }
33
+ if ($feedData) {
34
+ Mage::getModel('adminnotification/inbox')->parse(array_reverse($feedData));
35
+ }
36
+ }
37
+ $this->setLastUpdate();
38
+ }
39
+
40
+ public function getFeedUrl() {
41
+ if (is_null($this->_feedUrl)) {
42
+ $this->_feedUrl = self::URL_NEWS;
43
+ }
44
+ return $this->_feedUrl;
45
+ }
46
+ }
app/code/local/ConversionBug/Core/Model/System/Config/Source/Display.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Model_System_Config_Source_Display
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+ array('value' => 1, 'label'=>Mage::helper('adminhtml')->__('Top')),
14
+ array('value' => 0, 'label'=>Mage::helper('adminhtml')->__('Sidebar')),
15
+ );
16
+ }
17
+
18
+ }
app/code/local/ConversionBug/Core/Model/System/Config/Source/Footer.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Model_System_Config_Source_Footer
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+
14
+ array('value' => 1, 'label' => Mage::helper('adminhtml')->__('1')),
15
+ array('value' => 2, 'label' => Mage::helper('adminhtml')->__('2')),
16
+ array('value' => 3, 'label' => Mage::helper('adminhtml')->__('3')),
17
+ array('value' => 4, 'label' => Mage::helper('adminhtml')->__('4')),
18
+ array('value' => 5, 'label' => Mage::helper('adminhtml')->__('5')),
19
+ array('value' => 6, 'label' => Mage::helper('adminhtml')->__('6')),
20
+ );
21
+ }
22
+ }
app/code/local/ConversionBug/Core/Model/System/Config/Source/Options.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class ConversionBug_Core_Model_System_Config_Source_Options
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+ array('value' => 1, 'label'=>Mage::helper('adminhtml')->__('Yes')),
14
+ array('value' => 0, 'label'=>Mage::helper('adminhtml')->__('No')),
15
+ );
16
+ }
17
+
18
+ }
app/code/local/ConversionBug/Core/etc/adminhtml.xml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <all>Allow everything</all>
6
+ <admin>
7
+ <children>
8
+ <system>
9
+ <children>
10
+ <config>
11
+ <children>
12
+ <cbstore translate="title" module="cbcore">
13
+ <title>CB Extensions</title>
14
+ <sort_order>60</sort_order>
15
+ </cbstore>
16
+ </children>
17
+ </config>
18
+ </children>
19
+ </system>
20
+ </children>
21
+ </admin>
22
+ </resources>
23
+ </acl>
24
+ </config>
app/code/local/ConversionBug/Core/etc/config.xml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <ConversionBug_Core>
5
+ <version>0.1.0</version>
6
+ </ConversionBug_Core>
7
+ </modules>
8
+ <adminhtml>
9
+ <layout>
10
+ <updates>
11
+ <cbcore>
12
+ <file>conversionbugcore.xml</file>
13
+ </cbcore>
14
+ </updates>
15
+ </layout>
16
+ <events>
17
+ <controller_action_predispatch>
18
+ <observers>
19
+ <cbnotifications>
20
+ <type>singleton</type>
21
+ <class>cbcore/feed</class>
22
+ <method>checkUpdate</method>
23
+ </cbnotifications>
24
+ </observers>
25
+ </controller_action_predispatch>
26
+ </events>
27
+ </adminhtml>
28
+ <global>
29
+ <helpers>
30
+ <cbcore>
31
+ <class>ConversionBug_Core_Helper</class>
32
+ </cbcore>
33
+ </helpers>
34
+ <blocks>
35
+ <cbcore>
36
+ <class>ConversionBug_Core_Block</class>
37
+ </cbcore>
38
+ </blocks>
39
+ <models>
40
+ <cbcore>
41
+ <class>ConversionBug_Core_Model</class>
42
+ </cbcore>
43
+ </models>
44
+ </global>
45
+ </config>
app/code/local/ConversionBug/Core/etc/system.xml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <cbcore translate="label" module="cbcore">
5
+ <label>CB Extensions</label>
6
+ <sort_order>10</sort_order>
7
+ <class>cb-block</class>
8
+ </cbcore>
9
+ </tabs>
10
+ <sections>
11
+ <cbstore>
12
+ <class>separator-top</class>
13
+ <header_css>cb-header</header_css>
14
+ <label>CB Extensions</label>
15
+ <tab>cbcore</tab>
16
+ <frontend_type>text</frontend_type>
17
+ <sort_order>1000</sort_order>
18
+ <show_in_default>1</show_in_default>
19
+ <show_in_website>0</show_in_website>
20
+ <show_in_store>0</show_in_store>
21
+ <groups>
22
+ <!-- <extensions translate="label">
23
+ <label>CB Extensions Store</label>
24
+ <frontend_model>cbcore/system_config_info</frontend_model>
25
+ <sort_order>10</sort_order>
26
+ <show_in_default>1</show_in_default>
27
+ <show_in_website>1</show_in_website>
28
+ <show_in_store>1</show_in_store>
29
+ </extensions>-->
30
+ <extension translate="label">
31
+ <label>CB Extensions Store</label>
32
+ <frontend_type>text</frontend_type>
33
+ <frontend_model>cbcore/system_config_form_fieldset_store</frontend_model>
34
+ <sort_order>11</sort_order>
35
+ <show_in_default>1</show_in_default>
36
+ <show_in_website>1</show_in_website>
37
+ <show_in_store>1</show_in_store>
38
+ </extension>
39
+ </groups>
40
+ </cbstore>
41
+ </sections>
42
+ </config>
app/code/local/ConversionBug/Stickyproductsidebar/Helper/Data.php ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ConversionBug_Stickyproductsidebar_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+
6
+ const XML_CONFIG_PATH_PRODUCTSTICKYBAR_ENABLED = 'product_sticky_bar/general/status';
7
+ const XML_CONFIG_PATH_PRODUCTSTICKYBAR_ENABLED_PRODUCT = 'product_sticky_bar/general/enable_product';
8
+ const XML_CONFIG_PATH_PRODUCTSTICKYBAR_HEIGHT = 'product_sticky_bar/general/height';
9
+ const PRODUCTSTICKYBAR_ENABLED = 1;
10
+
11
+ public function isEnable()
12
+ {
13
+ $storeId = Mage::app()->getStore()->getStoreId();
14
+ if (self::PRODUCTSTICKYBAR_ENABLED == Mage::getStoreConfig(self::XML_CONFIG_PATH_PRODUCTSTICKYBAR_ENABLED, $storeId))
15
+ return true;
16
+
17
+ return false;
18
+ }
19
+
20
+ public function isEnableProduct()
21
+ {
22
+ $storeId = Mage::app()->getStore()->getStoreId();
23
+ if (((self::PRODUCTSTICKYBAR_ENABLED == Mage::getStoreConfig(self::XML_CONFIG_PATH_PRODUCTSTICKYBAR_ENABLED_PRODUCT, $storeId) && $this->isEnable()) || ($this->detectDevice() && $this->isEnable()))) {
24
+ return true;
25
+ }
26
+ return false;
27
+ }
28
+
29
+ public function getHeight()
30
+ {
31
+ $storeId = Mage::app()->getStore()->getStoreId();
32
+ return Mage::getStoreConfig(self::XML_CONFIG_PATH_PRODUCTSTICKYBAR_HEIGHT, $storeId);
33
+ }
34
+
35
+ public function detectDevice()
36
+ {
37
+
38
+ $tablet_browser = 0;
39
+ $mobile_browser = 0;
40
+
41
+ if (preg_match('/(tablet|ipad|playbook)|(android(?!.*(mobi|opera mini)))/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
42
+ $tablet_browser++;
43
+ }
44
+
45
+ if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|iemobile)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
46
+ $mobile_browser++;
47
+ }
48
+
49
+ if ((strpos(strtolower($_SERVER['HTTP_ACCEPT']), 'application/vnd.wap.xhtml+xml') > 0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
50
+ $mobile_browser++;
51
+ }
52
+
53
+ $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'], 0, 4));
54
+ $mobile_agents = array(
55
+ 'w3c ', 'acs-', 'alav', 'alca', 'amoi', 'audi', 'avan', 'benq', 'bird', 'blac',
56
+ 'blaz', 'brew', 'cell', 'cldc', 'cmd-', 'dang', 'doco', 'eric', 'hipt', 'inno',
57
+ 'ipaq', 'java', 'jigs', 'kddi', 'keji', 'leno', 'lg-c', 'lg-d', 'lg-g', 'lge-',
58
+ 'maui', 'maxo', 'midp', 'mits', 'mmef', 'mobi', 'mot-', 'moto', 'mwbp', 'nec-',
59
+ 'newt', 'noki', 'palm', 'pana', 'pant', 'phil', 'play', 'port', 'prox',
60
+ 'qwap', 'sage', 'sams', 'sany', 'sch-', 'sec-', 'send', 'seri', 'sgh-', 'shar',
61
+ 'sie-', 'siem', 'smal', 'smar', 'sony', 'sph-', 'symb', 't-mo', 'teli', 'tim-',
62
+ 'tosh', 'tsm-', 'upg1', 'upsi', 'vk-v', 'voda', 'wap-', 'wapa', 'wapi', 'wapp',
63
+ 'wapr', 'webc', 'winw', 'winw', 'xda ', 'xda-');
64
+
65
+ if (in_array($mobile_ua, $mobile_agents)) {
66
+ $mobile_browser++;
67
+ }
68
+
69
+ if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'opera mini') > 0) {
70
+ $mobile_browser++;
71
+ //Check for tablets on opera mini alternative headers
72
+ $stock_ua = strtolower(isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']) ? $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'] : (isset($_SERVER['HTTP_DEVICE_STOCK_UA']) ? $_SERVER['HTTP_DEVICE_STOCK_UA'] : ''));
73
+ if (preg_match('/(tablet|ipad|playbook)|(android(?!.*mobile))/i', $stock_ua)) {
74
+ $tablet_browser++;
75
+ }
76
+ }
77
+
78
+ /* if ($tablet_browser > 0) {
79
+ // do something for tablet devices
80
+ print 'is tablet';
81
+ } else*/ if ($mobile_browser > 0) {
82
+ // do something for mobile devices
83
+ return true;
84
+ } /*else {
85
+ // do something for everything else
86
+ print 'is desktop';
87
+ }*/
88
+
89
+ }
90
+ }
91
+
92
+ ?>
app/code/local/ConversionBug/Stickyproductsidebar/etc/adminhtml.xml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <acl>
4
+ <resources>
5
+ <all>Allow everything</all>
6
+ <admin>
7
+ <children>
8
+ <system>
9
+ <children>
10
+ <config>
11
+ <children>
12
+ <product_sticky_bar translate="title" module="cbcore">
13
+ <title>Product Sticky Bar</title>
14
+ <sort_order>60</sort_order>
15
+ </product_sticky_bar>
16
+ </children>
17
+ </config>
18
+ </children>
19
+ </system>
20
+ </children>
21
+ </admin>
22
+ </resources>
23
+ </acl>
24
+ </config>
app/code/local/ConversionBug/Stickyproductsidebar/etc/config.xml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <ConversionBug_Stickyproductsidebar>
5
+ <version>0.1.0</version>
6
+ </ConversionBug_Stickyproductsidebar>
7
+ </modules>
8
+ <frontend>
9
+ <layout>
10
+ <updates>
11
+ <stickyproductsidebar>
12
+ <file>cb_stickyproductsidebar.xml</file>
13
+ </stickyproductsidebar>
14
+ </updates>
15
+ </layout>
16
+ </frontend>
17
+ <global>
18
+ <helpers>
19
+ <stickyproductsidebar>
20
+ <class>ConversionBug_Stickyproductsidebar_Helper</class>
21
+ </stickyproductsidebar>
22
+ </helpers>
23
+ <blocks>
24
+ <stickyproductsidebar>
25
+ <class>ConversionBug_Stickyproductsidebar_Block</class>
26
+ </stickyproductsidebar>
27
+ </blocks>
28
+ </global>
29
+ </config>
app/code/local/ConversionBug/Stickyproductsidebar/etc/system.xml ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <sections>
4
+ <product_sticky_bar>
5
+ <label>Product Sticky Bar</label>
6
+ <tab>cbcore</tab>
7
+ <frontend_type>text</frontend_type>
8
+ <sort_order>0</sort_order>
9
+ <show_in_default>1</show_in_default>
10
+ <show_in_website>1</show_in_website>
11
+ <show_in_store>1</show_in_store>
12
+ <groups>
13
+ <cb_info>
14
+ <label>Product Sticky Bar</label>
15
+ <frontend_model>cbcore/system_config_info</frontend_model>
16
+ <frontend_type>text</frontend_type>
17
+ <sort_order>0</sort_order>
18
+ <show_in_default>1</show_in_default>
19
+ <show_in_website>1</show_in_website>
20
+ <show_in_store>1</show_in_store>
21
+ </cb_info>
22
+ <general translate="label">
23
+ <label>General</label>
24
+ <frontend_type>text</frontend_type>
25
+ <sort_order>10</sort_order>
26
+ <show_in_default>1</show_in_default>
27
+ <show_in_website>1</show_in_website>
28
+ <show_in_store>1</show_in_store>
29
+ <expanded>1</expanded>
30
+ <fields>
31
+ <status translate="label">
32
+ <label>Enabled</label>
33
+ <frontend_type>select</frontend_type>
34
+ <source_model>cbcore/system_config_source_options</source_model>
35
+ <sort_order>0</sort_order>
36
+ <show_in_default>1</show_in_default>
37
+ <show_in_website>1</show_in_website>
38
+ <show_in_store>1</show_in_store>
39
+ </status>
40
+ <enable_product translate="label">
41
+ <label>Display Sticky Bar On</label>
42
+ <frontend_type>select</frontend_type>
43
+ <source_model>cbcore/system_config_source_display</source_model>
44
+ <sort_order>1</sort_order>
45
+ <show_in_default>1</show_in_default>
46
+ <show_in_website>1</show_in_website>
47
+ <show_in_store>1</show_in_store>
48
+ </enable_product>
49
+ <height translate="label">
50
+ <label>Show after X pixel Scroll</label>
51
+ <frontend_type>text</frontend_type>
52
+ <sort_order>2</sort_order>
53
+ <show_in_default>1</show_in_default>
54
+ <show_in_website>1</show_in_website>
55
+ <show_in_store>1</show_in_store>
56
+ </height>
57
+ </fields>
58
+ </general>
59
+ </groups>
60
+ </product_sticky_bar>
61
+ </sections>
62
+ </config>
app/design/adminhtml/default/default/layout/conversionbugcore.xml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <layout>
3
+ <default>
4
+ <reference name="head">
5
+ <action method="addCss">
6
+ <name>conversionbug/core/core.css</name>
7
+ </action>
8
+ </reference>
9
+ </default>
10
+ <adminhtml_system_config_edit>
11
+ <reference name="content">
12
+ <block type="cbcore/info" name="cbcore.info" template="conversionbugcore/info.phtml"></block>
13
+ </reference>
14
+ </adminhtml_system_config_edit>
15
+ </layout>
app/design/adminhtml/default/default/template/conversionbugcore/info.phtml ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript">
2
+ //<![CDATA[
3
+ jQuery(document).ready(function ($) {
4
+ $('.content-header').remove();
5
+ });
6
+ </script>
7
+ <div class="cbstore-block">
8
+ <!--<h3 class="store-extensions-header"><?php echo $this->__('Featured Extensions') ?></h3>-->
9
+ <div class="cb-intro">
10
+ <div class="content">
11
+ <h1>CONVERSIONbug</h1>
12
+ <p>We want to change the way you look at your website</p>
13
+ <p><span>Visit Us: </span><a href="http://www.conversionbug.com/">www.conversionbug.com</a></p>
14
+ <p><span>Contact Us: </span><a href="mailto:support@conversionbug.com">support@conversionbug.com</a></p>
15
+ <p><span>Skype: </span><a href="#">conversionbug</a></p>
16
+ </div>
17
+ <div class="cb-pattern"></div>
18
+ </div>
19
+ <?php
20
+ $collection = $this->getExtensions();
21
+ //echo "<pre>";print_r($collection);
22
+ ?>
23
+
24
+ <?php $i = 0;
25
+ foreach ($collection as $product): ?>
26
+ <?php if ($i == 0) {
27
+ $i++;
28
+ continue;
29
+ } ?>
30
+ <div class="item-extensions">
31
+ <div class="image">
32
+ <a href="<?php echo $product[0] ?>" target="_blank"><img src="<?php echo $product[1] ?>"/></a>
33
+ </div>
34
+ <div class="title">
35
+ <a href="<?php echo $product[0] ?>" target="_blank"><?php echo $product[2] ?></a>
36
+ </div>
37
+ <div class="price">$<?php echo $product[3] ?></div>
38
+ </div>
39
+ <?php ++$i; ?>
40
+ <?php endforeach; ?>
41
+ </div>
42
+
43
+
app/design/frontend/base/default/layout/cb_stickyproductsidebar.xml ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <catalog_product_view>
4
+ <reference name="head">
5
+ <action method="addCss">
6
+ <stylesheet>css/conversionbug/stickyproductsidebar/main.css</stylesheet>
7
+ </action>
8
+ <action method="addJs">
9
+ <script>conversionbug/stickyproductsidebar/stickEmUp.js</script>
10
+ </action>
11
+ </reference>
12
+ <reference name="head">
13
+ <block type="catalog/product_view" name="sticky" >
14
+ <action method="setTemplate" ifconfig="product_sticky_bar/general/status">
15
+ <template>conversionbug/stickyproductsidebar/js.phtml</template>
16
+ </action>
17
+ </block>
18
+ </reference>
19
+ </catalog_product_view>
20
+ </layout>
app/design/frontend/base/default/template/conversionbug/stickyproductsidebar/js.phtml ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $helper = Mage::helper('stickyproductsidebar'); ?>
2
+ <?php $_helper = $this->helper('catalog/output'); ?>
3
+ <?php $_product = $this->getProduct(); ?>
4
+ <?php if (!$helper->isEnableProduct()): ?>
5
+ <div class="sticky-sidebar">
6
+ <button class="close" data-action='stop'>X</button>
7
+ <h4 class="sticky-head"><?php echo $this->__('Currently Viewing') ?></h4>
8
+ <div class="product-shop">
9
+ <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
10
+ <div class="product-name">
11
+ <h4> <?php echo Mage::helper('core/string')->truncate($_product->getName(), 150, '...');?> </h4>
12
+ </div>
13
+ <?php echo $this->getReviewsSummaryHtml($_product, false, true) ?>
14
+ <?php echo $this->getPriceHtml($_product, true) ?>
15
+ <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
16
+ <div class="desc std">
17
+ <?php echo Mage::helper('core/string')->truncate($_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description'), 150, '...');
18
+ ?>
19
+ </div>
20
+ <?php if (!$this->hasOptions() && !$_product->isGrouped()): ?>
21
+ <?php if ($_product->isSaleable()): ?>
22
+ <p><button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span class="stickybuy-icon"></span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
23
+ <?php else: ?>
24
+ <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
25
+ <?php endif; ?>
26
+ <?php endif; ?>
27
+
28
+ </div>
29
+ </div>
30
+ <script type="text/javascript">
31
+ jQuery(document).ready(function () {
32
+ var stickEm = jQuery('.sticky-sidebar').stickEmUp({
33
+ stickOffset: -<?php echo $helper->getHeight();?>,
34
+ callback: function (info) {
35
+ console.log(info);
36
+ },
37
+ }).data('plugin_stickEmUp');
38
+
39
+ jQuery('[data-action="stop"]').click(function () {
40
+ stickEm.disableSticky();
41
+ });
42
+ });
43
+ </script>
44
+ <?php else: ?>
45
+ <div class="sticky-sidebar-horizontal">
46
+ <div class="inner">
47
+ <div class="image">
48
+ <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(50); ?>" width="50" height="50" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></div>
49
+ <div class="desc std">
50
+ <?php echo Mage::helper('core/string')->truncate($_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description'), 150, '...');
51
+ ?>
52
+ </div>
53
+ <?php echo $this->getPriceHtml($_product, true) ?>
54
+ <div class="add-to-cart">
55
+ <?php if (!$this->hasOptions() && !$_product->isGrouped()): ?>
56
+ <?php if ($_product->isSaleable()): ?>
57
+ <p><button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
58
+ <?php else: ?>
59
+ <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
60
+ <?php endif; ?>
61
+ <?php endif; ?>
62
+ </div>
63
+ <div class="close-btn">
64
+ <button class="close" data-action-horizontal='stop'>X</button>
65
+ </div>
66
+ <div class="clr"></div>
67
+ </div>
68
+ </div>
69
+ <script type="text/javascript">
70
+ jQuery(document).ready(function () {
71
+ /* horizontal */
72
+ var stickEmHorizontal = jQuery('.sticky-sidebar-horizontal').stickEmUp({
73
+ stickOffset: -<?php echo $helper->getHeight();?>,
74
+ stickyClass: 'stickEmUpHorizontal',
75
+ callback: function (info) {
76
+ console.log(info);
77
+ },
78
+ }).data('plugin_stickEmUp');
79
+
80
+ jQuery('[data-action-horizontal="stop"]').click(function () {
81
+ stickEmHorizontal.disableSticky();
82
+ });
83
+ });
84
+ </script>
85
+ <?php endif; ?>
app/etc/modules/ConversionBug_Core.xml ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * ConversionBug
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the ConversionBug.com license that is
9
+ * available through the world-wide-web at this URL:
10
+ * http://www.ConversionBug.com/license-agreement.html
11
+ *
12
+ * DISCLAIMER
13
+ *
14
+ * Do not edit or add to this file if you wish to upgrade this extension to newer
15
+ * version in the future.
16
+ *
17
+ * @category ConversionBug
18
+ * @package ConversionBug_Core
19
+ * @copyright Copyright (c) 2015 ConversionBug (http://www.ConversionBug.com/)
20
+ * @license http://www.ConversionBug.com/license-agreement.html
21
+ * @author shiv kumar singh
22
+ * @email shivam.kumar@conversionbug.com
23
+ */
24
+ -->
25
+ <config>
26
+ <modules>
27
+ <ConversionBug_Core>
28
+ <active>true</active>
29
+ <codePool>local</codePool>
30
+ </ConversionBug_Core>
31
+ </modules>
32
+ </config>
app/etc/modules/ConversionBug_Stickyproductsidebar.xml ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * ConversionBug
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the ConversionBug.com license that is
9
+ * available through the world-wide-web at this URL:
10
+ * http://www.ConversionBug.com/license-agreement.html
11
+ *
12
+ * DISCLAIMER
13
+ *
14
+ * Do not edit or add to this file if you wish to upgrade this extension to newer
15
+ * version in the future.
16
+ *
17
+ * @category ConversionBug_Stickyproductsidebar
18
+ * @package ConversionBug_Stickyproductsidebar
19
+ * @copyright Copyright (c) 2015 ConversionBug (http://www.ConversionBug.com/)
20
+ * @license http://www.ConversionBug.com/license-agreement.html
21
+ * @author shiv kumar singh
22
+ * @email shivam.kumar@conversionbug.com
23
+ */
24
+ -->
25
+ <config>
26
+ <modules>
27
+ <ConversionBug_Stickyproductsidebar>
28
+ <active>false</active>
29
+ <codePool>local</codePool>
30
+ <depends><ConversionBug_Core/></depends>
31
+ </ConversionBug_Stickyproductsidebar>
32
+ </modules>
33
+ </config>
js/conversionbug/stickyproductsidebar/stickEmUp.js ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * stickEmUp!
3
+ * Original author: @benrlodge
4
+ * Licensed under the MIT license
5
+ */
6
+
7
+ ;(function ( $, window, document, undefined ) {
8
+
9
+ // Defaults
10
+ var pluginName = 'stickEmUp',
11
+ document = window.document,
12
+ defaults = {
13
+ stickyClass: 'stickEmUp',
14
+ stickOffset: 0,
15
+ callback: ''
16
+ };
17
+
18
+ // The actual plugin constructor
19
+ function Plugin( element, options ) {
20
+ this.element = element;
21
+ this.options = $.extend( {}, defaults, options);
22
+ this._defaults = defaults;
23
+ this._name = pluginName;
24
+ this.init();
25
+ }
26
+
27
+
28
+ // Methods
29
+ Plugin.prototype = {
30
+ sticky: false,
31
+ elCachedPosition: '',
32
+ pastOffset: 0,
33
+ direction: '',
34
+
35
+ theStateOfThings: function(){
36
+ var dos = this.docOffset();
37
+ var eos = this.elOffset();
38
+ var dir = this.direction;
39
+ var stic = this.sticky;
40
+
41
+ return {
42
+ docOffset: dos,
43
+ elOffset: eos,
44
+ direction: dir,
45
+ stickEmUp: stic
46
+ };
47
+ },
48
+
49
+ docOffset: function() {
50
+ return $(document).scrollTop();
51
+ },
52
+
53
+ elOffset: function() {
54
+ return parseInt($(this.element).offset().top - this.options.stickOffset);
55
+ },
56
+
57
+ stick: function() {
58
+ if(this.sticky){ return; }
59
+ $(this.element).addClass(this.options.stickyClass);
60
+ this.sticky = true;
61
+ },
62
+
63
+ unstick: function() {
64
+ if(!this.sticky){ return; }
65
+ $(this.element).removeClass(this.options.stickyClass);
66
+ this.sticky = false;
67
+ },
68
+
69
+ cachePositions: function(){
70
+ this.elCachedPosition = this.elOffset();
71
+ },
72
+
73
+ checkPositions: function(){
74
+
75
+ if(this.disabled){
76
+ return;
77
+ }
78
+
79
+ var docOff = this.docOffset();
80
+
81
+ // set direction
82
+ this.direction = this.pastOffset < docOff ? 'down' : 'up';
83
+ this.pastOffset = docOff;
84
+
85
+
86
+ // check stickiness
87
+ if (docOff >= this.elCachedPosition){
88
+ this.stick();
89
+ }
90
+ else{
91
+ this.unstick();
92
+ }
93
+
94
+ // send callback
95
+ var things = this.theStateOfThings();
96
+ if (typeof this.options.callback === 'function') { // make sure the callback is a function
97
+ this.options.callback(things);
98
+ }
99
+
100
+ },
101
+
102
+ events: function(){
103
+ var scope;
104
+ scope = this;
105
+ $(window).scroll(function() {
106
+ scope.checkPositions();
107
+ });
108
+ },
109
+
110
+ init: function(){
111
+ this.cachePositions();
112
+ this.events();
113
+ },
114
+
115
+ // override and remove sticky state
116
+ disableSticky: function(){
117
+ this.disabled = true;
118
+ this.unstick();
119
+ },
120
+
121
+ defaultSticky: function(){
122
+ this.disabled = false;
123
+ this.checkPositions();
124
+ }
125
+ };
126
+
127
+ // Build the Plugin
128
+ $.fn[ pluginName ] = function ( options ) {
129
+ return this.each(function () {
130
+ if (!$.data( this, 'plugin_' + pluginName ) ) {
131
+ $.data( this, 'plugin_' + pluginName, new Plugin( this, options ) );
132
+ }
133
+ });
134
+ };
135
+
136
+ })( jQuery, window );
media/import/product.csv ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ URL,Prod_Image,Product_Name,Discount_Price
2
+ http://magestore.conversionbug.com/exit-intent-social-popup.html,http://magestore.conversionbug.com/media/catalog/product/b/a/banner_1.png,Social Login With Exit Intent,120
3
+ http://magestore.conversionbug.com/filter-products-by-zip-code.html,http://magestore.conversionbug.com/media/catalog/product/c/b/cb_zip_code_banner_1.png,Filter Products By ZIP code,80
4
+ http://magestore.conversionbug.com/sticky-product.html,http://magestore.conversionbug.com/media/catalog/product/s/t/stickproduct_banner_1.png,Sticky Product Bar,60
5
+ http://magestore.conversionbug.com/replenish-products.html,http://magestore.conversionbug.com/media/catalog/product/b/a/banner_1_1.png,Replenish Products Emailer,75
6
+ http://magestore.conversionbug.com/cookies-based-recently-viewed-products.html,http://magestore.conversionbug.com/media/catalog/product/b/a/banner_1_2.png,Cookies Based Recently Viewed Products,75
package.xml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>ConversionBug_Stickyproductsidebar</name>
4
+ <version>0.1.0</version>
5
+ <stability>stable</stability>
6
+ <license>OSL v3.0</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>The sticky product extension has been designed to increase the sales for e-commerce stores. &#xD;
10
+ </summary>
11
+ <description>&lt;p&gt;The sticky product extension has been designed to increase the sales for e-commerce stores. Generally, while looking for products the visitor goes to the bottom and loses the information about what he/she was viewing. Whenever the user goes below the product details for checking out other suggestions, the details of the currently viewed product come up either in the sidebar or at the top bar. It enables users to compare details of the current and similar products side by side. The extension increases the probability of the customer to buy the product.&lt;/p&gt;&#xD;
12
+ &lt;p&gt;&lt;b&gt;How to use this extension for higher conversions?&lt;/b&gt;&lt;/p&gt;&#xD;
13
+ &lt;p&gt;Use this extension to show your visitors the details about the current product they are viewing to increase the chances of them buying the product. We implemented this extension on some of our client websites and the results were amazing, which proved that the extension is conversion friendly for increasing sales for the e-commerce stores.&lt;/p&gt;&#xD;
14
+ &lt;p&gt;&lt;b&gt;Special features of the sticky product extension&lt;/b&gt;&lt;/p&gt;&#xD;
15
+ &lt;ol&gt;&lt;li&gt;Product details stick on the top bar and the side bar&lt;/li&gt;&#xD;
16
+ &lt;li&gt;Conversion focused design&lt;/li&gt;&#xD;
17
+ &lt;li&gt;Fully customizable&lt;/li&gt;&#xD;
18
+ &lt;li&gt;Responsive across all devices&lt;/li&gt;&lt;/ol&gt;&#xD;
19
+ &lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;Product details stick on the top bar and the side bar&lt;/b&gt;&lt;/p&gt;&#xD;
20
+ &lt;p&gt;The extension is very helpful in showing the customers the details of the product which is currently being viewed by the user so that he doesn&#x2019;t lose the info about the same.&lt;/p&gt;&lt;/li&gt;&#xD;
21
+ &lt;li&gt;&lt;p&gt;&lt;b&gt;Conversion focused design&lt;/b&gt;&lt;/p&gt;&#xD;
22
+ &lt;p&gt;The extension has been designed after deep study of the user behavior and we have designed to make it user as well as conversion focused. &lt;/p&gt;&lt;/li&gt;&#xD;
23
+ &lt;li&gt;&lt;p&gt;&lt;b&gt;Fully customizable&lt;/b&gt;&lt;/p&gt;&#xD;
24
+ &lt;p&gt;The admin interface for this extension is very easy to understand. This extension can be easily customized based on the business requirement.&lt;/p&gt;&lt;/li&gt;&#xD;
25
+ &lt;li&gt;&lt;p&gt;&lt;b&gt;Responsive across all devices&lt;/b&gt;&lt;/p&gt;&#xD;
26
+ &lt;p&gt;The sticky product extension works effortlessly across all the devices. From mobile to tablet and desktop to widescreen, this extension does its work flawlessly.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&#xD;
27
+ &lt;b&gt;Compatible with:&lt;/b&gt;&#xD;
28
+ &lt;ul&gt;&lt;li&gt;&lt;b&gt;Community: &lt;/b&gt;1.9.2&lt;/li&gt;&lt;/ul&gt;&#xD;
29
+ &#xD;
30
+ </description>
31
+ <notes>First release</notes>
32
+ <authors><author><name>shiv kumar singh</name><user>shivam</user><email>shivam.kumar@conversionbug.com</email></author></authors>
33
+ <date>2016-05-12</date>
34
+ <time>06:19:35</time>
35
+ <contents><target name="magelocal"><dir name="ConversionBug"><dir name="Stickyproductsidebar"><dir name="Helper"><file name="Data.php" hash="7e1bd9f4662cb7431e7b8c4ae4359140"/></dir><dir name="etc"><file name="adminhtml.xml" hash="75f6233af6f4397e3e67b9059ed3907f"/><file name="config.xml" hash="8bb8aa67912f45b8a2f737241ddaa548"/><file name="system.xml" hash="1452bbc0ca52458445ba3f934a950174"/></dir></dir><dir name="Core"><dir name="Block"><file name="Info.php" hash="90e4c31958204ac9e40b2293c6372296"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Fieldset"><file name="Store.php" hash="15df9afac0ea33498b03ad544e0bc8c5"/></dir></dir><file name="Info.php" hash="a0601dea3e6e7d3c3f7f4ac7544dd249"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="fd937326042c8165a1df0faca629db7f"/></dir><dir name="Model"><file name="Feed.php" hash="9266834784c19c05f6cf06a3acc69acc"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Display.php" hash="fd271787952e4f1b1ce98a0a68cb37cb"/><file name="Footer.php" hash="7c13df78247e0cc2fe1e11ddff2cdcdf"/><file name="Options.php" hash="a26a31999e38a540292ff24e5ed33428"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="7164e6536faa45bccbf4a09bc6fba886"/><file name="config.xml" hash="c7b1ac437420d8bb3160e561c18d10e6"/><file name="system.xml" hash="8371de258efa47ceff95e858c6c09603"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="ConversionBug_Stickyproductsidebar.xml" hash="1f37a6a1af6d6318d4bb405ced36fbec"/><file name="ConversionBug_Core.xml" hash="537de773791fc95a5a3e340de82162f7"/></dir></target><target name="magedesign"><dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="cb_stickyproductsidebar.xml" hash="9c7b70ef9707b2f51ca96c822de83821"/></dir><dir name="template"><dir name="conversionbug"><dir name="stickyproductsidebar"><file name="js.phtml" hash="5fcf620e44bf6e7dfbefb1afab5f8cc0"/></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="conversionbugcore.xml" hash="12ae2f9f2a96093fcefd593fed15e7b3"/></dir><dir name="template"><dir name="conversionbugcore"><file name="info.phtml" hash="4099f81b6ea49b517ef4354fd8bcb0a2"/></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="conversionbug"><dir name="stickyproductsidebar"><file name="stickEmUp.js" hash="cf9132fe3b5d04eb9505cd801970fa41"/></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="conversionbug"><dir name="core"><file name="core.css" hash="726ac65a6b5f5aa819cebef92f99c7d4"/><dir name="images"><file name="cb_pattern.png" hash="9c5044bebc10bc6a34aa6a1e8e41b54a"/><file name="favicon.png" hash="bab36888d2974803acc518fc6e80c0a8"/><file name="logo.jpg" hash="04b873540f127f3db2702ec81537a92c"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="conversionbug"><dir name="stickyproductsidebar"><file name="main.css" hash="c1cc21869e89fe9dfb601d37b52158cd"/></dir></dir></dir></dir></dir></dir></target><target name="magemedia"><dir name="import"><file name="product.csv" hash="fe4db0faa97e0181d36109d73e2a709d"/></dir></target></contents>
36
+ <compatible/>
37
+ <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
38
+ </package>
skin/adminhtml/default/default/conversionbug/core/core.css ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .cb-block dl > dt.label{background: #d1dedf url("images/logo.jpg") no-repeat scroll 0px -1px;padding-left: 50px;text-indent: -999em;}
2
+ .cb-intro{background:rgb(25,25,25);height:162px;}
3
+ .cb-pattern{background: url("images/cb_pattern.png") no-repeat;height: 162px;width:39%;float:right}
4
+ .cb-intro .content{float:left;width:56%;padding:10px 10px 10px 30px;color:white;}
5
+ h3.cb-header{background: transparent url("images/favicon.png") no-repeat scroll 0 0;height: 37px;overflow: hidden;padding: 0;text-indent: -9999px;width: 120px;display:none;}
6
+ .cbstore-block .item-extensions {float: left;margin: 0 0 0 70px;min-height: 400px;padding: 24px 0;width: 17%;}
7
+ .cbstore-block .item-extensions .image img {width: 175px;}
8
+ .cbstore-block .item-extensions .title {border-bottom: 1px solid #ededed;margin: 0 0 15px;padding: 31px 0 17px;text-align: center;}
9
+ .cbstore-block .item-extensions .title a {color: #545454;display: block;font-family: Arial;font-size: 16px;font-weight: bold;max-height: 57px;min-height: 57px;overflow: hidden;text-decoration: none;}
10
+ .cbstore-block .item-extensions .title a:hover {color: #d4022e;}
11
+ .cbstore-block .item-extensions .price {color: #000000;font-size: 20px;font-weight: bold;text-align: center;}
12
+ .cbstore-block .store-extensions-header {border-bottom: 1px dashed #dddddd;font-family: Arial;font-size: 1.6666em;line-height: 1.25em;margin-left: 70px;padding-bottom: 30px;padding-top: 7px;}
skin/adminhtml/default/default/conversionbug/core/images/cb_pattern.png ADDED
Binary file
skin/adminhtml/default/default/conversionbug/core/images/favicon.png ADDED
Binary file
skin/adminhtml/default/default/conversionbug/core/images/logo.jpg ADDED
Binary file
skin/frontend/base/default/css/conversionbug/stickyproductsidebar/main.css ADDED
@@ -0,0 +1,264 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .sticky-sidebar {
2
+ position: absolute;
3
+ padding: 0px;
4
+ display: none;
5
+ border: 1px solid silver;
6
+ border-radius: 5px;
7
+ }
8
+ .stickEmUp {
9
+ background: white;
10
+ margin-top: 6%;
11
+ display: block;
12
+ position: fixed;
13
+ right: 2%;
14
+ width: 20%;
15
+ z-index: 9999;
16
+ transition: top 800ms ease 0s;
17
+ border-radius: 0;
18
+ }
19
+ .stickEmUp .product-shop{
20
+ padding: 20px;
21
+ }
22
+ .stickEmUp .product-shop .desc{
23
+ text-align: justify;
24
+ }
25
+ .stickEmUp .product-shop > img {
26
+ margin: auto;
27
+ }
28
+ .stickEmUp .product-shop button {
29
+ margin-top: 10px;
30
+ width: 100%;
31
+ font-weight: bold;
32
+ }
33
+ .stickEmUp .product-name h4,.sticky-sidebar-horizontal .inner .product-name h4 {
34
+ text-overflow: ellipsis;
35
+ white-space: nowrap;
36
+ overflow: hidden;
37
+ }
38
+ .sticky-sidebar-horizontal .inner .product-name h4 {
39
+ text-overflow: ellipsis;
40
+ white-space: nowrap;
41
+ overflow: hidden;
42
+ font-size: 18px;
43
+ }
44
+ .stickEmUp .price-box .price,.sticky-sidebar-horizontal .price-box .price{
45
+ font-weight: bold;
46
+ color: #000;
47
+ font-size: 18px;
48
+ }
49
+ .stickEmUp .rating-links{
50
+ font-size: 12px;
51
+ }
52
+
53
+ .stickEmUp .rating-links .separator:after {
54
+ border: 1px solid #000;
55
+ border-radius: 25px;
56
+ font-size: 9px;
57
+ padding: 0 2px;
58
+ font-weight: bold;
59
+ display: block;
60
+ }
61
+
62
+
63
+
64
+
65
+
66
+
67
+ .sticky-sidebar .close {
68
+ float: right;
69
+ right: 0;
70
+ }
71
+
72
+ /* horizontal*/
73
+
74
+ .sticky-sidebar-horizontal {
75
+ background: #ccc none repeat scroll 0 0;
76
+ position: fixed;
77
+ display: none;
78
+ top: 0px;
79
+ width: 100%;
80
+ z-index: 999;
81
+ }
82
+ .sticky-sidebar-horizontal .inner {
83
+ margin: 0 auto;
84
+ max-width: 1200px;
85
+ /* padding: 10px 0 6px;*/
86
+ padding: 5px 0px 0px 0px;
87
+ }
88
+ .sticky-sidebar-horizontal .inner .image {
89
+ width: 7%;
90
+ float: left;
91
+ }
92
+ .sticky-sidebar-horizontal .inner .image img{
93
+ max-height: 50px;
94
+ }
95
+ .sticky-sidebar-horizontal .inner .product-name {
96
+ float: left;
97
+ width: 70%;
98
+ padding: 10px 0;
99
+ }
100
+ .sticky-sidebar-horizontal .inner .add-to-cart {
101
+ float: left;
102
+ padding: 10px 0;
103
+ width: 10%;
104
+ }
105
+ .sticky-sidebar-horizontal .inner .close-btn {
106
+ padding: 10px 0;
107
+ float: right;
108
+ }
109
+ .sticky-sidebar-horizontal .inner .price-box {
110
+ float: left;
111
+ padding: 10px 0;
112
+ width: 8%;
113
+ margin: 0 auto;
114
+ }
115
+ .sticky-sidebar-horizontal .inner .price-box .minimal-price-link{
116
+
117
+ padding: 20px 0px 0px 0px;
118
+
119
+ position: absolute;
120
+
121
+ top: 10px;
122
+
123
+ text-decoration: none;
124
+
125
+ }
126
+
127
+ .sticky-sidebar-horizontal .inner .price-box .minimal-price-link .label{
128
+
129
+ text-transform: capitalize;
130
+
131
+ padding: 0 10px;
132
+
133
+ }
134
+
135
+ .sticky-sidebar-horizontal .inner .price-box .minimal-price{
136
+
137
+ line-height: 1;
138
+
139
+ }
140
+
141
+ .sticky-sidebar-horizontal .inner .price-box .minimal-price .price-label{
142
+
143
+ font-size: 12px;
144
+
145
+ }
146
+
147
+ .sticky-sidebar-horizontal .inner .price-box .minimal-price .price{
148
+
149
+ font-size: 16px;
150
+
151
+ line-height: 1;
152
+
153
+ }
154
+ .clr {
155
+ clear: both;
156
+ }
157
+ .stickEmUpHorizontal {
158
+ border-color: #fff;
159
+ box-shadow: rgb(179, 179, 179) 0px 1px 10px 0px;
160
+ perspective-origin: 674.5px 37.484375px;
161
+ transform-origin: 674.5px 37.484375px;
162
+ border: 0px none rgb(102, 102, 102);
163
+ outline: rgb(102, 102, 102) none 0px;
164
+ background: #fff;
165
+ top: 0;
166
+ display: block;
167
+ position: fixed;
168
+ width: 100%;
169
+ z-index: 9999;
170
+ }
171
+
172
+ .sticky-sidebar .sticky-head{
173
+ background: #3399cc;
174
+ text-align: center;
175
+ color: #fff;
176
+ text-transform: uppercase;
177
+ padding: 10px 0px;
178
+ }
179
+ .sticky-sidebar .close{
180
+ color: #fff;
181
+ padding: 0px 6px;
182
+ margin: 10px 10px;
183
+ background: #147eb2;
184
+ border: none;
185
+ }
186
+ .sticky-sidebar-horizontal .close {
187
+ color: #fff;
188
+ padding: 0px 6px;
189
+ margin: 6px 0px;
190
+ background: #147eb2;
191
+ border: none;
192
+ }
193
+ .sticky-sidebar .stickybuy-icon {
194
+ background-position: 0px -95px;
195
+ background-image: url(../images/icon_sprite.png);
196
+ background-repeat: no-repeat;
197
+ text-indent: -9999px;
198
+ }
199
+
200
+ /*======================================= Mobile ===================================================*/
201
+ /* Custom, iPhone Retina */
202
+
203
+ @media only screen and (min-width: 320px) {}
204
+ /* Extra Small Devices, Phones */
205
+
206
+ @media (min-width: 0px) and (max-width: 420px) {
207
+ .sticky-sidebar-horizontal .close {
208
+ display: none;
209
+ }
210
+ }
211
+
212
+
213
+
214
+
215
+ /* Small Devices, Tablets */
216
+ @media (min-width: 420px) and (max-width: 768px) {
217
+
218
+
219
+
220
+ }
221
+
222
+ /* Small Devices, Tablets */
223
+ @media (min-width: 0px) and (max-width: 768px) {
224
+ .sticky-sidebar-horizontal .inner .price-box {
225
+ display: none;
226
+ }
227
+
228
+ .sticky-sidebar-horizontal .inner .image {
229
+ width: 15%;
230
+ }
231
+ .sticky-sidebar-horizontal .inner .product-name {
232
+ width: 45%;
233
+ }
234
+ .sticky-sidebar-horizontal .inner .add-to-cart {
235
+ width: 30%;
236
+ }
237
+ .sticky-sidebar-horizontal .inner {
238
+ padding: 0px 10px 0px 10px;
239
+ }
240
+ }
241
+
242
+
243
+
244
+ /* Medium Devices, Desktops */
245
+ @media (min-width: 768px) and (max-width: 1200px) {
246
+ .sticky-sidebar-horizontal .inner .product-name {
247
+ width: 60%;
248
+ }
249
+ .sticky-sidebar-horizontal .inner .price-box {
250
+ width: 12%;
251
+ }
252
+
253
+ .sticky-sidebar-horizontal .inner {
254
+ padding: 0px 5px 0px 5px;
255
+ }
256
+ .stickEmUp {
257
+ margin-top: 2% !important;
258
+ right: 10% !important;
259
+ width: 25% !important;
260
+ }
261
+ .sticky-sidebar .sticky-head {
262
+ font-size: 12px;
263
+ }
264
+ }