Drupal

This week we roll out the first batch of videos in our "Advanced Site Building for Drupal 7" collection. These videos address the growing importance of the 'site builder' in Drupal site development, what administration tools can help speed up the building process, and how we can quickly set up a prototype site on our local machine. There will be more to come, but if these videos don't get you excited about the power of site building, then ... well, try watching them again on double-speed.

Welcome to "Advanced Site Building"

In this video, we give a quick introduction to the new video series and describe the set of modules we'll be covering, including Panels, Display Suite, Views, Feeds, a slew of administrative tools and more.

About our project and how project roles work

In this video series we build a practical Drupal site for a company called GiftOfGeek, one of those businesses we all wish we worked at that specializes in geeky products like USB-powered phosphorescent Zen gardens. We also take a look at how tasks are typically split across a web team.

What a "site builder" is and the powerful tools they work with

Throughout this series, we'll be focusing on the role of 'site builder'. In this video we explain where that role begins and ends, and the kinds of tools they use to get their work done.

What wireframes are and where to find them in our resource pack

If you talk to anyone who's had to work with clients to build a web site, they'll tell you how dangerous it is to start with a design. Instead, if you distill the major informational components into a black and white 'wireframe', you give the client a sense of what goes where, without issues like colors and padding getting in the way. In this series we begin with some wireframes, and this video shows you where to find them.

Identifying the components in our blog home page wireframe

The first wireframe we look at is our blog home page. Although it's unassuming and seemingly fairly simple, it touches on a number of techniques and Drupal modules that we'll have to understand in order to make it happen. In this video we discuss the various components of the page briefly and link them up with the modules that will help us build it.

Reviewing our blog post and review page wireframes

Our client site is focusing on two major features: a blog and product reviews, and now that we're hopefully getting into our wireframe groove, we wrap up by looking at our blog post and review page wireframes. These wireframes will set a good foundation for us to explore some different ways of laying out content as we work through this series.

About our step-by-step approach

Thinking about our project in terms of modules and tasks can get overwhelming. We're instead going to take a do-one-thing-at-a-time approach that works well in the real world as long as you don't have too many site building coworkers working on the same project. In this video we talk about that approach.

How to set up our Drupal installation with Acquia Dev Desktop

In previous videos we've talked about installing a default Drupal site with Acquia Dev Desktop, but we're also not ones for skipping steps. So in this video we set up our Drupal site exactly the way you're going to see it for the rest of the series.

About the administration modules we'll be using

Before we start building out our site, we're going to install a few modules to help make the building faster and easier. In this video we briefly talk about the modules we'll be installing and why.

How to install a module the traditional way and configure the Administration Menu module

Throughout this series, we're going to be installing a lot of modules. If you're new to Drupal, we're going to illustrate in this video the traditional way to install a module by downloading it and moving it to your module folder. But there's better ways, and we'll be talking about those next. In this video we also configure the Administration menu to replace our existing top-of-the-page menu with a slick drop-down.

How to install a module using Drush, and how we approach installing modules in this series

It's okay to be afraid of the command line, but at BuildAModule we've put together a series of videos that should help you get over that fear. The payoff is that you get to use Drush to speed up many time consuming tasks like installing modules. In this video we show you how you can shave a minute or so off of each module installation, and a bit about how to make sure Drush works properly with our Acquia Dev Desktop installation. From here on out, whenever we install a module, we're going to flash a screen up with information about the module so you can choose whatever method you're comfortable with to install it.



I'm writing this at 4am after my 2-year old woke me up because he was cold and hasn't figured out how to put a blanket on himself yet. Surely, if he knew the kinds of pains I go through every day to plan the future and make a living without losing my sanity, he'd learn how to put on his own blanket. This is also after waking up at 3am when my 4-year old climbed into bed between my wife and I. There was more room in his bed, so from 3-4 that's where I slept.

It's my fault, I suppose, for deciding to have kids - something I'd been planning for long before I had any. I started teaching myself programming and graphic design 12 years ago because I wanted a viable skill set that would allow me to support a family and spend a significant amount of time with that family. After numerous career steps, I eventually founded BuildAModule, in a large part as a way to leverage work-related time more carefully. And you'd think that by now I'd have balance, but even after over a decade of practice I struggle every day with juggling work time and family life with everything else that comes packaged with typical human existence.

So I write this as a way to connect with any of you out there who also feel like you're trying to figure out how to straddle multiple worlds without ripping your pants. There's a few things that have helped me, and I'm hoping to hear some voices chime in on this as well. Some of this stuff you've probably heard before, but all of this I've tried putting into practice, and this is a summary of my experiences. This is also partially a response to a question about post-child life in a Drupal world.

There is always something amazing happening you will never know about

I've started to realize that no matter how much time I spent learning, consuming and observing, there will always be more awesome things happening than I can possibly ever even hear about, much less dive into. Even in the microcosm of Drupal, I'll never have enough time to learn it all, or keep abreast of everything that's happening.

The cool thing about this is that it means that everyone else is in the same boat. Chances are that if I choose a small niche to develop skills in or stay current on, that I'll know something or contribute something that will help other people, and that's really what it's all about, right? We learn in order to help others in some way, sometimes as part of our living, sometimes as our life's work.

Even when free time is cut in half or quarters by the addition of children into the picture, I've found that the same rules apply. Freaking out about how much I don't know just saps the energy I need to do something worthwhile with the time I do have. And when I can find joy in what sometimes feels like the most minor contributions I make in this world, I tend to want to make even more.

There is a difference between the amount of time you want to spend with your kids, and the amount of time they need

As I was prepping for family life - building skills, saving money, trying not to annoy my wife too much - I wanted to make sure that eventually I could be available to my kids as much as I wanted to be, and as much as they needed. Now that I have kids, I realize that there are actually two separate things. How much time I want to spend with my kids is not necessarily the same as what they need.
Before I had kids I thought that I would be happy spending all day, every day with them. Now that I have them, I think the idea of staying sane in that scenario is a little wonky. The stay-at-home parents I know all feel a little nuts, and judging from time I've spent with my kids solo for long periods of time, I completely understand. They're awesome in every way except that they have a completely different agenda than I do and operate at a very different pace than adults. It's endearing at first, it even helps me see things in a fresh, youthful way, but after a while it becomes impossible to feel like a normal person around it. Even though part of me really wants to want to spend all my time with my kids, there's some other part of me that really needs outside input, and if I don't get that input, I'm not going to be very awesome with my kids.. And I've noticed my kids are the same way. Without more diverse input from other people, I drive them crazy, too.

If my goal as a parent is to make sure that my kids develop normally (even amazingly) and don't experience unnecessary trauma, then they actually need to spend a good bit time with other adults and kids, because what I can offer them is relatively limited when compared to what a community can offer. As a parent, though, I can offer consistency and stability from day to day. I can be a fixture, whereas the community is fluid, and I don't think it takes that much time to function as that fixture when you're present nearly every day.

The ideal time ratio between work and family

In our current balance of work and family life, I spend 3-4 hours with the family in the evening, and then I'm around most of the weekend, with maybe a 4-hour break during the weekend to do some introspection or play some games. Every 2-3 months I end up taking a week or two off, and during that time I spend the bulk of my time with the family. Even though I'm grateful for this time and I feel like I get the opportunity to spend more of my time with my family than a lot of people do, it often feels like it's not enough.

Something interesting happens when I'm around the family more. Things that are normally stresses - kids having tantrums, silly bickering between the adults - tend to fade away. We all still have moments, but the extra time also seems to build a buffer of understanding and compassion. I tend to be happier, and so does everyone else. It's that effect that makes me wonder what would happen if I didn't work as much on a regular basis. It makes me think about how different work ethics are in other places around the world, and how maybe those families might potentially be a lot happier on the whole.

Even within this country, I get the feeling that each person's comfort level around the work and family life ratio is enforced by their individual communities as well. If you hang out with people who work a lot, you'll probably be more comfortable working more, and more thankful for small breaks to be with family. If you're surrounded by stay-at-home parents, you'll probably feel like work is keeping you from immersing yourself in family life. I have a little bit of both, since I work at home and also hang out with some pretty hard workers. So, I go back and forth between feeling bad about not spending enough time with the kids, and not spending enough time with work. Sometimes I'm right in the middle, which is what I'm attempting to cultivate more of.

Employeeship, freelancing, and product-based businesses

I pursued a freelancing career a few years after graduating from college so that I could work from home and maximize income. Ideally, I wanted to make enough to work part-time when I had kids. I got a job in a campground that afforded me the time to learn what I needed, and the isolation to keep distractions away. I think I got pretty lucky there.

A couple years ago I shifted my focus to work on a product-based business, which - I learned from The 4-Hour Workweek - was maybe the only way to break through an income ceiling that comes from working hourly. Since making the shift, I significantly increased my income, and have been able to take large chunks of time off with family, which is exactly what I was hoping to do from the start.

For those who crave more time with their families and are currently employees, I have a hard time thinking of another way to move forward besides starting to work for yourself. Freelancing comes with less risk than attempting a product-based business right off the bat, and gives you enough wiggle room to start building a self-funded product while also giving you the same wiggle room for family. Lowering your financial requirements can also add flexibility. I've given a couple talks on this subject, and if you're thinking about making some steps forward, definitely post something here so I can add a few words of encouragement.

That said, starting a business can also be a bigger time-drain than being an employee, depending on how you approach it. I gave myself a 6-month window of time to get to a certain level of stability with my business before going back to freelancing. If it hadn't have worked out, I would have needed to give myself some time to re-connect with the family.

Talk to yourself

It's hard to find the right people to talk to at just the right times when if you're trying to figure out how to slice the work and home life pie. And usually I don't even know what questions to ask. Luckily, there are two of me. Or at least, there's two parts of my brain that can talk to one another to some degree. So, when I'm feeling a bit lost, I'll start writing (there's a nice, distraction-free program called Writeroom that I use), and usually after 30 minutes or so, I begin making progress. I start being able to articulate the problems and think about some possible re-orientations or re-organization that I could try. 

There's been plenty of research into how words affect our thoughts, and I've noticed that whenever I start using language more in my life - either talking to other people, writing blog posts or journaling - that my thoughts also become clearer. I'm not sure if this works as well for other people, but it's definitely a key technique in my arsenal, and what I use whenever I'm trying to re-balance family and work life.

Meditation on the meaning of work

It's been easy in the past for me to take the idea of work for granted. If we want to sustain a certain standard of living, we need money and thus have to work. But a few other things come into play that affect how much we decide to work. 

Through work we can potentially impact lots of people and affect world around us, and that can be a very powerful draw, one that sometimes conflicts with being present as a parent (or any other role, for that matter).

For me, it's helped to think about what my life would look like if I no longer had to worry about money. This allows me to recognize the distinction between the desire for financial stability and the desire for other benefits that work brings, like challenge and positive impact on other people.

Because financial troubles tend to cause a huge amount of stress in families, I think it makes sense to trade the time I could be spending with my kids to achieve the goal of financial stability. But when I have that foundation set, it gets a little more difficult to draw the line between work and family life when it comes to the other benefits associated with working hard. 

At what point do the more meaningful aspects of work become less or more important than spending time with my family? That answer changes all the time for me, but I know that I only have a few more years before my children start to have richer lives in the community with school and activities, which means less time at home, so I feel like there's something special in the next few years that I don't want to miss out on. Most of us only get to be parents once, right?

I try to take time regularly to think about the benefits of pursuing work versus spending more time with family. It's easy to fall into a pattern of work and family life and forget why I established the pattern in the first place, and sometimes when I'm working through the thought process around it, I remember something important that completely changes what I do or why I'm doing it.

Put the oxygen mask on yourself first

Most parents will suggest that you have to take care of yourself before fretting over your kids (beyond their basic needs, of course), because if you become compromised in some way by forgetting yourself, your kids will suffer. When I find myself going nutso over kid meals and activities and cleaning, and I re-orient myself to think this way, it can make a big positive impact. Usually when I'm on the more happy side of the emotional meter I end up being a much better parent (or at least feeling like I am). Also, kids are pretty dang resourceful and all of their mechanics are bent towards self-preservation. So even if you forget to feed them because you're reading a book or building a lego sculpture, they'll give you a heads up before they get even close to passing out.

To me, this means that if I'm getting a lot of satisfaction from work, and it's important for me to focus on it to keep a certain amount of mental and emotional momentum - or that I'll feel some resentment by having to give it up - then my kids are going to be fine if I keep that focus. But as I mentioned before, the more time I spend with them, the better we get along and understand each other, so when things start getting a little too stressful in our relationships, I'll put aside work for a while until the family is running a bit more smoothly.

Kids brains know what they need to learn, so relax

This took me a while to figure out, but it's taken a lot of stress out of parenting and also frees me up to optimize the time I do spend with the kids. Research shows that kids know when a part of their brain is ready to develop, and all we have to do is take queues from them and do what we can to support it. This is much, much easier than trying to get up to speed on everything kids are meant to be learning at different stages, and trying to force it. There are still lots of things that I've initiated, like reading aloud and singing songs, but I don't feel like I'm a complete failure if they don't pick up on it.

Any random kid is funnier than virtually any adult

I've laughed more since having kids than I did for the previous 15 years. I've noticed that when I view my child as a comedic relief, rather than a responsibility, I can derive a lot more enjoyment from them. This perspective doesn't work all the time, but sometimes it's perfect, and with me finding it funny when they spill the milk for the 5th time today, they end up having a lot better time with their own foibles, too, making us have a much better time with each other.

Kids also make excellent fodder for humor, and I actually think about certain comedians a lot when I'm with my kids, it helps me not take it too seriously. Louis CK and Bill Cosby are the two I find the most helpful.

The role of exercise

Exercise takes time. But for many of us it also will extend our lifespan. So, save the time now and potentially kick the bucket earlier? Or hit the gym every day for an hour or two and miss out on making progress on some front, whether it's family or work?

Part of the answer might be had with a treadmill desk. I've been using one for 4 years when I work. It can be cheap and doesn't negatively impact focus. I've turned on a  few people on to it over the years, and most have lost a significant amount of weight as a side effect and feel a lot better since using it. I find it helps me focus, much like a stroll outside would. This isn't really the cardiovascular workout you'd need to meet the requirements for exercise by certain measurements, but it's way better than nothing, and it feels pretty awesome.

I also go in and out of phases of exercising or going the route of using that time for work or family. But I do find that when I'm exercising, I have a noticeable increase in the amount of energy after work for playing with the kids and being more interactive with them. I'll also go back and forth on if I take this time from my work day or if I take it from family time.

Avoiding burnout by finding focus

The demands of a household are infinite. You really can occupy a team with everything that could be done in a home. And working in Drupal feels the same way. There's always something new to learn, a potential client to pursue, an awesome idea to make a reality. There are about 400 items on my list of things that I'd like to do if I had the time. Maybe half are Drupal-related, and the other half has to do with family and other skills I'd like to develop, or things I'd like to learn. I have to go back and forth between Drupal and family and focusing on other aspects of personal development because if I didn't, I'd start to resent whatever was keeping me from everything else. In order to stay active at all with Drupal, I have to find a balance, and I do that by focusing. 

I really want to release a new Evernote module, I desperately want to climb the core contrib ladder, I crave participating in IRC and I want to hit up twice the camps I do. But, I'm focusing now on building a really good learning resource for Drupal, and that might be all I'm able to get to for a little while, because I also really want to be around when my kids do amazing things.

I think it's important to want to do more than you can do, but also to somehow be okay with your own limitations. I focus on a couple things at a time, and I've found that pattern works the best for me.

OCR-ed content: 
worms re


It's called Parallax, and you can find a jQuery plugin that does this cool trick hereGithub has a nice one for their 404 page. The original DrupalCon Denver page, made by the talented Ken Woodworth is also pretty awesome, and one of those examples I want to dig into to figure out exactly what's going on.

OCR-ed content: 
DENVER IKE gill HI.H CITY DENVER THE MILE HIGH CITY IQ


I was playing with Navin, an Omega sub-theme, and wanted to make some minor adjustments to the CSS, and maybe have a custom template.php file to work with. The best way to do this is to create a sub-theme of the sub-theme (though I kind of wish there was a way to just add a plan old CSS file somewhere - and I feel like maybe there's a way to do that I'm spacing on). 

To get this to work required a few steps. My use case is that I'm working within the Open Enterprise Drupal distribution to get a fairly simple Drupal-based blog set up. It comes with Navin as the default theme.

  1. Downloaded Omega Tools - a module that adds a Drush tool to create quick and easy Omega sub themes.
  2. Created a subtheme using drush omega-subtheme nameofmythemehere on the command line (though the manual instructions here would have worked using the HTML5 version, I believe).
  3. Copied the code from /themes/navin/navin.info (everything below the settings[alpha_css][navin-footer.css] = 'navin-footer.css' line) and pasted into nameofmythemehere.info.
  4. Copied the code from comment 1 on a helpful Navin issue queue post and pasted it in above what I just added to nameofmythemehere.info. The idea here (if you're using a different subtheme) was to pull in the subtheme's CSS into the sub-subtheme.
  5. Changed the name of the subtheme from omega to navin.
  6. Enabled the new subtheme in the Appearance settings page.
  7. I also had to clear my caches for this to take because I had done some messing around in the .info file and wanted to clear out any stray settings.

That was enough to do the trick.

OCR-ed content: 
OPEN ENTERPRIsE HOlli: LATEST BLOGS Retina icon here here Maybe some green WATERFAll NT to


I'm giving away 5 free memberships to a random selection of people who call into BuildAModule sometime in the next 2 weeks to leave a voice testimonial.

If you're enjoying BuildAModule and would like to let us and anyone else evaluating the service to know how much you get out of it, your message would be genuinely appreciated.

Leaving a message is easy, just check out this page, click the Call me button, and have your say.

OCR-ed content: 
re


If you see errors like this all of the sudden in your Drupal 7 site and you're trying to figure out if maybe you accidentally moved a file or your cat walked across your keyboard when you were looking at peacocks fighting for a dead snake out the window, it's probably not you. It's your MySQL settings.

You might see the following kind of error:

PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away: DELETE FROM {cache} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => entity\_info:% ) in cache_clear_all() (line 176 of /Chris/Websites/loc.blog.buildamodule.com/includes/cache.inc).

To fix it, change the max_allowed_packet value in your my.cnf file (that's your MySQL configuration file) to 20:

max_allowed_packet = 20M

Thank you to this thread on Drupal.org, which also describes where to find your my.cnf file.

Here's what the mess might look when you see it:

OCR-ed content: 
Additional uncaught exception thrown while handling exception. Original pnObeeJMinn: SQtST ATEIHYOlOl: general eme: 2006 MySQL has gone away: DELETE frOM {cacbe} WHERE (CID like :db_coodidon..Jl'laccholder_O ESCAPE Anay l:db_coodjtion?holder_O) mgr. cmil}\.info:tk I in (line 176 of IChri save twit joe blog huild,'nloduk com'i nc III d l'S" C I'm incl. Additional PD o ? cepe ion: SQLSTATEIHYwOl: General enOl: loof, MySQL server has gone away: SELECT fill-flame FROM (registry) WHERE rmrc type: army J: mmol past view ? ? I. type] interface in ? (line 3058 of "hri ? 10.; bl(lg.buiidamudulc ct1rnjinciude.vh4xy4xtrap.in :name AND type Uncaught exception thrown in shutdown function. puObectinn: SQtSTATEIHYOIlOl: general cnm: 2006 MySQL server has gone away: DEuton. FROM {scn"Ollilore) WHERE (vuluc :db ? Array C l:db_condili(Jn_plal.?hotdl'1_OI 4gt.14679880650621 J in lock rete. alto (line 269 of 'Chri brillS joe .b log, bu .com 'l nc It! d l'S' ? .inc i F.l.a! neauant ru()t;?ttpllon with SQL SI VI Eli it 0001 general fir BVM thsillOSP ? .1, it ? build alll( Kl u It co IIllinc III Ilia half Id ala b ? JU on line llJ6 20116 SQL has hone ly PDOfo:xttptlon: SQLST To: llYOOol: Oeneral error: loof, M,SQL server has gone awav in .hlo?,huilctllmodult' comlincludesldalahan data has ANC on nne 2136 Call Stack


I've known that TomRandall and the rest of the crew at Level 10 have been working on Open Enterprise for a while, and I'm excited to have a reason to give it a go. I'm in the process of numerous upgrades to BuildAModule, one of which is making the current bare-bones blog more integrated with the technical advances of the last decade.

Since it's been a while since I've spun up a Drupal-based blog, and since I know there's numerous aspects of blogging and content creation I'd like to finally wrap my mind around and implement (like RDF, HTML5, pingbacksSEO Tools), I'm thinking that the right distribution could save me time. I'm not entirely sure Open Enterprise has everything I'd like to integrate, but I know it has some good minds behind it. Or, it could turn out that I'm not the target use case for Open Enterprise and I could spin my wheels a bit, but I'm going to take the gamble so I can get familiar with a product that I know is on the edge of some awesomeness. 

So, here's an 'unboxing' of Open Enterprise. In particular, I'm using the Enterprise Blog version, which I'm thinking might be the same as Open Enterprise at it's core?

As per a typical Drupal installation, I downloaded the source, set up an empty database, added a virtual host via my MAMP Pro, and went to the new site.

The installation process gave me an Open Enterprise installation profile, and prompted me to install a set of 'apps'. I was tempted to check everything:

After all that installed, it had me fill in the default admin user and site information screen. After I submitted that, I hit a screen asking me for my FTP information. That threw me off a bit:

I tried to submit the form with nothing in it, then filled it with bogus information, thinking that maybe I could deal with it later. But neither of them let me pass. I did a quick search in the issue queue, and pulled this up which said that I could just make the sites directory writable, which I did by cd-ing into the Drupal directory via Terminal and doing a

chmod -R 777 sites

I remember running into something similar on Pantheon, I imagine for similar security reasons. But I'd sure like to have had a few more details on the screen about why this was needed.

After I did the chmod, I went ahead and refreshed the page, which seemed to push the installation process to the next step. However, not without a few errors (a lot of which just have to do with my level of reporting):

Some of these errors had to do with images, and as I started clicking on bits to look at content, I saw that there were no images and I was getting errors like:

Messing about with SEO tools

So, the first thing that I want to play with is the SEO tools to see if there was anything in there that would clearly be a benefit to my current workflow, so I go to create a piece of content and just copy over a blog entry from my personal blog.

Next, I scrolled through the vertical tabs at the bottom of the content and clicked on the Content analysis one. Everything was enabled except for the Alchemy item, which got me curious, so I followed the steps to set it up, which required the following:

  1. Downloading the PHP SDK files from here.
  2. Putting the files in the AlchemyAPI folder in the alchemy module folder (but you have to take the files out of the expanded folder)
  3. Going back to the content and trying again. This time I need an API key, so I follow the instructions
  4. I sign up for an Alchemy account, verify my email, request the API key, copy it and paste it in

Another disabled tool was the Readability section, and I didn't want to dig into that after going through the 10-minute Alchemy setup. But I did watch some of Tom's video on it  which was good (Tom has a nice screencasting voice).

Once Alchemy was set up, the check seemed to go through and I got some additional info:

After checking out the 3 tabs there, nothing appeared to be particularly useful for this article at least.

The Quick SEO tab had some good tips, mostly I think for folks just getting a feel for the amount of content to plug into a typical article:

At this point I think that maybe I should save the article, since it's showing as just having 12 words when there's definitely more, and realize that I pasted the content into a WYSIWYG. My content contains html tags, so I want to paste source in, and I don't see any source code icon (that would have been nice to have).

So I went ahead and copied my content straight from the public facing page into the WYSIWYG, which got everything including some object tags I had in there, and after that there were some better results from Alchemy:

I played around with the SEO tools for a bit, and couldn't get the keyword search to work. I noticed that you could hover over keywords like you see above to show menus for adding keywords to some kind of list, but after adding a few items I wasn't able to find where the list was. I imagine there's a bit of a learning curve here, but it seems like there's got to be some potentially good stuff in these tools.

Next, I wanted to see what the output of a typical blog post looked like, so I checked out the source code. Woah! I haven't seen that many CSS and JS files on a page before. But, I know you can turn on aggregation, so I ceased the freak out and scrolled down to where the body started:

I've been diving deeper into HTML5 over the last several weeks, and I was hoping to see some <article> and <footer> stuff with oddly named attributes, and I wasn't disappointed (though I'm curious why the footer was at the head of the article). I'm still wrapping my mind around best practices around HTML5, and I imagine that looking at this might contain some good lessons. 

In the Open Enterprise description it mentioned that it's using a flavor of Omega for a responsive theme, so I played with the browser window size a bit to see what changed, and got a re-sized logo and stacking in the navigation on the smaller window size. At an even smaller window, the sidebar drops down below the content. Cool.

When I go to check out the blog page as an anonymous user (after publishing the page), I get Access Denied. Bummer! ;)

Okay, so permissions are set up to keep anonymous users at bay. NO BLOG FOR YOU! Well, I kind of want people to read this stuff, so I went to the permissions page and made a couple minor adjustments:

And

Hey, that blog page looks pretty good! Except for a little floating issue with the comment buttons:

So at this point, I want to see how hard it would be to integrate Disqus with this blog. I first go to the modules listing page on the off-chance that it's already included. It's not, and I noticed while I was there that Drupal core and the theme is already a bit outdated:

It's tough to keep up with Drupal, man. 

I knew from talking with the Level 10 folks that they were really getting into integrating Apps, so I wanted to check out the App listing to see if I might have missed anything. In the admin bar I clicked Apps and then took a look. I didn't see anything there, so now it's time to download a module and see how well it integrates with the distro.

Okay, that took a few minutes but everything went smoothly. I now have Disqus enabled on blog posts, and normal commenting disabled.

Now I want to click around a bit. I click on the Images tab, and WHAT'S THIS? Whirlyball? And who's the psycho int he middle who clearly runs the operation?

This default placeholder content is way better than what my real content is going to be. ;)

When I click on HOME, I get a Page not found:



Bummer again! The Add URL redirect link is enticing, but when I click that it looks like it would set the redirection for any 404s, rather than just the home page:

Okay, so I'll leave that as is for now.

As my next task, I want to set up those social links at the bottom of the page to point to something functional. Icons would be nice, too, but I'm suspecting this is a standard Drupal menu and getting those icons might take a little pulling of teeth:

Indeed, there's a little cog wheel that's a bit hard to see against the blue, that points me to edit the Social menu, where I update my links.

Getting my share on

Now, I want people to be able to share posts, ala ShareThis. So, I take a gander through The Configuration menu and see a Social media item, which I click on. As I scroll down, it looks promising:

Okay, but how do I get these to show on my blog posts? As I'm looking around, I run into this, which looks a little off:

I'm also getting some overlay screens where there's no way exit because (I'm guessing) the close button is under the admin toolbar:

Then I browse to the modules page and see that maybe the social module I'm seeing isn't fully functional yet:

I check out the Help page and it mentions something about one's profile, so I think that maybe I have to associate the social media accounts with my user, rather than the site, but when I go to my user account page, I just get a submit button:

So I scroll down the modules listings page, just to see what's in there. And what's this?

This looks promising. So here's what I do:

  1. Enable the Widgets module
  2. Check my blog post to see if social icons magically appeared. They didn't.
  3. Went to the Widgets module page to see if there was any insight there. Indeed there was!
  4. Based on what I read, I went to the blocks configuration page and enabled the Widgets: socialmedia_share-default block in the Content region, above the Main page content block.
  5. I went back to the blog past, and whammo!

Okay, so I kind of like the ShareThis versions that include details about the different networks' activity (though I just found out you can up the count just by clicking on the icons), and based on the info on the Widgets module page, I probably just need to include the Service Links module for that.

Things to investigate and update

So I'm liking this so far. I have a responsive theme that doesn't look like crap, I have a lot of my needs anticipated in terms of blogging setup. I'm on Drupal 7, which feels like the future after working on Drupal 6 so much these last 6 months, and it seems like the feature modules / apps are thoughtful and goal-oriented, meaning I can probably get some nice functionality pretty cheap if I have the need for additional features later on.

At this point, there's a few things I want to check out / fix / accomplish / learn:

  1. Get the site branded.
  2. Figure out how to interlink pages with automatic Related to this article functionality for better SEO.
  3. Set up archives and a tag listing blocks or pages for better SEO (correct me if that's old school thinking).
  4. Check out how forms do on the responsive front.
  5. See if enabling the view source on the Wysiwyg is going to break a feature module
  6. Research current best practices on working with Features in a distro (I'm curious if anything has changed since I put together a video series on the subject)
  7. See if I can use Alchemy to automatically tag and enrich posts for search engines, ala the AlchemySEO service / product. And also, is that kosher?
  8. See why I can't get keyword searches to work. Is there some API key I need?
  9. Check out RSS feeds. And is there any integration with PubSubHubUb, and do I really need to care about that?
  10. What about trackbacks and pingbacks? Do people use those? Any reason they weren't included in the distro?
  11. Play with OpenGraph MetaTags to see how it impacts mentions in Facebook
  12. I'm curious what the UUID module means for nodes. Can I use them in feature modules now (the last time I tested that it was buggy)? Is that what it's intended use is in Open Enterprise?
  13. Integrate a menu-search tool like Coffee, or maybe finally check out the Drupal 7 port that Amit Goyal made of Navigate.
  14. Do some Adobe Shadow (or Edge Inspect as it was newly released today) to check out how this Omega theme looks on a few different devices. And make sure images are 100% max-width (they get cut off as the screen gets smaller).

Thanks!

Thanks to the Level 10 folks for putting this distribution together. I know it's super hard to build features that work for lots of use cases, but it seems like they're doing a really good job so far. I'm looking forward to seeing how fast I can get this to production. :)

OCR-ed content: 
Apps Images enterprise I ma e 5. Is ani app for m ? h'1 Images content and displaying image ApPS are the next generation In usability for Drupal They contain bund les of galleries tuncncnatnv for your bS'lte. Select any apps you want to install Fig hr new You a add rmln? jailer rim line I'll pm page i Link Mil.11.l1gr!'; rmf ns- &quot;,uluru' link. It can be used to keep short I ? gf valuable resources In odder lay Inman apps. you Muni be able Il I FTP er SSH in! C tour server This uses v. r, nr the basis for fiJi blqw;!1 link directory like dmo.T.org. same [process as the update module. locations rr-r APPS TO ? ALL Enables r&quot;r'hl:rl.l4.e me n L od locations as content address are automatically go eneere map displays you Cari 'i?iY groups or locations on Of as listing april rotating balder j blog rotating banner of sudes with links Vern ()ll·illmC'1 on the homE page multiuser full featured avg app. Has many at the features .M' SEa essentials Development essential &quot;1';trrh engine cptlmI7.,tifl a features for your sea is il, more this app ands the most commonly used devel omern medulas to your site if yogi are limited set of than thaw In CFO ToXIcs. If you have Into ? SRN doing development In D r pal I this app its essential Ned robed CIO events a seo Tools provides t(lil1? for managing time bated events includes r h ? Liam Suite of advanced Seo tools including keyword reseercn and content analysis Seo Tools of includes all of the features of co essentials plus many ether tools for going Seo In fan drupal lode to bug In apps you must install 90olille_anaMlcs I'll a n a to. fore this enables creation of answers oLD frequently asked questions using a standard Iraq form, app will install o Forum DNAa! May, community discussion boards with topics and threeued comments help GNU socialize tour Swe. images I'd videos enterprise images is il 11 App for noIr aging images cnntr-n and displaying image provides video content management [naMes playing 0.11 uploaded Dr timbered videos galleries l' them Y,iliU T,u Un ? di WebfOrm Manages online resource links it ean be used tO keep short list or Ell valuable resource eneerea you to add web terms to your Site that can be lemalled and/or saved to a uenaase includes contact us example form but allows you to build any number of cUStom forms DiE:FAULT content ? In Stal default content B, ?r?jr.tli ng this box default confirm will me ,imt;tilDll;ld fgr each app without default content the site may look empty before yOU start addl fl to It. YOU can remove the .iI'efw! l content later by going to line apps caring page install apps SkIp this step Home Update downloaded successfully. WARNING You are not uSing an encrypted connection wyour password Will rnccse profile be sent in plain text, team mere cnccse language TO continue provide your server connection details Verify requirements Connection method se up database 'FTP install profile FTP connection settings Configure site username install apps Finished Password your password not sated In the database and only used to establish cc-reecucn ADVANCED SETTINGS Continue Alchemy has been installed Content Analysis has been installed Content Optimizer has been installed Keyword research has been installed Kilvword research google has been installed wcrestream has been Installed AppS enabled successfully Imponed node 43. Contact uS of i nodes oJt imported Some values may have been reset depending on Node experts configuration Choose profile Choose language Verify requirements Set up database rnstan profile Notes. Undefined vanabte replacements in quid token (line ? 9Sof of jChrlsjWebsilesjloc.b1og bullddmodule.comfslteS/dlljmodules/uuld/uulo taken NotiCe Undefined variable replacements in uuid_tokensO (line 9501 of jChf;sjWebsit?sjlo' blog. bui!d.Jmodul?.com/ sites J/f/rmxlule l/uuid lIuid.1 ket Notice Undefined variable replacements in lJuid_tok.?n'JO (line ? 95 of of IChf;'JIWf'bJit?J/loc blog. build.modulO com/silf'S .t!f/modulu/ uuid/uuld take i NotIce. undefined variable replacements in uujd_tok?nfO (line 95 of /ChrISjWt'!bsilesjloc.b1og bul/d.dmodule.comfsltesfd//fmodult'!sfuu/d, Eula takei Notice Undefined vartabte replacements in uuid rokens(J {line 95 of /Chr;s/Wt'bsites/lrx.bJog,bui/ddmtJdu?.comlsitt'sldll/mtJdu!t's/uu;d/UUid,lClk Notice undefined variable replacements in uujd token (line 95 of IChf;sIWcobsit?'J/loc blog hutld..Jnmdulr com/silf's I .tll/modulu/ uuid/uuld take i notice undefined vanable o. replacements In quid token [line as of ()f /Oms/Web5ltt's/foc.blog,bu,!ddmcdu!e.com/Srles/.l/1lmcdlr!es/uwd/uwd,t(lAw Notice Undefined variable replacements in uuid_tokens(Hline 9501 of IrIdic Ill tgif hills Jri&quot;, in, ,J[ configure sue rnstan Apps Finished Notice: getimagesizeO [function.getimagesize): Read error! in image_gd_get_infoO (line 349 of IChrisIWebsitesl/oc.blog.buildttmodule.comlmoduleslsystemlimage.gd.inc). least 2 to times is recommended Consider mcreasm Content Analysis Results Analyzers Alchemy Alchemy Keywords Concepts Entities Quick SED Term Relevance Keyword research voice testimonial service 95.7% Analyzer checklist Content Analysis Results Close Window Quick SEa Analyzers ep ick Quick SEe rd: testimonial long analysis Analyzer checklist yzer page tnte Char count 95, Word count ? 14, Keyword count ? I. Keyword density 7.1, Keyword prominence ? 28.6 Your page title contains 95 characters No more than so characters to 75 characters is recommended Consider reducing the length of your page title sou Char (ounl.76, Word count. 12. Keyword ccunt-, I. Keyword density_S.l, Keyword prominence. 16.7 You body contains 12 words At least zoo to 800 words is recommended Consider Increasing the number of words. The targed keyword 'tes1imoniar occurs in the body I time At least lto times is recommended Consider Increasing the number of keyword ccecrenees in your body copy Meta keywords Char count o. Word count o. Keyword count o. Keyword density.O.O, Keyv,.(Hd promlnence-O.O You meta keywords contains o words. At least to SOwards IS recommended Consider Increasing the number of words. Content Analysis Results Analyzers Alchemy Alchemy Keywords ? Con Entities Concepts Quick SEO Term aerevaeee Keyword research can widget 99.3% Analyzer checklist Google Voice 98.90 wtb page 83.00 voice testimonial service 63.4% Google Voice page 57.1% Click Call Widgets 55.5% new call wjdge? 53. lg new greeting 44. embed code 35.1&quot; OPEN ENTERPRISE OPEN ENTERPRISE HOME Notice: Undefined variable replacements In BWIA rokensQ fine 95 of /C'm.sIWebsltesJ? tllOg.ooA'damodlJ.le.comlsimslsNimodul'esluuidIUUJd. rokens. Nance: Undefined variable: replacements in ulna tokens (line 95 of of Johns ? ? byog OlJi'd.lrn odlJ ? comlsitrJsfaY/ft'KXk.sPos/uuidfuukJ. tokens l. ACCESS DENIED You are not aumcruee to access this pa ge USER LOGIN E-mail p as s word Create now account Request now password LOGIN CA ? main content ? ay &lt;hI ClASS M title idea pa9c-title&quot; show to quickly set up an Qwcso:r &lt;dlv class: class-&quot;tabS elearfix-&gt;&lt;h2 ? class ? element-invisible&quot; Primary classeN active?&gt;&lt;a ? href ? M /blog/chris-shattuck/how-quickly-set-awesome-customized-f class-&quot; element-invisible-&gt;{active tll:b hrefa·/node/6S/edit? ? href·-/node/6S/kwresearch&quot; ? iliaci idea hret-&quot;/n In class-&quot; action-links&quot; ? hret-M/node/add/enterprise-b1og&quot;&gt;Add blog post! all &lt;11&gt;&lt;a href-&quot; /admin/contont/node/enterprise blog Administer blog ? blog &lt;luI&gt; &lt;div id-&quot;b1ock-system-main&quot; c j as a=vb block block-system&quot; c Laa s=vb block bloc title. id-&quot;block-system-main&quot;&gt; &lt;div class=&quot;content&quot; class: content clear fix &lt;article about=&quot;/blog/chris-shattuck/how-quickly-set-awesome-customized-free­ class=&quot;node node-enterprise-blog node-promoted node-published node-not-sticky sel enterprise-blo9-65 -s- &lt;footer class submitted &gt;&lt;span property: dc: date dc:cre4ted&quot; content ? 2012-0 21:36&lt;/span&gt; &lt;span ? rel=&quot;sioc:has creator pga href=&quot;/users/chris-shattuck&quot; tit! In ? t r. h r; a a hnt&quot;. eueje&quot; T. vn&quot;,n ? RI II a p. r ? n t. nrnnArt-.v= fnltf!nllmlR&quot;&gt;r..hri tsi MW modulI! module D Modules There are updates available for your version of DrupaL To ensure the proper functioning of. updates page for more information and to install your missing updates, There are security updates available for one or more of your modules or themes. To ensure the available updates page for. more Information and to install yOur missing updates. Download additional contributed mOdU'o extend Orupal's functionality. mod Regularly review and install available updates to maintain secure and current site. Always REGISTER for to post comments LOG IN Access the content overview page VIew published content View own 0i;own unpublished content ?content revisions View content IJ.'JCD Administer comments and comment settings View comments Post comments by i oj NRA PAGE NOT FOUND Add URL redirect from this page to another location URL redirects FROM http:!{loc.blog.bulldamodule.com/ navigatlon4Q4 TO. TO Advanced options Add URL redirect fro The requested page could not be Ic Unk8dln Twitter YouTube Submission form settings Title Publishing options Published Promoted to front page Display settings display author and date information Comment settings closed Threading SO comments per page Content Analysis Settings Menu settings Ml sneman Indusio excluded Scheduler settings PubU,hlng enabled Iran DEFAULT ICON style i 32)(32 ill rcee set Styles teverren 16x16 Glossy 32x32 by teverren 48x48 ? in t ? L, J S I'd a media Social media Enabled ? Name Social media Version Description I ? J Example module to demonstrate module media. beta 11 Operations Help Permissions Configure Widgets Enabled Name Widgets Version Description Operations xl. a. Enables easy management of code snipes like Twitter, Facebook and Google buttons. betaS Required by: Widgets Service links (disabled) Widgets 7. x-I. 0- Enables links from Service links module to be used as widget elements Service links betaS Requires: Widgets (disabled), Service) inks (miSSing) hello on, matter ode export Key ords kill ? ion o. CHRIS SHATTUCK View Ed. 1- Shortcuts Social profiles SUBMIT File browser Devel HOW TO QUICKLY SET UP AN AWESOME, CUSTOMIZED FREE VOICE TESTIMONIAL SERVICE a ? f, '&lt;1 Mon. 2012-09-2421 :36 Chris Shattuck Ever since heard about the VoiP Drupal I've been itching to set up some kind of service that allows people to call in and leave testimonials for BuildAMocMe. But. haven't had chance and decided today that it was time to do something about it. ran into this awesome article outlining the process of using Google Voice to set up the service, and 1; I. it I. pH


Well, the itch to blog rapidly with quick screenshots finally got to me, and I spent the last couple of days re-working the Drupal Evernote module to get it functional with the new Evernote API updates and Oauth.

One failing of the first module was that there were a lot of steps involved to get it set up. In this new version, I've simplified the options quite a bit. Today I started using it in practice on chrisshattuck.com, and it seems to be working pretty smoothly. Before I release it into the wild, though, I'm going to give it a bit to work out any kinks. Man, it's a lot of fun being able to blog straight from Evernote. I've also set up a system to post directly to Facebook and Twitter as well with some simple tagging (I'll talk more about that later).

I went ahead and added it up on Github so folks can goof around with it until I can get a chance to re-grok the Drupal module tagging scheme. Also, right now it's just for Drupal 6 (since that's where my itch is).

Here's a screenshot of the admin page:

OCR-ed content: 
Evernote Settings Content type: him ., ? 10 ChriS Shant.l(k OCR tut Do sync syncs up only the 100 ?atod notes. will the in.


A couple years ago I put together the Drupal Evernote module so I could use Evernote as a blogging platform. I even set up a rules with the Rules module to post to Twitter if there as a particular tag associated with it. 

There were a few issues with the workflow, and I also started feeling a bit quieter, so I eventually stopped using it. And because I've drunk the Koolaid and realize just how easy it can be to blog, I haven't taken much time to actually compose many posts over the last couple years.

But I got tired of the quiet (it's way more fun to share cool stuff), so I spent the last couple of days updating Evernote, and figured out a workflow that will allow me to post to Twitter and Facebook selectively using a service called Twitterfeed.

Step 1: Set up the Evernote module

The updates I made to the Evernote Drupal module make it much easier to use. Just plug in where you want to pull Evernote from, and where you want to put the notes. Once this is set, cron will pick up any notes and create nodes from them. Here's a quick screenshot of the new Evernote module settings page (there's just one):

Step 2: Create feeds for different social networks  

I created RSS feeds for blog posts that should go to Twitter (all posts that have a 'tweet' tag), posts that go to Facebook (posts with a 'Facebook' tag), and one each for status updates to Facebook or Twitter (i.e. updates that are just text and don't include links back to articles). Here's a screenshot for the Views settings page for the blog:

Step 3: Set up Twitterfeed

Next, I set up Twitterfeed to pull from each of the feeds I created and post to their destination social networks. Here's a screenshot of part of the dashboard:

And here's what the workflow looks like

I use my blog as a central hub. It's public and I can create selective feeds from it. Evernote just becomes by source for creating content. 

So when I want to create a blog post, Facebook post or Twitter status update, if I'm at my laptop I'll fire up a new note with Evernote's global shortcut key (so I can open it no matter what app I'm in), type away, use Mac's keyboard shortcuts for creating screenshots to paste in, and then when I'm ready to post, I might add tags for Facebook and / or Twitter, then I'll set the notebook to the one I'm syncing with the blog. That's it.

At some point, the note will get synced with the central server, cron will run on my blog to pull the content in, then Twitterfeed will run to grab the content from the feed and push out to wherever I want it to go. There is a bit of a delay here, but the workflow is so simple that unless it's urgent, the time savings is so worth it

OCR-ed content: 
twitter feed Feed Dashboard (4 Feeds) chrisshattuck.com twiner link as. il cnnssnattuck.com face book tin 11 clam P.o. (4 RSS;teedS) 00.. Feed to tII. MMC No Hrdo.?ft Rowlc·, . .. . .. . .. G. T, Evernote Settings Content type: 10 Chris ShOlUI.I(k OCAtutfiekl: Do sync 1110 mt 100 ?atod syncs this will ee the ,3' (000). Ugly flowchart! Know of any prettier flowchart cools? Twitterfeed Evernote Blog Thinking Twitter Write message in Evernote cron job sucks rhe note into my blog RSS reeds get purred iruo Twitterfeed Twitterfeed sends it out to FB and Twitter. OTC


Syndicate content