Higher Walls Plugin for Elgg

I plan on using Elgg in a K12 environment, particularly my fifth graders. In order to do this in a manner that complies with our school policies and culture, I had to make some changes. Since the Elgg environment is unmoderated, I had to remove all public access to content.

Elgg’s “Walled Garden” does part of the job in that it disables public registration, but any content that users created had the option of public access which would be visible to individuals not logged in.

I created a plugin with a view override that removes this option. Now users have the choice of private or logged in users (along with any friends’ collections) when setting the access to content.

Still, access to the site could be had by RSS feeds and OpenDD. I’m not sure how big an issue this is, but I’d like to be able to do it. Dave Tosh suggested, I created an override of owners’ block eliminating those options. I believe access to these can be had unless I delete the rss and opendd views from the core. That will work, but I wonder if I could create an override of those views that disables them. I plan on looking into this.

No links to subscribe to feeds

I combined my initial plugin, with Marcus Povey’s “Walled Garden.” With “Higher Walls,” not only is registration disabled, but so is public access. Links to RSS and OpenDD feeds are also disabled.

Another issue remains. If access to content is restricted to logged in users, then the Latest Activity on the default main page will remain as a header with nothing below it. I used Customindex plugin to change the mainpage to a login page by pasting:

$form_body = “<p><label>” . elgg_echo(‘username’) . “<br />” . elgg_view(‘input/text’, array(‘internalname’ => ‘username’, ‘class’ => ‘login-textarea’)) . “</label><br />”;
$form_body .= “<label>” . elgg_echo(‘password’) . “<br />” . elgg_view(‘input/password’, array(‘internalname’ => ‘password’, ‘class’ => ‘login-textarea’)) . “</label><br />”;
$form_body .= elgg_view(‘input/submit’, array(‘value’ => elgg_echo(‘login’))) . “</p>”;
$form_body .= “<p>” . elgg_echo(”) . “</a>  <a href=\”". $vars['url'] .”account/forgotten_password.php\”>” . elgg_echo(‘user:password:lost’) . “</a></p>”;
echo elgg_view(‘input/form’, array(‘body’ => $form_body, ‘action’ => “”. $vars['url'] .”action/login”));

into customindex/views/default/customindex/content.php.

Further modifications could be done on the custom index, but this certainly serves the purpose. It is comparable to what one would encounter in a password protected WordPressMU blog.

Now I am convinced that Elgg can be modified to work within the K12 environment. Higher Walls and removing rss and opendd views directories restricts access to the community very effectively. A better solution would disabling rss and opendd through the plugin rather than deleting core files.

Now that these matters appear worked out, I plan to focus more on Elgg in terms of pedagogy. Nonetheless, I will tweak “Higher Walls” over time.

Download

Thanks to:

  • Marcus Povey
  • Boris Glumpler
  • Jens von der Heydt
  • Diego Andrés Ramírez Aragón

Related Posts

Tags: , , , , ,

  1. Benoit des Ligneris’s avatar

    Hello,

    Nice plugin but it is not working on my Elgg 1.1 install.

    I have a higherwalls is a misconfigured plugin.

    PluginException Object
    (
    [message:protected] => higherwalls is a misconfigured plugin.
    [string:private] => exception ‘PluginException’ with message ‘higherwalls is a misconfigured plugin.’ in /var/www/elgg/engine/lib/plugins.php:187
    Stack trace:
    #0 /var/www/elgg/engine/start.php(160): load_plugins()
    #1 /var/www/elgg/engine/handlers/pagehandler.php(15): require_once(‘/var/www/elgg/e…’)
    #2 {main}
    [code:protected] => 0
    [file:protected] => /var/www/elgg/engine/lib/plugins.php
    [line:protected] => 187
    [trace:private] => Array
    (
    [0] => Array
    (
    [file] => /var/www/elgg/engine/start.php
    [line] => 160
    [function] => load_plugins
    [args] => Array
    (
    )

    )

    [1] => Array
    (
    [file] => /var/www/elgg/engine/handlers/pagehandler.php
    [line] => 15
    [args] => Array
    (
    [0] => /var/www/elgg/engine/start.php
    )

    [function] => require_once
    )

    )

    )

    Reply

  2. Steve’s avatar

    It runs fine on my 1.1 installation.

    What other plugins are you running? I have been finding that some do not play well with others.

    Reply

  3. Steve’s avatar

    You could also try this nopublic plugin that does not include walled garden:

    http://openedweb.com/blog/wp-content/uploads/nopublic.zip

    Reply

  4. SGr33n’s avatar

    Hi Steve,
    Is it simple, in your opinion, change the “public” option to “friends”?
    Elgg doesn’t support this, and would be very nice.

    Reply

  5. Steve’s avatar

    As I understand, there is a lot of flexibility:

    http://news.elgg.org/pg/blog/bwerdmuller/read/41/access-control-in-elgg

    Mind you, I have thrown a few things together, but I am not a coder by any stretch.

    Reply

  6. magesh’s avatar

    steve i want to make my blog be used as globally and my users must not be able to create a blog…. they must have access to reading and posting in my blog…. tell me how to do this
    coz my community requires one like this
    help…!

    mail me to
    kkmageshcse@gmail.com
    or
    magesh@planetsum.com

    Reply

  7. GeorgeF’s avatar

    Hi, great work on the plugin, however caused us an issue as we were also trying to use the invitations plugin, and of course the page for users to register to the site is public. Silly me I guess for not realising that :) Now Im here tho, I notice you’ve linked to a nopublic plugin so maybe I’ll give that a shot. Cheers!

    Reply

  8. Steve’s avatar

    I don’t know what version of Elgg you are using, but I am waiting for Elgg 1.5 to be released before updating and fixing any of these access plugins.

    Let me know and I’ll try to make sure you get a version that works for you!

    Reply

  9. Ed Lyons’s avatar

    Hey – thanks for your work. I created an open group on the Elgg community site called “Walled Gardeners” for people who run these types of sites. It is here: http://community.elgg.org/pg/groups/50487/walled-gardeners/

    I have learned a great deal from doing this, and making a lot of Elgg compliant in this way is not as simple as it looks. Hope to see you in that forum!

    Ed

    Reply