[LON-CAPA-users] Variables in libraries
Felicia Berryman
lon-capa-users@mail.lon-capa.org
Fri, 25 Jul 2008 16:59:29 -0400
Hi Brew,
I used <import id="IMPORT-ID">
Then, in the spreadsheet, the submissions shows as
stores_PART-ID_IMPORT-ID_SUBMISSION-ID_submission
I tried using the import id in the $Key definition but couldn't get it
to work. Try playing with this though. It appears you need to use the
import id to access the submission.
Felicia
Felicia Berryman wrote:
> Hi Brew,
>
> Just making your example simpler. You can use my text below to create a
> bug report if no one has any ideas on how to make this work.
>
> $Key displays after submission using problem code below:
> ---------------------------------------------
> <problem>
> <script type="loncapa/perl">
> $Key =&EXT('user.resource.resource.PART-ID.SUBMISSION-ID.submission');
> </script>
>
> <part id="PART-ID">
> <startouttext />Enter something<endouttext />
> <stringresponse answerdisplay="Got it" answer="/.*/" id="SUBMISSION-ID"
> type="re">
> <textline readonly="no"></textline>
> </stringresponse>
> </part>
>
> <startouttext /><p>You entered $Key</p><endouttext />
> </problem>
> ---------------------------------------------
>
> $Key doesn't display after submission using problem code below:
> ---------------------------------------------
> <problem>
> <script type="loncapa/perl">
> $Key =&EXT('user.resource.resource.PART-ID.SUBMISSION-ID.submission');
> </script>
>
> <part id="PART-ID">
> <import>brew.library</import>
> </part>
>
> <startouttext /><p>You entered $Key</p><endouttext />
> </problem>
> ---------------------------------------------
> Where brew.library is:
> ---------------------------------------------
> <library>
> <startouttext />Enter something<endouttext />
> <stringresponse answerdisplay="Got it" answer="/.*/" id="SUBMISSION-ID"
> type="re">
> <textline readonly="no"></textline>
> </stringresponse>
> </library>
> ---------------------------------------------
>
> Felicia
>
> Robert_Brewington@er.monroe.edu wrote:
>> I have been beating this for a couple of days, and am having trouble
>> understanding a) what is going on, and b) what I should do about it:)
>>
>> The basic idea is that I want to put various pieces of code in
>> libraries, which are then called from the main problems. Otherwise I
>> end up with the same code copied into many problems; when I want to
>> make a change, I have to somehow find all those problems and change
>> them. Of course, LonCapa doesn't have any search tools, so it is
>> awkward to do this over my 7000 problems.
>>
>> The problem I am having is understanding when my script variables will
>> work and when they won't. I know this has to do with the order that
>> the main problem html versus the libraries are
>> parsed/evaluated/something.
>>
>> In the example below, the status of the problem part SetupKey within
>> the FunctionCode library is retrieved fine. However, I do not seem to
>> be able to retrieve the SetupKey submission at any time, either from
>> within the FunctionCode library (the ideal case) or from the
>> MainProblem code.
>>
>> So, 1) why doesn't this work? and
>> 2) how would I obtain the submission?
>>
>> Thanks for any clues,
>> brew
>>
>> MainProblem.problem: =========================================
>> <problem>
>> <script type="loncapa/perl">
>> $KeyCodeBeforeMain =
>> &EXT('user.resource.resource.SetupKey.KeyCode.submission');
>> $whichScript="BeforeMain";
>> </script>
>>
>> <import id="SetKey">FunctionCode.library</import>
>>
>> <script type="loncapa/perl">
>> $KeyCodeAfterMain =
>> &EXT('user.resource.resource.SetupKey.KeyCode.submission');
>> $whichScript="AfterMain";
>> </script>
>>
>> <part id=junk>
>> <startouttext />
>> whichScript is {$whichScript} <p/>
>> statusKey is {$statusKey} <p/>
>> KeyCodeBeforeMain is {$KeyCodeBeforeMain} <p/>
>> KeyCodeBefore is {$KeyCodeBefore} <p/>
>> KeyCodeAfter is {$KeyCodeAfter} <p/>
>> KeyCodeAfterMain is {$KeyCodeAfterMain} <p/>
>>
>> <endouttext />
>> <stringresponse answer="yes" id="stuff" type="ci">
>> <textline readonly="no">
>> </textline>
>> </stringresponse>
>> </part>
>> </problem>
>>
>>
>> FunctionCode.library: ===========================================
>> <library>
>>
>> <script type="loncapa/perl">
>> $KeyCodeBefore =
>> &EXT('user.resource.resource.SetupKey.KeyCode.submission');
>> $statusKey = &EXT('user.resource.resource.SetupKey.solved');
>> $whichScript="BeforeSetupKey";
>> </script>
>>
>>
>> <part id="SetupKey">
>> <startouttext />
>> Enter the key
>> <endouttext />
>> <stringresponse id="KeyCode" answer="/.*/" type="re">
>> <textline readonly="no">
>> </textline>
>> </stringresponse>
>> </part>
>>
>> <script type="loncapa/perl">
>> $KeyCodeAfter =
>> &EXT('user.resource.resource.SetupKey.KeyCode.submission');
>> $whichScript="AfterSetupKey";
>> </script>
>>
>> </library>
>>
>> ==========================================================
>>
>> _______________________________________________ LON-CAPA-users mailing
>> list LON-CAPA-users@mail.lon-capa.org
>> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users
>
--
Felicia Berryman
Instructional Systems
Michigan State University
(517)432-7326
LON-CAPA Technical Support Available at:
http://www.loncapa.msu.edu - MSU Users
http://www.help.lon-capa.org - General