<?xml version="1.0"?>
<record><wiki id="wiki?page_id=52">
	<page_name>How_to_Add_Custom_Sections_to_View_Tab</page_name>
	<page_id>52</page_id>
	<page_title>How_to_Add_Custom_Sections_to_View_Tab</page_title>
	<content>==How to Add Custom Sections to the View tab==

[[toc]]

The &apos;&apos;View&apos;&apos; tab is intended to give the user a detailed view of the contents of a record.  By default it shows the values of each non-empty field grouped into their appropriate field groups.  It also shows the most recent 5 related records from each relationship in the record.  You can also add your own sections by implementing the [[section__xxx]] method of the delegate class.

==Example 1: A &quot;Hello World&quot; Section==

We&apos;ll start by adding a simple section that simply displays &quot;Hello World&quot; to the user.  In the delegate class for your table, add the following method:
&lt;code&gt;
function section__hello(&amp;$record){
    return array(
        &apos;content&apos; =&gt; &apos;Hello World!!!&apos;,
        &apos;class&apos; =&gt; &apos;main&apos;
    );
}
&lt;/code&gt;

Now if you reload our application and click on the &quot;View&quot; tab for any of the records in the database, you&apos;ll notice a section labelled &apos;&apos;hello&apos;&apos; with the text &apos;&apos;Hello World!!!&apos;&apos; in it.

Let&apos;s dissect the above code so that we can better understand what is going on here.

# The function &apos;&apos;section__hello()&apos;&apos; defines a section named &apos;&apos;hello&apos;&apos;.  If you wanted to define a section named &apos;&apos;foo&apos;&apos; you would call the function &apos;&apos;section__foo()&apos;&apos;
# This function returns an array with the keys &apos;&apos;content&apos;&apos;, and &apos;&apos;class&apos;&apos;.
# The &apos;&apos;content&apos;&apos; key points to the actual HTML content of the section.  In this case it is simply the text &apos;&apos;Hello World!!!&apos;&apos;.
# The &apos;&apos;class&apos;&apos; key defines where the section should be displayed.  It accepts values of &apos;&apos;left&apos;&apos; and &apos;&apos;main&apos;&apos; only.  If it is set to &apos;&apos;left&apos;&apos;, then the section will be displayed in the left column.  A value of &apos;&apos;main&apos;&apos; indicates that it should be displayed in the main column.

===Customizing the Section Label===

&apos;&apos;hello&apos;&apos; is a boring label, so let&apos;s add our own custom label by adding the &apos;&apos;label&apos;&apos; key to the array returned by our method:
&lt;code&gt;
function section__hello(&amp;$record){
    return array(
        &apos;content&apos; =&gt; &apos;Hello World!!!&apos;,
        &apos;class&apos; =&gt; &apos;main&apos;,
        &apos;label&apos; =&gt; &apos;Message of the Day&apos;
    );
}
&lt;/code&gt;

Now if you load the view tab of your application, you&apos;ll notice that the section has a heading &quot;Message of the Day&quot;.

===Customizing the Section Order===

A section can also specify an &apos;&apos;order&apos;&apos; attribute to define the order in which this section should appear.  It defaults to 0 which may cause the section to appear at the top of the view tab.  You can push it to the bottom of the view tab by assiging a higher number to the &apos;&apos;order&apos;&apos; attribute:
&lt;code&gt;
&lt;code&gt;
function section__hello(&amp;$record){
    return array(
        &apos;content&apos; =&gt; &apos;Hello World!!!&apos;,
        &apos;class&apos; =&gt; &apos;main&apos;,
        &apos;label&apos; =&gt; &apos;Message of the Day&apos;,
        &apos;order&apos; =&gt; 10
    );
}
&lt;/code&gt;

Now if you reload the view tab you&apos;ll notice that the section has moved to the bottom of the page.</content>
	<keywords></keywords>
	<language>en</language>
	<original_page>0</original_page>
</wiki></record>