| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919 |
- <?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 user.php</title>
- <link rel="stylesheet" href="../media/stylesheet.css" />
- </head>
- <body>
-
<h1>Source for file user.php</h1>
- <p>Documentation is available at <a href="../sloodle/_lib---user.php.html">user.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 user library.</span></div></li>
- <li><div class="src-line"><a name="a4"></a><span class="src-doc"> *</span></div></li>
- <li><div class="src-line"><a name="a5"></a><span class="src-doc"> * Provides functionality for reading, managing and editing user data.</span></div></li>
- <li><div class="src-line"><a name="a6"></a><span class="src-doc"> *</span></div></li>
- <li><div class="src-line"><a name="a7"></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="a8"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@copyright</span><span class="src-doc"> Copyright (c) 2007-8 Sloodle (various contributors)</span></div></li>
- <li><div class="src-line"><a name="a9"></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="a10"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@since</span><span class="src-doc"> Sloodle 0.2</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><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="a13"></a><span class="src-doc"> *</span></div></li>
- <li><div class="src-line"><a name="a14"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a15"></a> </div></li>
- <li><div class="src-line"><a name="a16"></a> <span class="src-comm">// This library expects that the Sloodle config file has already been included</span></div></li>
- <li><div class="src-line"><a name="a17"></a> <span class="src-comm">// (along with the Moodle libraries)</span></div></li>
- <li><div class="src-line"><a name="a18"></a> </div></li>
- <li><div class="src-line"><a name="a19"></a> <span class="src-doc">/** Include the Sloodle IO library. */</span></div></li>
- <li><div class="src-line"><a name="a20"></a> <span class="src-inc">require_once</span><span class="src-sym">(</span><span class="src-id">SLOODLE_DIRROOT</span>.<span class="src-str">'/lib/io.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a21"></a> <span class="src-doc">/** Include the general Sloodle functionality. */</span></div></li>
- <li><div class="src-line"><a name="a22"></a> <span class="src-inc">require_once</span><span class="src-sym">(</span><span class="src-id">SLOODLE_DIRROOT</span>.<span class="src-str">'/lib/general.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a23"></a> <span class="src-doc">/** Include the Sloodle course data structure. */</span></div></li>
- <li><div class="src-line"><a name="a24"></a> <span class="src-inc">require_once</span><span class="src-sym">(</span><span class="src-id">SLOODLE_DIRROOT</span>.<span class="src-str">'/lib/course.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a25"></a> <span class="src-doc">/** Include the user object data structure */</span></div></li>
- <li><div class="src-line"><a name="a26"></a> <span class="src-inc">require_once</span><span class="src-sym">(</span><span class="src-id">SLOODLE_DIRROOT</span>.<span class="src-str">'/lib/user_object.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a27"></a> </div></li>
- <li><div class="src-line"><a name="a28"></a> </div></li>
- <li><div class="src-line"><a name="a29"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a30"></a><span class="src-doc"> * A class to represent a single user, including Moodle and Sloodle data.</span></div></li>
- <li><div class="src-line"><a name="a31"></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="a32"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a33"></a> <span class="src-key">class </span><a href="../sloodle/SloodleUser.html">SloodleUser</a></div></li>
- <li><div class="src-line"><a name="a34"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a35"></a> <span class="src-comm">// DATA //</span></div></li>
- <li><div class="src-line"><a name="a36"></a> </div></li>
- <li><div class="src-line"><a name="a37"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a38"></a><span class="src-doc"> * Internal only - reference to the containing </span><span class="src-doc-inlinetag">{@link SloodleSession}</span><span class="src-doc"> object.</span></div></li>
- <li><div class="src-line"><a name="a39"></a><span class="src-doc"> * Note: always check that it is not null before use!</span></div></li>
- <li><div class="src-line"><a name="a40"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@var </span><span class="src-doc-type">object </span></div></li>
- <li><div class="src-line"><a name="a41"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> protected</span></div></li>
- <li><div class="src-line"><a name="a42"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a43"></a> <span class="src-key">var </span><a href="../sloodle/SloodleUser.html#var$_session">$_session</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a44"></a> </div></li>
- <li><div class="src-line"><a name="a45"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a46"></a><span class="src-doc"> * Internal only - avatar data.</span></div></li>
- <li><div class="src-line"><a name="a47"></a><span class="src-doc"> * In Moodle, corresponds to a record from the 'sloodle_users' table.</span></div></li>
- <li><div class="src-line"><a name="a48"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@var </span><span class="src-doc-type">object </span></div></li>
- <li><div class="src-line"><a name="a49"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> private</span></div></li>
- <li><div class="src-line"><a name="a50"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a51"></a> <span class="src-key">var </span><a href="../sloodle/SloodleUser.html#var$avatar_data">$avatar_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a52"></a> </div></li>
- <li><div class="src-line"><a name="a53"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a54"></a><span class="src-doc"> * Internal only - user data. (i.e. VLE user)</span></div></li>
- <li><div class="src-line"><a name="a55"></a><span class="src-doc"> * In Moodle, corresponds to a record from the 'user' table.</span></div></li>
- <li><div class="src-line"><a name="a56"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@var </span><span class="src-doc-type">obejct </span></div></li>
- <li><div class="src-line"><a name="a57"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> private</span></div></li>
- <li><div class="src-line"><a name="a58"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a59"></a> <span class="src-key">var </span><a href="../sloodle/SloodleUser.html#var$user_data">$user_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a60"></a> </div></li>
- <li><div class="src-line"><a name="a61"></a> </div></li>
- <li><div class="src-line"><a name="a62"></a> <span class="src-comm">// CONSTRUCTOR //</span></div></li>
- <li><div class="src-line"><a name="a63"></a> </div></li>
- <li><div class="src-line"><a name="a64"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a65"></a><span class="src-doc"> * Class constructor.</span></div></li>
- <li><div class="src-line"><a name="a66"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">object </span><span class="src-doc-var">&$_session </span><span class="src-doc">Reference to the containing </span><span class="src-doc-inlinetag">{@link SloodleSession}</span><span class="src-doc"> object, if available.</span></div></li>
- <li><div class="src-line"><a name="a67"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a68"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a69"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodSloodleUser">SloodleUser</a><span class="src-sym">(</span><span class="src-sym">&</span><span class="src-var">$_session</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a70"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a71"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><a href="http://www.php.net/is_null">is_null</a><span class="src-sym">(</span><span class="src-var">$_session</span><span class="src-sym">)) </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$_session">_session</a> = <span class="src-sym">&</span><span class="src-var">$_session</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a72"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a73"></a> </div></li>
- <li><div class="src-line"><a name="a74"></a> </div></li>
- <li><div class="src-line"><a name="a75"></a> <span class="src-comm">// ACCESSORS //</span></div></li>
- <li><div class="src-line"><a name="a76"></a> </div></li>
- <li><div class="src-line"><a name="a77"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a78"></a><span class="src-doc"> * Gets the unique ID of the avatar.</span></div></li>
- <li><div class="src-line"><a name="a79"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">mixed </span><span class="src-doc">Type depends on VLE. (Integer on Moodle). Returns null if there is no avatar.</span></div></li>
- <li><div class="src-line"><a name="a80"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a81"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a82"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_avatar_id">get_avatar_id</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a83"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a84"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span>isset<span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a85"></a> <span class="src-key">return </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a86"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a87"></a> </div></li>
- <li><div class="src-line"><a name="a88"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a89"></a><span class="src-doc"> * Gets the unique ID of the VLE user.</span></div></li>
- <li><div class="src-line"><a name="a90"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">mixed </span><span class="src-doc">Type depends on VLE. (Integer on Moodle). Returns null if there is no user</span></div></li>
- <li><div class="src-line"><a name="a91"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a92"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a93"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_user_id">get_user_id</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a94"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a95"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span>isset<span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a96"></a> <span class="src-key">return </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a97"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a98"></a> </div></li>
- <li><div class="src-line"><a name="a99"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a100"></a><span class="src-doc"> * Determines whether or not an avatar is loaded.</span></div></li>
- <li><div class="src-line"><a name="a101"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span></div></li>
- <li><div class="src-line"><a name="a102"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a103"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodis_avatar_loaded">is_avatar_loaded</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a104"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a105"></a> <span class="src-key">return </span>isset<span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a106"></a> <span class="src-sym">}</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-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a109"></a><span class="src-doc"> * Determines whether or not a VLE user is loaded.</span></div></li>
- <li><div class="src-line"><a name="a110"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span></div></li>
- <li><div class="src-line"><a name="a111"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a112"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodis_user_loaded">is_user_loaded</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a113"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a114"></a> <span class="src-key">return </span>isset<span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a115"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a116"></a> </div></li>
- <li><div class="src-line"><a name="a117"></a> </div></li>
- <li><div class="src-line"><a name="a118"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a119"></a><span class="src-doc"> * Gets the UUID of the avatar</span></div></li>
- <li><div class="src-line"><a name="a120"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">string </span></div></li>
- <li><div class="src-line"><a name="a121"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a122"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_avatar_uuid">get_avatar_uuid</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a123"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a124"></a> <span class="src-key">return </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">uuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a125"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a126"></a> </div></li>
- <li><div class="src-line"><a name="a127"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a128"></a><span class="src-doc"> * Sets the UUID of the avatar</span></div></li>
- <li><div class="src-line"><a name="a129"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$uuid </span><span class="src-doc">The new UUID</span></div></li>
- <li><div class="src-line"><a name="a130"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></div></li>
- <li><div class="src-line"><a name="a131"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a132"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodset_avatar_uuid">set_avatar_uuid</a><span class="src-sym">(</span><span class="src-var">$uuid</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a133"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a134"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">uuid </span>= <span class="src-var">$uuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a135"></a> <span class="src-sym">}</span></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-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a138"></a><span class="src-doc"> * Gets the name of the avatar</span></div></li>
- <li><div class="src-line"><a name="a139"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">string </span></div></li>
- <li><div class="src-line"><a name="a140"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a141"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_avatar_name">get_avatar_name</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a142"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a143"></a> <span class="src-key">return </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">avname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a144"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a145"></a> </div></li>
- <li><div class="src-line"><a name="a146"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a147"></a><span class="src-doc"> * Sets the name of the avatar</span></div></li>
- <li><div class="src-line"><a name="a148"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$avname </span><span class="src-doc">The new avatar name</span></div></li>
- <li><div class="src-line"><a name="a149"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></div></li>
- <li><div class="src-line"><a name="a150"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a151"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodset_avatar_name">set_avatar_name</a><span class="src-sym">(</span><span class="src-var">$avname</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a152"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a153"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">avname </span>= <span class="src-var">$avname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a154"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a155"></a> </div></li>
- <li><div class="src-line"><a name="a156"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a157"></a><span class="src-doc"> * Gets the user's username</span></div></li>
- <li><div class="src-line"><a name="a158"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">string </span></div></li>
- <li><div class="src-line"><a name="a159"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a160"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_username">get_username</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a161"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a162"></a> <span class="src-key">return </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">username</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a163"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a164"></a> </div></li>
- <li><div class="src-line"><a name="a165"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a166"></a><span class="src-doc"> * Gets the first name of the user</span></div></li>
- <li><div class="src-line"><a name="a167"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">string </span></div></li>
- <li><div class="src-line"><a name="a168"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a169"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_user_firstname">get_user_firstname</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a170"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a171"></a> <span class="src-key">return </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">firstname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a172"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a173"></a> </div></li>
- <li><div class="src-line"><a name="a174"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a175"></a><span class="src-doc"> * Gets the last name of the user</span></div></li>
- <li><div class="src-line"><a name="a176"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">string </span></div></li>
- <li><div class="src-line"><a name="a177"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a178"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_user_lastname">get_user_lastname</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a179"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a180"></a> <span class="src-key">return </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">lastname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a181"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a182"></a> </div></li>
- <li><div class="src-line"><a name="a183"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a184"></a><span class="src-doc"> * Gets the timestamp of whenever the avatar was last active</span></div></li>
- <li><div class="src-line"><a name="a185"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">int </span></div></li>
- <li><div class="src-line"><a name="a186"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a187"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_avatar_last_active">get_avatar_last_active</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a188"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a189"></a> <span class="src-key">return </span>(int)<span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">lastactive</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a190"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a191"></a> </div></li>
- <li><div class="src-line"><a name="a192"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a193"></a><span class="src-doc"> * Sets the timestamp of when the user was last active</span></div></li>
- <li><div class="src-line"><a name="a194"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">int </span><span class="src-doc-var">$timestamp </span><span class="src-doc">A UNIX timestamp, or null to use the current time</span></div></li>
- <li><div class="src-line"><a name="a195"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></div></li>
- <li><div class="src-line"><a name="a196"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a197"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodset_avatar_last_active">set_avatar_last_active</a><span class="src-sym">(</span><span class="src-var">$timestamp </span>= <span class="src-id">null</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a198"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a199"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$timestamp </span>== <span class="src-id">null</span><span class="src-sym">) </span><span class="src-var">$timestamp </span>= <a href="http://www.php.net/time">time</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a200"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">lastactive </span>= <span class="src-var">$timestamp</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a201"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a202"></a> </div></li>
- <li><div class="src-line"><a name="a203"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a204"></a><span class="src-doc"> * Gets the user's email address.</span></div></li>
- <li><div class="src-line"><a name="a205"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">string</span><span class="src-doc">|</span><span class="src-doc-type">null</span><span class="src-doc">The user's email address, or null if none is specified of if email is disabled.</span></div></li>
- <li><div class="src-line"><a name="a206"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a207"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_user_email">get_user_email</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a208"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a209"></a> <span class="src-key">if </span><span class="src-sym">(</span>isset<span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">email</span><span class="src-sym">) </span>&& <span class="src-sym">!</span><span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">emailstop</span><span class="src-sym">))</span></div></li>
- <li><div class="src-line"><a name="a210"></a> <span class="src-key">return </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">email</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a211"></a> <span class="src-key">return </span><span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a212"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a213"></a> </div></li>
- <li><div class="src-line"><a name="a214"></a> </div></li>
- <li><div class="src-line"><a name="a215"></a> <span class="src-comm">// USER LINK FUNCTIONS //</span></div></li>
- <li><div class="src-line"><a name="a216"></a> </div></li>
- <li><div class="src-line"><a name="a217"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a218"></a><span class="src-doc"> * Determines whether or not the current user and avatar are linked.</span></div></li>
- <li><div class="src-line"><a name="a219"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if they are linked, or false if not.</span></div></li>
- <li><div class="src-line"><a name="a220"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a221"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodis_avatar_linked">is_avatar_linked</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a222"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a223"></a> <span class="src-comm">// Make sure there is data in both caches</span></div></li>
- <li><div class="src-line"><a name="a224"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">) </span>|| <span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a225"></a> <span class="src-comm">// Check for the link (ignore the number 0, as that is not a valid ID)</span></div></li>
- <li><div class="src-line"><a name="a226"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">userid </span>!= <span class="src-num">0 </span>&& <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">userid </span>== <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a227"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a228"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a229"></a> </div></li>
- <li><div class="src-line"><a name="a230"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a231"></a><span class="src-doc"> * Links the current avatar to the current user.</span></div></li>
- <li><div class="src-line"><a name="a232"></a><span class="src-doc"> * <b>NOTE:</b> does not remove any other avatar links to the VLE user.</span></div></li>
- <li><div class="src-line"><a name="a233"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful or false otherwise.</span></div></li>
- <li><div class="src-line"><a name="a234"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a235"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a236"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodlink_avatar">link_avatar</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a237"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a238"></a> <span class="src-comm">// Make sure there is data in both caches</span></div></li>
- <li><div class="src-line"><a name="a239"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">) </span>|| <span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a240"></a> </div></li>
- <li><div class="src-line"><a name="a241"></a> <span class="src-comm">// Set the linked user ID and update the database record</span></div></li>
- <li><div class="src-line"><a name="a242"></a> <span class="src-var">$olduserid </span>= <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">userid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a243"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">userid </span>= <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a244"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">update_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a245"></a> <span class="src-comm">// The operation failed, so change the user ID back</span></div></li>
- <li><div class="src-line"><a name="a246"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">userid </span>= <span class="src-var">$olduserid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a247"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a248"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a249"></a> </div></li>
- <li><div class="src-line"><a name="a250"></a> </div></li>
- <li><div class="src-line"><a name="a251"></a> <span class="src-comm">// DATABASE FUNCTIONS //</span></div></li>
- <li><div class="src-line"><a name="a252"></a> </div></li>
- <li><div class="src-line"><a name="a253"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a254"></a><span class="src-doc"> * Deletes the current avatar from the database.</span></div></li>
- <li><div class="src-line"><a name="a255"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false on failure</span></div></li>
- <li><div class="src-line"><a name="a256"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a257"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a258"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methoddelete_avatar">delete_avatar</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a259"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a260"></a> <span class="src-comm">// Make sure we have avatar data</span></div></li>
- <li><div class="src-line"><a name="a261"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a262"></a> </div></li>
- <li><div class="src-line"><a name="a263"></a> <span class="src-comm">// Attempt to delete the record from the database</span></div></li>
- <li><div class="src-line"><a name="a264"></a> <span class="src-key">return </span><span class="src-id">delete_records</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-str">'id'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a265"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a266"></a> </div></li>
- <li><div class="src-line"><a name="a267"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a268"></a><span class="src-doc"> * Loads the specified avatar from the database.</span></div></li>
- <li><div class="src-line"><a name="a269"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$id </span><span class="src-doc">The ID of the avatar (type depends on VLE; integer for Moodle)</span></div></li>
- <li><div class="src-line"><a name="a270"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false otherwise.</span></div></li>
- <li><div class="src-line"><a name="a271"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a272"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a273"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodload_avatar_by_id">load_avatar_by_id</a><span class="src-sym">(</span><span class="src-var">$id</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a274"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a275"></a> <span class="src-comm">// Make sure the ID is valid</span></div></li>
- <li><div class="src-line"><a name="a276"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><a href="http://www.php.net/is_int">is_int</a><span class="src-sym">(</span><span class="src-var">$id</span><span class="src-sym">) </span>|| <span class="src-var">$id </span><= <span class="src-num">0</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a277"></a> <span class="src-comm">// Fetch the avatar data</span></div></li>
- <li><div class="src-line"><a name="a278"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <span class="src-id">get_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-str">'id'</span><span class="src-sym">, </span><span class="src-var">$id</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a279"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a280"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a281"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a282"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a283"></a> <span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a284"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a285"></a> </div></li>
- <li><div class="src-line"><a name="a286"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a287"></a><span class="src-doc"> * Finds an avatar with the given UUID and/or name, and loads its data.</span></div></li>
- <li><div class="src-line"><a name="a288"></a><span class="src-doc"> * The UUID is searched for first. If that is not found, then the name is used.</span></div></li>
- <li><div class="src-line"><a name="a289"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$uuid </span><span class="src-doc">The UUID of the avatar, or blank to search only by name.</span></div></li>
- <li><div class="src-line"><a name="a290"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$avname </span><span class="src-doc">The name of the avatar, or blank to search only by UUID.</span></div></li>
- <li><div class="src-line"><a name="a291"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false otherwise</span></div></li>
- <li><div class="src-line"><a name="a292"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a293"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a294"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodload_avatar">load_avatar</a><span class="src-sym">(</span><span class="src-var">$uuid</span><span class="src-sym">, </span><span class="src-var">$avname</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a295"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a296"></a> <span class="src-comm">// Both parameters can't be empty</span></div></li>
- <li><div class="src-line"><a name="a297"></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">$uuid</span><span class="src-sym">) </span>&& <span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$avname</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a298"></a> </div></li>
- <li><div class="src-line"><a name="a299"></a> <span class="src-comm">// Attempt to search by UUID first</span></div></li>
- <li><div class="src-line"><a name="a300"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$uuid</span><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a301"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <span class="src-id">get_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-str">'uuid'</span><span class="src-sym">, </span><span class="src-var">$uuid</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a302"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a303"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a304"></a> </div></li>
- <li><div class="src-line"><a name="a305"></a> <span class="src-comm">// Attempt to search by name</span></div></li>
- <li><div class="src-line"><a name="a306"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$avname</span><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a307"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <span class="src-id">get_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-str">'avname'</span><span class="src-sym">, </span><span class="src-var">$avname</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a308"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a309"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a310"></a> </div></li>
- <li><div class="src-line"><a name="a311"></a> <span class="src-comm">// The search failed</span></div></li>
- <li><div class="src-line"><a name="a312"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a313"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a314"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a315"></a> </div></li>
- <li><div class="src-line"><a name="a316"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a317"></a><span class="src-doc"> * Load the specified user from the database</span></div></li>
- <li><div class="src-line"><a name="a318"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$id </span><span class="src-doc">The unique identifier for the VLE user. (Type depends on VLE; integer for Moodle)</span></div></li>
- <li><div class="src-line"><a name="a319"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false on failure</span></div></li>
- <li><div class="src-line"><a name="a320"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a321"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a322"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodload_user">load_user</a><span class="src-sym">(</span><span class="src-var">$id</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a323"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a324"></a> <span class="src-comm">// Make sure the ID is valid</span></div></li>
- <li><div class="src-line"><a name="a325"></a> <span class="src-var">$id </span>= (int)<span class="src-var">$id</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a326"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$id </span><= <span class="src-num">0</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a327"></a> </div></li>
- <li><div class="src-line"><a name="a328"></a> <span class="src-comm">// Attempt to load the data</span></div></li>
- <li><div class="src-line"><a name="a329"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a> = <span class="src-id">get_complete_user_data</span><span class="src-sym">(</span><span class="src-str">'id'</span><span class="src-sym">, </span><span class="src-var">$id</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a330"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a331"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a332"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a333"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a334"></a> </div></li>
- <li><div class="src-line"><a name="a335"></a> </div></li>
- <li><div class="src-line"><a name="a336"></a> <span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a337"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a338"></a> </div></li>
- <li><div class="src-line"><a name="a339"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a340"></a><span class="src-doc"> * Uses the current avatar data to update the database.</span></div></li>
- <li><div class="src-line"><a name="a341"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false if the update fails</span></div></li>
- <li><div class="src-line"><a name="a342"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a343"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a344"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodwrite_avatar">write_avatar</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a345"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a346"></a> <span class="src-comm">// Make sure we have avatar data</span></div></li>
- <li><div class="src-line"><a name="a347"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">) </span>|| <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">id </span><= <span class="src-num">0</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a348"></a> <span class="src-comm">// Make the update</span></div></li>
- <li><div class="src-line"><a name="a349"></a> <span class="src-key">return </span><span class="src-id">update_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a350"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a351"></a> </div></li>
- <li><div class="src-line"><a name="a352"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a353"></a><span class="src-doc"> * Adds a new avatar to the database, and link it to the specified user.</span></div></li>
- <li><div class="src-line"><a name="a354"></a><span class="src-doc"> * If successful, it deletes any matching avatar details from pending users list.</span></div></li>
- <li><div class="src-line"><a name="a355"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$userid </span><span class="src-doc">Site-wide unique ID of a user (type depends on VLE; integer for Moodle)</span></div></li>
- <li><div class="src-line"><a name="a356"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$uuid </span><span class="src-doc">UUID of the avatar</span></div></li>
- <li><div class="src-line"><a name="a357"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$avname </span><span class="src-doc">Name of the avatar</span></div></li>
- <li><div class="src-line"><a name="a358"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false if not.</span></div></li>
- <li><div class="src-line"><a name="a359"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a360"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a361"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodadd_linked_avatar">add_linked_avatar</a><span class="src-sym">(</span><span class="src-var">$userid</span><span class="src-sym">, </span><span class="src-var">$uuid</span><span class="src-sym">, </span><span class="src-var">$avname</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a362"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a363"></a> <span class="src-comm">// Setup our object</span></div></li>
- <li><div class="src-line"><a name="a364"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <span class="src-key">new </span><span class="src-id">stdClass</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="a365"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">id </span>= <span class="src-num">0</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a366"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">userid </span>= <span class="src-var">$userid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a367"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">uuid </span>= <span class="src-var">$uuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a368"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">avname </span>= <span class="src-var">$avname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a369"></a> </div></li>
- <li><div class="src-line"><a name="a370"></a> <span class="src-comm">// Add the data to the database</span></div></li>
- <li><div class="src-line"><a name="a371"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">id </span>= <span class="src-id">insert_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a372"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a373"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a374"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a375"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a376"></a> </div></li>
- <li><div class="src-line"><a name="a377"></a> <span class="src-comm">// Delete any pending avatars with the same details</span></div></li>
- <li><div class="src-line"><a name="a378"></a> <span class="src-id">delete_records</span><span class="src-sym">(</span><span class="src-str">'sloodle_pending_avatars'</span><span class="src-sym">, </span><span class="src-str">'uuid'</span><span class="src-sym">, </span><span class="src-var">$uuid</span><span class="src-sym">, </span><span class="src-str">'avname'</span><span class="src-sym">, </span><span class="src-var">$avname</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a379"></a> </div></li>
- <li><div class="src-line"><a name="a380"></a> <span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a381"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a382"></a> </div></li>
- <li><div class="src-line"><a name="a383"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a384"></a><span class="src-doc"> * Adds a new unlinked avatar to the database (the entry is pending linking)</span></div></li>
- <li><div class="src-line"><a name="a385"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$uuid </span><span class="src-doc">UUID of the avatar</span></div></li>
- <li><div class="src-line"><a name="a386"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$avname </span><span class="src-doc">Name of the avatar</span></div></li>
- <li><div class="src-line"><a name="a387"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">int </span><span class="src-doc-var">$timestamp </span><span class="src-doc">The timestamp at which to mark the update (or null to use the current timestamp). Entries expire after a certain period.</span></div></li>
- <li><div class="src-line"><a name="a388"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">object</span><span class="src-doc">|</span><span class="src-doc-type">bool</span><span class="src-doc">Returns the database object if successul, or false if not.</span></div></li>
- <li><div class="src-line"><a name="a389"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a390"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a391"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodadd_pending_avatar">add_pending_avatar</a><span class="src-sym">(</span><span class="src-var">$uuid</span><span class="src-sym">, </span><span class="src-var">$avname</span><span class="src-sym">, </span><span class="src-var">$timestamp </span>= <span class="src-id">null</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a392"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a393"></a> <span class="src-comm">// Setup the timestamp</span></div></li>
- <li><div class="src-line"><a name="a394"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$timestamp </span>== <span class="src-id">null</span><span class="src-sym">) </span><span class="src-var">$timestamp </span>= <a href="http://www.php.net/time">time</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a395"></a> </div></li>
- <li><div class="src-line"><a name="a396"></a> <span class="src-comm">// Setup our object</span></div></li>
- <li><div class="src-line"><a name="a397"></a> <span class="src-var">$pending_avatar </span>= <span class="src-key">new </span><span class="src-id">stdClass</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="a398"></a> <span class="src-var">$pending_avatar</span><span class="src-sym">-></span><span class="src-id">id </span>= <span class="src-num">0</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a399"></a> <span class="src-var">$pending_avatar</span><span class="src-sym">-></span><span class="src-id">uuid </span>= <span class="src-var">$uuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a400"></a> <span class="src-var">$pending_avatar</span><span class="src-sym">-></span><span class="src-id">avname </span>= <span class="src-var">$avname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a401"></a> <span class="src-var">$pending_avatar</span><span class="src-sym">-></span><span class="src-id">lst </span>= <a href="../sloodle/_lib---general.php.html#functionsloodle_random_security_token">sloodle_random_security_token</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a402"></a> <span class="src-var">$pending_avatar</span><span class="src-sym">-></span><span class="src-id">timeupdated </span>= <span class="src-var">$timestamp</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a403"></a> </div></li>
- <li><div class="src-line"><a name="a404"></a> <span class="src-comm">// Add the data to the database</span></div></li>
- <li><div class="src-line"><a name="a405"></a> <span class="src-var">$pending_avatar</span><span class="src-sym">-></span><span class="src-id">id </span>= <span class="src-id">insert_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_pending_avatars'</span><span class="src-sym">, </span><span class="src-var">$pending_avatar</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a406"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$pending_avatar</span><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a407"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a408"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a409"></a> </div></li>
- <li><div class="src-line"><a name="a410"></a> <span class="src-key">return </span><span class="src-var">$pending_avatar</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a411"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a412"></a> </div></li>
- <li><div class="src-line"><a name="a413"></a> </div></li>
- <li><div class="src-line"><a name="a414"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a415"></a><span class="src-doc"> * Auto-register a new user account for the current avatar.</span></div></li>
- <li><div class="src-line"><a name="a416"></a><span class="src-doc"> * NOTE: this does NOT respect ANYTHING but the most basic Moodle accounts.</span></div></li>
- <li><div class="src-line"><a name="a417"></a><span class="src-doc"> * Use at your own risk!</span></div></li>
- <li><div class="src-line"><a name="a418"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">string</span><span class="src-doc">|</span><span class="src-doc-type">bool</span><span class="src-doc">The new password (plaintext) if successful, or false if not</span></div></li>
- <li><div class="src-line"><a name="a419"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a420"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a421"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodautoregister_avatar_user">autoregister_avatar_user</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a422"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a423"></a> <span class="src-key">global </span><span class="src-var">$CFG</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a424"></a> </div></li>
- <li><div class="src-line"><a name="a425"></a> <span class="src-comm">// Make sure we have avatar data, and reset the user data</span></div></li>
- <li><div class="src-line"><a name="a426"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a427"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a428"></a> </div></li>
- <li><div class="src-line"><a name="a429"></a> <span class="src-comm">// Construct a basic username</span></div></li>
- <li><div class="src-line"><a name="a430"></a> <span class="src-var">$nameparts </span>= <a href="http://www.php.net/explode">explode</a><span class="src-sym">(</span><span class="src-str">' '</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">avname</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a431"></a> <span class="src-var">$baseusername </span>= <a href="http://www.php.net/strip_tags">strip_tags</a><span class="src-sym">(</span><a href="http://www.php.net/stripslashes">stripslashes</a><span class="src-sym">(</span><a href="http://www.php.net/implode">implode</a><span class="src-sym">(</span><span class="src-str">''</span><span class="src-sym">, </span><span class="src-var">$nameparts</span><span class="src-sym">)))</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a432"></a> <span class="src-var">$username </span>= <span class="src-var">$baseusername</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a433"></a> <span class="src-var">$conflict_moodle </span>= <span class="src-id">record_exists</span><span class="src-sym">(</span><span class="src-str">'user'</span><span class="src-sym">, </span><span class="src-str">'username'</span><span class="src-sym">, </span><span class="src-var">$username</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a434"></a> </div></li>
- <li><div class="src-line"><a name="a435"></a> <span class="src-comm">// If that didn't work, then try a few random variants (just a number added to the end of the name)</span></div></li>
- <li><div class="src-line"><a name="a436"></a> <span class="src-var">$MAX_RANDOM_TRIES </span>= <span class="src-num">3</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a437"></a> <span class="src-var">$rnd_try </span>= <span class="src-num">0</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a438"></a> <span class="src-key">while </span><span class="src-sym">(</span><span class="src-var">$rnd_try </span>< <span class="src-var">$MAX_RANDOM_TRIES </span>&& <span class="src-var">$conflict_moodle</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a439"></a> <span class="src-comm">// Pick a random 3 digit number</span></div></li>
- <li><div class="src-line"><a name="a440"></a> <span class="src-var">$rnd_num </span>= <a href="http://www.php.net/mt_rand">mt_rand</a><span class="src-sym">(</span><span class="src-num">100</span><span class="src-sym">, </span><span class="src-num">998</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a441"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$rnd_num </span>>= <span class="src-num">666</span><span class="src-sym">) </span><span class="src-var">$rnd_num</span>++<span class="src-sym">; </span><span class="src-comm">// Some users may object to this number</span></div></li>
- <li><div class="src-line"><a name="a442"></a> </div></li>
- <li><div class="src-line"><a name="a443"></a> <span class="src-comm">// Construct a new username to try</span></div></li>
- <li><div class="src-line"><a name="a444"></a> <span class="src-var">$username </span>= <span class="src-var">$baseusername </span>. (string)<span class="src-var">$rnd_num</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a445"></a> <span class="src-comm">// Check for conflicts</span></div></li>
- <li><div class="src-line"><a name="a446"></a> <span class="src-var">$conflict_moodle </span>= <span class="src-id">record_exists</span><span class="src-sym">(</span><span class="src-str">'user'</span><span class="src-sym">, </span><span class="src-str">'username'</span><span class="src-sym">, </span><span class="src-var">$username</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a447"></a> </div></li>
- <li><div class="src-line"><a name="a448"></a> <span class="src-comm">// Next attempt</span></div></li>
- <li><div class="src-line"><a name="a449"></a> <span class="src-var">$rnd_try</span>++<span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a450"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a451"></a> </div></li>
- <li><div class="src-line"><a name="a452"></a> <span class="src-comm">// Stop if we haven't found a unique name</span></div></li>
- <li><div class="src-line"><a name="a453"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$conflict_moodle</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a454"></a> </div></li>
- <li><div class="src-line"><a name="a455"></a> <span class="src-comm">// Looks like we got an OK username</span></div></li>
- <li><div class="src-line"><a name="a456"></a> <span class="src-comm">// Generate a random password</span></div></li>
- <li><div class="src-line"><a name="a457"></a> <span class="src-var">$plain_password </span>= <a href="../sloodle/_lib---general.php.html#functionsloodle_random_web_password">sloodle_random_web_password</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a458"></a> </div></li>
- <li><div class="src-line"><a name="a459"></a> <span class="src-comm">// Create the new user</span></div></li>
- <li><div class="src-line"><a name="a460"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a> = <span class="src-id">create_user_record</span><span class="src-sym">(</span><span class="src-var">$username</span><span class="src-sym">, </span><span class="src-var">$plain_password</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a461"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a462"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a463"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a464"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a465"></a> </div></li>
- <li><div class="src-line"><a name="a466"></a> <span class="src-comm">// Get the complete user data again, so that we have the password this time</span></div></li>
- <li><div class="src-line"><a name="a467"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a> = <span class="src-id">get_complete_user_data</span><span class="src-sym">(</span><span class="src-str">'id'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a468"></a> </div></li>
- <li><div class="src-line"><a name="a469"></a> <span class="src-comm">// Attempt to use the first and last names of the avatar</span></div></li>
- <li><div class="src-line"><a name="a470"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">firstname </span>= <span class="src-var">$nameparts</span><span class="src-sym">[</span><span class="src-num">0</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a471"></a> <span class="src-key">if </span><span class="src-sym">(</span>isset<span class="src-sym">(</span><span class="src-var">$nameparts</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-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">lastname </span>= <span class="src-var">$nameparts</span><span class="src-sym">[</span><span class="src-num">1</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a472"></a> <span class="src-key">else </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">lastname </span>= <span class="src-var">$nameparts</span><span class="src-sym">[</span><span class="src-num">0</span><span class="src-sym">]</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a473"></a> <span class="src-comm">// Prevent emails from being sent to this user</span></div></li>
- <li><div class="src-line"><a name="a474"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">emailstop </span>= <span class="src-num">1</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a475"></a> </div></li>
- <li><div class="src-line"><a name="a476"></a> <span class="src-comm">// Attempt to update the database (we don't really care if this fails, since everything else will have worked)</span></div></li>
- <li><div class="src-line"><a name="a477"></a> <span class="src-id">update_record</span><span class="src-sym">(</span><span class="src-str">'user'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a478"></a> </div></li>
- <li><div class="src-line"><a name="a479"></a> <span class="src-comm">// Now link the avatar to this account</span></div></li>
- <li><div class="src-line"><a name="a480"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">userid </span>= <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a481"></a> <span class="src-id">update_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a482"></a> </div></li>
- <li><div class="src-line"><a name="a483"></a> <span class="src-key">return </span><span class="src-var">$plain_password</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a484"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a485"></a> </div></li>
- <li><div class="src-line"><a name="a486"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a487"></a><span class="src-doc"> * Load the avatar linked to the current user.</span></div></li>
- <li><div class="src-line"><a name="a488"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool,string </span><span class="src-doc">True if a link was loaded, false if there was no link, or string 'multi' if multiple avatars are linked</span></div></li>
- <li><div class="src-line"><a name="a489"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a490"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a491"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodload_linked_avatar">load_linked_avatar</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a492"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a493"></a> <span class="src-comm">// Make sure we have some user data</span></div></li>
- <li><div class="src-line"><a name="a494"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a495"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <span class="src-id">null</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a496"></a> </div></li>
- <li><div class="src-line"><a name="a497"></a> <span class="src-comm">// Fetch all avatar records which are linked to the user</span></div></li>
- <li><div class="src-line"><a name="a498"></a> <span class="src-var">$recs </span>= <span class="src-id">get_records</span><span class="src-sym">(</span><span class="src-str">'sloodle_users'</span><span class="src-sym">, </span><span class="src-str">'userid'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a499"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><a href="http://www.php.net/is_array">is_array</a><span class="src-sym">(</span><span class="src-var">$recs</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a500"></a> <span class="src-key">if </span><span class="src-sym">(</span><a href="http://www.php.net/count">count</a><span class="src-sym">(</span><span class="src-var">$recs</span><span class="src-sym">) </span>> <span class="src-num">1</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-str">'multi'</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a501"></a> </div></li>
- <li><div class="src-line"><a name="a502"></a> <span class="src-comm">// Store the avatar data</span></div></li>
- <li><div class="src-line"><a name="a503"></a> <a href="http://www.php.net/reset">reset</a><span class="src-sym">(</span><span class="src-var">$recs</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a504"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a> = <a href="http://www.php.net/current">current</a><span class="src-sym">(</span><span class="src-var">$recs</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a505"></a> <span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a506"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a507"></a> </div></li>
- <li><div class="src-line"><a name="a508"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a509"></a><span class="src-doc"> * Find the VLE user linked to the current avatar.</span></div></li>
- <li><div class="src-line"><a name="a510"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false if no link was found</span></div></li>
- <li><div class="src-line"><a name="a511"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a512"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a513"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodload_linked_user">load_linked_user</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a514"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a515"></a> <span class="src-comm">// Make sure we have some avatar data</span></div></li>
- <li><div class="src-line"><a name="a516"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a517"></a> </div></li>
- <li><div class="src-line"><a name="a518"></a> <span class="src-comm">// Fetch the user data</span></div></li>
- <li><div class="src-line"><a name="a519"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a> = <span class="src-id">get_complete_user_data</span><span class="src-sym">(</span><span class="src-str">'id'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$avatar_data">avatar_data</a><span class="src-sym">-></span><span class="src-id">userid</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a520"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a521"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a522"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a523"></a> </div></li>
- <li><div class="src-line"><a name="a524"></a> </div></li>
- <li><div class="src-line"><a name="a525"></a> <span class="src-comm">///// LOGIN FUNCTIONS /////</span></div></li>
- <li><div class="src-line"><a name="a526"></a> </div></li>
- <li><div class="src-line"><a name="a527"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a528"></a><span class="src-doc"> * Internally 'log-in' the current user.</span></div></li>
- <li><div class="src-line"><a name="a529"></a><span class="src-doc"> * In Moodle, this just stores all the user data in the global $USER variable.</span></div></li>
- <li><div class="src-line"><a name="a530"></a><span class="src-doc"> * This function will not perform automatic registration.</span></div></li>
- <li><div class="src-line"><a name="a531"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false otherwise.</span></div></li>
- <li><div class="src-line"><a name="a532"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a533"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a534"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodlogin">login</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a535"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a536"></a> <span class="src-key">global </span><span class="src-var">$USER</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a537"></a> <span class="src-comm">// Make sure we have some user data</span></div></li>
- <li><div class="src-line"><a name="a538"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a539"></a> <span class="src-var">$USER </span>= <span class="src-id">get_complete_user_data</span><span class="src-sym">(</span><span class="src-str">'id'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a540"></a> <span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a541"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a542"></a> </div></li>
- <li><div class="src-line"><a name="a543"></a> </div></li>
- <li><div class="src-line"><a name="a544"></a> <span class="src-comm">///// COURSE FUNCTIONS /////</span></div></li>
- <li><div class="src-line"><a name="a545"></a> </div></li>
- <li><div class="src-line"><a name="a546"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a547"></a><span class="src-doc"> * Gets a numeric array of </span><span class="src-doc-inlinetag">{@link SloodleCourse}</span><span class="src-doc"> objects for courses the user is enrolled in.</span></div></li>
- <li><div class="src-line"><a name="a548"></a><span class="src-doc"> * WARNING: this function is not very efficient, and will likely be very slow on large sites.</span></div></li>
- <li><div class="src-line"><a name="a549"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$category </span><span class="src-doc">Unique identifier of a category to limit the query to. Ignored if null. (Type depends on VLE; integer for Moodle)</span></div></li>
- <li><div class="src-line"><a name="a550"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">array </span><span class="src-doc">A numeric array of </span><span class="src-doc-inlinetag">{@link SloodleCourse}</span><span class="src-doc"> objects</span></div></li>
- <li><div class="src-line"><a name="a551"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a552"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a553"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_enrolled_courses">get_enrolled_courses</a><span class="src-sym">(</span><span class="src-var">$category </span>= <span class="src-id">null</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a554"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a555"></a> <span class="src-comm">// Make sure we have user data</span></div></li>
- <li><div class="src-line"><a name="a556"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-key">array</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="a557"></a> <span class="src-comm">// If it is the guess user, then they are not enrolled at all</span></div></li>
- <li><div class="src-line"><a name="a558"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">isguestuser</span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-key">array</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="a559"></a> </div></li>
- <li><div class="src-line"><a name="a560"></a> <span class="src-comm">// Convert the category ID as appropriate</span></div></li>
- <li><div class="src-line"><a name="a561"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$category </span>== <span class="src-id">null </span>|| <span class="src-var">$category </span>< <span class="src-num">0 </span>|| <span class="src-sym">!</span><a href="http://www.php.net/is_int">is_int</a><span class="src-sym">(</span><span class="src-var">$category</span><span class="src-sym">)) </span><span class="src-var">$category </span>= <span class="src-num">0</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a562"></a> </div></li>
- <li><div class="src-line"><a name="a563"></a> <span class="src-comm">// Modified from "get_user_capability_course()" in Moodle's "lib/accesslib.php"</span></div></li>
- <li><div class="src-line"><a name="a564"></a> </div></li>
- <li><div class="src-line"><a name="a565"></a> <span class="src-comm">// Get a list of all courses on the system</span></div></li>
- <li><div class="src-line"><a name="a566"></a> <span class="src-var">$usercourses </span>= <span class="src-key">array</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="a567"></a> <span class="src-var">$courses </span>= <span class="src-id">get_courses</span><span class="src-sym">(</span><span class="src-var">$category</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a568"></a> <span class="src-comm">// Go through each course</span></div></li>
- <li><div class="src-line"><a name="a569"></a> <span class="src-key">foreach </span><span class="src-sym">(</span><span class="src-var">$courses </span><span class="src-key">as </span><span class="src-var">$course</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a570"></a> <span class="src-comm">// Check if the user can view this course and is not a guest in it.</span></div></li>
- <li><div class="src-line"><a name="a571"></a> <span class="src-comm">// (Note: the site course is always available to all users.)</span></div></li>
- <li><div class="src-line"><a name="a572"></a> <span class="src-var">$course_context </span>= <span class="src-id">get_context_instance</span><span class="src-sym">(</span><span class="src-id">CONTEXT_COURSE</span><span class="src-sym">, </span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a573"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">id </span>== <span class="src-id">SITEID </span>|| <span class="src-sym">(</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'moodle/course:view'</span><span class="src-sym">, </span><span class="src-var">$course_context</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">) </span>&& <span class="src-sym">!</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'moodle/legacy:guest'</span><span class="src-sym">, </span><span class="src-var">$course_context</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">, </span><span class="src-id">false</span><span class="src-sym">))) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a574"></a> <span class="src-var">$sc </span>= <span class="src-key">new </span><span class="src-id"><a href="../sloodle/SloodleCourse.html">SloodleCourse</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="a575"></a> <span class="src-var">$sc</span><span class="src-sym">-></span><span class="src-id">load</span><span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a576"></a> <span class="src-var">$usercourses</span><span class="src-sym">[</span><span class="src-sym">] </span>= <span class="src-var">$sc</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a577"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a578"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a579"></a> <span class="src-key">return </span><span class="src-var">$usercourses</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a580"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a581"></a> </div></li>
- <li><div class="src-line"><a name="a582"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a583"></a><span class="src-doc"> * Gets a numeric array of </span><span class="src-doc-inlinetag">{@link SloodleCourse}</span><span class="src-doc"> objects for courses the user is Sloodle staff.</span></div></li>
- <li><div class="src-line"><a name="a584"></a><span class="src-doc"> * This relates to the "mod/sloodle:staff" capability.</span></div></li>
- <li><div class="src-line"><a name="a585"></a><span class="src-doc"> * WARNING: this function is not very efficient, and will likely be very slow on large sites.</span></div></li>
- <li><div class="src-line"><a name="a586"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$category </span><span class="src-doc">Unique identifier of a category to limit the query to. Ignored if null. (Type depends on VLE; integer for Moodle)</span></div></li>
- <li><div class="src-line"><a name="a587"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">array </span><span class="src-doc">A numeric array of </span><span class="src-doc-inlinetag">{@link SloodleCourse}</span><span class="src-doc"> objects</span></div></li>
- <li><div class="src-line"><a name="a588"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a589"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a590"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_staff_courses">get_staff_courses</a><span class="src-sym">(</span><span class="src-var">$category </span>= <span class="src-id">null</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a591"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a592"></a> <span class="src-comm">// Make sure we have user data</span></div></li>
- <li><div class="src-line"><a name="a593"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-key">array</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="a594"></a> </div></li>
- <li><div class="src-line"><a name="a595"></a> <span class="src-comm">// Convert the category ID as appropriate</span></div></li>
- <li><div class="src-line"><a name="a596"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$category </span>== <span class="src-id">null </span>|| <span class="src-var">$category </span>< <span class="src-num">0 </span>|| <span class="src-sym">!</span><a href="http://www.php.net/is_int">is_int</a><span class="src-sym">(</span><span class="src-var">$category</span><span class="src-sym">)) </span><span class="src-var">$category </span>= <span class="src-num">0</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a597"></a> </div></li>
- <li><div class="src-line"><a name="a598"></a> <span class="src-comm">// Modified from "get_user_capability_course()" in Moodle's "lib/accesslib.php"</span></div></li>
- <li><div class="src-line"><a name="a599"></a> </div></li>
- <li><div class="src-line"><a name="a600"></a> <span class="src-comm">// Get a list of all courses on the system</span></div></li>
- <li><div class="src-line"><a name="a601"></a> <span class="src-var">$usercourses </span>= <span class="src-key">array</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="a602"></a> <span class="src-var">$courses </span>= <span class="src-id">get_courses</span><span class="src-sym">(</span><span class="src-var">$category</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a603"></a> <span class="src-comm">// Go through each course</span></div></li>
- <li><div class="src-line"><a name="a604"></a> <span class="src-key">foreach </span><span class="src-sym">(</span><span class="src-var">$courses </span><span class="src-key">as </span><span class="src-var">$course</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a605"></a> <span class="src-comm">// Check if the user can teach using Sloodle on this course</span></div></li>
- <li><div class="src-line"><a name="a606"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'mod/sloodle:staff'</span><span class="src-sym">, </span><span class="src-id">get_context_instance</span><span class="src-sym">(</span><span class="src-id">CONTEXT_COURSE</span><span class="src-sym">, </span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a607"></a> <span class="src-var">$sc </span>= <span class="src-key">new </span><span class="src-id"><a href="../sloodle/SloodleCourse.html">SloodleCourse</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="a608"></a> <span class="src-var">$sc</span><span class="src-sym">-></span><span class="src-id">load</span><span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a609"></a> <span class="src-var">$usercourses</span><span class="src-sym">[</span><span class="src-sym">] </span>= <span class="src-var">$sc</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a610"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a611"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a612"></a> <span class="src-key">return </span><span class="src-var">$usercourses</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a613"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a614"></a> </div></li>
- <li><div class="src-line"><a name="a615"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a616"></a><span class="src-doc"> * Is the current user enrolled in the specified course?</span></div></li>
- <li><div class="src-line"><a name="a617"></a><span class="src-doc"> * NOTE: a side effect of this is that it logs-in the user</span></div></li>
- <li><div class="src-line"><a name="a618"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$course </span><span class="src-doc">Unique identifier of the course -- type depends on VLE (integer for Moodle)</span></div></li>
- <li><div class="src-line"><a name="a619"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">bool </span><span class="src-doc">True if the user is enrolled, or false if not.</span></div></li>
- <li><div class="src-line"><a name="a620"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a621"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@todo</span><span class="src-doc"> Update to match parameter format and handling of </span><span class="src-doc-inlinetag">{@link enrol()}</span><span class="src-doc"> function.</span></div></li>
- <li><div class="src-line"><a name="a622"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a623"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodis_enrolled">is_enrolled</a><span class="src-sym">(</span><span class="src-var">$courseid</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a624"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a625"></a> <span class="src-key">global </span><span class="src-var">$USER</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a626"></a> <span class="src-comm">// Attempt to log-in the user</span></div></li>
- <li><div class="src-line"><a name="a627"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodlogin">login</a><span class="src-sym">(</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a628"></a> </div></li>
- <li><div class="src-line"><a name="a629"></a> <span class="src-comm">// NOTE: this stuff was lifted from the Moodle 1.8 "course/enrol.php" script</span></div></li>
- <li><div class="src-line"><a name="a630"></a> </div></li>
- <li><div class="src-line"><a name="a631"></a> <span class="src-comm">// Create a context for this course</span></div></li>
- <li><div class="src-line"><a name="a632"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$context </span>= <span class="src-id">get_context_instance</span><span class="src-sym">(</span><span class="src-id">CONTEXT_COURSE</span><span class="src-sym">, </span><span class="src-var">$courseid</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a633"></a> <span class="src-comm">// Ensure we have up-to-date capabilities for the current user</span></div></li>
- <li><div class="src-line"><a name="a634"></a> <span class="src-id">load_all_capabilities</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="a635"></a> </div></li>
- <li><div class="src-line"><a name="a636"></a> <span class="src-comm">// Check if the user can view the course, and does not simply have guest access to it</span></div></li>
- <li><div class="src-line"><a name="a637"></a> <span class="src-comm">// Allow the site course</span></div></li>
- <li><div class="src-line"><a name="a638"></a> <span class="src-key">return </span><span class="src-sym">(</span><span class="src-var">$courseid </span>== <span class="src-id">SITEID </span>|| <span class="src-sym">(</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'moodle/course:view'</span><span class="src-sym">, </span><span class="src-var">$context</span><span class="src-sym">) </span>&& <span class="src-sym">!</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'moodle/legacy:guest'</span><span class="src-sym">, </span><span class="src-var">$context</span><span class="src-sym">, </span><span class="src-id">NULL</span><span class="src-sym">, </span><span class="src-id">false</span><span class="src-sym">)))</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a639"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a640"></a> </div></li>
- <li><div class="src-line"><a name="a641"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a642"></a><span class="src-doc"> * Is the current user Sloodle staff in the specified course?</span></div></li>
- <li><div class="src-line"><a name="a643"></a><span class="src-doc"> * NOTE: a side effect of this is that it logs-in the user</span></div></li>
- <li><div class="src-line"><a name="a644"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">mixed </span><span class="src-doc-var">$course </span><span class="src-doc">Unique identifier of the course -- type depends on VLE (integer for Moodle)</span></div></li>
- <li><div class="src-line"><a name="a645"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">bool </span><span class="src-doc">True if the user is staff, or false if not.</span></div></li>
- <li><div class="src-line"><a name="a646"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a647"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@todo</span><span class="src-doc"> Update to match parameter format and handling of </span><span class="src-doc-inlinetag">{@link enrol()}</span><span class="src-doc"> function.</span></div></li>
- <li><div class="src-line"><a name="a648"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a649"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodis_staff">is_staff</a><span class="src-sym">(</span><span class="src-var">$courseid</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a650"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a651"></a> <span class="src-key">global </span><span class="src-var">$USER</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a652"></a> <span class="src-comm">// Attempt to log-in the user</span></div></li>
- <li><div class="src-line"><a name="a653"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodlogin">login</a><span class="src-sym">(</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a654"></a> </div></li>
- <li><div class="src-line"><a name="a655"></a> <span class="src-comm">// NOTE: this stuff was lifted from the Moodle 1.8 "course/enrol.php" script</span></div></li>
- <li><div class="src-line"><a name="a656"></a> </div></li>
- <li><div class="src-line"><a name="a657"></a> <span class="src-comm">// Create a context for this course</span></div></li>
- <li><div class="src-line"><a name="a658"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$context </span>= <span class="src-id">get_context_instance</span><span class="src-sym">(</span><span class="src-id">CONTEXT_COURSE</span><span class="src-sym">, </span><span class="src-var">$courseid</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a659"></a> <span class="src-comm">// Ensure we have up-to-date capabilities for the current user</span></div></li>
- <li><div class="src-line"><a name="a660"></a> <span class="src-id">load_all_capabilities</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="a661"></a> </div></li>
- <li><div class="src-line"><a name="a662"></a> <span class="src-comm">// Check if the user can view the course, does not simply have guest access to it, *and* is staff</span></div></li>
- <li><div class="src-line"><a name="a663"></a> <span class="src-key">return </span><span class="src-sym">(</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'moodle/course:view'</span><span class="src-sym">, </span><span class="src-var">$context</span><span class="src-sym">) </span>&& <span class="src-sym">!</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'moodle/legacy:guest'</span><span class="src-sym">, </span><span class="src-var">$context</span><span class="src-sym">, </span><span class="src-id">NULL</span><span class="src-sym">, </span><span class="src-id">false</span><span class="src-sym">) </span>&& <span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'mod/sloodle:staff'</span><span class="src-sym">, </span><span class="src-var">$context</span><span class="src-sym">))</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a664"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a665"></a> </div></li>
- <li><div class="src-line"><a name="a666"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a667"></a><span class="src-doc"> * Enrols the current user in the specified course</span></div></li>
- <li><div class="src-line"><a name="a668"></a><span class="src-doc"> * NOTE: a side effect of this is that it logs-in the user</span></div></li>
- <li><div class="src-line"><a name="a669"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">object </span><span class="src-doc-var">$sloodle_course </span><span class="src-doc">A </span><span class="src-doc-inlinetag">{@link SloodleCourse}</span><span class="src-doc"> object setup for the necessary course. If null, then the </span><span class="src-doc-inlinetag">{@link $_session}</span><span class="src-doc"> member is queried instead.</span></div></li>
- <li><div class="src-line"><a name="a670"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful (or the user was already enrolled), or false otherwise</span></div></li>
- <li><div class="src-line"><a name="a671"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@access</span><span class="src-doc"> public</span></div></li>
- <li><div class="src-line"><a name="a672"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a673"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodenrol">enrol</a><span class="src-sym">(</span><span class="src-var">$sloodle_course </span>= <span class="src-id">null</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a674"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a675"></a> <span class="src-key">global </span><span class="src-var">$USER</span><span class="src-sym">, </span><span class="src-var">$CFG</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a676"></a> <span class="src-comm">// Attempt to log-in the user</span></div></li>
- <li><div class="src-line"><a name="a677"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodlogin">login</a><span class="src-sym">(</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a678"></a> </div></li>
- <li><div class="src-line"><a name="a679"></a> <span class="src-comm">// Was course data provided?</span></div></li>
- <li><div class="src-line"><a name="a680"></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">$sloodle_course</span><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a681"></a> <span class="src-comm">// No - attempt to get some from the Sloodle session</span></div></li>
- <li><div class="src-line"><a name="a682"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$_session">_session</a><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a683"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$_session">_session</a><span class="src-sym">-></span><span class="src-id">course</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a684"></a> <span class="src-var">$sloodle_course </span>= <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$_session">_session</a><span class="src-sym">-></span><span class="src-id">course</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a685"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a686"></a> </div></li>
- <li><div class="src-line"><a name="a687"></a> <span class="src-comm">// NOTE: much of this stuff was lifted from the Moodle 1.8 "course/enrol.php" script</span></div></li>
- <li><div class="src-line"><a name="a688"></a> </div></li>
- <li><div class="src-line"><a name="a689"></a> <span class="src-comm">// Fetch the Moodle course data, and a course context</span></div></li>
- <li><div class="src-line"><a name="a690"></a> <span class="src-var">$course </span>= <span class="src-var">$sloodle_course</span><span class="src-sym">-></span><span class="src-id">get_course_object</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="a691"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$context </span>= <span class="src-id">get_context_instance</span><span class="src-sym">(</span><span class="src-id">CONTEXT_COURSE</span><span class="src-sym">, </span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a692"></a> </div></li>
- <li><div class="src-line"><a name="a693"></a> <span class="src-comm">// Ensure we have up-to-date capabilities for the current user</span></div></li>
- <li><div class="src-line"><a name="a694"></a> <span class="src-id">load_all_capabilities</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="a695"></a> </div></li>
- <li><div class="src-line"><a name="a696"></a> <span class="src-comm">// Check if the user can view the course, and does not simply have guest access to it</span></div></li>
- <li><div class="src-line"><a name="a697"></a> <span class="src-comm">// (No point trying to enrol somebody if they are already enrolled!)</span></div></li>
- <li><div class="src-line"><a name="a698"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'moodle/course:view'</span><span class="src-sym">, </span><span class="src-var">$context</span><span class="src-sym">) </span>&& <span class="src-sym">!</span><span class="src-id">has_capability</span><span class="src-sym">(</span><span class="src-str">'moodle/legacy:guest'</span><span class="src-sym">, </span><span class="src-var">$context</span><span class="src-sym">, </span><span class="src-id">NULL</span><span class="src-sym">, </span><span class="src-id">false</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a699"></a> </div></li>
- <li><div class="src-line"><a name="a700"></a> <span class="src-comm">// Make sure auto-registration is enabled for this site/course, and that the controller (if applicable) is enabled</span></div></li>
- <li><div class="src-line"><a name="a701"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$sloodle_course</span><span class="src-sym">-></span><span class="src-id">check_autoreg</span><span class="src-sym">(</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">; </span></div></li>
- <li><div class="src-line"><a name="a702"></a> </div></li>
- <li><div class="src-line"><a name="a703"></a> <span class="src-comm">// Can't enrol users on meta courses or the site course</span></div></li>
- <li><div class="src-line"><a name="a704"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">metacourse </span>|| <span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">id </span>== <span class="src-id">SITEID</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a705"></a> </div></li>
- <li><div class="src-line"><a name="a706"></a> <span class="src-comm">// Is there an enrolment period in effect?</span></div></li>
- <li><div class="src-line"><a name="a707"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">enrolperiod</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a708"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$roles </span>= <span class="src-id">get_user_roles</span><span class="src-sym">(</span><span class="src-var">$context</span><span class="src-sym">, </span><span class="src-var">$USER</span><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a709"></a> <span class="src-key">foreach </span><span class="src-sym">(</span><span class="src-var">$roles </span><span class="src-key">as </span><span class="src-var">$role</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a710"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$role</span><span class="src-sym">-></span><span class="src-id">timestart </span>&& <span class="src-sym">(</span><span class="src-var">$role</span><span class="src-sym">-></span><span class="src-id">timestart </span>>= <a href="http://www.php.net/time">time</a><span class="src-sym">(</span><span class="src-sym">))) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a711"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a712"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a713"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a714"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a715"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a716"></a> <span class="src-comm">// Make sure the course is enrollable</span></div></li>
- <li><div class="src-line"><a name="a717"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">enrollable </span>||</div></li>
- <li><div class="src-line"><a name="a718"></a> <span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">enrollable </span>== <span class="src-num">2 </span>&& <span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">enrolstartdate </span>> <span class="src-num">0 </span>&& <span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">enrolstartdate </span>> <a href="http://www.php.net/time">time</a><span class="src-sym">(</span><span class="src-sym">)) </span>||</div></li>
- <li><div class="src-line"><a name="a719"></a> <span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">enrollable </span>== <span class="src-num">2 </span>&& <span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">enrolenddate </span>> <span class="src-num">0 </span>&& <span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">enrolenddate </span><= <a href="http://www.php.net/time">time</a><span class="src-sym">(</span><span class="src-sym">))</span></div></li>
- <li><div class="src-line"><a name="a720"></a> <span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a721"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a722"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a723"></a> </div></li>
- <li><div class="src-line"><a name="a724"></a> <span class="src-comm">// Finally, after all that, enrol the user</span></div></li>
- <li><div class="src-line"><a name="a725"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-id">enrol_into_course</span><span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">, </span><span class="src-var">$USER</span><span class="src-sym">, </span><span class="src-str">'manual'</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a726"></a> </div></li>
- <li><div class="src-line"><a name="a727"></a> <span class="src-comm">// Everything seems fine</span></div></li>
- <li><div class="src-line"><a name="a728"></a> <span class="src-comm">// Log the auto-enrolment</span></div></li>
- <li><div class="src-line"><a name="a729"></a> <span class="src-id">add_to_log</span><span class="src-sym">(</span><span class="src-var">$course</span><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">, </span><span class="src-str">'sloodle'</span><span class="src-sym">, </span><span class="src-str">'update'</span><span class="src-sym">, </span><span class="src-str">''</span><span class="src-sym">, </span><span class="src-str">'auto-enrolment'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a730"></a> <span class="src-key">return </span><span class="src-id">true</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a731"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a732"></a> </div></li>
- <li><div class="src-line"><a name="a733"></a> </div></li>
- <li><div class="src-line"><a name="a734"></a> <span class="src-comm">///// PASSWORD /////</span></div></li>
- <li><div class="src-line"><a name="a735"></a> </div></li>
- <li><div class="src-line"><a name="a736"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a737"></a><span class="src-doc"> * Resets the user's password</span></div></li>
- <li><div class="src-line"><a name="a738"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">bool </span><span class="src-doc-var">$require </span><span class="src-doc">If true, then the script will be terminated if the operation fails</span></div></li>
- <li><div class="src-line"><a name="a739"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">string</span><span class="src-doc">|</span><span class="src-doc-type">bool</span><span class="src-doc">The new password if successful, or false otherwise (if $require was false).</span></div></li>
- <li><div class="src-line"><a name="a740"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a741"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodreset_password">reset_password</a><span class="src-sym">(</span><span class="src-var">$require </span>= <span class="src-id">true</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a742"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a743"></a> <span class="src-comm">// Check that the user is loaded</span></div></li>
- <li><div class="src-line"><a name="a744"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a745"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$require</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a746"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$_session">_session</a><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">quick_output</span><span class="src-sym">(</span>-<span class="src-num">301</span><span class="src-sym">, </span><span class="src-str">'USER_AUTH'</span><span class="src-sym">, </span><span class="src-str">'User data not loaded'</span><span class="src-sym">, </span><span class="src-id">false</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a747"></a> <span class="src-key">exit</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="a748"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a749"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a750"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a751"></a> <span class="src-comm">// If the user has an email address on file, then we can't reset the password</span></div></li>
- <li><div class="src-line"><a name="a752"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">email</span><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a753"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$require</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a754"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$_session">_session</a><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">quick_output</span><span class="src-sym">(</span>-<span class="src-num">341</span><span class="src-sym">, </span><span class="src-str">'USER_AUTH'</span><span class="src-sym">, </span><span class="src-str">'User has email address in database. Cannot use Sloodle password reset.'</span><span class="src-sym">, </span><span class="src-id">false</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a755"></a> <span class="src-key">exit</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="a756"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a757"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a758"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a759"></a> </div></li>
- <li><div class="src-line"><a name="a760"></a> <span class="src-comm">// Generate a new random password</span></div></li>
- <li><div class="src-line"><a name="a761"></a> <span class="src-var">$password </span>= <a href="../sloodle/_lib---general.php.html#functionsloodle_random_web_password">sloodle_random_web_password</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a762"></a> <span class="src-comm">// Update the user's password data</span></div></li>
- <li><div class="src-line"><a name="a763"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-id">update_internal_user_password</span><span class="src-sym">(</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">, </span><span class="src-var">$password</span><span class="src-sym">)) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a764"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-var">$require</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a765"></a> <span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$_session">_session</a><span class="src-sym">-></span><span class="src-id">response</span><span class="src-sym">-></span><span class="src-id">quick_output</span><span class="src-sym">(</span>-<span class="src-num">103</span><span class="src-sym">, </span><span class="src-str">'SYSTEM'</span><span class="src-sym">, </span><span class="src-str">'Failed to update user password'</span><span class="src-sym">, </span><span class="src-id">false</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a766"></a> <span class="src-key">exit</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="a767"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a768"></a> <span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a769"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a770"></a> </div></li>
- <li><div class="src-line"><a name="a771"></a> <span class="src-key">return </span><span class="src-var">$password</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a772"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a773"></a> </div></li>
- <li><div class="src-line"><a name="a774"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a775"></a><span class="src-doc"> * If the system is waiting to send a password notification to this user, then remove it</span></div></li>
- <li><div class="src-line"><a name="a776"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></div></li>
- <li><div class="src-line"><a name="a777"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a778"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodpurge_password_notifications">purge_password_notifications</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a779"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a780"></a> <span class="src-comm">// Check that the user is loaded</span></div></li>
- <li><div class="src-line"><a name="a781"></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">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">)) </span><span class="src-key">return</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a782"></a> <span class="src-comm">// Delete the database entries</span></div></li>
- <li><div class="src-line"><a name="a783"></a> <span class="src-id">delete_records</span><span class="src-sym">(</span><span class="src-str">'sloodle_login_notifications'</span><span class="src-sym">, </span><span class="src-str">'username'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#var$user_data">user_data</a><span class="src-sym">-></span><span class="src-id">username</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a784"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a785"></a> </div></li>
- <li><div class="src-line"><a name="a786"></a> </div></li>
- <li><div class="src-line"><a name="a787"></a> <span class="src-comm">///// USER-CENTRIC OBJECTS /////</span></div></li>
- <li><div class="src-line"><a name="a788"></a> </div></li>
- <li><div class="src-line"><a name="a789"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a790"></a><span class="src-doc"> * Authorises the given object for the current avatar.</span></div></li>
- <li><div class="src-line"><a name="a791"></a><span class="src-doc"> * Note: the object must already exist in the database.</span></div></li>
- <li><div class="src-line"><a name="a792"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">int </span><span class="src-doc-var">$authid </span><span class="src-doc">The ID of the authorisation entry</span></div></li>
- <li><div class="src-line"><a name="a793"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">bool </span><span class="src-doc">True if successful, or false otherwise</span></div></li>
- <li><div class="src-line"><a name="a794"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a795"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodauthorise_user_object">authorise_user_object</a><span class="src-sym">(</span><span class="src-var">$authid</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a796"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a797"></a> <span class="src-comm">// Make sure an avatar is loaded</span></div></li>
- <li><div class="src-line"><a name="a798"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodis_avatar_loaded">is_avatar_loaded</a><span class="src-sym">(</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a799"></a> </div></li>
- <li><div class="src-line"><a name="a800"></a> <span class="src-comm">// Does the object already exist in the database?</span></div></li>
- <li><div class="src-line"><a name="a801"></a> <span class="src-var">$auth </span>= <span class="src-id">get_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_user_object'</span><span class="src-sym">, </span><span class="src-str">'id'</span><span class="src-sym">, </span><span class="src-var">$authid</span><span class="src-sym">, </span><span class="src-str">'avuuid'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodget_avatar_uuid">get_avatar_uuid</a><span class="src-sym">(</span><span class="src-sym">))</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a802"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$auth</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a803"></a> <span class="src-comm">// Update the existing record</span></div></li>
- <li><div class="src-line"><a name="a804"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">authorised </span>= <span class="src-num">1</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a805"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">timeupdated </span>= <a href="http://www.php.net/time">time</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a806"></a> </div></li>
- <li><div class="src-line"><a name="a807"></a> <span class="src-key">return </span><span class="src-id">update_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_user_object'</span><span class="src-sym">, </span><span class="src-var">$auth</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a808"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a809"></a> </div></li>
- <li><div class="src-line"><a name="a810"></a> </div></li>
- <li><div class="src-line"><a name="a811"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a812"></a><span class="src-doc"> * Adds or udpates the given user object as unauthorised.</span></div></li>
- <li><div class="src-line"><a name="a813"></a><span class="src-doc"> * (This function can be called statically).</span></div></li>
- <li><div class="src-line"><a name="a814"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$avuuid </span><span class="src-doc">UUID of the avatar the object will be authorised for</span></div></li>
- <li><div class="src-line"><a name="a815"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$objuuid </span><span class="src-doc">UUID of the object</span></div></li>
- <li><div class="src-line"><a name="a816"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$objname </span><span class="src-doc">Name of the object</span></div></li>
- <li><div class="src-line"><a name="a817"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$password </span><span class="src-doc">Password to store for the object</span></div></li>
- <li><div class="src-line"><a name="a818"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">int</span><span class="src-doc">|</span><span class="src-doc-type">bool</span><span class="src-doc">Integer ID of the authorisation entry, or false otherwise</span></div></li>
- <li><div class="src-line"><a name="a819"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a820"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodadd_user_object">add_user_object</a><span class="src-sym">(</span><span class="src-var">$avuuid</span><span class="src-sym">, </span><span class="src-var">$objuuid</span><span class="src-sym">, </span><span class="src-var">$objname</span><span class="src-sym">, </span><span class="src-var">$password</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a821"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a822"></a> <span class="src-comm">// Make sure our other parameters are valid</span></div></li>
- <li><div class="src-line"><a name="a823"></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">$objuuid</span><span class="src-sym">) </span>|| <span class="src-key">empty</span><span class="src-sym">(</span><span class="src-var">$password</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a824"></a> </div></li>
- <li><div class="src-line"><a name="a825"></a> <span class="src-comm">// Does the object already exist in the database?</span></div></li>
- <li><div class="src-line"><a name="a826"></a> <span class="src-var">$auth </span>= <span class="src-id">get_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_user_object'</span><span class="src-sym">, </span><span class="src-str">'objuuid'</span><span class="src-sym">, </span><span class="src-var">$objuuid</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a827"></a> <span class="src-var">$success </span>= <span class="src-id">false</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a828"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$auth</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a829"></a> <span class="src-comm">// No - insert a new record</span></div></li>
- <li><div class="src-line"><a name="a830"></a> <span class="src-var">$auth </span>= <span class="src-key">new </span><span class="src-id">stdClass</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="a831"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">avuuid </span>= <span class="src-var">$avuuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a832"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">objuuid </span>= <span class="src-var">$objuuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a833"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">objname </span>= <span class="src-var">$objname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a834"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">password </span>= <span class="src-var">$password</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a835"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">authorised </span>= <span class="src-num">0</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a836"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">timeupdated </span>= <a href="http://www.php.net/time">time</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a837"></a> <span class="src-var">$success </span>= <span class="src-id">insert_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_user_object'</span><span class="src-sym">, </span><span class="src-var">$auth</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a838"></a> </div></li>
- <li><div class="src-line"><a name="a839"></a> <span class="src-sym">} </span><span class="src-key">else </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a840"></a> <span class="src-comm">// Yes - update the existing record</span></div></li>
- <li><div class="src-line"><a name="a841"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">avuuid </span>= <span class="src-var">$avuuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a842"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">objuuid </span>= <span class="src-var">$objuuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a843"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">objname </span>= <span class="src-var">$objname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a844"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">password </span>= <span class="src-var">$password</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a845"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">authorised </span>= <span class="src-num">0</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a846"></a> <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">timeupdated </span>= <a href="http://www.php.net/time">time</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a847"></a> </div></li>
- <li><div class="src-line"><a name="a848"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-id">update_record</span><span class="src-sym">(</span><span class="src-str">'sloodle_user_object'</span><span class="src-sym">, </span><span class="src-var">$auth</span><span class="src-sym">)) </span><span class="src-var">$success </span>= <span class="src-var">$auth</span><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a849"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a850"></a> </div></li>
- <li><div class="src-line"><a name="a851"></a> <span class="src-key">return </span><span class="src-var">$success</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a852"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a853"></a> </div></li>
- <li><div class="src-line"><a name="a854"></a> </div></li>
- <li><div class="src-line"><a name="a855"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a856"></a><span class="src-doc"> * Gets a list of all user-centric objects authorised for the current avatar.</span></div></li>
- <li><div class="src-line"><a name="a857"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">array </span><span class="src-doc">A numeric array of </span><span class="src-doc-inlinetag">{@link SloodleUserObject}</span><span class="src-doc"> objects</span></div></li>
- <li><div class="src-line"><a name="a858"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a859"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methodget_user_objects">get_user_objects</a><span class="src-sym">(</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a860"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a861"></a> <span class="src-comm">// Make sure an avatar is loaded</span></div></li>
- <li><div class="src-line"><a name="a862"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodis_avatar_loaded">is_avatar_loaded</a><span class="src-sym">(</span><span class="src-sym">)) </span><span class="src-key">return </span><span class="src-key">array</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="a863"></a> <span class="src-comm">// Get all objects authorised for this avatar's UUID</span></div></li>
- <li><div class="src-line"><a name="a864"></a> <span class="src-var">$recs </span>= <span class="src-id">get_records</span><span class="src-sym">(</span><span class="src-str">'sloodle_user_object'</span><span class="src-sym">, </span><span class="src-str">'avuuid'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodget_avatar_uuid">get_avatar_uuid</a><span class="src-sym">(</span><span class="src-sym">))</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a865"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$recs</span><span class="src-sym">) </span><span class="src-key">return </span><span class="src-key">array</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="a866"></a> <span class="src-comm">// Construct an array of SloodleUserObject's</span></div></li>
- <li><div class="src-line"><a name="a867"></a> <span class="src-var">$output </span>= <span class="src-key">array</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="a868"></a> <span class="src-key">foreach </span><span class="src-sym">(</span><span class="src-var">$recs </span><span class="src-key">as </span><span class="src-var">$r</span><span class="src-sym">) </span><span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a869"></a> <span class="src-var">$obj </span>= <span class="src-key">new </span><span class="src-id"><a href="../sloodle/SloodleUserObject.html">SloodleUserObject</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="a870"></a> <span class="src-var">$obj</span><span class="src-sym">-></span><span class="src-id">id </span>= <span class="src-var">$r</span><span class="src-sym">-></span><span class="src-id">id</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a871"></a> <span class="src-var">$obj</span><span class="src-sym">-></span><span class="src-id">avuuid </span>= <span class="src-var">$r</span><span class="src-sym">-></span><span class="src-id">avuuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a872"></a> <span class="src-var">$obj</span><span class="src-sym">-></span><span class="src-id">objuuid </span>= <span class="src-var">$r</span><span class="src-sym">-></span><span class="src-id">objuuid</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a873"></a> <span class="src-var">$obj</span><span class="src-sym">-></span><span class="src-id">objname </span>= <span class="src-var">$r</span><span class="src-sym">-></span><span class="src-id">objname</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a874"></a> <span class="src-var">$obj</span><span class="src-sym">-></span><span class="src-id">password </span>= <span class="src-var">$r</span><span class="src-sym">-></span><span class="src-id">password</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a875"></a> <span class="src-var">$obj</span><span class="src-sym">-></span><span class="src-id">authorized </span>= (bool)<span class="src-var">$r</span><span class="src-sym">-></span><span class="src-id">authorised</span><span class="src-sym">; </span><span class="src-comm">// Note different spelling... oops! -PB</span></div></li>
- <li><div class="src-line"><a name="a876"></a> <span class="src-var">$obj</span><span class="src-sym">-></span><span class="src-id">timeupdated </span>= <span class="src-var">$r</span><span class="src-sym">-></span><span class="src-id">timeupdated</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a877"></a> </div></li>
- <li><div class="src-line"><a name="a878"></a> <span class="src-var">$output</span><span class="src-sym">[</span><span class="src-sym">] </span>= <span class="src-var">$obj</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a879"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a880"></a> </div></li>
- <li><div class="src-line"><a name="a881"></a> <span class="src-key">return </span><span class="src-var">$output</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a882"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a883"></a> </div></li>
- <li><div class="src-line"><a name="a884"></a> </div></li>
- <li><div class="src-line"><a name="a885"></a> <span class="src-doc">/**</span></div></li>
- <li><div class="src-line"><a name="a886"></a><span class="src-doc"> * Deletes a user-centric object by UUID.</span></div></li>
- <li><div class="src-line"><a name="a887"></a><span class="src-doc"> * Note: the object must have been authorised for the current avatar.</span></div></li>
- <li><div class="src-line"><a name="a888"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@param </span><span class="src-doc-type">string </span><span class="src-doc-var">$uuid </span><span class="src-doc">The UUID of the object to delete</span></div></li>
- <li><div class="src-line"><a name="a889"></a><span class="src-doc"> * </span><span class="src-doc-coretag">@return </span><span class="src-doc-type">void </span></div></li>
- <li><div class="src-line"><a name="a890"></a><span class="src-doc"> */</span></div></li>
- <li><div class="src-line"><a name="a891"></a> <span class="src-key">function </span><a href="../sloodle/SloodleUser.html#methoddelete_user_object">delete_user_object</a><span class="src-sym">(</span><span class="src-var">$uuid</span><span class="src-sym">)</span></div></li>
- <li><div class="src-line"><a name="a892"></a> <span class="src-sym">{</span></div></li>
- <li><div class="src-line"><a name="a893"></a> <span class="src-key">if </span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodis_avatar_loaded">is_avatar_loaded</a><span class="src-sym">(</span><span class="src-sym">)) </span><span class="src-key">return</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a894"></a> <span class="src-id">delete_records</span><span class="src-sym">(</span><span class="src-str">'sloodle_user_object'</span><span class="src-sym">, </span><span class="src-str">'avuuid'</span><span class="src-sym">, </span><span class="src-var">$this</span><span class="src-sym">-></span><a href="../sloodle/SloodleUser.html#methodget_avatar_uuid">get_avatar_uuid</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">, </span><span class="src-str">'objuuid'</span><span class="src-sym">, </span><span class="src-var">$uuid</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
- <li><div class="src-line"><a name="a895"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a896"></a> </div></li>
- <li><div class="src-line"><a name="a897"></a> <span class="src-sym">}</span></div></li>
- <li><div class="src-line"><a name="a898"></a> </div></li>
- <li><div class="src-line"><a name="a899"></a> </div></li>
- <li><div class="src-line"><a name="a900"></a><span class="src-php">?></span></div></li>
- </ol></div>
- </div>
- <p class="notes" id="credit">
- Documentation generated on Fri, 17 Jul 2009 11:02:37 +0100 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0</a>
- </p>
- </body>
- </html>
|