diff --git a/lang/en/qtype_stack.php b/lang/en/qtype_stack.php index 946e5a53f195784033bf200356394672fc5607d9..72816403c0d994da1cb6037c12ac04078193b4dd 100644 --- a/lang/en/qtype_stack.php +++ b/lang/en/qtype_stack.php @@ -951,20 +951,20 @@ $string['stackBlock_parsons_unknown_named_version'] = 'The Parson\'s block only $string['stackBlock_parsons_unknown_mathjax_version'] = 'The Parson\'s block only supports MathJax versions {$a->mjversion} for the mathjax parameter.'; $string['stackBlock_parsons_ref'] = 'The Parson\'s block only supports referencing inputs present in the same CASText section \'{$a->var}\' does not exist here.'; $string['stackBlock_parsons_param'] = 'The Parson\'s block supports only these parameters in this context: \'{$a->param}\'.'; -$string['stackBlock_parsons_contents'] = 'The contents of a Parson\'s block must be a either a JSON of the form {#stackjson_stringify(steps)#}, where `steps` is the two-dimensional Maxima array containing key, value pairs of items, or of the form {\'steps\' : {#stackjson_stringify(steps)#}, \'options\' : {JSON containing Sortable options}, \'header\' : [List of headers], \'available_header\' : \'string containing header for the available list\', \'index\' : [List containing the index]}, where the \'options\', \'header\', \'available_header\', and \'index\' keys are optional. Alternatively, the contents of the Parsons block may contain raw JSON equivalents. Make sure that the `steps` Maxima variable is of the correct format. Note that all steps must be strings. See https://docs.stack-assessment.org/en/Authoring/Parsons/ for details.'; +$string['stackBlock_parsons_contents'] = 'The contents of a Parson\'s block must be a either a JSON of the form {#stackjson_stringify(steps)#}, where \'steps\' is the two-dimensional Maxima array containing key, value pairs of items, or of the form {\'steps\' : {#stackjson_stringify(steps)#}, \'options\' : {JSON containing Sortable options}, \'header\' : [List of headers], \'available_header\' : \'string containing header for the available list\', \'index\' : [List containing the index]}, where the \'options\', \'header\', \'available_header\', and \'index\' keys are optional. Alternatively, the contents of the Parsons block may contain raw JSON equivalents. Make sure that the \'steps\' Maxima variable is of the correct format. Note that all steps must be strings. See https://docs.stack-assessment.org/en/Authoring/Parsons/ for details.'; $string['stackBlock_incorrect_header_length'] = 'The list of headers should have the same length as the number of columns passed to the block header.'; $string['stackBlock_incorrect_available_header_type'] = 'The header for the available list should be passed as a string or a list of length one.'; $string['stackBlock_incorrect_index_length'] = 'The length of the index should be one more than the number of rows passed to the block header. An item in the top-left corner should always go in the index'; $string['stackBlock_incorrect_index_type'] = 'Index should be an array containing strings.'; $string['stackBlock_incorrect_header_type'] = 'Headers should be an array containing strings.'; -$string['stackBlock_parsons_invalid_columns_value'] = 'The value of `columns` in the Parson\'s block header should be a string containing a positive integer.'; -$string['stackBlock_parsons_invalid_rows_value'] = 'The value of `rows` in the Parson\'s block header should be a string containing a positive integer.'; -$string['stackBlock_parsons_invalid_item-height_value'] = 'The value of `item-height` in the Parson\'s block header should be a string containing a positive integer.'; -$string['stackBlock_parsons_invalid_item-width_value'] = 'The value of `item-width` in the Parson\'s block header should be a string containing a positive integer.'; +$string['stackBlock_parsons_invalid_columns_value'] = 'The value of \'columns\' in the Parson\'s block header should be a string containing a positive integer.'; +$string['stackBlock_parsons_invalid_rows_value'] = 'The value of \'rows\' in the Parson\'s block header should be a string containing a positive integer.'; +$string['stackBlock_parsons_invalid_item-height_value'] = 'The value of \'item-height\' in the Parson\'s block header should be a string containing a positive integer.'; +$string['stackBlock_parsons_invalid_item-width_value'] = 'The value of \'item-width\' in the Parson\'s block header should be a string containing a positive integer.'; $string['stackBlock_unknown_sortable_option'] = 'Unknown Sortable options found, the following are being ignored: '; $string['stackBlock_overwritten_sortable_option'] = 'Unchangeable Sortable options found, the following are being ignored: '; $string['stackBlock_parsons_unknown_transpose_value'] = 'Transpose must be one of \'true\' or \'false\'.'; -$string['stackBlock_parsons_underdefined_grid'] = 'When defining `rows` for a Parson\'s block one must also define `columns`.'; +$string['stackBlock_parsons_underdefined_grid'] = 'When defining \'rows\' for a Parson\'s block one must also define \'columns\'.'; $string['stackBlock_proof_mode_index'] = 'The use of \'index\' is not supported when using the Parson\'s block for proof assessment.'; $string['stackBlock_proof_incorrect_header_length'] = 'Headers should be an array containing a single header; use \'available_header\' to update the header for the available list.'; diff --git a/question.php b/question.php index 69c805bd90a664990c000225a2f01d106b0a1809..5a7868f71d1eb22b4989eafa8005aa64d4bf39c3 100644 --- a/question.php +++ b/question.php @@ -378,7 +378,7 @@ class qtype_stack_question extends question_graded_automatically_with_countback } if ($this->get_cached('preamble-qv') !== null) { - $session->add_statement(new stack_secure_loader($this->get_cached('preamble-qv'), '/pb', + $session->add_statement(new stack_secure_loader($this->get_cached('preamble-qv'), '/pb', 'blockexternal')); } // Context variables should be first. diff --git a/stack/cas/keyval.class.php b/stack/cas/keyval.class.php index e646c26622886ae2ff4c9a5f4386836049a6ed26..8552b254a65d70d23d5992d37edec14fb552db4a 100644 --- a/stack/cas/keyval.class.php +++ b/stack/cas/keyval.class.php @@ -393,7 +393,7 @@ class stack_cas_keyval { // This is the edge case where we re-order i,j,k to be i+j+k, not the Maxima default k+j+i. if (stack_cas_security::get_feature($op, 'contextvariable') !== null) { $contextvariables[] = $statement; - } + } // Test for end of context variables. if ($item->statement instanceof MP_Identifier) { if ($item->statement->value == '%_stack_preamble_end') { diff --git a/stack/input/inputbase.class.php b/stack/input/inputbase.class.php index 5554361d9b34d6c51c51de402c907d1422631e8d..3225e270bd3f87b0835fc0b313cbfa5e35ddbcaa 100644 --- a/stack/input/inputbase.class.php +++ b/stack/input/inputbase.class.php @@ -1093,8 +1093,8 @@ abstract class stack_input { if ($questionvariables) { if ($questionvariables['preamble-qv'] !== null) { - $additionalvars['preamble-qv'] = new stack_secure_loader($questionvariables['preamble-qv'], 'preamble', - 'blockexternal'); + $additionalvars['preamble-qv'] = new stack_secure_loader($questionvariables['preamble-qv'], + 'preamble', 'blockexternal'); } } diff --git a/tests/castext_test.php b/tests/castext_test.php index f6f72a65f3ce9d42802e0176b475de735d606da5..11f2ab97da009d17ed39d282773942f69eddb085 100644 --- a/tests/castext_test.php +++ b/tests/castext_test.php @@ -816,7 +816,8 @@ class castext_test extends qtype_stack_testcase { } $cs2 = new stack_cas_session2($s2, null, 0); - $at1 = castext2_evaluatable::make_from_source('{@dispdp(a,2)@}, {@dispdp(b,3)@}, {@dispsf(b,4)@}, {@decimalplaces(a,0)@}, {@decimalplaces(1,2)@}', 'test-case'); + $at1 = castext2_evaluatable::make_from_source('{@dispdp(a,2)@}, {@dispdp(b,3)@}, {@dispsf(b,4)@}, ' . + '{@decimalplaces(a,0)@}, {@decimalplaces(1,2)@}', 'test-case'); $this->assertTrue($at1->get_valid()); $cs2->add_statement($at1); $cs2->instantiate(); @@ -835,12 +836,14 @@ class castext_test extends qtype_stack_testcase { } $cs2 = new stack_cas_session2($s2, null, 0); - $at1 = castext2_evaluatable::make_from_source('{@dispdp(a,0)*x^2@}, {@dispdp(b,3)@}, {@dispsf(b,4)@}, {@decimalplaces(a,0)@}, {@decimalplaces(1,2)@}', 'test-case'); + $at1 = castext2_evaluatable::make_from_source('{@dispdp(a,0)*x^2@}, {@dispdp(b,3)@}, {@dispsf(b,4)@}, ' . + '{@decimalplaces(a,0)@}, {@decimalplaces(1,2)@}', 'test-case'); $this->assertTrue($at1->get_valid()); $cs2->add_statement($at1); $cs2->instantiate(); - $this->assertEquals('\({3\cdot x^2}\), \({-4.000}\), \({-4.000}\), \({3}\), \({1}\)', $at1->get_rendered()); + $this->assertEquals('\({3\cdot x^2}\), \({-4.000}\), \({-4.000}\), \({3}\), \({1}\)', + $at1->get_rendered()); } /** @@ -854,7 +857,8 @@ class castext_test extends qtype_stack_testcase { } $cs2 = new stack_cas_session2($s2, null, 0); - $at1 = castext2_evaluatable::make_from_source('{@dispdp(a1,0)*x^2@}, {@dispdp(b,3)@}, {@dispsf(b,4)@}, {@decimalplaces(a,0)@}, {@decimalplaces(1,2)@}', 'test-case'); + $at1 = castext2_evaluatable::make_from_source('{@dispdp(a1,0)*x^2@}, {@dispdp(b,3)@}, {@dispsf(b,4)@}, ' . + '{@decimalplaces(a,0)@}, {@decimalplaces(1,2)@}', 'test-case'); $this->assertTrue($at1->get_valid()); $cs2->add_statement($at1); $cs2->instantiate(); diff --git a/tests/walkthrough_adaptive_test.php b/tests/walkthrough_adaptive_test.php index e2a4dc1e748f023f2a0b43c4b3287f09208c8f25..f9663e83bc039ca6765af452db5a9491b09fd67b 100644 --- a/tests/walkthrough_adaptive_test.php +++ b/tests/walkthrough_adaptive_test.php @@ -4807,7 +4807,8 @@ class walkthrough_adaptive_test extends qtype_stack_walkthrough_test_base { $this->process_submission(['ansq' => $ia, 'ansq_val' => $ia, '-submit' => 1]); $this->render(); $this->assert_content_with_maths_contains('\[ 5\cdot y+3\cdot x=1', $this->currentoutput); - $expected = 'Seed: 1; ansq: 5*y+3*x=1 [score]; firsttree: # = 0 | ATCASEqual (AlgEquiv-true)ATEquation_sides. | firsttree-0-0'; + $expected = 'Seed: 1; ansq: 5*y+3*x=1 [score]; firsttree: # = 0 | ATCASEqual (AlgEquiv-true)ATEquation_sides.' . + '| firsttree-0-0'; $this->check_response_summary($expected); $ia = '3*x+5*y=1';