Today we will look at creating a module to allow you to export your views to code. While this concept has been explored on other blogs previously, several important end steps that I find particularly useful have been left out of those discussions. I would like to remedy that here, detailing an entire process for setting up the module, displaying use scenarios, and also showing the changes that this module will make to your views administration process.
Disclaimer: This post describes how to create custom pages on your drupal site, and create custom menu items (page routes), within a module. After reading this post, you will know how to implement hook_theme() and hook_menu() to create custom urls (Paths) and very basic content templates in both Drupal 6 and Drupal 7. This tutorial assumes you know how to create and upload files to your server using FTP, and also know how to create a basic custom module to use as a foundation.
Disclaimer: This post describes how to create a custom module and use it to create custom permissions on your drupal site. The purpose is to present a general idea of how to implement hook_permission() (or hook_perm() if using drupal 6) to create custom permissions, as well as to use and find drupal hooks. This tutorial assumes you know how to create and upload files to your server using FTP.
This post describes generally how to create ajax paging comments, how to package the created comments into a feature, and how to override default views created by modules.
Ajax Comment Pagination
You know the biggest problem with comments? That's right, getting them to page using ajax so that users watching videos don't have to reload the page. Good answer!
So how does one go about making this happen in Drupal 6? Very easily actually. One simply makes their comments load in a view, and uses Views built in ajax to handle the pagination.
Disclaimer: This post is about a very basic example of a drupal module that works in both Drupal 6 and Drupal 7. The purpose is to present a general idea of how to write custom drupal modules, use and find drupal hooks, and to show how to take advantage of drupal's Devel module. This tutorial assumes you know how to create and upload files to your server using FTP.
1. Creating a module
First, let's make a module that only exist in the module system. Follow these steps exactly.
If you've ever built a large website that requires private files, then you've probably run into this before. In Drupal 6 the CSS optimization requires that the files be stored publicly. This is a known bug that will not be fixed according to the drupal developers.
The boss just shot you an email. He wants the user’s profile to get updated whenever that user creates a story node. He also wants to automatically post badges to a user’s profile when their story has been viewed a certain number of times. And you can’t use the statistics module, because it killed his family. Can you have it by this afternoon?
No problem. Hook_nodeapi’s got this.
There are many things you may want to do to a new user on your Drupal website. You may want to apply a new role, require approval, or even programmatically create node with the new user as the author. So let's get started...
So the trick here is obviously using the $op insert as it is only called once upon user creation.
One of the most frustrating things to deal with as a Drupal programmer can be Ubercart. Often, you need to complete a simple task such as sending an additional email, or giving a user a new role, and your options are to use Rules, Conditional Actions or just program it yourself.
Rules or Conditional Actions allow you to execute PHP, but sometimes you don't want to store your php code in an unformatted text field in the database. Enter hook_order(). One of Ubercart's primary hooks for getting stuff done.
Aegir is wizardry, pure and simple. Once you’ve got it set up and running there’s almost no excuse not to have all of your sites on it.
If you don’t feel comfortable with the command line or you don’t want to mess with it you can still pull the migration off.