Customizing the layout of custom fields on listing submit page

From JReviews Documentation
Revision as of 15:13, 9 March 2010 by Jreviews (Talk | contribs)

Jump to: navigation, search

In this tutorial we'll show you how to display certain custom fields in the same row on the listing submit form.

By default, custom fields are outputted one per row, like this:

SubmitFields.png


If you have a lot of custom fields, the form can become very long.

We can make the fields display in the same row using css, but first we need to add a unique class to each field's container div.

Open this file:

  • \com_jreviews\jreviews\views\helpers\custom_fields.php


and replace this line (line 433):

$inputs["data[Field][$fieldLocation][$key]"]['div'] = 'jr_fieldDiv';

with this one:

$inputs["data[Field][$fieldLocation][$key]"]['div'] = 'jr_fieldDiv ' . $value['name'];


Now every field container div will have this class: "jr_fieldDiv jr_fieldname".


Next we'll align the fields by adding styles in this css file:

  • \com_jreviews\jreviews\views\themes\{theme_name}\theme_css\form.css


We'll make the Type and Screen Size fields (from the picture above) display in the same row.

The first field in the row must have a 'float: left;':

.jr_form .jr_fieldDiv.jr_tvtype {
	float: left;
}


for the second and other fields you want to display in the same row also add 'clear: none' and some margin for the space between them:

.jr_form .jr_fieldDiv.jr_screensize {
	float: left;
	clear: none;
	margin-left: 30px;
}


Now the fields will be displayed like this:

SubmitFields2.png


If we add 'float: left' and 'clear: none' to other two fields, they will also be displayed in the first row (if there is enough room):

.jr_form .jr_fieldDiv.jr_tvresolution {
	float: left;
	clear: none;
	margin-left: 30px;
}
 
.jr_form .jr_fieldDiv.jr_aspectratio {
	float: left;
	clear: none;
	margin-left: 30px;
}


SubmitFields3.png