Sandbox91

From Metabolomics.JP
(Difference between revisions)
Jump to: navigation, search
 
(35 intermediate revisions by one user not shown)
Line 1: Line 1:
{{#def:page|Test}}
+
<!--
 +
{{#get:listpage}} リストページ
 +
{{#get:initset}}  現在セットされている項目。&&区切りの文字列
 +
{{#get:prevpage}} 飛んできたページ
 +
{{#get:title}}    「species」や「効能」と言ったようなタイトル
 +
-->
 +
{{#def:listpage|{{#if:{{#get:listpage}}|{{#get:listpage}}|Test}}}} <!-- リストページ def. Test -->
 +
 
 
{{#lua:
 
{{#lua:
 
--%% 前処理 %%--
 
--%% 前処理 %%--
 
local list = {} -- データリスト
 
local list = {} -- データリスト
 +
local levs = {} -- 各データのレベル
 
local flag = {} -- 最下層のアイテムかどうか
 
local flag = {} -- 最下層のアイテムかどうか
 
local i, j, data, index, leve, prev
 
local i, j, data, index, leve, prev
Line 8: Line 16:
  
 
--%% データ整理 %%--
 
--%% データ整理 %%--
for line in string.gmatch(stdin, "&&{{#var:page}}([^&]+)") do
+
for line in string.gmatch(stdin, "&&{{#var:listpage}}([^&]+)") do
 
   --%% -の数を調べる %%--
 
   --%% -の数を調べる %%--
 
   data = string.gsub(line, "^-+", "", 1) --%% 先頭の-を削除する %%--
 
   data = string.gsub(line, "^-+", "", 1) --%% 先頭の-を削除する %%--
Line 14: Line 22:
  
 
   --%% データを配列へ格納 %%--
 
   --%% データを配列へ格納 %%--
   list[i] = data
+
   list[i] = string.gsub(string.gsub(data, "%s*$", ""), "^%s*", "") --%% trimの代わり %%--
 +
  levs[i] = level
 +
  flag[i] = 0
  
 
   --%% 最下層を調べ、最下層ならflagをセットする %%--
 
   --%% 最下層を調べ、最下層ならflagをセットする %%--
   if(prev > level) then
+
   if(prev < level) then
 
     index = i
 
     index = i
   elseif(prev < level) then
+
   elseif(prev > level) then
 
     for j = i-1, index, -1 do
 
     for j = i-1, index, -1 do
       flag[j] = true
+
       flag[j] = 1
 
     end
 
     end
 
     index = i
 
     index = i
Line 29: Line 39:
 
   i = i + 1
 
   i = i + 1
  
--  print(line .. "-" .. string.len(data) .. "-" .. string.len(line) .. "<br>")
+
--  print(line .. "-" .. string.len(data) .. "-" .. string.len(line) .. "<br>") --%% チェック用
 +
end
 +
--%% 最後のアイテムを処理する %%--
 +
for j = i-1, index, -1 do
 +
  flag[j] = 1
 
end
 
end
  
 
--%% 表示処理 %%--
 
--%% 表示処理 %%--
|{{#searchline:-|Index|{{#var:page}} }} }}
+
print('{{#form' .. 'tag:form|action="/wiki/{{#get:prevpage}}" method="post"|')
 +
print('{{#form' .. 'tag:input|type="submit" value="update"}}<br>')
 +
 
 +
--%% できればここに目次を作成したい %%--
 +
 
 +
local maxn, margin, checked;
 +
maxn = table.maxn(list)
 +
for i = 0, maxn do
 +
  --%% levelに応じたマージンを設定する %%--
 +
  margin = levs[i] * 24
 +
  print('<span style="margin-left: ' .. margin .. 'px">')
 +
 
 +
  --%% あらかじめセットしてあるデータの場合は、チェックを付けておく - データは&&区切りで渡す %%--
 +
  if(string.match("{{#get:initset}}", "&&" .. list[i] .. "&&", 0) == nil) then
 +
    checked = ''
 +
  else
 +
    checked = ' checked="yes"'
 +
  end
 +
 
 +
  --%% 最下層ならチェックボックスを、そうでないならそのまま表示する %%--
 +
  if(flag[i] == 1) then
 +
    -- <nowiki>{{#formtag:input|type="checkbox" value="data" name="list" id="data"}}{{#formtag:label|for="data"|data}}</nowiki>
 +
    print('{{#form' .. 'tag:input|type="checkbox" value="' .. list[i] .. '" name="list[]" id="' .. list[i] .. '"' .. checked .. '}}{{#form' .. 'tag:label|for="' .. list[i] .. '"|' .. list[i] .. '}}<br>')
 +
  else
 +
    print(list[i] .. "<br>")
 +
  end
 +
 
 +
  print("</span>")
 +
end
 +
print('{{#form' .. 'tag:input|type="hidden" name="listpage" value="{{#var:listpage}}"}}')
 +
print('{{#form' .. 'tag:input|type="hidden" name="title" value="{{#get:title}}"}}')
 +
print('{{#form' .. 'tag:input|type="hidden" name="hookinsert" value="__HOOK_AND_INSERT__"}}')
 +
print('{{#form' .. 'tag:input|type="submit" value="update"}}')
 +
print('}}')
 +
 
 +
|{{#SearchLine:-|Index|{{#var:listpage}}}}
 +
}}

Latest revision as of 23:20, 28 February 2009



Personal tools
Namespaces

Variants
Actions
Navigation
metabolites
Toolbox