moodle – Enroll User in a Course

This time for moodlers, have you ever faced such type of need, that you want to enrol user directly in a course using some predefined moodle functions. I was in need for this just after payment success, so thought I should share with you friends..


$userid = 'jaswanttak'; // this is user's idnumber
$courseid = 'TEST-01'; // this is course's idnumber

// if you want to use only id than in get_records() you will have to write id in second parameter

$user = get_record("user", "idnumber", $userid);
$course = get_record("course", "idnumber", $courseid);

if (!enrol_into_course($course, $user, 'paypal')) { // paypal is enrollment method for my system you will use yours
echo 'error';
} else {
echo 'success';



Activate Oracle on XAMPP for Windows : OCI8

If you want to connect with Oracle database using PHP script you will have to do some effort. Because with the default installation of XAMPP for Windows, we don’t get PHP Oracle connectivity enabled. This can be enabled easily when you need to connect to a Oracle Database from your PHP application/script. PHP has got the OCI8 extension, which provides Oracle connectivity to PHP application, and OCI8 uses Oracle Instant Client Package to get Oracle specific functions.

I had the need to connect to a Oracle Database from a PHP script in one of my recent projects, the following is what I did to enable Oracle connectivity in XAMPP for Windows.

1. In your XAMPP Start Page, go to phpinfo, look for string oci8. If string found it indicate that connection to oracle is available, otherwise to activate connection do the following steps:
2. Open the currently used php.ini file by looking at the phpinfo, from the XAMPP folder.
3. Find string ;extension=php_oci8.dll. Remove the semicolon (;) ahead of the string to activate the oracle extension.
4. Save the php.ini file.
5. Download the “Instant Client Package – Basic” for Windows from the OTN Instant Client page. Unzip it to c:\instantclient_11_1
6. Edit the PATH environment setting and add c:\instantclient_11_1 before any other Oracle directories. For example, on Windows XP, follow Start -> Control Panel -> System -> Advanced -> Environment Variables and edit PATH in the System variables list.
7. Set desired Oracle globalization language environment variables such as NLS_LANG. If nothing is set, a default local environment will be assumed. See An Overview on Globalizing Oracle PHP Applications for more details.
8. Unset Oracle variables such as ORACLE_HOME and ORACLE_SID, which are unnecessary with Instant Client (if they are set previously).
9. Restart XAMPP (or Start if its not already started).
10. To make sure that connection to oracle database has successfully activated, go to phpinfo. Find string: oci8. If found, then XAMPP can now communicate with Oracle Database.

The steps to do the same on Linux are almost similar, except there you will use the Linux versions of the packages and setting PATH variables would be different.

To test the connection you can use this script

$conn = oci_connect('username', 'password', 'host:port/servicename');
$query = 'select table_name from user_tables';
$stid = oci_parse($conn, $query);
oci_execute($stid, OCI_DEFAULT);
while ($row = oci_fetch_array($stid, OCI_ASSOC)) {
foreach ($row as $item) {
echo $item." | ";
echo "


php zip library


A few days back I was on a project where, I got some innovative job (for me atleast).

i.e. There was a list of files displayed on a page, and that list is simply displayed by reading the content of a directory and it’s sub directory. Each list item were having a checkbox. Now the challenge for me was to create a zip archive of the selected list items, as same as you have seen for gmail attachments. I searched a lot and finally got a great library for this, yes that is pclzip.

Using pclzip

You can compress and extract zip formatted archives.

PclZip gives you the ability to manipulate zip formatted arhives. You can create an archive, list the content and extract all its content in the file system.

PclZip defines an object class which represent a Zip Archive. This class manages the archive properties and offers access method and actions on the archive.

Trust me its very simple to use and very vast library with a lot of functions. Even most popular CMS like joomla, drupal, nucleus, moodle, wordpress etc. uses the same PCLZIP.