Good Practice for DOM manipulation




var $input= $( '#input' ); // reference to dom element

$input.css( 'color' , 'red' );

$input.attr( 'value' , 'costam' );

$input.show();


The best method ( Chaining ) 

var $input = $('#input'); // reference to dom element

$input.css('color', 'red').attr('value', 'costam').show();

Extend current objects with jQuery

Note : its good practice to extend objects instead of recreate them


// Navigation component scripts
var bobcat = bobcat || {};

bobcat.components = $.extend(bobcat.components, {

    "navigation": (function() {
        this._init = function() {
            // some initial functions
        }

        return {
            init: this._init
        }
    })()
});


Extend current objects with jQuery

// Navigation component scripts
var bobcat = bobcat || {};

bobcat.components = $.extend(bobcat.components, {

    "navigation": (function() {
        this._init = function() {
            // some initial functions
        }

        return {
            init: this._init
        }
    })()
});


Encapsulation In JavaScript.

Example :


var mainmodule = {};

mainmodule.newModule = (function() {
    var that = this;
    this._setup = function() {
        // do some setup
    };

    this._init = function() {
        that._setup(); // and do more here
    };
    return {
        init: this._init
    }
})();


Note:

use that pattern

private vars with "_" prefix


How to create Shortcut for Netbeans in Ubuntu


My Ubuntu version 14.4 and Netbeance version 8.2

Create New File under :  /usr/share/applications$
File name : netbeans.desktop

[Desktop Entry]
Name=Netbeans
Encoding=UTF-8
Comment=Netbeans IDE 8.2
Exec=/bin/sh "/usr/local/netbeans-8.0.2/bin/netbeans" %U
Icon=/usr/share/app-install/icons/_usr_share_netbeans_7.0.1_nb_netbeans.png
Terminal=false
Type=Application
Categories=Development,IDE;
StartupNotify=false

How To Create Custom Block Programatically

===============
.info File
===============

name = custom_block
description = My Custom Block using module
core = 7.x

===============
.Module File
===============

<?php

/**
 * Implements hook_block_info().
 */
function custom_block_block_info() {
    $blocks = array();
    $blocks['my_block'] = array(
        'info' => t('My Custom Block'),
    );

    return $blocks;
}

/**
 * Implements hook_block_configure().
 */
function custom_block_block_configure($delta = '') {
    $form = array();


    switch ($delta) {
        case 'my_block' :
            // Text field form element
            $form['text_body'] = array(
                '#type' => 'text_format',
                '#title' => t('Enter your text here in WYSIWYG format'),
                '#default_value' => variable_get('text_variable', ''),
            );

            // File selection form element
            $form['file'] = array(
                '#name' => 'block_image',
                '#type' => 'managed_file',
                '#title' => t('Choose an Image File'),
                '#description' => t('Select an Image for the custom block.  Only *.gif, *.png, *.jpg, and *.jpeg images allowed.'),
                '#default_value' => variable_get('block_image_fid', ''),
                '#upload_location' => 'public://block_image/',
                '#upload_validators' => array(
                    'file_validate_extensions' => array('gif png jpg jpeg'),
                ),
            );
            break;
    }
    return $form;
}

/**
 * Implements hook_block_save().
 */
function custom_block_block_save($delta = '', $edit = array()) {
    switch ($delta) {
        case 'my_block' :
            // Saving the WYSIWYG text    
            variable_set('text_variable', $edit['text_body']['value']);

            // Saving the file, setting it to a permanent state, setting a FID variable
            $file = file_load($edit['file']);
            $file->status = FILE_STATUS_PERMANENT;
            file_save($file);
            $block = block_load('custom_block', $delta);
            file_usage_add($file, 'custom_block', 'block', $block->bid);
            variable_set('block_image_fid', $file->fid);
            break;
    }
}

/**
 * Implements hook_block_view().
 */
function custom_block_block_view($delta = '') {
    $block = array();

    switch ($delta) {
        case 'my_block' :
            $block['content'] = my_block_view();
            break;
    }

    return $block;
}

/**
 * Custom function to assemble renderable array for block content.
 * Returns a renderable array with the block content.
 * @return
 *   returns a renderable array of block content.
 */
function my_block_view() {
    $block = array();

    // Capture the image file path and form into HTML with attributes
    $image_file = file_load(variable_get('block_image_fid', ''));
    $image_path = '';

    if (isset($image_file->uri)) {
        $image_path = $image_file->uri;
    }

    $image = theme_image(array(
        'path' => ($image_path),
        'alt' => t('Image description here.'),
        'title' => t('This is our block image.'),
        'attributes' => array('class' => 'class_name'),
    ));

    // Capture WYSIWYG text from the variable
    $text = variable_get('text_variable', '');

    // Block output in HTML with div wrapper
    $block = array(
        'image' => array(
            '#prefix' => '',
            '#type' => 'markup',
            '#markup' => $image,
            'message' => array('#type' => 'markup', '#markup' => $text, '#suffix' => '')
        )
    );
    return $block;
}



moment.js date format

Moment.js set yyyy-mm-dd format date
  
moment().format('YYYY-MM-DD H:m:s');