Thursday, 30 April 2009

How to Enable Emoji Icons On iPhone 2.2 (JailBreak iPhone)

Emoji icons are actually picture characters that are very popular in Japan for text messaging. Nearly all mobile phones in Japan have Emoji icons built-in.

iPhone firmware 2.2 also comes with Emoji icons. But it’s only rolled out to iPhone users using Softbank network in Japan. Emoji icons are hidden from other iPhone users outside of Japan. Developer from Ireland, however, has found a way to enable this hidden feature. Now any iPhone 2.2 user can enjoy Emoji icon. The trick is to enable a property value on iPhone to bring out this feature:

You need to edit the file /User/Library/Preferences/com.apple.Preferences.plist on the device -> whether you use a jailbreak to achieve this or merely some iTunes backup editor is up to you.

Add the following boolean key as ‘true’:

KeyboardEmojiEverywhere


Enabling Emoji Icon Using Cydia

For jailbreak iPhone user with Cydia installed, you do not need to edit this value manually. Cydia does all the stuffs for you. What you have to do is to open up Cydia and install Emoji under Tweaks section.

After installation, go to “Settings” -> “General” -> “International” -> “Keyboards” -> “Japanese”. Then switch on Emoji to enable Emoji icons.


Emoji icons can be used in most iPhone applications (such as SMS, email, notes, etc).




CSI Miami

Category: Games
Price: $5.99

Size: 251 MB

Latest version: 1.3.0

Discover the official game of CSI: Miami on the iPhone with an exclusive investigation written in collaboration with the creator of the TV show, Anthony E. Zuiker. The characters (Horatio, Calleigh, Eric and Dr. Alexx Woods) and atmosphere of the series are perfectly re-created. During your investigation, unlock exclusive bonus videos from the series. Search the crime scene with your finger and analyse clues with all your scientific forensic instruments.

Compatible with iPhone and iPod touch and minimum requires is iPhone 2.2 software update. You can purchase via iTunes link or download cracked .ipa file code:

http://www.2shared.com/file/5510194/c310bde4/CSI_MIAMI_v123.html



Touchpad Elite

Category: Utilities
Price: $0.99

Size: 1.6 MB

Latest version: 2.0.1

Control your computer wirelessly with the multi-touch features of the new MacBook line and Windows. For a full list of controls, visit jaaduvnc.com/controls. To enable Zoom on the Mac, go to System Preferences > Universal Access and enable Zoom. Then click the Options button, and set it to keep the mouse in the center of the screen. Visit touchpadelite.com for more information.

For both Mac and Windows:

- Wireless touchpad
- PowerPoint clicker
- Control your media
- Multi-touch access to Task Switcher
- Automated discovery

Compatible with iPhone and iPod touch and minimum requires is iPhone 2.2 software update. You can purchase via iTunes link or download cracked .ipa file code:

http://www.appscene.org/download.php?id=526579498
http://www.2shared.com/file/5571492/1b4448ff/Touchpad-v201-CrK-by_Zeno.html
http://getapp.info/download/Touchpad-v2.0.1_dNaPdA.ipa
http://www.appscene.org/download.php?id=748284945


Shortcut To Toggle WiFi Using SBSettings

You could save your battery life instead of digging deep into "Setting" and just to turn On/Off your Wifi. You actually consume a thousand minutes just for this matter. There is only two solution regarding above matter.


First Solution

A mini application known as “WifiToggle” allows you to toggle the Wifi directly on the Home screen. See more details about WifiToggle here.



Second Solution

The second solution is turn on/off your Wifi using SBSettings. SBSettings is a full replacement of BossPrefs and it brings all important toggles (which may be hidden under Settings) directly into your iPhone Home Screen. SBSettings also provides shortcut buttons to turn On/Off your WIFI. SBSettings also lets you control the toggles via a configuration screen. See more details here on how to install and how to use SBSettings.




Wednesday, 29 April 2009

Read xml from web page and bind the data to Silverlight module.

Some times we have requirements in SharePoint that we need to pull images from SharePoint library and display those images in Silverlight module with rich UI. But we know that Silverlight runs on client side, we can't access the SharePoint libraries in the Silverlight projects because of permission issues as well.
So, here we build an architecture that SharePoint will build the XML for us and write it on the page and Silverlight grabs the XML from the page and displays the images on the UI. How nice it is. You can get the first part i.e. get xml (image) data from the SharePoint libraries here.

Here, we are discussing about the code we need to place in Page.xaml.cs file to read xml from web page.
public Page()
{
string controlid = "divImgs"; //You can also use intiparams of Silverlight params to get the id.
InitializeComponent();

string xmlstring = string.Empty;
if (controlid != null)
{
HtmlElement ctl = HtmlPage.Document.GetElementById(controlid);
if (ctl != null)
xmlstring = (string)ctl.GetProperty("innerHTML");
}

if (!string.IsNullOrEmpty(xmlstring))
{
ProcessXML(xmlstring);
}
}
The above code is the Page constructor of the Page. Xaml.cs file.
1. Here, we are catching the control on the HTML document and reading it's HTML. if you remember, while coverting the data view web part data from HTML to XML, in the XSLT i assigned an id for a html tag called "divImgs". We are using this id here in the cs file, and reading the HTML, obviously it will get the xml data to the xmlstring variable.
2. No, we need to process the XML and bind the data to the silverlight control. This is why i am calling a function called "Process XML".
private void ProcessXML(string xml)
{
images = new List<string>();
if (xml != string.Empty)
{
try
{
StringReader textStream = null;
textStream = new StringReader(xml);

if (textStream != null)
{
using (XmlReader reader = XmlReader.Create(textStream))
{
while (!reader.EOF)
{
if ((reader.IsStartElement()) && (reader.LocalName == "slides"))
{
if (reader.HasAttributes)
{
reader.MoveToAttribute("baseUrl");
}
}
else
{
if ((reader.LocalName == "slide") && (reader.HasAttributes))
{
reader.MoveToAttribute("imageUrl");
string imageName = reader.Value.ToLower();
if ((imageName.Contains(".jpg")
|| imageName.Contains(".png")))
images.Add(reader.Value);
}

}
reader.Read();
}
}
}
}
catch (Exception ex)
{
}
}
}
3. In the above code, images is the global variable of type List<string>. We are filling this object with the image urls by reading the xml string.
4. Now by calling the ProcessXML function, we are done with getting image urls. So we have collection of image urls, and use this object to give input as the Silverlight module controls and display on the UI.

Very simple and nice.
Happy coding!!!

Show images in Silverlight by reading images from SharePoint library

Hi,

Silverlight works on client side, so it's not possible to add SharePoint libraries in Silverlight project. But we have a way that we can access SharePoint data and show it up in Silverlight in SharePoint site.

We have a requirement where we need to pull data from the SharePoint libraries and lists and show the data in Silverlight. Here i will explain a scenario where we can pull the images from image library and show it in Silverlight.



Follow the steps below to do this.

Get data from SharePoint library and make it in the form of XML.

  1. Go to the page where we want to show the Silverlight module on the site or create a new page.
  2. Open the page in SharePoint designer.
  3. Add a data view web part to the page some where in web part zone.
  4. Select the data source library from Task Pane menu.
  5. Select the library/list from the data source library where your images are present.
  6. Click on the library and select Show Data.

  7. Select the columns, which refer the Title, Image Path etc you want to show in Silverlight from Data Source details task pane.
  8. Select the option Insert select fields as "Multiple item view". So now our data view web part is filled with the data. [If you want apply some properties like show images in asc order etc..]
  9. After selected the columns, apply a filter to get only images from the library/lists. we can do this by selecting the filters option from the data view web part.
  10. Here, select the image title or url column in the field name, in comparison select contains and here enter valid formats Silverlight allows in the value field.

  11. Save the page and open it in the browser [IE].
  12. Till now what we did is, we are getting the data from the SharePoint library/Lists and showing up it in the data view web part and it renders as a table.
  13. Now, we need to change the XSLT of the data view web part to get the table format of data as the XML format. We have XSLT, so we can easily do that.
  14. Add the below XSLT code to the data view web part by going to edit for the web part and modify settings --> XSL editor.
  15. Remove text in the editor and add this code.


  16. If you observe i am pulling some values from the data view and making xml.

  17. Now, when you save the web part and see the page, you can't see anything in the data view web part, because now your data is in the format of xml.
  18. You can see this by doing view source and search for "
  19. We are done with part 1 now. i.e. getting data from SharePoint library. Now we will move to second part.
Get XML from the page and give that as input to Silverlight module:

At this point, we got the xml i.e. xml is on the page, now we need to read the xml from the page in the silverlight project and display the images as we want by applying animations, styles etc..

You can see the part 2 here.





Tuesday, 28 April 2009

How To Change iPhone Email Signature

As you probably know, Apple has configured all iPhones with a default email signature - “Sent from my iPhone”. That’s really cool to show off to the email recipient that you own an iPhone. But this signature may not fit everyone. Some of you will prefer to use your own signature for personal or business purpose.

It’s pretty easy to change the email signature on iPhone. What you have to do is to hit the “Settings” icon to launch Settings. Then tap “Mail, Contacts, Calendars”, followed by tapping “Signature”. You can then edit the signature text to whatever you like. Once you save the signature text, it will appear in your email.



Dream Chronicles

Category: Games
Price: $4.99

Size: 66.0 MB

Latest version: 1.0

Play the original Dream Chronicles, the award-winning game where the lines between reality and fantasy no longer exist. Enter the Dream Realm, full of fairies, magical adventure and hidden jewels to help Faye find her missing husband and escape the mysterious sleeping spell that has taken over the town of Wish.

Features:
-32 levels of hidden puzzles and secret clues
-18 environments and chapters
-Stunning, art-nouveau inspired artwork


Compatible with iPhone and iPod touch and minimum requires is iPhone 2.2 software update. You can purchase via iTunes link or download cracked .ipa file code:

http://www.mediafire.com/download.php?lzgywbjwuny
http://www.mediafire.com/?ydjwm2cgzfu
http://getapp.info/download/DreamChronicles-v1.0-Reyna.ipa








Monday, 27 April 2009

replace querystring with some value in javascript

In my project, i have a requirement that we need to get url from the browser and depends on user selection, or some criteria we need to change some querystring values and reload the page with new url. Here is a small function which will do that in javascript.
function replaceQueryString(url, param, value) {
var preURL = "";
var postURL = "";
var newURL = "";

var start = url.indexOf(param+"=");
if(start > -1)
{
var end = url.indexOf("=", start);
preURL=url.substring(0,end) +"="+value;

var startRest = url.indexOf("&",start);
postURL="";
if(startRest > -1)
{
postURL=url.substring(startRest);
}
}
else
{
var delimeter = "";
preURL=url;
if (url.indexOf("?") > 0)
delimeter = '&';
else
delimeter = '?';

postURL=delimeter+param+"="+value;
}
newURL = preURL+postURL;
var index = newURL.indexOf('id=',0);
if(index > -1)
{
var Nurl = newURL.substring(0,index);
var EUrl = newURL.substr(index,newURL.length - index);
var eIndex = EUrl.indexOf('&',0);
if(eIndex > -1)
EUrl = EUrl.substr(eIndex, EUrl.length - eIndex);
//newURL = newURL.substring();
newURL = Nurl + EUrl;
}
return newURL;
}
the newUrl which builds the new url with updated querystring values.

Sunday, 26 April 2009

mozilla frefox enter button problem in asp.net.

i am facing a small problem, which ate my mind almost 10 hours.
Introduction:
I am using Updatepanel [Ajax] in my site. According to my client specification, in which panel or div cursor focus on, when he/her press enter, the corresponding panel button click event will fire and request goes to server and gives response.
i am using control on my pages, because it has the property called DefaultButton. So, this will work perfectly for me if and only if, user browse my site in IE. then what about Mozilla?
Here my problem starts…
Problem:
1. The DefaultButton property of the Panel/Form won’t work in Mozilla when you hit enter key, when all these panels are reside in UpdatePanel control.
2. When any one press Enter button, it should check for validation if any input controls are there in that panel.
Solution:
After a long research i wrote small java script function to solve the problem.
OnClientClick=”setDefaultButton(this.name);
Java script function:
function setDefaultButton(name)
{
Page_ClientValidate();
if(document.all)
{}
else
{
if(!Page_IsValid)
__doPostBack(name,"");
}
}
if you have any issues with my code, please let me know.

Role of ItemMetadata.xml in Infopath forms [SharePoint workflow].

Introduction:

ItemMetadata.xml is the file used to store/transfer the data from one Infopath to another. The name of the file is case - sensitive.

For example, in a sharepoint workflow, there are 10 steps, in each step we are using infopath and we want send some information from one to the next infopath form, the information won't save any where. we need to tell explicitly to infopath to store in xml file. that is nothing but ItemMetadata.xml.

It acts as the secondary data source to the infopath.

To compensate for the possibility of schema differences between the task data and the form it only stores the schema instead of data.

Example schema is

<z:row xmlns:z="#RowsetSchema" ows_fieldname=""/>

Note: Every field name should be prefixed with ows

In programming, we can retrieve the data from info path using the property called ExtendedProperties.

afterProperties.ExtendedProperties["filedName"].ToString();

Conditional Statement example in SharePoint workflow.

In SharePoint workflow, when we are using the if/else activities, the if/ else methods contains Event argument called ConditionalEventArgs.
if you set e.Result=true, then if block will executes,
if you set e.Result=false, then else block will executes.

private void IfMethod(object sender, ConditionalEventArgs e)

{

if (isTrue)

e.Result = true;

else

e.Result = false;

}

private void ElseMethod(object sender, ConditionalEventArgs e)

{

if (!isTrue)

e.Result = true;

else

e.Result = false;

}

depending on the boolean variable “isTrue”, the if/else blocks will executes…
In the above case, i am setting “isTrue” variable depending on my logic, before calling if/else statements.
For while activity also, same logic applies.
if you set e.Result=true, it will iterate until you set e.Result=false.

To access html control without runat=”server” in C# code.

In ASP.NET coding, I don't think it is needed to create or declare only ASP.NET server-side controls. Some cases, to make our page more efficient and faster we can write HTML controls by adding runat="server" to access them on server side code [C#].

But, there are some special requirements where we need to create HTML controls dynamically in c# and add them in a string and write the string to a page. And whenever some event raised like button click event, on server side code, we need to retrieve the values of those HTML controls. As it is not declared as runat="server" on the page, we can't take the values very simple. In that type of scenarios, this solution works. Please follow the solution below to get the values of the HTML controls which doesn't have runat="server" attribute defined.

Example:
HTML declaration:
<input type="text" name="txtName" />

C# Code:
string strValue = Page.Request.Form["name of the control"].ToString();

Note:
To get the values in server side code of HTML control, we need to follow below points.
  • The tag should have an attribute called NAME. Because it is used as key in form[].
  • The form method should be of type POST.
That's it!!! Please let me know, if you have any issues with this approach. Hope this helps...

How to give anonymous access to the reports.

Give anonymous access to the Application.

1. Go to IIS.

2. Select reports application –> properties –> Directory Security –> Authentication and Access control –> Edit –> Enable Anonymous access

Give anonymous access to a report.

1. Open the reports on the report server located at http://<servername>/reports

2. Browse to the report that needs to be accessed anonymously.

3. Select properties tab for the report.

4. Select security from the left navigation.

5. Select New Role Assignment from this page.

a. Give a group name - everyone (in the “group or user name” text box).

b. Select the option Browser role and then click OK.

[Browser role is for READ - ONLY access].

Creating new instance of SharePoint workflow through C# code.

In SharePoint 2007, very good feature I like much is that framework supports for writing custom events, features, workflows or any other stuff... We can customize complete SharePoint system at any context.
While working with SharePoint custom workflows, we get some scenarios where we need to stop a workflow or start a new instance of workflow through coding. So, I did some research on the MSDN library and saw all the dll's by doing some reflection on the libraries and found some functions and classes which supports this.

Here, I want to present a small code snippet which does terminating currently running wokflow and start a new instance of the workflow on the same list item.
SPListItem listItem = workflowProperties.Item;
SPList spList = workflowProperties.List;
string initData = workflowProperties.InitiationData;

const string WF_GUID = “The GUID of workflow template”;
workflowProperties.Site.WorkflowManager.RemoveWorkflowFromListItem(workflowProperties.Workflow);
workflowProperties.Site.WorkflowManager.Dispose();

SPWorkflowAssociation associationTemplate= spList.WorkflowAssociations.GetAssociationByBaseID(new Guid(WF_GUID));

workflowProperties.Site.WorkflowManager.StartWorkflow(listItem, associationTemplate, initData);

Hope this will give you a good start to code on SharePoint workflow start and terminate through coding. Let me know, what you think.

How to display Site pages/ Subsites in navigation using Treeview control in sharepoint applicartion.

For very big projects in SharePoint or any other platform it's very difficult to organize the navigation to keep all the data on page. For example, you have plenty of data around 15 to 20 subsites and 50 pages, then it's impossible to display all the links at one place. So, it's big challenge that even you have more data on site but if user failed to find what he want on the site then it's just waste. So by thinking that for a long time, I came up with a good solution and here I am presenting for you with code.

What is my goal?
I want to show all the sites and pages in a SharePoint site in navigation area [lefft navigation] using asp tree view control in SharePoint.

Below is the complete code of the treeview functionality
In my case, we have 3 levels of data. So used tree view that has 3 levels.

ASPX Code:
Treeview control declaration and it's tree nodes 3 levels. We are writing some server side code to get and render the data as we want using different conditions. So for this purpose I am using prerender event of the tree view control.

<asp:TreeView ID="treeviewLeftNav" runat="server"
Width="191px" HoverNodeStyle-CssClass="leftNavHover"
DataSourceID="SiteMapDS" SelectedNodeStyle-CssClass="leftNavSelected"
OnPreRender="ControlTreeView_OnPreRender"
<LevelStyles>
<asp:TreeNodeStyle CssClass="leftNav1"></asp:TreeNodeStyle>
<asp:TreeNodeStyle CssClass="leftNav2"></asp:TreeNodeStyle>
<asp:TreeNodeStyle CssClass="leftNav3"></asp:TreeNodeStyle>
</LevelStyles>
</asp:TreeView>

We are using publishing site with all features enabled. So we are using PublishingNavigation control with PortalSiteMapDataSource to pull all pages and sites from SharePoint site.

<PublishingNavigation:PortalSiteMapDataSource ID="SiteMapDS" Runat="server"
SiteMapProvider="CurrentNavSiteMapProvider" EnableViewState="true"
StartingNodeOffset="0" ShowStartingNode="False"
TrimNonCurrentTypes="Heading"/>

In c#, I wrote below code for exact functionality of Expand/collapse TreeView.
C# code:
void ControlTreeView_OnPreRender(object sender, EventArgs e)
{
foreach(TreeNode n in treeviewLeftNav.Nodes)
{
if(n.NavigateUrl == Request.Url.AbsolutePath)
n.Expand();
else
{
if(treeviewLeftNav.SelectedNode!=null)
{
if(n!=treeviewLeftNav.SelectedNode.Parent)
{
if(n.ChildNodes.Count>0)
n.Collapse();
}
}
else
{
treeviewLeftNav.CollapseAll();
break;
}
}
RenderTreeNodes(n);
}

if(treeviewLeftNav.SelectedNode!=null)
treeviewLeftNav.SelectedNode.Expand();
}

void RenderTreeNodes(TreeNode node)
{
if(node!=null)
{
if(node.ChildNodes.Count>0)
{
foreach(TreeNode n in node.ChildNodes)
{
if(n.NavigateUrl == Request.Url.AbsolutePath)
{
n.Expand();
}
else
{
if(n!=treeviewLeftNav.SelectedNode.Parent)
n.Collapse();
else
n.Parent.Expand();
}
}
}
}
}
Note: please change your web.config of the site to allow server side code in pages where you are writing server side code.

Ajax,Master page problem in Sharepoint 2007 [MOSS]

Problem:
Ajax is not working as expected in SharePoint 2007.

Solution:
1. First we need to install Ajax extensions on the SharePoint server.
2. After installed Ajax, We need to add the corresponding entries in web.config file to know the web application that the script manage, ajax requests etc... For this we need to change the configuration.
3. Copy all the ajax dlls to GAC and then follow the instructions below.

There are plenty of problems while integrating Ajax into SharePoint when i was very new to SharePoint. I solved those problems after a long research on Masterpage and Java scrpt.

Here are the steps i followed.
Before change any of the file as mentioned below please take the backup of every file and save it in some safe location.

When i was new to learn SharePoint, i implemented this. I am not completly sure that we need to change the authorizedTypes Tag in web.config of my site ot not, but it works.
The changed section looks like below.

Web.Config changes

<authorizedTypes>
<authorizedType Assembly="System.Workflow.Activities, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Workflow.*" TypeName="*" Authorized="True" />
<authorizedType Assembly="System.Workflow.ComponentModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Workflow.*" TypeName="*" Authorized="True" />
<authorizedType Assembly="System.Workflow.Runtime, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Workflow.*" TypeName="*" Authorized="True" />
<authorizedType Assembly="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System*" TypeName="*" Authorized="True" />
<authorizedType Assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System*" TypeName="*" Authorized="True" />
<authorizedType Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Workflow" TypeName="SPWorkflowActivationProperties" Authorized="True" />
<authorizedType Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Workflow" TypeName="SPWorkflowTaskProperties" Authorized="True" />
<authorizedType Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Workflow" TypeName="SPWorkflowHistoryEventType" Authorized="True" />
<authorizedType Assembly="Microsoft.SharePoint.WorkflowActions, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.WorkflowActions" TypeName="*" Authorized="True" />
<authorizedType Assembly="System.Workflow.Activities, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Workflow.*" TypeName="*" Authorized="True" />
<authorizedType Assembly="System.Workflow.ComponentModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Workflow.*" TypeName="*" Authorized="True" />
<authorizedType Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Workflow" TypeName="SPWorkflowActivationProperties" Authorized="True" />
<authorizedType Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Workflow" TypeName="SPWorkflowTaskProperties" Authorized="True" />
<authorizedType Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.Workflow" TypeName="SPWorkflowHistoryEventType" Authorized="True" />
<authorizedType Assembly="Microsoft.SharePoint.WorkflowActions, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.SharePoint.WorkflowActions" TypeName="*" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="Guid" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="DateTime" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="Boolean" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="Double" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="String" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Collections" TypeName="Hashtable" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Collections" TypeName="ArrayList" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Diagnostics" TypeName="DebuggableAttribute" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Runtime.CompilerServices" TypeName="CompilationRelaxationsAttribute" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Runtime.CompilerServices" TypeName="RuntimeCompatibilityAttribute" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="Int32" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System" TypeName="TimeSpan" Authorized="True" />
<authorizedType Assembly="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System.Collections.ObjectModel" TypeName="Collection`1" Authorized="True" />
</authorizedTypes>

Master page changes:
Second, i removed the onload function from BODY tag. This was causing problem, i am not sure that whether we need to remove or not!!! But it's working as expected.

I removed following section from BODY of master page.
onload="javascript:if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();"

JAVASCRIPT CHANGES:
Third, Go to init.js file in 12\TEMPLATE\LAYOUTS\1033 folder.
find the method spFormOnSubmitWrapper()
in this function, just remove the line return false; in
if (_spFormOnSubmitCalled) statement;
this is because, if that page is already posted back, sharepoint won't post it back again.
but to work AJAX calls, we need to disable it. Because Ajax sends the XmlHttpRequests many times depends on user requests, SharePoint ignore all the calls except the very first call. This is the reason when very first time you integrate Ajax into SharePoint the first call always successful and from the second call no response.
Hope it helps.

MOSS My Calendar web part login problem for different accounts.

Introduction
When i work with my calendar web part in SharePoint i got lot of questions and things happend. I configured every thing correctly in My Calendar web part. i.e. Mail server address, Mailbox.
But, when i open the page which contains calendar web part, it prompts for user name and password of SharePoint site and another for the Calendar login . i.e. login page of OWA application. If i provide the credentials it will work very fine.

Now the problem starts. If the same application is trying to access by another users, other than me then they always failed to login to my calendar web part. This is because, in mailbox i given my mail account, when others try to access the web part, it won't work at all. What they need at that time is they will edit the web part, and will change the mail box entry to their own email address. But this is not possible for all users because all users don't have access to edit page/web part.

My Calendar web part is not working for multiple users in SharePoint 2007. When you add the web part on a page, which mail entry you given in the Mail box that account only can login. I will tell you the reason behind it. My calender web part is developed only for the purpose of showing their calendar events on the my site page. My site usually have access to edit/delete etc for current logged in user, so he will see the content belongs to him. But as per my requirements i want to use the calendar on the site other than the my site pages.

Solution
To solve the above mentioned problem, i created a custom web part to work for any logged in user. You can get this code and build it, add the appsetting variables in the web.cofig and deploy it to your site, You can get the deploy instructions of web part in MSDN.

Web.Config changes:
We need to provide 2 inputs to the web part.
1. Site Url.
2. Exchange Server Url.

Requirements:
We have setup a job [Usually we will setup while installing SharePoint and configuring the SSP] in your SharePoint server Shared services Provider [SSP], to pull user accounts from the Active Directory to Sharepoint profile database. Because below code gets the emailid automatically from the user profile database depending on the logged in user. And places that emailid in Mail Box entry of the my calendar web part.

Usually, when we configure the Profile import, we will give source and configure the schedule too. i.e. Every day night or every week etc… it pulls data from given source [ex: Active directory] to profile database.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint.Portal.WebControls;
using Microsoft.SharePoint.Portal.Topology;
using Microsoft.SharePoint.Portal;
using Microsoft.SharePoint.Portal.UserProfiles;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;namespace MyCalendarWebPart
{
[Guid("15241046-2128-4a1d-b6d5-24c8a67c4d28")]
public class MyCalendarWebPart : Microsoft.SharePoint.WebPartPages.WebPart
{
private OWACalendarPart wpCalendar;
HtmlGenericControl litMsg = null;
HtmlGenericControl roundedCorner;

protected override void CreateChildControls()
{
wpCalendar = new OWACalendarPart();
litMsg = new HtmlGenericControl();
roundedCorner = new HtmlGenericControl();
roundedCorner.InnerHtml = “”;

Controls.Add(configureCalendar());
Controls.Add(litMsg);
Controls.Add(roundedCorner);

base.CreateChildControls();
}

private OWACalendarPart configureCalendar()
{
try
{
//Connect to the portal and get the portal context.
TopologyManager topology = new TopologyManager();
PortalSite portal = topology.PortalSites[new Uri(ConfigurationManager.AppSettings["SiteUrl"])];
PortalContext context = PortalApplication.GetContext(portal);

//initialize user profile config manager object
UserProfileManager profileManager = new UserProfileManager(context);
UserProfile profile = profileManager.GetUserProfile(true);

wpCalendar.Title = “My Calendar”;
wpCalendar.ViewName = “Weekly”;
wpCalendar.CssClass = “”;

// use the profile object to retrieve the properties you need in your company to
// retrieve the mail box name
string workmail = profile[PropertyConstants.WorkEmail].ToString();

wpCalendar.MailboxName = workmail;
wpCalendar.OWAServerAddressRoot = ConfigurationManager.AppSettings["ExchangeServerUrl"];

wpCalendar.Height = “655″;
wpCalendar.Width = “600″;
wpCalendar.ImportErrorMessage = “No EmailID found for your account.”;
}
catch
{
litMsg.InnerHtml = “No EmailID found for your account.“;
}

return wpCalendar;
}

protected override void RenderWebPart(HtmlTextWriter output)
{
try
{
wpCalendar.RenderControl(output);
litMsg.RenderControl(output);
roundedCorner.RenderControl(output);
}
catch (Exception ex)
{
output.Write(ex.ToString());
}
}

public override void RenderControl(HtmlTextWriter writer)
{
base.RenderControl(writer);
}
}
}

Note: In above code i am pulling site url and exchange server url from the appsettings of web.config of the site.

Magic of Page Load and Page Init execution.

Problem:

Not completely understood the Page Life Cycle in ASP.NET.

This is very helpful in big projects, that we need to initialize some object in Master page, page load and try to access the same object in aspx page load, it will give error [Because aspx page load will execure first.]. In this type of problems you faced, please write the same code in init of the master and aspx pages.
Scenario I,
If we have a page called "Default" and a Master page called "DefaultMaster".
Both contains Page_Load events.
When a page request comes to Default page, which Page Load event will call first?
Answer: default.aspx page load.
Scenario II,
The same pages as above with Page_Init event is also present.
Now which Page_Init will call first by .net runtime?
Answer: Master page init event, but not default.aspx page init event.
This is the good point to know that,
All page Init events will process from master page to aspx pages and all page Load events will process from aspx pages to master pages.

Page Init EventPage Load event
1. Execution sequence starts from Init event of Main master page--> Sub Master Page --> ……. -->Requested ASPX page init event.1. Execution sequence starts from Load event of Requested ASPX page --> Sub Master Page --> ……. --> Main master page load event.


Whole Page Life Cycle which contains both events
Master page Init --> Sub Master Page Init --> …. --> ASPX Init --> ASPX Load--> …. --> Sub Master Page Load --> Master page Load.

Show Desktop icon in Quick launch area in Windows server 2003.

I know most of the people are looking for it and by default we don't see the desktop icon in Windows server 2003 or XP..... So, I too faced similar problem when I was new to this IT field. It's simple and easy to implement.

Here are the steps to follow to add it to quick launch area.
  • Open notepad.
  • Copy the below code.
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

  • save the file with the name ShowDesktop.scf some where on your system or on your desktop.
  • drag and drop the file to the Quick launch area.
That’s it!!! you are done. Now, you got what you need. enjoy these wonderful posts!!!
Is this helpful?

How to give specific permissions to a SharePoint list item through C# to a user

SharePoint 2007 allows item level permissions. The is the big change in security trimming from SharePoint 2003. It's really very good and useful in many scenarios like when an item is belongs to others or task assigned to some other person then users can't see other's tasks or they can't edit other's tasks etc.. item level permissions are really good and useful.

Here is a small code, to set specific permissions to a user for a list item.
The below is the exaple from my SharePoint custom workflow to customize the task list.
System.Collections.Specialized.HybridDictionary taskPermissions = new System.Collections.Specialized.HybridDictionary();
taskPermissions[workflowProperties.Originator] = SPRoleType.Administrator;
taskPermissions[taskApprover] = SPRoleType.Administrator;
taskitem.SpecialPermissions = taskPermissions;

taskitem is the task list item. Hope this helps.....

How to check SMTP is working or not.

For testing SMTP server functionality, we have to follow some steps to identify that whether SMTP configured or not. Below are the steps we need to follow to check SMTP server functionality. We are using the command prompt telnet to test the server.

1. open command prompt and type :
telnet <servername> 25
Note: 25 is the port used by SMTP and <servername> is the SMTP server name.
After you hit enter you will get some output like
220 <servername> Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at
Tue, 22 Jan 2008 09:10:27 -0600
It means you got response from the SMTP server and it's the clue that SMTP is setup on the server.

2. For testing response say helo to it.
Type :
helo <servername>
output:
250 <servername> Hello [IP Adress]

3. Now we need to enter the From address of the mail.
Type :
mail from: admin@domain.com
output:
250 2.1.0 admin@domain.com….Sender OK

4. It's time to enter the recepient email address.
Type : rcpt to: someID@domain.com
output:
250 2.1.5 someID@domain.com

5. Now we are left with the data of the email. i.e. subject and body.
Type : data
output:
354 Start mail input; end with <CRLF>.<CRLF>

6. Type:
subject: this is a test mail
Hi
This is test mail body
I am testing SMTP server.

7. Hit Enter, then . and then Enter.
output:
250 2.6.0 <<servername>C8wSA00000006@<servername>> Queued mail for delivery

8. Type: quit
output:
221 2.0.0 <servername> Service closing transmission channel

If you did everything as explained, you will get a mail soon.

Importance of !important property in CSS.

I think in css most of the people don't have idea or complete idea on keyword called "!important".

It will be useful in many scenarios where we have plenty of style sheets and want to overwrite all the styles applied to an element with some other styles. We know that applying styles in HTML for controls hierarchy will be like this, Which styles are very close to the element those will apply finally. i.e. if we apply some styles for a division in css and if we write inline style for the same element, then always inline styles apply. That means the inline styles overwrites all other styles to that element. Like the same, in our css, if we apply different styles to an element in different places and finally if you want to overwrite the styles in a perticular section then you need to use this !important property at end of the style.

We have a scenario like where we need to overwrite all of the styles to a perticular control, there this property will help us.

Ex: .topNav

{

background-color:#990000;

}

.topNav {some other style….}

.topNav

{background-color:#818286 !important;

}

the last css declaration will overwrites all the topnav classes declared and finally it applies the background color of #818286 for top navigation.

How to know the number of days in a month in t-sql

Some times we can get requirement to know the number of days in a given month. For example, while calculating how many days remaining in a month or last day of month or any other scenarios.
Here is a small script that will give you the number of days for given month. Example purpose, i am retrieving month from the current date.

declare @numberOfDaysInMonth int;

set @numberOfDaysInMonth = DAY(DATEADD (m, 1, DATEADD (d, 1 - DAY(getdate()), getdate())) - 1);

How to know month name from month index in t-sql

When I am working with reports, this is what every time I am looking for. Everyone gives date on the report as input, and I want display the month name on the report instead of month index [1-12]. So, how to do it?

please use the below script to get the name of the month by month index.
DateName(month, convert( datetime, '2007-' + cast(month(getdate()) as varchar(2)) + '-01', 120))

Here month(getdate()) returns the current month index from getdate() function. Hope this helps...

Expand Collapse columns in a table SSRS

Problem:

How to make columns collapsible, expandable in table Sql server reporting services.

Solution:

I asked to some people, how to do this, lot of people proposed me to use matrix. But my data is simple data and has 14 columns like firstname, last name, state, city, zipcode, q1, q2, q3, h1,h2, h3 etc…

I need to display the columns q1, q2, q3; h1,h2,h3 expansible and collapsible. By default when user see the report, i need to show only firstname, last name, state, city, zipcode, q1, h1 columns. But the q1, h1 columns with expand, collapse symbols.

When any one clicked to expand i need to show q2,q3, and same for h2, h3.

Here are the steps i followed to make it work.

No Matrix, no other,. i am done with tables only.
Just a small trick

1. Select all the columns that you want to make expandable, collapsible.
2. Hit F4 [Properties window] –> Select Visibility, and in that, set these values, Hidden = true and ToggleItem = ID of the textbox [Where you want to show the Expand[+], Collpse[-] symbols that text box id. in other words parent text box id.]
3. Done, Here we go.

Thursday, 23 April 2009

How To Transfer Custom Ringtone (m4r) File To iPhone (Transfer File Vol.5)

This is volume 5 of the Transfer Files series. In my previous post, i was covered how to transfer files to PC for volume 1, volume 2, volume 3 and volume 4. You may consider to save the custom /downloaded ringtone (m4r) file into iPhone. You can check out my post here on how to make ringtone over 30 seconds using iTunes for free.

The easy way to transfer file is using Disk Aid. DiskAid is a freeware that lets you transfer files between iPhone / iPod Touch and PC. With DiskAid you can manually select all or one by one of your favorite ringtone file by copying and transfer it to PC without using iTunes. See more details about DiskAid and download it here.

Step 1: Connect your iPhone to PC using USB cable. Launch Disk Aid and go to bottom left and click "Root Folder". You're required to confirm it, just select "OK" to confirm.


Step 2: The ringtone file that we would like to copy should be save it at /Root/Library/Ringtones directory. Once you're at "Ringtones" directory just click at menu "Copy File To Device". You'll be required to select file that you want to copy. For example, just locate "I Dont Love You.m4r" file where you just saved it at "new folder".




Step 3: Once your complete, you ringtone file is saved in your iPhone. Close your Disk Aid.


Step 4: Just "slide" to unlock your iPhone and Go to "Setting" > "Sounds" > "Ringtone" to check your ringtone. You should see a new favorite ringtone just added into your "Standard" ringtone section.




Visual Contacts

Category: Social Networking
Price: $0.99
Size: 0.1 MB

Latest version: 1.1.2

It allows you to view your contacts' pictures directly in the list, so you'll be able to find the person you're looking for in a wink. No specific importation nor synchronization operation is needed : contacts are read from your iPhone address book and the picture displayed for a contact is the one present in its contact card.

Functions are available :
  • add, edit, consult a contact
  • view your contacts organized in groups
  • create, rename and delete groups
  • move and copy contacts to a group
  • delete contacts from a group or from the address book
Compatible with iPhone and iPod touch and minimum requires is iPhone 2.0 software update. You can purchase via iTunes link or download cracked .ipa file code:

http://www.appscene.org/download.php?id=594436988


The Most Used iPhone Application!

You probably guess game is the number one type of iPhone applications that people use most often. Today, MediaPost published a great article and mentioned you’re wrong. Game is not the type of iPhone application that are used most. Instead, it’s the Weather application that takes the top spot, followed by Facebook app.

According to an upcoming report on smartphone usage by online market research firm Compete, 39% of iPhone users cited weather-related apps as one of the three kinds of applications they use most frequently. (The Weather Channel app specifically was cited by 13%.)

A quarter of iPhone users said Facebook’s was one of three apps they accessed most often, followed by game apps, at 20%. More than 10% pointed to music-related apps. After that, the more than 100 individual apps or types of apps cited by users fell to single-digit percentages, with most less than 2%.

Is weather app your top most-used application? For me, definitely not. My top 5 most-used iPhone apps are:

  1. Mail
  2. Notes
  3. Safari
  4. Yahoo Messenger
  5. FaceBook

So, what iPhone application do you used most?

Wall Street Journal for iPhone

The Wall Street Journal (WSJ) has finally joined the crowd and delivers its own iPhone application. You can now read The Wall Street Journal directly on iPhone and it’s free.

If you’re a regular reader of WSJ, you should know that WSJ requires subscription to access the full content. Normally, you ‘ll need to pay around US$103 per year for the subscription. Wall Street Journal for iPhone, however, lets both iPhone and iPod Touch user to read most contents for free. You do not even need to register an account on wsj.com. What you have to do is to download and install the app on iPhone.

The iPhone app is quite simple and intuitive. Once you launch WSJ, it’ll direct you to “What’s News” that shows you all the latest headlines. You can also find markets news and editor’s picks in the navigation bar. There is also a “More” section that allows you to read news in different categories (e.g. Tech, Business, Careers, etc). WSJ also delivers news in article, video and audio format. What’s more is the WSJ app provides a feature that lets you save any news. So, you can always come back and read those saved news.






The app is completely free. But it comes with a price. You’ll see an annoying banner advertisement (now it goes to Oracle) just right above the navigation buttons on every screen of the app. I love free apps and I have no objection for a free application to place advertisement. But this one is a bit too big and really impact the reading experience. Probably it’s one of the strategies for WSJ and it will soon launch a premium version that is ad-free.

WSJ is now already available on App Store and you can download it via this direct iTunes link. if you want to read those premium content on WJS.com and avoid subscription, go ahead and download this app.

App Store Hit A Billion Download: Soon

Simply download any iPhone applications from App Store, you’ll automatically join the event and get a chance to win a $10000 iTunes gift card, an iPod Touch, a Time Capsule and even MacBook. The download counter of App Store is rolling really fast. By the time I write this post, it already hit 993,683,545.

It won’t take Apple too long to reach the one billion milestone. So, act quick and start to pick an iPhone app to download. Probably you’ll be the lucky one that downloads the one-billionth iPhone app. Remember to let me know if you win any gift.

Assassin's Creed - Altar's Chronicles

Category: Games
Price: $9.99

Size: 129 MB

Latest version: 1.1.5

Assassin's Creed™, offering rich gameplay and a well-balanced mix of stealth, chaotic action, and riddle-solving exploration in the midst of fully 3D-rendered historical environments of the Crusade's Middle East. Choose your fighting tactics based on 6 weapons for both close combat and long-range attacks: Swords, daggers, grappling hook, and bombs.

Compatible with iPhone and iPod touch and minimum requires is iPhone 2.2.1 software update. You can purchase via iTunes link or download cracked .ipa file code:

http://getapp.info/download/AssassinsCreed-v1.1.1.ipa

Updated: Download cracked .ipa file code for 1.1.5 version:
http://www.appscene.org/download.php?id=729849827
http://www.zshare.net/download/613671821a7fff7a/
http://www.badongo.com/es/file/15463122





Wednesday, 22 April 2009

ParkingLot

Category: Games
Price: $0.99

Size: 2.7 MB

Latest version: 2.2

ParkingLot comes with puzzles grouped into multiple packs. 12 packs in Beginner mode and 2 packs in Advanced mode (each with 40 puzzles) are included. That's 560 puzzles in total for you to enjoy.

Features:
- Original game implementation on iPhone platform
- Incredibly simple game play and clean user interface
- Real parking lots, Real cars in bright and vivid colors
- Stream your own music
- Global scoreboard to keep you stay challenged

Compatible with iPhone and iPod touch and minimum requires is iPhone 2.0 software update. You can purchase via iTunes link or download cracked. ipa file code:

http://ipauploader.com/download/3eea1884ee061a54b257a3df79cb6429/ParkingLot-2.2.ipa
http://www.4shared.com/file/100385812/bba27cdb/ParkingLot-v22.html



iTopoMaps

Category: Navigation
Price: $14.99

Size: 18.8 MB

Latest version: 1.0

Hikers and climbers can now access real full-resolution USGS topographic 1:24k quads with side-scrolling multi-zoom map capabilities. 11 Zoom Levels are available to give full resolution quadrangles. Simply pinch to zoom in or out! Get in close for details, or zoom out to see your whole area.

Features:
- Full Resolution 1:24k USGS Quads
- UTM and latitude/longitude
- Meters and Feet
- Cache maps on your phone!
- Editable Waypoints - Just double tap to place or lookup by name.
- Course and Speed
- Bearing / Distance to Waypoints
- Magnetic Declination Calculations
- Map works in portrait and landscape positions!
- GPS Location and Map following
- Look up GNIS locations from geographic formations (like Summits, Streams, Falls, Cliffs, etc) and add them as Waypoints. Have iTopoMaps label neighboring features
.

Compatible with iPhone and iPod touch and minimum requires is iPhone 2.2 software update. You can purchase via iTunes link or download cracked .ipa file code:

http://www.appscene.org/download.php?id=882758875




Arcade Bowling

Category: Games
Price: $1.99

Size: 7.5 MB

Latest version: 1.3

ARCADE BOWLING features two futuristic sound tracks, state of the art iPhone/iPod touch 3D graphics, and two addictive game modes, Classic and Progressive! In Classic Mode, roll up to nine balls to score as many points as you can. In Progressive Mode, enjoy multiple levels of game play with increasing score plateaus and bonus targets.

Use your fingers and steady aim to flick “laser” balls down the alley and up the ramp into the scoring holes. The further the scoring hole is, the more points you’ll get! Once the laser ball flies off the ramp.

Compatible with iPhone and iPod touch and minimum requires is iPhone 2.2 software update. You can purchase via iTunes link or download cracked .ipa file code:

http://ipauploader.com/download/3406f7ef971ceae7647c0765981d9869/Arcade+Bowlingacirccent-1.3.ipa
http://www.appscene.org/download.php?id=429311441
http://www.2shared.com/file/5417654/3c610f71/ArcadeBowl-v13.html

LimeChat - IRC Client

Category: Social Networking
Price: $4.99

Size: 0.3 MB

Latest version: 1.6

LimeChat for iPhone and iPod Touch is a full featured IRC client. It allows you to chat on the go in the same way as you do on desktop.

Features:
・Quick navigation. You can move around channels quickly by arrow buttons or tapping on the left/right side of log views.
・Arrow buttons indicate events (highlight, new message coming or new PM coming) happened in the other channels. So you can recognize it easily while chatting in another channel.
・Highlights messages and optionally vibrates for your specific words.
・Visual interface for user information (whois).
・Built-in browser for clickable URL links.
・Stay connected while iPhone is locked.


Compatible with iPhone and iPod touch and minimum requires is iPhone 2.0 software update. You can purchase via iTunes link or download cracked .ipa file code:

http://www.appscene.org/download.php?id=756177653
http://www.2shared.com/file/5304066/cf1ff7ca/LimeChat-v16.html


Tuesday, 21 April 2009

How To Make Free Ringtone Over 30 Seconds Using iTunes (Windows)

Actually you can create iPhone ringtone with full length of song (over 30 seconds) using iTunes. Please be aware that these instruction is base on the iTunes 8.0.2. I never try it out with the latest iTunes (8.1 version). You can try these same instruction on iTunes 8.1 and see if it works or not. However these instruction is works with both jailbroken and unjailbroken (original) iPhone and iPod Touch. If you interested to create ringtone only for 30 seconds using iRinger you may read my post here.

Step 1: Launch your iTunes 8.0.2 and select your favourite songs. For Example i'm already select "I Don't Love You" songs.


Step 2: Right click on the desired songs and the dialog box will pop up on the screen. Select "Create ACC Version" and wait for a while for your iTunes convert it to ACC file format. Once complete you will see the second songs with the same title and info but different file format. (Second Picture). Please note that the original songs is in the MP3 format. You have to convert it first to ACC format. If your songs is already in ACC format you don't need to convert it again. Just proceed to the next step.



Step 3: Right click on the second songs which is in the ACC format. The dialog box will pop up and select "Get Info" for information of this songs.


Step 4
: The dialog box will pop up and shows all the information about this songs. Look out at the bottom of the dialog box info. You should note the info about "Where:C:\Document&Settings\hp\My Documents\My Music\iTunes\iTunes Music\My Chemical Romance\Unkown Album\I Dont Love You.m4a". Find and locate this "I Dont Love You.m4a" file follow by directory above.


Step 5: Before your rename it. You have to do some setting on your windows. Go to menu on your top left and select "Tools" and select "Folder Options" and select "View". Go to "Hide extensions for known files types" option and make sure it an unmarked/unchecked condition. This setup is to ensure that you'll be able to rename or change the name of file extension. If this option is already been setup, ignore this step and proceed to the next step.


Step 6: Create a "new folder" and rename it and put it on your desktop. Copy the located file name "I Dont Love You.m4a" and save it into your "new folder" on desktop. Right click on the file name "I Dont Love You.m4a" and dialog box will pop up and select "Rename". Just rename/change the file extension to .m4r and click "Yes" if you're required to confirm it. Once complete, you'll see the icon is change and the file name is become like "I Dont Love You.m4r"





Transfer .m4r file to iPhone Using Disk Aid

Please take a note that you can't be able sync your new ringtone and installed it to your iPhone via iTunes. However transfer ringtone file using Disk Aid is pretty easy. DiskAid is a freeware that lets you transfer files between iPhone / iPod Touch and computer and enables your iPhone as USB thumb drive or external HardDisk. DiskAid is free to download. You can download it directly from here. You can checkout my post here for further details about Disk Aid.

Step 6: Connect your iPhone to PC using USB cable. Launch Disk Aid and go to bottom left and click "Root Folder". You're required to confirm it, just select "OK" to confirm.


Step 7: The ringtone file that we would like to copy should be save it at /Root/Library/Ringtones directory. Once you're at "Ringtones" directory just click at menu "Copy File To Device". You'll be required to select file that you want to copy, just locate "I Dont Love You.m4r" file where you just saved it at "new folder".




Step 8: Once your complete, you ringtone file is saved in your iPhone. Close your Disk Aid.

Step 9: Just "slide" to unlock your iPhone and Go to "Setting" > "Sounds" > "Ringtone" to check your ringtone. You should see a new favorite ringtone just added into your "Standard" ringtone section.