 Hello and welcome. This is Oxfam plus Drupal equal great. My name is Matt Cheney, this is Joe Baker. And we're here to talk to you today about how an organization like Oxfam uses Drupal to do a better job with the work that it does, to talk about some of the experiences we've had and to showcase some of the work that was done and give people a good idea of what sort of Drupal and non-profit NGO stuff looks like. So quick show of hands to get us started. How many people here either work for an NGO or non-profit or do work with them? Focus. Perfect. All right. You are absolutely in the right place and I hope that you get a lot out of sort of today's session. We're as the the only session actually at the conference that's about like social justice and non-profit NGO work. We're gonna talk a little bit sort of in the abstract about how Drupal and non-profit and NGO stuff works together and then really dive into some of the some of the details around all that. So we'll say some time for questions at the end as well but if some things really you know on your mind just just blur it out. Then sort of by way of introductions as I mentioned this is me before I got facial hair. My name is Matt Cheney. I actually I don't work at Oxfam unfortunately but I do work in San Francisco for a company called Chapter 3. We do a lot of non-profit and NGO work for a lot of different organizations around the world and really sort of have made that a core part of our business and the way we sort of think about think about things ever since we started in 2006. Oxfam is one of my favorite organizations just personally so working with Joe and the rest of the team was really rewarding and excellent experience and it was something that like I think was really sort of really what I set out to do in Drupal. When I started Chapter 3 with Josh's back here and Zach Rosen we actually sat around at a table and we talked about sort of why are we starting this company. So it's like 2006 so it's a while ago and one of the things I had mentioned at that time was that I really loved Oxfam and I really wanted to work on like a web development project with them to help them do their work better. So sort of as DrupalCon Paris there was a RFP for a project came out and I sort of you know got involved there and it's been a really good time and a good experience working with with everyone at Oxfam on their projects we did and it's sort of our privilege to share with you some of those experiences today. So that's who I am. I love Drupal. I love Oxfam and I'm happy to talk to you all about it. Hi I'm Joe. I work for Oxfam which is my privilege. I really enjoy it. It's a great place to work and two of my colleagues are actually here. Gabrielle who I work with day to day in the office in Oxford and Robert who works for Oxfam Germany in Berlin is also here. I didn't know Rob was gonna be here so it's a great great thrill for me to see him here as well. I was a freelance Drupal developer for years. I first touched Drupal on version 4.4 which was years ago. I can't remember what year it was 2004 or something like that. I've been working with it really kind of overtly since 4.6 and I was freelance quite a while and then I saw just on the off chance the job for as developer Oxfam international came up and thought actually I haven't done an interview for quite a while. I'll go and do an interview to see if I can still do interviews and they offered me the job and took it on as a one-year project and I've been there ever since. I've been there three years now and I really enjoy working. It's an amazing privilege to wake up every morning and use my skills which are no use in the field out there in disaster relief or development in the use of tool out there but I still I'm able to use my skills to make the world a better place which is really great. Excellent. And for today's talk we're going to start off talking a little bit about sort of how Drupal can work for good and definitely sort of a source of personal motivation for Joe and I around a lot of the work we do. And then we're going to get into some specifics and sort of how the anatomy of an NGO would break down really give you a good overview of what Oxfam is the kinds of work that they do and sort of you know what kinds of problems are trying to solve and how technology can help. And then we're going to spend the bulk of our time going through really three very good examples of how Oxfam is used Drupal. First in their public website Oxfam.org to help to do all the wonderful things it does there on the blogs at Oxfam.org site to coordinate a lot of different voices and get a lot of different messaging out. And then on the Oxfam International Internet which is a project I worked on that helps to coordinate sort of the work internally at Oxfam between the six thousand or so folks who work who work across the Confederacy. And then we'll spend some time at the end sort of talking about some of the sort of developer tricks and some of the sort of technical bits that went into the project. Since it's DrupalCon we'll show a little code and talk about modules but that's something we'll probably sort of get into more detail if people want sort of in Q&A or after the session. But in general talk about Oxfam what it does how it uses Drupal and how nonprofits or NGOs that you might work with could sort of use some of those lessons to do the same. So stick it up as I mentioned. Let's talk about making the world a better place. Make it how a place you want to live and show how we can do it with code. This is a sort of interesting problem for people I think who come into technology because unlike a lot of the work that Oxfam would do or other nonprofits who do this very hands on very direct. You can work with people you help writing little ones and zeros and your computer has a sort of you know disconnected sort of space from the actual good that you do and it requires a little bit of sort of you know credit thinking and planning to understand how can I use something like a CMS a pile of scripts in PHP to actually affect the kind of social change that we want. It's definitely a little impersonal sometimes to write code but I think as we'll demonstrate you know the more code that you write and the more specifically you know useful that code is the stronger will help organizations face B and that's really what drives a lot of the work that I do and I think this is sort of how Drupal will save the world. So as a blog post Jeff Robbins wrote in 2007 it's still timely today. It's very interesting because his sort of crux this thing is communication that the number one reason why sort of something like Drupal is helpful to organizations is it allows them to communicate the work that they do the messaging the campaigns the fundraising appeals and information out to the rest of the world that this is true for a large organization like Oxfam that has a lot of different campaigns and it is involved a lot of different projects but this is also true with sort of very small examples a small group of people try to highlight an injustice maybe organizing group trying to recruit more members to sort of you know make a change in their community or any number of other things in between. And that that's sort of really telling because when you can take some of a Drupal that right now does need a lot of sort of code and glue code and real custom config to get working you sort of take the vision that's just putting out there and and things that Joe and I believe that if we can make Drupal more useful and more end sort of user focused and easier it sort of reduces the barrier to entry for organizations to communicate. And I think that's really where I come down with technology in that we can build something as a Drupal CMS that lets people sort of talk about their ideas and really push them out there without the need to write a lot of code and to have that kind of open source free experience. And I think that's something that is sort of part of the culture of Drupal to sort of make these kinds of tools for people. I think it's honestly some of the reasons that people got into Drupal in the first place and definitely it's sort of part of the history of Drupal. Drupal one of the early industries that Drupal did really well in back in 2004-2005 was the nonprofit space. They have a lot of unique needs and cost and you know flexibility is sort of sort of some of those. And that drove a lot of people to sort of see and adopt Drupal. My friends, Neil and Zach, Neil Drum, Zach Rosen started the first Drupal company. It was a nonprofit focused company that would make a distribution of Drupal called Civic Space that a lot of organizations use. At a point sort of 2005 it was actually in some cases even more well known than Drupal was. Like people had asked for Civic Space as a thing because they were a nonprofit and they had heard it solves nonprofit problems. And then I think there's sort of been stuff ever since that really sort of capsized on that kind of interest. And nonprofits have been some of the biggest Drupal sites or nonprofit sites. There's a lot of people who are professionally in Drupal that only work on nonprofit sites. And I think it's part of the part of the history and the future as well. I also think there's something that Joe and I were talking sort of earlier today about how Drupal really I think attracts in these people. That the aspect of an open source community like ours, it's really about sharing, collaboration and sort of helping other people. And I think the people who are drawn to Drupal as an open source project are also drawn to working with organizations that have similar missions. And so there's this sort of really virtuous cycle where people are interested in sharing collaborations. They get involved Drupal. They then decide to share and collaborate with people in the nonprofit space and sort of you know feel you know feel good and do good about that. And then they come back in Drupal and contribute more code. And it really becomes a pretty good good place. There's a website Drupal for good on groups.drupal.org where a lot of people will talk about their experiences and share code and you know help and have that kind of kind of interaction. And definitely check that out if you're interested in sort of how how a Drupal can work with nonprofits or NGOs. Because at the end of the day Drupal plus nonprofit sequel great for a lot of different reasons. Obviously the community as I mentioned is really helpful. If you're a nonprofit and you want to hire someone in Drupal it's a lot actually probably easier to do that than it is if you're a different kind of business. If you want to have an extendable powerful site that you can use to do whatever Drupal is a really good solution. And the cost especially free for the open source stuff is really is really attractive to a lot of organizations. You can get going quickly you can iterate quickly and you can take advantage of the sort of experience and genius of a lot of people that came before you. And I think that's sort of you know sort of part of why we sort of see Drupal and nonprofits as working really well together and definitely some of the reasons that the Oxfam and other organizations have chosen it. So I'll turn over to Joe now to sort of talk about more specifically sort of what an NGO how it works and specifically sort of Oxfam and how they structure their organization as we sort of dive into some of the details. Thanks Pat. So I'm aware from the hands up earlier on that actually a lot of you are from NGOs or work with NGOs. But we both thought it'd be useful really to talk particularly about you know what an NGO is why exists and particularly in my experience here at Oxfam. But aware that just by talking about Oxfam doesn't mean I'm talking about all NGOs. No NGO is like another every NGO has a different structure different format different agenda. Even if it's kind of basically doing the same thing. There's no hard and fast rules to say this is an NGO. Oxfam as an organization has existed since about the 50s. We work together. We work in 98 countries around the world and our agenda is to work for a just world without poverty. We are as an organization outright outraged by the persistence of poverty in the world and the injustice which which follows it up which keeps it in place. And we believe that this must and and can be overcome if we work hard enough. The unjust policies and practices that exist at local national and international levels can and must all be challenged. And people's rights must be respected in this process. So we're committed as an organization to strengthening especially citizens movements across the world to work together towards economic and social justice. And one of the ways that Oxfam does this and this is very common in many NGOs is that we do this particularly through partnership. We try and find indigenous native organizations people who are already working on the ground and work with them find out ways rather than coming in as a sort of imperial wealthy Western organization with all the great ideas. We try and find people who already understand the situation and work with them and find ways in which we can join together. Many people when they think of Oxfam they think of one organization but actually we're 15 and more separate organizations. People especially in Britain don't don't see this and I don't know so well about how Oxfam is viewed in other parts of the world. But certainly in Britain we have Oxfam bookshops and and so on around the country. And everyone sees Oxfam the organization but actually we're we are 15 separate organizations here. Most of those member organizations are national size so you can see the 15 of them there. The only exception being Canada where they have two organizations Oxfam Canada Oxfam Quebec alongside each other. We have a couple of observer organizations organizations who are observing Oxfam as an organization as a whole and working out whether they really want to be committed to be part of this larger confederation. The result of this is that actually these 15 organizations are separate legally financially separate from each other. They are able to determine their own structures their own methods of working or within of course the confines of being members of the confederation. And then there's this one little bit called Oxfam International which is what I work for that is supposed to try and join all these 15 separate Oxfams together and help them have one way of talking. One way of delivering our work at large. Amnesty International is an organization that many people will know. Amnesty International is kind of inverted in size from us. Amnesty International is huge by comparison with the national bits of Amnesty Amnesty, Great Britain, Amnesty America and so on are small. And so Amnesty International is able to be much more executive in making the organization run as a whole. Oxfam International is tiny. We're very, very small. And so we can't be executive. We can't say this is the way to do things. We have to do things through collaboration through convincing and persuading. And that is in effect the way that Oxfam works in the field. We try and find people that we can work with together in collaboration through convincing and persuading and working together. You can see where we're going with the Drupal world, can't you? Similar kind of terms. Because Oxfam is 15 plus organizations, we do kind of what Dries was talking about in the keynote today. We have lots of different technologies that every organization uses something different. And certainly just quickly trying to look around the different Oxfam websites. All of these are active in different places. Oxfam America uses Plone. Oxfam France uses this one called Spip, which I'd never heard of before. Oxfam Great Britain, the biggest part of Oxfam actually do everything pretty much by hand with Dreamweaver, if you can believe that. And there's some custom PHP out there. And then there's a few Oxfams, which are now starting to use Drupal quite a bit more. Oxfam International was the first pretty much. Oxfam Germany are now using Drupal, Quebec and Canada both using it and Oxfam in Spain is also moving that direction. I think they are using this smart site experience, I think. Yeah, I think it's either them or Australia are using it. I think. But at Oxfam International we love Drupal. We think Drupal is great for many of the reasons really that Dries talked about earlier on. It allows us to sort of homogenize a very disparate set of ways of communicating and having delivered through one system, one method, one approach, one thing that we have to update and maintain and so on and so forth. It simplifies the whole process and makes it much, much easier for us to deliver it. And of course the values that underpin the Drupal community are very, very similar to the values that underpin Oxfam as an organization. So it's a really, really good fit. So we're going to talk for the next few minutes about three sort of key examples of how Oxfam as an organization, as an NGO, uses Drupal. I'm going to talk about the international websites, the public websites, oxfam.org and about the blog site and Matt will talk about the internet. So the public websites really is the front door to the organization. It's the way which we do what Jeff Robbins was talking about. It's the way which we communicate what's really happening out there in the disaster zones in the places which are in desperate need of development. We use the sites to talk about the most pressing issues which we are addressing as an organization. Talk about how Oxfam is responding to these pressing issues and especially talk about how people can get engaged with them themselves about what you can do as individuals and as groups. Oxfam International is not allowed to raise its own money. It's one of the important factors for us is that we don't build a constituency. We're not allowed to take away from the potential for reaching the general public that the national oxfam can use and so we're not allowed to raise any money. We're not allowed to build a constituency. And so the website also exists as a form of sign posting trying to push users of the website towards their local or national oxfams. And yes, so the website does three really key things. It talks about our message. It gets the message out particularly in terms of emergencies and crises. What's going on? It gives breaking news as the emergencies occur. Once the emergencies has developed and we're starting to really understand what the issues are then we are able to start building lots of background information. And finally we start to add in elements of real human stories of what people are actually experiencing and how they're struggling to survive in these really difficult situations. For us doing this with Drupal is really, really easy. It's got some excellent tools that we use all the time. Views, image cache, no queue and that sort of thing to make sure that the most up to date, the most vital information is always being bubbled up to the top, to the top of the emergency section of the sites, to the top of the homepage. And the most important information is always being pushed out. We're also able to do quite a lot of funkier things in this area of the site with videos with lots of custom JavaScript to make galleries and so on to communicate the story of what's going on in these various situations. We're also able to talk about our mission. We don't want to have to keep responding to crises. We don't want all these terrible things to happen. And so we want, we work very, very hard on development underneath it all. We engage in all kinds of projects all around the world, particularly trying to partner with, as I said before, local organizations on the ground who understand the situation is far better than we do in the developed world. This section of the site works in a very similar way. We're using lots of views and image cache sort of stuff, but we try and give it a very focused geographical context. So we use the locations module and the open layers tools for mapping. And then the third major aspect is about creating change in the way things happen. And so Oxfam as an organization participates in lots of campaigns. We have been doing this for ages using the same sort of tools, views, no queue, image cache, that sort of stuff in the Drupal world. But we're just in the process of moving many of these campaigns over to sort of sites in their own right, sub-sites within the larger site. And the way we're doing this is using spaces, features and context modules and the grow campaign, which is this top one here. I'll talk about this in a few more details a bit later on. But the grow campaign is the first major campaign we're dealing with in this way as a site within the main site. And so if you go to oxfam.org slash grow, if you English is your first language, then you'll be able to see that section of the site has its own visual identity. And Justin here on the front page, on the front row worked on that project with us. The final area of the site is all about activism, getting involved. And there's many ways in which people get involved. We want to engage people whichever way we can. You'd be surprised to know that actually the most highly viewed page of the site on the get involved section is this one here working with oxfam. Almost double the views of the whole site of any other page are on our jobs page. But there's lots of other ways in which people get involved. And so we have ways that people can get informed. We have lots of videos. So you see here we're synchronizing it with data on YouTube. We run petitions. We're very active in many of the social networking sites, especially active on Twitter, for which we're very proud really of being able to engage people. We talk a lot about events that are upcoming and about ways in which people volunteer. And so for this we're very proud really of the way in which Drupal allows integration with external tools. And we use that as much as we can in the site. The second site when I talk about we run on Drupal is the blog sites. This is really a very simple site. It does one job and it does it quite well really. It was originally a WordPress blog run on WordPress.com, which is obviously not so good on the branding side of things. So we moved it in-house into a blog, a Drupal blog pretty soon after I arrived three years ago. Doing really what Dries was talking about this morning, as I said before, trying to bring up all of our websites on to one platform. The blog site does two jobs for us. One is that it gives a voice to the voiceless. One of the things we do very frequently is we allow people who are working within the field to talk about their experience, their life, what's going on, where they are. And so many of the blogs on there are stories of people's own experiences. But we also try and make it a way in which the real human beings inside the organization are able to talk as well. So we make a big point of identifying each of the bloggers on the site as well. And this allows the site to be a place of dialogue, a place of exchange, a conversation of thoughts and ideas backwards and forwards. One of the things we've been able to do with all this is we've been able to interact much more closely with the social networking sites. So you may have seen in some of the screenshots, we've created a short URL service ox.am. We're very fortunate that Arminia has a .am domain, top level domain extension. So we have ox.am as our URL shortening service. And the good old Jeff Robbins created the short URL tool for Drupal. So we have our very own short URL website to create our short URLs which are then able to use all over the place such as social web links. And then the final thing just to say at this point is that in the public web stuff we do everything in three languages. English, French and Spanish are the languages that we publish in English as our business language. But and so the internet is only in English but the public web is all in three languages. Excellent. So sort of, you know, Joe sort of reviewed the sort of two of the major public websites that helped to communicate Oxfam's vision to the sort of the west of the world. I'm going to talk for a little bit around a private website which is called Sumis but it's really the sort of global internet for Oxfam. There's something like 6,000 people that are on it that sort of are across the Confederacy. And it's sort of designed to have a sort of, you know, connecting type of experience for everybody. People who work across the different geographies often tackle the same problems. And one of the major goals of the site was to figure out ways that they can share documents and communicate and get up to date with sort of best practices and what people are doing. Drupal as it turns out is a pretty good tool for this kind of stuff. And there's a lot of features and function I'll show you that was relatively straightforward to build in Drupal but has an enormously powerful impact on sort of organizational effectiveness and the ability to sort of work with other people. The site itself is pretty large at this point. It's got about 100,000 pieces of content, a lot of documents, a lot of news posts, forum posts, a number of other things. And that all sort of, you know, is sort of parceled out depending on what category or kind of thing it is. But there's a lot going on the site. It runs in the cloud, has a lot of smart logic behind it. And it's, you know, really sort of sets out to say, how can we coordinate and amplify the sort of work that's already being done? So when I, we sort of got involved in this project, almost two years ago now, we sort of came in or I sort of came in and sort of worked with Joe and other people there to figure out sort of how is the organization currently structuring itself into small teams into small groups and to understand sort of what it would take to sort of add a little Drupal magic to it to make those those kinds of processes better. I think for a lot of people in this room who work with technology and nonprofits, you're quickly aware that nonprofits and NGOs have very particular ways to already do things. It's very hard sometimes to change those things. You can sort of get to a certain point. And I think one of the important sort of sort of initial goals we had with the site was, how do we sort of take what's already being done and if there are ways to make that better, as opposed to trying to just drop in a solution say it's all this way now. So we identified a number of things for as part of the strategy process, like a focus on documents, for example, that became really important in the work that we did or a desire to connect with other people. Really important. And I would sort of say to sort of, in terms of sort of thinking through a project like this, one of the things that we found really helpful was the idea of prototyping. Drupal, because it is so modular and extendable, it's relatively easy to sort of just drop in a module that does something relatively roughly and sort of see is that going to work for your organization. So we spent at least the first three months of the project really just sort of coming up with ideas and doing tests. We spent a lot of time with OpenHRAM, which is a great tool, I assume a number of people in this room are using it. Great collaboration tool, works really well for a bunch of use cases. The Oxent site, we initially started with OpenHRAM prototype, realized quite quickly that there's a lot more complexity that they needed than OpenHRAM provides, but really had the opportunity to try getting users on OpenHRAM and applying more modules on top of that really just sort of see how things work. So you'll see stuff we'll talk about a little bit around sort of activity feeds and sort of notifications. These are things where you can install the activity module or the notifications module and get a sort of out-of-the-box experience that you can sort of start to see how will that help my organization. But we sort of spent about three months working through that. I had a lot of 7 AM phone calls because I live in San Francisco with Oxford. That was fun. Very great. But it was good to sort of get that rolling. And I would say as a Drupal project, Drupal makes it so easy to get things up and running quickly. You should spend a lot of time figuring out how to prototype and test things. But ultimately, it's not about just building it the right way. It's about building it the way that would work for people. And so that was certainly a goal. As well as figure out a design and some other sort of styles that still reflected the Oxfam brand and identity, but would work well for actual end users. So there's a lot of different elements. You'll see little drop-down menus, see-all buttons, and style boxes that we use sort of consistently across the site that I think look good but also function well. And those went through the same sort of iteration process. In terms of sort of getting into the features of the site, the sort of core of the internet site is it's a group system. It uses organic groups. It has quite a few of these things that would range anything from a sort of short-term team that would be put together to handle a particular crisis, to sort of ongoing stakeholder organizations that sort of persist throughout the organization. And each of the groups really is sort of a central driving place for sort of communication and work. Drupal has a great group system, organic groups in Drupal 6, groups in Drupal 7, and that's something that I think also reflects the sort of team-based approach and collaboration approach that works really well at Oxfam. So when we started off, some of the stuff that went on here that was relatively easy to do in Drupal is we, of course, because it's a group, you can join the groups. There's a member list available for individual groups. You can see sort of who's a part of it and what their title organization is. This sort of helps to get some of the connection stuff we'll talk about in a minute. But member lists were relatively easy to do here. There's a tab on all the groups. You can see who the members are. There's also a set of sort of permissions around each group. Some groups are private, some are public, some are sort of semi in both ways. And that was also really helpful because there's a lot of work sometimes that is of a confidential nature or private nature and having a system that will allow you to sort of have those permissions is really important. And Drupal is really good at this because you have a node access system in Drupal that is sort of connecting the entire sort of framework together. So we can set it up so that a particular group, you can say this piece of content is available to the entire public and this one is private and not only will that show up sort of appropriately in people's feeds, they will see public stuff not private but it will also work if they share it. It will also work on search and it sort of all ties together. And then that's a real good advantage of Drupal is that sort of access control system because everything sort of talks to it. And if you have use cases where some stuff seems to be private, some public node access in Drupal is a little tricky to get set up right, but it's definitely powerful when you do. And then sort of the bulk then of the rest of the stuff on the group sites is really features. It's what kinds of things do people who want to have a group and have members of that group do. And so to sort of run through this kind of stuff, the sort of the biggest feature I think that's the most used just by frequency is the notification system where if you're a member of a group, the assumption isn't that you're gonna come to this website every day and check every one of your groups, but that you're gonna be able to manage your sort of queue of emails in a way that makes sense to you. So you can have a digest version or a daily version or a real time version, but that if you're a member of a group and you've so decided to, you can say I want an email for every new news post, I want an email for every new document, this kind of thing. And this I think is also a real good advantage of Drupal. I think people who really love Drupal are like, oh, it's so great, I work on the site every day. But when you start talking about organizations where some of the people aren't as tech savvy or people who are in low bandwidth environments to maybe only have a mobile device or can't access the internet as regularly, having email notifications send out is really slick. And the notifications module in Drupal is a good framework that has a lot of different functionality for what's possible. So every group has that as an option and users can choose if they want it or not. There's also an activity stream that uses the activity module, which I mentioned, that allows users who do come to the site but maybe miss something that happened to browse history. The activity stuff is really smart, it'll work for a per group basis on a global basis. And I can sort of talk a bit about how it works for users in a minute, but that's a part of the site. And then when you start talking about other sort of add-on features that groups would need, we have a really strong calendaring and event system. So you can post individual events, you can get a feed out of those events, and there's now several different view displays of what the events look like. So you can see week view, month view, this kind of thing. And that helps to sort of coordinate people who maybe have a schedule that has several different groups of events that they can sort of see what kind of stuff they have. There's also what's called core information on this site, but it sort of works a lot like the page system in Drupal and has to some extent a sort of wiki functionality where you have a sort of set page and you can create documentation or you can create information. And that kind of stuff, if you just want a really lightweight wiki style type of thing, you can sort of just turn on a standard Drupal page, add some revision control to it, and maybe some filtering on like some markdown or other filtering to it. And you can actually get a really collaborative space. Only one person edited at a time and it's got some limitations, but it's easy to set up and it can work really well if you just wanna say, hey, I'm gonna keep 10 pages that reflect are these specific ideas and people can update them and see who updates them. And that's just a feature on the site. There's also a discussion system that it sort of looks like a forum that allows for sort of a more interactive type of back and forth. There is a forum module in Drupal which does work for some cases. For this thing, we actually just took a normal sort of content type and just had comments to it, but they're threaded so you can have actual sort of rich conversations. And they're actually sort of themed and put into a view on the site. So it actually does look sort of more like a forum, this many replies, last replies kind of thing. There's also rich multimedia integration. The EM field module is used here in Drupal 7. You could use the media module and that'll support sort of videos from third party sites, audio from third party sites. There's also the audio module on here if you want to upload your MP3 and a number of other multimedia things that allow you to have those assets inputted into the system so they can be shared or referenced or otherwise used on the site. And then there's a few other sort of things that are helpful. There's a Twitter sort of ISS system called Shouts that's sort of a microblogging service. Hey, this is what I'm up to. This is what I'm doing. Check out this link. And that's really neat because it'll show up on the group, but it also will be broadcast out by email as well as pop up in people's activity streams. There's a sort of full news blog type of situation to see latest updates. And then there's a sort of lightweight task management system that allows you to assign certain tickets to people and use it to anything to like manage new features on the website to manage writing a report or these kind of things. And then there's a document library system I'll talk about as well. That's also sort of cool. And all of these things you get to choose as a group of minister. Do you want them? Do you not want them? And so each group is sort of customized differently. So you'll see here where's a discussion thing. There's a block right there for discussions. If you decided you didn't actually want to have discussions, you turned it off. It would just simply go away. And that helps. Each group is different and this helps to customize it. The document library is a feature that there's a lot of ways to document management in Drupal as well as other tools. There's tools like a Fresco. It's open source is a great tool for document management. There's also ways to do it in Drupal that are really sort of slick. In this case, since documents were such an important part of the site, there was tens of thousands of them that we imported when we started. We sort of built it in a document system for each group where you could actually upload the document and assign it specific taxonomy, have comments against it, share it, have it be permissioned and version controlled and these kinds of things. It's not a sophisticated document management system as something like a Fresco would be, but it works within the existing framework of Drupal. So you automatically get a notification when one's added. You automatically have your permission system. It shows up in the search and this kind of thing. And so that's the kind of thing that ended up, can be really helpful for sort of structuring a group that has a number of assets they wanna manage. There's also a really powerful Apache Solar Search integrated in the site, which is a total Drupal standard for any sort of serious search. Apache Solar is really neat if you do have a site that has a lot of content on it. It'll work for internal purposes as well as external and respect access rules, which is very useful. And you can do everything from searching the taxonomy and then filtering it to searching with inside a document or searching, we even set up a ability is you could search other Drupal sites if you wanted or had this site searched by other sites as well, which offers a sort of multi-site function, just totally cool. It's also very fast and scalable, so you can use it without having the sites slow down. But documents are, it can be a really important part and Drupal does an okay job of managing them, but a really good job of integrating them into everything else that goes on. There's also sort of the last really big part of the site is the ability for individual users to have their own profile and presence on the site. One of the sort of original goals was to understand that in a confederation of Oxmer you have 15 plus organizations, you do have people working on similar stuff and you really wanna facilitate the collaboration of those things. So there is this, every user gets a profile that fills out the information about them, what they work on, what groups they're in, and some other information on contact stuff. As well as you can see, there's an activity stream for that user so you can see what Polar is up to, things she's done and get that kind of information. There's a, this is a profile that's obviously linked to anywhere the user comments or posts a document or shows them an activity feed and this really helps to sort of expose people in the organization to other people in the organization that are doing similar work or even relevant work. And that's the kind of thing that you can sort of build, there's a friend system in place here as well as a member directory system. So you can use a member directory to just sort of browse people, hey, I'm working on a technology issue in Great Britain, I could search and find someone like Joe who I could then pop an email or sort of see what he's up to or maybe I'm working in a different area with a different geography and I can sort of filter and sort people like that. When I find people that I like I can actually go ahead and sort of add them as sort of friends or followers sort of to the system. And then there's actually a sort of aggregated activity feed where you can sort of sort of follow or see all the activity of people that are like you. So if you're a technologist in the organization you can connect with all the other technologists and then you can get a really, you can get their micro blogs, you can get their documents. So you can really sort of get a bigger sense of what the organization does. And I think it's really important when you have a sort of geographically dispersed organization but it would totally work if you're just in and you know, have two offices or even a really big office and walk this. And Drupal does this really well. Activity module works with user relationship module to you know, have this kind of integration and all works really well with views. And so it was pretty easy to sort of set up. Getting it, you know, useful obviously is a little bit of a chore but you can check it out real easily. There's also the ability to customize your user experience which we'll talk to a little bit of detail in a minute around the specifics of a user dashboard. Not every user is the same so they can customize their experience. But the sort of, you know, overall goal of the internet site was to say, let's understand that we're working in teams and collaborating, let's build functionalities really useful for those groups and then let everybody on the site have a profile and allow them to interact and work with other people. So that's sort of what all went on with the internet and when it gets a lot of use you can see a lot of interaction and that's really cool. And it was definitely a lot of work to build but it's leveraging so much existing Drupal technology that you can replicate this kind of thing relatively easily and that's the kind of thing I think it made really is why Drupal works really well for folks because these are all of these use cases somebody has solved five different ways you just can put them together like Legos and put a theme on it and now you have a really cool site. So that's sort of the high level here in terms of sort of what's gone on public private websites. And I think we're sort of spend the remainder of the time before we take some questions which we can sort of get into discussions around that but really sort of talking about a couple of features we wanted to call it in specific as things that I think would be very useful to people in this room and then show you sort of a quick Drupal recipe for how to do it. We have some code and some modules here that will be in the slides you can download so if you're not a developer you can download it and send it to a developer and start a conversation around that but I think it's sort of part of this is sort of technical like what do you do to make this happen? And the other piece is actually more sort of inspirational or sort of what is possible just to get people an idea. So I've got a few of them and Joe has a few of them that we take some questions. And happy of course to follow up on any technical details later if people want at the conference around these things. So the first really technical thing I want to sort of highlight is as I mentioned users have the ability to customize their own experiences on the site. This is something that Drupal.org has if you're on that site. This is a slightly more powerful version of that. But the sort of foundation here is this site is all built using a module in Drupal called the panels module. I'm a big fan of it. I think it's actually really good for Drupal site development but I mean you can do it either way. The specific cool part about panels is that everything in panels is sort of treated like it's called the panel pane but it's sort of an individual widget. So like this section right here for events by region is a little widget that gets developed and built sort of independently. It actually probably is using views on the back end to build this data set but it's sort of it's own little bit. And then all the site for all the internet sites all laid out in panels. So every element is a panel of some sort and they have different permission rules and behaviors depending on where they are and who's looking at them. But the cool part is that because it is in panels you can actually do a lot of customization on top of it. So there's a button you'd see here that says customize this page. And if you actually go ahead and click that what ends up happening is you know it sort of switches the view so it actually has sort of a more of an administration view. This is only for this user and only for their specific functionality but you can see we'll blow that up just to see a little bigger. You can see how what used to look just be the content now has the ability to filter various settings for that piece of content to actually delete it. There's a little mover bit that you can move it around to different areas and then an add new pane item so you can add additional items here. So if you hit add you actually get a sort of add modal that pops up and lets you have a widget library of there's some global widgets there's some just just for me widgets there's some miscellaneous ones and some networking ones. And then this is something that you know it's sort of relatively new rolled out in the site but it allows for people to have that kind of customization experience and you can do this for as a developer you can do this for a user homepage you can do this for a group homepage you could do this for any number of pages and you could do it either for a per group basis per user basis it's pretty flexible. The sort of the recipe here to do it you would obviously need panels module to do this but there is ways to do this with the dashboard module as well if you don't use panels and basically the way we had done it on this site was we use a module called panels IPE which stands for in place editor it's what actually lets the dragging and dropping happen on the front page. Panels node and content profile to say every user gets one of these panel nodes that they can configure and then you know just when the user gets created this function gets called to give every user a panel node and then when you actually look at the homepage calls this function or these two lines down here to just show that page to users less than edit it. So it's a it's pretty like it's I thought it was a pretty clever way to do this but it lets you have a homepage that's customizable per user by using content profile and you can then define all the widgets to go in I think it's a second thing. Recommendations so as I mentioned there's a lot of need to try to connect people to other people that do similar things or groups do similar things and if you go on like various like social networks they'll Twitter will recommend you you know people to follow Facebook will recommend you friends and these are pretty advanced algorithms and they're what they are but a really like lightweight way to do this is to build little widgets like this that you can put on your site as an internal site so there's a recommended groups and people but you could just as easily do this for document or activity or event or whatever you want. So this is the sort of front end of it the back end is really simple Drupal it just says hey I already have views in taxonomy module on my site let's just go ahead and make sure we have a structured set of like interests or categories to apply to different people so I might be interested in Drupal and this other person might be interested in Drupal and then the magic here is just to create a view of users that shows me all the users that have interests like mine and you know that'll then theme it however you like but that way you can sort of say hey like this user has five interests show me some users that have similar interests and you can actually then just display the result and this is a pretty quick way to sort of go from you know hey I don't know who else to connect on the site to you know here's a specific person you might want to talk to and it'll actually show you which keywords match so in this case you know these these keywords actually match this user that was really cool so this is also a neat little recipe to set this up that this would be of interest to you So that's two from the internet the two little tricks from the public websites as I mentioned before because we are 15 organizations in different countries one of the tasks for the public website is to signpost people towards their local Oxfam and so we use some clever little tricks behind the scenes to work out where in the world people are and then direct them to their local Oxfam to find out more about what that Oxfam is doing or to donate towards that Oxfam's work if you're not in one of those countries then you get a vanilla version of the same sort of thing which allows you to choose from this dropdown box here we'll go to the general donate page how you can find out more to do this obviously we have a lot of users on our public website and so we needed some pretty heavy caching to make the website run at all but we needed the cache tool to be aware of people's geographical location the standard cache tool just creates one cache for every public user, every anonymous user which is no good for us so what we did is we took this is our little recipe, what we did we took one of the best cache modules that are out there called cache module we grabbed some free data which is available from maxmind.com which converts IP addresses to a two-letter country code and then we made some additions to the cache module to prefix everything that's stored in the cache with the country code it's very, very, very simple really all it's doing for the techy-minded this is basically what's happening if there's a country detected then we just add on to the data that's being stored, the country code and cache module has some settings put in the settings.php file which we're able to capitalize on and say these are the only countries that we're listed we're interested in in our list here so we cache for 15 countries only and if you're not in those 15 countries you get the generalized vanilla view if you're in Canada you'll have a slightly different experience because there's also Quebec in Canada the free data doesn't go down fine-grained enough to region so in Canada we present data for both Oxone Canada and Oxone Quebec second example as I said we work in three different languages and so something about some language-wear contents the growth campaign is, as I mentioned earlier is our big campaign that we're working on at the moment all about food and food security is one of the highest-profile things we've ever done as a result of that it has its own brand being developed for it the logo is different from the current Oxone logos there's a color palette which is unique for it and some very unique materials being generated per country, per language the three public languages that we work in and so I very very briefly mentioned earlier that we use three key modules from Drupal Spaces Context and Features to create these microsites which are all language-aware so in English the growth campaign looks like this you have the header of the site to tell you you're still within the Oxone.org site but everything in this section is a different color palette different fonts from everything else in the rest of the sites that's English this is French this is Spanish and so the recipe for that is this Spaces basically allows certain things to be set apart as distinguishing this area of the site as distinct from everything else allows you to override some of the essential variables in Drupal like the Bally for the homepage or a whole myriad of other variables it does that in lots of different options an organic group can be a space or a user can be a space the way we do it is with the taxonomy module a taxonomy term is the term for a space so if something can be classified with a taxonomy term which in Drupal 6 is basically any node then that says this space is active when the space is active the great thing about this is using Features module we can turn Features on and off in very similar way to the way Matt was talking about with the groups in the internet you can choose whether to have active certain features and we can build whichever features we want so we have a feature which creates press releases a feature which allows media contacts a feature which allows key facts and several others that I can't remember at the top of my head and then each space can choose to have these turned on and off for the three campaign spaces they're basically identical so they have the same features turned on and off but as we go forward and have more campaigns using the same set of tools we can say this campaign needs to have more documents and so we have that feature turned on but it's not interested in media contacts we can have that feature turned off we could even go down as fine-grained as having a particular logo per space which is really, really cool and because we can detect whether a space is active with Spaces module very, very easily then we can do all kinds of things like adding CSS, JavaScript doing lots and lots of theme overrides whatever we want to to make that section of the site look completely different from any other section so a quick little recipe I think that kind of brings us towards the end so I guess it's time for questions yeah, that's me I think it's a common question for a lot of NGOs that I've talked to is how do you delegate responsibility for publishing materials and it's something we've really struggled with and historically the way we've done it is we've had an English editor, a French editor and a Spanish editor and they're the only people who are allowed to put stuff onto the site which has worked great but it's exhausting for them everything has to go through them and as time's gone on we slowly delegated more and more material away from those three key people and essentially we've done that by training people to a certain standard I'm hoping to, we are currently and I'm hoping to push more towards delegating more which I think will do what you're talking about so already we have several different user roles each user role has a different level of access they can, a different amount of things they can use per no-edit page so historically it's been very, very centralised through those three editors we are slowly moving to delegate more and it's tricky. Well, Drupal has a really good user role definition system pretty much, you can create as many permissions that can be granted per role and then as a user signs into the site then Drupal understands what role they have and we basically use that all the way through to work out whether this user is allowed to create these kind of content that pieces of content whether they're allowed to create all the content or just put it into an editing workflow. Yes, yeah, we do it all we do translate as much as we possibly can obviously it's really important that it's well, all these sort of the framework elements of Drupal, including the menu system all is translated through locale module built into the Drupal core which does work very, very well we found. Well, the locale module allows you to define which languages are active within the system so we don't allow any content to be put in that's not in those three languages we don't publish in German we only publish in French, Spanish and English so if something arrives in Arabic we put the PDF on in Arabic but with English text in the CMS. Yes, yeah. Yeah, it always has a one in English. French and Spanish follow on whenever they get translated which is usually pretty close afterwards. There's not much I can think of that's in safe Spanish and not in English although as you know in South America South America and Latin America there's a lot of material focused on those areas just in Spanish and not in English. We just omit them, yeah. Every language, every page has a language defined and anything so if you're viewing in Spanish you only see materialists in Spanish. So nice and loud. Well, you bring up the import so the question is bespoke document management system in Drupal the importing was from the clone system there's tens of thousands of documents that was a little tricky in those small parks things had changed a little bit sort of over the years he had a few different versions. The second part of your question answer the importing that we used a bunch of drush scripts that actually could have created individual Drupal document nodes on the fly or as part of the import script. So it would basically take the dump from clone it would parse it sort of do category matching do sort of date formatting and then just say okay let's go create a bunch of those nodes. On terms of the actual system I'm happy definitely to get some of the details on it the high level of it is there's a node type called document and a node type called document folder and you can create folders and reference documents for them and then it's just a view of the documents that are in there and you use a there's versioning that's there taxonomy that's there node access that's there and then you can sort of search for short and it's just treated like normal content. It's not as powerful as like an alfresco or some higher level document management but it does work with all the other stuff so that's a sort of good thing. So yeah like file field pros views equal document management. So that's about the amount of time we have. Thank you everyone for coming to the session and there is a there is this bit of surveys for sessions you've attended here. If you like this kind of stuff you can tell the organizers and next year they'll have more of those. So thank you everyone enjoy your DrupalCon London.