Outside Links collection sticky icon

Sometimes you find just the right resources that fulfill certain need and nothing much should be added to them, in those cases I will just collect them on this page and add short comment why is this so.

How to combine Git and Drush to have perfect workflow for site maintenance, information and examples are here
http://www.jenlampton.com/blog/keeping-your-drupal-site-date-git-and-drush

Setting upt perfect Git + Drush workflow, read here
http://www.acquia.com/blog/using-git-drush-win-workflow

Create a view with specific number of columns per row without table

My frotend guy asked me to put 3 columns of data per one row in views output so he can put zen grids over them. Not sure if he really needs that but I made it for him with a view template. Selected unformmated display style type, created template
views-view-unformatted--taxonomy-term.tpl.php and added the code that detects when number 3 occurs, or to say what it in code, we check the ID and if it is divided by 3 and has no leftover (% module operator) then we detect it is time for a new group. Here it is:

<?php if (!empty($title)): ?>

Page to change only password and email

We needed to have a custom page or a block to only change email and password on that page, and the other user info we separated in different page. Sounds like a nice solution for users. So what we did is the following.

-custom menu item
-custom form
-validation and submit

Most of the code has been taken from user.module and adjusted to fit the need we have. So here is the code, ready to use.

/**
* Implements hook_menu().
*/
function password_email_form_menu() {
$items = array();

$items['change-credentials/%user'] = array(

Cancel button on drupal forms

This one is short but sweet. Usually drupal forms don't have cancel buttons that bring you back to previous page, so lets add one.

if ($form_id == 'user_profile_form'){
$form['actions']['cancel'] = array(
'#markup' => l(t('Cancel'), 'user'),
'#weight' => '666',
);
}

This will appear on user edit form and bring you back to user page when clicked.

Set the default address on shipping information with smart IP, refresh whole form to have proper counties(administrative area)

The title says it all :) add this to your module, into hook_form_alter and rock

//verify that this is not an ajax request, otherwise country changes will not be able to change the administrative_area information.
//in otherwise, let this section only happen once, and let ajax make changes as expected
if (!(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')) {
if ($form_id == 'commerce_checkout_form_checkout') {

Debug entitys etc

When debuging enteties normal dpm with devel module just wont do you any good. So use this

http://drupal.stackexchange.com/questions/33473/is-there-a-good-way-to-i...

and this for debugging or introspecting wrappers

https://www.drupal.org/node/1021556

Drush

If you are running into this error while using drush

Directory ..../drush/cache/default exists, but is not writable. [error] Please check directory permissions.

Run this to solve it

sudo drush version
sudo chown -R $USER ~/.drush

MAMP - Drush, can't connect to Database

Using drush on local machine is great. If you have problems where drush can't connect to DB of your drupal, It is probably because of the problem with PHP path so either try something like this

https://github.com/drush-ops/drush#additional-configurations-for-mamp

which advise you to put your PHP path into PATH
export PATH="/Applications/MAMP/Library/bin:/Applications/MAMP/bin/php5.3.28/bin:$PATH"

and/or use this export DRUSH_PHP=/Applications/MAMP/bin/php/php5.3.14/bin/php to add variable to make your drush run.
Seems the first one is the one that does the trick here.

Some clever functions to check current users, subscribe to organic group etc

I have been building a custom module that has Inviting users to a group feature in it. So there are this helper functions that are very useful.

user_load_by_mail($invitee_email)

will check if there is a user with specific mail, returning false if it is not, returning user object if there is one user with that email

global $user;
$account = clone($user);
og_is_member('node', $current_group->nid, 'user', $account)

will check if there is a user(user object) in a organic group, probably currently logged in user.

Inviting Friends/Sending messages over Facebook, Drupal module/snippet

There is a cool Facebook feature that you can easily implement, inviting or sending messages to Facebook friends with Facebook SDK

Just build a module, a block or whatever you want and put this code in

What is important is to have a FB app and FB APP ID that you have set in some variable, I am using it here with
variable_get('fb_app_id', NULL)
We are using here SEND https://developers.facebook.com/docs/sharing/reference/send-dialog but you can also use other types like invite, request etc https://developers.facebook.com/docs/games/requests/v2.1