Esempio n. 1
0
    def render(self, field, key, value, REQUEST, render_prefix=None):
        """
      Render editor
    """
        captcha_key = None
        captcha_field = None
        captcha_type = field.get_value("captcha_type")
        provider = CaptchaProviderFactory.getProvider(captcha_type)
        (captcha_key, captcha_answer) = provider.generate(field)
        portal_sessions = field.getPortalObject().portal_sessions
        while not self.add_captcha(portal_sessions,
                                   md5(captcha_key).hexdigest(),
                                   captcha_answer):
            (captcha_key, captcha_answer) = provider.generate(field)
        captcha_field = provider.getHTML(field, captcha_key)

        key_field = Widget.render_element("input",
                                          type="hidden",
                                          name="__captcha_" + key + "__",
                                          value=md5(captcha_key).hexdigest())
        splitter = "<br />"
        answer = Widget.render_element("input",
                                       type="text",
                                       name=key,
                                       css_class=field.get_value('css_class'),
                                       size=10)
        # HTML page having a captcha field should never be cached.
        REQUEST.RESPONSE.setHeader('Cache-Control', 'max-age=0, no-store')
        return captcha_field + key_field + splitter + answer
Esempio n. 2
0
  def render_view(self, field, value, REQUEST=None, render_prefix=None):
    if value is None:
      return ''
    video_player = field.get_value('video_player')
    if video_player == 'html5_video':
      extra_kw = {}
      if field.get_value('video_autoplay'):
        extra_kw['autoplay']='autoplay'
      if field.get_value('video_controls'):
        extra_kw['controls']='controls'
      if field.get_value('video_loop'):
        extra_kw['loop']='loop'
      if field.get_value('video_preload'):
        extra_kw['preload']='preload'
      return Widget.render_element("video",
                        src=value,
                        extra=field.get_value('extra'),
                        width=field.get_value('video_width'),
                        height=field.get_value('video_height'),
                        contents=field.get_value('video_error_message'),
                        **extra_kw)
    elif video_player == 'flowplayer':
      a_element = Widget.render_element("a",
                        href="%s" % value,
                        style="display:block;width:%spx;height:%spx;" % \
                                        (field.get_value('video_width'),
                                         field.get_value('video_height'),),
                        id="player")

      script_element = """<script language="JavaScript">
                             flowplayer("player", "%s/flowplayer.swf");
                         </script>""" % self.getContext(field, REQUEST).getPortalObject().portal_url()
      return ' '.join([a_element,script_element])
Esempio n. 3
0
 def render(self, field, key, value, REQUEST, render_prefix=None):
   """
     Render editor
   """
   captcha_key = None
   captcha_field = None
   captcha_type = field.get_value("captcha_type")
   provider = CaptchaProviderFactory.getProvider(captcha_type)
   (captcha_key, captcha_answer) = provider.generate(field)
   portal_sessions = field.getPortalObject().portal_sessions  
   while not self.add_captcha(portal_sessions, md5(captcha_key).hexdigest(), captcha_answer):
     (captcha_key, captcha_answer) = provider.generate(field)
   captcha_field = provider.getHTML(field, captcha_key)
   
   key_field = Widget.render_element("input",
                                     type="hidden",
                                     name="__captcha_" + key + "__",
                                     value=md5(captcha_key).hexdigest())
   splitter = "<br />"
   answer = Widget.render_element("input",
                                  type="text",
                                  name=key,
                                  css_class=field.get_value('css_class'),
                                  size=10)
   # HTML page having a captcha field should never be cached.
   REQUEST.RESPONSE.setHeader('Cache-Control', 'max-age=0')
   return captcha_field + key_field + splitter + answer
Esempio n. 4
0
    def render_view(self, field, value, REQUEST=None, render_prefix=None):
        if value is None:
            return ''
        video_player = field.get_value('video_player')
        if video_player == 'html5_video':
            extra_kw = {}
            if field.get_value('video_autoplay'):
                extra_kw['autoplay'] = 'autoplay'
            if field.get_value('video_controls'):
                extra_kw['controls'] = 'controls'
            if field.get_value('video_loop'):
                extra_kw['loop'] = 'loop'
            if field.get_value('video_preload'):
                extra_kw['preload'] = 'preload'
            return Widget.render_element(
                "video",
                src=value,
                extra=field.get_value('extra'),
                width=field.get_value('video_width'),
                height=field.get_value('video_height'),
                contents=field.get_value('video_error_message'),
                **extra_kw)
        elif video_player == 'flowplayer':
            a_element = Widget.render_element("a",
                              href="%s" % value,
                              style="display:block;width:%spx;height:%spx;" % \
                                              (field.get_value('video_width'),
                                               field.get_value('video_height'),),
                              id="player")

            script_element = """<script language="JavaScript">
                             flowplayer("player", "%s/flowplayer.swf");
                         </script>""" % self.getContext(
                field, REQUEST).getPortalObject().portal_url()
            return ' '.join([a_element, script_element])
Esempio n. 5
0
 def render_view(self, field, value, REQUEST=None, render_prefix=None):
     """Render image field as a link to the image
     """
     # Url is already defined in value
     if value is None:
       return ''
     image = value
     alt = field.get_value('description') or \
           field.get_value('title')
     css_class = field.get_value('css_class')
     extra = field.get_value('extra')
     options = {}
     options['display'] = field.get_value('image_display')
     options['format'] = field.get_value('image_format')
     options['resolution'] = field.get_value('image_resolution')
     parameters = '&'.join(['%s=%s' % (k, v) for k, v in options.items() \
                            if v])
     if parameters:
         image = '%s?%s' % (image, parameters)
     return Widget.render_element(
         "img",
         alt=alt,
         src=image,
         css_class=css_class,
         extra=extra,
     )
Esempio n. 6
0
 def render_view(self, field, value, REQUEST=None, render_prefix=None):
     """Render image field as a link to the image
     """
     # Url is already defined in value
     if value is None:
         return ''
     image = value
     alt = field.get_value('description') or \
           field.get_value('title')
     css_class = field.get_value('css_class')
     extra = field.get_value('extra')
     options = {}
     options['display'] = field.get_value('image_display')
     options['format'] = field.get_value('image_format')
     options['quality'] = field.get_value('image_quality')
     pre_converted_only = field.get_value('image_pre_converted_only')
     if pre_converted_only:
         # only add if it's True as conversion machine assume that if it is missing
         # then conversion should happen "on the fly"
         options['pre_converted_only'] = pre_converted_only
     parameters = '&'.join(['%s=%s' % (k, v) for k, v in options.items() \
                            if v])
     if parameters:
         image = '%s?%s' % (image, parameters)
     return Widget.render_element(
         "img",
         alt=alt,
         src=image,
         css_class=css_class,
         extra=extra,
     )
Esempio n. 7
0
 def render_view(self, field, value, REQUEST=None, render_prefix=None):
     """Render image field as a link to the image
     """
     # Url is already defined in value
     if value is None:
       return ''
     image = value
     alt = field.get_value('description') or \
           field.get_value('title')
     css_class = field.get_value('css_class')
     extra = field.get_value('extra')
     options = {}
     options['display'] = field.get_value('image_display')
     options['format'] = field.get_value('image_format')
     options['quality'] = field.get_value('image_quality')
     pre_converted_only = field.get_value('image_pre_converted_only')
     if pre_converted_only:
       # only add if it's True as conversion machine assume that if it is missing
       # then conversion should happen "on the fly"
       options['pre_converted_only'] = pre_converted_only
     parameters = '&'.join(['%s=%s' % (k, v) for k, v in options.items() \
                            if v])
     if parameters:
         image = '%s?%s' % (image, parameters)
     return Widget.render_element(
         "img",
         alt=alt,
         src=image,
         css_class=css_class,
         extra=extra,
     )
Esempio n. 8
0
 def render_view(self,
                 field,
                 value,
                 REQUEST=None,
                 render_prefix=None,
                 key=None):
     gadget_url = field.get_value('gadget_url')
     if gadget_url:
         gadget_component = field.restrictedTraverse(gadget_url, None)
         if gadget_component is not None:
             gadget_url = gadget_component.absolute_url()
     kw = {
         'data-gadget-sandbox':
         field.get_value('js_sandbox'),
         # Duplicate the absolute url logic of xhtml style
         'data-gadget-url':
         gadget_url,
         'data-gadget-value':
         value,
         'data-gadget-renderjs-extra':
         dumps(dict(field.get_value('renderjs_extra')))
     }
     if key is not None:
         kw['data-gadget-editable'] = key
     return Widget.render_element("div",
                                  extra=field.get_value('extra'),
                                  **kw)
Esempio n. 9
0
 def render_item(self, item_text, item_value, key, css_class, extra_item, render_prefix=None) :
   """Render an Item."""
   return Widget.render_element('a',
                               href=item_value,
                               contents = item_text,
                               name = key,
                               css_class = css_class,
                               extra_item = extra_item)
Esempio n. 10
0
 def render_item(self, item_text, item_value, key, css_class, extra_item, render_prefix=None) :
   """Render an Item."""
   return Widget.render_element('a',
                               href=item_value,
                               contents = item_text,
                               name = key,
                               css_class = css_class,
                               extra_item = extra_item)
Esempio n. 11
0
 def render(self, field, key, value, REQUEST, render_prefix=None):
     """Honey pot input field.
 """
     return Widget.render_element("input",
                                  type='text',
                                  name=key,
                                  css_class=field.get_value('css_class'),
                                  value=value,
                                  extra=field.get_value('extra'))
Esempio n. 12
0
 def render_view(self, field, value, REQUEST=None, render_prefix=None, key=None):
   kw = {
     'data-gadget-sandbox': field.get_value('js_sandbox'),
     'data-gadget-url': field.get_value('gadget_url'),
     'data-gadget-value': value,
   }
   if key is not None:
     kw['data-gadget-editable'] = key
   return Widget.render_element("div", extra=field.get_value('extra'), **kw)
Esempio n. 13
0
 def render_view(self, field, value, REQUEST=None, render_prefix=None, key=None):
    kw = {}
    kw['data-gadget-url'] = field.get_value('gadget_url')
    kw['data-gadget-scope'] = field.id
    if key is not None:
      kw['data-gadget-editable'] = key
    kw['class'] = "gadget"
    kw['data-gadget-value'] = value
    kw['data-gadget-sandbox'] = field.get_value('js_sandbox')
    return Widget.render_element("div",
                     **kw)
Esempio n. 14
0
    def render(self, field, key, value, REQUEST, render_prefix=None):
        """
      Render editor
    """
        captcha_key = None
        captcha_field = None
        captcha_type = field.get_value("captcha_type")
        provider = CaptchaProviderFactory.getProvider(captcha_type)
        (captcha_key, captcha_answer) = provider.generate(field)
        portal_sessions = field.getPortalObject().portal_sessions
        while not (self.add_captcha(portal_sessions, md5.new(captcha_key).hexdigest(), captcha_answer)):
            (captcha_key, captcha_answer) = provider.generate(field)
        captcha_field = provider.getHTML(field, captcha_key)

        key_field = Widget.render_element(
            "input", type="hidden", name="__captcha_" + key + "__", value=md5.new(captcha_key).hexdigest()
        )
        splitter = "<br />"
        answer = Widget.render_element("input", type="text", name=key, css_class=field.get_value("css_class"), size=10)
        return captcha_field + key_field + splitter + answer
Esempio n. 15
0
    def render_view(self, field, value, REQUEST=None, render_prefix=None):
        if value is None:
            return ""
        video_player = field.get_value("video_player")
        if video_player == "html5_video":
            extra_kw = {}
            if field.get_value("video_autoplay"):
                extra_kw["autoplay"] = "autoplay"
            if field.get_value("video_controls"):
                extra_kw["controls"] = "controls"
            if field.get_value("video_loop"):
                extra_kw["loop"] = "loop"
            if field.get_value("video_preload"):
                extra_kw["preload"] = "preload"
            return Widget.render_element(
                "video",
                src=value,
                extra=field.get_value("extra"),
                width=field.get_value("video_width"),
                height=field.get_value("video_height"),
                contents=field.get_value("video_error_message"),
                **extra_kw
            )
        elif video_player == "flowplayer":
            a_element = Widget.render_element(
                "a",
                href="%s" % value,
                style="display:block;width:%spx;height:%spx;"
                % (field.get_value("video_width"), field.get_value("video_height")),
                id="player",
            )

            script_element = (
                """<script language="JavaScript">
                             flowplayer("player", "%s/flowplayer.swf");
                         </script>"""
                % self.getContext(field, REQUEST).getPortalObject().portal_url()
            )
            return " ".join([a_element, script_element])
Esempio n. 16
0
 def render(self, field, key, value, REQUEST):
     """ render the widget
     """
     captcha = queryMultiAdapter((field, field.REQUEST), name='captcha')
     image = captcha.image_tag()
     input = Widget.render_element(
         "input", type="text", name=key,
         css_class=field.get_value('css_class'),
         value=value)
     return (
         '<div class="form-captcha">' +
         '<div class="form-captcha-img">' + image + '</div>' +
         '<div class="form-captcha-input">' + input + '</div>' +
         '</div>')
Esempio n. 17
0
 def render_view(self, field, value, REQUEST=None, render_prefix=None):
   kw = {}
   gadget_mapping = {"gadget_cached": "data-gadget-cacheable",
                     "gadget_cache_id": "data-gadget-cache-id",
                     "gadget_html": "data-gadget",
                     "gadget_id": "id",
                     "gadget_connection": "data-gadget-connection",
                     "gadget_property": "data-gadget-property"}
   for property_name in gadget_mapping.keys():
     property_value = field.get_value(property_name)
     if property_value or property_name=="gadget_html":
       kw[gadget_mapping[property_name]] = property_value
   return Widget.render_element("div",
                     **kw)
Esempio n. 18
0
 def render_view(self,
                 field,
                 value,
                 REQUEST=None,
                 render_prefix=None,
                 key=None):
     kw = {}
     kw['data-gadget-url'] = field.get_value('gadget_url')
     kw['data-gadget-scope'] = field.id
     if key is not None:
         kw['data-gadget-editable'] = key
     kw['class'] = "gadget"
     kw['data-gadget-value'] = value
     kw['data-gadget-sandbox'] = field.get_value('js_sandbox')
     return Widget.render_element("div", **kw)
Esempio n. 19
0
 def render(self, field, key, value, REQUEST, render_prefix=None):
     """Render input button.
     """
     image = field.get_value('image')
     if image:
         html_type = "image"
     else:
         html_type = "submit"
     return Widget.render_element('input',
                                  type=html_type,
                                  src=image,
                                  name=field.get_value('name'),
                                  css_class=field.get_value('css_class'),
                                  value=field.get_value('default'),
                                  extra=field.get_value('extra'))
Esempio n. 20
0
 def render_view(self, field, value, REQUEST=None, render_prefix=None):
     kw = {}
     gadget_mapping = {
         "gadget_cached": "data-gadget-cacheable",
         "gadget_cache_id": "data-gadget-cache-id",
         "gadget_html": "data-gadget",
         "gadget_id": "id",
         "gadget_connection": "data-gadget-connection",
         "gadget_property": "data-gadget-property"
     }
     for property_name in gadget_mapping.keys():
         property_value = field.get_value(property_name)
         if property_value or property_name == "gadget_html":
             kw[gadget_mapping[property_name]] = property_value
     return Widget.render_element("div", **kw)
Esempio n. 21
0
 def render(self, field, key, value, REQUEST, render_prefix=None):
     """Render input button.
     """
     image = field.get_value('image')
     if image:
       html_type = "image"
     else:
       html_type = "submit"
     return Widget.render_element('input',
                           type=html_type,
                           src=image,
                           name=field.get_value('name'),
                           css_class=field.get_value('css_class'),
                           value=field.get_value('default'),
                           extra=field.get_value('extra'))
Esempio n. 22
0
 def render(self, field, key, value, REQUEST, render_prefix=None):
     """Render input button.
     """
     render_kw = {
         'name': field.get_value('name'),
         'css_class': field.get_value('css_class'),
         'value': field.get_value('default'),
         'extra': field.get_value('extra')
     }
     image = field.get_value('image')
     if image:
         html_type = "image"
         render_kw['src'] = image
     else:
         html_type = "submit"
     return Widget.render_element('input', type=html_type, **render_kw)