Custom Fields
Last updated: 20 April 2022In this tutorial, we'll guide you through how to create your own custom fields.
- Add a price field in the TEXTman article form.
- Display the price field's value on the article in the frontend.
Create template overrides
To add pricing information in the article you need to create some template overrides.
Front-end
You need to create two template overrides for the front-end of your website:
- One where editing takes place (TEXTman article form)
- One for displaying the Joomla article
Create the following new directories in your template's html directory called com_textman and com_content:
/templates/[template_name]/html/com_textman/article/ /templates/[template_name]/html/com_content/article/
Copy the following files into these new directories respectively:
/components/com_textman/views/article/tmpl/form_content.html.php /components/com_content/views/article/tmpl/default.php
Back-end
Assuming you are using the default Joomla 4 admin template, which is Atum. (for Joomla 3 the default admin template is called Isis)
Create a new directory in your template HTML directory called com_textman:
/administrator/templates/atum/html/com_textman/article/
Copy the following into this new directory:
/administrator/components/com_textman/views/article/tmpl/form_content.html.php
Edit form layouts
Use the "parameters" property of the article entity to store the price information.
Open the following layout files in administrator:
/administrator/templates/atum/html/com_textman/article/form_content.html.php
and frontend
/templates/[template_name]/html/com_textman/article/form_content.html.php
Place the following code somewhere inside the <form> tag:
<? //price ?>
<? if ($article->isParameterizable()): ?>
<div id="k-js-commerce" class="k-tab">
<div class="k-form-group">
<label for="param_price"><?= translate('Price') ?></label>
<input class="k-form-control" type="text" name="parameters[price]" id="param_price" value="<?= $article->getParameters()->price ?>" />
</DIV>
</div>
<? endif ?><br>
Show the price information
Open this frontend template file:
/templates/[template_name]/html/com_content/article/default.php
Place the following markup where you would like to show the price:
<dl class="commerce-container">
<dd class="field-entry ">
<span class="field-label ">Price: </span>
<span class="field-value"><?= $params->get('price') ?></span>
</dd>
</dl><br>