Attachment 'HelpOn-1.5.1-5.py'

Download

   1 # -*- coding: iso-8859-1 -*-
   2 """
   3     MoinMoin - HelpOn Action Macro
   4 
   5     PURPOSE:
   6         This action macro is used to get help on an other extensions
   7 
   8     CALLING SEQUENCE:
   9         http://WikiServer/WikiName?action=HelpOn
  10 
  11     PROCEDURE:
  12        You get a pull down list of available extensions and after selection 
  13        the help from inside of the routine is shown
  14        
  15        The extensions below the MoinMoin path are indicated by the prefix MM- 
  16        While the others are indicated by a W- in the list
  17 
  18        Please remove the version number from the filename.
  19 
  20     MODIFICATION HISTORY:
  21         @copyright: 2005 by Reimar Bauer (R.Bauer@fz-juelich.de)
  22         @license: GNU GPL, see COPYING for details.
  23         Version: 1.3.5-1
  24         
  25         1.3.5-2 bug fix if no routine desription is defined
  26                 minor change from table output to preformatted text
  27                 
  28         1.3.5-3 code refactored      
  29         1.3.5-4 PRE does not need an additional line break
  30         
  31         1.5.1-5 removed request.cfg.excluded_actions 
  32     
  33 """
  34 
  35 import string, codecs, os
  36 from MoinMoin import config, wikiutil, wikiaction, user,  macro, action, parser
  37 from MoinMoin.Page import Page
  38 from MoinMoin.formatter.text_html import Formatter
  39 
  40 def HelpOn_Extract_Help(module_path_name,module_name):
  41    file = codecs.open(module_path_name, 'r')
  42    lines = file.readlines()
  43    file.close()
  44    
  45    index=[]
  46    i = 0
  47    for line in lines:
  48        if line.strip() == '"""' :
  49            index.append(i)
  50        i+=1
  51    
  52    if len(index)  >= 2 :          
  53        txt = lines[(index[0])+1:index[1]]     
  54    else :
  55        txt = ["no help available for %(name)s" % {"name": module_name}]
  56 
  57    return (txt)
  58 
  59 def HelpOn(request,pagename,module):
  60 
  61     request.formatter = Formatter(request)
  62     
  63     mod = module.split(':')
  64     module_type = mod[0]
  65     
  66     this_type= module_type.split('-')
  67     
  68     module_type = this_type[1]
  69     module_name = mod[1]
  70     
  71     if this_type[0] == 'MM' :
  72    
  73         module_path_name = "%(path)s/%(module_type)s/%(name)s.py" % {
  74              "module_type": module_type,
  75              "path" : request.cfg.moinmoin_dir,
  76              "name" : module_name }
  77        
  78     if this_type[0] == 'W' :      
  79         module_path_name = "%(path)s/plugin/%(module_type)s/%(name)s.py" % {
  80              "module_type": module_type,
  81              "path" : request.cfg.data_dir,
  82              "name" : module_name }
  83         
  84     info = HelpOn_Extract_Help(module_path_name,module)   
  85     html = "<PRE>%(txt)s</PRE>" % {
  86            "txt" : string.join(info)}
  87     
  88     request.http_headers()
  89     request.setContentLanguage(request.lang)
  90     wikiutil.send_title(request, pagename,
  91                         pagename=pagename)
  92     request.write(request.formatter.startContent("content"))
  93     
  94     request.write(html)
  95     request.write(request.formatter.endContent())
  96     wikiutil.send_footer(request, pagename)
  97     msg = None
  98     
  99     if msg:
 100         AttachFile.error_msg(pagename, request, msg)
 101 
 102     return()
 103  
 104     
 105 def execute(pagename, request):
 106 
 107     _ = request.getText
 108     actname = __name__.split('.')[-1]
 109    
 110     thispage = Page(request,pagename)
 111 
 112     if request.form.has_key('button') and request.form.has_key('ticket'):
 113         # check whether this is a valid ticket request (make outside
 114         # attacks harder by requiring two full HTTP transactions)
 115         if not wikiutil.checkTicket(request.form['ticket'][0]) :
 116             return thispage.send_page(request,
 117                    msg = _('Please use the interactive user interface for HelpOn extensions!'))
 118 
 119         module = request.form.get('helpon', [u''])[0]
 120             
 121         return (HelpOn(request,pagename,module))
 122             
 123             
 124     html = []    
 125     for name in action.extension_actions :
 126         html.append("<OPTION>MM-action:%(name)s</OPTION>" % { "name":name}) 
 127         
 128     for name in wikiaction.getPlugins(request)[1]: 
 129         html.append("<OPTION>W-action:%(name)s</OPTION>" % { "name":name}) 
 130         
 131     for name in macro.extension_macros :
 132         html.append("<OPTION>MM-macro:%(name)s</OPTION>" % { "name":name})  
 133             
 134     for name in wikiutil.wikiPlugins('macro', request.cfg):
 135         html.append("<OPTION>W-macro:%(name)s</OPTION>" % { "name":name})    
 136         
 137     for name in  parser.modules : 
 138         html.append("<OPTION>MM-parser:%(name)s</OPTION>" % { "name":name})  
 139              
 140     for name in wikiutil.wikiPlugins('parser', request.cfg):
 141         html.append("<OPTION>W-parser:%(name)s</OPTION>" % { "name":name})      
 142 
 143  
 144     formhtml = '''
 145 <form method="post" action="">
 146 <select name="helpon" size="1">
 147 %(option)s
 148 </select>
 149 <input type="hidden" name="action" value="%(actname)s">
 150 <input type="submit" name="button" value="%(button)s">
 151 <input type="hidden" name="ticket" value="%(ticket)s">
 152 <p>
 153 </form>''' % {
 154     'actname': 'HelpOn',
 155     'ticket' : wikiutil.createTicket(),
 156     'option' : string.join(html),
 157     'button' : 'Help'}
 158 
 159     return thispage.send_page(request, msg=formhtml)

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (2011-04-14 07:28:03, 4.7 KB) [[attachment:CreateNewPage.py]]
  • [get | view] (2011-04-14 07:26:24, 4.2 KB) [[attachment:CreateNewPage1.6.py]]
  • [get | view] (2006-09-10 21:29:29, 40.4 KB) [[attachment:CreatePdfDocument2_0_3.py]]
  • [get | view] (2006-09-12 06:05:06, 40.5 KB) [[attachment:CreatePdfDocument2_0_4.py]]
  • [get | view] (2006-09-12 12:00:09, 40.6 KB) [[attachment:CreatePdfDocument2_0_5.py]]
  • [get | view] (2006-11-14 21:56:11, 43.5 KB) [[attachment:CreatePdfDocument2_0_6.py]]
  • [get | view] (2006-11-15 17:00:47, 43.8 KB) [[attachment:CreatePdfDocument2_0_7.py]]
  • [get | view] (2006-11-16 22:06:18, 43.8 KB) [[attachment:CreatePdfDocument2_0_8.py]]
  • [get | view] (2006-12-17 15:54:21, 43.6 KB) [[attachment:CreatePdfDocument2_0_9.py]]
  • [get | view] (2007-08-20 09:10:23, 67.2 KB) [[attachment:CreatePdfDocument2_1_0.py]]
  • [get | view] (2007-08-21 07:39:49, 67.1 KB) [[attachment:CreatePdfDocument2_1_1.py]]
  • [get | view] (2007-09-11 19:16:37, 67.3 KB) [[attachment:CreatePdfDocument2_1_2.py]]
  • [get | view] (2007-09-18 20:17:58, 68.1 KB) [[attachment:CreatePdfDocument2_1_3.py]]
  • [get | view] (2007-09-21 13:32:54, 71.1 KB) [[attachment:CreatePdfDocument2_1_4.py]]
  • [get | view] (2007-09-23 20:56:30, 73.4 KB) [[attachment:CreatePdfDocument2_1_5.py]]
  • [get | view] (2007-09-25 20:54:48, 74.5 KB) [[attachment:CreatePdfDocument2_2_0.py]]
  • [get | view] (2008-06-23 21:08:49, 77.0 KB) [[attachment:CreatePdfDocument2_3_0.py]]
  • [get | view] (2008-06-26 19:25:07, 81.0 KB) [[attachment:CreatePdfDocument2_3_1.py]]
  • [get | view] (2008-07-06 05:50:38, 83.1 KB) [[attachment:CreatePdfDocument2_3_2.py]]
  • [get | view] (2008-07-09 17:42:02, 83.3 KB) [[attachment:CreatePdfDocument2_3_3.py]]
  • [get | view] (2008-09-07 11:11:01, 83.5 KB) [[attachment:CreatePdfDocument2_3_4.py]]
  • [get | view] (2009-01-11 15:53:09, 84.3 KB) [[attachment:CreatePdfDocument2_3_5.py]]
  • [get | view] (2009-02-16 06:52:06, 84.2 KB) [[attachment:CreatePdfDocument2_3_6.py]]
  • [get | view] (2010-01-29 11:53:21, 82.8 KB) [[attachment:CreatePdfDocument2_4_0.py]]
  • [get | view] (2010-01-31 14:10:03, 84.6 KB) [[attachment:CreatePdfDocument2_4_1.py]]
  • [get | view] (2010-09-18 16:23:23, 85.6 KB) [[attachment:CreatePdfDocument2_4_2.py]]
  • [get | view] (2006-06-16 20:56:53, 4.9 KB) [[attachment:FlashManager.py-1.5.3-1]]
  • [get | view] (2003-12-07 18:15:53, 3.9 KB) [[attachment:HTML2MoinMoin.py]]
  • [get | view] (2005-10-16 08:24:35, 4.9 KB) [[attachment:HelpOn-1.3.5-4.py]]
  • [get | view] (2006-02-03 19:21:04, 4.9 KB) [[attachment:HelpOn-1.5.1-5.py]]
  • [get | view] (2006-07-04 10:45:22, 4.8 KB) [[attachment:HelpOn-1.5.4-6.py]]
  • [get | view] (2006-07-04 22:39:14, 4.8 KB) [[attachment:HelpOn-1.6.0-7.py]]
  • [get | view] (2006-07-06 13:50:17, 4.0 KB) [[attachment:HelpOn-1.6.0-8.py]]
  • [get | view] (2008-01-10 17:43:24, 4.8 KB) [[attachment:HelpOn-1.6.0-9.py]]
  • [get | view] (2008-08-19 14:44:54, 5.0 KB) [[attachment:HelpOn-1.7.1-10.py]]
  • [get | view] (2005-02-20 18:28:34, 10.8 KB) [[attachment:IRSS.py]]
  • [get | view] (2005-03-09 22:46:23, 2.9 KB) [[attachment:ImportHtml-1.2.py]]
  • [get | view] (2003-12-07 18:15:53, 2.8 KB) [[attachment:ImportHtml.py]]
  • [get | view] (2003-12-07 18:15:53, 1.8 KB) [[attachment:IrcChat.py]]
  • [get | view] (2008-06-09 11:27:20, 4.4 KB) [[attachment:MoinCrypt.py]]
  • [get | view] (2010-11-29 12:08:27, 7.5 KB) [[attachment:PageActions.py]]
  • [get | view] (2006-08-07 15:12:19, 0.5 KB) [[attachment:PermanentLink.py]]
  • [get | view] (2003-12-07 18:15:53, 6.3 KB) [[attachment:PhoneDial.py]]
  • [get | view] (2005-04-17 14:21:47, 3.6 KB) [[attachment:RecommendPage-1.3.4-1.py]]
  • [get | view] (2005-04-19 18:21:52, 5.5 KB) [[attachment:RecommendPage-1.3.4-2.py]]
  • [get | view] (2005-05-02 19:53:09, 5.6 KB) [[attachment:RecommendPage-1.3.4-3.py]]
  • [get | view] (2005-09-03 07:33:35, 6.3 KB) [[attachment:RecommendPage-1.3.4-4.py]]
  • [get | view] (2005-09-05 17:44:03, 6.9 KB) [[attachment:RecommendPage-1.3.5-5.py]]
  • [get | view] (2005-09-07 16:42:26, 7.5 KB) [[attachment:RecommendPage-1.3.5-6.py]]
  • [get | view] (2005-09-08 16:06:28, 7.7 KB) [[attachment:RecommendPage-1.3.5-7.py]]
  • [get | view] (2005-11-01 11:31:51, 9.0 KB) [[attachment:RecommendPage-1.3.5-8.py]]
  • [get | view] (2006-02-03 19:40:51, 8.3 KB) [[attachment:RecommendPage-1.5.1-9.py]]
  • [get | view] (2008-01-11 09:14:35, 6.8 KB) [[attachment:RecommendPage-1.6.0-10.py]]
  • [get | view] (2008-08-19 14:44:59, 6.9 KB) [[attachment:RecommendPage-1.7.1-11.py]]
  • [get | view] (2008-06-09 11:27:40, 1.7 KB) [[attachment:ShowActions.py]]
  • [get | view] (2008-06-09 10:34:02, 5.3 KB) [[attachment:ShowDecrypted.py]]
  • [get | view] (2005-03-30 21:17:28, 7.7 KB) [[attachment:Slideshow.py]]
  • [get | view] (2004-02-02 20:48:31, 2.0 KB) [[attachment:SubscribeUser.py]]
  • [get | view] (2007-01-26 17:08:30, 2.2 KB) [[attachment:Subscribers-1.6.0.py]]
  • [get | view] (2003-12-07 18:15:53, 1.8 KB) [[attachment:Subscribers.py]]
  • [get | view] (2006-03-18 23:16:51, 0.8 KB) [[attachment:UserPreferences.py]]
  • [get | view] (2004-01-05 09:56:25, 8.1 KB) [[attachment:VisualSiteMap.py]]
  • [get | view] (2015-08-30 21:04:23, 11.1 KB) [[attachment:VisualSiteMap_1.10.py]]
  • [get | view] (2004-10-08 10:59:16, 9.3 KB) [[attachment:VisualSiteMap_1.2.py]]
  • [get | view] (2005-03-16 01:30:09, 9.8 KB) [[attachment:VisualSiteMap_1.3.py]]
  • [get | view] (2014-08-19 01:34:10, 10.8 KB) [[attachment:VisualSiteMap_1.9.py]]
  • [get | view] (2007-08-18 18:52:55, 1.0 KB) [[attachment:backlink.py]]
  • [get | view] (2007-03-15 05:53:49, 23.5 KB) [[attachment:findandreplace0.1Beta.py]]
  • [get | view] (2005-03-27 20:32:10, 3.6 KB) [[attachment:gallery2image-1.3.3-1.py]]
  • [get | view] (2005-08-03 20:14:56, 4.0 KB) [[attachment:gallery2image-1.3.3-2.py]]
  • [get | view] (2005-11-13 18:10:26, 20.7 KB) [[attachment:gallery2image-1.3.5-10.py]]
  • [get | view] (2005-11-25 22:03:50, 20.8 KB) [[attachment:gallery2image-1.3.5-11.py]]
  • [get | view] (2005-08-08 17:23:43, 8.4 KB) [[attachment:gallery2image-1.3.5-4.py]]
  • [get | view] (2005-08-13 15:15:45, 13.7 KB) [[attachment:gallery2image-1.3.5-5.py]]
  • [get | view] (2005-08-31 22:05:22, 15.5 KB) [[attachment:gallery2image-1.3.5-6.py]]
  • [get | view] (2005-10-29 20:23:50, 15.9 KB) [[attachment:gallery2image-1.3.5-8.py]]
  • [get | view] (2005-11-01 11:31:24, 17.6 KB) [[attachment:gallery2image-1.3.5-9.py]]
  • [get | view] (2006-01-27 20:52:32, 20.9 KB) [[attachment:gallery2image-1.5.1-12.py]]
  • [get | view] (2006-08-06 09:01:01, 22.1 KB) [[attachment:gallery2image-1.5.4-13.py]]
  • [get | view] (2006-08-11 18:21:40, 22.2 KB) [[attachment:gallery2image-1.5.4-14.py]]
  • [get | view] (2006-11-16 20:23:27, 22.6 KB) [[attachment:gallery2image-1.5.6-16.py]]
  • [get | view] (2006-08-11 18:30:22, 22.2 KB) [[attachment:gallery2image-1.6.0-15.py]]
  • [get | view] (2008-02-06 10:13:45, 22.3 KB) [[attachment:gallery2image-1.6.0-16.py]]
  • [get | view] (2008-05-20 15:51:09, 22.4 KB) [[attachment:gallery2image-1.6.3-17.py]]
  • [get | view] (2006-09-06 06:19:48, 1.3 KB) [[attachment:getmmap.py]]
  • [get | view] (2004-07-18 09:48:00, 1.5 KB) [[attachment:localnames.py]]
  • [get | view] (2005-03-25 15:02:31, 2.6 KB) [[attachment:newpageonly.py]]
  • [get | view] (2005-03-30 09:02:00, 3.5 KB) [[attachment:newpageonly_20050330.py]]
  • [get | view] (2006-06-06 19:12:27, 9.7 KB) [[attachment:pdf.py]]
  • [get | view] (2006-08-30 10:51:51, 36.0 KB) [[attachment:pdf2_0_0.py]]
  • [get | view] (2006-08-30 13:57:36, 36.5 KB) [[attachment:pdf2_0_1.py]]
  • [get | view] (2006-02-04 04:25:29, 1.0 KB) [[attachment:sisterindex.py]]
  • [get | view] (2004-10-28 07:33:10, 0.7 KB) [[attachment:xml.py]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.