def listAnchorNames(self): """Return a list of Anchor names""" results = [] tree = HTMLTreeBuilder.TreeBuilder() tree.feed('<root>%s</root>' % self.context.getPrimaryField().getAccessor(self.context)()) rootnode = tree.close() for x in rootnode.getiterator(): if x.tag == "a": if "name" in x.keys(): results.append(x.attrib['name']) return results
def getDetails(self): """Builds a JSON object based on the details of this object. """ utility = getUtility(ITinyMCE) anchor_portal_types = utility.containsanchors.split('\n') image_portal_types = utility.imageobjects.split('\n') results = {} results['title'] = self.context.title_or_id() results['description'] = self.context.Description() if self.context.portal_type in image_portal_types: if IPhoto.providedBy(self.context): image_field = self.context.getField('photo') results['owner'] = self.context.owner_name results['date_y'] = self.context.year results['date_m'] = self.context.month results['date_d'] = self.context.day else: image_field = self.context.getField('image') results['thumb'] = self.context.absolute_url() + "/image_thumb" results['scales'] = utility.getImageScales(image_field, context=self.context) else: results['thumb'] = "" if self.context.portal_type in anchor_portal_types: results['anchors'] = [] tree = HTMLTreeBuilder.TreeBuilder() tree.feed('<root>%s</root>' % self.context.getPrimaryField().getAccessor(self.context)()) rootnode = tree.close() for x in rootnode.getiterator(): if x.tag == "a": if "name" in x.keys(): results['anchors'].append(x.attrib['name']) else: results['anchors'] = [] return json.dumps(results)
def fromstring(text): parser = HTMLTreeBuilder.TreeBuilder() text = '<root>%s</root>' % text parser.feed(text) return parser.close()