diff --git a/010-Component-Settings.md b/010-Component-Settings.md index 8b51dd2..649a1ee 100644 --- a/010-Component-Settings.md +++ b/010-Component-Settings.md @@ -1,3 +1,23 @@ # COMPONENT SETTINGS -Now that we've added the admin views to the component, let's look at some of the features that is still available inside of components. As you can see adding your custom admin views, is done there(add) and the site views is done here(add). Then there is a custom admin menus. Don't let this trough you out. Controlling the menu structures for these are custom admin views in the site views are done inside of these(add). This is if you are actually adding custom back end [00:00:40](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m40s) views Which hasn't been developed inside of component Builder. So for example Component builder its self has a compiler View You all have seen that If I quickly go there It's this view here Now this whole view is done outside of component Builder I I actually [00:01:04](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m04s) This is just hand coded little script That kicks off a bunch of Events now It needs a model it needs a controller so I wrote that With my hand know just manually with hand coding And it also needs a view And so basically the view and everything In regards to it If you look at my infrastructure of component Builder [00:01:32](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m32s) You would see That I have let me just look at this compiler I have a place called custom you see Now Inside of custom Is where everything that you want it into you know include inside of your component is added into the Custom folder Any files any folders anything that you want to integrate is in here now you might look there [00:02:02](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m02s) See there are a bunch of things already there And I would encourage you not to remove them because depending on what you do in component builder it will Automatically include those Specially the the footables And the import View And the uikit and I think some Not sure I think you would have sound manager as well That is for sermon distributor And in PHP Excel which is the use for the exporting of data to spreadsheet and [00:02:32](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m32s) Importing a from spreadsheet we using this This library So all of that is in the custom tab And then he will see a bunch of files as well now the Component builder itself has its Compiler view here So as you can see it's basically just empty folders And then I have the actual files Here is well there's the default compiler file Which is [00:02:59](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m59s) Then if I open it up It's basically the The Script that shows the That little dropdown of items And I have That in there And I also have the controller somewhere Let's Scroll down Obviously it should Compiler there's the controller [00:03:23](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m23s) There's the model There is the compiler as well The helper File And so I am including that Into my component If we look here Let me open Component builder quickly Go to settings [00:03:48](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m48s) In files I'm including A bunch of things adding and that also means I'm including that here it is the compiler And I'm saying take this file And put it in admin views compiler And view And rename it See it's got the wrong name here So if you add the right name at the end of the string And click Yes it will rename that file to this so that is adding custom [00:04:16](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m16s) Files And As well as custom folders So on Grabbing the compiler views and I'm dumping it into views And I'm also say rename it to compiler so compiler views becomes compiler Inside of the views folder And then Obviously we first the system will first build the folders And then move your data your files to those folders so you you you will put the files here [00:04:44](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m44s) And then have the system do the folders and then it will move the files Ok so that's adding custom files to any component and this custom admin menu Is basically what I use to the map the compiler menu so I would say I wanna call it compiler the code is compiler I'm not using a link because it's not another extension or another website or something like that Which you can also do And then I would select an icon Here is the information It's the same kind of switches [00:05:17](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m17s) As you see with adding in custom admin sorry A backend admin view you can tweak whether it should be an admin menu or be a dashboard And be a sub menu So you can tweak that And then also in which order behind it says select before what admin View This one Should be placed Now That we are placing it before component So that means it can [00:05:49](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m49s) Go at the very top Ok so that is adding An custom admin menu Because of custom Fields and files and folders that you have Created by hand and are importing Into your component when you compile it The same is done with the compiler of component builder I'm actually including it as files so [00:06:16](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m16s) There is the compiler let me see Oh you know what I am I took All the compiler Files and I put it in the folder called compiler there it is And so it's a folder which moves all the files at once that obviously can also be done Like for example as you see here PHP Excel Which is a folder Has a lot of content in it if we were to open it [00:06:48](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m48s) You'd see all these files and folders and things And so I put everything I wanted To move Inside of this folder And then in in my component I simply target that folder And it pulls it in Ok so that That's simply showing you how I have added a whole lot of folders to To component Builder And then When I need a backend admin view custom [00:07:18](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m18s) Added this feature here does that for me Now I also want to quickly cover the The area called config Is it this area deals with something that is actually quite Useful And that is to set up your Back end Global fields Now [00:07:42](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m42s) It let me go out of this one because it's definitely not the best in demonstration let me go to sermon distributor There we've done some really amazing things sermon distributor Settings and then config And as you can see it is a very long list of things But then if we go to The actual component It me open it And then I'll click on options [00:08:25](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m25s) You see that has many many tabs Ok all of these switches Are done in the config area All of them except some of these default switch Is added by the simple switches For example the global timer remember we spoke about the check-in here you can set it all whether it should be every 5 hours 12 hours once a day every second day once a week or never Checking in your items automatically the version control buttons are added automatically as well Which means the person can set the version control on or off [00:09:07](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h09m07s) And also said how many You know records should be set if zero Then all versions will be saved So this is the version control And then The author Areas also added automatically And you can when you click in the component here just close this thing [00:09:40](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h09m40s) You see here is a contributing in area you can set whether you want add empty contributing level The fields Here you can add contributors as many as you like Those involved in developing the component And then the amount of empty ones you want to leave there Is also Tweak able And that'll basically Let me show you add this area here Contributor 1234 [00:10:09](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m09s) And When you use this witch IT controls whether it's been shown in the back or the front of all these kind of features Which I am not gonna go into much depth now But they also added automatically on also the permissional and structure is added automatically And if you have in the component You can actually Set that it includes UiKit you can said to that: yes If you do that [00:10:37](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m37s) it automatically adds This feature to your component And every where where Uikid is used Ok so everything else this Dropbox preachers preacher categories category Series list and series and sermons Is all done through that Config area here Now to use to add Fields to the config area you first need to add that field To fields [00:11:07](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h11m07s) So you would you go to fields And whatever field you wanna use there you need to create here So you first create the fields Then obviously you need to remember the system name that you're using Because then when you open up this You would be able to Type in the name And it will be selected And then by Convention that tab name As long as you use the same tab name it will be bundled in the order of which you said it here [00:11:40](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h11m40s) So this is where the Dropbox Area All there Fields are being set Now the reason why we include this Demo Component Into the Application with the tutorial Is that you can go and look and see ok well he's using [00:12:00](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m00s) Dropbox update method Here And Then you can go look at this file And then you can go look at And how it looks here The Dropbox update method And the files and the text and even Some of this I mean here is a button If I click it [00:12:23](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m23s) It starts an update And it even shows it here Now how to do this is very tricky It's not that simple to do that because we not inside of our component as you can see were actually in the config Component In the global if you have Global settings So This whole feature that is building into sermon distributor is so smart I would tell you For you to be able to do that is just stunning So [00:12:56](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m56s) You can look at how I've done that by Simply going to the To these fields And you would find The answer to how did he do that And you can look at these things in this list View All the Dropbox Information is there And then there is some Global Like local folder download link And then space hr [00:13:24](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m24s) You can see that I have that Space HR quite often it's a It's a field that it will be included in the Paid version of of component builder It already has that spacer hr in it And since Spacers you can use the same spacer Over and over the system automatically increment it so it doesn't have conflict in name conventions So I'm just using the Same Spacer so every where is putting spacers which is which is this Little Line [00:14:01](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m01s) you see that line there It's very very Very small but it gives a space between these areas That is why I'm doing that Then also he can put default values which will be used during Installation of the component So if you have Switches in your config That you want to populate with default values should just add those values here [00:14:27](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m27s) And then during the install Those values will be added to the database and Component builder puts all that in place for you So this is where you add the config Fields And there is another Convention which is maybe Not Is not That It's not that obvious [00:14:51](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m51s) But I added a convention that if you use a tab name Which is exactly the same As a Front-end View Then I will add This field to that front-end views menu Now [00:15:13](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m13s) If you can see it if you think about component sorry of Joomla's Content Manager manager It does the same thing In the global setting of your article manager you can set features for categories and for articles But if you create a new article in a menu item Then you can overwrite those you can say use global or you can overwrite them now this feature Of using the same tab name So let's look at this The features name is [00:15:48](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m48s) Preacher Switch Whether should be a table or a grid Ok and we set the default 2 And we called it preachers plural That's quite important Now Let's look at the front Close this out here Do I have a bunch of menus [00:16:09](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m09s) I'm gonna go to a menu that I've already created called preachers And then I'm also gonna go to this components backend called preachers So you see there is a list of items now all I did in the component Builder Is I simply added The name preacher as a tab name That's all I did And then the fields So there is the list of the fields from there to there [00:16:41](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m41s) These are the fields you can see them here These Fields I simply created in the field Area With field type so is basically some radio buttons A drop down list Another dropdown list and again some radio button Ok so these are the fields And then in the view if you click on sermon distributor You see those exact same Fields and it has the option of using The global [00:17:07](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m07s) Instead so there's used global or you can overwrite it So you can decide ok this specific admin view I want to use grid and not the global option So that whole system Of adding This extra features to every item view of the front end Is integrated simply by a convention If the front end is called preachers which this case it is As you can see there it's called preacher see I just selected a menu item called preachers Now we haven't dealt with setting up your site views and all that so this might be [00:17:47](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m47s) How did you get that item name right in everything But I'm trying to Sketch a picture which we will revisit when we eventually get to this area But just that you know from where it comes it's simply in the config I added the files and used to convention of the actual Front-end Page that has a name called preachers And So there is as well for preacher which is single [00:18:15](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m15s) So if I closed out select sermon distributor and then select preacher Which is another View And then I clicked here you see all these switches They also Mapped in here From there All the way to there And they have some default values in there there there are there [00:18:43](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m43s) Fields And in the back end of the component if I click on preacher Here is the same Fields so you can set Global settings And then you can overwrite them sorry in the menu itself Why not using Global So that this whole feature Is possible Through this config Little tab sorry it looks Insignificant I suppose [00:19:08](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m08s) And you might not expect it like I said it's not that obvious that it does this But that is what it is doing And so as you can see all of those certain areas I just mapped it in config And because of the name of the tab let me stress that Because of the name of the tab The system knows oh so this is related to any front end menus as well Therefore it will automatically create those front end Things for you Now to show you how it is done it's quite Simple [00:19:47](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m47s) Not that I want to teach you how The Joomla API works but I want you to at least know What is doing so I'm gonna go to the front of this component here it is And I'm gonna open that view preachers And you'd see in template there is a extra file called Default XML And then I'll open that default XML Basically all component builder is doing it is adding The convention to this file [00:20:18](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m18s) So if you're running into troubles and it's not working as you expected This is the file in which you can come and look To see what's happening That is in the front end In views In the specific view that you have to it must be this view must be the The tab name And then In that file called default XML Obviously [00:20:41](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m41s) This is important Since we haven't dealt with adding site views The site views here I need to quickly touch on it so did you at least know Something that relates to this That is if you didn't click on add as a menu You sets its to no Then that file will not exist Ok so that file only exist if this is set to yes So setting it to yes [00:21:11](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m11s) Tells component builder to build this default XML file And setting the tabs to the same name as this view Tells component builder to add those fields To this Few and make it so that your user can then Have Unique Implementation obviously And this is important [00:21:34](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m34s) It doesn't make use Of This information necessary inside of your site View You need to Make use of this information in your site view Now If you're a developer you would expect that right you would know Oh yeah ok so inside of your Component You have [00:21:56](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m56s) A place where you check params header Should it show then it shows it and it basically you getting it from the parameters The parameters are set inside of the view.html.php You see here we set the parameters We get We do on this app get parameters now this actually gets all the parameters in relation to this view The gets that component parameters it gets the menu parameters and it automatically If it has the custom [00:22:33](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h22m33s) So I feel like I'm maybe going Beyond the scope but if they've used Global It will automatically fall back on what the set here which is excellent So you're using the same name Display And display where is it It's the same name And so if you are using Global basically what parameters does Is it getting this place parameter [00:23:02](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h23m02s) The display field it's getting that parameter And it first looks at the menus Settings and that one is set to Global it automatically Falls back to the global settings That is done by Joomla itself it's not really something I build it's just the way Joomla works which is excellent And That means that you immediately By using params And then doing a check-up So remember now this value Is inside of this params [00:23:34](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h23m34s) And if I didn't go to the default View And let's see where am I implementing some of that Let's go to Here the preacher display Ok So the field name wasn't just display I'm sorry it was called preachers display That's the The field name In the global Configurations [00:24:03](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h24m03s) So You're not with me It is what we Used for this field Switch preacher Table grid It's called preacher display If I was to go and open this field in fact if you do that so if you see the whole picture Switch preachers table grid let me just remember that Ok here is the list of the switch preachers [00:24:37](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h24m37s) Fields as you can see I'm in the fields Tab And I'll open that Specific Field And you'd see that the name Of that The name Of this field is preachers Underscore display [00:24:56](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h24m56s) Now You need to make sure that none of the fields have the same name That is quite important What I mean by none of the fields I mean This field must not be the same name is that field Every field in this Global area must be unique It should never overlap So that is why I use the convention of preachers display so that I can also use preacher Without the s display and I can use Category [00:25:25](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h25m25s) Underscore display in you see so that I have that site of convention of implementation Is it all around as you develop think about conventions using sort of Logical repetitive scalable concepts And so this is one of them that I've done And then I just added it here It's that specific item And then in the Global area you go to preachers it is basically this view here Sorry field This field here [00:25:59](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h25m59s) And in the code On I'm simply saying If preacher = 1 Then show the table If Preacher display = 2 then show the grid And if non is selected and show the list Which is the three options if you look at the button The button has Table grid list [00:26:21](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h26m21s) And So I'm not asking does the global have this or that none of that I'm just calling the field directly Because the way that Joomla gets that initial data like I showed you here Is they sort that out for you and that's quite nice And I've obviously test it and made sure that my My explanation is the truth And so goes with the colours you can see here I I again just do params get colors But this is actually knowledge that you would have [00:26:55](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h26m55s) If you have developed a component for Joomla You would know about these tricks I suppose And I'm just showing to you how of component Build It makes it easy to implement these kind of things which otherwise would take so much time to Write this up and then make sure it's exactly the same inside of the XML folder menu and so forth So component builder does all of that Out of this config file Simply with a Convention that relates to the actual front-end [00:27:26](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h27m26s) And that is as simple as that Ok so I think we have covered that Thoroughly enough And That will be all for this tutorial I will continue looking at more Concepts of the component And it's features Possibly it might be ideal for us to [00:27:48](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h27m48s) Stop here With the component And go look at setting up a custom admin View Or setting up a site view And yet I'm thinking you know if we go that route It's gonna take us on a very long Road so The ideal with me let me sort of Dealt with some of this component features First And finish that [00:28:12](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h28m12s) And then as soon as we've finished it We'll jump into the custom very Nice area of your front-end development and custom admin development And then we will obviously be relating back to what we have discussed here As we go So I've now looked at the setting tab And try to cover as much of this area as I can I didn't talk much about mySQL tweak This is a very advanced feature And [00:28:44](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h28m44s) You can know that what it really does if we have dummy data You're able to Exclude them Through this area so that if you have different versions You will through this MySQL tweak Be able to exclude certain information Which I realise it's a little bit advance and so for most cases people will just not use this It's only when you start having multiple versions of the same extension And you selling them at different pricing and Want to be able to [00:29:17](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h29m17s) From Within component builder just export the different versions Then you start using this feature And I think we possibly deal with it with when we start looking at more advanced implementations Ok thank you for watching We'll start in the next run with scripts +Now that we've added the admin views to the component, let's look at some of the features that is still available inside of components. As you can see adding your custom admin views, is done there(add) and the site views is done here(add). Then there is a custom admin menus. Don't let this trough you out. Controlling the menu structures for these are custom admin views in the site views are done inside of these(add). This is if you are actually adding custom back end [00:00:40](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m40s) views which hasn't been developed inside of component builder. + +**Compiler Info** + +For example component builder its self has a compiler view. You all have seen that. It's this view here. This whole view is done outside of component builder. I [00:01:04](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m04s) just hand coded a little script that kicks off a bunch of events. It needs a model and a controller. I wrote that manually with hand coding. It also needs a view and everything in regards to it if you look at my infrastructure of component builder. [00:01:32](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m32s) You would see that I have a place called custom. Inside of custom is where everything that you want to include inside of your component is added into the custom folder. Any files any folders anything that you want to integrate is in here. You might look there [00:02:02](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m02s) and see there are a bunch of things already there. I would encourage you not to remove them because depending on what you do in component builder it will automatically include those. Specially the the footables, the importview, and the uikit and I think you would have soundmanager as well, that is for sermon distributor. And in PHPExcel which is the use for the exporting of data to spreadsheet and [00:02:32](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m32s) importing from spreadsheet, we using this library. All of that is in the custom tab. And then he will see a bunch of files as well. The component builder itself has its compiler view here. It is just empty folders. Then I have the actual files here as well, there's the default compiler file. Which is [00:02:59](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m59s) then if I open it up it's basically the script that shows that little dropdown of items. I also have the controller. Let's scroll down, there's the controller, [00:03:23](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m23s) and the model. There is the compiler as well the helper file. I am including that into my component. If we look here, let me open component builder. Go to settings. [00:03:48](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m48s) + +**Adding Custom Files - Folders** + +In files I'm including a bunch of things and that also means I'm including that. Here it is the compiler. And I'm saying take this file and put it in admin views compiler and rename it. See it's got the wrong name here. If you add the right name at the end of the string and click yes, it will rename that file to this, that is adding custom [00:04:16](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m16s) files as well as custom folders. I'm grabbing the compiler views and dumping it into views, and rename it to compiler, compiler views becomes compiler inside of the views folder. The system will first build the folders and then move your data your files to those folders. You will put the files here(see video). [00:04:44](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m44s) And then have the system do the folders and then it will move the files. That's adding custom files to any component. + +**Adding Custom Admin Views** + +This custom admin menu is basically what I use to the map the compiler menu. I want to call it compiler, the code is compiler. I'm not using a link, because it's not another extension or another website or something like that which you can also do. Then I would select an icon. Here is the information. It's the same kind of switches [00:05:17](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m17s) As with adding a back end admin view. You can tweak whether it should be an admin menu or be a dashboard and be a submenu. So you can tweak that. Then also in which order behind it says 'select before what admin view this one should be placed'. We are placing it before component. That means it can [00:05:49](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m49s) go at the very top. That is adding a custom admin menu. Because of custom files and folders that you have created by hand and are importing into your component when you compile it. The same is done with the compiler of component builder. I'm actually including it as files. [00:06:16](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m16s) There is the compiler. I took all the compiler files and I put it in the folder called compiler. There it is and it's a folder which moves all the files at once. That can also be done, like for example, as you see here PHPExcel which is a folder has a lot of content in it if we were to open it. [00:06:48](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m48s) You'd see all these files and folders and things. I put everything I wanted to move inside of this folder and then in my component I simply target that folder and it pulls it in full. That's simply showing you how I have added a whole lot of folders to component builder. When I need a back end admin view custom [00:07:18](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m18s) added, this feature here(Custom Admin Views - add) does that for me. + +**Adding Custom Config Fields** + +I also want to quickly cover the area called config. This area deals with something that is actually quite useful. That is to set up your back end global fields. [00:07:42](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m42s) Let me go to sermon distributor. There we've done some really amazing things. sermon distributor, settings and then config. As you can see it is a very long list of things. If we go to the actual component, let me open it and then I'll click on options. [00:08:25](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m25s) You will see that it has many tabs. All of these switches are done in the config area. All of them except some of these default switch. Is added by to the simple switches. + +??? + +For example the global timer, remember we spoke about the check-in. Here you can set it all whether it should be every 5 hours 12 hours once a day every second day once a week or never. Checking in your items automatically the version control buttons are added automatically as well Which means the person can set the version control on or off [00:09:07](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h09m07s) And also said how many You know records should be set if zero Then all versions will be saved So this is the version control And then The author Areas also added automatically And you can when you click in the component here just close this thing [00:09:40](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h09m40s) You see here is a contributing in area you can set whether you want add empty contributing level The fields Here you can add contributors as many as you like Those involved in developing the component And then the amount of empty ones you want to leave there Is also Tweak able And that'll basically Let me show you add this area here Contributor 1234 [00:10:09](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m09s) And When you use this witch IT controls whether it's been shown in the back or the front of all these kind of features Which I am not gonna go into much depth now But they also added automatically on also the permissional and structure is added automatically And if you have in the component You can actually Set that it includes UiKit you can said to that: yes If you do that [00:10:37](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h10m37s) it automatically adds This feature to your component And every where where Uikid is used Ok so everything else this Dropbox preachers preacher categories category Series list and series and sermons Is all done through that Config area here Now to use to add Fields to the config area you first need to add that field To fields [00:11:07](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h11m07s) So you would you go to fields And whatever field you wanna use there you need to create here So you first create the fields Then obviously you need to remember the system name that you're using Because then when you open up this You would be able to Type in the name And it will be selected And then by Convention that tab name As long as you use the same tab name it will be bundled in the order of which you said it here [00:11:40](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h11m40s) So this is where the Dropbox Area All there Fields are being set Now the reason why we include this Demo Component Into the Application with the tutorial Is that you can go and look and see ok well he's using [00:12:00](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m00s) Dropbox update method Here And Then you can go look at this file And then you can go look at And how it looks here The Dropbox update method And the files and the text and even Some of this I mean here is a button If I click it [00:12:23](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m23s) It starts an update And it even shows it here Now how to do this is very tricky It's not that simple to do that because we not inside of our component as you can see were actually in the config Component In the global if you have Global settings So This whole feature that is building into sermon distributor is so smart I would tell you For you to be able to do that is just stunning So [00:12:56](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h12m56s) You can look at how I've done that by Simply going to the To these fields And you would find The answer to how did he do that And you can look at these things in this list View All the Dropbox Information is there And then there is some Global Like local folder download link And then space hr [00:13:24](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h13m24s) You can see that I have that Space HR quite often it's a It's a field that it will be included in the Paid version of of component builder It already has that spacer hr in it And since Spacers you can use the same spacer Over and over the system automatically increment it so it doesn't have conflict in name conventions So I'm just using the Same Spacer so every where is putting spacers which is which is this Little Line [00:14:01](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m01s) you see that line there It's very very Very small but it gives a space between these areas That is why I'm doing that Then also he can put default values which will be used during Installation of the component So if you have Switches in your config That you want to populate with default values should just add those values here [00:14:27](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m27s) And then during the install Those values will be added to the database and Component builder puts all that in place for you So this is where you add the config Fields And there is another Convention which is maybe Not Is not That It's not that obvious [00:14:51](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h14m51s) But I added a convention that if you use a tab name Which is exactly the same As a Front-end View Then I will add This field to that front-end views menu Now [00:15:13](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m13s) If you can see it if you think about component sorry of Joomla's Content Manager manager It does the same thing In the global setting of your article manager you can set features for categories and for articles But if you create a new article in a menu item Then you can overwrite those you can say use global or you can overwrite them now this feature Of using the same tab name So let's look at this The features name is [00:15:48](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h15m48s) Preacher Switch Whether should be a table or a grid Ok and we set the default 2 And we called it preachers plural That's quite important Now Let's look at the front Close this out here Do I have a bunch of menus [00:16:09](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m09s) I'm gonna go to a menu that I've already created called preachers And then I'm also gonna go to this components backend called preachers So you see there is a list of items now all I did in the component Builder Is I simply added The name preacher as a tab name That's all I did And then the fields So there is the list of the fields from there to there [00:16:41](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h16m41s) These are the fields you can see them here These Fields I simply created in the field Area With field type so is basically some radio buttons A drop down list Another dropdown list and again some radio button Ok so these are the fields And then in the view if you click on sermon distributor You see those exact same Fields and it has the option of using The global [00:17:07](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m07s) Instead so there's used global or you can overwrite it So you can decide ok this specific admin view I want to use grid and not the global option So that whole system Of adding This extra features to every item view of the front end Is integrated simply by a convention If the front end is called preachers which this case it is As you can see there it's called preacher see I just selected a menu item called preachers Now we haven't dealt with setting up your site views and all that so this might be [00:17:47](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h17m47s) How did you get that item name right in everything But I'm trying to Sketch a picture which we will revisit when we eventually get to this area But just that you know from where it comes it's simply in the config I added the files and used to convention of the actual Front-end Page that has a name called preachers And So there is as well for preacher which is single [00:18:15](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m15s) So if I closed out select sermon distributor and then select preacher Which is another View And then I clicked here you see all these switches They also Mapped in here From there All the way to there And they have some default values in there there there are there [00:18:43](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h18m43s) Fields And in the back end of the component if I click on preacher Here is the same Fields so you can set Global settings And then you can overwrite them sorry in the menu itself Why not using Global So that this whole feature Is possible Through this config Little tab sorry it looks Insignificant I suppose [00:19:08](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m08s) And you might not expect it like I said it's not that obvious that it does this But that is what it is doing And so as you can see all of those certain areas I just mapped it in config And because of the name of the tab let me stress that Because of the name of the tab The system knows oh so this is related to any front end menus as well Therefore it will automatically create those front end Things for you Now to show you how it is done it's quite Simple [00:19:47](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h19m47s) Not that I want to teach you how The Joomla API works but I want you to at least know What is doing so I'm gonna go to the front of this component here it is And I'm gonna open that view preachers And you'd see in template there is a extra file called Default XML And then I'll open that default XML Basically all component builder is doing it is adding The convention to this file [00:20:18](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m18s) So if you're running into troubles and it's not working as you expected This is the file in which you can come and look To see what's happening That is in the front end In views In the specific view that you have to it must be this view must be the The tab name And then In that file called default XML Obviously [00:20:41](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h20m41s) This is important Since we haven't dealt with adding site views The site views here I need to quickly touch on it so did you at least know Something that relates to this That is if you didn't click on add as a menu You sets its to no Then that file will not exist Ok so that file only exist if this is set to yes So setting it to yes [00:21:11](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m11s) Tells component builder to build this default XML file And setting the tabs to the same name as this view Tells component builder to add those fields To this Few and make it so that your user can then Have Unique Implementation obviously And this is important [00:21:34](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m34s) It doesn't make use Of This information necessary inside of your site View You need to Make use of this information in your site view Now If you're a developer you would expect that right you would know Oh yeah ok so inside of your Component You have [00:21:56](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h21m56s) A place where you check params header Should it show then it shows it and it basically you getting it from the parameters The parameters are set inside of the view.html.php You see here we set the parameters We get We do on this app get parameters now this actually gets all the parameters in relation to this view The gets that component parameters it gets the menu parameters and it automatically If it has the custom [00:22:33](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h22m33s) So I feel like I'm maybe going Beyond the scope but if they've used Global It will automatically fall back on what the set here which is excellent So you're using the same name Display And display where is it It's the same name And so if you are using Global basically what parameters does Is it getting this place parameter [00:23:02](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h23m02s) The display field it's getting that parameter And it first looks at the menus Settings and that one is set to Global it automatically Falls back to the global settings That is done by Joomla itself it's not really something I build it's just the way Joomla works which is excellent And That means that you immediately By using params And then doing a check-up So remember now this value Is inside of this params [00:23:34](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h23m34s) And if I didn't go to the default View And let's see where am I implementing some of that Let's go to Here the preacher display Ok So the field name wasn't just display I'm sorry it was called preachers display That's the The field name In the global Configurations [00:24:03](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h24m03s) So You're not with me It is what we Used for this field Switch preacher Table grid It's called preacher display If I was to go and open this field in fact if you do that so if you see the whole picture Switch preachers table grid let me just remember that Ok here is the list of the switch preachers [00:24:37](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h24m37s) Fields as you can see I'm in the fields Tab And I'll open that Specific Field And you'd see that the name Of that The name Of this field is preachers Underscore display [00:24:56](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h24m56s) Now You need to make sure that none of the fields have the same name That is quite important What I mean by none of the fields I mean This field must not be the same name is that field Every field in this Global area must be unique It should never overlap So that is why I use the convention of preachers display so that I can also use preacher Without the s display and I can use Category [00:25:25](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h25m25s) Underscore display in you see so that I have that site of convention of implementation Is it all around as you develop think about conventions using sort of Logical repetitive scalable concepts And so this is one of them that I've done And then I just added it here It's that specific item And then in the Global area you go to preachers it is basically this view here Sorry field This field here [00:25:59](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h25m59s) And in the code On I'm simply saying If preacher = 1 Then show the table If Preacher display = 2 then show the grid And if non is selected and show the list Which is the three options if you look at the button The button has Table grid list [00:26:21](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h26m21s) And So I'm not asking does the global have this or that none of that I'm just calling the field directly Because the way that Joomla gets that initial data like I showed you here Is they sort that out for you and that's quite nice And I've obviously test it and made sure that my My explanation is the truth And so goes with the colours you can see here I I again just do params get colors But this is actually knowledge that you would have [00:26:55](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h26m55s) If you have developed a component for Joomla You would know about these tricks I suppose And I'm just showing to you how of component Build It makes it easy to implement these kind of things which otherwise would take so much time to Write this up and then make sure it's exactly the same inside of the XML folder menu and so forth So component builder does all of that Out of this config file Simply with a Convention that relates to the actual front-end [00:27:26](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h27m26s) And that is as simple as that Ok so I think we have covered that Thoroughly enough And That will be all for this tutorial I will continue looking at more Concepts of the component And it's features Possibly it might be ideal for us to [00:27:48](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h27m48s) Stop here With the component And go look at setting up a custom admin View Or setting up a site view And yet I'm thinking you know if we go that route It's gonna take us on a very long Road so The ideal with me let me sort of Dealt with some of this component features First And finish that [00:28:12](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h28m12s) And then as soon as we've finished it We'll jump into the custom very Nice area of your front-end development and custom admin development And then we will obviously be relating back to what we have discussed here As we go So I've now looked at the setting tab And try to cover as much of this area as I can I didn't talk much about mySQL tweak This is a very advanced feature And [00:28:44](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h28m44s) You can know that what it really does if we have dummy data You're able to Exclude them Through this area so that if you have different versions You will through this MySQL tweak Be able to exclude certain information Which I realise it's a little bit advance and so for most cases people will just not use this It's only when you start having multiple versions of the same extension And you selling them at different pricing and Want to be able to [00:29:17](https://www.youtube.com/watch?v=V2WkTjNFjvo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h29m17s) From Within component builder just export the different versions Then you start using this feature And I think we possibly deal with it with when we start looking at more advanced implementations Ok thank you for watching We'll start in the next run with scripts