def javascriptvars(self): """ Return javascripts vars Documented in http://help.disqus.com/customer/portal/articles/472098 """ vars = {} vars["disqus_shortname"] = get_forum_short_name(self.context) settings = self.settings() if settings.developer_mode: vars["disqus_developer"] = 1 uid = IUUID(self.context, None) if not uid: uid = self.context.UID() vars["disqus_identifier"] = uid vars["disqus_url"] = self.context.absolute_url() vars["disqus_title"] = self.context.pretty_title_or_id() def to_string(key): value = vars[key] if isinstance(value, basestring): # Replace single quotes for double quotes # This avoids Unexpected identifier error in JavaScript value = safe_unicode(vars[key]).replace("'", '"') else: value = str(value) return "var %s='%s';" % (key, value) output = "" for k in vars.keys(): output += to_string(k) return output
def test_get_short_name_by_context(self): """ Get a short name according to the context """ registry = getUtility(IRegistry) extra_short_names = registry.records[ 'collective.disqus.interfaces.IDisqusSettings.extra_forum_short_names' ].value # set the short name for 'folder' and 'subfolder' extra_short_names.append(u'folder:blog1') self.assertEqual('blog1', get_forum_short_name(self.folder)) self.assertEqual('blog1', get_forum_short_name(self.subfolder)) # set the short name for 'subfolder' extra_short_names.append(u'folder/subfolder:blog2') self.assertEqual('blog1', get_forum_short_name(self.folder)) self.assertEqual('blog2', get_forum_short_name(self.subfolder))
def get_counter_js(self): """ Get the js mentioned in http://disqus.com/admin/universal/ for counting comments """ short_name = get_forum_short_name(self.context) if short_name: result = ("<script type=\"text/javascript\" async=\"async\"" " src=\"http://%s.disqus.com/count.js\" >" "</script>" % short_name) else: result = "" return result
def test_get_default_short_name(self): self.assertEqual('testblog', get_forum_short_name(context=None)) self.assertEqual( 'testblog', get_forum_short_name(context=self.subfolder) )