Skip to content

029 How to overwrite the custom fields

Amigo edited this page Jun 17, 2019 · 17 revisions

HOW TO OVERWRITE THE CUSTOM FIELDS

Using Default Fields With Custom Code

It often happens that you would like to use some of the default fields differently than how component builder is actually implementing it. Now what is the default fields? 00:00:12 If you go to add a new admin view or if you go to an admin view that already exists. You'd see that there is this little note above adding fields. It says that the ID, the asset_id, the state, the access, the ordering, the created_by, the date_created, modified_by, date_modified, checked_out, Check_out_time, version, hits, metakey, 00:00:41 metadescription, and metadata is already added to the view. These are your default fields that always gets added to the view even if you don't create them. In fact you don't need to create them. I have seen that sometimes you might want to display some of these fields in a different area of the application. Currently the id field and the 00:01:20 state field is the only field that is been shown by default in the list view.

  • Example Of Shoen Default Fields in List view

Here you can see there is the id field and there is the state field and the ordering field. The ordering field doesn't show the order number you basically click on that button there(see video), then you can move them and order them 00:01:45 All that is done by default. The other values are not displayed in the list view. I had a client once saying to me that they would like to actually see the date that something was created, and also by whom it was created. I had to adapt component builder so that those things can also be overwritten. And this is exactly what we've done. What we have done is if you create a field in component builder, as you would normally create a field and you give it 00:02:23 any of these names, created by or created date, but exactly the same name. Then it actually will overwrite the default.

  • Example Create_By Field In View

In this specific job order view, there is a field created-by. I can open that in a new tab, there is also a field created-date. let's open that one. 00:02:57 So in the field that I used the name and created_by, it's a user is the type of field. The label is created by, and 'the user that created this' is the description. 00:03:26 That's all that's needed for a user type. Then in the created-date, it's a calendar type. I used created, the date, it was created, the label and some of its defaults.

Compiled In Code

These values, if you don't know them, you can actually go and look at the compiled 00:03:51 field. So in the back end of your component, open administrator, components, then the relevant component. You would open models and then there is a place called forms, you would open it. And you'd see a list of forms that correspond to the back end views that you've created. Now in our case this job order is the one. 00:04:19 You will obviously open the XML. Double click on it, scrolling down. You can look at modified by, and some of its default. So you going to overwrite this value. Then you need to update or use these values. Make sure this is the only part you shouldn't change, if you change it, 00:04:45 we won't know that you're trying to overwrite one of the default fields because it uses the name as the identifier. Back in editing the field. We basically created the fields that was the first part. Close them again.

Adding The Fields

We would like any normal, any other field, 00:05:08 we simply go to fields, we added those fields. There's the created-date and there is the created-by. We add both to be shown, and also the position and how it should be treated. We set it was be in the left tab of the 15th. 00:05:37

Adding In Tabs(default 15 tab)

The other thing, if you would like the fields to display in the same place as before, in the edit view, then you would add it to the 15th tab. I reckoned that its very unlikely that somebody would create so many tabs. Now what is a tab? If you would to go to the view, then this is tab 1 this tab 2 3 4 5 and 6(see video). Since publishing can really vary. 00:06:14 It wasn't making any sense to me that I would targeted in any way directly as the 5th of the 4th. So I took a very high number 15. If you select the number 15, it will add these two fields in the same place it would if it had to build it for you. But if for some reason you say no I want to also display the field in a different tab, you could click and put in the 3rd tab, you click save, 00:06:53 then you compile the components, install it. You will see 1, 2, 3, it's in the third tab, it's showing up. That's all you had to do as they had to say and what tab you would like it now to display. If you go here(publishing) you would see the create date no longer shows in the publish tab. Its only created by that shows up here. It literally moves the field to a different tab, 00:07:24 as well as displays the field in the list view. Simply because you added the fields here(see video), you set that you wanted to display and you added to the third tab. I'm going to move it back to 15. Which is the tab number if you wanted to be in its default place. I click save and then save there, compile this, install it. 00:08:03 Basically updating the component. Refresh the page, if we go to where it was, it's no longer showing there(documents), it's not showing there(production), It is not showing there(stock list), it's back in published in the correct place. That's where it will be set if you don't overwrite it. Using the 15th tab as the the target puts it's in default place. If you use another tab number, it removes it from its default place, and puts it where you have assigned it to be placed. That is how you can overwrite the custom added fields, fields of a back end view. 00:08:49 I hope that will be very helpful.

Clone this wiki locally