Content management of multilingual websites in SharePoint 2013

We know that content management system (CMS) is an application to manage the content – adding, editing, deleting, modifying, organizing, maintaining, and publishing the content on the website. But what if you are planning for multilingual sites and have to manage the content in multiple languages? SharePoint 2013 have features that enable users to view sites in their preferred language. The content management of a multilingual website in SharePoint 2013 allows for the following- Content made available to the users in more than one language. Create, manage and read content in different languages. Install language packs to create multilingual sites. Here in this blog, we will discuss the content management of an Arabic website in SharePoint 2013 Basic Approach Basic approach of the content management process is same for both English and Arabic websites, but UI of the website pages and the internal pages of the SharePoint would be mirrored. The process and pages in Arabic language would be same, but the language and options/links/icons are placed as mirror of the English pages. Let us see how the process works for Arabic language. Open the Site Contents libraries Login as admin, the site contents libraries will open up where you can see the libraries folder. Go to the Pages folder where you can create a new HTML page. Add a web part, or if the page is available in Pages list then edit the page and upload the content. Site Contents page contains images, documents and other apps to hold particular content types. Create a new HTML page In Pages list libraries, there is a FILES tab Click on the FILES tab. Click on the New Documents option as shown in the screenshot. Select Page option which is given as the first option in the drop-down. Click on Page option it will open a Create Page form. Fill the Title, Description and URL Name. Select the page layout. Click Create. The newly created HTML page ‘Test-Page’ will be displayed in the list of pages, as shown below: Open page in edit mode In Page list, do the following: Click on the HTML page that needs to be edited. After opening the page it will show the Edit option as shown in the below screenshot. Click on the Edit option to view the page in edit mode. Click on edit icon to open the HTML editor. Upload HTML code In the edit mode, perform the following steps: Click on Edit icon to open the HTML editor pop-up. Write the HTML coding in the editor and click on OK button. The content can be viewed in the preview page to check if the uploaded content is displayed as intended or not. If any changes are required to be made, then repeat the process for editing. Check-In and approve the page If the uploaded content looks fine, then check-in the page and approve it to display it on the web page. There is a check-in option in the edit mode. Click on Check-in button. You can also check-in by selecting the page, clicking on the three dots and selecting check-in option. The other way to check-in could be: Go to the FILES tab and click on Check-In option. Click on Approve/Reject option. Select the page and click on Approve/Reject option. How to publish images and documents on the website SharePoint provides an image template that allow image file formats like JPG, JPEG, PNG, and documents template that allow MS documents, pdf files, etc. By using the URL path of the images and documents in HTML code, you can publish the images and documents on webpages. Give the path of the image which is saved in PublishingImage folder library. The HTML code can be written as: After saving, check-in and approve, the web page looks like this: Things to remember: English language displays in LTR form (Left to Right) and Arabic language displays in RTL form (Right to Left), so it is difficult to add/edit the content in Arabic language. You can see the screenshot of the HTML code with Arabic content in the Share Point HTML editor. The best practice would be to copy all the Arabic content in any of the HTML editors available and edit it there, as in the HTML editor, the code would be shown in normal form as LTR. Thus, the content can be easily updated there and copied to the HTML editor of SharePoint 2013. Below is the screenshot of any other HTML editor where Arabic language and HTML code is visible left to right. Similarly, content can be updated for any other language, to support users from different regions preferring different languages.
SharePoint 2016 migration checklist

In a previous blog post I discussed new and improved SharePoint 2016 features, migration paths, and hardware/software requirements, when preparing for SharePoint 2016 upgrade. Here I share a checklist that would help you confirm that you follow all steps necessary to prepare for an upgrade, start the upgrade, and perform post-upgrade steps. The basic steps are discussed as under – Prepare detailed inventory of environment Clean up old environment Test content Prepare destination environment and analyze new environment configurations Communicate with users Start migration Read only mode until migration completes Post migration, third party tools and resources Prepare detailed inventory of environment It is always beneficial to have a detailed inventory of all assets and customizations. This helps in making better decisions and estimates as you prepare for the migration process. Clean up old environment Prior to the upgrade, it is essential to clean up the old environment including any unnecessary data, web parts, etc. It may take some time but it allows you to get away with any orphaned sites/data and re-organize useful things. Test the process This stage includes testing all the components to check all things are well-organized or if there are any issues there in. Prepare destination environment and analyze new environment configurations This step includes planning and structuring new home, according to the requirements: Mapping destination’s architecture Optimization of new SharePoint server’s performance Configuration of all web applications Back up everything Checking databases for corrupt data and run a test migration Mapping a plan for the metadata of content Communicate with users Persuading users to accept the migration is one of the major challenges. To make it successful, you will need to make sure they know what is going on and why. Share estimated timeline of your migration efforts. Start migration If migrating from SharePoint 2013 on premises, perform database attach upgrade to bring everything “as-is” and use a third party tool to granularly migrate and restructure as you move. If migrating from an earlier SharePoint version, strongly consider third party tools. The use of these tools, combined with “Paragon’s SharePoint & migration expertise”, will help any client gain control over their migration & help them put in custom efforts suiting the needs. Read only mode until migration completes Putting the system in read-only mode until migration completes is also an important aspect. This ensures that the product is delivered only when it is ready, and no room for confusions. Post migration, third party tools and resources The post migration process includes time to time review, regular communication with users, and efforts involved in making the migration successful.
Preparing for a SharePoint 2016 migration

As SharePoint server 2016 is released, SharePoint migration has become a hot topic for many organizations. SharePoint server 2016 has come with many enhancements, encouraging organizations to migrate to this new version. What are the new and improved features in SharePoint? I have listed the major add-ons in SharePoint 2016 over the previous versions as below: Cloud accelerated experiences Easier hybrid features and experiences available for easier upgrade One Drive for Business and Delve Predictive analytics File sharing improvements File size is increased up to 10GB for uploading purposes. Earlier, it was around 2GB Durable links Document connectivity through One Drive Size of content databases reach TBs> Improved user experiences Improved mobile experience Personalized insights Zero downtime patching >Data loss prevention capabilities Possible Migration Paths Direct upgrade from SharePoint 2013 to SharePoint 2016, as hinted by Microsoft. Upgrade from SharePoint 2010 to SharePoint 2016- As direct migration from SharePoint 2010 to SharePoint 2016 is not yet confirmed, migration from SharePoint 2010 to SharePoint 2013, and then from SharePoint 2013 to SharePoint 2016 is an option without much hassle. Moreover, there are two possible ways – Clean install versus In-place upgrade Perform an in-place upgrade- According to Microsoft, SharePoint 2016 can be installed directly on the top of an existing installation of SharePoint 2013. These migrations consider that organizations are not moving wholesale to office 365. Many of the users are still operating on on-premises. Organizations having older versions of SharePoint, i.e. other than SharePoint 2013 will need to perform “leapfrog SharePoint migration”. This technique includes- Upgrading from SharePoint older version to SharePoint 2013. Then, upgrading from SharePoint 2013 to SharePoint 2016. Clean Installation- The second possibility is “clean installation”, attaching a content database from previous SharePoint deployment. This process is relatively straight forward and is same as the process for upgrading to SharePoint 2013 from an earlier version. The process goes as this – The first step in the migration process is to create a SharePoint 2016 farm. As the new SharePoint 2016 farm is created, the content databases be copied from SharePoint 2013 to SharePoint 2016 and attached. When the attachment is done, the administrator should then upgrade any service applications, and also upgrade the content databases. Finally, the site owners would need to upgrade their site collections. Below are the hardware and software system requirements to install and run SharePoint 2016: Hardware Requirements: – Database Server- 64-bit processor (4 cores), 8-24 GB RAM, 80 GB Hard Disk SharePoint Server- 64-bit processor (4 cores), 8-12 GB RAM, 80 GB Hard Disk Software Requirements: – Database Server- Windows Server 2012 R2- with latest updates SharePoint Server- Windows Server 2012 R2- with latest updates Hope you find these installation details helpful. You can also read my blog on SharePoint 2016 migration checklist, which may help you in preparing for a SharePoint 2016 migration.
Create custom list template in SharePoint 2007

A SharePoint 2007 list template can be easily developed to reuse it across an organization. In lieu of recreating the list every time you want to use it, a SharePoint list template can be created once, which can then be used whenever creating a new list. In this blog, we will learn to create a custom solution for SharePoint 2007 that will have custom content types, using which we can create a custom list template. To start with, we need to install WSPBuilder on our development server that will help us to create custom solution in Visual studio 2005. Once we are done with configuring the WSPBuilder tool on our server, we can start with a custom solution creation. Open Visual studio and go to File > New > Project that will open a window, where we can see WSPBuilder in Project types. Select WSPBuilder project template from the left window, and name the project as SP2007Demo and click OK. As we are using the WSPBuilder project template for our solution, it by default provides a solution structure that can be used for SharePoint site. Here, we do not need to create the whole structure on our own. Below is the solution structure we get: Now to create a custom list template for SharePoint, we need to follow the steps below: Create custom site columns Create custom site content types Create Custom list template Create custom site columns In this section, we are going to create a few custom fields/columns which will be a part of the list template we are planning to create. To add custom fields in SharePoint site, we need to use the SharePoint feature through which we can deploy our custom fields on SharePoint site. So let’s create our first SP2007 feature. Right click on Project and select Add > New Item. A dialog box will open as below: Select Blank Feature and name it ConfigurationFeature, and click on Add button. It will open another dialog to setup feature settings. Set Scope value as Site. This will add our first feature in SharePoint solution: Edit the element.xml file with following values: We have created an XML structure for our custom fields, which are going to be deployed on SharePoint 2007 site through ConfigurationFeature feature we added. Note: To generate ID you can use the Create GUID feature available under Tools in Visual Studio. Now let us deploy this feature on our site and see do we get these columns in our site or note. To deploy the solution on SharePoint, right click on Project and under WSPBuilder, click on Deploy. Once the deployment gets done, go to the site and check site collection feature where you will be able to see a custom feature in list. Click on Activate button and go to Site Settings > Site Columnspage, which will show all the site columns available in your site. Select Custom Columnsgroup from dropdown available on right side on page to filter the list. There we can see the fields we have added through our custom feature. Create custom site content types Once we are done with creating our own custom fields for SharePoint site, the next step is to create a site content type. So what exactly a site content type is and what’s the use of it? The answer is, Content Type gets used for virtual grouping of SharePoint columns or fields and use it as a reusable component. Content type contents reference of all the fields which you want it to be part of that Content Type. Now let’s create a custom content type with reference of the above fields we have created. Add one more feature like we did in Create custom site columns section as name EmpContentTypeFeature and the scope of that feature will be Site level. Once the feature gets added update the elements.xml file as below screenshot. In the above screenshot, as we see, we have referenced the custom fields we have created by using their ID and Name properties. Once you deploy the solution on your site and activate EmpContentTypeFeature feature, you will be able to see the EmpContentType content type by going at Site Settings > Site Content Type page. This content type can be used for any list, library or pages. Create custom list template After creating custom content type which is referencing our custom fields only, we will leverage that content type and create a list template out of it. To create custom list template first we need to do is add a new feature in our solution with name EmpListTemplate and update the element.xml file of that feature as below: Here we have used this XML file to create a custom list template with name as EmpListTemplate with some predefined properties like i.e. Name, Type, BaseType, etc. Now, for creating this custom template we provide schema, to do so we need to add a folder in this feature with name EmpListTemplate that is same as the Name property in element.xml file. In that folder, add an XML file with the name schema.xml. Now once you add that, your solution will look like this: To update the schema.xml file, we have to use a predefined format that will contain the definition for list templates i.e. View, Content Type, fields, etc. We can get the format from the following location: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURESCustomListCustListschema.xml. Copy the file content in our solution schema.xml file and update the file as below: Once we deploy the solution on our site, we can see a custom template once we go to View All Site Content > Create.
SharePoint 2016 – new, improved and deprecated features

Unlike the early days of the Web, today, content management system (CMS) is a combination of multiple tightly-integrated systems. CMSs are evolving everyday with new features. The SharePoint 2016 is the best example of it, where the technology is bridging the gap between the data residing inside organizational premises and that outside it along with the implementation of viewership and rights to it. SharePoint 2016 has evolved in capturing, storing and maintaining large volumes of data. The changes made and the new features list is quite vast; however, here I explain some of them which may come handy.
How the Intelligent email sorter for SharePoint works

IESS application helps organizations to get their email documents stored in SharePoint library and a lot more with no or little human efforts. IESS app works in background on your mailbox and takes the necessary actions like storing attachments in SharePoint libraries or creating tasks in SharePoint task lists as well as in Outlook, as per the sorting rules you define. Let us take an example of the HR department of an organization, where hundreds of emails are received with attachments, like joining documents, policy papers, resumes, etc. HR executives have to go through each email and based on the email subject line or body content, they have to copy the attachment and upload it into appropriate folders or if they are using SharePoint in their organization, they might store them in respective libraries. If the HR department is receiving five to ten emails a day, then the effort involved and cost to organization is reasonable. But what if they are receiving ten to fifteen emails every hour. You can understand the overburden and effort costs to the organization. Here comes the role of IESS, which will help the department to complete these activities without much manual effort, reducing effort costs. Now here, you would want to know how the intelligent email sorter app for SharePoint would accomplish this. Below are the two parts of this application: IESS configuration tool IESS SharePoint package IESS configuration tool This tool will help you to configure IESS in your environment and store the relevant information related to mailbox and SharePoint site for email sorting and storing in SharePoint library. As you can see in the above screen, it requires information like ‘Site URL’, ‘User Name’ and ‘Password’ to access the SharePoint site for completing the necessary actions. Also, it gives you an option to choose between SharePoint online site and on premise, which means that this application can work for both O365 and on premise. There is a ‘New Rule List Name’ property, where you can mention the name of your Rule list which will be created in your SharePoint site for email sorting rules storage. Mailbox related information like ‘Email Server’, ‘Email Address’, ‘Email Password’, etc., to allow the application to access your Mailbox for email reading and sorting. You can define the job scheduler interval time as the ‘Scheduler Duration’ property. IESS also gives you the option to automatically maintain your Mailbox by selecting ‘Archive Email’ option, which will automatically delete the emails which are older than the date you specify through the tool. This will be a one-time activity which needs to be done for your organization. IESS SharePoint package To configure the IESS tool, you need to deploy a package on the SharePoint site, which will not take much time. Once the deployment gets done, the package will provide you an interface where you can define the rules. Through the rule tool, you can create different rules for sorting and completing the relevant actions according to your specific needs. As visible in the screen, there are four tabs as ‘Conditions’, ‘Actions’, ‘Exceptions’ and ‘Metadata’, for rule creation. Here are these tabs described: 1. ‘Conditions’ tab – If you want to create a rule for reading specific emails with keywords like ‘Resume’ in the subject line, then you can select the second condition – ‘subject contains specific word as’. Once you select that option, it will populate one textbox next to the label where you can provide the keyword ’Resume’. 2. ‘Actions’ tab – It will decide what action needs to be taken if the email satisfies the rule. There are two options in ‘Actions’, where first the one will populate all the existing libraries of your SharePoint site in a dropdown to store the attachments in that library and second option will show all task lists in a dropdown to create a task. 3. ‘Exception’ tab – It allows to create parameters to avoid emails coming from a specific account or having a specific keyword in the email subject or body. 4. ‘Metadata’ tab – It will auto-populate the metadata fields of the selected listlibrary under ‘Action’ tab. This will allow you to provide the default values for the attachments in library. Once you are done with all the tabs, you have to provide a unique name to this rule and you can save it in your rule list. You can view the existing rules by clicking on ‘View Existing Rule’ link, which will show you all the available rules under the selected Rule List. You can edit or delete the existing rules as per the requirement. Once you are done with the rule creation, it will be applied to all the emails through IESS job as per the scheduler interval. And there you go! IESS will do it all to simplify your email workflow.
Save multiple tags and links with descriptions in SharePoint

In SharePoint you can save and get the information from list easily using AJAX call, CSOM and JavaScript. While saving multiple tags to the column of type ‘managed metadata’ with hyperlinks and descriptions for each metadata, common problems faced are– If tags are saved first, then rest of the items vanish If other information is saved first, then ‘tags’ column is left blank Many a times URLs with their descriptions get disorganized Solution to the above problems is provided below to save multiple tags and URL with description successfully. Remember that for saving tags, their GUID value is essential. Here ‘oListItem.update’ is executed for all the items to be saved and at last ‘executequeryasync’ for finally saving it to the SharePoint list after the loop. Steps to follow – Setup context and load web Load taxonomies field Save URL and description Save tags having their GUID value and NAME value Update every time oListItem till the length of the item At last, execute clientContext.executeQueryAsync after all the items are loaded This will save all the information without leaving any of the details blank. Below is the code for the implementation of the same. ‘ListName’ is the name of the list in which the data is to be saved. Setup context & load web var clientContext = new SP.ClientContext.get_current(); var oList = clientContext.get_web().get_lists().getByTitle(ListName); Load properties of tag field var field = oList.get_fields().getByInternalNameOrTitle(TagColumnName); var txField = clientContext.castTo(field, SP.Taxonomy.TaxonomyField); clientContext.load(txField); clientContext.executeQueryAsync(function() { var urlLink = ”, description = ”; Loop to save multiple hyperlinks with description for (var j = 0; j < resourceURL.length; j++) { urlLink = resourceURL[j][0]; description = resourceURL[j][1]; var itemCreateInfo = new SP.ListItemCreationInformation(); var oListItem = oList.addItem(itemCreateInfo); var urlValue = new SP.FieldUrlValue(); urlValue.set_url(urlLink); urlValue.set_description(description); This code is to save multiple tags to metadata column. For saving tags, their GUID and NAME value is essential. if (txField.get_allowMultipleValues()) { var terms = new Array(),termValueString ,guid = [],name = []; guid = selectedguid.split(“,”); name = selectedValue.split(“,”); for (var i = 0; i < guid.length; i++) { terms.push(“-1;#” + name[i] + “|” + guid[i]); termValueString = terms.join(“;#”); } var termValues = new SP.Taxonomy.TaxonomyFieldValueCollection(clientContext, termValueString, txField); txField.setFieldValueByValueCollection(oListItem, termValues); } oListItem.set_item(‘Link’, urlValue); Update Listitem oListItem.update(); clientContext.load(oListItem); } clientContext.executeQueryAsync(function(){ alert(“Success”);}, OnFailure); }, onFailure ); Points to remember while saving multiple taxonomies with multiple URLs and description: First load properties of tag field and upon success, save tags having their GUID value Execute client context only after all the items are updated in the loop
Auto-organize and route emails in SharePoint with IESS

Business documents often originate in the form of email attachments from different sources and need to be stored quickly and accurately at dedicated destinations, to enable easy processing, searching and collaboration. Functions such as finance receive statements, proposals, reports and other documents in multiple email accounts every day. Organizing and routing these email messages involve a multi-step process to filter and classify emails and documents sent and received. SharePoint is known to be the best in class records and collaboration management solution. It organizes information and makes it easily accessible and shareable. Organizations are increasingly adopting SharePoint technology on premise or in the cloud. Recognizing the need for a unified solution combining the functionalities of email and SharePoint, Advaiya brings Intelligent Email Sorter for SharePoint (IESS), an intelligent solution to email sorting challenges faced by organizations in the processing of content received in the multitude of emails each day. Let us consider a scenario where the head office of a large conglomerate receives many financial proposals, operational reports, and other types of documents. These are received in various email accounts of executives across the team, and thus leading to a situation that these documents are placed at a plethora of locations, organized in different ways, making them difficult to find and process. With ‘IESS –Intelligent email sorter for SharePoint’ email sorter app, the rules for classification and extraction can be set, and rest will be taken care of by it. The app will then automatically sort and filter out important information based on the defined rules and process them in the appropriate SharePoint library with relevant metadata such as – ‘unit name’, ‘revenue till month ’, forecasted revenue‘ and so on. These metadata further trigger the relevant dashboard and report. All the manual efforts involved in monitoring the email account to extract, filter information, attachment categorization, dashboard creation, etc., can be automated with IESS, in turn increasing employee productivity and overall business efficiency. For more information on the email sorter app, you can visit – Intelligent email sorter for SharePoint (IESS)
Implementation of SharePoint site column ordering

SharePoint has column ordering feature to set position of columns in list. Using that we can position columns as required – first, second, and so on. This feature can be implemented programmatically as done below. There can be many ways to implement this, but the one described here is the most efficient and convenient and can be used for many purposes like page ordering, product arrangement in store, etc. General steps to follow- 1. Dynamically create dropdown having positions as options 2. ‘Focus’ event triggered will save the previous position of item 3. Choose from dropdown the new value to set 4. ‘On Change’ event will be fired and will get new position (this.value) 5. First loop will match the new value in the list and set it to previous one 6. Second loop will update the whole list in dropdown with new positions Consider an example – If you need to change the order of pages for particular chapter or book. In a particular book, there are many chapters, and every chapter have various subpages. Now if you need to change their position, from the dropdown having order of all the pages in that chapter, simply select the order where you want to keep the page. At the same time other page will be set to its position same as we do ‘column ordering’ in SharePoint list. Similarly, for particular chapter and selected parent page there are many subpages, so you can adjust position of subpages from the corresponding order dropdown. This will help to arrange pages within a particular chapter and main page easily as swapping is done here. For example – if we set page at second position to first position, then page at position one will automatically be set to second position. Below is the code where dropdowns are created dynamically and on the change of one page order, its value is swapped with other page pageorder. Focus event will get current value of page order and onchange event will change and swap values Main implementation here is swapping done on the change of position same as SharePoint column ordering and two events triggered every time you change value – ‘focus’ event to get previous value before change and ‘onchange’ event to get new value and perform swapping.