Diglin_Chat - Version 1.1.0

Version Notes

This module allows you to integrate the zopim chat into your Magento installation. You can get access to the Zopim Dashboard directly from the Magento backend. This module allows you to configure for each store view:

Text for the bubble and the chat bar/panel
Display or not by default some chat elements (bubble, window, button)
Define color (depending on Zopim package paid)
Display the name and email of the logged customer
Define where to place the button (bottom left or right)
Automatically or not, set the language of the chat (based on Magento locale or not)
The difference with the official Zopim Chat Module is that here you can define the configuration for each store. It's not possible in the official one and won't be possible unless the developer decide to refactor his code.

Key Benefits by using Zopim Chat

Unparalleled Freedom: Users have a choice of replying via a web browser, favorite IM client (Gtalk, Yahoo! Messenger, AIM or MSN), or their mobile phone.
Seamless User Experience: The user interface is designed to be pleasing and intuitive for online businesses as well as their visitors. Chats are also blazing fast so chats sent are received almost instantaneously. Chat widget designs are versatile and suits every website's needs.
* Powerful Features:
- Get access to real-time analytics and information about your visitors.
- Use our Intelligent Trigger System to automatically engage high-value visitors.
- Get suggestions to frequently asked questions.
- And many more powerful features that makes customer engagement a breeze

Documentation

Just configure the key of your account in Menu System > Configuration > Rissip > Zopim Chat
To find this key, go into the Zopim Dashboard then click on Setting and find the link "Embed widget on my site". In the area where the html code is generated, you can find after //zopim.com/?xyzbufoisfgsigsgdgjbsk. Copy the text after the question mark to the Magento configuration field for the "Key of your account".

Download this release

Release Info

Developer Magento Core Team
Extension Diglin_Chat
Version 1.1.0
Comparing to
See all releases


Version 1.1.0

app/code/community/Diglin/Chat/Block/Adminhtml/Config/Source/Heading.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Diglin_Chat_Block_Adminhtml_Config_Source_Heading
3
+ extends Mage_Adminhtml_Block_Abstract implements Varien_Data_Form_Element_Renderer_Interface
4
+ {
5
+ /**
6
+ * Render element html
7
+ *
8
+ * @param Varien_Data_Form_Element_Abstract $element
9
+ * @return string
10
+ */
11
+ public function render(Varien_Data_Form_Element_Abstract $element)
12
+ {
13
+ $useContainerId = $element->getData('use_container_id');
14
+ return sprintf('<tr class="system-fieldset-sub-head" id="row_%s"><td colspan="5"><h4>%s</h4></td></tr>',
15
+ $element->getHtmlId(), $element->getLabel()
16
+ );
17
+ }
18
+ }
app/code/community/Diglin/Chat/Block/Adminhtml/Config/Source/Hint.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Diglin_Chat_Block_Adminhtml_Config_Source_Hint
3
+ extends Mage_Adminhtml_Block_Abstract
4
+ implements Varien_Data_Form_Element_Renderer_Interface
5
+ {
6
+
7
+ /**
8
+ * Render fieldset html
9
+ *
10
+ * @param Varien_Data_Form_Element_Abstract $element
11
+ * @return string
12
+ */
13
+ public function render(Varien_Data_Form_Element_Abstract $element)
14
+ {
15
+ $version = Mage::getConfig()->getModuleConfig('Diglin_Chat')->version;
16
+ return '<p><form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input name="cmd" type="hidden" value="_s-xclick" /> <input name="hosted_button_id" type="hidden" value="9SFPE62WPWG2U" /> <input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" type="image" /> <img src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" border="0" alt="" width="1" height="1" /> </form>Please, Invite me for a drink for the hard work done. Thank you in advance for your donation</p>
17
+ <p><strong>Diglin_Chat Version: '.$version.'</strong></p>';
18
+
19
+ }
20
+ }
app/code/community/Diglin/Chat/Block/Dashboard.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ define('ZOPIM_DASHBOARD_URL', "https://dashboard.zopim.com/");
4
+
5
+ /* The only code part took from the Official Zopim Module for Magento */
6
+ class Diglin_Chat_Block_Dashboard extends Mage_Core_Block_Template
7
+ {
8
+ protected function _toHtml()
9
+ {
10
+ $username = Mage::getStoreConfig('chat/chatconfig/username');
11
+ $html = '
12
+ <div class="content-header" style="visibility: visible;">
13
+ <table cellspacing="0">
14
+ <tbody><tr>
15
+ <td style="width: 50%;"><h3 class="icon-head head-categories" style="background-image: url(https://zopim.com/assets/branding/zopim.com/chatman/online.png")>Live Chat Dashboard</h3></td>
16
+ </tr>
17
+ </tbody></table>
18
+ </div><p>
19
+ <div id="dashboarddiv" style="margin-top: -18px">
20
+ <iframe
21
+ style="border-bottom:3px solid #dfdfdf" id="dashboardiframe" frameborder=0 src="'.ZOPIM_DASHBOARD_URL.'?username='.$username.'" height=700 width=100% scrolling="no"></iframe></div>
22
+ You may also <a href="'.ZOPIM_DASHBOARD_URL.'?username='.$username.'" target="_newWindow" onClick="javascript:document.getElementById(\'dashboarddiv\').innerHTML=\'\'; ">access the dashboard in a new window</a>.
23
+ <script langauge="javascript">
24
+ function GetHeight() {
25
+ var y = 0;
26
+ if (self.innerHeight) {
27
+ y = self.innerHeight;
28
+ } else if (document.documentElement && document.documentElement.clientHeight) {
29
+ y = document.documentElement.clientHeight;
30
+ } else if (document.body) {
31
+ y = document.body.clientHeight;
32
+ }
33
+ return y;
34
+ }
35
+
36
+ function doResize() {
37
+ document.getElementById("dashboardiframe").style.height= (GetHeight() - 220) + "px";
38
+ }
39
+
40
+ window.onresize = doResize;
41
+ doResize();
42
+
43
+ </script>
44
+ ';
45
+ return $html;
46
+ }
47
+
48
+ }
app/code/community/Diglin/Chat/Block/Display.php ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Diglin_Chat_Block_Display extends Mage_Core_Block_Template {
3
+
4
+ private $_helper;
5
+ private $_options;
6
+
7
+ public function __construct() {
8
+
9
+ $this->_helper = Mage::helper ( 'chat' );
10
+ parent::__construct ();
11
+ }
12
+
13
+ public function getGreetingsOptions(){
14
+
15
+ $data = array();
16
+ $data[] = "'online': ['".$this->_helper->getOnlineGreetingShort() . "', '" . $this->_helper->getOnlineGreetingLong() . "']";
17
+ $data[] = "'offline': ['".$this->_helper->getOfflineGreetingShort() . "', '" . $this->_helper->getOfflineGreetingLong() . "']";
18
+ $data[] = "'away': ['".$this->_helper->getAwayGreetingShort() . "', '" . $this->_helper->getAwayGreetingLong() . "']";
19
+
20
+ if(count($data) > 0){
21
+ $data = implode(',',$data);
22
+ return "\$zopim.livechat.setGreetings({".$data."});";
23
+ }else
24
+ return;
25
+ }
26
+
27
+ public function getLanguage(){
28
+ if($this->_helper->getLanguage() == 'auto'){
29
+ return null;
30
+ };
31
+
32
+ if($this->_helper->getLanguage() == 'md'){
33
+ return "language: '".substr(Mage::app()->getLocale()->getLocale(),0,2)."'";
34
+ }else{
35
+ return "language: '".$this->_helper->getLanguage()."'";
36
+ };
37
+ }
38
+
39
+ public function getName(){
40
+ return (($this->_helper->allowName() && strlen(Mage::helper('customer')->getCurrentCustomer()->getName()) > 0)?"name: '".Mage::helper('customer')->getCurrentCustomer()->getName()."'":null);
41
+ }
42
+
43
+ public function getEmail(){
44
+ return (($this->_helper->allowEmail() && strlen(Mage::helper('customer')->getCurrentCustomer()->getEmail()) > 0)?"email: '".Mage::helper('customer')->getCurrentCustomer()->getEmail()."'":null);
45
+ }
46
+
47
+ public function getBubbleOptions(){
48
+ if(strlen($this->_helper->getBubbleTitle()) > 0){
49
+ $out[] = "\$zopim.livechat.bubble.setTitle('" . $this->_helper->getBubbleTitle() . "')";
50
+ }
51
+
52
+ if(strlen($this->_helper->getBubbleText()) > 0){
53
+ $out[] = "\$zopim.livechat.bubble.setText('" . $this->_helper->getBubbleText() . "')";
54
+ }
55
+
56
+ if($this->_helper->getBubbleShow() == 'show' || $this->getForceBubbleDisplay()){
57
+ $out[] = "\$zopim.livechat.bubble.show()";
58
+ }elseif($this->_helper->getBubbleShow() == 'hide'){
59
+ $out[] = "\$zopim.livechat.bubble.hide()";
60
+ }
61
+
62
+ if(isset($out) && count($out) > 0){
63
+ return implode(';' . "\n",$out) . ';' . "\n";
64
+ }else
65
+ return;
66
+ }
67
+
68
+
69
+ public function getWindowOptions(){
70
+
71
+ if(strlen($this->_helper->getWindowColor()) > 0){
72
+ $out[] = "\$zopim.livechat.window.setColor('" . $this->_helper->getWindowColor() . "')";
73
+ }
74
+
75
+ if(isset($out) && count($out) > 0){
76
+ return implode(';' . "\n",$out) . ';' . "\n";
77
+ }else
78
+ return;
79
+ }
80
+
81
+ public function getButtonOptions(){
82
+ $out[] = "\$zopim.livechat.button.setPosition('" . $this->_helper->getButtonPosition() . "')";
83
+
84
+ if($this->_helper->getButtonHideOffline()){
85
+ $out[] = "\$zopim.livechat.button.setHideWhenOffline()";
86
+ }
87
+
88
+ if($this->_helper->getButtonShow() || $this->getForceButtonDisplay()){
89
+ $out[] = "\$zopim.livechat.button.show()";
90
+ }else{
91
+ $out[] = "\$zopim.livechat.button.hide()";
92
+ }
93
+
94
+ if($this->_helper->getButtonOffset()){
95
+ $out[] = "\$zopim.livechat.button.setOffsetBottom(".$this->_helper->getButtonOffset().")";
96
+ }
97
+
98
+ return implode(';' . "\n", $out). ';' . "\n";
99
+ }
100
+
101
+ public function forceButtonDisplay($value = false){
102
+ $this->_options['force_button_display'] = (bool) $value;
103
+ return;
104
+ }
105
+
106
+ public function forceBubbleDisplay($value = false){
107
+ $this->_options['force_bubble_display'] = (bool) $value;
108
+ return;
109
+ }
110
+
111
+ public function getForceButtonDisplay(){
112
+ return (isset($this->_options['force_button_display']))?$this->_options['force_button_display']:false;
113
+ }
114
+
115
+ public function getForceBubbleDisplay(){
116
+ return (isset($this->_options['force_bubble_display']))?$this->_options['force_bubble_display']:false;
117
+ }
118
+
119
+ public function getDepartmentsOptions(){
120
+ if( $this->_helper->getDepartmentsFilter() ) {
121
+ $out[] = "\$zopim.livechat.departments.filter(" . $this->_helper->getDepartmentsFilter() . ")";
122
+ return implode(';' . "\n", $out). ';' . "\n";
123
+ }else{
124
+ return;
125
+ }
126
+ }
127
+
128
+ public function getUnreadFlagOptions(){
129
+ $out[] = "\$zopim.livechat.unreadflag = " . (($this->_helper->getUnreadFlag())?'\'enable\'':'\'disable\'');
130
+ return implode(';' . "\n", $out). ';' . "\n";
131
+ }
132
+
133
+ protected function _toHtml(){
134
+ if($this->_helper->getEnabled()){
135
+
136
+ if(!$this->_helper->getUseNewApiCall()){
137
+ $output = <<<SCRIPT
138
+ <script type="text/javascript">
139
+ document.write(unescape("%3Cscript src='" + document.location.protocol + "//zopim.com/?{$this->_helper->getKey()}' charset='utf-8' type='text/javascript'%3E%3C/script%3E"));
140
+ </script>
141
+ SCRIPT;
142
+ }else{
143
+ $output = <<<SCRIPTONDEMAND
144
+ <!-- Start of Zopim Live Chat Script -->
145
+ <script type="text/javascript">
146
+ window.\$zopim||(function(d,s){var z=\$zopim=function(c){z._.push(c)},$=
147
+ z.s=d.createElement(s),e=d.getElementsByTagName(s)[0];z.set=function(o
148
+ ){z.set._.push(o)};$.setAttribute('charset','utf-8');$.async=!0;z.set.
149
+ _=[];$.src=('https:'==d.location.protocol?'https://ssl':'http://cdn')+
150
+ '.zopim.com/?{$this->_helper->getKey()}';$.type='text/java'+s;z.
151
+ t=+new Date;z._=[];e.parentNode.insertBefore($,e)})(document,'script')
152
+ </script>
153
+ <!-- End of Zopim Live Chat Script -->
154
+ SCRIPTONDEMAND;
155
+ }
156
+ if(strlen($this->getName()) > 0) $data[] = $this->getName();
157
+ if(strlen($this->getEmail()) > 0) $data[] = $this->getEmail();
158
+ if(strlen($this->getLanguage()) > 0) $data[] = $this->getLanguage();
159
+
160
+ $output .= "\n";
161
+
162
+ if(isset($data) && count($data) > 0)
163
+ {
164
+ $line = implode ( ',', $data );
165
+ $script = "\$zopim.livechat.set({ $line });" . "\n";
166
+ }
167
+
168
+ $script .= $this->getWindowOptions();
169
+ $script .= $this->getButtonOptions();
170
+ $script .= $this->getBubbleOptions();
171
+ $script .= $this->getGreetingsOptions();
172
+ if($this->_helper->getUseNewApiCall()){
173
+ $script .= $this->getDepartmentsOptions();
174
+ $script .= $this->getUnreadFlagOptions();
175
+ }
176
+ if(strlen($script) > 0){
177
+ if($this->_helper->getUseNewApiCall()) $script = '$zopim(function(){' . $script . '});'."\n";
178
+ $output .= '<script type="text/javascript">' ."\n". $script . "</script>";
179
+ }
180
+
181
+ return $output;
182
+ }else
183
+ return;
184
+
185
+ }
186
+ }
app/code/community/Diglin/Chat/Helper/Data.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Only for String Translation
4
+ *
5
+ */
6
+ class Diglin_Chat_Helper_Data extends Mage_Core_Helper_Abstract {
7
+
8
+ private $_config;
9
+
10
+ public function __construct() {
11
+
12
+ $this->_config = Mage::getStoreConfig ( 'chat' );
13
+ }
14
+
15
+ /**
16
+ *
17
+ * @param array $url
18
+ */
19
+ public function getCurlOptions($url) {
20
+
21
+ $curl = new Varien_Http_Adapter_Curl ();
22
+ $curl->setConfig ( array ('timeout' => 5 ) );
23
+ $curl->write ( Zend_Http_Client::GET, $url );
24
+ $response = $curl->read ();
25
+ if ($response === false) {
26
+ return false;
27
+ }
28
+ $response = preg_split ( '/^\r?$/m', $response, 2 );
29
+ $response = trim ( $response [1] );
30
+ $options = explode ( "\n", $response );
31
+ $curl->close ();
32
+
33
+ return $options;
34
+ }
35
+
36
+ public function allowName() {
37
+ return ( bool ) Mage::getStoreConfig ('chat/chatconfig/allow_name');
38
+ }
39
+
40
+ public function allowEmail() {
41
+ return ( bool ) Mage::getStoreConfig ('chat/chatconfig/allow_email');
42
+ }
43
+
44
+ public function getEnabled(){
45
+ return (bool) Mage::getStoreConfig ('chat/chatconfig/enabled');
46
+ }
47
+
48
+ public function getLanguage(){
49
+ return Mage::getStoreConfig ('chat/chatconfig/language');
50
+ }
51
+
52
+ public function getKey(){
53
+ return Mage::getStoreConfig ('chat/chatconfig/key');
54
+ }
55
+
56
+ public function getUnreadFlag(){
57
+ return (bool) Mage::getStoreConfig ('chat/chatconfig/unreadflag');
58
+ }
59
+
60
+ /* Greetings Config */
61
+
62
+ public function getOnlineGreetingShort() {
63
+ return Mage::getStoreConfig ('chat/chatconfig/online_greeting_short');
64
+ }
65
+
66
+ public function getOnlineGreetingLong() {
67
+ return Mage::getStoreConfig ('chat/chatconfig/online_greeting_long');
68
+ }
69
+
70
+ public function getOfflineGreetingShort() {
71
+ return Mage::getStoreConfig ('chat/chatconfig/offline_greeting_short');
72
+ }
73
+
74
+ public function getOfflineGreetingLong() {
75
+ return Mage::getStoreConfig ('chat/chatconfig/offline_greeting_long');
76
+ }
77
+
78
+ public function getAwayGreetingShort() {
79
+ return Mage::getStoreConfig ('chat/chatconfig/away_greeting_short');
80
+ }
81
+
82
+ public function getAwayGreetingLong() {
83
+ return Mage::getStoreConfig ('chat/chatconfig/away_greeting_long');
84
+ }
85
+
86
+ /* Bubble Config */
87
+
88
+ public function getBubbleShow(){
89
+ return Mage::getStoreConfig ('chat/bubbleconfig/show');
90
+ }
91
+
92
+ public function getBubbleTitle(){
93
+ return Mage::getStoreConfig ('chat/bubbleconfig/title');
94
+ }
95
+
96
+ public function getBubbleText(){
97
+ return Mage::getStoreConfig ('chat/bubbleconfig/text');
98
+ }
99
+
100
+ /* Window Config */
101
+
102
+ public function getWindowShow(){
103
+ return Mage::getStoreConfig ('chat/windowconfig/show');
104
+ }
105
+
106
+ public function getWindowColor(){
107
+ return Mage::getStoreConfig ('chat/windowconfig/color');
108
+ }
109
+
110
+ /* Button Config */
111
+
112
+ public function getButtonPosition(){
113
+ return Mage::getStoreConfig ('chat/buttonconfig/position');
114
+ }
115
+
116
+ public function getButtonShow(){
117
+ return (bool) Mage::getStoreConfig ('chat/buttonconfig/show');
118
+ }
119
+
120
+ public function getButtonHideOffline(){
121
+ return (bool) Mage::getStoreConfig ('chat/buttonconfig/hidewhenoffline');
122
+ }
123
+
124
+ public function getButtonOffset(){
125
+ return Mage::getStoreConfig ('chat/buttonconfig/offset');
126
+ }
127
+
128
+ public function getUseNewApiCall(){
129
+ return (bool) Mage::getStoreConfig ('chat/chatconfig/newapicall');
130
+ }
131
+
132
+ public function getDepartmentsFilter(){
133
+ return Mage::getStoreConfig ('chat/departments/filter');
134
+ }
135
+ }
app/code/community/Diglin/Chat/Model/Config/Source/Language.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Diglin_Chat_Model_Config_Source_Language
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+ array('value' => '', 'label'=>Mage::helper('chat')->__('- Auto Detect -')),
14
+ array('value' => 'md','label'=>Mage::helper('chat')->__('- Magento Locale Detection -')),
15
+ array('value' => 'ar','label'=>Mage::helper('chat')->__("Arabic")),
16
+ array('value' => 'bg','label'=>Mage::helper('chat')->__("Bulgarian")),
17
+ array('value' => 'cs','label'=>Mage::helper('chat')->__("Czech")),
18
+ array('value' => 'da','label'=>Mage::helper('chat')->__("Danish")),
19
+ array('value' => 'de','label'=>Mage::helper('chat')->__("German")),
20
+ array('value' => 'en','label'=>Mage::helper('chat')->__("English")),
21
+ array('value' => 'es','label'=>Mage::helper('chat')->__("Spanish; Castilian")),
22
+ array('value' => 'fa','label'=>Mage::helper('chat')->__("Persian")),
23
+ array('value' => 'fo','label'=>Mage::helper('chat')->__("Faroese")),
24
+ array('value' => 'fr','label'=>Mage::helper('chat')->__("French")),
25
+ array('value' => 'he','label'=>Mage::helper('chat')->__("Hebrew")),
26
+ array('value' => 'hr','label'=>Mage::helper('chat')->__("Croatian")),
27
+ array('value' => 'id','label'=>Mage::helper('chat')->__("Indonesian")),
28
+ array('value' => 'it','label'=>Mage::helper('chat')->__("Italian")),
29
+ array('value' => 'ja','label'=>Mage::helper('chat')->__("Japanese")),
30
+ array('value' => 'ko','label'=>Mage::helper('chat')->__("Korean")),
31
+ array('value' => 'ms','label'=>Mage::helper('chat')->__("Malay")),
32
+ array('value' => 'nb','label'=>Mage::helper('chat')->__("Norwegian Bokmal")),
33
+ array('value' => 'nl','label'=>Mage::helper('chat')->__("Dutch; Flemish")),
34
+ array('value' => 'pl','label'=>Mage::helper('chat')->__("Polish")),
35
+ array('value' => 'pt','label'=>Mage::helper('chat')->__("Portuguese")),
36
+ array('value' => 'ru','label'=>Mage::helper('chat')->__("Russian")),
37
+ array('value' => 'sk','label'=>Mage::helper('chat')->__("Slovak")),
38
+ array('value' => 'sl','label'=>Mage::helper('chat')->__("Slovenian")),
39
+ array('value' => 'sv','label'=>Mage::helper('chat')->__("Swedish")),
40
+ array('value' => 'th','label'=>Mage::helper('chat')->__("Thai")),
41
+ array('value' => 'tr','label'=>Mage::helper('chat')->__("Turkish")),
42
+ array('value' => 'ur','label'=>Mage::helper('chat')->__("Urdu")),
43
+ array('value' => 'vi','label'=>Mage::helper('chat')->__("Vietnamese")),
44
+ array('value' => 'zh_CN','label'=>Mage::helper('chat')->__("Chinese (China)")),
45
+ );
46
+ }
47
+
48
+ }
app/code/community/Diglin/Chat/Model/Config/Source/Position.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Diglin_Chat_Model_Config_Source_Position
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+ array('value' => 'bl', 'label'=>Mage::helper('chat')->__('Bottom Left')),
14
+ array('value' => 'br', 'label'=>Mage::helper('chat')->__('Bottom Right')),
15
+ array('value' => 'ml', 'label'=>Mage::helper('chat')->__('Left')),
16
+ array('value' => 'mr', 'label'=>Mage::helper('chat')->__('Right')),
17
+ );
18
+ }
19
+
20
+ }
app/code/community/Diglin/Chat/Model/Config/Source/Showorhide.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Diglin_Chat_Model_Config_Source_Showorhide
3
+ {
4
+
5
+ /**
6
+ * Options getter
7
+ *
8
+ * @return array
9
+ */
10
+ public function toOptionArray()
11
+ {
12
+ return array(
13
+ array('value' => '', 'label'=>Mage::helper('chat')->__('Auto')),
14
+ array('value' => 'show', 'label'=>Mage::helper('chat')->__('Show')),
15
+ array('value' => 'hide', 'label'=>Mage::helper('chat')->__('Hide')),
16
+ );
17
+ }
18
+
19
+ }
app/code/community/Diglin/Chat/Model/Config/Source/Themes.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Diglin_Chat_Model_Config_Source_Themes
4
+ {
5
+ const ZOPIM_THEMES_LIST = "http://zopim.com/assets/dashboard/themes/window/plugins-themes.txt";
6
+
7
+ /**
8
+ * Options getter
9
+ *
10
+ * @return array
11
+ */
12
+ public function toOptionArray()
13
+ {
14
+ $themes = Mage::helper('chat')->getCurlOptions(self::ZOPIM_THEMES_LIST);
15
+
16
+ foreach($themes as $theme){
17
+ $out[] = array('value' => $theme, 'label'=>Mage::helper('chat')->__($theme));
18
+ }
19
+
20
+ return $out;
21
+ }
22
+ }
app/code/community/Diglin/Chat/controllers/AdminController.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Diglin_Chat_AdminController extends Mage_Adminhtml_Controller_Action
3
+ {
4
+ public function dashboardAction()
5
+ {
6
+ $this->loadLayout()
7
+ ->_addContent($this->getLayout()->createBlock('chat/dashboard'))
8
+ ->renderLayout();
9
+ }
10
+
11
+ public function indexAction()
12
+ {
13
+ $this->dashboardAction();
14
+ }
15
+ }
app/code/community/Diglin/Chat/etc/adminhtml.xml ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <menu>
4
+ <customer translate="title" module="customer">
5
+ <children>
6
+ <dashboard translate="title" module="chat">
7
+ <title>Zopim Dashboard</title>
8
+ <action>chat/admin/dashboard</action>
9
+ <sort_order>50</sort_order>
10
+ </dashboard>
11
+ </children>
12
+ </customer>
13
+ </menu>
14
+
15
+ <acl>
16
+ <resources>
17
+ <all>
18
+ <title>Allow Everything</title>
19
+ </all>
20
+ <admin>
21
+ <children>
22
+ <customer>
23
+ <children>
24
+ <dashboard translate="title">
25
+ <title>Dashboard Zopim by diglin</title>
26
+ </dashboard>
27
+ </children>
28
+ </customer>
29
+ <system>
30
+ <children>
31
+ <config>
32
+ <children>
33
+ <chat translate="title">
34
+ <title>Zopim Chat by diglin</title>
35
+ </chat>
36
+ </children>
37
+ </config>
38
+ </children>
39
+ </system>
40
+ </children>
41
+ </admin>
42
+ </resources>
43
+ </acl>
44
+ </config>
app/code/community/Diglin/Chat/etc/config.xml ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <modules>
4
+ <Diglin_Chat>
5
+ <version>1.1.0</version>
6
+ </Diglin_Chat>
7
+ </modules>
8
+
9
+ <default>
10
+ <chat>
11
+ <chatconfig>
12
+ <enabled>1</enabled>
13
+ <language>md</language>
14
+ <allow_name>1</allow_name>
15
+ <allow_email>1</allow_email>
16
+ <newapicall>1</newapicall>
17
+ <online_greeting_short>Click here to chat</online_greeting_short>
18
+ <offline_greeting_short>Leave a message</offline_greeting_short>
19
+ <away_greeting_short>Click here to chat</away_greeting_short>
20
+ <online_greeting_long>Leave a question or comment and our agents will try to attend to you shortly =)</online_greeting_long>
21
+ <offline_greeting_long>We are offline, but if you leave your message and contact details, we will try to get back to you =)</offline_greeting_long>
22
+ <away_greeting_long>If you leave a question or comment, our agents will be notified and will try to attend to you shortly =)</away_greeting_long>
23
+ </chatconfig>
24
+ <buttonconfig>
25
+ <show>1</show>
26
+ <position>bl</position>
27
+ <hidewhenonline>0</hidewhenonline>
28
+ </buttonconfig>
29
+ <bubbleconfig>
30
+ <show></show>
31
+ </bubbleconfig>
32
+ </chat>
33
+ </default>
34
+
35
+ <global>
36
+ <blocks>
37
+ <chat>
38
+ <class>Diglin_Chat_Block</class>
39
+ </chat>
40
+ </blocks>
41
+ <helpers>
42
+ <chat>
43
+ <class>Diglin_Chat_Helper</class>
44
+ </chat>
45
+ </helpers>
46
+ <models>
47
+ <chat>
48
+ <class>Diglin_Chat_Model</class>
49
+ </chat>
50
+ </models>
51
+ </global>
52
+
53
+ <frontend>
54
+ <layout>
55
+ <updates module="chat">
56
+ <chat>
57
+ <file>chat.xml</file>
58
+ </chat>
59
+ </updates>
60
+ </layout>
61
+ </frontend>
62
+
63
+ <admin>
64
+ <routers>
65
+ <Diglin_Chat>
66
+ <use>admin</use>
67
+ <args>
68
+ <module>Diglin_Chat</module>
69
+ <frontName>chat</frontName>
70
+ </args>
71
+ </Diglin_Chat>
72
+ </routers>
73
+ </admin>
74
+ </config>
app/code/community/Diglin/Chat/etc/system.xml ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <tabs>
4
+ <diglin>
5
+ <label>Diglin</label>
6
+ <sort_order>400</sort_order>
7
+ </diglin>
8
+ </tabs>
9
+
10
+ <sections>
11
+ <chat module="chat">
12
+ <label>Zopim Chat by diglin.com</label>
13
+ <tab>diglin</tab>
14
+ <frontend_type>text</frontend_type>
15
+ <sort_order>110</sort_order>
16
+ <show_in_default>1</show_in_default>
17
+ <show_in_website>1</show_in_website>
18
+ <show_in_store>1</show_in_store>
19
+ <groups>
20
+ <hint>
21
+ <frontend_model>chat/adminhtml_config_source_hint</frontend_model>
22
+ <sort_order>0</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
+ </hint>
27
+ <chatconfig>
28
+ <label>Global Configuration</label>
29
+ <frontend_type>text</frontend_type>
30
+ <sort_order>10</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
+ <comment><![CDATA[<a href="https://www.zopim.com/signup/trial?eref=rissip" target="_blank" title="Go to Zopim Website">Sign Up to Zopim to get a key</a>]]></comment>
35
+ <fields>
36
+ <enabled>
37
+ <label>Enabled</label>
38
+ <frontend_type>select</frontend_type>
39
+ <source_model>adminhtml/system_config_source_yesno</source_model>
40
+ <sort_order>10</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
+ </enabled>
45
+ <username>
46
+ <label>Username (Default Agent/Owner email address)</label>
47
+ <frontend_type>text</frontend_type>
48
+ <sort_order>20</sort_order>
49
+ <show_in_default>1</show_in_default>
50
+ <show_in_website>1</show_in_website>
51
+ <show_in_store>1</show_in_store>
52
+ </username>
53
+ <key>
54
+ <label>Key of your account</label>
55
+ <frontend_type>text</frontend_type>
56
+ <sort_order>21</sort_order>
57
+ <comment>You can find when you get the widget code to copy and paste. it's just after the "?" in ...//zopim.com/?... e.g. tQSvi0h1kK832654Mw82weFVthsbMRtBHr</comment>
58
+ <show_in_default>1</show_in_default>
59
+ <show_in_website>1</show_in_website>
60
+ <show_in_store>1</show_in_store>
61
+ </key>
62
+ <language>
63
+ <label>Allow language synchronization</label>
64
+ <frontend_type>select</frontend_type>
65
+ <source_model>chat/config_source_language</source_model>
66
+ <sort_order>25</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
+ </language>
71
+ <allow_name>
72
+ <label>Allow to display the name of the customer</label>
73
+ <frontend_type>select</frontend_type>
74
+ <source_model>adminhtml/system_config_source_yesno</source_model>
75
+ <comment>When this one is logged in.</comment>
76
+ <sort_order>30</sort_order>
77
+ <show_in_default>1</show_in_default>
78
+ <show_in_website>1</show_in_website>
79
+ <show_in_store>1</show_in_store>
80
+ </allow_name>
81
+ <allow_email>
82
+ <label>Allow to display email of the customer</label>
83
+ <frontend_type>select</frontend_type>
84
+ <source_model>adminhtml/system_config_source_yesno</source_model>
85
+ <comment>When this one is logged in.</comment>
86
+ <sort_order>35</sort_order>
87
+ <show_in_default>1</show_in_default>
88
+ <show_in_website>1</show_in_website>
89
+ <show_in_store>1</show_in_store>
90
+ </allow_email>
91
+ <newapicall>
92
+ <label>Use the new API call</label>
93
+ <frontend_type>select</frontend_type>
94
+ <source_model>adminhtml/system_config_source_yesno</source_model>
95
+ <sort_order>36</sort_order>
96
+ <comment>The javascript code of Zopim has been updated and may improve the performance. Theoritycally, if you set this option to "Yes", the loading time to load your pages will be faster, the drawback is that some of options here could not work properly. Please, let me know.</comment>
97
+ <show_in_default>1</show_in_default>
98
+ <show_in_website>1</show_in_website>
99
+ <show_in_store>1</show_in_store>
100
+ </newapicall>
101
+ <unreadflag>
102
+ <label>Unread Flag</label>
103
+ <frontend_type>select</frontend_type>
104
+ <source_model>adminhtml/system_config_source_yesno</source_model>
105
+ <comment>Represents the little unread messages flag. No: Never show the little flag - Yes: Allow the little flag to be shown</comment>
106
+ <sort_order>37</sort_order>
107
+ <show_in_default>1</show_in_default>
108
+ <show_in_website>1</show_in_website>
109
+ <show_in_store>1</show_in_store>
110
+ </unreadflag>
111
+ <message_chat_bar>
112
+ <label>Message Shown on Chat Bar</label>
113
+ <sort_order>39</sort_order>
114
+ <frontend_model>chat/adminhtml_config_source_heading</frontend_model>
115
+ <show_in_default>1</show_in_default>
116
+ <show_in_website>1</show_in_website>
117
+ <show_in_store>1</show_in_store>
118
+ </message_chat_bar>
119
+ <online_greeting_short>
120
+ <label>Online Greeting Short</label>
121
+ <frontend_type>text</frontend_type>
122
+ <sort_order>40</sort_order>
123
+ <show_in_default>1</show_in_default>
124
+ <show_in_website>1</show_in_website>
125
+ <show_in_store>1</show_in_store>
126
+ </online_greeting_short>
127
+ <offline_greeting_short>
128
+ <label>Offline Greeting Short</label>
129
+ <frontend_type>text</frontend_type>
130
+ <sort_order>41</sort_order>
131
+ <show_in_default>1</show_in_default>
132
+ <show_in_website>1</show_in_website>
133
+ <show_in_store>1</show_in_store>
134
+ </offline_greeting_short>
135
+ <away_greeting_short>
136
+ <label>Away Greeting Short</label>
137
+ <frontend_type>text</frontend_type>
138
+ <sort_order>42</sort_order>
139
+ <show_in_default>1</show_in_default>
140
+ <show_in_website>1</show_in_website>
141
+ <show_in_store>1</show_in_store>
142
+ </away_greeting_short>
143
+ <message_chat_panel>
144
+ <label>Message Shown on Chat Panel</label>
145
+ <sort_order>49</sort_order>
146
+ <frontend_model>chat/adminhtml_config_source_heading</frontend_model>
147
+ <show_in_default>1</show_in_default>
148
+ <show_in_website>1</show_in_website>
149
+ <show_in_store>1</show_in_store>
150
+ </message_chat_panel>
151
+ <online_greeting_long>
152
+ <label>Online Greeting Long</label>
153
+ <frontend_type>text</frontend_type>
154
+ <sort_order>50</sort_order>
155
+ <show_in_default>1</show_in_default>
156
+ <show_in_website>1</show_in_website>
157
+ <show_in_store>1</show_in_store>
158
+ </online_greeting_long>
159
+ <offline_greeting_long>
160
+ <label>Offline Greeting Long</label>
161
+ <frontend_type>text</frontend_type>
162
+ <sort_order>51</sort_order>
163
+ <show_in_default>1</show_in_default>
164
+ <show_in_website>1</show_in_website>
165
+ <show_in_store>1</show_in_store>
166
+ </offline_greeting_long>
167
+ <away_greeting_long>
168
+ <label>Away Greeting Long</label>
169
+ <frontend_type>text</frontend_type>
170
+ <sort_order>52</sort_order>
171
+ <show_in_default>1</show_in_default>
172
+ <show_in_website>1</show_in_website>
173
+ <show_in_store>1</show_in_store>
174
+ </away_greeting_long>
175
+ </fields>
176
+ </chatconfig>
177
+ <bubbleconfig>
178
+ <label>Bubble Configuration</label>
179
+ <frontend_type>text</frontend_type>
180
+ <sort_order>20</sort_order>
181
+ <show_in_default>1</show_in_default>
182
+ <show_in_website>1</show_in_website>
183
+ <show_in_store>1</show_in_store>
184
+ <fields>
185
+ <show>
186
+ <label>Show the Bubble</label>
187
+ <frontend_type>select</frontend_type>
188
+ <source_model>chat/config_source_showorhide</source_model>
189
+ <sort_order>10</sort_order>
190
+ <comment>If "Show" is selected, each time a page is reloaded, the bubble is displayed again. Auto, display it by default but if the user close it, it won't reappear until the end of session (2 minutes).</comment>
191
+ <show_in_default>1</show_in_default>
192
+ <show_in_website>1</show_in_website>
193
+ <show_in_store>1</show_in_store>
194
+ </show>
195
+ <title>
196
+ <label>Title text of the Bubble</label>
197
+ <frontend_type>text</frontend_type>
198
+ <sort_order>20</sort_order>
199
+ <show_in_default>1</show_in_default>
200
+ <show_in_website>1</show_in_website>
201
+ <show_in_store>1</show_in_store>
202
+ </title>
203
+ <text>
204
+ <label>Main text of the Bubble</label>
205
+ <frontend_type>text</frontend_type>
206
+ <sort_order>30</sort_order>
207
+ <show_in_default>1</show_in_default>
208
+ <show_in_website>1</show_in_website>
209
+ <show_in_store>1</show_in_store>
210
+ </text>
211
+ </fields>
212
+ </bubbleconfig>
213
+ <windowconfig>
214
+ <label>Window Configuration</label>
215
+ <frontend_type>text</frontend_type>
216
+ <sort_order>30</sort_order>
217
+ <show_in_default>1</show_in_default>
218
+ <show_in_website>1</show_in_website>
219
+ <show_in_store>1</show_in_store>
220
+ <fields>
221
+ <color>
222
+ <label>Color of the window</label>
223
+ <frontend_type>text</frontend_type>
224
+ <sort_order>20</sort_order>
225
+ <comment>Provide here an hexa code e.g. #000000</comment>
226
+ <show_in_default>1</show_in_default>
227
+ <show_in_website>1</show_in_website>
228
+ <show_in_store>1</show_in_store>
229
+ </color>
230
+ </fields>
231
+ </windowconfig>
232
+ <buttonconfig>
233
+ <label>Button Configuration</label>
234
+ <frontend_type>text</frontend_type>
235
+ <sort_order>40</sort_order>
236
+ <show_in_default>1</show_in_default>
237
+ <show_in_website>1</show_in_website>
238
+ <show_in_store>1</show_in_store>
239
+ <fields>
240
+ <show>
241
+ <label>Show the button by default or not</label>
242
+ <frontend_type>select</frontend_type>
243
+ <source_model>adminhtml/system_config_source_yesno</source_model>
244
+ <sort_order>10</sort_order>
245
+ <show_in_default>1</show_in_default>
246
+ <show_in_website>1</show_in_website>
247
+ <show_in_store>1</show_in_store>
248
+ </show>
249
+ <position>
250
+ <label>Position of the button</label>
251
+ <frontend_type>select</frontend_type>
252
+ <source_model>chat/config_source_position</source_model>
253
+ <comment>Pay attention, position "Left" or "Right" don't work on Safari during my test! </comment>
254
+ <sort_order>20</sort_order>
255
+ <show_in_default>1</show_in_default>
256
+ <show_in_website>1</show_in_website>
257
+ <show_in_store>1</show_in_store>
258
+ </position>
259
+ <hidewhenoffline>
260
+ <label>Hide when offline</label>
261
+ <frontend_type>select</frontend_type>
262
+ <source_model>adminhtml/system_config_source_yesno</source_model>
263
+ <comment>This prevents visitors from sending you offline messages</comment>
264
+ <sort_order>30</sort_order>
265
+ <show_in_default>1</show_in_default>
266
+ <show_in_website>1</show_in_website>
267
+ <show_in_store>1</show_in_store>
268
+ </hidewhenoffline>
269
+ <offset>
270
+ <label>Offset of the button</label>
271
+ <frontend_type>text</frontend_type>
272
+ <sort_order>40</sort_order>
273
+ <comment>Adds additional spacing below the button</comment>
274
+ <show_in_default>1</show_in_default>
275
+ <show_in_website>1</show_in_website>
276
+ <show_in_store>1</show_in_store>
277
+ </offset>
278
+ </fields>
279
+ </buttonconfig>
280
+ <departments>
281
+ <label>Departments Configuration</label>
282
+ <frontend_type>text</frontend_type>
283
+ <sort_order>50</sort_order>
284
+ <show_in_default>1</show_in_default>
285
+ <show_in_website>1</show_in_website>
286
+ <show_in_store>1</show_in_store>
287
+ <fields>
288
+ <filter>
289
+ <label>Filter</label>
290
+ <frontend_type>text</frontend_type>
291
+ <sort_order>10</sort_order>
292
+ <comment>Shows only certain departments. e.g. => 'technical support,'sales' </comment>
293
+ <show_in_default>1</show_in_default>
294
+ <show_in_website>1</show_in_website>
295
+ <show_in_store>1</show_in_store>
296
+ </filter>
297
+ </fields>
298
+ </departments>
299
+ </groups>
300
+ </chat>
301
+ </sections>
302
+ </config>
app/design/frontend/default/default/layout/chat.xml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ /**
4
+ * Diglin
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Open Software License (OSL 3.0)
9
+ * that is bundled with this package in the file LICENSE.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/osl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magentocommerce.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magentocommerce.com for more information.
21
+ *
22
+ * @category Diglin
23
+ * @package Diglin_Chat
24
+ * @copyright Copyright (c) 2011 Diglin (http://www.diglin.com)
25
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
26
+ */
27
+ -->
28
+ <layout version="0.1.0">
29
+ <default>
30
+ <reference name="before_body_end">
31
+ <block type="chat/display" name="chat_zopim_default">
32
+ <action method="forceButtonDisplay"><value>1</value></action>
33
+ <action method="forceBubbleDisplay"><value>1</value></action>
34
+ </block>
35
+ <!-- block type="core/template" name="foot" template="chat/chat.phtml" Javascript links for Test Only -->
36
+ </reference>
37
+ </default>
38
+ </layout>
app/design/frontend/default/default/template/chat/chat.phtml ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- For test only -->
2
+ Show hide window
3
+ <a href="javascript:void($zopim.livechat.window.hide())">Hide</a>
4
+ <a href="javascript:void($zopim.livechat.window.show())">Show</a>
5
+ <br/>
6
+ Show hide Button
7
+ <a href="javascript:void($zopim.livechat.button.hide())">Hide</a>
8
+ <a href="javascript:void($zopim.livechat.button.show())">Show</a>
9
+ <br/>
10
+ Show Hide Bubble
11
+ <a href="javascript:void($zopim.livechat.bubble.hide())">Hide</a>
12
+ <a href="javascript:void($zopim.livechat.bubble.show())">Show</a>
13
+
14
+ Position
15
+ <a href="javascript:void($zopim.livechat.button.setPosition('mr'))">milieu droit</a>
16
+ <a href="javascript:void($zopim.livechat.button.setPosition('br'))">Bottom right</a>
17
+
app/etc/modules/Diglin_Chat.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Diglin_Chat>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ </Diglin_Chat>
8
+ </modules>
9
+ </config>
package.xml ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Diglin_Chat</name>
4
+ <version>1.1.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Integrate into your Magento shop the Zopim Chat service. You can customize the chat per store view and get access to the Zopim backend from your Magento backend.</summary>
10
+ <description>This module allows you to integrate the Zopim Chat into your Magento installation. You can get access to the Zopim Dashboard directly from the Magento backend. This module allows you to configure for each store view: &#xD;
11
+ &#xD;
12
+ - Text for the bubble and the chat bar/panel&#xD;
13
+ - Display or not by default some chat elements (bubble, window, button)&#xD;
14
+ - Define color (depending on Zopim package paid)&#xD;
15
+ - Display the name and email of the logged customer &#xD;
16
+ - Define where to place the button (bottom left or right)&#xD;
17
+ - Automatically or not, set the language of the chat (based on Magento locale or not)&#xD;
18
+ - The difference with the official Zopim Chat Module is that here you can define the configuration for each store. It's not possible in the official one and won't be possible unless the developer decide to refactor his code.&#xD;
19
+ &#xD;
20
+ Key Benefits by using Zopim Chat&#xD;
21
+ &#xD;
22
+ Unparalleled Freedom: Users have a choice of replying via a web browser, favorite IM client (Gtalk, Yahoo! Messenger, AIM or MSN), or their mobile phone.&#xD;
23
+ Seamless User Experience: The user interface is designed to be pleasing and intuitive for online businesses as well as their visitors. Chats are also blazing fast so chats sent are received almost instantaneously. Chat widget designs are versatile and suits every website's needs.&#xD;
24
+ * Powerful Features:&#xD;
25
+ - Get access to real-time analytics and information about your visitors.&#xD;
26
+ - Use our Intelligent Trigger System to automatically engage high-value visitors.&#xD;
27
+ - Get suggestions to frequently asked questions.&#xD;
28
+ - And many more powerful features that makes customer engagement a breeze&#xD;
29
+ &#xD;
30
+ Documentation&#xD;
31
+ &#xD;
32
+ Just configure the key of your account in Menu System &gt; Configuration &gt; Rissip &gt; Zopim Chat&#xD;
33
+ To find this key, go into the Zopim Dashboard then click on Setting and find the link "Embed widget on my site". In the area where the html code is generated, you can find after //zopim.com/?xyzbufoisfgsigsgdgjbsk. Copy the text after the question mark to the Magento configuration field for the "Key of your account".</description>
34
+ <notes>This module allows you to integrate the zopim chat into your Magento installation. You can get access to the Zopim Dashboard directly from the Magento backend. This module allows you to configure for each store view: &#xD;
35
+ &#xD;
36
+ Text for the bubble and the chat bar/panel&#xD;
37
+ Display or not by default some chat elements (bubble, window, button)&#xD;
38
+ Define color (depending on Zopim package paid)&#xD;
39
+ Display the name and email of the logged customer &#xD;
40
+ Define where to place the button (bottom left or right)&#xD;
41
+ Automatically or not, set the language of the chat (based on Magento locale or not)&#xD;
42
+ The difference with the official Zopim Chat Module is that here you can define the configuration for each store. It's not possible in the official one and won't be possible unless the developer decide to refactor his code.&#xD;
43
+ &#xD;
44
+ Key Benefits by using Zopim Chat&#xD;
45
+ &#xD;
46
+ Unparalleled Freedom: Users have a choice of replying via a web browser, favorite IM client (Gtalk, Yahoo! Messenger, AIM or MSN), or their mobile phone.&#xD;
47
+ Seamless User Experience: The user interface is designed to be pleasing and intuitive for online businesses as well as their visitors. Chats are also blazing fast so chats sent are received almost instantaneously. Chat widget designs are versatile and suits every website's needs.&#xD;
48
+ * Powerful Features:&#xD;
49
+ - Get access to real-time analytics and information about your visitors.&#xD;
50
+ - Use our Intelligent Trigger System to automatically engage high-value visitors.&#xD;
51
+ - Get suggestions to frequently asked questions.&#xD;
52
+ - And many more powerful features that makes customer engagement a breeze&#xD;
53
+ &#xD;
54
+ Documentation&#xD;
55
+ &#xD;
56
+ Just configure the key of your account in Menu System &gt; Configuration &gt; Rissip &gt; Zopim Chat&#xD;
57
+ To find this key, go into the Zopim Dashboard then click on Setting and find the link "Embed widget on my site". In the area where the html code is generated, you can find after //zopim.com/?xyzbufoisfgsigsgdgjbsk. Copy the text after the question mark to the Magento configuration field for the "Key of your account".</notes>
58
+ <authors><author><name>diglin</name><user>auto-converted</user><email>sly@diglin.com</email></author></authors>
59
+ <date>2011-09-11</date>
60
+ <time>12:02:50</time>
61
+ <contents><target name="mageetc"><dir name="modules"><file name="Diglin_Chat.xml" hash="7da9e2d5c52eba04adf5e83fcab1a28b"/></dir></target><target name="magecommunity"><dir name="Diglin"><dir name="Chat"><dir name="Block"><dir name="Adminhtml"><dir name="Config"><dir name="Source"><file name="Heading.php" hash="973aa753b6e5a2f7b3f4f9bd373443a0"/><file name="Hint.php" hash="af5cb2858f7ad2af18cb499b6b8a43fd"/></dir></dir></dir><file name="Dashboard.php" hash="c367633d8be0d632f376f14364f5630f"/><file name="Display.php" hash="a58ee4a9afcf5f8dd9803ca8158d50cd"/></dir><dir name="Helper"><file name="Data.php" hash="3ddc43193dac33843d1698ed181608d8"/></dir><dir name="Model"><dir name="Config"><dir name="Source"><file name="Language.php" hash="c337e775b17fc16676aade9c67f8de6e"/><file name="Position.php" hash="2918270c00d87c849abb999411974c2e"/><file name="Showorhide.php" hash="4765fe0a49708ddc4655e91f5c414f34"/><file name="Themes.php" hash="c52ec833623cab535f09b19e5c0dccf1"/></dir></dir></dir><dir name="controllers"><file name="AdminController.php" hash="221118019d8649c8532f168a4522e11c"/></dir><dir name="etc"><file name="adminhtml.xml" hash="4c24372425939e09aa16fd017743bbc1"/><file name="config.xml" hash="6bb843cbc0cb5c47571519e5f93d8205"/><file name="system.xml" hash="cb80b99be0c4b9d8ae3f7696b9eb7d40"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="chat.xml" hash="9524cbcd9351c6aaf806996ca5a13774"/></dir><dir name="template"><dir name="chat"><file name="chat.phtml" hash="5717c353a6c50a61201af1f8d7762231"/></dir></dir></dir></dir></dir></target></contents>
62
+ <compatible/>
63
+ <dependencies/>
64
+ </package>