Drupal

Thought I’d kick off a Drupal thread here. I’ve been doing web dev/design under Drupal for over a decade, and over the past year or so have been doing some very cool things, largely related to advanced content management dealing with general-interest, media-intensive content and (largely) data-driven, university-specific content for faculty, staff and students. My most-used tools are CCK (now part of core) Views and Feeds, as well as a sizable collection of supporting modules, and on the design side I’m a big fan of Zen sub-themes. I’d like to start documenting my workflows and how I use them. Plus a ton of gotcha and general tech/design learnings/best practices. Plus a fair amount of Excel learnings (a tool that is immensely helpful in staging all this stuff during all phases of a project).

Documentation, as is usually the case, a step behind but I’m doing my best to do it as I go, and I’m very committed to getting everything documented in full, and want to expose all of it so that other developers/designers/content-admins can take advantage of this stuff and save time on R&D. Disclaimer: I try, whenever possible, to rely exclusively on publicly-available stuff, i.e. core and contrib modules, vs. custom module development which, while very cool, often pose problems for new/less-skilled/more-busy devs/admins and for people who later inherit systems that rely on them but don’t have access to the minds that created them.

I thought this thread might possibly be of interest to a few other folks here, because at a recent web dev meeting on my campus some of my recent projects and approaches and ideas seemed to garner a lot of interest amongst my peers and colleagues. But I have no idea how many Qt3 people use Drupal.

Anyway, this thread is mostly (for me) a place-holder, and an effort to ascertain interest. If there is much, I’ll start share how-to links and such some time in the next couple of months. And until that happens, I’ll be more than happy to field questions about anything anyone wants to ask.

My only contribution here is to say never never never use Joomla. Since Drupal is one of the leading contenders, that seems like a much better choice not even ever having used it, because surely nothing could be as bad as Joomla.

I use Drupal. It’s neat, in that I can usually find what I want already made.

I am very interested in for-University content, given that I, er, teach at Universities.

Miramon - I have heard stories about Joomla. I have no interest in it as a result :)

Our current site for the organization I work for is running on a heavily modified but fairly ancient version of Drupal, created by a contractor several years back. His various hacks and custom modifications make it a bear for me–a general-interest nerd/technie with smatterings of useful/applicable knowledge–to administrate the site, and since that duty “officially” belongs to our technophobic Communications person anyway, we’re moving to WordPress at the end of the year.

Can’t say I’m sorry to see Drupal go. It’s definitely powerful, and in tinkering with it on my own to learn how to admin the existing site better, I was impressed by the extensibility and “general-purpose”-ness of the system. Our problems here are mostly a relic of a complete lack of documentation from the original dev than any issues with Drupal itself.

This is a big issue with any of the out of the box CMS’s out there. They are so easy to modify with modules/plugins, but as soon as you start relying on those modules, you can easily run into trouble with not being able to upgrade the core without breaking functionality. If the module is custom made just for you, and the dev is gone, lack of core upgradeability can turn into a big security headache.

On the other hand, they are amazingly easy to use and allow astonishing results with very little effort. I equate them to the Filemaker of the web world. Killer app if you keep scope limited, but if applied innappropriately, watch out! And chances are, the novices who use them will lack understanding of these limitations…

Yeah, Joomla is pretty terrible. Or at least, it was when I tried it out. And Wordpress is great for a lot of reasons, but modules (or plugins?) are usually poorly maintained and often incompatible with one another. I think this is because community developers for those CMSs don’t follow best practices like Drupal devs do.

Starlight, let me know what you mean when you say “university content” and maybe I can share some ideas that are of value to you*. Does your university use Banner? I recently started gathering requirements for Banner integration with a D7 site. Our folks want to either integrate Banner data into our site for various things, or do the reverse and merge our data into the student data ecosystems. I also want to pull in a few fields so that when students access my webforms, they have an opportunity to update certain Banner fields right there and then (e.g., name changes). I’m also interested in importing our university’s class schedule data so that I can recreate that system under Drupal. The current class schedule appears to have been, many years ago, cobbled together using an ancient and unmaintained Banner module of some kind that no one knows how (or wants) to maintain any more. It’s not responsive, barely usable, and over time the majority of the advanced search features were deactivated one by one as they stopped working.

Armando, you and Joseph raise a good point. Hacks and custom modifications are a huge no no and should be avoided like the plague. Short term benefit, long term pain in the butt. Even creating custom modules should be considered only when all other options have been explored and ruled out. I say this despite the fact that the power of creating your own module is supposed to be one of the best things about Drupal. Personally, I try to rely on core and contrib modules for the same reason that a man who is his own lawyer has a fool for a client, and I would never want to have someone take over one of my sites and be stuck with maintaining custom code.

And documentation, yeah. That’s a common problem. No one likes to document stuff, or has time to. I’m trying to fix that on my university site, and plan to have tons of documentation embedded right into the site, and other versions of it living in a university wiki for other Drupal devs, and other variations of it posted on drupal.org.

Joseph, upgrading core from one minor version to another (e.g. from 7.26 to 7.28) rarely breaks contributed modules. In fact, I don’t believe that’s ever happened on any of my D7 sites, and if it did and I forgot, it’s probably because someone roled out a contrib module patch on short notice. But upgrading a contributed module occasionally does have unforeseen consequences for other contributed modules. For me that’s also been pretty rare, even on sites where I end up having to rely on a lot of contrib modules, and again patches seem to appear pretty quickly.

My biggest Drupal pet peeves are (1) some contrib modules are listed as “actively maintained” but are anything but; (2) a major version upgrade (e.g. from 7 to 8) often requires either abandoning modules you currently depend on or postponing the upgrade until the new version has been out for about a year and (3) Drupal is kind of a hog, and even with lots of caching you ultimately end up having to throw more hardware at it than you might have planned.

*Edit: Starlight, after more thought, noting that you are an instructor or a professor, I realized that the Banner stuff I listed probably wouldn’t interest you and that you may be more interested in things like catalog/syllabus content, classroom features (resources such as technological capabilities, reserving rooms, etc.), course change/add proposals/workflows, course evaluations, and scheduling related things such as classroom reservations/availability, final exams, etc. I’ve worked with all of these things and would love to talk about what I know and have observed if that might be helpful.

Yea, no Banner. They both use Drupal for the general student UI, one uses Moodle for the actual courses, the other one does it at faculty level…a mashup of Drupal and their own stuff…I’d like to try and persuade them to replace their custom stuff with more Drupal :)

I’ll post links once I have some public docs up and maybe the developers you work with can benefit from them. The tricky thing with college and university websites is, it’s often harder to quantify the benefits of doing things differently here, as opposed to in a corporation, where the correlation between powerful, flexible and usable interfaces can usually be mapped directly to increased customer satisfaction and, hence, increased profit. Making information transparent and keeping students and faculty/staff happy and unconfused is very important in my mind, but convincing the powers to be of the value of those things is much harder than I’d naively assumed when I first jumped from corporate to university work. One day, I’d like to engage a researcher in my department to help me build reports to help with this problem, but I fear that may be a pipe dream.

I also work in higher ed, for a small liberal arts college. We use Drupal in a lot of contexts including the main college web presence and as the broker for a ton of business process ‘stuff,’ (course evaluations, data collection via forms, registrations for events, Giving, reunion registration, curricular management and catalog creation, etc etc). We’re an Ellucian Colleague (ugh!) customer and have also done a ton of data integration work for things like faculty and staff pages, course pages, departmental staff, faculty and course listings, and so on. We’ve stuck with Drupal from 4.7 up through 7 - it’s served us well for ~8-9 years now. Whether we make the migration to 8 remains to be seen though - several of my staff are off to Drupalcon next week to help inform that decision.

We also make a lot of use of Views, though we kind of have a love-hate relationship with it, with the hate mostly stemming from performance issues.

We have a module originated by us in drupal contrib that’s used at several other SLACS that addresses inadequacies (to our view) in Drupal’s out of the box permission model that’s pretty good at dealing with the complex content authoring permission issues inherent to sprawling decentralized institutions like colleges.

And here I thought I was the only one working in higher ed that hangs around on QT3 ;-)

I built my university web site using wordpress. I really like using it. never used Druple…Wordpress seemed to do everything I needed

I have used Drupal, Wordpress, Joomla, even things like Phpnuke (ha… the memories).

I am not a expert, but my gut feeling is that every CMS has a different public. Joomla may even be the right tool for the right people.

Drupal is so simple It may turn smart people into idiots, so is not for everyone. Wordpress is somewhere in the middle, so it may be the right choice for a lot of people.

The way I see CMS’s, are like cars, different people will decide on different cars as “right”.

Agree that they’re all good for different things. Heck, a few months back I deployed a Wordpress site for a friend’s departmental website against my better judgement, and the experience was mostly positive for both of us.

I’m not sure that I agree that Drupal and Wordpress are positioned on that spectrum in the way that you think they are, but I’d love to hear more about why you think that is. Once you dive into the deeper stuff that you can do in Drupal (Views, Entity relationships and Rules to start with) you start to see possibilities that Wordpress can’t even begin to deal with (in my experience). And that’s not even addressing the way that Wordpress core and module growth and changes are strategized/coordinated. But generally speaking, the car analogy has certain merits.

But Joomla, not so much. Friends don’t let friends spin up new sites using Joomla. At least, not these days.

I need to hire a Drupal person/company for some design/web work for a non-profit I’m involved with (we need to move our cold fusion web site…please don’t laugh it was before I got there ) What is the going rate (typically) for a moderately complex web site (+30 pages) and what’s the best place to find such a person? I see 99 designs does web development now but I’ve never tried them.

I would estimate roughly $50-75/hour for contract work, depending on the scope of the project and maybe your region and maybe the fact that you’re non-profit. Consider posting a description of your project on groups.drupal.org and see what you hear back. It sounds like you have a fairly small website and some developers are willing to work for less on non-profits. That being said, finding someone who’s good at both frontend and backend can be challenging.

Feel free to post or PM me a link to your site with a summary of what you are looking for and I might be able to help you assess the amount of work involved in the migration. I love what I do and take so much pride in it that I have a serious weakness for doing analysis and work for free when it seems to be for a “good cause”. :)

I am programmer. I can learn a new programming language in a day, then slowly crawl to learn the library of objects/functions, and the “culture” of the language. But if the language have a strong philosophy, everything I don’t know, I can predict with accuracy, because will follow that philosophy.

C is easy, everything is a expresion that returns a value, then we have function that return void, is the way to say “ignore the return value”, but theres still a return value somewhere (in AX in x86).

Java is easy, everything must live inside a object, …and the apocalypse that follows that unlikely decision.

PHP is easy. Like C scripting, and always taking the low resistence lazy route.

Understanding Drupal took me a few seconds. Everything worth talking about is a node. So everything else is just ways to select nodes or present nodes.

I can’t claim to understand Joomla or Wordpress. I suspect Wordpress had a similar strong guide idea, but its more opaque. Joomla is… messy, like designed by a naive bureaucrat.

Very interesting and fascinating! Thanks!

I think you might have been deceived, re Wordpress vs. Drupal. The Drupal core team invests a lot of energy into establishing and maintaining best practices and APIs, while the Wordpress core team doesn’t seem to care as much. So you might have analyzed the respective APIs under “false” pretenses, with one API appearing to be more relaxed and seeming to be more flexible and powerful, vs. another API that appeared to be more rigid and less flexible. Context is everything. But I could be completely off-base considering that my programming skills are weaker than my dev/design/ba/pjm skills.

A strong guide idea make it easy to know how things that you don’t know will probably work. Is like knowing where are the trigger to enable light in a dark room. If the room make sense, your hand always find the trigger. If the room is made by a crazy men, the trigger is on a weird place and you will never trigger the lights on.

OH NOES!, I am revealing the secrets of my trade!

Building a beatiful “room”, using your model, is admirable, but making it easy for others to take advantage of it and use it to its full potential is often overlooked or ignored. People who come along and master such “rooms” have, I feel, a responsibility to describe how they achieved their goals so that others can reap from their successes without having to reinvent the wheel. This is one of the bigger problems with content management systems such as Drupal. There’s so much power and flexibility there, but documentation and tutorials are scarce. I don’t think that was exactly your point, but that’s my takeaway. I love your posts, Teiman, but I don’t think I always absorb the full message. :)

I just completed the first phase of a huge course equivalencies project. The old system, created many years ago by someone else, required that students drill down through several web pages, and view the data via various PDF downloads. The new system that I just rolled out in a test environment, currently being being tested by a bunch of staff and students, resides on a single page and it pulls various records from a ~5000 row database depending on selections in a three-level hierarchical select list at the top of the page. It has an optional Excel export that changes on the fly according to selection, and some fields displayed in the table dynamically link out to external pages where additional descriptive information lives. The system was put together using custom fields (often still called CCK fields), Views, Feeds Import, Rules and a bunch of other smaller supporting modules (some optional). No custom coding was required. So far it can handle importing/updating up to 2000 records at one time, and I’m still testing its limits with a goal of increasing that threshold to the max. I don’t want Excel to remain the system of record, once we’ve finished with data integrity/cleanup, but to a certain extent that decision is ultimately out of my hands, and this means that I have to continue working on the import/edit interfaces and make sure they can handle as many inserts/updates as possible. I also have additional displays that show new/updated records that have various issues that need to be addressed such as mismatched unique fields, and using Rules I am able to tell the system to notify me on the fly when issues need to be looked at.

Next steps: (1) finish import/notification mechanisms, (2) add a new component using the Search API and Faceted Search modules, which will allow me to index the fields being displayed (resulting in more efficient database querying as data is pulled up), (3) finish responsiveness (kids love their phones/tablets) and (4) finish documenting everything and publish it on a university wiki and on Stack Exchange.

Anyone that can get a complex system, and remade it into a simple system, that support what the old system supported, but is better, is a hero in my book. Its very easy to make a system slightly more complex, but very hard to remove the same feature much later. You seems to be fighting the good fight. I salute you! :D