$5.00 books from Packtpub.com!

It’s that time of year again! You can get awesome deals on ANY book at Packtpub.com! – PJ

Following the success of last year’s festive offer, Packt Publishing will be celebrating the holiday season with an even bigger $5 offer.

From Thursday 18th December, every eBook and video will be available on the publisher’s website for just $5. Customers are invited to purchase as many as they like before the offer ends on Tuesday January 6th, making it the perfect opportunity to try something new or to take your skills to the next level as 2015 begins.

With all $5 products available in a range of formats and DRM-free, customers will find great value content delivered exactly how they want it across Packt’s website this Xmas and New Year.

Find out more at www.packtpub.com/packt5dollar

1

$10.00 eBooks from Packtpub.com

Packt Publishing is having a great sale on a bunch of different titles for their 10th anniversary in the publishing biz. If you’re looking for a good tech book on coding, development or network engineering, these guys are great. Each eBook on sale is only $10 – a great value!

I’ve used PacktPub.com’s ebooks for years now. They are top of the line for all sorts of development projects. Check out what they have to offer!

Image

 

http://bit.ly/1qqpLsu

Core Upgrade – 7.26 – 7.27

It has been a relatively long time for this update but it is finally here and should be installed as soon as possible. I followed the same procedure as always and have had no issues with the install.

Here is a link to the procedure:

Core Upgrade – 7.21 to 7.22 procedure for Centos 6.3

Shameless plug? Or good offer. You decide

Packtpub.com is having a great sale right now. Check this out for the details. Most of the books that I have on Drupal and open source stuff like xAMP come from these guys; their books are really good. This is a great deal too – buy one get one free!

Image

http://bit.ly/1j26nPN

 

Drupal Core Upgrade – 7.26

This upgrade has come along pretty close to the heels of 7.25. But unless you want to see the warning message constantly, you’ll need to go ahead and put the upgrade in place.

I ran the usual procedure you can find by search for the word “upgrade” on this blog and experienced no issues at all.

Happy Birthday Drupal! Get ready for the Drupal 8 code sprint!

Tomorrow is Drupal’s birthday and Drupal.org will be celebrating with an awesome code sprint for Drupal 8. Check out the details here!

https://groups.drupal.org/node/390873

This would also be a great time to join or renew your membership for Drupal.org! It’s a great, inexpensive way to support the CMS that we all love!

https://association.drupal.org/membership

Read this….

You’re not a genius and your idea is probably dumb (and lessons I’ve learned from my own dumb ideas) 

http://projectricochet.com/blog/youre-not-genius-and-your-idea-probably-dumb#.UtKgF_RDvzY

Sunday, June 2, 2013

Admittedly, I’m not a genius either. And most of my ideas are incredibly dumb. But don’t worry, you don’t have to have a brilliant idea or be particularly smart to be successful in business and web apps.

On that note, I’d like to share with you a few lessons I’ve learned in co-founding and managing a successful web development firm as well as the recent beta release of our app, Pushpin Planner (launched without a single dollar of outside funding)…..

http://projectricochet.com/blog/youre-not-genius-and-your-idea-probably-dumb#.UtKgF_RDvzY

 

Using hook_form_alter in a custom module

Making what would seem to be really simple HTML changes in Drupal can appear really perplexing until you learn about the hook_alter functions. These Drupal specific functions are great for you to override Drupal behavior when the normal configuration options don’t provide a means to do so. That’s really important too: learning when to write code and when not to for Drupal. Always explore the available options for changing the way a module or theme presents data before you try to write code until you really know how to use Drupal properly. Writing code is satisfying but a waste of time in Drupal if someone has already written it for you.

But if there is an occasion to write some code, here is a really simple example of what to do to alter the presentation through a hook. Specifically, we are going to reverse the display of the user name and email fields on the user registration form so that the user name field is listed below the email field, the opposite of the way the form is written. This is the high level stuff that we are about to do.

The function or “hook” to override a form is:

hook_form_FORM_ID_alter()

where hook will be replaced by the name of the module I am going to create to do this and FORM_ID will be replaced by the ID of the actual form.

  1.  Identify the form ID of the Drupal form, in this case the User Registration Form.
  2.  Find the form in the core so that we can see what it is, where it lives and how it does what it does
  3. Create a new module to override the form so that we can make a very simple change

Find the form
Go to the form in a browser
View its HTML source in the browser
Figure out the form ID of the form you are altering. The ID will be the “id” attribute of the HTML form tag.
In the case of the User Registration form, the ID is, user_register_form. I can see this in the HTML source as “ID=user-register-form” but I know that the machine name will be with underscores and not dashes. Now, this is where it gets a bit tricky. Since the form is the user registration form, I know that I am certainly dealing with the Core User Module. I know enough about Drupal to know this is likely true so I know where to look. What I am emphasizing is to be really careful and ONLY do this in a test environment until you really know what you are doing. See my post about Get Pantheon if you want a good free Drupal testbed. One of the things that you can do to track down the area of code that you want to work with is to search through the .module file(s) for rendered text. When I look at the Drupal form (the user registration form in this case) that I want to alter, I note that there is a description that says, “Spaces are allowed; punctuation is not allowed except for periods, hyphens, apostrophes, and underscores.” If I search for that specific text in the user.module file, I am taken to line 1039. This is the precise area that I want to change, so I know that I am in the right area. If you are unsure of which .module file you need, you can expand your spearch to look at multiple files.

This is the code from the user.module file. It shows the user name code, then the email code below.

//THIS IS THE CODE’S START
$form[‘account’][‘name’] = array(
‘#type’ => ‘textfield’,
‘#title’ => t(‘Username’),
‘#maxlength’ => USERNAME_MAX_LENGTH,
‘#description’ => t(‘Spaces are allowed; punctuation is not allowed except for periods, hyphens, apostrophes, and underscores.’),
‘#required’ => TRUE,
‘#attributes’ => array(‘class’ => array(‘username’)),
‘#default_value’ => (!$register ? $account->name : ”),
‘#access’ => ($register || ($user->uid == $account->uid && user_access(‘change own username’)) || $admin),
‘#weight’ => -10,
);
$form[‘account’][‘mail’] = array(
‘#type’ => ‘textfield’,
‘#title’ => t(‘E-mail address’),
‘#maxlength’ => EMAIL_MAX_LENGTH,
‘#description’ => t(‘A valid e-mail address. All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.’),
‘#required’ => TRUE,
‘#default_value’ => (!$register ? $account->mail : ”),
);
//THIS IS THE END OF THE CODE

Since we want to reverse the display order of the two fields, this is what we’ll do. Notice the ‘#weight’ key of the array for the user name? since that weight is “light” it will float to the top. If we give it a heavier weight, it will sink.

I create these items:

  • a folder called registeruser in sites/all/modules
  • a file called registeruser.info – this can just have all the normal .info stuff
  • a file called registeruser.module – the code is below:

<?php
function registeruser_form_user_register_form_alter(&$form, &$form_state, $form_id) {
$form[‘account’][‘name’][‘#weight’] = 1;
}

Since I just want to alter the one key, I can write it on just the two lines to make it simpler. The weight is now 1 instead of -10 so it will sink below the default of 0.
I enable my new module and test it out. I see now that the fields are in the reversed order. This change isn’t groundbreaking or anything, but it is a good example of how to user the hook_form_alter() function.

Use the hook_field_schema function from your custom module’s .install file

Many custom modules will not need to add information directly to your MySQL database. But if you do want to store new info from your module, you’ll need to include a .install file with your .module and .info files and use the hook function listed above to do this.

This references a great book that I picked up from Packtpub.com. Yeah, I know; another shameless plug. But it is worth it.

This is the code that you need to place in your install file. You’ll note that it looks similar to the SQL statements that you would use to add the info manually.

/**
* Implements hook_field_schema()
*/
function countryinfo_field_schema() {
$columns = array(
‘country’ => array(
‘description’ => ‘Two letter ISO country code of this
address.’,
‘type’ => ‘varchar’,
‘length’ => 2,
‘not null’ => FALSE,
‘default’ => ”,
),
);
return array(
‘columns’ => $columns,
);
}

If this is the type of development you want to be able to do, take a look at the book at packtpub.com:

http://www.packtpub.com/drupal-7-development-by-example-beginners-guide/book

Drupal Core Upgrade – 7.25

 

 

There is a new core upgrade for Drupal, moving from 7.24 to 7.25. It appears to be pretty cut and dried. Once, again, I am using the procedure detailed from the link below. 

Core Upgrade – 7.21 to 7.22 procedure for Centos 6.3