| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- <?xml version="1.0" encoding="iso-8859-1"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <!-- template designed by Marco Von Ballmoos -->
- <title>File Source for linker.php</title>
- <link rel="stylesheet" href="../media/stylesheet.css" />
- </head>
- <body>
-
<h1>Source for file linker.php</h1>
- <p>Documentation is available at <a href="../sloodle/_mod---demo-1.0---linker.php.html">linker.php</a></p>
- <div class="src-code">
- <div class="src-code"><ol><li><div class="src-line"><a name="a1"></a><span class="src-php"><?php</span></div></li>
- <li><div class="src-line"><a name="a2"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a3"></a><span class="src-doc"> * Sloodle demo linker (for Sloodle 0.4).</span></div></li>
- <li><div class="src-line"><a name="a4"></a><span class="src-doc"> * Allows a demo object to link to Moodle.</span></div></li>
- <li><div class="src-line"><a name="a5"></a><span class="src-doc"> *</span></div></li>
- <li><div class="src-line"><a name="a6"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@package</span><span class="src-doc"> sloodle</span></div></li>
- <li><div class="src-line"><a name="a7"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@copyright</span><span class="src-doc"> Copyright (c) 2009 Sloodle (various contributors)</span></div></li>
- <li><div class="src-line"><a name="a8"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@license</span><span class="src-doc"> http://www.gnu.org/licenses/gpl-3.0.html GNU GPL v3</span></div></li>
- <li><div class="src-line"><a name="a9"></a><span class="src-doc"> *</span></div></li>
- <li><div class="src-line"><a name="a10"></a><span class="src-doc"> * </span><span class="src-doc-tag">@contributor</span><span class="src-doc"> Peter R. Bloomfield</span></div></li>
- <li><div class="src-line"><a name="a11"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a12"></a> </div></li>
- <li><div class="src-line"><a name="a13"></a> <span class="src-comm">// Common parameters for linker scripts</span></div></li>
- <li><div class="src-line"><a name="a14"></a> <span class="src-comm">// sloodlecontrollerid = ID of a Sloodle Controller through which to access Moodle</span></div></li>
- <li><div class="src-line"><a name="a15"></a> <span class="src-comm">// sloodlepwd = the prim password or object-specific session key to authenticate the request</span></div></li>
- <li><div class="src-line"><a name="a16"></a> <span class="src-comm">// sloodlemoduleid = ID of a module to load (corresponds to a course module instance ID, i.e. the 'id' field of the 'course_modules' db table).</span></div></li>
- <li><div class="src-line"><a name="a17"></a> <span class="src-comm">// sloodleuuid = UUID of the avatar</span></div></li>
- <li><div class="src-line"><a name="a18"></a> <span class="src-comm">// sloodleavname = name of the avatar</span></div></li>
- <li><div class="src-line"><a name="a19"></a> <span class="src-comm">//</span></div></li>
- <li><div class="src-line"><a name="a20"></a> <span class="src-comm">// Less common parameters:</span></div></li>
- <li><div class="src-line"><a name="a21"></a> <span class="src-comm">// sloodleserveraccesslevel = how strict should access be? Handled entirely by the SloodleSession object</span></div></li>
- <li><div class="src-line"><a name="a22"></a> <span class="src-comm">//</span></div></li>
- <li><div class="src-line"><a name="a23"></a> <span class="src-comm">//</span></div></li>
- <li><div class="src-line"><a name="a24"></a> <span class="src-comm">// The following parameter is optional:</span></div></li>
- <li><div class="src-line"><a name="a25"></a> <span class="src-comm">// sloodledebug = if 'true', then Sloodle debugging mode is activated -- should only be used from a web-browser as it outputs lots of extra info</span></div></li>
- <li><div class="src-line"><a name="a26"></a> </div></li>
- <li><div class="src-line"><a name="a27"></a> </div></li>
- <li><div class="src-line"><a name="a28"></a> <span class="src-doc">/** Lets Sloodle know we are in a linker script. */</span></div></li>
- <li><div class="src-line"><a name="a29"></a> <a href="http://www.php.net/define">define</a><span class="src-sym">(</span><span class="src-str">'SLOODLE_LINKER_SCRIPT'</span><span class="src-sym">, </span><span class="src-id">true</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a30"></a> </div></li>
- <li><div class="src-line"><a name="a31"></a> <span class="src-doc">/** Grab the Sloodle/Moodle configuration. */</span></div></li>
- <li><div class="src-line"><a name="a32"></a> <span class="src-inc">require_once</span><span class="src-sym">(</span><span class="src-str">'../../sl_config.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a33"></a> <span class="src-doc">/** Include the Sloodle PHP API. */</span></div></li>
- <li><div class="src-line"><a name="a34"></a> <span class="src-inc">require_once</span><span class="src-sym">(</span><span class="src-id">SLOODLE_LIBROOT</span>.<span class="src-str">'/sloodle_session.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a35"></a> </div></li>
- <li><div class="src-line"><a name="a36"></a><span class="src-comm">///// SETTING UP THE SESSION //////</span></div></li>
- <li><div class="src-line"><a name="a37"></a> </div></li>
- <li><div class="src-line"><a name="a38"></a> <span class="src-comm">// Construct a SloodleSession to handle this request.</span></div></li>
- <li><div class="src-line"><a name="a39"></a> <span class="src-comm">// This provides a framework to handle all the common SLOODLE-related things.</span></div></li>
- <li><div class="src-line"><a name="a40"></a> <span class="src-comm">// By default, this immediately processes important incoming data, but you can suppress that with optional parameters. (See API documentation.)</span></div></li>
- <li><div class="src-line"><a name="a41"></a> <span class="src-var">$sloodle </span>= <span class="src-key">new </span><span class="src-id"><a href="../sloodle/SloodleSession.html">SloodleSession</a></span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a42"></a> </div></li>
- <li><div class="src-line"><a name="a43"></a> <span class="src-comm">// Check that the object is allowed to access Moodle.</span></div></li>
- <li><div class="src-line"><a name="a44"></a> <span class="src-comm">// This checks that a SLOODLE Controller has been identified, and that a password has been given too.</span></div></li>
- <li><div class="src-line"><a name="a45"></a> <span class="src-comm">// If it fails, it will normally terminate the script with an error, but you can suppress that using optional parameters.</span></div></li>
- <li><div class="src-line"><a name="a46"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">authenticate_request</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a47"></a> </div></li>
- <li><div class="src-line"><a name="a48"></a> <span class="src-comm">// At this stage, you are guaranteed that the request is secure... or at least as secure as we can make it. :-)</span></div></li>
- <li><div class="src-line"><a name="a49"></a> </div></li>
- <li><div class="src-line"><a name="a50"></a> <span class="src-comm">// Note:</span></div></li>
- <li><div class="src-line"><a name="a51"></a> <span class="src-comm">// There are two types of authentication - prim password, and object-specific password.</span></div></li>
- <li><div class="src-line"><a name="a52"></a> <span class="src-comm">// In both cases, a SLOODLE Controller must be identified in the "sloodlecontrollerid" HTTP parameter, and the password in the "sloodlepwd" HTTP parameter.</span></div></li>
- <li><div class="src-line"><a name="a53"></a> <span class="src-comm">// A prim-password is just a 5 to 9 digit number, and it is the same for any object using the Controller.</span></div></li>
- <li><div class="src-line"><a name="a54"></a> <span class="src-comm">// An object-specific password is a 9-digit number PLUS the object's UUID, and it is unique for every object.</span></div></li>
- <li><div class="src-line"><a name="a55"></a> </div></li>
- <li><div class="src-line"><a name="a56"></a> <span class="src-comm">// * See the SLOODLE PHP API documentation for more information about the "SloodleSession" class *</span></div></li>
- <li><div class="src-line"><a name="a57"></a> </div></li>
- <li><div class="src-line"><a name="a58"></a> </div></li>
- <li><div class="src-line"><a name="a59"></a><span class="src-comm">///// HANDLING THE USER /////</span></div></li>
- <li><div class="src-line"><a name="a60"></a> </div></li>
- <li><div class="src-line"><a name="a61"></a> <span class="src-comm">// Many requests either deal with or are originated by a particular avatar.</span></div></li>
- <li><div class="src-line"><a name="a62"></a> <span class="src-comm">// For example, the WebIntercom needs to know who is chatting a message.</span></div></li>
- <li><div class="src-line"><a name="a63"></a> <span class="src-comm">// This information is passed-in using two parameters: sloodleavname, sloodleuuid.</span></div></li>
- <li><div class="src-line"><a name="a64"></a> <span class="src-comm">// It is good practice to provide both in your script, but just one will usually suffice (unless you want to auto-register a new avatar).</span></div></li>
- <li><div class="src-line"><a name="a65"></a> </div></li>
- <li><div class="src-line"><a name="a66"></a> <span class="src-comm">// You can use the following method to check that an avatar has been specified.</span></div></li>
- <li><div class="src-line"><a name="a67"></a> <span class="src-comm">// This will also check to see if they are registered in Moodle, and enrolled on the course.</span></div></li>
- <li><div class="src-line"><a name="a68"></a> <span class="src-comm">// If it fails, it will normally terminate the script with an error, but you can suppress that using optional parameters.</span></div></li>
- <li><div class="src-line"><a name="a69"></a> <span class="src-comm">// Note that this function will auto-register and/or auto-enrol avatars if necessary and if the Moodle site/course allow it.</span></div></li>
- <li><div class="src-line"><a name="a70"></a> <span class="src-comm">// An important side-effect of this function is that it forces Moodle to think the registered Moodle user is actually logged-in for the duration of this script.</span></div></li>
- <li><div class="src-line"><a name="a71"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">validate_user</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a72"></a> </div></li>
- <li><div class="src-line"><a name="a73"></a> <span class="src-comm">// At this stage, you are guaranteed to have a valid avatar AND Moodle user.</span></div></li>
- <li><div class="src-line"><a name="a74"></a> <span class="src-comm">// You can now access the user information like this: $sloodle->user->...</span></div></li>
- <li><div class="src-line"><a name="a75"></a> <span class="src-comm">// For example, let's get the names of the avatar and Moodle user.</span></div></li>
- <li><div class="src-line"><a name="a76"></a> <span class="src-var">$avatarname </span>= <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">user</span><span class="src-sym">-></span><span class="src-id">get_avatar_name</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a77"></a> <span class="src-var">$moodlename </span>= <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">user</span><span class="src-sym">-></span><span class="src-id">get_user_firstname</span><span class="src-sym">(</span><span class="src-sym">) </span>.<span class="src-str">' '</span>. <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">user</span><span class="src-sym">-></span><span class="src-id">get_user_lastname</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a78"></a> </div></li>
- <li><div class="src-line"><a name="a79"></a> <span class="src-comm">// * See the SLOODLE PHP API documentation for more information about the SloodleUser class. *</span></div></li>
- <li><div class="src-line"><a name="a80"></a> <span class="src-comm">// SloodleUser is defined in: sloodle/lib/user.php</span></div></li>
- <li><div class="src-line"><a name="a81"></a> </div></li>
- <li><div class="src-line"><a name="a82"></a> </div></li>
- <li><div class="src-line"><a name="a83"></a><span class="src-comm">///// LOADING MODULES /////</span></div></li>
- <li><div class="src-line"><a name="a84"></a> </div></li>
- <li><div class="src-line"><a name="a85"></a> <span class="src-comm">// In order to improve portability and code-reusability, a modules system was created.</span></div></li>
- <li><div class="src-line"><a name="a86"></a> <span class="src-comm">// It is not essential, but can help keep linker scripts clean and free of Moodle-specific database code.</span></div></li>
- <li><div class="src-line"><a name="a87"></a> <span class="src-comm">// The SloodleModule base class provides a common base for any SLOODLE code which 'wraps' a Moodle module.</span></div></li>
- <li><div class="src-line"><a name="a88"></a> <span class="src-comm">// For example, the SloodleModuleChat class provides simple functions to handle a Moodle chatroom.</span></div></li>
- <li><div class="src-line"><a name="a89"></a> <span class="src-comm">// Similarly, the SloodleModuleBlog class provides simple functions to handle the Moodle blog.</span></div></li>
- <li><div class="src-line"><a name="a90"></a> </div></li>
- <li><div class="src-line"><a name="a91"></a> <span class="src-comm">// Note that these will NOT necessarily correspond to actual Moodle modules (although they usually do).</span></div></li>
- <li><div class="src-line"><a name="a92"></a> </div></li>
- <li><div class="src-line"><a name="a93"></a> <span class="src-comm">// The following method can be used to load a module wrapper for a chatroom.</span></div></li>
- <li><div class="src-line"><a name="a94"></a> <span class="src-comm">// The first argument names the module, and the second indicates whether or not there is database data to be loaded.</span></div></li>
- <li><div class="src-line"><a name="a95"></a> <span class="src-comm">// Note that this will load the module identified by HTTP parameter 'sloodlemoduleid'.</span></div></li>
- <li><div class="src-line"><a name="a96"></a> <span class="src-comm">// If that parameter is not provided in the request, then this method will terminate the script with an error message.</span></div></li>
- <li><div class="src-line"><a name="a97"></a> <span class="src-comm">// If the module loading fails (e.g. due to a database error) then the script will also be terminated, although that behaviour can be suppressed by addition optional arguments.</span></div></li>
- <li><div class="src-line"><a name="a98"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">load_module</span><span class="src-sym">(</span><span class="src-str">'chat'</span><span class="src-sym">, </span><span class="src-id">true</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a99"></a> </div></li>
- <li><div class="src-line"><a name="a100"></a> <span class="src-comm">// You can now access the module like this: $sloodle->module->...</span></div></li>
- <li><div class="src-line"><a name="a101"></a> <span class="src-comm">// There are some common functions, such as getting the name of the module, and various functions specific to the module class that was loaded.</span></div></li>
- <li><div class="src-line"><a name="a102"></a> <span class="src-var">$modulename </span>= <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">module</span><span class="src-sym">-></span><span class="src-id">get_name</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a103"></a> <span class="src-var">$chatmessages </span>= <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">module</span><span class="src-sym">-></span><span class="src-id">get_chat_history</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a104"></a> </div></li>
- <li><div class="src-line"><a name="a105"></a> </div></li>
- <li><div class="src-line"><a name="a106"></a> <span class="src-comm">// * See the SLOODLE PHP API documentation for more information about the "SloodleModule" class *</span></div></li>
- <li><div class="src-line"><a name="a107"></a> </div></li>
- <li><div class="src-line"><a name="a108"></a> <span class="src-comm">// SloodleModule is defined in: sloodle/lib/modules/module_base.php</span></div></li>
- <li><div class="src-line"><a name="a109"></a> <span class="src-comm">// The sub-classes are defined in: sloodle/lib/modules</span></div></li>
- <li><div class="src-line"><a name="a110"></a> <span class="src-comm">// The module loading code is define in: sloodle/lib/modules.php</span></div></li>
- <li><div class="src-line"><a name="a111"></a> </div></li>
- <li><div class="src-line"><a name="a112"></a> </div></li>
- <li><div class="src-line"><a name="a113"></a> </div></li>
- <li><div class="src-line"><a name="a114"></a><span class="src-comm">///// GETTING INPUT /////</span></div></li>
- <li><div class="src-line"><a name="a115"></a> </div></li>
- <li><div class="src-line"><a name="a116"></a> <span class="src-comm">// You will often want to pass data from SL to Moodle as HTTP parameters. This can be done using GET or POST parameters.</span></div></li>
- <li><div class="src-line"><a name="a117"></a> <span class="src-comm">// You can fetch either type of data easily using the "SloodleRequest" object within the SloodleSession.</span></div></li>
- <li><div class="src-line"><a name="a118"></a> <span class="src-comm">// You access it using: $sloodle->request->...</span></div></li>
- <li><div class="src-line"><a name="a119"></a> </div></li>
- <li><div class="src-line"><a name="a120"></a> <span class="src-comm">// If there is a parameter called 'message' that you absolutely MUST receive for the script to work properly, you can fetch it like this:</span></div></li>
- <li><div class="src-line"><a name="a121"></a> <span class="src-var">$requiredmessage </span>= <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">request</span><span class="src-sym">-></span><span class="src-id">required_param</span><span class="src-sym">(</span><span class="src-str">'message'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a122"></a> </div></li>
- <li><div class="src-line"><a name="a123"></a> <span class="src-comm">// If the parameter was not given in the HTTP request, then the script is immediately terminate with an error message.</span></div></li>
- <li><div class="src-line"><a name="a124"></a> <span class="src-comm">// The argument gives the name of the parameter to fetch.</span></div></li>
- <li><div class="src-line"><a name="a125"></a> <span class="src-comm">// If the parameter was specified, then it is returned as a raw string (you MUST do proper data cleanup before putting it into a database query, otherwise you'll be vulnerable to SQL injections).</span></div></li>
- <li><div class="src-line"><a name="a126"></a> </div></li>
- <li><div class="src-line"><a name="a127"></a> </div></li>
- <li><div class="src-line"><a name="a128"></a> </div></li>
- <li><div class="src-line"><a name="a129"></a> <span class="src-comm">// If a particular parameter is optional (i.e. you may or may not receive it), then you can use the following method:</span></div></li>
- <li><div class="src-line"><a name="a130"></a> <span class="src-var">$optionalmessage </span>= <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">request</span><span class="src-sym">-></span><span class="src-id">optional_param</span><span class="src-sym">(</span><span class="src-str">'anothermessage'</span><span class="src-sym">, </span><span class="src-str">''</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a131"></a> </div></li>
- <li><div class="src-line"><a name="a132"></a> <span class="src-comm">// The first argument gave the name of the paramter.</span></div></li>
- <li><div class="src-line"><a name="a133"></a> <span class="src-comm">// The second argument gave the default value that would be returned if that parameter was not passed to this script.</span></div></li>
- <li><div class="src-line"><a name="a134"></a> <span class="src-comm">// If the parameter *was* provided for this script, then the raw string value is returned.</span></div></li>
- <li><div class="src-line"><a name="a135"></a> </div></li>
- <li><div class="src-line"><a name="a136"></a> </div></li>
- <li><div class="src-line"><a name="a137"></a> <span class="src-comm">// * See the SLOODLE PHP API documentation for more information about the "SloodleRequest" class *</span></div></li>
- <li><div class="src-line"><a name="a138"></a> <span class="src-comm">// SloodleRequest is defined in: sloodle/lib/io.php</span></div></li>
- <li><div class="src-line"><a name="a139"></a> </div></li>
- <li><div class="src-line"><a name="a140"></a> </div></li>
- <li><div class="src-line"><a name="a141"></a><span class="src-comm">///// RETURNING A RESPONSE /////</span></div></li>
- <li><div class="src-line"><a name="a142"></a> </div></li>
- <li><div class="src-line"><a name="a143"></a> <span class="src-comm">// After you have done some processing, you have to provide a response.</span></div></li>
- <li><div class="src-line"><a name="a144"></a> <span class="src-comm">// There is information in the developer documentation on the SLOODLE wiki about the appropriate communications specification.</span></div></li>
- <li><div class="src-line"><a name="a145"></a> <span class="src-comm">// Note that *anything* you output, e.g. using "echo" or "print" becomes part of the response.</span></div></li>
- <li><div class="src-line"><a name="a146"></a> <span class="src-comm">// The SloodleResponse object within SloodleSession provides some assistance.</span></div></li>
- <li><div class="src-line"><a name="a147"></a> <span class="src-comm">// You can access the response object like this: $sloodle->response->...</span></div></li>
- <li><div class="src-line"><a name="a148"></a> </div></li>
- <li><div class="src-line"><a name="a149"></a> <span class="src-comm">// You must always provide a status code (see the wiki for a list of these):</span></div></li>
- <li><div class="src-line"><a name="a150"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">set_status_code</span><span class="src-sym">(</span><span class="src-num">1</span><span class="src-sym">)</span><span class="src-sym">; </span><span class="src-comm">// Positive means OK, negative means an error</span></div></li>
- <li><div class="src-line"><a name="a151"></a> </div></li>
- <li><div class="src-line"><a name="a152"></a> <span class="src-comm">// You must also provide a simple, generic, status 'descriptor' (a short human-readable string):</span></div></li>
- <li><div class="src-line"><a name="a153"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">set_status_descriptor</span><span class="src-sym">(</span><span class="src-str">'OK'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a154"></a> </div></li>
- <li><div class="src-line"><a name="a155"></a> <span class="src-comm">// You can optionally add data, line by line. Each line can have several fields, usually separated by | characters.</span></div></li>
- <li><div class="src-line"><a name="a156"></a> <span class="src-comm">// There are several ways to add the data.</span></div></li>
- <li><div class="src-line"><a name="a157"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">add_data_line</span><span class="src-sym">(</span><span class="src-str">"</span><span class="src-str">Avatar name is: {<span class="src-var">$avatarname</span><span class="src-sym">}</span></span><span class="src-str">"</span><span class="src-sym">)</span><span class="src-sym">; </span><span class="src-comm">// Just add a string on each line</span></div></li>
- <li><div class="src-line"><a name="a158"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">add_data_line</span><span class="src-sym">(</span><span class="src-key">array</span><span class="src-sym">(</span><span class="src-str">'Moodle name'</span><span class="src-sym">, </span><span class="src-var">$moodlename</span><span class="src-sym">))</span><span class="src-sym">; </span><span class="src-comm">// Add several fields on a single line</span></div></li>
- <li><div class="src-line"><a name="a159"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">add_data_line</span><span class="src-sym">(</span><span class="src-key">array</span><span class="src-sym">(</span><span class="src-str">'module'</span><span class="src-sym">, </span><span class="src-str">'name'</span><span class="src-sym">, </span><span class="src-var">$modulename</span><span class="src-sym">))</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a160"></a> </div></li>
- <li><div class="src-line"><a name="a161"></a> <span class="src-comm">// Just some more usage of input data</span></div></li>
- <li><div class="src-line"><a name="a162"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">add_data_line</span><span class="src-sym">(</span><span class="src-str">"</span><span class="src-str">Required message: {<span class="src-var">$requiredmessage</span><span class="src-sym">}</span></span><span class="src-str">"</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a163"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$optionalmessage</span><span class="src-sym">)) </span><span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">add_data_line</span><span class="src-sym">(</span><span class="src-str">"No optional message provided"</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a164"></a> <span class="src-key">else </span><span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">add_data_line</span><span class="src-sym">(</span><span class="src-str">"</span><span class="src-str">Optional message: {<span class="src-var">$optionalmessage</span><span class="src-sym">}</span></span><span class="src-str">"</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a165"></a> </div></li>
- <li><div class="src-line"><a name="a166"></a> </div></li>
- <li><div class="src-line"><a name="a167"></a> <span class="src-comm">// Finally, you MUST remember to render the response!</span></div></li>
- <li><div class="src-line"><a name="a168"></a> <span class="src-var">$sloodle</span><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">render_to_output</span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a169"></a> </div></li>
- <li><div class="src-line"><a name="a170"></a> <span class="src-comm">// Alternatively, you can render the output to a string, like this:</span></div></li>
- <li><div class="src-line"><a name="a171"></a> <span class="src-var">$output </span>= <span class="src-str">''</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a172"></a> <span class="src-comm">//$sloodle->response->render_to_output($output); // Passed in by reference</span></div></li>
- <li><div class="src-line"><a name="a173"></a> <span class="src-comm">// You can then output that string yourself, or send it by XMLRPC or similar.</span></div></li>
- <li><div class="src-line"><a name="a174"></a> <span class="src-comm">// NOTE: for XMLRPC into SL, you need to replace newlines (\n) with \\n before sending.</span></div></li>
- <li><div class="src-line"><a name="a175"></a> </div></li>
- <li><div class="src-line"><a name="a176"></a> </div></li>
- <li><div class="src-line"><a name="a177"></a> <span class="src-comm">// * See the SLOODLE PHP API documentation for more information about the "SloodleResponse" class *</span></div></li>
- <li><div class="src-line"><a name="a178"></a> <span class="src-comm">// SloodleResponse is defined in: sloodle/lib/io.php</span></div></li>
- <li><div class="src-line"><a name="a179"></a> </div></li>
- <li><div class="src-line"><a name="a180"></a> </div></li>
- <li><div class="src-line"><a name="a181"></a><span class="src-php">?></span></div></li>
- </ol></div>
- </div>
- <p class="notes" id="credit">
- Documentation generated on Fri, 17 Jul 2009 11:01:47 +0100 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0</a>
- </p>
- </body>
- </html>
|