This may be a rather short blog post, but it is mainly because this is such a simple solution. Recently my computer barked at me for having having practically no disk space left. Probably like most, I was in the middle of something and promptly ignored it. That is until I attempted to save the file I was working on and instead crashed. I was a bit perplexed as what could be consuming so much space on my respectable 500GB hard-drive.... Read more
DrupalCon Portland includes a community sprint Friday that is probably the most organised DrupalCon sprint ever. The sprints cover three different groups of contributors and span four rooms! Isn't that amazing?
Well, for core developers there is never enough core development opportunities, so we top this off with a whole lot more sprinting possibilities for those who arrive early and/or leave late and are already well entrenched or want to get involved in a core initiative. We have 5 (five!) extra sprint days in total, 3 before and 2 after DrupalCon, so counting the DrupalCon sprint day, that is 6 days of sprinting. There is a great number of people who signed up, topics include Views, Configuration management, Mobile, Multilingual, Twig, Web services, Plugins, Field API, etc. Its a real all-encompassing sprint for core developers.
We already have some great sponsors who made it possible to provide the sprint space nearby the DrupalCon venue, but we would love to be able to have drinks and snacks for sprinters to let them focus on making Drupal 8 the best release ever. Therefore we are looking to have more sponsors to help cover additional costs.
See http://groups.drupal.org/node/281033 for more information and sponsorship contact details! Thanks to sprinters and sponsors for making a dent with Drupal 8!
In this tutorial I’m going to show you how to programatically output a username link on the page. When theming a Drupal site or building a module, you might need to access the user account and print out the username. There is a Drupal theme function made specially for this but it has a catch. So let’s see what that is.
A while ago we wrote about the Drupal 6 modules you really need. Since that post a few things have changed, on one hand Drupal 7 has moved a bunch of those modules to its core, while on the other hand some were replaced by better alternatives.
Of course every Drupal site we build has different requirements, which makes our choice of contributed modules unique for every project. Nevertheless here is our current selection of trusted Drupal modules we don't want to miss. The bare necessities, if you will.
Internationalization & Entity translation
Working in a country, that has four officially recognized languages and English being the Internet's lingua franca, we install these modules without thinking anymore. Multilingual solutions have come on leaps and bounds since previous Drupal releases and despite not being perfect yet they make our lives much easier.
Regardless of how much attention you want to give to search engine optimization in a project - getting the basics right is essential. Pathauto enables you to create URL patterns for all entity types. The Pareto principle will thank you.
This is by far the most powerful module in the Drupal ecosystem. Built on the Chaos tool suite (ctools), it gives the full control to display any kind of entity in the manner you want it. No wonder it will be part Drupal 8's core.
If you are a developer this one can help you out of the odd pickle. It allows you to gather information on what is happening in Drupal's background. Just remember to disable it on productive environments.
The quickest and easiest way to make your websites visits quantifiable. You can only manage what you can measure.
Need a complex layout on the quick? Panels will be your trusted friend. You can define layout templates and define in which contexts they should appear.
Display Suite / Panelizer
Depending on the level of complexity of our brief we will opt for one of these two masters of data display control. Although both have their pros and cons we tend to use Panelizer more often, since it's benefits can be leveraged on large and complex websites.
An amazing module, built upon the Entity API, which allows you to define workflows and actions while you barely have to write any code. It integrates into many modules witch makes it a powerful and useful resource.
You can argue that allowing visitors to create nodes with appropriate field permissions can act a contact forms - we have seen this approach in the wild... In our opinion using the Webforms module is the better option for the majority of use cases where a form is needed. You don't want your content overview screen cluttered with spam that got through Mollom's net, right?
What do you think? What are your bare necessities?
The core Search module in Drupal 7 is great for simple search pages however, the configuration options are fairly limited. If you want to change the look and feel of the search results, you could use the Display Suite Search sub-module that ships with Display Suite.
You can go one step further and create a custom search page using just Views. All you need to do is create a page display and expose the Search: Search Terms filter, and you're done. But the filter still relies on the index data that the Search module creates.
If you want flexibility and control over your search pages, then you should take a serious look at the Search API module. The biggest benefit of using the module is that it supports a number of search backends like Apache Solr, Xapian and MongoDB or you can store the index directly into a database.
Another episode on the Drupal 7 Panels module, but this time we cover Drupal Panels Contexts.
In this episode you will learn:
- What are Drupal Panels module contexts
- How can Drupal Panels module contexts be used to load in additional information in a panel page
- How can Drupal Panels module contexts be used to load in dynamic information based on a page argument
A few weeks ago I decided to rebuild this portfolio/blog site. The old site was running on Drupal 7, and I had long tired of the design; it was somewhat slow, too. Add to the mix a bit of boredom with the status quo and a desire to try something new and "lightweight," I downloaded the Laravel (v3) framework I'd been hearing so much about.
After flipping through a few tutorials and going through a large chunk of the documentation I had a pretty good idea of how things worked, as the setup & general ideas are fairly similar to a few MVC frameworks I've used before. I should mention that the documentation is quite good, however it's certainly aimed at experienced programmers. There are times when you need to read between the lines and put two and two together.
I structured the app in a way that resembled Drupal:
- controllers all extend a base which provides a default layout
- base controller provides default variables for common elements
- controller actions override defaults as needed
- layout is assembled from a series of views for the page, regions, entities, and individual components (think: blocks)
It's important to note that Laravel doesn't force you to structure your app in any specific way. For the most part, you can do whatever you want, which can be both a blessing if you know what you're doing, and a curse if you don't.
By this point I've come to appreciate the flexibility of the routing system & restful controllers, and the intelligent class autoloading - nice! Route filters and Events function similar to Drupal's hooks, allowing you to tie into the processing at key points. Everything is simple, clean and flexible - so far, so good.
On the front-end, I'd put together a simple design in Photoshop, implemented it with the Twitter Bootstrap CSS framework (Laravel has a nice Bootstrapper bundle), accounted for a simple responsive design, integrated Font Awesome, and got myself a TypeKit subscription (fantastic service) to get access to some nice fonts.
With the look and feel in place I dug into the actual data: blog entries, projects and a few static pages. I really enjoyed working with Laravel's Migrations and Eloquent ORM. So simple, yet so powerful. Rolling database changes (forwards & back)? Sure. Want a model to access your content's database table? Just extend the Eloquent class. Need to create a relationship to another table and get full ORM support? One line of code. I could get used to this.
Laravel also comes out of the box with a great CLI called "Artisan." Similar to Drush, this allows you to manage bundles (modules) and perform various administrative tasks. Very handy.
Proceeding on with dev I set up image scaling/cropping (simplified version of Imagecache's functionality), DISQUS commenting, path aliasing, and basic taxonomy functionality. I have to admit that by this point the novelty of the framework had worn off, and the "why am I reinventing the wheel?" thoughts had firmly planted themselves in my head. I still had no admin backend, and the idea of building all those forms, permissions, and handling CRUD operations was daunting, to say the least.
After some serious deliberation at such a late point in dev (I'd say I was close to 90% done), I cloned Drupal's 8.x branch and installed a local copy. I had gotten what I wanted out of Laravel (exposure to something new and upcoming, learning a few new tools and ways of approaching dev) and it was time to get back to what was a better option for my site: a proper CMS. (Sidenote: there are several CMS options built on Laravel which I didn't explore).
This change in direction is not a negative for Laravel - it's a great framework, just not well suited to what I was building at the time. Much like most other frameworks, a lot of grunt work is necessary to get what Drupal provides out of the box (some of which can likely be alleviated with existing bundles). On the other hand, if those out of the box tools are not necessary (which would be the case for many web applications), Laravel would be a solid option.
Back to Drupal: D8 is obviously in heavy development, but I've found it to be stable enough for a small, personal site and a pair of hands that aren't afraid to get dirty. Obviously there aren't any contributed modules which are ready for D8, but with Views in core, there's not much else that I'd want. In fact, the only thing I'm missing is Pathauto, but a basic custom solution can take care of that problem in half an hour.
General development of content types, image presents, views, etc. was pretty straight forward. I quickly grew to like the new content editing UI, form validation helpers, and the admin menu. Submitting pieces of content does trigger an error, but everything still works, so nothing to worry about there.
The first thing I noticed about my D8 install was how many fewer database tables there are. Wonderful cleanup from the bloat of D7, as many of those tables have "migrated" into configuration files located in sites/default/files/config_[hash].
Something to note: don't exclude this directory from your version control, as it's required, and will result in severe frustration and dents in your desk between the hours of 12am and 4am (because launching your newly completed site at 12am is a great idea). Additionally, the [hash] mentioned above is referenced in sites/default/settings.php, so make sure there's a match. On the other hand, the sites/default/files/php folder contains code which is environment specific and references absolute paths to various classes.
After figuring out these little quirks, disabling the royal pain that is CKEditor (hoping that'll improve as D8 comes closer to full release), and setting up Varnish to speed up anonymous requests, the site has shown to be quite stable and useable. Plus, brownie points for using the latest and greatest, right?Tagslaraveldrupal 8drupal 7drupal planetdrupal
The Downtown Los Angeles Drupal group is now Greater Los Angeles Drupal and we're having our first Greater Los Angeles Drupal Governance Meetup on Tuesday, April 2, 2013 between 4-6pm. This is prior to the Downtown Drupal meetup in Downtown Los Angeles that's scheduled the same evening from 7-9pm.
In the spirit and tradition of our user group and events, this meetup is open to all Greater Los Angeles Drupal members and is an excellent opportunity for anyone who's interested in getting involved or is just interested in observing our open governance model.
Join us in person at Droplabs or remotely via Google+ Hangout!Agenda
Our agenda for this meeting is:
1. Review (and possibly publish) the proposed Greater Los Angeles Drupal Governance policy:
If you plan to attend, please be prepared and familiarize yourself with both our group's mission at http://groups.drupal.org/node/219129 and our current governance proposal at http://groups.drupal.org/node/230018 prior to this meetup.
2. Discuss the name change of the group from Downtown Los Angeles Drupal to Greater Los Angeles Drupal.
3. Brainstorm about the group's current mission and distributing what we want to do across our current organizing team. How do we identify new organizers and empower our current organizers?
4. Would you like to add something to the agenda? Add a suggestion in the comments at http://groups.drupal.org/node/289988#comments! (a Drupal.org account is required. See http://groups.drupal.org/node/69093 for more information.)Join Us on Google+ and Twitter!
To join the meeting, use the following URL:
Google+ hangout: https://plus.google.com/hangouts/_/d9b0d9eba12664d9ec5ed3f07265266d10cf031b
Short URL: http://ex.tl/ZMK
During the meetup, the event organizers will be monitoring Twitter for feedback and questions that mention @GLADrupal.Location and Directions
651 Clover St.
Los Angeles, CA 90031
We're quickly gaining a reputation for being the only coworking space around with a with a low-cost business model: come work here and use our tables, chairs, WiFi and conference room with a low, daily or monthly membership fee and only pay more for the extras, such as 24/7 access, equipment rental and a locker for your belongings.
Droplabs is in the Mission Junction neighborhood of Los Angeles at Big Art Labs, just 1 mile down Main St. from Philippes (the first-ever venue for Drupal meetups in Southern California!) and Union Station. We're one block west of The Brewery, the largest live-and-work artists' colony in the world.
Free parking in our large parking lot is first-come, first-served. After parking in the lot, follow the yellow signs that point to Droplabs. (If our lot is full, you can park for free on Clover St.)
Droplabs is a brief walk from the Main St. / Lamar St. stop on the the Metro Local 76 bus line. This is also the Lincoln Heights / Chinatown DASH stop.
To carpool or catch the Droplabs shuttle from Union Station, post below in the comments.What to Bring
Just bring your laptop, your business cards or whatever else you need. You're also welcome to bring some light food, sodas or beers to share with others at the meetup.
Please note that our guest wireless network is limited to 1Mb per client, so bring your MiFi router or a phone you can tether with if for some reason you need a lot of bandwidth. Access to our high-speed network is included with a Droplabs membership.About Greater Los Angeles Drupal
With several weekly and monthly events, the Greater Los Angeles Area is one the most active areas for Drupal in the world.
Formerly named Downtown Los Angeles Drupal, we've been meeting regularly in and around Downtown Los Angeles, California, since early 2010, and now organize a large number of events in the area. Our signature events include the Drupal Job Fairs and the Downtown Drupal, Frontend Drupal and High Performance Drupal meetups.
Our members and organizers have produced hundreds of Drupal events, including job fairs, meetups and workshops, conferences, paid trainings, coworking days, study group sessions, movie outings, FREE tutoring sessions from Drupal professionals, and website barnraisings to benefit non-profits and members of our community.
Attending Drupal events in the Greater Los Angeles Area is one of the best ways to meet and talk with other Drupaleros and we encourage you to attend as many meetings and special events as you'd like. Whether it's to find solutions to problems you've been having, sharing something you've learned or just meeting interesting like-minded people, the Greater Los Angeles Drupal events are an essential resource for Drupal professionals and hobbyists alike.
We proudly participate in the California Drupal Travelers Program, which aims to connect businesses and community members who are visiting the area with our local community and events. Inquire within by contacting any of the Downtown Los Angeles Drupal organizers, or by joining the global Drupal Hospitality Network.
The Drupal Association seeks a creative and innovative design partner to create the web and print designs for the 2014 DrupalCon events. We’re looking for people who understand that each DrupalCon is a singular expression of the Drupal community, DrupalCon location, software innovation, and extreme nerdiness and know how to turn this into compelling designs that are functional, fun, and make people look twice.
Drupal 8 is the first development cycle introducing Drupal core initiatives, which are key focus areas for improving Drupal. Each core initiative is led by an individual or small team, and these initiative leads guide the efforts of other core contributors around their initiative. The initiatives are only a part of all Drupal 8 development, but most of the big Drupal 8 changes have been worked on by these initiative teams. (Read more about the core initiatives.)
Several of the initiative leads participated in a Drupal 8 question & answer session at DrupalCon Sydney and it went very well, so we want to repeat that experience by providing another opportunity to talk with the global Drupal community!Goals of the session:
- Share the status, milestones, and next steps for each Drupal 8 initiative.
- Answer your questions: Want to know what’s going on, or how you can get involved? Now’s your chance to talk with us!
- dawehner, tim.plunkett, and xjm (Views in Drupal Core Initiative)
- Alex Pott(CMI Initiative)
- Crell (Web Services Initiative)
- JohnAlbin (Mobile Initiative)
- EclipseGc and sdboyer (Blocks and Layouts Initiative)
- Gábor Hojtsy (Multilingual Initiative)
April 11th, 2013 10:00-11:00 am EDT (1500 UTC)Where?
Via Google Hangout broadcast! (link coming soon)How do I ask questions?
- Anyone interested in getting a D8 status overview.
- Developers interested in D8 who want to ask questions.
- Developers interested in helping finish Drupal 8!
- Helpers (Devs, Front-end, Theme/Design, UX, Project Mgmt & more!) who want to know how they can help & get involved.
The very first time you log into a new host you will be asked to verify that the system is the one you intended to access. The remote system will send its host key to your client as part of their handshake and your client will ask you to verify the host key fingerprint before continuing the login process. It sounds complicated, but you don’t have to worry about it! Your ssh client does all the work! Here’s an example of what you should see on that first attempt (this will vary based on your OS).
In this example, we'll explore how to make a custom hook with our module so that other modules may use it.
Easy cheesy! Here are three quick wins you can add to your Drupal site to make your life easier today.
One of the great tools in Drupal is flags – it’s the big red button. If R.A. the Rugged Man and Vinnie Paz put together a Drupal site it’d have things to punch on it, and those things would be flags. Drupal 7 has added several tools that massively extend flags – Flagging Form which may be further extended by the Dialog module. And to improve the UI a bit we used the Improved Multi Select widget – thanks to Rooby for a recent shout out – tracked your profile and was stoked to start using this
For those who want a brief overview of the tools https://www.youtube.com/watch?v=xQ_6eL9_TZ0
And this is again one of those cases where seeing drupal connect various modules together for net gain is pretty sweet.
The Flag set up is pretty straight forward – for our use case we here’s our flag edit page. Then once that’s done we added a simple term reference field in to the fields section of the form (this is, of course, where flagging form came in handy)
Adding the fields is straight forward enough that if you know anything about fields you should be able to do your thing. After that the only step left in this recipe is creating the view that lets you flag content. This too is fairly standard
One thing that still doesn’t work is our taxonomy depth filters. Because the terms are attached to the flag and not directly to the content it’s possible to use contextual filters to return content that is appropriately tagged, however the “With Depth” filters do not work as expected. If anyone has any thoughts on this I would be most grateful.
As Drupal Developers, you’re likely to run into a few questions when you first crack open Drupal Commerce. There’s something foreign and perhaps a bit scary about building a website that accepts money. The site better be solid, secure, flexible, and (above all) easy to understand.
That’s why we built literally everything in Drupal Commerce on the shoulders of existing technology that Drupal Developers understand: Views, Entities, Fields, etc. That decision doesn’t help you if you don’t understand existing Drupal sites.
So we have an interesting and fantastic problem: we’ve got this great software, but we have more and more questions flooding into drupalcommerce.org about Drupal, about eCommerce stores, about security, and many other topics.
Larry Garfield (Crell), leader of the Drupal 8 Web Services and Context Core Initiative (WSCCI), joins Andrew Riley, Ryan Price, and Mike Anello as they desperatly tried to stay out of the weeds during their discussion about routing, hypermedia, controllers, and REST (and somewhat fail). Along the way, we learn what Drupal developers of all disciplines and skill levels can expect from WSCCI, and why it's going to make the (Drupal) world a better place. In addition, we discuss importance of Hackathons and not over-reacting.
Jeff Eaton and Jared Ponchot discuss the parallels between design systems and content models, the challenges of responsive design, and the importance of content hierarchy for designers.
Mentioned in this episode:Insert Content Here Length: 32:51 minutes (12.74 MB) Format: mono 44kHz 54Kbps (vbr)
In this Drupal video tutorial, we install the Ubercart Discount Coupon Module and I show you how to configure it to create general coupons users can use at the checkout, create coupons that are automatically emailed to a user after they purchase a specific product and lastly, to create coupons that are automatically applied to an order based on the number of products in the cart.
Just ponder these statements for a while. No need to over-analyse:
o Drupal core has about 50 modules.
o The D7->D8 core transformation has been a mammoth effort by a wonderful team of passionate individuals -- and they're still going.
o Most of their time is funded, although perhaps not sufficiently, through various sources.
o At D8's release, hopefully early 2014, the transformation from the day that the D8.x branch was created, will have taken 3 years
o Drupal is NOT backward compatible. If one module important to you or your client has not been ported to D8, you're stuck on D7 for your entire web site.
o Contrib has over 20,000 contrib modules, 400 times the amount of core.
o At this point in time, close to zero of these modules have D8 releases. Some popular modules don't even have a stable D7 release yet. Examples: Admin menu, Boost, Context, Field Permissions, Lightbox2, Location, Metatag, Redirect.
o D8 contrib development is harder than D7, at least at first. Read this or eaton's prophetic words in these Predictions for 2013: "The next generation of Drupal devs will find older D7 code as baffling as today's devs find Drupal 3 code. There will be a long lag cycle as contrib modules are ported, replaced with new alternatives, and so on."
Now ponder these questions.
- How will the bulk of a body of work 400 times the size of D7 core, progress to D8?
- How many people will be needed to make this happen and who will do it?
- How will they be rewarded for their time? Time is a precious resource and working for free indefinitely is not a viable business model.
- How much will not doing this in a timely fashion cost Drupal-based businesses all over the world?
- How many businesses as a result, will think of the above when contemplating switching to competing systems? eaton: "We'll inevitably lose a number of [those] sites to other frameworks". What do you think?
Drupal's end-of-life policy has been the elephant in the room for some time. This time though, with Drupal and its number of modules being larger than ever before, has the elephant grown so big it will crush us?
Do you, or the DA, or Acquia, or "the powers that be" even care? If so, what are the strategies or suggested strategies?
Any answers or suggestions? Please comment below.File under: Planet Drupal
I’ve written a lot about the work I do for Akiban with Drupal in the past and many people would ask if Akiban was open source software. Well in the last few weeks we actually open sourced our database server. We also have downloads for various platforms such as Windows and OSX besides binary packages for Linux variants.
Some of the things included in our open source database are:
We are also working on offering on a service offering for our database server so there will be no need to manage an installation yourself. If you are interested in trying our service in its current beta form, please let me know in the comments or hit me up on twitter and I’d be happy to hook you up or just visit our website. We also have a public mailing list for the Akiban project if you try anything out and have any questions.