Recent comments

  • Features Part 3 - Re-usable features   5 years 3 weeks ago

    Very cool series of articles Scott. Keep it up! Looking forward to your posts on using Aegir with Wedful.

  • Thailand update   5 years 3 weeks ago

    I misspoke that it was a rocket festival, they have similar names. This one is to observe the bizarre phenomenon of fireballs that rise from the Mekong river on the full moon. Probably methane bubbles rising due to the extra pull of the full moon's gravity, but the locals prefer to believe the spiritual explanation, naturally. I have never witnessed this but it's quite popular and draws tourists from around the world. I haven't seen the actual rocket festivals either (the rockets are to appease Buddha to make rain for the upcoming rice season, in May) but will next year. That's a really crazy event where they shoot these homemade rockets that are basically 30 foot long, 8 inch diameter PVC pipes packed with gunpowder. Curiously they seem oblivious to the fact that the spent rocket will land... somewhere and does occasionally inflict damage. They do also occasionally explode on the launch pad. Most of the activity is in Yasothon, about 200 km east of Khon Kaen, in Isaan. Video:

    Here's more about the Nong Khai Bang Fai Naga fireball festival:

    A video from last year:

  • Thailand update   5 years 3 weeks ago

    Hey, thanks Jeff! I think you already know how to say that in Thai though.. conveniently code is somewhat universal ;-)

    I'm down in Samui now and probably won't be back in Bangkok until the 15th of Nov and then fly out on the 18th. Perhaps we should meet up for dinner/drinks or something if around then (of course assuming you're in Bangkok normally, which could be completely false :))

  • Thailand update   5 years 3 weeks ago

    Welcome to Thailand.

    I've been living here for several years and love it, though there isn't much of a Drupal community here (just this:, at least not one that speaks good English and even though I've been taking Thai lessons twice a week for the last 4 months, it will realistically be years before I can say "<?php $filepath = db_result(db_query("SELECT filepath FROM {files} WHERE fid = %d", $fid));?>" in Thai. This site is a great help in learning the language:

    Just finished my first large Drupal D6 based site,, a two year effort starting from scratch - retired electrical engineer with only a rudimentary knowledge of HTML, and knowing zilch about CSS, PHP, JS, SEO, server management, etc. Just shows to go you what you can accomplish with Drupal once you are sufficiently up the learning curve, though it seems that you can never really get all the way up, which is frankly part of what keeps it interesting and challenging.

    If you're still here in October, consider the Nong Khai rocket festival. Most rocket parties are in May (, but Nong Khai does theirs in early October. I'll be there for sure (the gf is from there so it's obligatory). Nice place to visit, high on a bluff over the Mekhong and and easy day trip to Vientianne, the capital of Laos, just across the river.



  • Features Part 3 - Re-usable features   5 years 3 weeks ago

    I'm not sure enough people have this problem to warrant a generic solution but there are probably several options that if were adopted would make our lives easier:

    • break views exportables up into smaller components, or allow an exported view to be built from code in multiple locations
    • programmatically inspect an overridden view and generate alter statements for the overridden components somehow
    • can't think of any others...
  • Features Part 3 - Re-usable features   5 years 3 weeks ago

    I don't disagree with the sentiment here. Unfortunately a lot of the platform building I've done has been round hole, square peg types of problems. In D6 there were times when I needed to completely re-implement (well, copy/paste) core functions into my install profile simply to get around the use of static variables. At least this provides a way to solve most of the problems, granted it all feels a bit hacky.

    While I have high hopes for the D8 configuration management stuff, I wouldn't hold my breadth for solving problems like this with contrib modules. Maybe D9 will have better luck, but that's half a decade off at the current release rate :).

  • Features Part 3 - Re-usable features   5 years 3 weeks ago

    Thank you for the post. At my job we have a great need for exactly the type of customization you describe. Unfortunately its not hard to see that this paradigm breaks down for anything more than trivial customizations.

    For example, for any feature, lets list the number of things that should be trivially configurable in a feature [app?] without reducing yourself to upgrade/configuration hell:

    • displayed titles of the feature [blog -> site announcements]
    • anything in the url [aliases, hooks, menu placements, etc]
    • pagination options, as described above
    • field formatting [max number of characters per field, etc]
    • really, anything related to presentation

    Unfortunately, views [and the exporting thereof] in particular was simply not designed for the use case we are describing. Everything from data gathering to presentation to url hooks are bundled into a single component, and unless you want to write a ton of custom code (also a maintenance nightmare), you are doomed to having custom views per feature branch. Even having custom views per feature is not easy as overridding views (by placing the view in a folder that has higher weight than the default) brings its own set of challenges.

    I would love to see an alternative to views for drupalers who are more accustomed to the loosely-coupled MVC school of thought. Hopefully the configuration work being done in D8 would allow for some of this.

  • Features Part 3 - Re-usable features   5 years 3 weeks ago

    You are cool.

  • Features Part 3 - Re-usable features   5 years 4 weeks ago

    Shows how you can reuse KIT compliant features on different sites. In their case they are using Atrium Features in the ELMS distribution because they are KIT compliant.


  • Features Part 3 - Re-usable features   5 years 4 weeks ago

    Great article. I've used component override hooks in custom modules but have never thought to make my features configurable :)

    I'm also happy to see the Kit shout out. It's an important and seemingly under appreciated project. I see quite a few projects advertising themselves as Kit compliant yet the only project I've found that includes kit tests is Atrium. And when running my own tests on some of these "Kit compliant" projects it becomes clear fairly quickly that they aren't.

    I'm really looking forward to seeing this series continue.

  • In defence of train travel   5 years 4 weeks ago

    Wifi in Europe is pretty standard in inter-city train routes. But you might have to pay for it depending on the route / provider and, of course, the class of ticket.

    ps. also found your blog via Drupal Planet and also a fan of train journeys!

  • Features Part 3 - Re-usable features   5 years 4 weeks ago

    Great article,

    You mentioned the problem about context and using different regions in different themes.
    @btopro just made a new module that helps implement global regions that appear in all themes - - See for a screencast of how this works.

    It's also worth noting that using the spaces module you can have a settings page for each feature that only applies to that space.

    Anyways, keep up the good work.

  • Features Part 1 - A simple feature   5 years 4 weeks ago

    Thanks for making Drupal that much cooler! I must say the difference between using drupal w.o. Features compared to using it with is such a huge difference, thanks for opening that door Scott!

  • Features Part 2 - Managing your feature   5 years 5 weeks ago

    Great questions! :)

    1. In all honesty, I don't have a lot of experience using Kit, but I will be doing it as part of this series. The next post will touch briefly on this, but mostly I'm sending people here for now:

    2. In that case I will have a site specific feature that I roll all my permissions into. I've found that in general permissions only make sense on a case-by-case basis. In the example in the previous post I've brought in the permissions too, but you're right that probably won't work too well unless the site is very similar.

    3. I've never used features from external sources. I believe due to the lack of prevalence of kit style sites, this is still a hard problem to solve. I would be quite curious to know if anyone offers feature servers to download prebuilt features from. I know some companies are working on "app stores" now that will basically take this concept to the next level, but don't know how far they've gotten.

    4. I'm not sure I understand this question. The feature here has views blocks already. And what do boxes have to do with views blocks? You'd really only use boxes if you wanted a custom block on the site.

    5. All the bloody time. For simple cases I can write a patch myself, but I generally don't have time for the more complicated scenarios. If you really need it to be handled in a feature though, you'll have no choice but to write some ctools export integration yourself. This is something I should /definitely/ write more about.

    6. This happens occasionally too. Primarily when I've removed items from the feature. Also it sometimes happens when I've forgotten to enable a module on the staging site and the feature won't revert for obvious reasons. Normally I just completely trash the feature module folder and then rebuild it fresh. I didn't realize there was such a ticket for it, next time it happens to me I'll try and debug it to help sort out that one.

    I hope you'll find the next post useful where I go into making features completely re-usable and you won't have to worry about changed settings overriding the feature. I'll probably put it up on monday.

  • Features Part 2 - Managing your feature   5 years 5 weeks ago

    Thanks for taking the time to write down your thoughts. I'm curious about some of your experiences with...

    1) Building kit-compliant features. Pitfalls? Why or why not do you create kit-compliant features?

    2) How do you keep permissions from being overridden when each site could have different roles? anonymous and authenticated are in drupal core and administrator is a de facto standard. But what happens when you have editor, or other site-specific roles that require permissions being set?

    3) Have you been able to include features from external sources? I understand that this is just an example for study, but there's got to be a "simple blog" feature already built out in the wild and available on a feature server. I would imagine that these external features would be overridden most of the time as you configure it to fit in with your site.

    4) How do you handle views blocks in a feature? I'm not aware of any approach that would allow boxes to be used as a views display. Or is that getting too far into the ambiguous "is it a feature, module, or app" conversation?

    5) How often do you run into a situation where something just isn't exportable? Short of implementing features for the module yourself, how do you handle those situations?

    6) How often do you find yourself pulling your hair out because a feature just won't revert? ;)

    My use and approach to features is still evolving. But the main benefit I've seen in my workflow is that features becomes a time-saver because they can provide a starting point for a new site build (input filters, wysiwyg profiles, event content type, etc). After the initial install, I configure all the settings to match up with the site. That usually means most of the features are overridden immediately after the initial install. But I'm looking forward to your next blog post to see if your approach to creating "fully" re-usable features will help.

  • A guide to building platforms with Drupal   5 years 5 weeks ago

    Features, distributions, installation profiles, Aegir, etc. I think Drupal is well positioned to be a web business development toolkit. Drupal can do almost anything. However, very few people have the skill, time and inclination to choose and configure the appropriate pieces for any specific application. These tools and techniques to pick, choose and integrate pieces into a packaged, tightly focused, easy to use solution from which thousands of identical instances can be instantiated provide an incredible opportunity for developers to add value. It seems to me like the technology to build class factories where each instance is one of many possible types of web sites. Thanks for sharing your investigations into these topics.

  • A guide to building platforms with Drupal   5 years 5 weeks ago

    My team and I are in the process of building 5 different apps/platforms on Drupal right now, all in different states of development), but 1 is in internal alpha right now and another will be rolling out next month. Curious to hear your thoughts, and will try to share our as we progress.

    - Willy

  • A guide to building platforms with Drupal   5 years 5 weeks ago

    Yet Another Stoked Reader.

    Thanks for taking this on. I am stoked! :) I've been working a lot with Features for several months and have been trying to get my head around various bits of the site that just don't fit. I'm eager to hear about what you learned about the division between managing configuration in Features versus installation profiles.

  • A guide to building platforms with Drupal   5 years 5 weeks ago

    I love the idea, whatever time you can direct to utilizing drush would be outstanding, I'm clueless when it comes to setting up drush on 7 to maintain a workflow through my hosts. Looking forward to the upcoming posts!

  • A guide to building platforms with Drupal   5 years 6 weeks ago

    No, I've not heard of workbench before right now, tbh. It definitely looks like it could help a lot in improving usability for end users though. Still just reading through the posts :).


  • A guide to building platforms with Drupal   5 years 6 weeks ago

    Have you looked into the workbench module created by Palantir? It has some great workflow states & could be a good addition.

    Here's a blog post about it

  • A guide to building platforms with Drupal   5 years 6 weeks ago

    There's definitely still a lot of work left, but ya, the foundational work is now "good enough" to do this sort of stuff. When we started building this it wasn't yet possible to do what we wanted to do, but things like Drush, Aegir, Features (among other things) sure made it a lot easier! :) And it looks like D8 is shaping up to be even better for doing these kinds of things.

    I imagine you guys have already done a tonne of this stuff with buzzr too. I'd be very interested to know what you guys have running under the hood there ;-).

  • A guide to building platforms with Drupal   5 years 6 weeks ago

    The ultimate goal of this series is to basically put this power in the hands of all drupal developers ;-). But seriously, by the end of it I hope everyone who wants it, has the information necessary to build a replica of Wedful for their own idea or niche industry.

  • A guide to building platforms with Drupal   5 years 6 weeks ago

    That's great Scott. I think as this stuff becomes more streamlined you'll find more and more Drupal services companies taking a similar approach to creating client sites as you guys have. I think at some point, every Drupal services firm that wants to compete will need to have their own customized distribution (or two) for launching client sites.

  • A guide to building platforms with Drupal   5 years 6 weeks ago

    I'll definitely be talking a lot about features, as they're a big part of this being possible. To answer your question, the best way I've found to do it is both.

    Things like blogs, photo galleries, etc, things you can re-use... build them into re-usable features that you can plug into any site (particularly future distributions you want to build). But in addition, you'll also need to split up the "master" site so that all of the configuration options, content types, views, etc. are split out into features. There will be a large number of things that don't make sense in a re-usable feature and you'll only want to use on this particular distribution.

    In general, most sites I build have two or three re-usable features and approximately 5 features that are specific to various components of that particular site.