i've tried to use the custom php code action and im getting a syntax error. to make sure my code has no errors, i've used the
<? echo 1+1?> example. here is the error message and the call stack
Parse error: syntax error, unexpected $end in /home/benni/palaver/sites/all/modules/rules/rules/modules/php.rules.inc(107) : eval()'d code on line 1
Call Stack:
1.0039 329184 1. {main}() /home/benni/palaver/index.php:0
1.0431 1460584 2. menu_execute_active_handler() /home/benni/palaver/index.php:18
1.0531 2132936 3. call_user_func_array() /home/benni/palaver/includes/menu.inc:348
1.0531 2133188 4. node_page_view() /home/benni/palaver/includes/menu.inc:0
1.0532 2133292 5. node_show() /home/benni/palaver/modules/node/node.module:1790
1.0532 2133424 6. node_view() /home/benni/palaver/modules/node/node.module:1101
1.0532 2133512 7. node_build_content() /home/benni/palaver/modules/node/node.module:1006
1.0536 2134644 8. node_invoke_nodeapi() /home/benni/palaver/modules/node/node.module:1089
1.2775 3071468 9. rules_nodeapi() /home/benni/palaver/modules/node/node.module:679
1.2775 3071908 10. rules_invoke_event() /home/benni/palaver/sites/all/modules/rules/rules/modules/rules.events.inc:21
1.2776 3072772 11. call_user_func_array() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:252
1.2776 3073088 12. rules_invoke_rule_set() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:0
1.2870 3205600 13. rules_evaluate_rule_set() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:271
1.2872 3207060 14. rules_evaluate_elements() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:295
1.2872 3207760 15. rules_execute_and() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:335
1.2873 3208196 16. rules_evaluate_elements() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:439
1.2913 3275348 17. rules_execute_element() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:328
1.2913 3275464 18. rules_execute_rule() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:391
1.2924 3278356 19. rules_evaluate_elements() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:412
1.2924 3278980 20. rules_execute_and() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:335
1.2925 3279248 21. rules_evaluate_elements() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:439
1.2926 3280560 22. rules_execute_element() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:328
1.2926 3281928 23. rules_execute_action() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:391
1.2932 3287024 24. rules_element_invoke() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:460
1.2932 3289664 25. call_user_func_array() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:607
1.2932 3290044 26. rules_action_custom_php() /home/benni/palaver/sites/all/modules/rules/rules/rules.module:0
1.2932 3290088 27. rules_input_evaluator_php_apply() /home/benni/palaver/sites/all/modules/rules/rules/modules/php.rules.inc:130
1.2932 3290344 28. rules_php_eval_return() /home/benni/palaver/sites/all/modules/rules/rules/modules/php.rules.inc:73
i did a little debugging and if i output the $code var in php.rules.inc on line 107 (function rules_php_eval_return(($code, $arguments = array()) ) it outputs "string('2')", so i have the feeling that the code gets evaluated twice, but i cant figure out why and when.
Comments
Comment #1
fagoyou are missing a ";"
Comment #2
DieterWeb commentedunfortunately that doesnt change anything, and i think that the semicolon in short open tags in php isnt required for a one-liner. but just to be sure i tried:
<? echo 1+1?>
<? echo 1+1;?>
<? echo (1+1);?>
echo (1+1);everytime i think the php code gets evaluated twice, since when it reaches the "eval()" on the line where the error occurs, it's been already evaluated. the executed eval looks like this:
eval('2');
since the echo command returns a string. i hope i made myself clear.
Comment #3
DieterWeb commentedfound the problem. its mandatory to leave the opening and closing tags out.
Comment #4
fago