Hi,

Background

I have been learning drupal for a while now and am pleased to say I have quite a number of drupal sites up and running and working well.

Most of my projects I still use 6.x but I am now also getting more into 7.x

I can create reasonably useful sites and have got my head round views and cck and maintaining and upgrading sites etc.

I need to create many many sites

Now I have been asked to help a number of smaller businesses to make numerous smallish websites.

I am familiar with multi-sites and have built quite a few clusters of sites using this feature. Perhaps 10 to 15 sites all off the same core.

Now I need to get over 100 built out. Most will be quite small, perhaps 10 to 50 pages of content each.

I am no longer a beginner, but....

So now I feel I am at the end of the Beginner Drupal level and wish to take advantage of other features and technologies to help speed up my drupal site production.

I have studied many books on the basics of drupal, but I can't seem to find good information on things that could really help me roll out these sites quicker.

How do I speed up my workflow?

My research has suggested that install profiles may help speed things up. But I honestly can't seem to find out how to actually create these. I believe that an install profile give you options when you are actually installing a site for the first time. But how do you create one?

Even using the multi-sites feature, I currently have to go into each new site, install it into it's own database, then go into administration and activate and setup all of the modules I use and configure things like cck, ckeditor, page title settings and various other common modules.

There is nothing fancy or complicated but it just takes so much time. I don't know if having an install profile and using multi-sites is the way to go, but otherwise I could easily spend 100 hours or more, just installing and configuring 100 new websites.

Some things are still a mystery. Where do I get the answers?

There are also other things which I have come across which make no sense to me yet. Things like Drush, Drush Make and Git and of course creating installation profiles.

I currently just host all of our sites on various shared hosting accounts with a few different resellers including hostgator, bluehost and United Hosting.

So I have very little understanding of things like server management or SSH etc.

Can you suggest how I can make quicker progress?

I suppose my two main questions are how do I rapidly create and configure over 100 fairly similar websites using a similar number of common modules and how do I take my drupal skills to the next level. The sole purpose of which would be to speed things up in creating new sites, not to get into creating modules or writing code. I am not a programmer.

Any help or advice would be greatly appreciated.

Many thanks,

Sam

Comments

ayesh’s picture

It's really great to see you are confident about your skills. Congratulations!
Shared hosting, most popular, and worst. You have no deeper access to server(root access, etc). In most cases, you can't create databases using SSH as well.

Assuming you have a cPanel hosting account.

Goto Subdomains management page and setup a subdomain like*.example.com, and pointing to a "sandbox" account.
Put a fresh drupal distro files there, and then you can create multiple sites using same codebase, without creating subdomains everytime. i personally believe that for testing purposes, a subdomain is better than a sub folder installation.

If you have SSH access, you can create a small shell script to copy settings.php(unmodified one) and default.settings.php files, CHMOD directories, and do the things youneed to install a new branch of base.

You can copy the default.profile file(with folder) to duplicate the folder.
I have added Views, Token, Devel, CCK, and some other essential modules in ./sites/all/modules folder and if I need to test a theme, I simply create a new folder, install Drupal there using my own installation profile and then install the theme.

Creating installation profiles is pretty easy and as a quickstart, modify the copied default.profile file to hold a different name, and under modules list, you can add "machine names" of modules to automatically enable during the installation.("machine names" is the X , in drupal.org/project/X project pages.)
Enabling token, devel, admin_menu, views, views_ui, Views_bulk_operations (latest DEV branch), rules, and modules as you need in installation profile is a good idea, I think.

There is a document page on how to create installation profiles, but can't remember exactly. You can also see how contributed Installation Profiles has implemented many features. (I like Drupalbin installation profile much)

and Good luck!

Steady’s picture

Ayesh and all,

I believe, rightly or wrongly that not being some kind of programmer, esp PHP, is a major hinderance is getting the best out of drupal.

So many of the posts I read, or forum comments, or drupal docs, seem to assume that I know php to some degree or other. Common answers say something like, "just write a module" or "just do this or that" when I have little knowledge of what it is.

I think there is a shortage of things like "Best Practice..." or "How to take things further" etc...in simple language that anyone who knows the basics of drupal, html, css etc can understand.

I understand most of what you said. But it seems like thngs like Installation Profiles are a nice idea from Drupal, but aren't backed up with any simple way for a novice to get the ball rolling and have at least a little success with them.

Perhaps if one knew php well and about functions and what not, then they may appear simple.

To me right now they don't. I don't mind rolling up my sleeves and getting stuck in, but I don't know where I need to get stuck in :-)

In other words I don't know what it is that I don't know. So I don't know where to start to take my drupal knowledge further that will be useful in practice.

Sam

ayesh’s picture

Yes, PHP is a must. You can create a number of sites with zero coding knowledge but you will stuck somewhere. Also, SQL.
These things are water and food to live in a CMS world. No matter Drupal, Joomla, Wordpress or anything else, you need them.
api.drupal.org, I think, is a good place to start. The best thing is, everything of core is documented there.
One thing you need to keep in mind is, Views, is now a common way to pull data from db. You can check some Wordpres plugins and you will see there are some plugins to show last 5 posts in the site using SQL queries. Never try to do that. Use existing modules always as you can.
All modules in d.o are GPL'd so you can try modifying existing modules, etc.
If you are not good with php, use w3schools.com and tizag php documents. Then, read the core API and try to create a duplicate some functionality that an existing module offer. Then you can compare yours and contributed one to see what "best practices" are missing. Modules must compatible with coding standards and best practices in order to get published in d.o

Get a github account and start to code with it. There are many good GUI GIT solutions such as SmartGIT, to make your coding even easier.

Where I started is, there is a module called Domain bulk, that add subdomains to Domain Access module in bulk. Somehow I needed to add TLDs in bulk. I modified the module to support TLDs and I learned how to hook other modules. Then, I modified some modules to make it work for me. Next, the problem came in. When some security fixes comes to modified modules, we must fix them. I replaced a modified module with a new release so I got the site broke. Later, I thought my own new modules is the way, and tried to create new ones. I was using php filter module to show some stuff in the site and I understood creating a module with a block output is good. There are number of such things to think.
One thing I suggest is, don't be afraid. you will get many errors when you run a code. Don't give up.