Thursday, November 8, 2012

Speed up your local Drupal development environment

A friend came across an interesting suggestion for speeding up the database interactions on my local development environment on this page: 

http://drupal.org/node/469086

Basically it's just some changes to mysql's my.ini configuration file:

innodb_buffer_pool_size = 1G
innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency=8
transaction-isolation=READ-COMMITTED


Then restart mysql.

The improvement will probably vary.

Wednesday, October 24, 2012

Packaging Drupal Rules into a Module

The Rules module comes with a nice Import/Export feature which makes it easy to move complicated sets of rules from one environment to another without a bunch of unnecessary re-configuration.  The simplest way is to simply copy the code out of the 'export' page ( an array ), and paste it into the 'Import' page on the target installation.

An even cooler way to move rules and be sure they're available to custom modules that depend on them is to include hook_rules_defaults() in your module code.

An example would look like this:

function hook_rules_defaults() {
   $rules = // paste the exported rules array here and add a ';' at the end of the array

   return $rules;
}

When the module is installed, so are the rules outlined in the array.

Friday, October 19, 2012

Drupal - Theming Views

http://pedroposada.com/blog/embed-views-2-nodes.html

methods available to a $view object:
http://drupalcontrib.org/api/drupal/contributions%21views%21includes%21view.inc/class/view/6

Registering template files in hook_theme():
        'views_view_table__map_requests__panel_pane_2' => array(
          'template' => 'views-view-table--map-requests--panel-pane-2',
          'path'  => drupal_get_path("module","maprequest") . '/themes',
        ),

Pass variables through to the template using:

function maprequest_theme_registry_alter (&$theme_registry) {
    {
    $tpl = $theme_registry['views_view_table'];
    $theme_registry['views_view_table__map_requests__panel_pane_2']['arguments'] = $tpl['arguments'];
    $theme_registry['views_view_table__map_requests__panel_pane_2']['preprocess functions'] = $tpl['preprocess functions'];
    } 
}

Friday, October 5, 2012

Nexus 7 - Setting up USB debugging

I recently bought a ASUS Nexus 7 tablet and I'm very pleased with it. I'm particularly happy that it came with Android 4.1 (Jellybean) because I'm interested in using it as a development device for web and apps.

I was excited to learn that by plugging my tablet into my computer I can get full access to Chrome developer tools. The setup was just a little more involved than I had planned.  It's hard to say if everyone will encounter these same hurdles, but the following sequence of events got mine working!

Setup Nexus 7 for Chrome USB debugging:

On Nexus 7:
- In Chrome settings, enable USB debugging
- In Device Settings -> Developer Options -> enable USB debugging
- Device Settings -> Storage -> Settings -> USB computer connection -> enable MTP

On PC:
- Plug in device
- Install Java JDK from oracle
- (optional) Download and install Eclipse Classic 4.2.1 or newer
- Install Android SDK
- Launch Android SDK Manager ( start as administrator! )
- Install Adroid 4.1, all tools, and the google usb driver

Download drivers from ASUS site:
- http://support.asus.com/Download.aspx?SLanguage=en&m=Nexus+7&p=20&s=16
- select the 'Global' download option ( middle of three )

In Windows device manager locate the Nexus 7 - generally under 'Other devices'
- 'Update Driver Software' -> browse to local copy of downloaded drivers & install
- Device should now be listed as an android phone

Check Device Connectivity:
- Open command prompt and change directory to C:\Program Files (x86)\Android\android-sdk\platform-tools  ( or the location of adb.exe )
- Execute command: 'adb devices' - the device should be listed. if not you have failed somewhere

Set up Chrome debugging:
- Execute:  'adb forward tcp:9222 localabstract:chrome_devtools_remote'
- Go to Chrome, navigate to localhost:9222 -> tabs on nexus chrome should be visible for debugging

And hopefully that will get you there...

Update:  If you're still having trouble, check that the 'USB Computer Connection' type is set to PTP.  This setting can be located in Settings -> Storage -> (menu) USB Computer Connection.

Thursday, September 13, 2012

Wednesday, September 12, 2012

jQuery.syntax()

I've been researching automated syntax hi-lighters and jQuery.syntax() is starting to look like a good option. Heck, it would even make this blog look better! Check it out:
http://www.oriontransfer.co.nz/projects/jquery-syntax/index.en

Tuesday, September 11, 2012

Send javascript variables from drupal module to js


    drupal_add_js(array('mymodule' => array(
        'username' => 'Anthony',
        'uid' => 123,
        'likes' => array('ice cream', 'peanuts', 'coffee'),
    )), 'setting');