Wednesday, July 18, 2012

URLFOR():


URLFOR():

This article about urlfor() structure and functionality.This is very useful function in salesforce.com


URLFOR function returns a relative URL using this syntax:
{!URLFOR(targetid, [inputs], [no override])}
targetYou can replace target with a URL or action, s-control or static resource
id: This is id of the object or resource name (string type) in support of the provided target.
inputsAny additional URL parameters you need to pass you can use this parameter.
you will to put the URL parameters in brackets and separate them with commas
ex: [param1="value1", param2="value2"]
no override: A Boolean value which defaults to false, it applies to targets for standard Salesforce pages.
 Replace "no override" with "true" when you want to display a standard Salesforce page regardless of
 whether you have defined an override for it elsewhere.
Obtaining URL of a s-control:


<!-- Use $SControl global veriable to reference your s-control and pass it to the URLFOR function -->
 <apex:outputLink value="{!URLFOR($SControl.MySControlName)}">Link to my S-Control</apex:outputLink> 


Obtaining URL of a Static Resource


<!-- Use $Resource global veriable to reference your resource file -->
<apex:image url="{!URLFOR($Resource.LogoImg)}" width="50" height="50" />

<!-- If your file is in another ZIP file, then pass the path of the file as id to URLFOR -->
<apex:image url="{!URLFOR($Resource.CorpZip, 'images/logo.gif')}" width="50" height="50" />



Obtaining URLs of an Object's Actions:
In order to get URL of the an object's actions you need to know what actions that object supports.
 Below are some of the common actions most Objects support:
  • View: Shows the detail page of an object
  • Edit: Shows the object in Edit mode
  • Delete: URL for deleting an object
  • New: URL to create a new record of an object
  • Tab: URL to the home page of an object
However, each object may support additional actions for example Contactalso supports "Clone"
 action and Case supports "CloseCase" action.
<!-- Use $Action global varialble to access the New action reference -->
<apex:outputLink value="{!URLFOR($Action.Account.New)}">New</apex:outputLink>
<br/>
<!-- View action requires the id parameter, a standard controller can be used to obtain the id -->
<apex:outputLink value="{!URLFOR($Action.Account.view, account.id)}">View</apex:outputLink> 
<br/>
<!-- Edit action requires the id parameter, id is taken from standard controller in this example -->
<apex:outputLink value="{!URLFOR($Action.Account.Edit, account.id)}">Edit</apex:outputLink>  
<br/>
<!-- Delete action requires the id parameter, also a confirm message is added to prevent deleting the record when clicked by mistake -->
<apex:outputLink value="{!URLFOR($Action.Account.delete, account.id)}" onclick="return window.confirm('Are you sure?');">Delete</apex:outputLink> 
<br/>
<!-- From all custom buttons, links, s-controls and visualforce pages you can use the following to get the link of the object's homepage -->
<apex:outputLink value="{!URLFOR($Action.Account.Tab, $ObjectType.Account)}">Home</apex:outputLink> 




Examples:



Files and folders:



Resource file:URLFOR($Resource.LogoImg)
Resource file in ZIP folder:URLFOR($Resource.CorpZip, 'images/logo.gif')
Note: The path to the file is case sensitive



Actions shared among all objects:



View record:URLFOR($Action.Account.View, account.id)
Create new record:URLFOR($Action.Account.New)
Edit record:URLFOR($Action.Account.Edit, account.id)
Delete record:URLFOR($Action.Account.Delete, account.id)
List view:URLFOR($Action.Account.Tab, $ObjectType.Account)

Note: Some objects support other additional actions, for example Case supports "CloseCase"
 action. To know which action can be used, check the buttons and links which can be overridden
 for an object (as shown on the next image), just use the name of the function like this:
 URLFOR($Action.Object.Name, …)






No comments:

Post a Comment