def updateTransforms(portal): """ Update safe_html portal_transform """ from Products.CMFDefault.utils import VALID_TAGS from Products.CMFDefault.utils import NASTY_TAGS valid_tags = VALID_TAGS.copy() nasty_tags = NASTY_TAGS.copy() nasty_tags.pop('applet') nasty_tags.pop('embed') nasty_tags.pop('object') nasty_tags.pop('script') valid_tags['applet'] = 1 valid_tags['embed'] = 1 valid_tags['object'] = 1 valid_tags['thead'] = 1 valid_tags['tfoot'] = 1 valid_tags['param'] = 0 kwargs = {'nasty_tags': nasty_tags, 'valid_tags': valid_tags, 'remove_javascript': 0} transform = getattr(getToolByName(portal, 'portal_transforms'), 'safe_html') for k in list(kwargs): if isinstance(kwargs[k], dict): v = kwargs[k] kwargs[k+'_key'] = v.keys() kwargs[k+'_value'] = [str(s) for s in v.values()] del kwargs[k] transform.set_parameters(**kwargs)
def setupTransforms(portal, out): from Products.CMFDefault.utils import VALID_TAGS from Products.CMFDefault.utils import NASTY_TAGS valid_tags = VALID_TAGS.copy() nasty_tags = NASTY_TAGS.copy() nasty_tags.pop('embed') nasty_tags.pop('object') valid_tags['embed'] = 1 valid_tags['object'] = 1 valid_tags['iframe'] = 1 kwargs = {'nasty_tags': nasty_tags, 'valid_tags': valid_tags} transform = getattr(getToolByName(portal, 'portal_transforms'), 'safe_html') for k in list(kwargs): if isinstance(kwargs[k], dict): v = kwargs[k] kwargs[k+'_key'] = v.keys() kwargs[k+'_value'] = [str(s) for s in v.values()] del kwargs[k] transform.set_parameters(**kwargs) transform.reloadTransforms()
from sgmllib import SGMLParser, SGMLParseError import re from cgi import escape from Products.PortalTransforms.interfaces import ITransform from zope.interface import implements from Products.PortalTransforms.utils import log from Products.CMFDefault.utils import bodyfinder from Products.CMFDefault.utils import IllegalHTML from Products.CMFDefault.utils import VALID_TAGS from Products.CMFDefault.utils import NASTY_TAGS from Products.PortalTransforms.utils import safeToInt # tag mapping: tag -> short or long tag VALID_TAGS = VALID_TAGS.copy() NASTY_TAGS = NASTY_TAGS.copy() # add some tags to allowed types. These should be backported to CMFDefault. VALID_TAGS['ins'] = 1 VALID_TAGS['del'] = 1 VALID_TAGS['q'] = 1 VALID_TAGS['map'] = 1 VALID_TAGS['area'] = 0 VALID_TAGS['abbr'] = 1 VALID_TAGS['acronym'] = 1 VALID_TAGS['var'] = 1 VALID_TAGS['dfn'] = 1 VALID_TAGS['samp'] = 1 VALID_TAGS['address'] = 1 VALID_TAGS['bdo'] = 1 VALID_TAGS['thead'] = 1
from Products.CMFDefault.utils import VALID_TAGS from Products.CMFDefault.utils import NASTY_TAGS from Products.PortalTransforms.utils import safeToInt from lxml import etree from lxml.etree import HTMLParser as LHTMLParser from lxml.html import tostring try: from lxml.html.soupparser import fromstring as soupfromstring except ImportError: # Means BeautifulSoup module is not installed soupfromstring = None # tag mapping: tag -> short or long tag VALID_TAGS = VALID_TAGS.copy() NASTY_TAGS = NASTY_TAGS.copy() # add some tags to allowed types. These should be backported to CMFDefault. VALID_TAGS['ins'] = 1 VALID_TAGS['del'] = 1 VALID_TAGS['q'] = 1 VALID_TAGS['map'] = 1 VALID_TAGS['area'] = 0 VALID_TAGS['abbr'] = 1 VALID_TAGS['acronym'] = 1 VALID_TAGS['var'] = 1 VALID_TAGS['dfn'] = 1 VALID_TAGS['samp'] = 1 VALID_TAGS['address'] = 1 VALID_TAGS['bdo'] = 1 VALID_TAGS['thead'] = 1