Source

cmsplugin_radiushostinglinks / cms_plugins.py

# -*- coding: utf-8 -*-

import urllib2
import urllib
import logging
from urllib2 import URLError

from django.contrib.sites.models import Site
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool


class CMSRadiusHostingLinksPlugin(CMSPluginBase):
    name = u'Ссылки от radiushosting'
    render_template = "cmsplugin_radiushostinglinks/links.html"

    def render(self, context, instance, placeholder):
        r = context.get('request')
        context.update({
                        'instance': instance,
                        'placeholder': placeholder,
                    })
        if r:
            d = Site.objects.all()[0].domain
            try:
                params = {
                    "url": r.path.encode("utf-8"),
                    "host": d,
                    "charset": "utf-8",
                }
                html = urllib2.urlopen(u"http://links.radiushosting.ru/"
                                       "get_links.php?%s" % \
                                       (urllib.urlencode(params),),
                                       timeout=3).read()
                context.update({'html': html})
            except URLError:
                log = logging.getLogger("radiushosting_ru")
                log.error(u"не удалось получить ссылки radiushosting.ru")
                context.update({'html': ''})
        return context

plugin_pool.register_plugin(CMSRadiusHostingLinksPlugin)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.