rejetto forum
Software => HFS ~ HTTP File Server => Programmers corner => Topic started by: Roessi on February 03, 2010, 05:06:46 PM
-
:) since rejetto implemented the dir cmd ... i should be able to load all the modules automatically ... so i gave it a try and wrote a script to do this ... :
function to load the modules :
{.if|{.!modules.}|{:
< t d width="175" valign="top" id="moduleCol" >
< s p a n id="specialBox" >< /s p a n >
{.for each|#module|{.dir|template/rawr_default/modules/.}|{:
{.if not| {.pos |false|{.for each|#restr|none|{.load|template/rawr_default/modules/{.^#module.}/restrictions.txt.}|{:
{.^checkrestriction|{.^#restr.}|{.^#module.}.}
:}.}.}|{:
{.^modhtml|{.^#module.}.}
:}.}
:}.}
< / t d >
:}.}
checkrestrictions functions:
{.set|checkrestrictions|{:
{.switch|$1|,|
local|{: {.if|{.match|127.*;10.*;192.168.*|%ip%.}|true|false .} :}|
ggk|{:{.if|{.{.^ggk|$2=true.}.}|true|false.}:}|
lgd|{:{.if|%user%|true|false.}:}|
off|{:false:}|
none|{:false:}|true
.}
:}.}
modhtml function :
{.set|modhtml|{:
< d i v class="module" >
< d i v class="modHeading" >
< s p a n >
< a h r e f ="javascript:pinModule('$1');" id="$1_Link" title="{.!lv_hideTitle.}" >< i mg
class="hide" src="/template/{.!theme.}/images/hide.gif" align="top" alt=""/ >
< n o s c r i p t >< i mg src="/template/rawr_default/images/spacer.gif" width="8" align="top" alt=""/ >< /n o s c r i p t >
< / a >
< / s p a n >
{.load|/template/rawr_default/modules/$1/title.txt.}
< / d i v >
< d i v class="modContent" id="$1" >
{.load|/template/rawr_default/modules/$1/modcontent.txt.}
< / d i v >
< / d i v >
:}.}
... and the problem is ... all modules are displayed ... but the checkrestriction function returns neither false nor true ...
and the bigger problem :
none of the macros in the modules beign loaded are executed ... and i dunno why ^^
would be great if anyone could take a look at the code and tell if he could spot the problem ^^
thx in advance
-
menu > debug > enable macros.log
it's not easy to read, but there should be the answer to your problem.
if you cannot find, then consider posting the file here.
-
um it seems that the for each command just doesnt execute the macros when it loads it from a file ...
tried it with a few other simpler examples and they all just didnt got executet ... dont know why .
-
paste the piece of log where is the problem
-
umm i dont know at which point its the problem ... it just seems at some point all the macros are treated just as plain text : - /
at line 520 theres the first process of the for each function :) but i dont find anything : - /
attached :
template
macros.log
-
around line 520, it is is still evaluating the "if".
at line 555 you can see the "for" taken for execution.
at line 566 its unrolling. [1]
i hope this will help you reading the log.
maybe i should make it clearer, like using
"INPUT>" and
"OUTPUT<"
instead of ">" and "<"
[1] at the moment "for"s are unrolled, but i think i will change this. it will be execution step-by-step, like for the "while".