def viewArchive(self, path_info, formvars): blogid_year = path_info.split('/')[-1] sp = blogid_year.split('-') blog_id = sp[0] year = int(sp[1]) kw = {} blog = BlogModel.getBlogById(blog_id) posts = blog.getPostsByYear(year) title = 'Post archive for year %s' % year ns = { 'posts': posts, 'amiformat': getFormatManager().noPluginFormat, 'title': title, 'GENERIC_POST_LINK': GENERIC_POST_LINK } kw['content'] = render('site_plugins/blog/view/viewPosts.tmpl', ns) kw['title'] = title kw['host_page'] = blog.host_page kw['id'] = "blogarchive_%s" % blogid_year kw['hidden'] = False kw['edit_mode'] = False kw['premission_type'] = 'Everyone' page_obj = Site.PageDeco(kw) return page_obj.servePage()
def renderText(self): ns = { "header_obj": self, 'template': self.template, 'page_obj': self.page_obj } return render("skeletonz/view/general_templates/site_header.tmpl", ns)
def uploadFile(self, file, ident, ftype, id=0, linkonly=0): bdata = "" for l in file.file.readlines(): bdata += l filename = file.filename.split("\\") filename = filename[-1:][0] ns = { 'site': self, 'BASE_URL': getConfig().BASE_URL, 'ident': ident, 'id': id, 'filename': filename, 'ident_id': makeLinkAble(ident), 'linkonly': linkonly, 'ftype': ftype } ns['data'] = bdata if model.Files.countFilesWithFilename(filename): ns['new_filename'] = model.Files.newFilename(filename) amiweb.session()['upload_ns'] = ns return render( "skeletonz/plugins/upload/view/upload_already_found.tmpl", ns) return self.uploadComplete(ns)
def viewCommentManager(self, ident): ns = { 'ident': ident, 'template': self.template, 'comments': BlogCommentModel.getAllByIdent(ident) } return render("site_plugins/blog/view/comment_manager.tmpl", ns)
def showPageProperties(self, page_id): page_obj = Model.Pages.getPageById(page_id) parent = page_obj.getParent() #Get the sitemap parent_site_map = visit.createOptions(parent, visit.getSitemap(), page_obj.id, "updateParent", null_item=False) files = upload_model.Files.getAllFilesOnPage(page_obj) ns = { 'template': self.template_show_prop, 'page_id': page_id, 'page_obj': page_obj, 'files': files, 'is_admin': Users.isAdmin(), 'parent_site_map': parent_site_map, 'getPermissionDropBox': Admin.PermissionManager.getPermissionDropBox } functions = 'skeletonz/view/admin/components/page_files.tmpl' return render("skeletonz/view/whole_sites/page_properties.tmpl", ns, base=functions)
def renderComment(comment, is_last, edit_mode): def postAuthor(author, website): if website: return '<a href="%s" target="_blank">%s</a>' % (website, author) return author if edit_mode: btn_edit_comment = html_helpers.createActionLink("Edit comment", "static_core/images/edit.png", "return Blog.editComment('%s', this);", tooltip_inner=True) btn_del_comment = html_helpers.createActionLink("Delete comment", "static_core/images/trash.png", "return Blog.deleteComment('%s', this);", tooltip_inner=True, confirm='Are you sure you want to delete?') else: btn_del_comment = '' btn_edit_comment = '' def amiformat(cnt, var): script = re.compile('<(/?script)>', re.IGNORECASE) cnt = script.sub(r'<\1>', cnt) return getFormatManager().noPluginFormat(cnt, var) ns = {'comment': comment, 'postAuthor': postAuthor, 'btn_edit_comment': btn_edit_comment, 'btn_del_comment': btn_del_comment, 'amiformat': amiformat, 'is_last': is_last, 'edit_mode': edit_mode} return render("site_plugins/blog/view/comment.tmpl", ns)
def index(self): pages = Model.Pages.getAllPages() ns = {'pages': pages, 'template': self.template} functions = 'skeletonz/view/admin/components/page_files.tmpl' return render("skeletonz/view/admin/UploadManager_index.tmpl", ns, base=functions)
def wikiPageLink(args, edit_mode, current_page): """ A href to a page in the system """ ident = args['pagelink'] section = args.get('section', None) result = getPageLinkHTML(ident, edit_mode, section, False) ns = {'normal_view': ident, 'edit_view': ''} if args.has_key('show_as'): show_as = args['show_as'] if type(show_as) == types.DictType: if show_as['plugin_type'] == 'image': if edit_mode: ns['normal_view'] = '' ns['edit_view'] = getFormatManager().imageEditModeLink( show_as, edit_mode) else: ns['normal_view'] = getFormatManager().imageEditModeLink( show_as, edit_mode) ns['edit_view'] = '' else: print 'ERROR: Only images are supported in [pagelink=..., show_as=...]' else: ns['normal_view'] = show_as return render(result, ns, True)
def viewLabelManager(self, ident): ns = { 'ident': ident, 'template': self.template, 'labels': BlogLabelModel.getAllByIdent(ident) } return render("site_plugins/blog/view/label_manager.tmpl", ns)
def adminInterface(self, plugin): ns = { 'template': self.template, 'plugin': plugin, 'options': getPluginManager().getPluginOptions(plugin) } return render("skeletonz/view/admin/PluginManager_adminInterface.tmpl", ns)
def showError(self, page_id): ns = { 'error_title': 'Not logged in', 'error_message': 'You are not logged in. Please go back and relogin.', 'page_id': page_id } return render("skeletonz/view/whole_sites/error.tmpl", ns)
def index(self): available_templates = self.getAvailableTemplates() current_template = self.getCurrentTemplate() ns = { 'template': self.template, 'available_templates': available_templates, 'current_template': current_template } return render("skeletonz/view/admin/TemplateManager_index.tmpl", ns)
def showPageLog(self, page_id): page_obj = Model.Pages.getPageById(page_id) ns = { 'template': self.template_pagelog, 'page_obj': page_obj, 'all_logs': self.getAllLogs(page_id) } return render("skeletonz/view/whole_sites/page_log.tmpl", ns)
def renderContent(self, ident, edit_mode): posts = BlogModel.getAllPosts(ident, 15) ns = { 'ident': ident, 'posts': posts, 'edit_mode': edit_mode, 'renderPost': renderPost } return render("site_plugins/blog/view/items.tmpl", ns)
def viewAdd(self, ident): ns = {'template': self.template, 'ident': ident, 'title': '', 'content': '', 'hasLabel': lambda id: False, 'action': 'add', 'submit_value': 'Add post', 'labels': BlogLabelModel.getAllByIdent(ident) } return render("site_plugins/blog/view/manage_post.tmpl", ns)
def renderManage(self, ident): btn_add_post = html_helpers.createActionLink("Add post", "static_plugin/blog/add.png", "return Blog.viewAdd('%s', this);" % ident) btn_manage_label = html_helpers.createActionLink("Labels", "static_plugin/blog/label_manage.png", "return Blog.viewLabelManager('%s', this);" % ident) btn_manage_comments = html_helpers.createActionLink("Comments", "static_plugin/blog/comment_manage.png", "return Blog.viewCommentManager('%s', this);" % ident) ns = { 'btn_add_post': btn_add_post, 'btn_manage_label': btn_manage_label, 'btn_manage_comments': btn_manage_comments, 'ident': ident } return render("site_plugins/blog/view/manage.tmpl", ns)
def setLogin(self, username, password): login_ok = UserModel.Users.checkLogin(username, password) if login_ok: session = amiweb.session() session['logged_in'] = True session['username'] = username self.setViewEditMode("on") AmiCache.expireEditPages() page = Model.Pages.getPageById(getCurrentPage()) ns = {'template': self.template, 'full_link': page.getFullLink()} return render("skeletonz/view/whole_sites/login_ok.tmpl", ns)
def index(self): sitemap_repr = visit.getSitemap() pages = Model.Pages.getAllPages() ns = { 'pages': pages, 'template': self.template, 'sitemap_repr': sitemap_repr, 'getPermissionDropBox': PermissionManager.getPermissionDropBox, 'main_page_id': getMainPageId() } return render("skeletonz/view/admin/SiteManager_index.tmpl", ns)
def renderText(self, current_info, file): """ menu: An instance of model.menu.Menu class """ logged_in = current_info['logged_in'] ns = { 'template': self.template, 'menu_obj': CMSModel.Menus.getStandardMenu(), 'logged_in': logged_in, 'appendSiteEdit': appendSiteEdit(logged_in) } return render(file, ns)
def showUpload(self, ftype, id=0, linkonly=0): file = model.Files.getFileById(id) ns = { 'site': self, 'BASE_URL': getConfig().BASE_URL, 'file': file, 'page_id': amiweb.session()['current_page_id'], 'ftype': ftype, 'linkonly': linkonly } return render("skeletonz/plugins/upload/view/upload.tmpl", ns)
def viewEdit(self, id): post = BlogModel.getPostById(id) ns = {'template': self.template, 'ident': id, 'title': post.title, 'content': post.content, 'hasLabel': post.hasLabel, 'action': 'update', 'submit_value': 'Save changes', 'labels': BlogLabelModel.getAllByIdent(post.getIdent()) } return render("site_plugins/blog/view/manage_post.tmpl", ns)
def appendFilter(self, edit_mode, **kv): #Extra arguments can be sent and they will be visible from the templates ident = self.args[self.type] #Link link = self.args.get("link", None) #Hidden hidden = self.args.get("hidden", None) ident_id = makeLinkAble(ident) cur_page_id = self.current_page if self.args.has_key('global'): cur_page_id = None obj = self.get_obj(ident, self.f_type, cur_page_id) #Set template namespace ns = {'BASE_URL': getConfig().BASE_URL, 'ident_id': ident_id, 'ident': ident} try: ns['obj'] = obj except: pass #Append extra for k in kv.keys(): ns[k] = kv[k] if link: ns['LINK_START'] = '<a href="%s">' % (link) ns['LINK_END'] = '</a>' else: ns['LINK_START'] = '' ns['LINK_END'] = '' if self.args.has_key('align'): ns['LINK_START'] = '<div style="float: %s">%s' % (self.args['align'], ns['LINK_START']) ns['LINK_END'] = '%s</div>' % (ns['LINK_END']) if edit_mode == True: if obj == None: replacer = render(self.tmpl_upload_new, ns, True) else: replacer = render(self.tmpl_upload_edit, ns, True) else: if obj == None: replacer = render(self.tmpl_view_not_created, ns, True) else: if link: if link == "linkonly": replacer = render('$obj.getFilename()', ns, True) else: replacer = render(self.tmpl_view, ns, True) elif hidden: replacer = "" else: replacer = render(self.tmpl_view, ns, True) return "%s" % replacer
def getPermissionDropBox(self, page_id, change_url="admin/SiteManager/changePremission?"): getPremission = Model.Pages.getPremission premissions_repr = visit.getPremissions() ns = { 'page_id': page_id, 'premissions_repr': premissions_repr, 'getPagePremission': getPremission, 'change_url': change_url } return render( "skeletonz/view/admin/components/permission_manager.tmpl", ns)
def fixFilename(self, action, new_name): ns = amiweb.session()['upload_ns'] if action == 'change': if model.Files.countFilesWithFilename(new_name): ns['filename'] = filename ns['new_filename'] = model.Files.newFilename(filename) return render( "skeletonz/plugins/upload/view/upload_already_found.tmpl", ns) ns['filename'] = new_name #Else let is stay the same del amiweb.session()['upload_ns'] return self.uploadComplete(ns)
def index(self): users = UserModel.Users.getAllUsers() groups = UserModel.Groups.getAllGroups() external_login = True try: getConfig().PASSWORD_LOOKUP except AttributeError: external_login = False ns = { 'users': users, 'groups': groups, 'template': self.template, 'external_login': external_login } return render("skeletonz/view/admin/UserManager_index.tmpl", ns)
def renderPost(post, edit_mode, is_permanent=False): page_obj = CMSModel.Pages.getPageById(post.getHostPage()) def cmsRender(text): return getFormatManager().htmlFormat(text, edit_mode, False, page_obj) #Buttons if edit_mode: btn_del = html_helpers.createActionLink("Delete post", "static_core/images/trash.png", "return Blog.del(this, '%s');" % post.getIdent(), tooltip_inner=True, confirm='Are you sure you want to delete?') btn_edit = html_helpers.createActionLink("Edit post", "static_core/images/edit.png", "return Blog.viewEdit('%s', this);" % post.getIdent(), tooltip_inner=True) btn_published = html_helpers.createActionLink("Published", "static_core/images/%(image)s", "return Blog.publish(this, '%s');" % post.getIdent(), tooltip_inner=True) d = post.published and {'image': 'on.png'} or {'image': 'off.png'} btn_published = btn_published % d else: btn_del = '' btn_edit = '' btn_published = '' ns = { 'post': post, 'btn_delete': btn_del, 'btn_edit': btn_edit, 'btn_published': btn_published, 'cmsRender': cmsRender, 'comments': BlogCommentModel.getAll(post.id), 'edit_mode': edit_mode, 'is_permanent': is_permanent, 'post_comment_div': renderPostComment(post.id), 'GENERIC_POST_LINK': GENERIC_POST_LINK, 'GENERIC_LABEL_LINK': GENERIC_LABEL_LINK, 'renderComment': renderComment } if post.published or edit_mode: #Check and see if the template has a inject method site_obj = getRootController().root_obj if getattr(site_obj.template, 'plugin_blog_renderPost', False): return site_obj.template.plugin_blog_renderPost(ns) else: return render("site_plugins/blog/view/item.tmpl", ns) else: return 'No post found.'
def uploadComplete(self, ns): id = ns['id'] bdata = ns['data'] ftype = ns['ftype'] ident = ns['ident'] linkonly = ns['linkonly'] filename = ns['filename'] if id != 0: file_obj = model.Files.uploadFileEdit(id, filename, ftype, bdata) else: file_obj = model.Files.uploadFile(ident, filename, ftype, bdata) ns['filename'] = file_obj.getFilename() new_html = self.getEditHTML(ftype, ident, linkonly) new_html = new_html.replace("'", "\\'") ns['new_html'] = new_html AmiCache.expireCurrentPage() return render("skeletonz/plugins/upload/view/upload_complete.tmpl", ns)
def renderText(self): from skeletonz import Site if Site.Users.getViewEditMode() == 'off': self.edit_mode = False #Set the URL URL = server.getConfig().BASE_URL self.URL = URL ns = { 'template': self.template, 'BASE_URL': URL, 'parent_list': self.getParentList(), 'page_obj': self.page_obj, 'bodyclass': self.bodyclass, 'edit_mode': self.edit_mode, 'edit_permission': self.edit_permission, 'logged_in': self.logged_in, 'appendSiteEdit': appendSiteEdit(self.logged_in) } return render( "templates/%s/view/%s" % (self.template.getName(), self.file_name), ns)
def viewLabelPosts(self, path_info, formvars): label_id = path_info.split('/')[-1] kw = {} label = BlogLabelModel.getById(label_id) posts = label.getPosts() blog = BlogModel.getBlogById(label.blog_id) title = '%s posts posted under label "%s"' % (len(posts), label.name) ns = { 'posts': posts, 'amiformat': getFormatManager().noPluginFormat, 'title': title, 'GENERIC_POST_LINK': GENERIC_POST_LINK } kw['content'] = render('site_plugins/blog/view/viewPosts.tmpl', ns) kw['title'] = title kw['host_page'] = blog.host_page kw['id'] = "bloglabel_%s" % label_id kw['hidden'] = False kw['edit_mode'] = False kw['premission_type'] = 'Everyone' page_obj = Site.PageDeco(kw) return page_obj.servePage()
def renderText(self): ns = {'footer_obj': self} return render("skeletonz/view/general_templates/footer.tmpl", ns)