You make great points, and that is why I am hesitant to make custom
applications. I think I figured out a nice middle ground using the Data
module. That module apparently lets you create custom (ie sane) database
tables and do CRUD operations through Drupal. My current thinking is to use
this setup to allow the Drupal site users to manage the data for custom
applications and then access that same data using a custom app that can do
things with it that would be too difficult in Drupal.
The big use case I have in mind is a real-time interactive map application
that shows study room and computer availability, classroom bookings, and
room descriptions. There are two parts to this: inputting the data that is
displayed on the map (registering rooms, computers, etc) and outputting that
data into the thing the end user sees. I am hoping to use Drupal for the
input part and a lightweight framework of some sort for the output part. I
could theoretically put together a Drupal module for the output part to keep
everything in Drupal, but honestly maintenance of that module would be
considerably more difficult than maintenance of a simple standalone app
because the module would have to integrate with the entire Drupal API.
Josh Welker
-----Original Message-----
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
Hagedon, Mike - (mhagedon)
Sent: Friday, May 16, 2014 12:39 PM
To: [log in to unmask]
Subject: Re: [CODE4LIB] Very frustrated with Drupal
I can see why a programmer would be frustrated with Drupal. I've been
confused by it on a number of occasions. I'm not very deep into the Drupal
community, and I've only tried some aspects of Drupal development. So I'm
maybe not the most likely person to say the following.
If you go the route of "CMS for the basic site and then a framework for all
complex functions", I'd recommend being brutally honest with yourself about
what is part of the "basic site" and what isn't. When you're a programmer,
every problem can be solved by a new application (or so we think).
I don't know what sort of complex functions you're thinking of (I haven't
fully digested this epic thread), but my library is actually in the middle
of a major website overhaul that involves (among other things) integrating
into Drupal all the "custom" functionality that we have made apps for over
the years. For instance, our main website is a Drupal (6) site. Our library
hours, however, are handled by a custom app. That doesn't make a whole lot
of sense architecturally -- it re-implements (with a framework) a bunch of
CRUD functionality, a user system, templating, etc. Drupal is capable of
handling all of that. And we have an app of which the sole purpose is to
export our Drupal theme so that other applications can look like they're
part of the site without being in Drupal. While that is valid at times, it
might have signaled to us that those things should have been a part of
Drupal. We're finding that, while Drupal does certainly have different way
of doing things, if we w!
ork with Drupal rather than trying to circumvent it, it can be a great
help.
Every problem can be solved by a new application, except the problem of too
many applications or a confusing overlap between a few. I don't know what
your scale is, but I'd suggest paying attention to the overall architecture
and thinking 5 years down the road.
And I say all this as one who is primarily a programmer (Symfony [1] is my
current framework choice, and Doctrine [2] is amazing), and who prefers to
have all the resources of object-oriented design and development at my
disposal. Drupal isn't working that way (though D8 is moving that
direction), and it does have a learning curve, but it moves traditionally
programmer-only tasks within the reach of those who aren't programmers. We
can view that as competition, or we can embrace it.
But if you honestly can't bring yourself to invest in learning the Drupal
Way -- no judgment there, it *is* different! -- and your organization is
willing to commit to always carefully hiring programmers, building something
might be an excellent choice. That might be a very healthy and freeing
realization.
If you are willing to dive in deep, consider attending DrupalCon. Amazing
community. :-)
Mike Hagedon
University of Arizona Libraries
[1] http://symfony.com/
[2] http://www.doctrine-project.org/
-----Original Message-----
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
Joshua Welker
Sent: Thursday, May 15, 2014 10:42 AM
To: [log in to unmask]
Subject: Re: [CODE4LIB] Very frustrated with Drupal
Hmm using a CMS for the basic site and then a framework for all complex
functions might be a good idea.
Josh Welker
-----Original Message-----
From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
Wiegand, Laura K.
Sent: Thursday, May 15, 2014 10:20 AM
To: [log in to unmask]
Subject: Re: [CODE4LIB] Very frustrated with Drupal
For me the main benefit of Drupal has been that, as a wanna-be coder, I can
do some very powerful things simply through logic - I may have to carefully
think about structure, relationships, experiment with views, evaluate
modules carefully, problem-solve during updates, document my work, etc, but
I don’t *have* to code a single thing (although I do). (yes, I know this is
the code4lib listserv not the drupal4lib listserv where this statement might
be more well received :) This was really important to me when we started
using Drupal 5-6 years ago and we did not (at the time) have a programmer on
staff. Yes, Drupal has a steep learning curve but once you get past that and
figure things out for the first time, it's easier to apply them as you add
new features. And it's just so powerful.
Regarding the module dependencies, I think the key is to carefully choose
your modules. Over the last 6 years I've only run into trouble a couple
times. Sometimes you can't update to the latest version of a module because
it isn't (yet) compatible with another dependent or related module. So I
just leave it until the other modules catch up. Security updates rarely
cause the conflict you describe, so those can almost always be applied. In
my experience, once you get your site established the turmoil you describe
dies down.
In terms of business continuity, the fact that there is such a strong Drupal
community, both in the library world and beyond, means that there are plenty
of people who could figure out what you had put together.
I use Wordpress for other, more simple, web development and I see the
advantages to Wordpress - it's a lot less clunky on the admin side. It feels
more lightweight and streamlined. But I feel that Drupal is more powerful.
While we use Drupal for our website development, our developer uses other
php frameworks for other more internal web applications for the reasons you
state. I think it might just come down to preference (both personal and
shop) and skills.
____________________________________________________________________
Laura K. Wiegand
Coordinator of Discovery Services
William M. Randall Library
University of North Carolina Wilmington
601 South College Road
Wilmington, NC 28403-5616
[log in to unmask]
Phone: (910) 962-3680
------------------------------
Date: Wed, 14 May 2014 20:35:05 -0500
From: Joshua Welker <[log in to unmask]>
Subject: Very frustrated with Drupal
Warning: incoming wall of text.
I've been working for the past several months on building a library website
with Drupal. This is my second try building a website with Drupal. I chose
Drupal for two main reasons: CCK/content types, and its ubiquity in the
library community.
Theme development was going relatively well, if a little overly complicated.
But once I started trying to do anything beyond developing static pages, I
have become more and more frustrated with Drupal.
Drupal supports custom content types out-of-the-box, which is great, but if
you want to actually do anything with that custom content other than have it
function as a plain page, you have to use the Views module. Views is great,
but views can easily become very complicated, with custom rewrites,
grouping, relations, contextual filters, etc. Plus, a lot of functionality
in Views requires more modules (for instance, basic data manipulation).
This is to build rather run-of-the-mill list features like a database list
or a list of events. And a lot of the advanced features in Views require a
solid understanding of SQL (groups, distinct, joins, etc), which kind of
defeats the notion that it is easy for non-developers to administer.
Now, at this point, I have modules extending my modules. And those modules
have multiple dependencies on other modules. I am getting worried now. It
feels like my website is a house of cards. I've run into several instances
already where one of these plugins is updated and breaks compatibility with
the whole stack, and there is nothing to do in this case but open an issue
on the project tracker and pray for the best. I have looked into building my
own modules, but the umpteen APIs and hooks required to do something simple
as perform some regex on field data completely overwhelmed me (and I am
fairly experience with web app development).
It's not just Views, either. Anything more complicated than static pages and
navigation menus requires relying on the module ecosystem.
Not only is the whole thing quite precarious, but it defeats one of the two
main purposes of a CMS: ease of administration. I want to know that if I get
hit by a bus tomorrow, someone will be able to come in and take over without
too much difficulty. But when I go back and look at my views, I can
sometimes barely understand the work I did a week ago. It is very difficult
to keep straight which functions are coming from which modules, and all
those modules have separate (often poor) documentation.
At this point, I am seriously contemplating dumping Drupal and moving to a
full-fledged framework like Django, Flask, or Laravel and adding some
WYSIWYG CRUD controls for pseudo-CMS functionality. ActiveRecord-like
systems are much easier to use IMO than fiddling for hours with Views, and I
have full control of what is happening. I honestly think it would be just as
easy for someone to inherit a custom-built framework app as it would be to
inherit my already-convoluted Drupal site. At least the framework is
well-documented and should allow my app to be understandable to anyone with
some programming experience.
Does anyone want to talk me off the ledge here? I know a lot of you are
using Drupal for your websites. What are the killer features that keep you
using Drupal? If any of you have experience building websites using
frameworks, what are your experiences? I really want to like Drupal, but it
seems to be more trouble than it's worth.
--
Josh Welker
Information Technology Librarian
James C. Kirkpatrick Library
University of Central Missouri
Warrensburg, MO 64093
JCKL 2260
660.543.8022
------------------------------
End of CODE4LIB Digest - 13 May 2014 to 14 May 2014 (#2014-126)
***************************************************************
|