I was recently trying to figure out exactly how long my users' sessions were lasting on an existing Drupal site that I had built. Generally it seemed like users were remaining logged in for an extremely lengthy period of time. I did some research and finally discovered that this setting is actually configured in the default settings.php file that ships with Drupal. There's a line in the settings file that initially reads:
ini_set('session.cookie_lifetime', 2000000);
You have to agree that Drupal admin screens can be pretty gnarly to interact with. If you want a better looking Modules listing page and if you want a tidier node add and node edit form... Then read on and watch the video at the end.
OK. I Pride myself on being HIPP and knowing about the newest modules and the coolest modules. I can not explain how I missed the MODULE FILTER module.
Late in the code sprint the last day of DrupalCON in Copenhagen, there was a lot of discussion going on about the upgrade path in Drupal 7. Questions of how to handle certain aspects of the process and prevent horrible flaming death when upgrading a site and its contrib modules. Upgrade processes, much like data migration, often become a sticky problem. Right now that stickiness has literally stuck the release of Drupal 7.
Regardless of the release status, folks are starting to adopt D7 for their projects. The Examiner recently launched on Drupal 7. Acquia's Drupal Gardens moved into public beta this summer, also on D7. These folks aren't alone, but not everyone has the expertise and backing to convince the decision makers to live on the bleeding edge.
I had the opportunity to present to a local organization in Salt Lake City on the techniques Lullabot uses for making kick ass presentations and how we streamline our presentations so they're reusable amongst our teaching staff. Watch the video below and download the slides.
I had a case where CCK nodereference wasn't populating the view field in the array, so I had to check to see if it was empty and then manually populate it.
I leave this code as a gift to posterity.
Some of you may have seen my tweets and screencasts about the ELI Media Server. It's a new project as part of ELMS that will involve a lot of screencasts about how we're integrating m Features JWPlayer Module
Building a website I recently ran into an issue where I had HTML search facets interacting with Drupal views. The user would click on the facet and it would filter the view depending on the argument. I ended up implementing hook_views_query_alter. To make sure the values I wanted to filter on were in the view, I added the search facets into the view as fields. This automatically joins the necessary tables so that you don’t have to.
Implementing hook_views_query_alter requires two parameters, view and query, both are passed by reference. Since this hook is called for every view the first thing I did was check that I was altering the right query by adding an if statement that checks the view name. After that you're free to modify the query as you wish. In my example, I looped through the search facets and added them as where statements and arguments to the query.
function search_views_query_alter(&$view, &$query) {
if($view->name == 'example_view_name'){
foreach($parsed_url AS $key => $value){
$query->where[0]['clauses'][] = 'profile_values_profile_' . $key . '.value IN ("%s")';
In part 1 of our Maestro module overview we explained the different task types that we have available in the module. One of these task types is the Interactive Task and this blog post will provide more detail on this task type and how to create your own custom function for it to use.
In an interactive workflow driven process, there are many times you need to present information or request information to a user. Examples of this would include:
Basically any task where we want to interact with the user and we want full control over what is displayed. We may need to prompt the user with custom submit actions and execute code depending on what action the user takes.
Wow! Code-Free Drupal Layout with Skinr, Fusion and Panels has been my best launch of an ebook ever. Thanks to everyone that's already purchased their copy. I hope you're enjoying it so far. I made a special offer to my mailing list yesterday and it was so hugely popular that I thought I'd extend it to everyone else too.
Anyone that has purchased Code-Free Drupal Layout with Skinr, Fusion and Panels as of 11:59PM EST (Eastern Time..are we daylight or standard right now? I always get them mixed up.) Sunday September 5 will be eligible to attend a FREE one-hour Webinar next Wednesday. I'll run you through the content of the book. Show you the demo (and real) sites that were used to create the content and answer your questions. If you've already bought the ebook your name is already on the list for the Webinar and you'll get an email early next week with the sign-on details.
Not interested in spending your hard-earned $11.95 on an ebook? That's cool. You can learn a lot from these free resources too:
If you plan to use the securepages module behind a proxy that terminates SSL, there are some additional server configuration steps you need to take.
In order to detect what the protocol is in use, securepages tests the value of $_SERVER['HTTPS']. Out of the box, this merely reflects the immediate connection to your proxy. If this protocol differs from that used by the original client, then securepages can't work (the most likely outcome is a redirect loop).
To resolve this, you'll need to ask your proxy to send the X-Forwarded-Proto header. While you're free to use any header label you choose, X-Forwarded-Proto seems to have become the de facto standard.
Everyone knows the top-tier Drupal modules, but with over 5,000 modules available for Drupal it’s no surprise that many useful ones go unnoticed. As a public service to the Drupal community, Palantir is working to raise awareness of some of these unsung heroes.
In part 4 of our ongoing 5,162-part series, we present: Menu Block: Revisited
In Menu Block (Part I), I talked about its basic options. In this part, I’ll be going into the crazy non-obvious options:
Last week at DrupalCon Copenhagen Antoine Beaupre and I shared our plans for the 1.0 release of the Aegir hosting system. After the 0.4 release that we are currently working on, the project will start working towards a final 1.0 build, rather than head towards 0.5.
Our goal for Aegir has been to implement a hosting system with a stable documented API that provides a solid foundation for integration of other services. Once we hit the 0.4 release, we will have the infrastructure in place to support this. With our key goal met, we've begun determining our must have features for a 1.0 release.
I like Prepopulate. I like to have that pseudo-RESTful way of preloading a form to minimize the amount of work a user has to do to get to the point of submitting a form. But I also like clean URLs. This post reviews in detail a technique to use a single prepopulated nodereference field to prepopulate a bunch of other fields based on that reference. Since Prepopulate’s recent 2.0 release, it because a whole lot more difficult to use the Form API to work magic on what it provides.
I use this in conjunction with nodereference to tailor node forms for their relationship with the referenced node.
CivicActions has been working with Google's “Make the Web Faster” project team to make some (last minute) improvements that make Drupal 7 faster.
Yesterday afternoon we made a new Alpha release of Pay for Drupal available. What is Pay you might ask? At its core Pay is a modular API for accepting, processing and tracking payments. If you want to be able to accept payments on your Drupal site for simple transactions with out "Add to cart" or complicated checkout procedures then Pay is for you! To learn more about Pay, take a look at our blog post last week and check out the project page.
As part of the Pay API we provide a set of base classes which can be extended to provide payment forms or payment methods and gateways. Out of the box we're currently shipping with support for Authorize.Net and PayFlowPro payment gateways. While at DrupalCon Copenhagen I began adding support for PayPal Website Payments Pro and Standard. While still under development some of this work is now available for testing in the latest alpha.
Have you ever wonder how many Drupal websites are there? What about Drupal modules and themes? Ever wanted to know how has Drupal evolved since it was created?
Find out all you ever wanted to know about Drupal, but were afraid to ask.
Take a look at this fast overview of basic facts about Drupal, print out a card and use it as a handy resource to promote the awesome features of this powerful CMS. You can even download a version for t-shirt and become the coolest geek on your next meetup or Drupalcamp.
Questions covered:
This is the question I got at many events where I presented about localize.drupal.org. We've just rolled out support for suggestion exports for translators about a month ago to make quality control and management easier, but that does not help people much who are just looking to download what's available.
I've also announced about three months ago that translation downloads were becoming stable and continually generated in a nice pace. However, the usability of those downloads left a lot to be desired. When looking at project pages on the site, you were shown a bland list of links to major Drupal versions the project was compatible with which all led to a long list of filenames on an FTP browser frontend. Also, some files being months old looked shocking given I've told you the downloads are now stable and up to date.
Since a few months I try to have a closer look at Drupal 7. After the release of Alpha 6 I decided to start a clients project based on Drupal 7. Two weeks ago we discovered a more or less strange problem.
In Drupal 7, as far as I knew, the profiles module will disappear or integrated in the new field api.
So I thought it would be a good idea to create the user fields as "fields" not as "profile fields". That worked perfect. It was possible to see the fields in the user edit dialog and in the user profile. It was also possible to access the fields via the views module.
But ... what is with the registration dialog? Read more
Recent comments
1 year 33 weeks ago
1 year 35 weeks ago
1 year 35 weeks ago
1 year 37 weeks ago
1 year 37 weeks ago
1 year 42 weeks ago
1 year 43 weeks ago
1 year 44 weeks ago
1 year 46 weeks ago
1 year 46 weeks ago