示例#1
0
    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
示例#2
0
    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
示例#4
0
 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)
     )