WonderFan_LiveChat - Version 1.0.0

Version Notes

Add live chat support and real-time monitoring onto your Magento website with [Ultimate Live Chat](http://www.ultimatelivechat.com/)

Download this release

Release Info

Developer wonder
Extension WonderFan_LiveChat
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

app/code/community/WonderFan/LiveChat/Helper/Data.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Author : Wonder Fan
5
+ * Email : phpjavaphp@gmail.com
6
+ * Copy right : Wonder Fan 2012
7
+ */
8
+ class WonderFan_LiveChat_Helper_Data extends Mage_Core_Helper_Abstract {
9
+
10
+ public $_settings = array();
11
+
12
+ public function getLiveChatSetting() {
13
+ $this->_settings['hosted_mode_api_key'] = Mage::getStoreConfig('wonderfan_livechat/settings/api_key');
14
+ $this->_settings['popup_mode'] = Mage::getStoreConfig('wonderfan_livechat/optional/popup_mode');
15
+ $this->_settings['image_size'] = Mage::getStoreConfig('wonderfan_livechat/optional/image_size');
16
+ $this->_settings['specific_operators'] = Mage::getStoreConfig('wonderfan_livechat/optional/specific_operators');
17
+ $this->_settings['specific_department'] = Mage::getStoreConfig('wonderfan_livechat/optional/specific_department');
18
+ $this->_settings['specific_route_id'] = Mage::getStoreConfig('wonderfan_livechat/optional/specific_route_id');
19
+ $this->_settings['hosted_mode_uri_override'] = Mage::getStoreConfig('wonderfan_livechat/advanced/hosted_mode_uri_override');
20
+ $this->_settings['online_img_override'] = Mage::getStoreConfig('wonderfan_livechat/advanced/online_img_override');
21
+ $this->_settings['offline_img_override'] = Mage::getStoreConfig('wonderfan_livechat/advanced/offline_img_override');
22
+ return $this->_settings;
23
+ }
24
+
25
+ public function get_popup_uri($hostedURI=null, $popupMode=null, $specificOperators=null, $specificDepartment=null, $specificRouteId=null) {
26
+ $popupUri = rtrim($hostedURI, '/');
27
+ $popupUri .= '/index.php?option=com_jlivechat&amp;view=popup&amp;tmpl=component&amp;popup_mode=' . $popupMode;
28
+
29
+ $activeLanguage = 'en-US';
30
+
31
+ if (!empty($activeLanguage))
32
+ $popupUri .= '&amp;lang=' . $activeLanguage;
33
+ if (!empty($specificOperators))
34
+ $popupUri .= '&amp;operators=' . $specificOperators;
35
+ if (!empty($specificDepartment))
36
+ $popupUri .= '&amp;department=' . urlencode($specificDepartment);
37
+ if (!empty($specificRouteId))
38
+ $popupUri .= '&amp;routeid=' . (int) $specificRouteId;
39
+
40
+ return $popupUri;
41
+ }
42
+
43
+ public function get_dynamic_image_uri($hostedURI=null, $imgSize=null, $specificOperators=null, $specificDepartment=null, $specificRouteId=null) {
44
+ $imgUri = rtrim($hostedURI, '/');
45
+
46
+ if (empty($imgSize))
47
+ $imgSize = 'large';
48
+
49
+ $imgUri .= '/index.php?option=com_jlivechat&amp;view=popup&amp;task=display_status_img';
50
+ $imgUri .= '&amp;no_html=1&amp;do_not_log=true&amp;size=' . $imgSize;
51
+ $imgUri .= '&amp;t=' . time(); // Prevent caching
52
+
53
+ if (!empty($specificOperators))
54
+ $imgUri .= '&amp;operators=' . $specificOperators;
55
+ if (!empty($specificDepartment))
56
+ $imgUri .= '&amp;department=' . urlencode($specificDepartment);
57
+ if (!empty($specificRouteId))
58
+ $imgUri .= '&amp;routeid=' . (int) $specificRouteId;
59
+
60
+ return $imgUri;
61
+ }
62
+
63
+ public function get_tracker_image_uri($hostedURI) {
64
+
65
+ $current_user = Mage::getSingleton('customer/session')->getCustomer();
66
+
67
+ $trackerUri = rtrim($hostedURI, '/') . '/index.php?option=com_jlivechat&amp;no_html=1&amp;tmpl=component';
68
+
69
+ $trackerUri .= '&amp;view=popup';
70
+ $trackerUri .= '&amp;task=track_remote_visitor';
71
+ $trackerUri .= '&amp;user_id=' . $current_user->ID;
72
+ $trackerUri .= '&amp;full_name=' . urlencode($current_user->getName());
73
+ $trackerUri .= '&amp;username=' . urlencode($current_user->getName());
74
+ $trackerUri .= '&amp;email=' . urlencode($current_user->getEmail());
75
+ $trackerUri .= '&amp;referrer=' . urlencode($_SERVER['HTTP_REFERER']);
76
+ $trackerUri .= '&amp;last_uri=' . urlencode(Mage::helper('core/url')->getCurrentUrl());
77
+
78
+ return $trackerUri;
79
+ }
80
+
81
+ }
82
+
83
+ ?>
app/code/community/WonderFan/LiveChat/Model/Adminhtml/System/Config/Source/Image.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class WonderFan_LiveChat_Model_Adminhtml_System_Config_Source_Image {
4
+
5
+ protected $_options;
6
+
7
+ public function toOptionArray() {
8
+ if (!$this->_options) {
9
+ $this->_options[] = array(
10
+ 'label' => Mage::helper('wonderfan_livechat')->__('Large'),
11
+ 'value' => 'large'
12
+ );
13
+ $this->_options[] = array(
14
+ 'label' => Mage::helper('wonderfan_livechat')->__('Small'),
15
+ 'value' => 'small'
16
+ );
17
+ }
18
+ return $this->_options;
19
+ }
20
+
21
+ }
app/code/community/WonderFan/LiveChat/Model/Adminhtml/System/Config/Source/Popup.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class WonderFan_LiveChat_Model_Adminhtml_System_Config_Source_Popup {
4
+
5
+ protected $_options;
6
+
7
+ public function toOptionArray() {
8
+ if (!$this->_options) {
9
+ $this->_options[] = array(
10
+ 'label' => Mage::helper('wonderfan_livechat')->__('Popup Mode'),
11
+ 'value' => 'popup'
12
+ );
13
+ $this->_options[] = array(
14
+ 'label' => Mage::helper('wonderfan_livechat')->__('IFrame Mode'),
15
+ 'value' => 'iframe'
16
+ );
17
+ }
18
+ return $this->_options;
19
+ }
20
+
21
+ }
app/code/community/WonderFan/LiveChat/etc/config.xml ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <WonderFan_LiveChat>
5
+ <version>1.0.0</version>
6
+ </WonderFan_LiveChat>
7
+ </modules>
8
+ <frontend>
9
+ <layout>
10
+ <updates>
11
+ <wonderfan_livechat>
12
+ <file>wonderfan_livechat.xml</file>
13
+ </wonderfan_livechat>
14
+ </updates>
15
+ </layout>
16
+ </frontend>
17
+
18
+ <global>
19
+ <models>
20
+ <wonderfan_livechat>
21
+ <class>WonderFan_LiveChat_Model</class>
22
+ </wonderfan_livechat>
23
+ </models>
24
+ <blocks>
25
+ <wonderfan_livechat>
26
+ <class>WonderFan_LiveChat_Block</class>
27
+ </wonderfan_livechat>
28
+ </blocks>
29
+ <helpers>
30
+ <wonderfan_livechat>
31
+ <class>WonderFan_LiveChat_Helper</class>
32
+ </wonderfan_livechat>
33
+ </helpers>
34
+ </global>
35
+
36
+ <adminhtml>
37
+ <acl>
38
+ <resources>
39
+ <admin>
40
+ <children>
41
+ <system>
42
+ <children>
43
+ <config>
44
+ <children>
45
+ <wonderfan_livechat translate="title" module="wonderfan_livechat">
46
+ <title>Live Chat</title>
47
+ </wonderfan_livechat >
48
+ </children>
49
+ </config>
50
+ </children>
51
+ </system>
52
+ </children>
53
+ </admin>
54
+ </resources>
55
+ </acl>
56
+ </adminhtml>
57
+
58
+ </config>
app/code/community/WonderFan/LiveChat/etc/system.xml ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <wonderfan>
5
+ <label>Wonder Fan</label>
6
+ <sort_order>196</sort_order>
7
+ </wonderfan>
8
+ </tabs>
9
+ <sections>
10
+ <wonderfan_livechat translate="label" module="wonderfan_livechat">
11
+ <label>Live Chat</label>
12
+ <tab>wonderfan</tab>
13
+ <frontend_type>text</frontend_type>
14
+ <sort_order>850</sort_order>
15
+ <show_in_default>1</show_in_default>
16
+ <show_in_website>1</show_in_website>
17
+ <show_in_store>1</show_in_store>
18
+ <groups>
19
+ <settings translate="label">
20
+ <label>Required Settings</label>
21
+ <frontend_type>text</frontend_type>
22
+ <sort_order>8</sort_order>
23
+ <show_in_default>1</show_in_default>
24
+ <show_in_website>1</show_in_website>
25
+ <show_in_store>1</show_in_store>
26
+ <fields>
27
+ <api_key translate="label">
28
+ <label>Hosted Mode API Access Key</label>
29
+ <frontend_type>text</frontend_type>
30
+ <sort_order>20</sort_order>
31
+ <show_in_default>1</show_in_default>
32
+ <show_in_website>1</show_in_website>
33
+ <show_in_store>1</show_in_store>
34
+ </api_key>
35
+ </fields>
36
+ </settings>
37
+ <optional translate="label">
38
+ <label>Optional Settings</label>
39
+ <frontend_type>text</frontend_type>
40
+ <sort_order>9</sort_order>
41
+ <show_in_default>1</show_in_default>
42
+ <show_in_website>1</show_in_website>
43
+ <show_in_store>1</show_in_store>
44
+ <fields>
45
+ <popup_mode translate="label">
46
+ <label>Popup Mode</label>
47
+ <frontend_type>select</frontend_type>
48
+ <source_model>wonderfan_livechat/adminhtml_system_config_source_popup</source_model>
49
+ <sort_order>30</sort_order>
50
+ <show_in_default>1</show_in_default>
51
+ <show_in_website>1</show_in_website>
52
+ <show_in_store>1</show_in_store>
53
+ </popup_mode>
54
+ <image_size translate="label">
55
+ <label>Image Size</label>
56
+ <frontend_type>select</frontend_type>
57
+ <source_model>wonderfan_livechat/adminhtml_system_config_source_image</source_model>
58
+ <sort_order>40</sort_order>
59
+ <show_in_default>1</show_in_default>
60
+ <show_in_website>1</show_in_website>
61
+ <show_in_store>1</show_in_store>
62
+ </image_size>
63
+ <specific_operators translate="label">
64
+ <label>Specific Operators</label>
65
+ <frontend_type>text</frontend_type>
66
+ <sort_order>50</sort_order>
67
+ <show_in_default>1</show_in_default>
68
+ <show_in_website>1</show_in_website>
69
+ <show_in_store>1</show_in_store>
70
+ </specific_operators>
71
+ <specific_department translate="label">
72
+ <label>Specific Department</label>
73
+ <frontend_type>text</frontend_type>
74
+ <sort_order>60</sort_order>
75
+ <show_in_default>1</show_in_default>
76
+ <show_in_website>1</show_in_website>
77
+ <show_in_store>1</show_in_store>
78
+ </specific_department>
79
+ <specific_route_id translate="label">
80
+ <label>Specific Route ID</label>
81
+ <frontend_type>text</frontend_type>
82
+ <sort_order>70</sort_order>
83
+ <show_in_default>1</show_in_default>
84
+ <show_in_website>1</show_in_website>
85
+ <show_in_store>1</show_in_store>
86
+ </specific_route_id>
87
+ </fields>
88
+ </optional>
89
+
90
+ <advanced translate="label">
91
+ <label>Adanced Settings</label>
92
+ <frontend_type>text</frontend_type>
93
+ <sort_order>10</sort_order>
94
+ <show_in_default>1</show_in_default>
95
+ <show_in_website>1</show_in_website>
96
+ <show_in_store>1</show_in_store>
97
+ <fields>
98
+ <hosted_mode_uri_override translate="label">
99
+ <label>JLive! Chat Installation Path Override</label>
100
+ <frontend_type>text</frontend_type>
101
+ <sort_order>20</sort_order>
102
+ <show_in_default>1</show_in_default>
103
+ <show_in_website>1</show_in_website>
104
+ <show_in_store>1</show_in_store>
105
+ </hosted_mode_uri_override>
106
+ <online_img_override translate="label">
107
+ <label>Online Image Src Override</label>
108
+ <frontend_type>text</frontend_type>
109
+ <sort_order>30</sort_order>
110
+ <show_in_default>1</show_in_default>
111
+ <show_in_website>1</show_in_website>
112
+ <show_in_store>1</show_in_store>
113
+ </online_img_override>
114
+ <offline_img_override translate="label">
115
+ <label>Offline Image Src Override</label>
116
+ <frontend_type>text</frontend_type>
117
+ <sort_order>40</sort_order>
118
+ <show_in_default>1</show_in_default>
119
+ <show_in_website>1</show_in_website>
120
+ <show_in_store>1</show_in_store>
121
+ </offline_img_override>
122
+ </fields>
123
+ </advanced>
124
+ </groups>
125
+ </wonderfan_livechat>
126
+ </sections>
127
+ </config>
app/design/frontend/default/default/layout/wonderfan_livechat.xml ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <default>
4
+ <reference name="right">
5
+ <block type="core/template" name="livechat">
6
+ <action method="setTemplate"><template>wonderfan_livechat/livechat.phtml</template></action>
7
+ </block>
8
+ </reference>
9
+ </default>
10
+ </layout>
app/design/frontend/default/default/template/wonderfan_livechat/livechat.phtml ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="block">
2
+ <div class="block-title">
3
+ <strong><span><?php echo $this->__('Live Chat') ?></span></strong>
4
+ </div>
5
+ <div class="block-content">
6
+ <?php
7
+ $instance = Mage::helper('wonderfan_livechat')->getLiveChatSetting();
8
+ $key = $instance['hosted_mode_api_key'];
9
+ $checkUri = 'https://www.ultimatelivechat.com/index.php?option=com_ultimatelivechat&view=api&format=raw&task=validate_api_key2&k=' . urlencode($key);
10
+
11
+ $keyDetails = file_get_contents($checkUri);
12
+ $keyDetails = json_decode($keyDetails);
13
+
14
+ if ($keyDetails->success && isset($keyDetails->user_id) && isset($keyDetails->path)) {
15
+ $instance['hosted_mode_user_id'] = $keyDetails->user_id;
16
+ $instance['hosted_mode_path'] = $keyDetails->path;
17
+ }
18
+
19
+ if (!empty($instance['hosted_mode_uri_override'])) {
20
+ $hostedURI = $instance['hosted_mode_uri_override'];
21
+ } elseif (!empty($instance['hosted_mode_api_key']) && !empty($instance['hosted_mode_user_id']) && !empty($instance['hosted_mode_path'])) {
22
+ if (strtolower($_SERVER['HTTPS']) == 'on') {
23
+ $hostedURI = 'https://';
24
+ } else {
25
+ $hostedURI = 'http://';
26
+ }
27
+
28
+ $hostedURI .= 'www.ultimatelivechat.com/sites/' . $instance['hosted_mode_user_id'] . '/' . $instance['hosted_mode_path'] . '/';
29
+ } else {
30
+ $hostedURI = false;
31
+ }
32
+
33
+ if (!empty($hostedURI)) {
34
+ ?>
35
+ <link rel="stylesheet" type="text/css" href="<?php echo $hostedURI.'components/com_jlivechat/assets/css/jlivechat.min.css' ;?>"/>
36
+ <script type="text/javascript" src="<?php echo $hostedURI; ?>components/com_jlivechat/js/lazyload-min.js"></script>
37
+ <script type="text/javascript" src="<?php echo $hostedURI; ?>components/com_jlivechat/js/jlivechat.min.js"></script>
38
+ <script type="text/javascript">
39
+ JLiveChat.hostedModeURI='<?php echo rtrim(urldecode($hostedURI), '/'); ?>';
40
+ JLiveChat.websiteRoot='<?php echo rtrim(urldecode($hostedURI), '/'); ?>';
41
+ setTimeout('JLiveChat.initialize();', 100);
42
+ </script>
43
+ <img src="<?php echo Mage::helper('wonderfan_livechat')->get_tracker_image_uri($hostedURI); ?>" width="1" height="1" alt="" border="0" />
44
+ <a class="ulc_livechat_img" href="javascript:void(0);" onclick="requestLiveChat('<?php echo Mage::helper('wonderfan_livechat')->get_popup_uri($hostedURI,$instance['popup_mode'], $instance['specific_operators'], $instance['specific_department'], $instance['specific_route_id']); ?>', '<?php echo $instance['popup_mode']; ?>');"><img src="<?php echo Mage::helper('wonderfan_livechat')->get_dynamic_image_uri($hostedURI,$instance['image_size'], $instance['specific_operators'], $instance['specific_department'], $instance['specific_route_id']); ?>" alt="" border="0" /></a>
45
+ <?php
46
+ } else {
47
+ echo '<a href="https://www.ultimatelivechat.com/my-account.html" target="_blank">Ultimate Live Chat hosted mode API key not defined, please define first!</a>';
48
+ }
49
+ ?>
50
+ </div>
51
+ </div>
52
+
app/etc/modules/WonderFan_LiveChat.xml ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Author : Wonder Fan
5
+ * Email : phpjavaphp@gmail.com
6
+ * Copy right : Wonder Fan 2012
7
+ */
8
+ -->
9
+ <config>
10
+ <modules>
11
+ <WonderFan_LiveChat>
12
+ <active>true</active>
13
+ <codePool>community</codePool>
14
+ </WonderFan_LiveChat>
15
+ </modules>
16
+ </config>
package.xml ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>WonderFan_LiveChat</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/osl-3.0.php ">Open Software License (OSL)</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Add live chat support and real-time monitoring onto your Magento website with [Ultimate Live Chat](http://www.ultimatelivechat.com/)</summary>
10
+ <description>[Ultimate Live Chat](http://www.ultimatelivechat.com/) is a Magento plugin that adds live chat support and real-time monitoring capabilites onto your &#xD;
11
+ &#xD;
12
+ website.&#xD;
13
+ &#xD;
14
+ For more information, check out [Ultimate Live Chat](http://www.ultimatelivechat.com/).&#xD;
15
+ &#xD;
16
+ Features include:&#xD;
17
+ &#xD;
18
+ * Live support for all your websites - Provide live support for all your websites from the convenience of your desktop.&#xD;
19
+ * Real-time website monitoring - Monitor your visitor activity in real-time.&#xD;
20
+ * Detailed visitor information - View detailed information on your visitors including but not limited their geo-graphical location, referring website, &#xD;
21
+ &#xD;
22
+ operating system, web browser, pages visited, visit duration, and more...&#xD;
23
+ * Unlimited operators - Enjoy the benefit of unlimited operators!&#xD;
24
+ * Unlimited chat sessions - No restrictions on your chatting abilities what so ever!&#xD;
25
+ * Proactive chat capability - Engage in a proactive chat session with any of your website visitors.&#xD;
26
+ * Route livechat requests - Pre-define which operators will receive a request based on a specific criteria like the visitor's country.&#xD;
27
+ * Supports multiple websites - Provide live support and monitor all your websites from one application.&#xD;
28
+ * Ring operators simultaneously or in order - Ring all the operators at the same time or in a specific order.&#xD;
29
+ * Leave a message - Allow visitors to leave you a message when you are offline or when a chat request is declined.&#xD;
30
+ * Typing status notifications - Shows typing status indicators for the visitor and operator so you can know when someone is typing.&#xD;
31
+ * Email session transcripts - Send the entire livechat session transcript in an email.&#xD;
32
+ * Transfer chat sessions - Transfer chat sesisons between operators.&#xD;
33
+ * SSL Secure Communication - Use a secure encrypted communication protocol.&#xD;
34
+ * Global &amp; operator-defined canned responses - Pre-define common responses for operators.&#xD;
35
+ * Identify registered users - View a users registration details.&#xD;
36
+ * View chat history - Search or browse your chat session history from within your admin panel or from within the operator desktop application.&#xD;
37
+ * Fully customizable - Completely customizable with opensource files.&#xD;
38
+ * Custom branding - Custom brand JLive! Chat and re-distribute to your clients or website users.&#xD;
39
+ * Portable - Operators can be located in different geo-graphical locations and timezones.&#xD;
40
+ * Operator to operator chat - Chat with other operators.&#xD;
41
+ * Operator permissions - Assign specific permissions to certain operators.&#xD;
42
+ * Proxy support - built-in proxy support for the desktop application.&#xD;
43
+ * Professional user-friendly interface - Enjoy a professional and easy to use interface for you and your clients.&#xD;
44
+ * Quick &amp; easy installation - Enjoy the benefits of simplicity! Easily installs through your Magento admin. You can be all setup within minutes!&#xD;
45
+ * Supports many languages - Including but not limited to: English, Czech, Chinese, Dutch, French, German, Hindi, Italian, Indonesian, Spanish, &#xD;
46
+ &#xD;
47
+ Japanese, Portuguese, Russian, Romanian, Malay, Polish...&#xD;
48
+ * Compatible with Windows, Mac, and Linux! - Works with all platforms!&#xD;
49
+ * Lifetime support &amp; updates included - Lifetime upgrades and support included with every license because we stand behind our product 200%!</description>
50
+ <notes>Add live chat support and real-time monitoring onto your Magento website with [Ultimate Live Chat](http://www.ultimatelivechat.com/)</notes>
51
+ <authors><author><name>Wonder Fan</name><user>wonderfan2000</user><email>fanjiahe2000@163.com</email></author></authors>
52
+ <date>2012-04-24</date>
53
+ <time>08:33:56</time>
54
+ <contents><target name="magecommunity"><dir name="WonderFan"><dir name="LiveChat"><dir name="Helper"><file name="Data.php" hash="38dc31e9235dba61edd595966e225585"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Image.php" hash="2f0b05f5095deb9c3b9ed9a4acd45a4a"/><file name="Popup.php" hash="8b94bb67a164d9e669dda912fef4a094"/></dir></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="6a8abb8927ba6086102ae2cf5fbb73a2"/><file name="system.xml" hash="b8cde3af1437c3d0ec6a2c3fb30b8540"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="wonderfan_livechat.xml" hash="909dd2e46a921fd54227382cb4dfc0f4"/></dir><dir name="template"><dir name="wonderfan_livechat"><file name="livechat.phtml" hash="ab11fdde2754976539d3febe5adcaa0c"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="WonderFan_LiveChat.xml" hash="636b9c5cd9e2e2890d28e3d39a75019b"/></dir></target></contents>
55
+ <compatible/>
56
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.5.0.0</min><max>1.7.0.0</max></package></required></dependencies>
57
+ </package>