Sunday, December 17, 2006

Frustrated With Drupal

OK, I admit it, I am very frustrated with Drupal right now.

I have spent days trying to do something that should be very simple - to set up Drupal with a system that allows me to send out my email newsletters.

It didn't help that my web host was in the middle of switching mailing list managers, from ezmlm to mailman. It didn't help when my ste was set up for mailman, but documented for exmlm.

After finally threatening to move my account elsewhere they actually sent me a terse four-line message telling me where and how to set up a mailman mailing list (the lists are all on another server so if you don't know where it is, you're stuck. And CSoft uses its own controlpanel, csoftadmin, which has its own unique command set).

In the interin, I tried a bunch of things with Drupal. I got to explore, for example, the Drupal Actions and Workflow modules. There is no documentation available for actions - not even something that sys you need to use actions in conjunction with some other manual. Nothing. And with workflow, the only documentation I could find was a video.

Drupal really really has to fix this. The search results thrown up by the site on any search are utterly useless. You get bits and pieces of discussion in the Drupal discussion forums - questions about how to install it, for example, with no links to the answer. What you don't get (maybe because it doesn't exist?) is documentation on how to use it.

Anyhow, after spending several hours figuring our how to make the workflow work, and to send an email message, I run into another problem: how to send an HTML message. It appears to have become very political inside the Drupal developer community, with the verdict being that the makers of Actions will only allow the purity of text email. Morons!

More burrowing through the Drupal site. Try the Send Module, which in turn requires the MimeMail Module. According to the site, Send is supposed to "permits you to create a 'send this item' link on any node type (image, story, event, etc.)." What it doesn't tell you is how you are supposed to do this. If there is a trigger or a toggle anywhere inside the module commands, I couldn't find it (and I spend hours searching, methodically going through every possible setting - I am nothing if not persistent (people who read these articles should know that by now)). So, another dead end. I cannot use these modules to send anything.

So anyhow. CSoft finally gets around to telling me about the new mailman installation. OK, fine. Forget trying to use Drupal to send emails, I'll just do that manually, and use the Drupal Mailman Manager module to allow people to subscribe and unsubscribe from mailing lists. I set up the lists in mailman (again working without proper documentation, so I'm working by feel here). I am able to subscribe and unsubscribe using my administrator user ID. Then I test on a typical website user. Disaster.

  • warning: array_merge_recursive() [function.array-merge-recursive]: Argument #1 is not an array in /home/downes/www/drupal/modules/user.module on line 2139.
  • warning: uasort() [function.uasort]: The argument should be an array in /home/downes/www/drupal/modules/user.module on line 2142.
(The links in the error message are, of course, are useless, pointing to nothing.)

I poked around in the code a bit - for some reason, the user.module code is more than 100K, with entire help files hard-coded in it. The problem is here:

    function _user_forms(&$edit, $account, $category, $hook = 'form') {
    $groups = array();
    foreach (module_list() as $module) {
    if ($data = module_invoke($module, 'user', $hook, $edit, $account, $category)) {
    $groups = array_merge_recursive($data, $groups); [2139]
    }
    }
    uasort($groups, '_user_sort'); [2142]
    return empty($groups) ? FALSE : $groups;
    }

So what we have happening here is that the output from one function fails as input to the next function. There is, of course, no type checking or anything like what quality code would perform; it just breaks.

I tried a couple things to fix it, but I am simply not familiar enough with this software to fix it.

Just adding to my frustration is that something - I know not what - is bogging the site down. Could be my service provider, which sometimes hangs for no apparent reason. Could be Drupal, which is by now very bloated (I will totally have to reinstall once I know which modules work and which ones don't).

Now I'm just stymied. The search on Drupal for help on mailman is, of course, useless. There's another mailman module, but t would require that I write my own server. There's an ezmlm module, but of course that doesn't work.

So how can I send nice HTML newsletters to my subscribers? I have no idea right now. And I've started searching - for other service providers, for other content management systems. I've had about enough of this.

I know that Drupal is in the middle of moving to a (not yet functioning) Drupal 5 system. But it has to:

- enforce quality control on modules, at least, those that appear on the Drupal site
- create documentation for modules, real documentation, that tells people how to use the module
- fix the search function so that you aren't flooded with useless discussion list messages

That's a start. I would actually redesign the module pages themselves. The Support section, which appears on every module page, for example, links to general Drupal forums and to bug reports and submissions. This is not support.

I don't know what to do now. I'm way part my deadline for moving the site. I have been fighting with Drupal for so long now I just don't know if I have the will any more. I hate PHP; it really is spaghetti-code. Can I simply set up my new server to use my own Perl code (which, at least, works)? I don't know - the people behind Perl created perl modules, which are a huge barrier for any implementation.

I'm not sure what I want to do now.



6 comments:

  1. I wonder why you are not simply patching up your current management system?

    What is wrong with your own custom system? Is it so badly broken that it will only work on a NRC server???

    Another mistake might to look at a tool that does it all (Drupal). My experience has been that using multiple tools is often less frustrating.


    Well, have you looked at wordpress? Lots of people have had luck with it, especially with the latest release which is pretty good.

    It is not as fancy as drupal, but people have had luck setting up mailing lists on wordpress using bloglet.


    After finally threatening to move my account elsewhere they actually sent me a terse four-line message telling me where and how to set up a mailman mailing list

    My experience is that your threat was unwarranted. They would have replied.

    Drupal really really has to fix this.

    Proper and up-to-date documentation is hard to produce and expensive. We know many people who are famous by the software they produced, by the ideas they produced, or by the algorithms they produced... but how many people are famous for the documentation they posted on the Internet?

    My fix is to bitch and document what I do on my blog. I claim this is the best way to produce, collaboratively, good documentation.



    I run into another problem: how to send an HTML message.

    This ought to be supported in 2007.

    Currently, I subscribe to your text-only mailing list and it has always been broken (I still get random tags that gmail spits out).

    ReplyDelete
  2. I wonder why you are not simply patching up your current management system? What is wrong with your own custom system? Is it so badly broken that it will only work on a NRC server???

    No, it will probably run on other servers. I guess I should have more confidence in my own work. I always worry that it runs really slowly. But I don't think it does, in retrospect.

    Another mistake might to look at a tool that does it all (Drupal). My experience has been that using multiple tools is often less frustrating. Well, have you looked at wordpress? Lots of people have had luck with it, especially with the latest release which is pretty good. It is not as fancy as drupal, but people have had luck setting up mailing lists on wordpress using bloglet.

    Well yeah, but have they set up databased with linked data types? As I indicated in my articles, I wanted to do a lot more than just create a blog.

    My experience is that your threat was unwarranted. They would have replied.

    Wasn't so much a threat as an expression of frustration. They really haven't been very good hosts so far.

    Proper and up-to-date documentation is hard to produce and expensive....

    Would be easy if they made it a requirement for posting modules on the drupal site.

    I run into another problem: how to send an HTML message. This ought to be supported in 2007.

    Well this is really what burns me. I mean, what on earth? Why would they set up email functions without enabling HTML email?

    Currently, I subscribe to your text-only mailing list and it has always been broken (I still get random tags that gmail spits out).

    Yeah. These are usually formatting that I enter by hand - my 'txt' doesn't strip 'em out. Small fix - but it's hard to built a CMS from scratch by yourself with no time allocated for the task.

    Still, compared with the competition, I haven't done so badly, I guess...

    Maybe I'll reconsider just running my own system. PHP really is a crap language.

    ReplyDelete
  3. You could just use simplenews module to send newsletters. Hundreds if not thousands of people are using it. You have the option of sending in text or html. Easy setup.

    Have you asked on Drupal forums?

    ReplyDelete
  4. Thank you, simplenews looks like exactly what I needed.

    I haven't used the forums because they aren't very user-friendly. And I don't like asking noob questions - I would prefer that search worked so I could simply find what I need.

    ReplyDelete
  5. Everyone starts new somewhere. In general the forums are fairly friendly and a good resource if different from phpBB engineered forums. You also benefit from /tracker and being able to track your questions and what you've read. I found your posts through Drupal Talk feeds but my help is not the communities help.

    If you are going to be writing your own modules and such, I draw your attention to http://drupal.org/node/62304

    Lots of modules to look at and it's hard for people to know which are actively maintained or used. While folks are working on tools to help people decide and evaluate better, it takes time for code to be produced and tested.

    Search works fine for me. If you use advanced search you can get even more granular. Forum only and specific forum as well.

    Failing that, use google site:drupal.org

    I tell people 3 weeks to 3 months depending on their background, experience and goals to get familiar with Drupal to really begin to get productive.

    I also leave you with this link
    http://www.blkmtn.org/Good-reading-for-those-starting-out-with-Drupal

    ReplyDelete
  6. Just curious if you have looked into Joomla? When I was comparing systems between Drupal and Joomla, I felt that Joomla was going to be the most trouble free as well as provide a huge community of people to help support the different plug-ins & modules.

    I have tried so many different apps it is crazy. In the end my website runs entirely on Joomla. This is not to say it hasn't been trouble free. There is always going to be a learning curve, tweaking, customization, and fixing things the developers messed up.

    ReplyDelete

I welcome your comments - I'm really sorry about the moderation, but Google's filters are basically ineffective.