コード例 #1
0
    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()
コード例 #2
0
ファイル: header.py プロジェクト: 15831944/IslandLinks
 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)
コード例 #3
0
    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)
コード例 #4
0
 def viewCommentManager(self, ident):
     ns = {
       'ident': ident,
       'template': self.template,
       'comments': BlogCommentModel.getAllByIdent(ident)
     }
     return render("site_plugins/blog/view/comment_manager.tmpl", ns)
コード例 #5
0
ファイル: Site.py プロジェクト: 15831944/IslandLinks
    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)
コード例 #6
0
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'&lt;\1&gt;', 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)
コード例 #7
0
 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)
コード例 #8
0
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)
コード例 #9
0
 def viewLabelManager(self, ident):
     ns = {
       'ident': ident,
       'template': self.template,
       'labels': BlogLabelModel.getAllByIdent(ident)
     }
     return render("site_plugins/blog/view/label_manager.tmpl", ns)
コード例 #10
0
 def adminInterface(self, plugin):
     ns = {
         'template': self.template,
         'plugin': plugin,
         'options': getPluginManager().getPluginOptions(plugin)
     }
     return render("skeletonz/view/admin/PluginManager_adminInterface.tmpl",
                   ns)
コード例 #11
0
ファイル: Site.py プロジェクト: 15831944/IslandLinks
 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)
コード例 #12
0
 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)
コード例 #13
0
ファイル: Site.py プロジェクト: 15831944/IslandLinks
    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)
コード例 #14
0
    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)
コード例 #15
0
 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)
コード例 #16
0
    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)
コード例 #17
0
ファイル: Site.py プロジェクト: 15831944/IslandLinks
    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)
コード例 #18
0
    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)
コード例 #19
0
 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)
コード例 #20
0
    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)
コード例 #21
0
    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)
コード例 #22
0
    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
コード例 #23
0
    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)
コード例 #24
0
    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)
コード例 #25
0
    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)
コード例 #26
0
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.'
コード例 #27
0
    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)
コード例 #28
0
    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)
コード例 #29
0
    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()
コード例 #30
0
 def renderText(self):
     ns = {'footer_obj': self}
     return render("skeletonz/view/general_templates/footer.tmpl", ns)