Hi, I am new to drupal and was wondering if someone could point me in the right direction. I want to setup a site for multiple high schools to each have there own blog. So lets say the school name was "Sample" then when they sign up their blog would be created under www.domain.com/sample . Students could then post articles blog entries, polls, whatever, etc. Only relevant information to the school would then show up on their site.

Any suggestions for getting me going in the right direction...

Thanks in advance.

Chris

Comments

bonobo’s picture

what you are trying to accomplish. Do you have any more details about this project? If you have more specifics, it would be possible to give you a more focussed response.

Thanks,

Bill

-------
http://www.funnymonkey.com
Tools for Teachers

cghobbs’s picture

Well here's the basics of how it will work.

Each campus will have at least one or more campus administrators who will be able to contribute to only their campus site (i.e. http://www.domain.com/campusname). For example there will be a number of blocks that will appear on there front page (e.g. when and where they meet, welcome message, news items, etc.) Furthermore, they will also be able to add additional content like blogs, or additional pages etc.

So when a visitor browses to http://www.domain.com/campusname it will come up with an index page for that campus, as well that campus will be able to choose it's own specific template. Every page/node/content that is created by the user will then show up under http://www.domain.com/campusname/pagename

Where campusname is replaced with name of the users campus and pagename is replaced with the name of the page the choose to designate.

Does that make a bit more sense? Do you think this will need to be a lot of custom programming or are there modules/non-programming means out there already. I am comfortable programming, but for the sake of avoiding re-inventing something, I would like to start with as much as possible.

I hope this makes more sense. Thank you for your response already. I appreciate it.

bonobo’s picture

Drupal site with any degree of access control will require a fair amount of programming -- if, for example, you were going to make it difficult/impossible for one school to post into another school's section -- there are some access control modules out there (organic groups, taxonomy access control, and simple access) that you should check out, but I don't think any of them will get you as far as you want to go.

This could be done with far less/possibly no coding by using one main site to aggregate feeds from the individual school sites. So, each school would have its own drupal install, and the feeds from these sites would be collected in the main site -- this way, access control/the ability to post content within the individual sites would be managed by site membership, which is basically what drupal is designed to do --

Using multiple sites running off one codebase, you could reduce the administrative overhead as well -- While setting up individual sites for each school would add a few steps to the set-up process, you would reap some benefits from having a more standard drupal install.

Unless, of course, I'm missing some essential detail :)

Stranger things have been known to happen.

Cheers,

Bill

-------
http://www.funnymonkey.com
Tools for Teachers

cghobbs’s picture

Those are great comments, I'm certain I will have to do some programming.

What you said about multiple sites was interesting and perhaps necessary. However the scope of the project is quite large, we hope to grow the number of sites to eventually 4000, but initially it will be around 200.

Here is how I think it would work, please let me know if I am wrong. When the user signs up this what happens through a php script.

1. a new subdomain is setup using the .htaccess file (schoolname.domain.com)
2. A new settings file is setup in .sites/schoolname.domain.com/settings.php
3. A new blank database is created from a mysql template (called 'schoolname').

Finished

The user goes to schoolname.domain.com and finds there new site read for them to build.

A couple of further questions regarding this:
1. Is this the best way considering the scope and size of the project?
2. Will I be able to setup certain roles who have access to all the sites? (without creating a new user)
3. I need to make it so that all the user accounts are shared over all the sites. But only the school administrator add content to his site. Will that work?

bonobo’s picture

and, at the outset, I feel it necessary to stress that these comments are pretty general in nature -- at this point, I still feel like there are some details that need to get sorted out -- for example, how much (if any) contact do you want between member schools and the organization running the web service? How complex will the different web sites be for each institution? These questions, and others like them, could change the focus of what I'm currently suggesting.

RE the install process: I'd recommend making the changes to the htppd.conf file as opposed to the .htaccess file -- this will be kinder to your system resources. There is actually an auotinstall script -- while I haven't used it, you might want to check it out -- http://drupal.org/node/33581

CivicSpace (I think) also comes with an install script -- I haven't used that either, but you might want to check it out as well -- no use reinventing the wheel.

RE your three final questions:
1. There are a lot of ways of doing this right -- what you describe could work, but I'd still need more details to give anything approaching a reliable answer
2. Could be managed via the sql file used to create the site, or through a couple other ways -- you could use the login features of the drupal module, but there are some concerns re security with this approach -- this is not out of the box functionality
3. Do you want to protect the content of each site to site members? Unless you are publishing private content, the easiest approach here would be to allow anonymous users the right to view content, and then allow site members (and only site members) to create it. The only difficulty with this approach would have to do with the role you wanted comments to play on the site -- you could allow anonymous users to comment if you were using some anti-spam technique such as captchas and comment moderation, but this might not be what you are looking to do.

In some ways, the complexity of the coding necessary to make this work is loosely tied to how automated you want the administration to be. The more automated the administration, the heavier the coding requirements to run it.

Feel free to post back additional questions. I'd also be happy to discuss more details off line -- you can contact me via my contact form or through the contact page on my web site -- this sounds like an interesting project.

Cheers,

Bill

-------
http://www.funnymonkey.com
Tools for Teachers

cghobbs’s picture

Thanks for your comments... I will definately post back here as I get more research done with exactly what I am going to do.

boris mann’s picture

The right way to do this is likely as separate sites. You have a central shared user database and allow access at different levels to different sites. Not all of this is by any means done yet, but it gives you the maximum flexibility on a per campus basis, while still having a shared basis to quickly roll out lots of sites.

We've got some solutions for mass hosting that might interest you -- feel free to contact me.

sepeck’s picture

http://drupaled.org/

-sp
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

cghobbs’s picture

Thanks, that is definately a helpful site it has link to another site with a tutorial on something that will help me at least get in the framework of how to approach this project.

There is a lot that can be done just be using and tweaking modules that have to do with user roles.