Wednesday, September 9, 2015

Deployment Processes available with drupal 7

Deployment is one of the panic areas for high traffic website.

Some of best deployment process Deploy module with Features module.
In its simplest terms, deployment is when you release changes to your website from your local environment to your live site. In professional environments, you are likely to have multiple stages before live, such as QA and staging. Each of these stages require deployment for each release.

The Deploy module can be used to export any entities that support UUID into Features. This can be useful for install profiles and distributions to provide default/demo content, or for circumstances in which a piece of content straddles the line between pure content and configuration.
To export content with Deploy:
  • Install Deploy along with the Features Module. The Services module and it's setup steps are not required if you are not going to be using Deploy to sync content from one Drupal site to another, and only want to be able to export into Features.
  • Go to admin/structure/deploy/plans/add to create a new Deployment Plan.
  • Select your desired aggregation method (See Basic usage of Deploy for info on the different methods available for adding content to a deployment plan).
  • Check the Fetch only checkbox. Not only will we not be needing a deployment processor or service endpoint, but the entities added to the Deployment Plan will not actually be exposed in the Features UI unless "Fetch only" is set!
  • Go to admin/structure/features/create
  • Under Deployment (deploy_plans), select the component for the deployment plan you created
  • Under UUID Entities (uuid_entities), you will have a component matching the name of your deployment plan. Select it as well
  • Note that selecting these components will not automatically provide dependencies such as content types, fields, modules, etc. Be sure to select any other dependencies you may need. If you're bringing the content to a site with similar/same configuration, or have your dependencies covered with a separate feature, you're fine to export just the Deployment Plan and its related UUID Entities component.
The entity type you are exporting will need to be supported for UUID in order for it to be exportable. The Entity UUID project aims to add support for any non-core entities. To add UUID support specifically for Commerce entities, check out Commerce UUID
Alternative Method:
UUID Features Integration module provides a simple way to export content to Features, but it mostly supports core entities. Using Deploy, the entity just needs to have UUID support to be exportable. If you're just needing core entities like nodes or taxonomy terms, this method may be simpler as it does not really require extra configuration.

contact me - anshul.udapure@gmail.com
9009902877

Data migration in drupal

Contact me - anshul.udapure@gmail.com
9009902877

Data migration with Feed and related module

This post is a short how-to on importing data from multiple fields of a comma separated value (CSV) file into one multi-value field using the Drupal Feeds Tamper.
Chances are you have been in a situation where you need to import some data into a Drupal site. The data was provided to you in a CSV file. Because you are smart and know better than to spend your client’s money writing your own code for this, you grab the Feeds module which conveniently includes a CSV parser.
All is well until you need to merge the content of multiple sources (eg: “cells”) into one target (eg: “field”). This might be the case if you have a List field where multiple options can be checked.
For each of these names we want all of the certifications to be passed to a single field:
View of our list field widget
This is where Feeds Tamper shines. Here’s how you do it:
1. Go to your feed processor mapping page and map all three sources to the one target:
View of our Source / Target mapping
2. Go to the Tamper tab (if you are using the dev version) or to the Feeds Tamper link above the mapping table (if you are using the beta-3 version) and add a plugin for the last of your 3 sources (in our example certification_three).
3. Select the Rewrite plugin and use the tokens to rewrite the input to include all of your sources separated by a comma and save.
A view of the configuration of our Rewrite plugin.
4. Add a second plugin: Explode. Make sure that the string separator is the same as the one you have used in the Rewrite plugin. Save.
5. Run your import et voilĂ !
A couple of gotchas: there seems to be some cases where this module misbehaves. In the example I just described, each of the certifications is numbered by a string. Using an integer (eg: certification1, certification2) made the Rewrite plugin fail. Indeed instead of the value the token represents, you will get the label of the token itself.

Set Up Multiple drupal website with same code base



Hi Freinds.As web world growing many organizations need multiple website to promote there business.Sometime it is not easy to get SEO rank of contents through one domain . Associated and content related domain is required .
So Organizations created multiple website.But it lead to some more back end web work to maintain these multiple websites.  The solution drupal comes with multiple website can be set up with one code base.

How to Set Up Multiple drupal website

Multi-sites is a Drupal feature that makes managing many websites easier.
The idea with multi-sites is that you can use a single codebase for more than one website. When you update that single codebase, you update all of your Drupal sites. Each site can still have its own theme, modules and content.
With multi-sites you can have many sites with one database, or many sites with different databases.  In this tutorial we will chose to have multiple sites, each with their own database.
We're going to set up one core installation, and share those files with two sub-sites. Each sub-site will share those files but have its own URL and its own database. In this tutorial I'm going to set up two sub-sites with different URLs:
  • Master site: http://emotiongift.com
  • Sub-site 1: http://flowersallindia.com
  • Sub-site 2: http://mumbaicakes.com
Setting up multi-sites is not an easy task for beginners. To make it easier, we're going to show you how to use your hosting account with cPanel to get this done more easily. If you aren't using a commercial host with cPanel, your setup process will be slightly different.

Step 1. Choose your master domain name

Your first step is to hoose the URL that will host your main site. As we mentioned, in this example, our main URL will be http://emotiongift.com.
 
This doesn't have to be an important URL. Unless you decide you want it to, this one won't be used by anyone but you. It's only going to hold the master copy of your Drupal installation. 
 
It is worth nothing however that this site might be visible if one of your sub-sites fails. So it would be a good idea if your master site had a page with your contact information and a message.

Step 2. Start out by creating databases for all the sub-sites

  • Go to MySQL in cPanel or use the database wizard to create databases for each site you want to add.
  • Be sure to add database users with full privileges to each database. If you want to maximise security, create a new database user for each database. In the example below, I named the databases the same as the URLs. This is recommended on a live site, but it does makes it easy for me to refer to them in the tutorial.
tutuploadsmedia_1332372657629.png
 

Step 3. Install Drupal in your master URL directory

  • Install Drupal in your /public_html/ directory.
  • Visit the URL (in this case http://easywebupdate.com) and step through the Drupal installation.
  • Use the master database connection information when the install script asks for it.
tutuploadsmedia_1332354346780.png

Step 4. Create a sub-folder for each sub-site.

  • Create a folder under public_html/sites/subsite.com. Substitute the URL you are going to use.
tutuploadsmedia_1332373988030.png
  • Create one folder for each sub-site.
  • Now copy default.settings.php to each one.
  • CHMOD those files to 644 if they aren't already.
  • If you are doing multi-sites for Drupal 6, you should also create an additional folder called "files" and make sure it's CHMOD 755.
tutuploadsmedia_1332374012859.png

Step 5. Upload or copy default.settings.php to the new folders

You now need to add default.settings.php to your new folders. The image below shows how file structure looks in Filezilla that makes it a little more obvious.
  • If it is Drupal 6, create a files directory with the path sites/domain.com/files/. You don't need this extra directory here for Drupal 7.
  • Copy or upload default.settings.php to the folder.
  • Rename it to settings.php.
tutuploadsmedia_1332374565075.png
We are now finished with the Drupal master site. The next part is more complicated because we have to make sure the domain names are correct. Luckily cPanel can do this easily for beginners. We'll show you that method first. There is a manual method, but it involves making changes in Apache files and this is probably beyond beginner-intermediate skills required of this tutorial.

Step 6. Return to cPanel

  • On the main cPanel dashboard, find the Domains section and click Parked Domains.
tutuploadsmedia_1332375283418.png
 

Step 7. Add the domain

  • Park the domains on top of the master domain.
  • When you park a domain, the domain needs to be pointed at the DNS servers for your hosting account. If you don't know how to do this, the proper place to get information is from the domain name registrar. If you don't know who your registrar is, you get that information your hosting company.
tutuploadsmedia_1332375638592.png

Step 8. Go to your browser and visit the URL

tutuploadsmedia_1332375936533.png
  • In your browser address bar, type the url to your second or third site.
  • Install Drupal by following the prompts.

Step 9. Connect to the proper database

tutuploadsmedia_1332376154830.png
  • When prompted, enter the database information for this specific site.

Result

tutuploadsmedia_1332376922412.png
Three sites, each with their own theme, each with their own modules, all on the same hosting account. To create another site, I just repeat the process. Using cPanel's parking feature, I was able to avoid the need to make changes to Apache, and the need to make symbolic links or redirects in the .htaccess file.
There is another way to do it that is almost as simple, but if you want to try it you will learn a little more since it involves creating a symbolic link. We'll give you the code to paste into your site and walk you through it.

Option 2: Quick ways to set up Drupal multi-sites with cPanel Sub-Domains

Go through Steps 1 through 3 of this tutorial. Everything is the same up to that point. In Step 4 you take a slight detour and so Option 2 starts from that point on.

Option 2, Step 4: Create directories for each domain with the convention subdomain.domain.com

tutuploadsmedia_1332378791796.png
  • Create folders for each site you want to create.
  • Create the folder names with this convention subdomain.domain.com.
  • Upload or copy default.settings.php to each directory.
  • Change the name of each copy to settings.php.
  • Return to cPanel home.

Option 2, Step 5: Create subdomains

tutuploadsmedia_1332382035356.png
  • Go to the Domains section and click Subdomains.
tutuploadsmedia_1332382168695.png
The correct directory structure is pictured below:
  1. The directories created by cPanel.
  2. The directories created by you.
tutuploadsmedia_1332382407419.png
 

Option 2, Step 6: Write a simple php script to create a symlink

In a script editor create a file called mysymlink.php and put the following code into it.
 <?php
symlink( '/home/cPanel_User_Name/public_html/', 'subdomain' ); ?>
In my case the file would look like this
 <?php
symlink('/home/myuserdirectory/public_html/','edandrea');
symlink('/home/myuserdirectory/public_html/','edsparty');
?> 

Option 2, Step 7: Upload the symlink script to the main directory

To run it go to your browser address bar and type in your url and the name of the file.
http://example.com/mysymlink.php
If all goes well you will see a completely blank page. If you made a mistake in the file you will see error messages.
tutuploadsmedia_1332383456174.png

Option 2, Step 8: Add redirection to your .htaccess file

  • Open your .htaccess file in a script editor
  • Find the line # RewriteBase/ and remove the # sing.
  • Add the following line and save the changes
 RedirectMatch 301 ^/subdomain/(.*)$ http://subdomain.yoursite.com $1 
Here's what my .htaccess looked like when finished:
 RewriteBase / RedirectMatch 301 ^/edandrea/(.*)$ http://edandrea.easywebupdate.com/$1 RedirectMatch 301 ^/edsparty/(.*)$http://edsparty.easywebupdate.com/$1 
This redirection will make it so the site can be accessed in two ways.
http://easywebupdate.com/edsparty and http://edsparty.easywebupdate.com will both be redirected to the same site.

Option 2, Step 9: Visit your subdomain and complete the installation

If you did everything right, you can visit your subdomain and you will now be asked to install Drupal in your subdomain.

More on Drupal Multi-sites

What you've seen in this tutorial is just the beginning of the possibilities with Drupal Multi-Sites. There are many optional ways to arrange the code and the data:
  • Multiple domains or vhosts using different databases.
  • Multiple domains using the same database.
  • Multi-site setup using a single Drupal instance.
  • Same codebase, completely different content and users.
One security concernt to note is that Drupal's multi-site feature is normally used in situations where the administrators for all of the sites are highly trusted. The reason is that anyone with full administrative privileges on a Drupal site can execute arbitrary PHP code on that site through various means, even without FTP access to the site. That arbitrary PHP code could be used from one site to affect another site if the two sites are in the same HTTP document root and share the same Drupal codebase. For more information:http://drupal.org/node/476544 and http://drupal.org/node/1244642.

Sunday, August 7, 2011

Custom drupal module drupal 6 , drupal 7, drupal 8 - Check differences

Drupal follows the modular structure.Features of drupal can be extended and implemented by adding a module in it without touching drupal core script.

Steps to make drupal module drupal 6

1) Make a new file with name module_name.info (it contain following )
; $Id$
name = Test Module
description = Allows users to implement new features.
core = 6.x
package = Drupal Development

It has few line which contain information about module like module name, description of module , drupal version it supports, and package you want to keep this module
2) Make one installation directory . If you want to add some mysql table in
module than need of this file
It contain few installation function
a) function table_name_install(){
drupal_install_schema('table_name');
}
b) uninstall function , when module will uninstall than it delete table from
database
function annotate_uninstall() {
drupal_uninstall_schema('table_name');
}
c) Implementation of hook_schema()
function module_name_schema() {
$schema['test_description'] = array(
'description' => t('Stores node test_description that users write.'),
'fields' => array(
'nid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'description' => t('The {node}.nid to which the test_description applies.'),
),
'uid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'description' => t('The {user}.uid of the user who created the test_description.')
),
'note' => array(
'description' => t('The text of the test description.'),
'type' => 'text',
'not null' => TRUE,
'size' => 'big'
),
'primary key' => array(
'nid', 'uid'
),
);


return $schema;
}

3) create another file with name module_name.module
We need to read this first before making a new module
http://api.drupal.org/api/drupal/includes--module.inc/group/hooks/6
here it is a list of available drupal hooks

Allow modules to interact with the Drupal core.

Drupal's module system is based on the concept of "hooks". A hook is a PHP function that is named foo_bar(), where "foo" is the name of the module (whose filename is thus foo.module) and "bar" is the name of the hook. Each hook has a defined set of parameters and a specified result type.

To extend Drupal, a module need simply implement a hook. When Drupal wishes to allow intervention from modules, it determines which modules implement a hook and calls that hook in all enabled modules that implement it.

Now view the hook_menu which enable the menu in drupal
function module_name_menu() {
$items['admin/settings/annotate'] = array(
'title' => 'Annotation settings',
'description' => 'description of module menu',
'page callback' => 'drupal_get_form',// will set the drupal form which will be implemented later
'page arguments' => array('module_name_admin_settings'),
'access arguments' => array('administer site configuration'),
'type' => MENU_NORMAL_ITEM,
'file' => 'module_name.admin.inc',
);

return $items;
}


Steps to make drupal module drupal 7

Create Custom Module

In your modules directory (sites/all/modules) create a folder for your module. For this example our module will be called anshulblockmodule, so we would create the directory sites/all/modules/anshulblockmodule. Your module can be called whatever you like, just make sure that when following this tutorial your replace "myblockmodule" with your modules name.

1. Create a .info file

All modules in Drupal require a .info file to let Drupal know that our module exists, what it's name is, as well as other information about our module. In your module folder (sites/all/modules/anshulblockmodule), create a file named anshulblockmodule.info. In myblockmodule.info enter the following:

name = AsnhulBlockModule 
description = Tutorial Modules for beginners 
package = Tutorial Modules 
core = 7.x 

The Explanation

This is how the above breaks down:
  • name is the human readable name of your module. This is required for all modules, It is shown on the modules administration page.
  • description is a short message explaining what this module does. This is also visible on the modules administration page.
  • core describes which version of Drupal this module works with. This is required and should be "7.x" for all Drupal 7 modules.
  • package is optional, but I recommend it. The main purpose of this is to define what category to list the module in on the module admin page.
There are other variables you can define in this file, but these are the main four I put in all modules I create. For more information on module .info files check out Writing module.info files.

2. Create a .module file

There are two files which every module must have. First is the .info file, which we already created. The second is the .module file. Despite the file's extension it is really a PHP script. This file is evaluated every time Drupal a Drupal page is load. The main purpose of this file is to define functions which implement hooks. Hooks are evaluated during different Drupal events and can be called by Drupal itself or other custom modules. (For further reading on hooks: Hooks 101)
For our module we will create a new file in our module's directory (sites/all/modules/anshulblockmodule) called anshulblockmodule.module. This file will implement two hooks, one to let Drupal know that we are defining a new block, and one to let Drupal know what the block's content is. The file will contain the following: 
<?php
/**
 * Declare what blocks are provided by this module.
 * Implements hook_block_info().
 */
function anshulblockmodule_block_info(){
    $block['static_content'] = array(
        'info' => t('Drupal tutorial'),
        'cache' => DRUPAL_NO_CACHE,
    );
    return $block;
}

/**
 * Define what our block is going to look like.
 * Implements hook_block_view().
 */
function anshulblockmodule_block_view($block_key){
    $block = array();

    if($block_key == 'static_content'){ //We only want to define the content of OUR block
        //This is the title of the block.
        $block['subject'] = t('lorem ipsum sit');

        //Define the block content.
        $block['content'] = t('lorem ipsum ').(strtotime("2015-10-21")-time()).t(' seconds.');
    }

    return $block;
}

 In this way can create custom block and can put anywhere in template.

It is very useful to fetch any content as block content from drupal instead od creating views everytime. it increase the performance of drupal website. you can set the cache_Get and cache_Set method for caching. we will those example later.

Thursday, July 7, 2011

Tutorial for view Module

How to work with drupal view

What is Views

The Views module provides a flexible method for Drupal site designers to control how lists and tables of content (nodes in Views 1, almost anything in Views 2) are presented. Traditionally, Drupal has hard-coded most of this, particularly in how taxonomy and tracker lists are formatted.

This tool is essentially a smart query builder that, given enough information, can build the proper query, execute it, and display the results. It has four modes, plus a special mode, and provides an impressive amount of functionality from these modes.
Among other things, Views can be used to generate reports, create summaries, and display collections of images and other content.

You need Views if

  • You like the default front page view, but you find you want to sort it differently.
  • You like the default taxonomy/term view, but you find you want to sort it differently; for example, alphabetically.
  • You use /tracker, but you want to restrict it to posts of a certain type.
  • You like the idea of the 'article' module, but it doesn't display articles the way you like.
  • You want a way to display a block with the 5 most recent posts of some particular type.
  • You want to provide 'unread forum posts'.
  • You want a monthly archive similar to the typical Movable Type/Wordpress archives that displays a link to the in the form of "Month, YYYY (X)" where X is the number of posts that month, and displays them in a block. The links lead to a simple list of posts for that month.
Views can do a lot more than that, but those are some of the obvious uses of Views.



This screencast covers the installation and configuration of the views module, as well as:
  • Creating a new view (both page and block)
  • Adding arguments to the url for a page view
  • Using views to create an RSS feed
  • Using fields to customize the layout of list and table views
  • Overview of filters and exposed filters
  • Basic Performance considerations of views
This is the script for the screencast:

Install

This screen cast is going to teach you the basics of using the views module in drupal. First we have to download the views module. To do this, go tohttp://www.drupal.org/project/views and click on download.
Once the download is complete, extract the views module.
Once the extraction is finished, move the files into the modules folder.

Configuration of the Views Module

To configure views, go to the modules page, scroll down, and make sure that all the views components are enabled. Once everything is working as it should, there should be an extra tab under site building - views.

Creating a View

Say i want to create a blog replica using views. To do this, go to views, and click add. Enter a name. Because this is going to be a page and not a block, I have to select 'provide page view' under page. Enter a url and a title as you see fit. Because I want the most recent posts to come first, I have to add a particular sort criteria - node created time, and change the default sorting to descending.

Build first application with drupal

As a php programmer installing drupal is not a big deal . is it ?  Now what ?
Let move in by making a website for giving informatoin about company , correct ..
so what you think what should be in basic website for giving informatin about any comapny.according to me there should be 5 ,6 page about company infomation , 1 contact form , company logo , google map for company location
SO let start step by step
1) Enable some of needed module profile , path , taxonomy , search ,php filter
2) start with adding content admin /node/add/page
Put tile in tile label Title: * - Hello welcom to anshul.com

next - put description of your company in content area.
In drupal there are 3 types of default filter available for
content called as "Input format"   a) Filtered HTML b)Full HTML    c) PHP code

In our case we should choose full HTML to make content more beautiful and to be rich text format.
(Note- you can use http://drupal.org/project/fckeditor )

for wysiwyg editor
3) make a menu setting if you want this content to be display on click of menu put a menu name at menu setting

4)Comment setting - Put comment setting acording to content . for our website we are making this first content for front page so we will not allow user to comment

5) Remember path setting option only come when you enable path module from drupal admin

save the page ,wow we have page ready :) without hassel!! we have menu created with search engine optimized url great.. Thanks to drupal

now for contact us page
a)Enable core module "contact" from drupal module
b) add category /admin/build/contact/add
put the required information like email email, autoreply message etc


c) now add the permission to contact form >user managemnt -> permission
/admin/user/permissions
allow which type of users you want to the contact form should access
d) contact form is ready now
www.yourdomain.com/contact

you never get this easiyness of contact form in any CMS
E) Now make a menu admin/build/menu
 ->add new menu item /admin/build/menu/add
  - url of page
- title of menu

 for google Map on contact us page
Download http://drupal.org/project/gmap this contributed module enable it from admin

Please view this video for moore detail

Google map in content
After view on the above video it is very complicate to insert goolge map inside yout content . but relax we have the gmap macro builder to convert worries into hurry.
download GMAP macro builder. make a macro code
Use the online GMap macro builder to design your map and copy the generated macro text to the clipboard.

eg -

Map
Satellite
Hybrid
next step is
Go to your input formats page and select "Full HTML" as default input format. Configure the "Full HTML" input format, select "GMap filter" and click on the "Save configuration" button.
Now
insert this code inside the  content -> Select full html as a filter
You will see the result page contains the gmap inside the