<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Enbake Consulting</title>
	<atom:link href="http://enbake.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://enbake.com</link>
	<description>Taking Technology Forward</description>
	<lastBuildDate>Tue, 03 Aug 2010 07:48:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Creating new fields in a vtiger module</title>
		<link>http://enbake.com/addin-new-fields-in-vtiger/</link>
		<comments>http://enbake.com/addin-new-fields-in-vtiger/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 07:48:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CRM]]></category>
		<category><![CDATA[vTiger]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[CRM Consulting]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=180</guid>
		<description><![CDATA[Recently, I got stuck with the help on how to create new fields in vtiger since vtiger has only a small community and its very difficult to find help online, I decided write a post so that someone else&#8217;s time can be saved. To add a field to an existing module, Follow the following steps: [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Faddin-new-fields-in-vtiger%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Faddin-new-fields-in-vtiger%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=Consulting,CRM,CRM+Consulting,vTiger" height="61" width="50" /><br />
			</a>
		</div>
<p>Recently, I got stuck with the help on how to create new fields in vtiger since vtiger has only a small community and its very difficult to find help online, I decided write a post so that someone else&#8217;s time can be saved.</p>
<p><strong>To add a field to an existing module, Follow the following steps:</strong></p>
<ul>
<li>Go to Settings&gt;custom Fields&gt;</li>
<li>Select the Module for which you want to create new fields</li>
<li>Click on Add New field option</li>
<li>Add Label name for the field</li>
<li>Select the Field Type</li>
</ul>
<p>And you are done !!! In case your field is of the type picklist, then you would need to add the picklist values as well.</p>
<p>Note that the above procedure will add the field to the current vtiger installation only. In case you want that the field to be budled with a vtiger installation, then you would need to do a bit of php.</p>
<p>Fields in modules are controlled by the <em>vtiger_field</em> table &#8211; <strong><em>the field must exist in the appropriate database table</em></strong>, and <strong><em>there must be a record in <em>vtiger_field</em> that describes the field</em></strong>.</p>
<pre class="brush: php;">
&lt;pre&gt;$this-&gt;db-&gt;query(&quot;insert into vtiger_field values ( &lt;tabid&gt;,
                                               $this-&gt;db-&gt;getUniqueID(&quot;vtiger_field&quot;),
                                               &lt;columnname&gt;,
                                               &lt;tablename&gt;,
                                               &lt;generatedtype&gt;,
                                               &lt;uitype&gt;,
                                               &lt;fieldname&gt;,
                                               &lt;fieldlabel&gt;,
                                               &lt;readonly&gt;,
                                               &lt;presence&gt;,
                                               &lt;selected&gt;,
                                               &lt;maximumlength&gt;,
                                               &lt;sequence&gt;,
                                               &lt;block&gt;,
                                               &lt;displaytype&gt;,
                                               &lt;typeofdata&gt;,
                                               &lt;quickcreate&gt;,
                                               &lt;quickcreatesequence&gt;,
                                               &lt;info_type&gt;,
                                               &lt;masseditable&gt;,
                                               &lt;helpinfo&gt;
                                              )&quot;);
&lt;/pre&gt;
</pre>
<p>Here is an overview of what each of the columns mean:</p>
<table border="0" cellpadding="0">
<tbody>
<tr>
<td><strong>Field </strong></td>
<td><strong>Description </strong></td>
<td><strong>Allowed Values </strong></td>
</tr>
<tr>
<td>tabid</td>
<td>ID   number of the module (from vtiger_tab)</td>
<td>INT,   <a title="http://wiki.vtiger.com/index.php/User:Jagi" href="http://wiki.vtiger.com/index.php/User:Jagi">tabid   types</a></td>
</tr>
<tr>
<td>fieldid</td>
<td>ID   of field; generated by getUniqueID(&#8220;vtiger_field&#8221;). Normally   obtained at installation.</td>
<td>INT</td>
</tr>
<tr>
<td>columnname</td>
<td>Name   of the column in its table</td>
<td>any</td>
</tr>
<tr>
<td>tablename</td>
<td>Name   of the table that stores field</td>
<td>any   table</td>
</tr>
<tr>
<td>generatedtype</td>
<td>Specifies   type of field in module whether 1=&#8217;Exisiting&#8217; or 2=&#8217;User Defined&#8217;</td>
<td>1,2</td>
</tr>
<tr>
<td>uitype</td>
<td>Handles   what widget displays field</td>
<td><a title="Ui types" href="http://wiki.vtiger.com/index.php/Ui_types">Ui types</a></td>
</tr>
<tr>
<td>fieldname</td>
<td>The   vTiger name of the field</td>
<td>??</td>
</tr>
<tr>
<td>fieldlabel</td>
<td>The   label name of the field</td>
<td>vTiger   will look for fieldlabel as a key in the the $mod_strings array stored at   modules/ModuleName/language/&lt;language prefix&gt;.lang.php</td>
</tr>
<tr>
<td>readonly</td>
<td>0=true(ro)   1=false(rw)</td>
<td>BOOLEAN</td>
</tr>
<tr>
<td>presence</td>
<td>represent   the field existence</td>
<td>1   to reprsent existence and 0 to represent non-existence</td>
</tr>
<tr>
<td>selected</td>
<td>??</td>
<td>??</td>
</tr>
<tr>
<td>maximumlength</td>
<td>??</td>
<td>??</td>
</tr>
<tr>
<td>sequence</td>
<td>The   display order of your field in your block.</td>
<td>Number   (1,2,3&#8230;)</td>
</tr>
<tr>
<td>block</td>
<td>Block   id (from <a title="Vtiger blocks" href="http://wiki.vtiger.com/index.php/Vtiger_blocks">Vtiger blocks</a>)   where the field will appear</td>
<td>INT</td>
</tr>
<tr>
<td>displaytype</td>
<td>Indicates   if field will be displayed on Create/Edit &amp; Detail View. 1=displayed on   all views, 2=displayed only in detail view (but not in edit), 3=field will   not come separately, it will come along with other field, 4= only in the   createview. it will not come other views(detailview &amp; editview)</td>
<td>1,2,3,4</td>
</tr>
<tr>
<td>typeofdata</td>
<td>X~Y,   where X is the type of data V for varchar, N for numbers etc and Y stands for   (O)ptional or (M)andatory</td>
<td><a title="INV...~ON" href="http://wiki.vtiger.com/index.php/INV...%7EON">INV&#8230;~OM</a></td>
</tr>
<tr>
<td>quickcreate</td>
<td>if   field appears or not on quickcreate field</td>
<td>0/1</td>
</tr>
<tr>
<td>quickcreatesequence</td>
<td>sequence   of field in quick create screen</td>
<td>number</td>
</tr>
<tr>
<td>info_type</td>
<td>&#8216;BAS&#8217;   field is displayed in Basic Information, &#8216;ADV&#8217; field is displayed in More   information</td>
<td>BAS   or ADV</td>
</tr>
</tbody>
</table>
<p>masseditable and helpinfo are the two new fields introduced in the latest version of vtiger(5.1.0 as i write the post). masseditable tells whether the field is masseditable or not. helpinfo lets you specify the helper text for the field(tooltip in this case). Right now(as of version 5.1.0), there is a problem with helpinfo field that it supports only one value and its not possible to localize the string.</p>
<p>The following is an example query to add a new field called as website to a new module called as Vendors:</p>
<pre class="brush: php;">

$this-&gt;db-&gt;query(&quot;insert into vtiger_field values (18,&quot;.$this-&gt;db-&gt;getUniqueID(&quot;vtiger_field&quot;).&quot;,'website','vtiger_vendor',1,'17',

'website','Website',1,2,0,100,6,45,'V~O',1,null,'BAS',1)&quot;);
</pre>
<p>You will need to add this query to modules/Users/DefaultDataPopulator.php to bundle the above field with a fresh vtiger installation.</p>
<p>And thats all that you need to do to add a new field to a vtiger instance. Please let me know if any queries and we would be happy to answer.</p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/addin-new-fields-in-vtiger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing strategy for rails applications</title>
		<link>http://enbake.com/testing-strategy-for-rails-applications/</link>
		<comments>http://enbake.com/testing-strategy-for-rails-applications/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 07:36:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[RoR]]></category>
		<category><![CDATA[Software Testing]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=189</guid>
		<description><![CDATA[﻿Recently we had to design a test strategy for a ruby on rails medium to large scale application. We just wanted to have a lean but effective strategy in place. We went thro many standard templates available but finally came out with a new strategy that we think can help many reduce their turn around [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Ftesting-strategy-for-rails-applications%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Ftesting-strategy-for-rails-applications%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=rails,Software+Testing,Testing" height="61" width="50" /><br />
			</a>
		</div>
<p>﻿Recently we had to design a test strategy for a ruby on rails medium to large scale application. We just wanted to have a lean but effective strategy in place. We went thro many standard templates available but finally came out with a new strategy that we think can help many reduce their turn around time for testing application. I will give a sneak preview for the strategy. Would really appreciate inputs on how your organization would go about this one.</p>
<p>The following is a skelton of the test strategy document that we worked on:</p>
<p><strong>1    Introduction</strong></p>
<p>The <em>Test Strategy</em> documents the overall strategy for testing the processes and applications to be delivered by the project.</p>
<p><strong>2       Test Objectives</strong></p>
<p>[Describe the objectives of testing.  Testing should ensure that the future business processes, together with the enabling technology, provide the expected business benefits.  Testing objectives could include:</p>
<ul>
<li>Verify products against their requirements (i.e. was      the product built right?)</li>
<li>Validate that the product performs as expected (i.e.      was the right product built?)</li>
<li>Ensure system components and business processes work      end-to-end</li>
<li>Build a test model that can be used on an ongoing basis</li>
<li>Identify and resolve issues and risks.]</li>
</ul>
<p><strong>3       Identify Test Types</strong></p>
<p>[Describe the types of tests to be conducted to verify that requirements have been met and to validate that the system performs satisfactorily.  Consider the types of tests in the table below.]</p>
<table border="0" cellspacing="0" cellpadding="0" width="599">
<tbody>
<tr>
<td width="139" valign="top"><strong>Type of test</strong></td>
<td width="451" valign="top"><strong>Definition</strong></td>
</tr>
<tr>
<td width="139" valign="top">Unit   Testing</td>
<td width="451" valign="top">Testing   conducted to verify the implementation of the design for one software element   (e.g., unit, module)</td>
</tr>
<tr>
<td width="139" valign="top">Integration   Testing</td>
<td width="451" valign="top">An   orderly progression of testing in which software elements, hardware elements,   or both are combined and tested until the entire system has been integrated</td>
</tr>
<tr>
<td width="139" valign="top">System   Testing</td>
<td width="451" valign="top">The   process of testing an integrated hardware and software system to verify that   the system meets its specified requirements</td>
</tr>
<tr>
<td width="139" valign="top">Acceptance   Testing</td>
<td width="451" valign="top">Formal   testing conducted to determine whether or not a system satisfies its   acceptance criteria and to enable the customer to determine whether or not to   accept the system</td>
</tr>
<tr>
<td width="139" valign="top">Performance   Testing</td>
<td width="451" valign="top">Performed   to confirm that the system meets performance goals such as turnaround times,   maximum delays, peak performance, etc.</td>
</tr>
<tr>
<td width="139" valign="top">Volume   Testing</td>
<td width="451" valign="top">Tests   the system to verify that the system can handle an expected volume profile</td>
</tr>
<tr>
<td width="139" valign="top">Stress   Testing</td>
<td width="451" valign="top">Tests   the entire system to find the limits of performance</td>
</tr>
<tr>
<td width="139" valign="top">Configuration   Testing</td>
<td width="451" valign="top">Tests   the product over all the possible configurations on which it is supposed to   run</td>
</tr>
<tr>
<td width="139" valign="top">Operational   Readiness Testing</td>
<td width="451" valign="top">Tests   the system to find defects that will prevent installation and deployment by   the users</td>
</tr>
<tr>
<td width="139" valign="top">Data   Conversion and Load Testing</td>
<td width="451" valign="top">Performed   to verify the correctness of automated or manual conversions and/or loads of   data in preparation for implementing the new system</td>
</tr>
</tbody>
</table>
<p><strong>4       Scope of Testing</strong></p>
<p>Describe the scope of testing.  Consider the following when defining scope:</p>
<ul>
<li>Test both business processes and the technical solution</li>
<li>Specify regions and sub-regions included in testing</li>
<li>Identify interfaces with other projects</li>
<li>Identify interfaces with external entities such as      dealers, suppliers, and joint ventures</li>
</ul>
<p><strong>5    Test Preparation and Execution Process</strong></p>
<p><strong>5.1        Test Preparation</strong></p>
<p>Describe the steps for preparing for testing.  The purpose of Test Preparation is to verify that requirements are understood and prepare for Test Execution.  Steps for Test Preparation may include:</p>
<ul>
<li>Identify test cases</li>
<li>Identify test cycles</li>
<li>Identify test data</li>
<li>Develop expected results</li>
<li>Develop test schedule (may be done as part of Test      Plan)</li>
<li>Obtain signoff</li>
</ul>
<p><strong>5.2        Test Execution</strong></p>
<p>Describe the steps for executing tests. The purpose of Test Execution is to execute the test cycles and test cases created during the Test Preparation activity, compare actual results to expected results, and resolve any discrepancies.  Steps for Test Execution may include:</p>
<ul>
<li>Verify entry criteria</li>
<li>Conduct tests</li>
<li>Compare actual results to expected results</li>
<li>Investigate and resolve discrepancies</li>
<li>Conduct regression test</li>
<li>Verify exit criteria</li>
<li>Obtain signoff</li>
</ul>
<p><strong>6    Test Data Management</strong></p>
<p>Describe the approach for identifying and managing test data.  Consider the following guidelines:</p>
<ul>
<li>System and user acceptance tests – a subset of      production data could be used to initialize the test environment.       Because the focus of these tests is to simulate the production environment      and validate business transactions, data integrity is extremely critical.</li>
<li>Performance/volume/stress test – full size production      files should be used to test the performance and volume aspects of the test.       Additional ‘dummy’ data will be created to stress the system.  Data      integrity is not critical, as the test focuses on performance rather than      the ability to conduct business transactions.</li>
<li>Operational readiness test – a copy of system/user      acceptance test data could be used for the operational readiness      test.  Since the focus of the test is on operational procedures, a      low number of transactions will be required and data integrity is not      critical.</li>
</ul>
<p><strong>7    Unit testing ruby on rails application</strong></p>
<p>We will use the baked in testing framework for testing our application since that’s the best tool available. Every Ruby on Rails application can be unit tested on the basic MVC premises:</p>
<p><strong>Testing Models:</strong></p>
<p>When you generate a <em>model</em> with the generate script, Rails also generates a unit test script for the model in the test directory. It also creates a <em>fixture</em>, a <em>YAML</em> file containing test data to be loaded into the test database. This is the data against which your unit tests will run.</p>
<p>As you write code in the model classes, you&#8217;ll write corresponding tests in these files. Then you can easily specify records to be created using YAML in fixtures. With the sample data set we can then specify the unit test in the unit tests file.</p>
<p>A successful unit test will give 0 errors and 0 failures.</p>
<p><strong>Testing controllers:</strong></p>
<p>Controller testing is also known as functional testing. Functional testing tests the following type of functionalities of the controllers:</p>
<ul>
<li>Is the response redirected as expected?</li>
<li>Is the expected template rendered?</li>
<li>Is the routing as expected</li>
<li>Does the response contain the expected tags?</li>
</ul>
<p>Rails framework supports 5 types of requests and to write a functional test, you need to simulate any of the five HTTP request types that your controller will process. :</p>
<ul>
<li>get</li>
<li>post</li>
<li>put</li>
<li>head</li>
<li>delete</li>
</ul>
<p>Request type &#8220;get&#8221; and &#8220;post&#8221; are the most commonly used in controller testing. All these methods take four arguments:</p>
<ul>
<li>The action of a controller</li>
<li>An optional hash of request parameters</li>
<li>An optional session hash</li>
<li>An optional flash hash</li>
</ul>
<p>When you generate a <em>controller</em> with generate, Rails creates a functional test script for the controller. As you write code in the controller classes, you&#8217;ll write corresponding tests in these files. Use the fixture as defined in testing models. Add the functions to test the existence of the views and run the unit tests to see the results.</p>
<p><strong>Using <em>Rake</em> for testing:</strong></p>
<p>You can use <strong>rake</strong> utility to test your applications. Here are few important commands.</p>
<ul>
<li><strong>$rake test</strong> &#8211; Test all unit tests and functional tests (and integration tests, if they      exist).</li>
<li><strong>$rake test:functionals</strong> &#8211; Run all functional tests.</li>
<li><strong>$rake test:units</strong> &#8211; Run all unit tests.</li>
<li><strong>$rake test:integration</strong> &#8211; Run all integration tests.</li>
<li><strong>$rake test:plugins</strong> &#8211; Run all test in ./vendor/plugins/**/test.</li>
<li><strong>$rake test:recent</strong> &#8211; Run tests for models and controllers that have been modified in the last      10 minutes:</li>
<li><strong>$rake test:uncommitted</strong> &#8211; For projects in Subversion, run tests for models and      controllers changes since last commit.</li>
</ul>
<p>Would keep on updating this document as our testing strategy evolves.</p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/testing-strategy-for-rails-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drawing a circle with Google Maps API V3</title>
		<link>http://enbake.com/draw-circle-with-google-maps-api-v3/</link>
		<comments>http://enbake.com/draw-circle-with-google-maps-api-v3/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 07:38:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[V3]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=182</guid>
		<description><![CDATA[Google came out with v3 for its API this year, which has some slimming down of its codebase, and probably has some back-end improvements on their server as well. In V2 GPolygon objects consist of a series of points in an ordered sequence to draw closed shapes. V3 defines polygons objects to define regions within [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Fdraw-circle-with-google-maps-api-v3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Fdraw-circle-with-google-maps-api-v3%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=Google+Maps,javascript,maps,V3" height="61" width="50" /><br />
			</a>
		</div>
<p>Google came out with v3 for its API this year, which has some slimming down of its codebase, and probably has some back-end improvements on their server as well. In V2 GPolygon objects consist of a series of points in an ordered sequence to draw closed shapes. V3 defines polygons objects to define regions within a closed loop. Polygons can be used to draw complex shapes, including circles.</p>
<p>To draw circle, we need to define a google map polygon object (Assuming the basic pre requisites of google map object and div being defined). Taking a center we take 361 points on the circle perimeter. Using the following function we calculate the lat lng coordinates for these points and draw the circle.</p>
<p>The variable draw_circle stores the information of these 361 points. This function redraws the circle if no coordinates are already present in draw_circle.</p>
<pre class="brush: jscript;">var map; // map object

var radius; // Radius of circle

var center; // LatLng of center point of circle

var draw_circle = null;  // object of google maps polygon for redrawing the circle

function DrawCircle(rad) { // radius of the circle

var d2r = Math.PI / 180;

circleLatLngs = new Array(); // latLngs of circle

var circleLat = (rad /3963.189) / d2r; // miles

var circleLng = circleLat / Math.cos(center.lat() * d2r);

// Create polygon points (extra point to close polygon)

for (var i = 0; i &lt; 361; i++) {

// Convert degrees to radians

var theta = i * d2r;

var vertexLat = center.lat() + (circleLat * Math.sin(theta));

var vertexLng = center.lng() + (circleLng * Math.cos(theta));

var vertextLatLng = new google.maps.LatLng(

parseFloat(vertexLat), parseFloat(vertexLng));

circleLatLngs.push(vertextLatLng);

}

if (draw_circle == null) { // no existing circle

draw_circle = new google.maps.Polygon({

paths: circleLatLngs,

strokeColor: &quot;#FF0000&quot;,

strokeOpacity: 0.8,

strokeWeight: 2,

fillColor: &quot;#FF0000&quot;,

fillOpacity: 0.35

});

draw_circle.setMap(map);

}

else { // replace existing circle. if any

var vertices = draw_circle.getPath();

// Iterate over the vertices.

for (var i = vertices.length-1; i &gt; -1; i--) {

vertices.removeAt(i);

}

for (var i in circleLatLngs) {

vertices.insertAt(i, circleLatLngs[i]);

}

}

}
</pre>
<p>Generated Map:</p>
<p><a href="http://enbake.com/wp-content/uploads/2010/07/1234.jpg"><img class="alignnone size-medium wp-image-183" title="Circle with specified radius on Google Maps" src="http://enbake.com/wp-content/uploads/2010/07/1234-300x248.jpg" alt="Circle with specified radius on Google Maps" width="300" height="248" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/draw-circle-with-google-maps-api-v3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useful cakephp resources</title>
		<link>http://enbake.com/cakephp-useful-resources/</link>
		<comments>http://enbake.com/cakephp-useful-resources/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 09:58:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=168</guid>
		<description><![CDATA[As we moved forward developing newer and better applications in cakephp, we came across many great resources for cakephp. I will try enlisting a few of them here(not in any specific order) and will keep adding to them as I come across any. If you know of any great resource, please enlist that in the [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Fcakephp-useful-resources%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Fcakephp-useful-resources%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=cakephp" height="61" width="50" /><br />
			</a>
		</div>
<p>As we moved forward developing newer and better applications in cakephp, we came across many great resources for cakephp. I will try enlisting a few of them here(not in any specific order) and will keep adding to them as I come across any. If you know of any great resource, please enlist that in the comment and I will add it here to the post.</p>
<p><strong>1. </strong><a href="http://www.cakephp.org"><strong>Official CakePHP website:</strong></a></p>
<p>The number one source for CakePHP manuals, blogs, API’s, articles and tutorials is Official CakePHP website.</p>
<p><strong>2. <a href="http://www.donutczar.com/">Donutczar.com:</a></strong></p>
<p>It provides great information and examples on Helpers in CakePHP 1.2, a really good source for people who want a hand’s on and visual explanation.</p>
<p><strong>3. <a href="http://cakebaker.42dh.com/">cakebaker.42dh.com</a>:</strong></p>
<p>It provides new and brilliant ideas for CakePHP applications and offers easy to understand and user-friendly tutorials.</p>
<p><strong>4. <a href="http://www.thinkingphp.org/category/cakephp/">ThinkingPHP</a>:</strong></p>
<p>ThinkingPHP is an all-round PHP information site. It also has a very helpful and detailed area dedicated to CakePHP. ThinkingPHP also monitors other popular CakePHP blogs and provides all the information in a common and easy to manage area.</p>
<p><strong>5. <a href="http://rossoft.wordpress.com/">Rolsoft.wordpress.com</a>:</strong></p>
<p>The RolSoft Blog is an oldie, but a goodie! It has articles on integrating AJAX, speeding up SQL queries in CakePHP and much more. Most of the content is outdated, but it still serves to point people in the right direction and to offer food for thought.</p>
<p><strong>6. <a href="http://cricava.com/blogs/mariano.php">Mariano Iglesias</a>: </strong></p>
<p>This blog has buckets of information, everything from CakeFest information, CakePHP tips, framework write-ups and more.</p>
<p><strong>7.</strong> <strong><a href="http://groups.google.com/group/cake-php">CakePHP Google Group</a>:</strong></p>
<p>This is the official Google Code group for CakePHP and it has a large member base. The community is very active and can be really helpful if you get stuck somewhere.</p>
<p><strong>8. <a href="http://www.timtrice.com/category/programming/cakephp-programming/">Tim Trice</a>: </strong></p>
<p>This is a great blog that concentrates on articles aimed at the CakePHP beginner. Here, articles ranging from “What CakePHP can do” extend to extending the CakePHP Blog tutorial.</p>
<p><strong>9. <a href="http://www.cakephp.nu/c/cakephp">CakePHP.nu</a>: </strong></p>
<p>Another little CakePHP blog that had a couple of articles that really stood out to me. It is relatively new so there isn’t a great deal of content, but its more like quality over quantity.</p>
<p><strong>10.</strong><strong> <a href="http://cakephp.bytenoise.co.uk/">In the Kitchen with CakePHP</a>:</strong></p>
<p>This isn’t really a “site” as such but I thought it was worth a mention. “In the Kitchen with CakePHP” is a great tutorial for beginners who need a start to finish walkthrough of CakePHP and its features; it is also useful to have a read before selecting CakePHP as your framework of choice as it goes over many of the key features.</p>
<p><strong>11.</strong><strong> <a href="http://ad7six.com/">Andy Dawson&#8217;s Blog </a>:</strong></p>
<p>Andy Dawson(ad7six) is a geek who has contributed several modules(components, behaviors, helpers or even modifying the core code) to cakephp core. If you are using cakephp, then you are most probably using one of his contributions. His blog is a great source of cakephp related information and a great guide to handling complex and simple problems with caekphp.</p>
<p>12.<strong> <a href="http://debuggable.com/blog">Debuggable Blog </a>: </strong></p>
<p>Debuggable is a company focussed on writing cakephp and jquery applications. Felix Geisendörfer and Tim Koschützki founded debuggable. The Company&#8217;s blog is a great set of articles on the solution of real time problems in cakephp.</p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/cakephp-useful-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing the date format in vTiger</title>
		<link>http://enbake.com/changing-the-date-format-in-vtiger/</link>
		<comments>http://enbake.com/changing-the-date-format-in-vtiger/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 19:23:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CRM]]></category>
		<category><![CDATA[vTiger]]></category>
		<category><![CDATA[CRM Consulting]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=166</guid>
		<description><![CDATA[Since 4.0.1, vTiger has added the capability to support the multiple date formats. However, the date format should be set on per user basis. To Change the data format in vTiger CRM, follow the following steps: 1. Login to vtiger CRM 2. Click the My Account link 3. In User account page click the Edit [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Fchanging-the-date-format-in-vtiger%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Fchanging-the-date-format-in-vtiger%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=CRM,CRM+Consulting,vTiger" height="61" width="50" /><br />
			</a>
		</div>
<p>Since 4.0.1, vTiger has added the capability to support the multiple date formats. However, the date format should be set on per user basis.</p>
<p>To Change the data format in vTiger CRM, follow the following steps:</p>
<p>1. Login to vtiger CRM<br />
2. Click the My Account link<br />
3. In User account page click the Edit button.<br />
4. In User account page select the required date format from Date Format  drop down list.</p>
<p>Hope this helps some one !!</p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/changing-the-date-format-in-vtiger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad in cakefest is now confirmed !!!</title>
		<link>http://enbake.com/ipad-in-cakefest-is-now-confirmed/</link>
		<comments>http://enbake.com/ipad-in-cakefest-is-now-confirmed/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 11:04:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[cakefest]]></category>
		<category><![CDATA[cakefest 2010]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=163</guid>
		<description><![CDATA[Yes, You heard it right. Graham Weldon (AKA: Predominant) put an end to the rumors regarding the giving away of an iPad in cakeFest 2010. In a mail sent to pretty active cakephp community on google groups, Graham said : &#8220;While we had hoped to keep this information under wraps until the event was underway, [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Fipad-in-cakefest-is-now-confirmed%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Fipad-in-cakefest-is-now-confirmed%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=cakefest,cakefest+2010,cakephp" height="61" width="50" /><br />
			</a>
		</div>
<p>Yes,</p>
<p>You heard it right. Graham Weldon (AKA: Predominant) put an end to the rumors regarding the giving away of an iPad in cakeFest 2010. In a mail sent to pretty active cakephp community on google groups, Graham said :</p>
<p>&#8220;While we had hoped to keep this information under wraps until the<br />
event was underway, however we are required to address to rumours.<br />
CakeFest 2010 will indeed involve the giveaway of an Apple iPad<br />
device. This will be a random pool from the attendee! Thats right,<br />
just by having purchased a ticket, you will be eligible to win an<br />
Apple iPad on the conference days.</p>
<p>The winner is required to be onsite at the announcement to collect the<br />
iPad, or another winner will be randomly selected from the pool of<br />
attendees.&#8221;</p>
<p>Also, just for reminder the early bird ticketing for cakefest 2010 ends on 24th July. So in case you plan to attend the cakefest, its your chance to grab the tickets now at a much cheaper rate.</p>
<p>Go Cake, go !!!</p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/ipad-in-cakefest-is-now-confirmed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql COLUMN_UPDATED() and bitwise operations</title>
		<link>http://enbake.com/mysql-column-update/</link>
		<comments>http://enbake.com/mysql-column-update/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 08:43:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[bitwise operations]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=160</guid>
		<description><![CDATA[Sometimes to achieve a certain functionality, you need to determine the columns that were updated after the mysql update query. I will try to explain how to achieve this in this particular article. The article contains the reference to cakephp constructs because i happened to use this in a cakephp application. Handling Bits in General: [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Fmysql-column-update%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Fmysql-column-update%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=bitwise+operations,cakephp,mysql" height="61" width="50" /><br />
			</a>
		</div>
<p>Sometimes to achieve a certain functionality, you need to determine the columns that were updated after the mysql update query. I will try to explain how to achieve this in this particular article. The article contains the reference to cakephp constructs because i happened to use this in a cakephp application.</p>
<p><strong>Handling Bits in General:</strong></p>
<p>Let me discuss about the basics of how we can do bitwise operations in php(The code contains references to cakephp constructs but the logic remains the same).<strong><br />
</strong></p>
<ul>
<li>Depending on the number of bits that need to be used declare an attribute of type INT.</li>
<li>Tiny – 8bits, Small- 16 bits, Med – 24  bits or Int &#8211; 32 bits</li>
<li>smallint $status = 0;</li>
<li>Declare each flag that needs to be used as following in model in powers of 2.</li>
</ul>
<pre class="brush: php;">&lt;code&gt;&lt;em&gt;class&lt;/em&gt;&lt;em&gt; Node &lt;/em&gt;&lt;em&gt;extends&lt;/em&gt;&lt;em&gt; AppModel {&lt;/em&gt;&lt;/code&gt;

&lt;em&gt;const&lt;/em&gt;&lt;em&gt; flag1 =1;//00000001 &lt;/em&gt;

&lt;em&gt;const&lt;/em&gt;&lt;em&gt; flag2 =2;//00000010&lt;/em&gt;

&lt;em&gt;const&lt;/em&gt;&lt;em&gt; flag3 =4;//00000100&lt;/em&gt;

&lt;em&gt;const&lt;/em&gt;&lt;em&gt; flag4 =8;//00001000&lt;/em&gt;

&lt;em&gt;}</pre>
<p></em></p>
<ul>
<li>Check if a particular flag is set:  <em>if($status &amp; Node::flag2) { echo &#8220;flag 2 is set&#8221;;}</em></li>
<li>Set a flag: <em>$status |= Node::flag3;</em></li>
<li>Unset a flag:<em> $status = $status &amp;~ Node::flag3</em>;</li>
<li>Check how many flags are set:</li>
</ul>
<pre class="brush: php;">&lt;em&gt;function &lt;/em&gt;&lt;em&gt;get_count($status){&lt;/em&gt;

&lt;em&gt; $i=0;&lt;/em&gt;

&lt;em&gt; while ($status){ $i++ ; $status &amp;= ($status - 1) ; }&lt;/em&gt;

&lt;em&gt; return $i; &lt;/em&gt;

&lt;em&gt; }</pre>
<p></em></p>
<p><em> </em></p>
<p><strong>MySql – COLUMNS_UPDATED()</strong></p>
<p>Mysql columns_updated works on the similar logic as explained above.</p>
<p>COLUMNS_UPDATED() returns a varbinary bit pattern that indicates the columns in a table or view that were inserted or updated. COLUMNS_UPDATED is used anywhere inside the body of a Transact-SQL INSERT or UPDATE trigger to test whether the trigger should execute certain actions.</p>
<p>COLUMNS_UPDATED returns one or more bytes that are ordered from left to right, with the least significant bit in each byte being the rightmost. The rightmost bit of the leftmost byte represents the first column in the table; the next bit to the left represents the second column, and so on. COLUMNS_UPDATED returns multiple bytes if the table on which the trigger is created contains more than eight columns, with the least significant byte being the leftmost. COLUMNS_UPDATED returns TRUE for all columns in INSERT actions because the columns have either explicit values or implicit (NULL) values inserted.</p>
<p>To test for updates or inserts to specific columns, follow the syntax with a bitwise operator and an integer bitmask of the columns being tested. For example, table <strong>t1</strong> contains columns <strong>C1</strong>, <strong>C2</strong>, <strong>C3</strong>, <strong>C4</strong>, and <strong>C5</strong>. To verify that columns <strong>C2</strong>, <strong>C3</strong>, and <strong>C4</strong> are all updated (with table <strong>t1</strong> having an UPDATE trigger), follow the syntax with <strong>&amp; 14</strong>(bitwise and operation). To test whether only column <strong>C2</strong> is updated, specify <strong>&amp; 2</strong>.</p>
<p>Hope this helps someone !!</p>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/mysql-column-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Database name in webERP</title>
		<link>http://enbake.com/database-name-in-weberp/</link>
		<comments>http://enbake.com/database-name-in-weberp/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 07:25:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[webERP]]></category>
		<category><![CDATA[webERP customization]]></category>
		<category><![CDATA[webERP Database name]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=146</guid>
		<description><![CDATA[Recently we implemented a weberp based solution for one of our esteemed clients. The development server was hosted on apthost and hence we had to manage database from the apthost cpanel. As we are all aware of the fact that cpanel will pre-append the user name of the shared user to the database that you [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Fdatabase-name-in-weberp%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Fdatabase-name-in-weberp%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=webERP,webERP+customization,webERP+Database+name" height="61" width="50" /><br />
			</a>
		</div>
<p>Recently we implemented a weberp based solution for one of our esteemed clients. The development server was hosted on apthost and hence we had to manage database from the apthost cpanel. As we are all aware of the fact that cpanel will pre-append the user name of the shared user to the database that you create from it, we wanted weberp to adjust database name according to that (or for that matter, what ever may be the reason for you to chose a different database name.</p>
<p>Weberp supports multiple companies in one installation and hence there can be multiple databases. The trick here is that the name of the database must match the name of the sub-directory in the companies folder.</p>
<p>We have been getting a lot of queries on if we can change the association of sub-directories with the database name in the webERP. Unfortunately as of weberp version 3.11, There is still no getting around the fact that  the <strong>database</strong> <strong>name</strong> and the sub directory under the company directory should  still be identical.</p>
<p>In case, you are using webERP thro its web-services, then you would need to make another change for the end points to work correctly. You will need to change the variable $DatabaseName to refer to the name of your database. The variable is defined in api\api_php.php</p>
<pre class="brush: php;">$DatabaseName='weberpdemo';</pre>
<p>Change this to the name of your company and you will be all set to go. Though this is not a proper method and proper implementation should be introduced to specify the name of the company from the API calls, but this works for now.</p>
<p>Good Luck with your webERP implementation !!</p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/database-name-in-weberp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vendoring gems in rails</title>
		<link>http://enbake.com/vendor-gems-in-ruby-onrails-ror/</link>
		<comments>http://enbake.com/vendor-gems-in-ruby-onrails-ror/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 17:40:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[RoR]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[freeze gems]]></category>
		<category><![CDATA[vendor gems]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=143</guid>
		<description><![CDATA[At Enbake, we usually try to follow the agile development methodologies which can help reduce the development time. RoR(Ruby on Rails) is well known for quick turn around of applications with the help of set development patterns and standards it follows. One such pattern that can impact the development time in rails is vendoring of [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Fvendor-gems-in-ruby-onrails-ror%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Fvendor-gems-in-ruby-onrails-ror%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd&amp;hashtags=freeze+gems,rails,RoR,vendor+gems" height="61" width="50" /><br />
			</a>
		</div>
<p>At Enbake, we usually try to follow the agile development methodologies which can help reduce the development time. RoR(Ruby on Rails) is well known for quick turn around of applications with the help of set development patterns and standards it follows. One such pattern that can impact the development time in rails is vendoring of the gems.</p>
<p>As I started working on my first ruby on rails(RoR) application, I faced gem related issues while setting up the application locally. I kept wondering about the problems that could be preventing the application from  running locally while it was running perfectly fine on the development server. The reason was nothing but missing gems or to be precise, gems were not vendored with the application.</p>
<p>I managed to set up the application by locally installing those missing gems but here are a few drawbacks to this approach:</p>
<ol>
<li>The Approach is not agile in the sense that every developer who would start on  this project will incur the same pain and time as i had.</li>
<li> Finding the right version of the gem might be a tedious task due to many reasons like withdrawl of support for previous versions or maintainence stop for a particular gem or due to any other of the numerous  reasons that effect software development.</li>
</ol>
<p>In this situation, you should always consider vendoring/freezing of gems. Vendoring or freezing of gems is nothing but linking the gems with application itself so that the application is no longer dependent on the gems that are/aren’t available on the target deployment.</p>
<p>Here is a quick guide on how to vendor the gems in rails:</p>
<ul>
<li>Create a folder called “gems” if not already present in “vendor” folder.</li>
<li>launch the command prompt and issue the command <em>gem unpack &lt;name of gem&gt;</em></li>
<li>If you face an error like “1.2 index not found”, probably it is the connection issue, in such a scenario you can download required gem file from <a href="http://www.rubygems.org/">www.rubygems.org</a> . Place it in gems folder and then run unpack command.</li>
</ul>
<p>Another way of freezing gems (or vendoring) is through “gemsonrails”.</p>
<ul>
<li>gem install gemsonrails</li>
<li>Go to  your rails app folder and run the command “gemsonrails”. This installs some rake tasks into the application which helps in freezing or linking gems.</li>
<li>rake gems:freeze</li>
<li>rake gems:link</li>
<li>rake gems:unfreeze</li>
</ul>
<p>Hope this post saves someone else&#8217;s time.</p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/vendor-gems-in-ruby-onrails-ror/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to setup home page in cakephp application</title>
		<link>http://enbake.com/how-to-setup-home-page-in-cakephp-application/</link>
		<comments>http://enbake.com/how-to-setup-home-page-in-cakephp-application/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 13:15:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://enbake.com/?p=138</guid>
		<description><![CDATA[There are two possibilities which you might think before setting the home page of your application (aka setting the root of your application). 1. Static Home Page : In this case you can change the content you would like to add to your home page in the following file in your cakephp framework  “APP/views/pages/home.ctp”. (.ctp [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fenbake.com%2Fhow-to-setup-home-page-in-cakephp-application%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fenbake.com%2Fhow-to-setup-home-page-in-cakephp-application%2F&amp;source=enbake&amp;style=normal&amp;service=is.gd" height="61" width="50" /><br />
			</a>
		</div>
<p>There are two possibilities which you might think before setting the home page of your application (aka setting the root of your application).</p>
<p><strong>1. Static Home Page</strong> :</p>
<p>In this case you can change the content you would like to add to your home page in the following file in your cakephp framework  “APP/views/pages/home.ctp”. (.ctp aka cake template)</p>
<p>Now if this simply does not work for you much and you want your home page to be fancy. You can change its Layout and create a file if its not already present in “APP/views/layouts/default.ctp”.</p>
<p>If you want to do more fancy stuff like changing the icon or adding a style sheet,  you can do it easily with Nifty HTMLHelper.</p>
<pre class="brush: php;">
echo $this-&gt;Html-&gt;meta('icon');
echo $this-&gt;Html-&gt;css('cake.generic');
</pre>
<p><span style="text-decoration: underline;">cake.generic </span> is the default Style Sheet present in “APP/webroot/css/cake.generic.css”. You can add your own Style Sheet in the css directory and make the respective change of the name in default.ctp</p>
<p>Now if you have many layouts in your application and your home page uses a layout called homepage.ctp, you will have to specify a property in the respective controller</p>
<p>“APP/controllers/pages_controller.php” as follows:</p>
<pre class="brush: php;">$this-&gt;layout = ‘homepage’;</pre>
<p><strong>2. Dynamic Home Page :</strong></p>
<p>On the other hand, if you don’t want to be stuck with home.ctp as your default main page. All you need to do is simply designate a new root (/) route.</p>
<p>Let’s take an example…</p>
<p>I have a users Controller (users_controller.php), which has an action called signup() and also It pulls data from various User model methods and utilizes some features of the App Controller.</p>
<p>And i would prefer that page (summary) to be my new “home”.</p>
<p>So, rather than dealing with Pages Controller, I simply replace the default route (in app/config/routes.php) with</p>
<pre class="brush: php;">Router::connect('/', array('controller' =&gt; 'users', 'action' =&gt; 'signup'));</pre>
<p>I hope that this gives clear enough an idea of how to setup the home page in the cakephp application. Please feel free to leave any  comments  or doubts that you  might have and I would be more than happy to answer.</p>
]]></content:encoded>
			<wfw:commentRss>http://enbake.com/how-to-setup-home-page-in-cakephp-application/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
