Thursday, January 17, 2013

Connecting Sakai to Wordpress


LMS platforms have fairly long been consolidated at universities as on-line learning support tools. For a long time they were exposed to disappear because of the low level of interoperability to third-party services they offered. Finally, as a result of that need together with the mobility nature of teachers and students between institutions (and consequently on its LMS), interoperability mechanisms were implemented to bring the required tools to their users.

Tool interoperability allows to connect remote tools inside LMS environment, keeping them contextualized by the courses or activities from they are called. There were some attempts like IMS-TI (IMS Tool Interoperability) or Campus Project, but it was not until the emergence of IMS LTI  1.0 (IMS Learning Tool Interoperability) that TI technology became more popular.
 
Nowadays, you can find several examples of LMS that implement IMS LTI  like Angel, Moodle, BlackBoard, D2L, etc. Many of these LMS, in addition to consuming LTI tools are also able to provide their own tools to the rest of LMS through IMS LTI.  We can find multiple scenarios like a teacher using Sakai with Moolde tools and viceversa; Moodle consuming a tool from a payment service like Piazza, etc.

Now, I will guide you about how integrate Wordpress into Sakai using LTI. Wordpress is an open blog platform that can be installed or used as a hosted service. Blog functions are not related to pure pedagogical uses, but the need of keeping students involved in the course building process, made these tools to take active part on LMS's live.
Although many LMS already have their own blog tool, they don't provide as features as a dedicated blog products like Wordpress offers. Thanks to LTI and the Wordpress connector developed by  +Chuck Severance and subsequently improved by people of Universitat Oberta de Catalunya (UOC), we can enjoy a Wordpress space for each Sakai site.

The following guide will take you through the necessary steps to install and connect a Wordpress in your institution's Sakai.

Previous requirements

Before installing Wordpress you need:
  • Apache Web Server 2.2 or above
  • PHP 5.2.4 or above.
  • MySQL 5.0 or above.
    Download Wordpress from its web page: http://wordpress.org/latest.zip

    Also, you must download the LTI Wordpress plugin:

    Install and configure Wordpress

    You must follow the "Famous 5-Minute Install" instructions at http://codex.wordpress.org/Installing_WordPress to install and configure Wordpress.

    After that, you should activate the Wordpress multisite feature. Open the wp-config.php and set up the variable WP_ALLOW_MULTISITE to true, just before the stop editing mark.

    You should have something like that:
    ...
    
    
    /* Multisite */
    
    define('WP_ALLOW_MULTISITE', true); 
    
    /* That's all, stop editing! Happy blogging. */
    ... 
    
    

    If you did it well, you will find a new item called "Network setup", on the "Tools" section on the left-hand navigation menu.

    If you go to this section, you will see the available options to setup your Wordpress as multisite (directories or domains). Let's use directories mode.


    If you press on "Install" button, you will see the configuration files paths you should update to enable this feature. Remember to grant the privileges again to apache user on these files.


    Maybe, you should set up the main Apache configuration file to allow overriding site behaviours through .htaccess files.

      
        #
        # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride All
    
    


    Once finished, you will see a new item "Network settings".

    If it didn't work for you, you should consider taking a look at the following instructions: http://codex.wordpress.org/Create_A_Network

    Install lti plugin

    Unzip the content of the LTI plugin package into "plugins" directory on Wordpress. Remember to grant privileges on these files. Then, on the "Network Admin Dashboard" -> "Settings", you will find a new section called "LTI consumer keys".


    You should specify here a new key to be used on Sakai Basic LTI consumer tool.  For instance, you can use:
    • Consumer key: my-sakai.consumer.key
    • Secret: my-sakai-secret
    Check the 'active' option, before saving.

    Connect Sakai to wordpress

    If you are 'maintain' or 'Instructor' of a Sakai site, you are able to set up a tool instance on that site that connects to an external tool. You can do it going to "Site Info"-> "Edit Tools" and checking "External Tool". Now, press "Continue" and  write a name for that tool.Press "Continue"  and "Save" on the confirmation screen. 




    Now, you will see a new page on your site. Go there and press the edit icon on the top-right corner  to set up the tool.

    Provide the parameters:
    • Remote Tool Url: Your Wordpress url  (http://my-wordpres.mydomain.com/)
    • Remote Tool Key: my-sakai.consumer.key
    •   my-sakai-secret
    o
    Also, check the options:
    • Send Names to the External Tool
    • Open in a new window (Optional)
    Now, you can see a new Wordpress site for that Sakai site, and its members can publish posts on it.


    If you want to show Wordpress site on the same frame of the tool, you should uncheck the "Open in a new window" option  on Sakai LTI tool, and install the "Allow From X-Frame-Options" plugin on Wordpress. You can get it at http://blog.dearbornschools.org/webmaster/files/2012/10/wp_allow-from-x-frame-options.zip

    Copy the content of that zip on the "plugins" directory of your Wordpress and activate it for all Sites going to "Network Admin" Dashboard -> "Plugins" (left menu) -> "Installed plugins" , and press "Networt activate" link option of that plugin.

    Recommendations

    I really recommend you to take a look at the following sites to understand better all the process:




     

    8 comments:

    1. Hi, Alex. Congratulations for your interesting blog.

      We have been a long time at UPNA thinking about installing a Wordpress server integrated with Sakai through LTI. However, we haven't started the work yet, because I have several doubts about this process and if it will be a better solution that the one we are using (traditional core blog).

      - Is it possible a bidirectional interaction between Wordpress and Sakai tools? For example, generate statistics in Sitestats or linking in a blog post a Resources file, etc.

      - Did you migrate old contents from Blog tool to Wordpress? Is it documented somewhere?

      - Is a simple step for usual non-technical users adding a new Wordpress blog to their site through LTI?

      Well, if you can clarify this to me, maybe we'll follow our steps and will use Wordpress in the future.

      Thanks in advance.

      ReplyDelete
    2. Well, I will try to answer your questions :

      Sorry to say that it is not possible (NOW) to send statistics back to LMS. Sakai IMS LTI implements LIS service to receive outcomes from tools, but at this moment only grades are handled. The Grades outcome feature sounds great but it is not present in Wordpress LTI plugin. Resources like images and videos are handled by Wordpress.
      _

      I can't say you anything about content migration ... I never tried it. :-(

      _

      The good new is that installation on the sakai sites is very easy for Instructors since Sakai 2.9 provides an LTI administration tool that allows to create a previous setup (url, keys, options ... ) of a remote tool. Then Instructors only have to include it to the site.



      ReplyDelete
    3. This is awesome. I had some hiccups during the install, though. The LTI plugin seems to have changed since this post was made. There is a section in the main php file for the plugin, around line 175, that generates the site url. I had to change that to the following:

      $siteUrl = preg_replace('/^https?\:\/\//', '', get_option("siteurl")); // - "http://"

      to account for a non-site-root install.

      I also found that my login wasn't persisting when the blog was launched from the tool because of some security checking that Wordpress was doing, and the fact that my site was mixing non-ssl and ssl connections.

      I had to force all traffic to use https/ssl by amending the .htaccess file with a rewrite:

      RewriteCond %{HTTPS} off
      RewriteRule .* https://www.mysitelocation.edu%{REQUEST_URI} [last]

      That was added around line 6 or 7, just under the index.php rewrite rule.

      Everything seems good now, though.

      ReplyDelete
    4. Nice comment John. I'll have it present for this kind of installation. Thanks

      ReplyDelete

    5. This post is really nice and informative. The explanation given is really comprehensive and informative.

      WordPress Support

      ReplyDelete
    6. I most likely appreciating each and every bit of it. It is an incredible site and decent impart. I need to much obliged. Great employment! You all do an incredible blog, and have some extraordinary substance. Keep doing awesome.  seo services calgary

      ReplyDelete

    7. Hello,

      we provide affordable and result-oriented SEO services, please give a chance to serve you.


      Thanks
      Admin: E07.net

      ReplyDelete
    8. I was just about to give up on my website for now and try something "simpler WordPress Tutorial " but you just saved the day!! 💜 Definitely subbed and can't wait to watch more!!

      ReplyDelete