Skip to content

Commit c315eb5

Browse files
committed
Merge pull request #55 from zendesk/mmolina/update_widget_code_observer
Mmolina/update widget code observer
2 parents c40997a + 84d2419 commit c315eb5

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/app/code/community/Zendesk/Zendesk/Model/Observer.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,20 @@ public function saveConfig(Varien_Event_Observer $observer)
9797
Mage::getModel('core/config')->saveConfig('contacts/email/recipient_email', $oldEmail, $scope, $scopeId);
9898
}
9999
}
100+
101+
// If the zendesk domain is not found in the web widget snippet (wrapped with quotes), generate it again
102+
$zDomain = Mage::getStoreConfig('zendesk/general/domain', $storeCode);
103+
$widgetSnippet = Mage::getStoreConfig('zendesk/frontend_features/web_widget_code_snippet', $storeCode);
104+
// Case insensitive search with single and double quotes, still better performance than 1 regexp search
105+
if(stripos($widgetSnippet, "'{$zDomain}'") === false && stripos($widgetSnippet, '"'.$zDomain.'"') === false) {
106+
$webWidgetSnippet=<<<EOJS
107+
<!-- Start of Zendesk Widget script -->
108+
<script>/*<![CDATA[*/window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("//assets.zendesk.com/embeddable_framework/main.js","{$zDomain}");/*]]>*/</script>
109+
<!-- End of Zendesk Widget script -->
110+
EOJS;
111+
112+
Mage::getModel('core/config')->saveConfig('zendesk/frontend_features/web_widget_code_snippet', $webWidgetSnippet);
113+
}
100114
}
101115

102116
public function addTicketButton(Varien_Event_Observer $event)

0 commit comments

Comments
 (0)