eFront eLearning (LMS) integration plugin

Discussion in 'Integration' started by skippybosco, Sep 29, 2008.

Thread Status:
Not open for further replies.
  1. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    Just a quick note to let you guys know that 3.5.3 was just released today:

    http://www.efrontlearning.net/download/download-efront.html

    The changelog for the new version follows:

    You can get the release here

    If you upgrade, be sure to replace the efront\www\api.php with the version that ships with your aMember eFront plugin.

    The plan is that the the next version of my plugin will use the eFront native API now that all of the features are present.

    In addition to some other things I'm cooking up to convince the Moodle world to convert to eFront, the new version of the plugin will make use of the new groups functionality in eFront to allow you to add users to groups as part of a product registration and then assign lessons / courses to groups within eFront. This allows you to add/remove a new lesson or group to multiple users at one time to simplify your administration.
  2. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    I have just released a new version of the integration plugin (see attached to first post in this thread).

    Of specific note:


    • Resolved SSO users not being logged out in certain conditions
    • Using native API (requires 3.5.3+)
    • Added "user to group" functionality
    • Improved performance and various bug fixes

    Please let me know if you have any questions
  3. everbatim

    everbatim Member

    Joined:
    Dec 19, 2007
    Messages:
    65
    Will eFront run on a shared hosting account. I tried loading onto my server, but when i went to run the installer I just kept getting subtle errors that never displayed an actual page, just PHP errors.
  4. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    eFront is fairly lightweight and will run fine on a shared hosting. It does have some requirements to keep in mind that you need to have enabled:

    PHP 5.2 or higher
    ZIP support
    Register Globals Off
    Magic Quotes Off
    Safe Mode Off

    Seeing PHP errors? That sounds like maybe your server is running PHP4? You can create a file called phpinfo.php in your root directory with this:

    Code:
    <?php
    	phpinfo();
    ?>
    If it is running PHP4 you can sometimes get around it by overriding the handler via .htaccess. Add this to a file called .htaccess in the root of your servers http:// directory

    Code:
    AddHandler application/x-httpd-php5 .php
    If you are still having problems you can drop me a note at myusername here @ hotmail.com and I can login to your server and check it out for you.
  5. everbatim

    everbatim Member

    Joined:
    Dec 19, 2007
    Messages:
    65
    I think my real problem is that I don't have root access to the server to install the XAMPP application. I am however running PHP Version 5.2.6. What I tried doing was just uploading the WWW folder (ignoring the other folders) and then giving write permission to the INSTALL directory. Since I don't have root access to the apache operating system, I'm not sure what else I can do here.

    I'm sure the PHP errors are because I've only uploaded the contents of the WWW folder, but I don't know what else I should do here. The eFront system looks REALLY nice and I'd love to use it IF I can get it running. Thanks again for any help you can offer.
  6. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    If you have a hosted server then you should not need XAMPP as you already have an instance of Apache, MySQL and PHP.

    You should be uploading ALL of the files to your server, not just the www. Assuming you have a CPanel with your account, there is a good document here that will help:

    http://www.efrontlearning.net/resources/SiteGround.html

    Note that while it refers to efront 3.1.3, it is still relevant to the newest version.

    If you still have difficulties, drop me an email at [myusername] @ hotmail.com and I'll certainly help get it installed for you (free of charge)
  7. everbatim

    everbatim Member

    Joined:
    Dec 19, 2007
    Messages:
    65
    Alright, I've got it loaded, but the installer wants me to change some settings on the server. Before I request the changes from my hosting company I just want to make sure they won't affect amember at all. Here is what it wants me to change:

    session.save_path (my server setting is blank on this)
    register_globals (my server setting is ON, eFront wants it off)
    magic_quotes_gpc (my server setting is ON, eFront wants it off)

    It also needs the ZIP function enabled. Is that a program that needs to be loaded on the server or just a setting of PHP?
  8. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    session.save_path <- this is where PHP scripts save session information to. Not having this prevents things like auto-logging users out.

    register_globals <- This is a PHP deprecated feature and considered a general security risk, specifically cross site scripting.

    magic_quotes_gpc <- This is a heated debate as to the good or bad of it. I have personally seen issues in posting quiz results with this enabled (both in eFront and Moodle)

    Depending on your hosting configuration (if it uses PHPsuexec), you may be able to set these settings yourself by creating a file called php.ini in your efront/www and efront/www/install directory that contains:

    Code:
    session.save_path = /tmp
    register_globals = off
    magic_quotes_gpc = off
    As far as ZIP, this will require your hosting provider to enable this.. If they are unable / unwilling to do so, the risk is that you will not be able to import or export lessons / courses.
  9. aai2on

    aai2on New Member

    Joined:
    Oct 16, 2008
    Messages:
    24
    I paid to have lesson certificates enabled.

    I have two courses that share 50 lessons. The students in one course have to complete all of the lessons. The other course, students can complete any number of the lessons, but receive credit for 16 hours. This applies towards continuing education.

    Anyways, the students need get a certificate for each lesson they complete. So, the default way eFront handles certificates was not working. I would have to generate certificates manually.

    I paid to have this developed and asked that it be given out to the community, but I have not seen it released. Hopefully I have a copy somewhere if I ever need it.
  10. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    @aai2on, first off thank you so much for your generosity!

    I saw in the SVN that 3.5.4 build 3984 had the following changes:

    ...which I suspect is the change you are referring to.
  11. kdelapla

    kdelapla New Member

    Joined:
    Aug 2, 2008
    Messages:
    10
    Need help with eFront/Amember integration

    Hi,

    I've got aMember and eFront both installed, and your eFront plugin installed, all successfully so far. I followed the cPanel install instructions for eFront, so my eFront script is actually in a subdomain of my site.

    My site is www.logic-fu.com

    Efront is in efront.logic-fu.com

    In my site hierarchy via ftp, the efront files are in /public_html/efront

    I added all your custom scripts, the updated api is in /public_html/efront/www/api.php. The path I'm using for the eFront plugin settings is http://www.logic-fu.com/efront/www/api.php.

    I added the "greedy algorithms" lesson to my 1-year subscription product. Most of my members have 1-year subscriptions.

    However, I'm not seeing any transfer of members from aMember to eFront.

    Any suggestions?

    Kevin
  12. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    @kdelapla, as with most aMember plugins, the eFront plugin is triggered by new subscriptions, existing users will not be automatically transferred into eFront.

    If you add a new user with a subscription (or a a new subscription to an existing user) you should see the user and membership happen.

    Synchronizing the databases for new installations is something that I have this planned for a future version of the plugin (to be triggered by the "rebuild database" feature).

    How many users do you have? There are a few ways to reconcile:

    1) create a new product associated to the eFront course/lesson and use the mass subscribe option:

    http://yourdomain.com/amember/admin/mass_subscribe.php

    2) A one time export your aMember users and import into eFront

    Let me know if you have any questions or difficulties and I will do everything that I can to assist you.
  13. kdelapla

    kdelapla New Member

    Joined:
    Aug 2, 2008
    Messages:
    10
    Thanks very much for the info! That explains a lot.

    It'll take a while for me to rebuild my courses inside eFront. When I'm done I'll try one of your methods.

    Question: When I add new courses after members have subscribed, I have to go in and add the new course to the subscription product in aMember, correct? I assume (hope) that doing so automatically grants access to the new courses to the subscribed members? Is this correct?

    Thanks again.
  14. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    Yes, this is correct.

    You should consider how your content is laid out. What you describe sounds like you would be better off registering your users to one or more courses and then adding lessons to those courses.

    That being said, there is a new feature in eFront (that I also have enabled in the plugin) to associated users to groups within eFront (and remove when subscription ends). What this allows you to do is bulk manage users (based on group membership).

    So in your scenario, you add a new course, you can go to group management and bulk enroll users to the course. You will still want to associate the product to the course so that it can be removed when the users subscription ends, but this is a quick way to do what you want if you have to create new courses for some reason.
  15. exeshop

    exeshop New Member

    Joined:
    Jan 10, 2009
    Messages:
    22
    SkippyBosco,

    You made great work as we already pointed out.

    Just one tiny option missed. You made option to select Efront groups, but in our scenario we need also to select user type because of user view (for example we want to disable efront forum as forum already exist and to disable calendar and similiar)

    So, by allowing to choose USER TYPE (which is not default: student but newly created) at product subscriptions in amember, this will be possible!

    Thank you.
  16. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    I will keep this in mind for a future update. At the time I made my last changes, "user type" was not an available option in the API. It is available in the beta version of the code, so hopefully when eFront 3.5.4 is released in a couple of weeks I'll be able to get that added.

    Other big items I'm also looking at:

    1) Rebuild Database functionality to re-sync users (probably one way, aMember users with active subscriptions -> eFront)
    2) Incremental content (have users added to lessons/courses once a day/week/month/year based on how you schedule it)
  17. exeshop

    exeshop New Member

    Joined:
    Jan 10, 2009
    Messages:
    22
    Thank you, SkippyBosco!
  18. exeshop

    exeshop New Member

    Joined:
    Jan 10, 2009
    Messages:
    22
    Skippy, there is a problem.

    If you protect directory where efront is, there is errors and plugin do not work correctly, is there a solution to this?

    Errors:

    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 21: parser error : EntityRef: expecting ';' in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: n" method="post" action="/plugins/protect/new_rewrite/login.php?v=-5,4,3,2,1&url in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: <input type="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;& in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: <input type="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;& in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: <input type="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;& in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: <input type="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;& in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: <input type="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;& in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: <input type="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;& in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: <input type="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;& in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: t type="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;&nbsp; in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 36: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: e="submit" value="&nbsp;&nbsp;&nbsp;Login&nbsp;&nbsp;&nbsp;" />&nbsp;&nbsp;&nbsp in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 37: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 37: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 37: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: Entity: line 37: parser error : Entity 'nbsp' not defined in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in line 51 of file efront.inc.php
    WARNING: simplexml_load_string() [function.simplexml-load-string]: ^ in line 51 of file efront.inc.php

    ...........

    Or maybe you have solution to this and we missed it ?
  19. skippybosco

    skippybosco CGI-Central Partner Staff Member

    Joined:
    Aug 22, 2006
    Messages:
    2,526
    You should not protect the eFront directory with aMember. The whole point of this plugin is to automate the user creation and single sign on functionality between aMember and eFront.

    Disable external registration via eFront configuration (login as admin -> system configuration) and then only existing (aMember created) users can log in and access eFront. You can modify the eFront home page to include links/redirects to your registration / signup in case users somehow land there.

    If you protect, as you have found, aMember itself cannot access the API in the efront/www directory.

    The only caveat to this is you may find it useful to protect the efront/www/content folder (or subdirectories) if you wish to protect any files/images you include as a part of your lesson.
  20. exeshop

    exeshop New Member

    Joined:
    Jan 10, 2009
    Messages:
    22
    Skippy,

    It seems that there is a problem with latest version. We didn't notice this problem with previous versions of efront and plugin.

    I think that it is more related to the efront itself.

    If you allow access to user to group in efront via automatic signup with amember, user can access to lesson only if lesson is in mode: Lesson is available Directly and if you choose Exclusively through course, link on user page is displayed wth error like this:

    http://course-subdomain.domain.com/www/.php?lessons_ID=5&course=3

    there is not student.php but there is only .php
    and if you choose Directly for this lesson link is normal with student.php and when you again choose Exclusively, it is .php which is wrong...
    If you manually add student to have student.php in Exclusively through course it works without a problem.

    It seems just link is wrong on user page and must be problem in efront or something?


    This was not the case before we upgraded to efront 3.5.3 and latest plugin.

    Any idea?
Thread Status:
Not open for further replies.

Share This Page