Posts Tagged “drupal”
[ok, I did skip #13 - but hey, I just recently suffered site outage, and (fortunately temporary!) loss of a domain name, when my (former) hosting company went belly-up one Saturday morning without notice - so perhaps I can be forgiven a little superstitious behavior!]
In addition to the user-contributed material on my site (blog posts in the community blog & in satellite groups; attachments to blog posts displayable in a mini-portfolio; and aggregated distributed content from user blogging on other platforms), I wanted to provide some focused 3rd party feeds - health news from the BBC and NPR, Terry Gross’s wonderful Fresh Air interviews, feeds from the Centers for Disease Control, &c. I’ve been providing these on the front page of our Moodle platform using Moodle’s rss aggregation module as a sideblock, but thought it might be interesting to add some features to these imported feeds - such as threaded discussion on selected news items, and social rating of news stories with ranking/surfacing of voted-up content.
I’ve played around with ways of doing this. Recently I’ve been playing around with Tony Mobily’s most excellent Drigg module for Drupal, & may have more to say about that later on a bit, after more of a trial. My present implementation tho, is muckled together from other Drupal plugins.
As the Aggregation module is employed for other purposes on the site, I added a 2nd feed aggregating module. After trying out several options, I ended up using the feedapi module. This does not have the full set of features available in the Aggregation module, but it is serving reasonably well for this purpose. With a little care in naming of node-types, these two aggregators seem to play well together. The feedapi module is configured to create Story nodes from the feed items, and these Story nodes are organized for display in various formats using the Views menu.
For social ranking of news items, I have the votingapi module installed, and the voting interface is configured using extra_voting_forms (I’ve also tried fivestar, which works nicely as well; it just comes down to a preference re user interface). This is set up to permit voting up/down of Story nodes containing news item content. Comments are enabled for the Story node.
I’ve also enabled the community tags module for Story nodes, to permit users to tag stories with terms relevant to our user community.
In addition to the pages displaying the raw news items, I’ve set up a page for “promoted” stories, with a views filter set for VotingAPI points vote result (sum) greater than or equal to a chosen value (in the sandbox site, I’ve set this at ≥2; in a site with more active members it could be set higher).
Users can now easily access relevant 3rd-party material (news feeds, feeds from 3rd-party blogs of interest, &c.); scan for relevant news items & read these; rate them according to interest/relevance to our learner community; and engage in discussion on the items. A table-view of feed items is header-sortable by user-ranking, number of comments, &c. & Items voted up in interest appear on the “promoted stories” page.
I currently have restricted the creation of new feeds to administrator; eventually I plan to open this to faculty, and it might be interesting to open it to the community at large.
1 Comment »
I’m quite intrigued with the distributed discussion on the near-mythical ‘eduglu,’ and the work that some folks - notably D’Arcy Norman - are doing to create an ‘eduglu’ platform.
The notion here, as I understand it, is to create a platform capable of aggregating users’ distributed content from all manner of online publishing platforms, displaying this in a central location, and developing algorithms (e.g. social rating ala Digg) to surface material of particular relevance to the goals of the learner community. Threaded commenting on this aggregated material then can weave this previously widely distributed content into a community dialog.
This is truly amazing stuff! e.g., I could maintain my own blog, such as this one, in WordPress, using the WP Feeds widget to create context-sensitive feeds; and publish one or more context-sensitive feeds - e.g., the ‘dogs’-tag feed - to the ‘eduglu’ platform to be shared within that community (see my sandbox site, my ‘dogs’ feed from this blog is imported there). The user is not constrained, and does not need to be ‘brought over,’ to the community platform; does not need to duplicate posts made to a broader or selected audience. Users can publish on their platform(s)-of-choice, and have all this brought together into the learning-community platform.
The issue I face in my institution, is that very few of our students, and even fewer of our faculty, publish any distributed content. We have an older demographic, and due to the nature of our studies, likely have a less cyber-active population than many other learning institutions might have.
I see this changing tho. Progressively over the past two years, there are more & more shiny white boxes showing up in the classroom (our demographic does seem to lean strongly toward macs, much to the consternation of our microsoft-oriented IT department, and to my delight as a mac-fanatic). Students have been enthusiastic about my screencast lecturettes and podcasts, provided for class preparation & review. More of our faculty have been adopting forums in our Moodle LMS for blended discussion in classes and clinics. I can particularly see a wave of possibility here, as this increasingly cyber-capable population moves out into the world as alumni, spread out geographically and in need of accessible continuing education and peer support.
The question of algorithms for ’surfacing’ of information in a platform such as this comes up. Likely in a small institution, such as ours, the combination of a ‘river of news’ with tags (& the wonderful Tagadelic tag-cloud plugin for Drupal) and with buddies links and organic groups for niche discussions, would suffice. As noted in a previous post (#10 in this series), social rating might be problematic, with the potential for individual disenfranchisement (I would love to hear folks’ experiences with peer rating in this context!). Perhaps some creative use of social tagging (such as provided by the Drupal Community Tags module) could extend the benefits of author tagging of content, and provide some of the benefits seen with social rating of content.
On the Social Learning Platform I’m developing (sandbox version at http://sandbox.similibus.org), I’m using the Aggregation module to bring distributed content into the Community Blog. Of the feed aggregation modules available for Drupal, this is the best of the lot for this purpose - it imports the original article’s tags into the Drupal taxonomy, includes enclosures and inline graphics, and creates Drupal nodes from feed items, permitting organization and display of these using the Views module (see #9 in this series, where I set up a ‘community blog’ view which includes imported feed items as nodes in the ‘river of news’ alongside blog posts created within the social learning platform).
1 Comment »
I wanted to include a place for users to upload/archive files (of all sorts), to serve as a simple ‘user portfolio’ section of the site. I played around a bunch with some of the file management modules for Drupal, and the site was getting more & more complicated; and I finally came around to the “keep it simple” mantra that I’m trying to use to dictate the rest of the site’s design.
Fortunately, the Views module came to my rescue again, here coupled in use with Drupal’s built-in taxonomy. I came back to the idea of providing users with a single entry type - blog posts (allowing attachments); and use Views and Taxonomy to provide ways of viewing and organizing blog-post attachments.
Below, are the Views settings for a “my public files” page:
filters:

____________________
I created an “exposed filter”, to permit the user to select their attached files by tag:

______________
and created a page layout in table form:

_______________________
This view collects all files that the user has submitted as attachments to blog posts, into a table on a single page; renders these sortable by name, upload date, tag; and searchable by tag.
The Views module will permit many different ways of viewing the collected files - e.g., views could be created for “my published files,” “my unpublished/private files,” “all users’ files,” “my buddies’ files,” &c.; and could include exposed filters to further parse display.
I’m quite happy with how all this worked out - it feels like a very organic solution from the users’ end. Rather than creating a dedicated file upload/archiving corner of the site, files are contributed through the blogging interface (as either public or private/unpublished blog posts); and are merely displayed and organized through this interface.
No Comments »
I played with the idea of setting up social rating of peer-contributed content on the site. The votingapi module sets up filter- and sort- fields which can be accessed by the Views module, to surface material which has acquired a threshold vote (average or accumulated score), sending these to a “promoted posts” page (filter e.g. VotingAPI points vote result (sum) ≥ 5); and/or to sort posts in descending order of voted score (using this same field as a sort criterion in the view).
However - a small number of trial users nixed the idea of peer rankings before it was out of the bag - with concerns of how peer rating of content might be perceived (esp. re the ability to “demote” or “vote down” ratings - or “offer low karma” in the language of the extra_voting_forms module). This latter concern could be avoided by selecting the “vote up only” option in extra_voting_forms, not permitting peers to demote the score of a contribution; or by using another ranking module, such as fivestar, which also integrates with votingapi. I can see their point - it does take a mature learner to be able to gracefully accept and profit from peer review (I’m picturing still another verse appended to Janis Ian’s At Seventeen …). I can also create terrific counter-arguments. Perhaps I folded to the democratic process too readily, before giving users a fair trial.
So here’s the deal. I’m a wimp on the issue. I would love to hear the experiences of others who have experimented with peer rating of user contributions. How have students responded/related to this? Have you seen threatened / disenfranchised / disillusioned users, and if so, how might this be addressed or perhaps even turned into a real-word learning opportunity?
The ability of this site to permit fresh-generated contributions, and integrate these with material aggregated from user contributions in other web-publications (via the Aggregation module), in part matches the work that D’Arcy Norman has been doing with his eduglu project; but without the added feature of social rating/surfacing.
I have retained the idea of social rating of content, but restricted to 3rd-party content; so am experimenting with social rating/surfacing of imported news feed items, using a separate aggregation module (feedapi).
No Comments »
A key feature of this site, is reliance on the wonderful Views module for Drupal. This permits display of the community blog with various filters applied (all posts, user’s posts, buddies’ posts, &c.), in various modes (full post, table/list view with various fields displayed), in variable sort-order, &c.
I’ve created several views of user-submitted material, as seen in the “Community Blog Views,” “Views of My Groups,” and “My Stuff” menus.
e.g., below are the settings for the Community Blog (list view) page:
access: authenticated user
Provide page view - checked
URL - blog/community_blog_listview
View type - table view
fields:

filters:

____________________________________________________________________
note that this will display both Blog posts and feed item nodes generated from the feeds collected by the Aggregation module. The latter is made available to users who have outside blogs, so that users can aggregate feed items from their outside blogs into our community blog. (The other aggregator module I have installed - feedapi - will be used for news feeds, which will not be incorporated into the community blog, but rather displayed elsewhere on the site).
sort criteria:

1 Comment »
We made the decision to restrict access to our site to authenticated members of our academic community. I have to admit that I do find myself a bit muddled on the whole issue of transparency / transparent life. Perhaps having been raised in the rural Midwest, and spending much of my adult life in downeast Maine - geographic locales where personal privacy is perhaps pathologically emphasized - has unduly influenced this ;^). When introducing blogging/journaling/portfolio production into an academic community, further issues come forward, and frankly, I’m confused by it all. The issue of the transparent life has come upon us rather abruptly as transportation and communication technologies have become more sophisticated and available; it will be the task of the next several generations to sort out the hows/whys/ifs/whatnots/inevitabilities of this.
I’d love to see some discussion on this topic. I’m sure there’s a lot of it out there on the ‘net. Thanks to folks taking the transparency option :^).
But anyhow -
In Adminster > Access control, I’ve given “anonymous user” no privileges, including no access content privileges in the node module section. Non-logged-in users will see only an “Access denied” page with login fields.
Prior to denying “anonymous user” node module > access content privileges, it is important to assure that you will not lock yourself out of the site! This is easy to do with Drupal (or perhaps I’m just particularly skilled at this …), and you’ll find a lot of desperate “help” messages in the Drupal forum on this issue. (You can get to a login page using http://yoursite.com/?q=user , if you are so unfortunate). But before denying “anonymous user” access, activate the LoginToboggan module; then go to Administer > User management > LoginToboggan, and set the Present login form on access denied (403): radio button to enabled.
I have been playing around with Drupal 6.x. It is not yet ready to go for this application, as several of the necessary modules have not yet been made 6.x-ready. But its granular permissions structure may permit greater flexibility - permitting users to elect to make some content world-visible while holding other content within the authenticated-user community. It’ll be fun to mess with when module development catches up.
Access control for “authenticated user” should be straightforward. In the node module section, I’ve given permission only for access content, create group content, and edit own group content. In the Aggregation module section, I’ve given permission for manage aggregation feeds, manage aggregation items, manage own feed items, and view aggregation items. Users can post only 2 kinds of content - Blog posts, and imported feeds & feed items from their external blog. This reflects in part a decision to keep it simple. As a postgraduate school, we have many students of the cyberphobic demographic; too many options could discourage use. (also - the Books node is reserved for administrator use for Help pages; the Stories node is reserved for administrator use, for the 2nd aggregation module - feedapi - to aggregate news feeds for the socially-rated news section of the site).
I’ve given creation and attachment permissions for audio files in the audio and audio_attachment sections, so that users can post streaming audio into their blog postings.
User use authorship needs to be enabled in the Authorship section, to associate full names with posts, rather than usernames (this option will be configured in the Authorship module admin).
Override node publishing options needs to be enabled in override_node_options module section, to permit users the option of posting unpublished posts.
Other permissions should be intuitive, but I’ll visit a few of these in turn as I get around to discussion of specific functionalities of the site.
No Comments »
There are a lot of good themes for Drupal, but my needs were for something pretty clean and ‘academically professional.’ When someone ports the Mandigo WordPress theme (used on this WP blog) to Drupal I’ll jump for joy! But I found the Sky theme for Drupal, which I’m quite happy with. Find it in the Drupal project repository here.
Now there’s a trick with this theme - if all of your active blocks are configured in the right sidebar region, you’ll have a right-sidebar theme. However, if even one of your blocks is placed in the left sidebar, they’ll all show up on the left. (This is only apparent after you leave the blocks editing page; as on that page, all sideblocks show up on the left anyway, regardless of where you configure them).
I did a minor CSS hack on the theme, as I chose to close up the vertical height in the menu blocks a bit, so they’d look a bit tighter. So I opened up Sky/style.css, found all the line-height references in the sidebar section (starting around line 121), and changed these to 20px. Be sure to find the several references to line-height and change each of these.
The header image is bg-header.jpg, in Sky/images/ , and measures 120×960 pixels (note that the bottom 35px of this image will be masked by the primary links menu). I edited my pic in the most wonderful Graphic Converter, and saved optimized for web to minimize download time for users. (btw, the main header image on my Sandbox site is of the beautiful stream in Mostnica Gorge, near Stara Fužina, Slovenja).
After the theme was all configured and basic setup of the site was complete, I created several clones of the theme, naming each Sky-whatever, in the themes directory; differing from each other only in the header image. When Organic Groups are set up, the group author is able to select a theme for their group page from the list of activated themes; having a uniquely identifying header graphic for a group is a nice touch. But wait to do this until most of the rest of the site is configured, as some configuration steps will alter theme settings; and the voting module (for social rating of news feed items) requires a couple of minor hacks to your theme template files.
1 Comment »
I’ve recently added another component to the site, which is added as well to the sandbox site I’ve set up. Inspired a bit tangentially by D’Arcy Norman’s elaboration on the EduGlu concept, I’ve mucked together a socially-rated news section on the site, which
- imports rss feeds from a variety of sources (as this is for a medical school, I’m using the health news feeds from the BBC and NPR, along with several health/medicine related blogs);
- aggregates these on a “raw news items” page;
- permits social rating by our user community;
- promotes “voted up” stories to a “promoted news” page; and
- permits community tagging and threaded commenting on news articles.
Since I’m already using the Aggregation module (for import of external user blog postings into our community blog), I needed to add a second aggregation module; and for this chose to use the feedapi module. I was concerned at first that the two aggregation modules might conflict, but these (Aggregation and Feedapi) appear to play together well.
So in addition to the arrangement detailed so far, I’ve added the modules:
feedapi
community_tags
extra_voting_forms
votingapi
No Comments »
I made the 2 following minor module hacks to improve the user interface on the blog editing page:
Audio module
be sure to use:
audio 5.x-2.x-dev (or later)
- which permits audio file upload & streaming audio in any node type, so that users can upload streaming audio to blog posts
The audio attach section added by this module to the node (e.g. blog) editing page is a collapsible section, but by default is expanded. This presents additional options on the page which might be confusing to the novice user; I’d rather have this section collapsed by default.
find audio_attach.module, in audio/contrib/attach/
at line 76, add ‘#collapsed’ => TRUE
so that this line reads:
$form['audio_attach'] = array(’#type’ => ‘fieldset’, ‘#title’ => t(’Attached audio files’), ‘#collapsible’ => TRUE, ‘#collapsed’ => TRUE);
Override Node Publishing Options module
I’d like to give the user the option to toggle “published” on/off, but not offer the options to promote to front page, make sticky, or create new revision.
Find override_node_options.module, in the override_node_options directory.
Comment out lines 28, 29 and 30, so that these read:
// $form['options']['override_publishing_promote'] …
// $form['options']['override_publishing_sticky'] …
// $form['options']['override_publishing_revision'] …
No Comments »
Additional modules - from http://drupal.org/project/Modules - include the following (be sure to use the latest 5.x releases of each):
modules on which there are essential dependencies:
job-queue
token
workflow_ng
modules lending functionality to blog posts:
authorship
override_options
image
img_assist
upload
upload_preview
tinymce fckeditor - (there is a fatal conflict between tinymce and the updated jsquery.js required by extra_voting_forms)
audio - be sure to use audio 5.x-2.x-dev or more recent
for user management:
userplus
site_user_list
(blogger - not in use, but might be nice esp. on smaller sites)
groups & buddies:
buddylist or buddylist2 (I’m using buddylist)
og (organic groups)
page construction:
views
insert_view
taxonomy/tags:
tagadelic
for rss generation out of an authenticated site:
tokenauth
to import/aggregate external feeds:
aggregation (the included aggregation_views)
login:
logintoboggan
—–
There are some important configurations & a couple of hacks on some of the above modules; I’ll go over these in subsequent posts.
No Comments »
|