Difference between revisions of "Customizing the layout of custom fields on listing submit page"

From JReviews Documentation
Jump to: navigation, search
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
In this tutorial we'll show you how to display certain custom fields in the same row on the listing submit form.
+
This article will 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:
 
By default, custom fields are outputted one per row, like this:
Line 5: Line 5:
 
[[File:SubmitFields.png]]
 
[[File:SubmitFields.png]]
  
 +
Sometimes it is a good idea to display related custom fields in one row. We can do that using css because each field container has its name as class: "jrFieldDiv jrFieldname".
  
If you have a lot of custom fields, the form can become very long.  
+
In this example we'll make jr_country, jr_state and jr_city fields to display in one row.
  
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.
+
Add all styles to <span style="color: blue">custom_styles.css</span> file in your theme.
 
+
 
Open this file:
+
The first field in the row be floated like this:
*<span style="color: blue">\com_jreviews\jreviews\views\helpers\custom_fields.php</span>
+
<source lang="css">
 
+
.jrForm .jrFieldDiv.jrCountry {
 
+
    float: left;
and replace this line (line 433):
+
}
<source lang="php">
+
$inputs["data[Field][$fieldLocation][$key]"]['div'] = 'jr_fieldDiv';
+
 
</source>
 
</source>
  
with this one:
 
<source lang="php">
 
$inputs["data[Field][$fieldLocation][$key]"]['div'] = 'jr_fieldDiv ' . $value['name'];
 
</source>
 
  
 
+
For the second and third field we'll use this to output them in the same row as first field:
Now every field container div will have this class: "jr_fieldDiv jr_fieldname".
+
<source lang="css">
 
+
.jrForm .jrFieldDiv.jrState,
 
+
.jrForm .jrFieldDiv.jrCity {
Next we'll align the fields by adding styles in this css file:
+
    float: left;
*<span style="color: blue">\com_jreviews\jreviews\views\themes\{theme_name}\theme_css\form.css</span>
+
    clear: none;
 
+
    margin-left: 30px;
 
+
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;':
+
<source lang="php">
+
.jr_form .jr_fieldDiv.jr_tvtype {
+
float: left;
+
 
}
 
}
 
</source>
 
</source>
  
  
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:
+
And then we should make the 4th field to start from a new row:
<source lang="php">
+
<source lang="css">
.jr_form .jr_fieldDiv.jr_screensize {
+
.jrForm .jrFieldDiv.jrAddress {
float: left;
+
    clear: left;
clear: none;
+
margin-left: 30px;
+
 
}
 
}
 
</source>
 
</source>
  
  
You can add this anywhere in the forms.css file. Instead of jr_tvtype and jr_screensize use the names of your custom fields.
 
  
 
+
Now the fields are displayed like this:
Now the fields will be displayed like this:
+
  
 
[[File:SubmitFields2.png]]
 
[[File: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):
 
 
<source lang="php">
 
.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;
 
}
 
</source>
 
 
 
[[File:SubmitFields3.png]]
 
  
  

Latest revision as of 14:03, 14 August 2013

This article will 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

Sometimes it is a good idea to display related custom fields in one row. We can do that using css because each field container has its name as class: "jrFieldDiv jrFieldname".

In this example we'll make jr_country, jr_state and jr_city fields to display in one row.

Add all styles to custom_styles.css file in your theme.

The first field in the row be floated like this:

.jrForm .jrFieldDiv.jrCountry {
    float: left;
}


For the second and third field we'll use this to output them in the same row as first field:

.jrForm .jrFieldDiv.jrState,
.jrForm .jrFieldDiv.jrCity {
    float: left;
    clear: none;
    margin-left: 30px;
}


And then we should make the 4th field to start from a new row:

.jrForm .jrFieldDiv.jrAddress {
    clear: left;
}


Now the fields are displayed like this:

SubmitFields2.png