Update Basic Fieldswith time links

aamigo committed 2019-05-15 15:48:06 +02:00
1 parent ef2a173fd3
commit 049f5ec3dc
44 files changed
+44 -44

No files matched your search

@@ -1 +1 @@
Hi Sometimes one would like to add extra styling like this Or like that To a listview The problem is that by Default All of the fields all of these field values are being escaped And so If you would like to add let's save this this kind of styling 2A Fieldview Let me show you how I did it In the job order at mint View area If you go to PHP There is a method called at PHP get items method before translation fix and So this happens before The translation or The Fixer or the decryption Sorry the translation fix or the Crips of any field This is not the ideal place you usually would add it after that was done but in this case I did it before So basically I am setting up A value That when I wanna use danger when I wanna use warning Simply using The Get date month and modifying it By the danger time and the warning time from the Job tracking Configuration values so this is a configuration feel that I've added to the component and it It's names are warning time and danger time And the default is 3 weeks 1 week And basically this is the day The dates that I would then use I didn't look through the data And when identify Subway data that is actually What are the target I add This Value to it That then in turn turns this red Ok And then the next one Is a check the dates And then depending on its values I again at some HTML value To the the date and I use a custom A method in a helper class call Fancy date Where I convert the Default Sequel date Do better data better looking date 2nd of April or something Ok So The problem is though If you do this And you Compile a component at items go look at it you see that it actually escapes those values and it prints it Out Leica You know like you see it over here It actually prints out That Around The value And that's obviously not what you'd like and the reason why does that Because all values are being escaped Now there is a way to to stop that from being You from happening And that that is really what this tutorial is about To show you how to prevent That is Skyping So the value we have here is to create date As well as the job status So I'm gonna go in I'm still in the The back end of the component Job order And I'm going to go to the fields And then I'm gonna scroll down to that that that you Job status Ok I'm gonna open it Then Having a rope and I can scroll down and even here You see that there It doesn't show up here sorry I should actually had it but the real That is where the bottom you see I added this little line I said escape Equals False So you were simply add this line And then when component Builder compiles It will actually in the body Of the component where that field is loaded It will we will tell the Escape method not to escape it So that it would rain Display the html instead of printing it out So that is really what it's all about maybe it's Got a lot of explanation for such a simple thing But I can tell you what if you can't do that it's quite frustrating because Sometimes you would like to give some indication with some HTML On the value and then this Feature actually allows that like you could see here We were able to add a nice button around these dates And as well as adding some colour to to these words here and yeah So that is a quick demonstration of how to make use of the not escape Method or concept When it comes to list views around the field values Hope that makes sense You have any questions please don't hesitate to let me know And Until next time take care thanks for watching
Hi Sometimes one would like to add extra styling like this [00:00:06](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m06s) Or like that To a listview The problem though is that by Default All of the fields all of these field values are being escaped And so If you would like to add let's say this this kind of styling to a field view Let me show you how I did it In the job order admin View area If you go to PHP [00:00:39](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m39s) There is a method called add PHP getitems method before translation fix and decryption So this happens before The translation or The Fixer or the decryption Sorry the translation fix or the decryption of any field This is not the ideal place you usually would add it after that was done but in this case I did it before So basically I am setting up A value That when I wanna use danger when I wanna use warning Simply using The [00:01:15](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m15s) The getDate and modifying it By the danger time and the warning time from the Job tracking Configuration values so this is a configuration field that I've added to the component and it It's names are warning time and danger time And the default is 3 weeks 1 week And basically this is the date The dates that I would then use I then look through the data And when I identify [00:01:49](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m49s) data that is actually Part of the target I add This Value to it That then intern turns this red Ok And then the next one Is I check the dates And then depending on its values I again add some HTML value [00:02:19](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m19s) To the the date and I use a custom A method in a helper class call fancyDate Where I convert the Default Sequel date to a better date or a better looking date 2nd of April or something Ok So The problem is though [00:02:39](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m39s) If you do this And you Compile your component add items go look at it you'd see that it actually escapes those values and it prints it Out Like a You know like you see it over here It actually prints out That Around The value [00:02:59](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m59s) And that's obviously not what you'd like and the reason why it does that Because all values are being escaped Now there is a way to to stop that from being from happening And that that is really what this tutorial is about To show you how to prevent That escaping So the value we have here is to create date As well as the job status So I'm gonna go in I'm still in the [00:03:31](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m31s) The back end of the component Job order And I'm going to go to the fields And then I'm gonna scroll down to that that value Let 's see where is it now Job status Ok I'm gonna open it And if I then Having a it open and I can scroll down and even here You see that there It doesn't show up here sorry I should actually had it but the reality is [00:04:09](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m09s) way at the bottom you see I added this little line I set escape Equals False So you would simply add this line And then when component Builder compiles It will actually in the body Of the component where that field is loaded It will tell the Escape method not to escape it [00:04:37](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m37s) So that it would then Display the html instead of printing it out So that is really what it's all about maybe it's Got a lot of explanation for such a simple thing But I can tell you what if you can't do that it's quite frustrating because Sometimes you would like to give some indication with some HTML upon the value and then this Feature actually allows that like you could see here We were able to add a nice button around these dates And as well as adding some colour to to these words here and yeah [00:05:15](https://www.youtube.com/watch?v=bfl0l3AoLKU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m15s) So that is a quick demonstration of how to make use of the not escape Method or concept When it comes to list views around the field values Hope that makes sense You have any questions please don't hesitate to let me know And Until next time take care thanks for watching
@@ -1 +1 @@
I would like to show you How to change the values that are being exported And how to then Have custom import option With an import of the data At the moment Component builder actually allows you To have Import and export by Default in all the list views Of the components to build So that's look at what I mean You're a have a component called IP data Basically used to take care IP address and Translate it to what country it was from and then To update the pricing on your website based on that IP data So Obviously You might want to export or import stuff Into this component So I'm gonna have a look at for example let's say Take the iptables Siri iptables And as you can see We are able to see the The sea ntry value And that place is a country and the The register Who does IP table belongs to And The Range That is being reflected And all this values are here hey if you click export without selecting any Values give you this warning So Obviously you can only export the values that are selected so if you want to export them all you need Change this value to all And then some cases if the table is too big That means you might not be able to export them all at once Any anyway exporting the day that such big quantities is not really ideal I would say anything Beyond 3000 items Rather go to MySQL Get a dump file it's not ideal to use that kind of quantity with Inter Milan away Although we have often seen the listview being used for up to 10000 registered nursery items and quite complex Inheritance in structure I'm talking about the import export now and that's quite the Ok so for our purpose Let's say we wanna exporters but let's say for some reason Instead of us Wanting to see if this zzz or a R Us Value We want to instead see the country name Ok so that would be a simple implementation of what I'm trying to Export now Let's do that And then let's just say this Ok so we've exported it And instead it put the 0s values here And some other values from the database all nicely exported And that's what you would expect But if you wanted this to be a different value when you export it Then you can do the following Component builder works Is it Got this Get export data Method in the model And This Get export data method has this extra value set to True called X Sport underscore Expo A reason why we added this is because it is actually Using the same structure Upgrading the data As you would When Wait let me rephrase this You're able to Target This method with custom scripting But the difficulty is that I see this part that's custom scripting And it's also been added Into the actual Get list query right there you see It's the same custom scripting So basically In Arkham finder we are adding the same custom script into the git list query As we are adding Into the get export data It's the same custom scripting How the way that you would No where is it executing is based on this value This value is not set In the list query of course It is only said In the export data So let's see where this custom scripting is done Sorry if you got your Admin view open you go to PHP and then you scroll down Until you see the method Right Until you see the method it says get list query J model list That's the the The why don't you say yes The the code you put in here Is added both to the Get list query As well Us to the export query so if you want to change the van Who's that are being exported But not the values that's being shown in your component you be doing it in the same area So going back here you'd see that it's that's the same code every here that is Also add it over here see that's the same code Save you were for example In here you wanted to change some value you could do that I simply Adding another lookup or something and you add this X What is true How to see where all this export = true is appearing You go to Any Model which is obviously a list model And we would search and see there it is And there it is again So where are we now we are now in the git export data And we are in the area where it's looking member we showed you in the previous tutorial how How to add some customisation Do your values in the listview Some HTML well here we are asking is the export set or is it true Then Don't do this Yo Don't don't have to speak to you So we are avoiding out in this Customisation on calorie because we don't wanted to run when we are exporting exporting we only wanted The Valleys so then again you can see where using the export values And Get there So those are there The places where the export Function is coming in To play and how we can By using this Underscore export We are able to identify whether it's an export or not if it is we can make the changes to the values Ok Then going back to our back end Just to show you This is the place where we did the query And this is the place Before the translation fix the scripture again We are checking whether we are doing an export And so you could literally take that And say Instead of theLine truncated
I would like to show you How to change the values that are being exported And how to then [00:00:08](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m08s) Have custom import option With an import of the data At the moment Component builder actually allows you To have Import and export by Default in all the list views Of the components you build So let's look at what I mean Here I have a component called IP data Basically used to take [00:00:35](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m35s) IP address and Translate it to what country it was from and then To update the pricing on your website based on that IP data So Obviously You might want to export or import stuff Into this component So I'm gonna have us look at for example let's say Let's take the IP tables So here we have the IP tables [00:01:07](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m07s) And as you can see We are able to see the The CNTRY value And that is basically the country and the The REGISTRY Who this IP table belongs to And The Range That is being reflected And all this values are here. Now if you click export without selecting any Values will give you this warning [00:01:35](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m35s) So Obviously you can only export the values that are selected so if you want to export them all you need Change this value to all And in some cases if the table is too big That means you might not be able to export them all at once Any anyway exporting the data that such big quantities is not really ideal I would say anything Beyond 3000 items Rather go to MySQL Get a dump file it's not ideal to use that kind of quantity with in Joomla anyway Although we have often seen the listview being used for up to [00:02:16](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m16s) 10000 registered sorry items and quite complex Inheritance in structure We're talking about the import export now and that's quite different Ok so for our purpose Let's say we wanna exporter this but let's say for some reason Instead of us Wanting to see if this zzz or AUS Value We want to instead see the country name Ok so that would be a simple implementation of what I'm trying to explain [00:02:51](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m51s) So if you would clik export now Let's do that And then let's just save this Ok so we've exported it And instead it put these AUS values here And some other values from the database all nicely exported And that's what you would expect But if you wanted this to be a different value when you export it Then you can do the following The way component builder works [00:03:26](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m26s) Is its Got this Get export data Method in the model And This Get export data method has this extra value set to True called export or _export A reason why we added this is because it is actually Using the same structure [00:03:52](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m52s) Of getting the data As you would When Let me rephrase this You're able to Target This method with custom scripting But the difficulty is that you see this part that's custom scripting And it's also been added Into the actual [00:04:21](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m21s) Get list query right there you see It's the same custom scripting So basically In our compiler we are adding the same custom script into the get list query As we are adding Into the get export data It's the same custom scripting Now the way that you would Know where is it executing is based on this value This value is not set [00:04:49](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m49s) In the list query of course It is only set In the export data So let's see where this custom scripting is done So if you got your Admin view open you go to PHP and then you scroll down Until you see the method where is it now maybe I should scroll slower is it that one yeah I think it is this one here Right Until you see the method it says get list query J model list That's the the [00:05:43](https://www.youtube.com/watch?v=fau5mZ6naLc&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m43s) The one and you'd said yes The the code you put in here Is added both to the Get list query As well as to the export query so if you want to change the values that are being exported But not the values that's being shown in your component you be doing it in the same area So going back here you'd see that it's that's the same code over here that is Also added over here you see that's the same code [00:06:22](https:/Line truncated
+1 -1
@@ -1 +1 @@
It happens that you would like to use some of the default fields Differently than hell component builder is actually implementing it Now what is the default fields If you go to Add a new admin view or if you go to an admin do that already exists like I've open one here You see that there is this your mode Just 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 Checkout Check out time virgin Hits metal key Meta description and metadata Is already added to the view so these are your default Feels That always gets added to the view even if you don't create them in fact you don't need to create them But I have seen that sometimes you might want to display some of these fields in a different air Area Of the application You see currently The it field and published Where is it I think that State Yeah Estate field Is the only field that is been shown by Default In the listview So here you can see there is the ID field and there is two states field I'm only ordering feel buddy ordering field Obviously Show the other number you basically click on that button there And then you can move them All them so all that is done by Default and so as you can see The sorry The other Values are not displayed in the listview And so I had a client while saying to me that they would like to actually see the date that something was created And also by whom it was created I'm so I had to adapt component builder so that those things can also be overwritten And this is exactly what we've done What is done is if you create a field In component order as you would normally create a field and you give it Any of these names he created by or created date but obviously exact Jackie the same name then it actually will override The default so in this specific view the job order View Scuze me There is a field Created by So I can open that A new tab there is also a field Created That's basically the day images Serious Oh that is great day Close open So in the Field You see that I basically used The name created by Is obviously a user is the type of fuel And the label is created by the user that created this is the description And that's all that's needed For a user type Then In the created date Basically it's a calendar time And I used created The date it was created The label and some of its default now these values if you don't know them You can actually go and look At the compiled Field Let me let me show you that In the backend of your component that is administrative components Then the relevant component Utopian models and then there is a place called forms And you would basically open that And you'd see a list Of forms that correspond to the back interviews that you've created so now k's This job order Is the one You're obviously open the XML So you double click on it And then scrolling down You can look at modified by And some of its default So you gonna overwritten I'm sorry I write this value Then you need to update or basically use these values here Make sure this is the only part that is Should change it to change it We won't know But you're trying to Override Default feels because it basically uses the name As the identifier Ok so back here Basically created the fields that was the first bar Close them again And then We would like any normal any other field Recently went to fields And we added those Fields So yeah you would see Scroll down There's the created date and there is the created by We had both to be shown and also the position Now it should be treated And we said it was be in the left tab Of the 15th Oh yeah that's the other thing If you would like the fields do again this play the same place as before in the edit Then you would add it to the 15th tab I reckoned that it Very unlikely that somebody would create so many tabs What is a turnip If you were to go to the view Then this is Tab 1 the Step 2 3 4 5 and 6 So Since publishing can really very 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 Not very obvious and this is why I had to make this tutorial If you select the number 15 It will basically 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 actually click and say let's say put in in the 3rd to have you click save And and then you would compile The components install it And then UC 12 3 it's in the third tab It's showing up So That's All You Had to Do as they had to say and what stab you would like it now to display you go here it says No longer shows in the probably stab the create date I need a created by that shows up here so it literally moves the field to a different tab As well as Now displays the field In the listview And that Simply because you added the value the fields here you said that you wanted to display and yoLine truncated
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](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m12s) If you go to Add a new admin view or if you go to an admin view that already exists like I've open one here You'd see that there is this little note Just 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 Checkout Check out time version Hits metakey [00:00:41](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m41s) Meta description and metadata Is already added to the view so 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 But I have seen that sometimes you might want to display some of these fields in a different Area Of the application You see currently The ID field and the published Where is it [00:01:20](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m20s) I think that is State Yeah State field Is the only field that is been shown by Default In the listview So here you can see there is the ID field and there is the states field and the ordering field but the ordering field Obviously Doesn't show the order number you basically click on that button there And then you can move them [00:01:45](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m45s) You know order them so all that is done by Default and so as you can see The sorry The other Values are not displayed in the listview And so 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 And so I had to adapt component builder so that those things can also be overwritten And this is exactly what we've done What is done is if you create a field In component builder as you would normally create a field and you give it [00:02:23](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m23s) Any of these names you see created by or created date but obviously exactly the same name then it actually will overwrite The default so in this specific view the job order View Excuse me There is a field Created by So I can open that in a new tab there is also a field Created [00:02:57](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m57s) That's basically the date let me just See where it is Oh there it is create a date I'll also open that one So in the Field You see that I basically used The name created by it's obviously a user is the type of field And the label is created by the user that created this is the description [00:03:26](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m26s) And that's all that's needed For a user type Then In the created date Basically it's a calendar type And I used created The date it was created The label and some of its defaults now these values if you don't know them You can actually go and look At the compiled [00:03:51](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m51s) Field Let me show you that So in the backend of your component that is administrator components Then the relevant component You would open models and then there is a place called forms And you would basically open that And you'd see a list Of forms that correspond to the backend views that you've created so now in our case This job order Is the one [00:04:19](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m19s) You're obviously open the XML So you double click on it And then scrolling down You can look at modified by And some of its default So you gonna overwritten I'm sorry overwrite this value Then you need to update or basically use these values here Make sure this is the only part that is You shouldn't change it if you change it [00:04:45](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m45s) We won't know that you're trying to Overwrite one of Default fields because it basically uses the name As the identifier Ok so back here We basically created the fields that was the first part I'll just close them again And then We would like any normal any other field [00:05:08](https://www.youtube.com/watch?v=FHQfIhWHYyQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m08s) We simply went to fields And we added those Fields So here you would see you scroll down 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 And we said it was be in the left tab Of the 15th [00:05:37](https://www.youtube.com/Line truncated
@@ -1 +1 @@
Hi I don't know some of you also encountered The reality of having to So limit the drop down Open list View Based on It's associated with another table A very common place where we find this For example When you want to load the regions of only one country I'm gonna show you how I have achieved this I realise there are many ways to do this and yet This is how I've done it Ok so to start off I have a component I could use his illustration All job tracking Component Obviously I have a client area And Already loaded I go to app and use YouTube as country and regions Now I'm gonna illustrated on the basis of country and regions Obviously can Change the Field Concepts in Replace it with other tables But No none the less this is what I'll be using And I'm gonna show you how employed implemented in inside the the client's View because that's basically when most of the work is done Ok so I'm gonna open the client View And then I'm gonna look in the two places we wanna look at Script Well as the PHP area Diovan various previous tutorials explain some of the Ajax functionality In component Builder But I realise not all of you What sort of tutorial so I'll explain some of that again Briefly But having said that The first gonna look What we really wanted she That said When you load So let me go show you that So when you Start with a client You would like to choose a country And then Haven't load only that countries regions Basically what you want to do Evermore You want to make sure It when it does that And you can select Country it also an select The region And Various things we wanted she here In JavaScript Show you how I've done that I'm just reading at the moment 1 country Maybe I should go spit on a few more so just hold on for a second back So now if I look it says Australia If I click on Australia You see that it doesn't load any regions in fact that says create a region Tattoos Namibia It says select a region and so there's three reads two regions already created Nice you know by now there is this button In some of the Dropdowns which are being added by saying true to the button And so it's very helpful For either Creating or editing existing regions So if you could sort of selecting a country where there isn't any regions set yet The basic details for the great one And you can then create a region for this country And what's nice if you click on this Create You can then simply create your region I'm close so I don't know 3 reasons so I'm just gonna call it Region for now And save and close But creating a client If I now Select Australia you see that it's got reading So there we go Problem solved And that's really what I'm gonna do my straight how I did that So let's get started On a JavaScript side of things I first have Two variables I actually could call them both of our Doesn't matter What is an object And one is simply where we are going at Store if there is a bell you already said We're gonna store that value Then on document ready I simply Oh yes Before I continue Creating the fields Wesley make it bring all the regions to the page I don't want it to Leave some regions on Unloaded how can I say Instead what I rather do Is a pastor's regions Into this variable And then only put those regions that are actually Part of this country Into the list of dropdown options that's really what I'm doing so that's What you also see happening here Is first thing I'm doing is I am Doing a for each On the regions options And then I'm getting the value I putting it in key I'm getting the text I'm putting it in text And then I'm adding it to Regis Simply as you would load it in any Any rain there And then I am also Getting the value of the set region And I'm adding that to Region And then I'm sitting the The function get region The gate region function is down here This area The first thing we do is we load it all Show how the loading show Rather this class Heidi Is loaded on the page by Default When you Set This fade effect On ad Then it by Default loads that class With a nice spinner And so I'm basically If the loading process takes long I'm sort of stopping the user from doing anything Waiting for that spinner Don't need to add that Then I am Finding Options The reason And I'm removing them All of them Then I'm triggering An update now this is This updated be a tricky year list as it is a Joomla function And it's actually Possibly gonna change in the future So keep that in the back of your mind It sings break it possible is happening right here Because this as you know the list the of is dynamically generated by Joomla And so we literally telling it Draw that list again But after having removed everything Now We are looking at the country Source of the year with only starts the region Now we get the country value the one that is selected And we add it to country We then call the server at this point And the only thing we are giving the server is the country ID Appear We have a country ID We have our Get URL Our case isLine truncated
Hi I don't know some of you also encountered The reality of having to Sort off limit the drop Downs Of a list field Based on It's association with another table A very common place where we find this [00:00:22](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m22s) Is for example When you want to load the regions of only one country And so I'm gonna show you how I have achieved this I realize there are many ways to do this and yet This is how I've done it Ok so to start off I have a component I could use as a illustration or job tracking Now in this component [00:00:50](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m50s) Obviously I have a client area And then I have Already loaded I go to admin views you would see there is country and regions Now I'm gonna illustrate it on the basis of country and regions but You obviously can Change the Field Concepts and Replace it with other tables [00:01:16](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m16s) But none the less this is what I'll be using And I'm gonna show you how I implemented it in inside the the client's View because that's basically where most of the work is done Ok so I'm gonna open the client View And then I'm gonna look in the two places we wanna look at JavaScript As well as the PHP area Now I have in various previous tutorials explain some of the Ajax functionality [00:01:51](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m51s) In component Builder But I realized not all of you Might have watched all the tutorial so I'll explain some of that again Briefly But having said that We first gonna look at What we really wanna achieve Like I have said When you load So let me go show you that [00:02:19](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m19s) So when you Start with a client You would like to choose a country And then Have it load only that country's regions That is basically what you want to do Furthermore You want to make sure when it does that And you unselect [00:02:41](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m41s) the country it also unselects The region And so there are Various things we wanna achieve here So in JavaScript I'm goining to show you how I've done that I'm just illustrating at the moment one country Maybe I should go put on a few more so just hold on for a second there ok So now if I look it says Australia If I click on Australia [00:03:10](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m10s) You see that it doesn't load any regions in fact that says create a region If I choose Namibia It says select a region and so there's three regions two regions already created Now as you know by now there is this button In some of the Dropdowns which are being added by saying true to the button And so it's very helpful For either Creating or editing existing regions So if you could sort of selecting a country where there isn't any regions set yet [00:03:44](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m44s) It basically tells you to create one And you can then create a region for this country And what's nice if you click on this Create You can then simply create your region Save and close so I don't know any of Australia regions so I'm just gonna call it Region for now And save and close Go back to creating a client [00:04:17](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m17s) If I now Select Australia you see that it's got regions So there we go Problem solved And that's really what I'm gonna demonstrate how I did that So let's get started On a JavaScript side of things I first have Two variables I actually could call them both of var Doesn't matter [00:04:42](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m42s) One is an object And one is simply where we are gonna Store if there is a value already set We're gonna store that value Then on document ready I simply Oh yes Before I continue Creating the fields I obviously make it bring all the regions to the page I don't want it to [00:05:11](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m11s) Leave some regions on Unloaded how can I say Instead what I rather do Is I parse those regions Into this variable And then only put those regions that are actually Part of this country back Into the list of dropdown options that's really what I'm doing so that's What you also see happening here Is first thing I'm doing is I am [00:05:43](https://www.youtube.com/watch?v=Z8FLifQOjUk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m43s) Doing it for each On the regions options And then I'm getting the value I puttiLine truncated
@@ -1 +1 @@
Hi welcome to component Builder We've just added a very Smart new feature Two-component Builder That's Is cold Custom code You can find it here next to Dynamic get It's basically where it's stored You'd hardly never need to go in here Unless you wanna look at what is already been stored and make changes to that in the UI Most of the time you'll be doing the changes in your editor So you editor will be Basically where you will work So what is the purpose of this new feature The preacher is really there For those who are used to actually coding in another editor So what we can then say is let's say they create a component in component Builder And then once they've created it They basically do it compile Uninstall it onto the same website As component Builder To taste it And then during testing they are adding code into that Compiled version That are installed onto this website right Well the new feature could then On compilation extracted custom code Storage in this custom code area And added back into the component on the fly So I'm sure that is quite exciting Anyway let me do some demonstration give you some of the rules guidelines since there are some limb Limitations And then obviously this is still in beta there's quite a few things still to do But I would like to get it out there have you guys tested and get some feedback Okays I'm gonna compile the demo component Since most of you might already have this component installed And you can then use this is so the test area so will compile it there more component Ok then I'm gonna install it on to this current site Great Now I'm gonna go and give you An explanation of how to add Custom scripting to that component By going to an editor Ok so here in the editor you can see this is the root directory Of the website I'm gonna do something on the back in of the components I'll open administrative components And then there is the demo component And let's just go through it's main page Ok so its main index page And then let's see I'm gonna add some custom scripting here Just for the mistration No other way to add custom scripting there are some conventions and some Sort of regulations Let me first show you the conventions To insert custom scripting your user tag like so So in sleep You use Astrix instead of The Exes that are in the code so the code has the excess in it but the actual They would be with the Asterix So that will be to insert new code you use that that place holder and the beginning of the Area new then after a new line Yours insert your code and then at the end of the code you will insert this one to close the code Ok Then they are busy two ways Of adding code 1 is to insert code and wanted to replace existing code So in certain code with simply at the same line insert that code into the existing code Where is replace in code will literally remove the old code and add the new code in its place So these are the two conventions Once component builder ads the code back The dark will change inserted Insert will change to insert it And all have this new number at the end this number is actually referencing the ID of the Code in the system Now don't ever change this number or component Builder with think that it doesn't have one And it needs to be created So it will be an error it won't work so don't take this Number out Then It will add this at the end Now on other after compiling it and adding this string in it won't Compile it again because of these Opening and closing Brackets not being there Great torrent Lesser than signs They they are the ones that activate yet and makes makes it Basically be parsed again So when component builder prices the code back it looks like this When you then later come and want to change it again you would add this diamond in there And it will then update the existing Code in the database With the changes that you've made That's basically it there are a few limitations you cannot add Code Closer to its other than I would say 6 lines So if they r gonna B code Close to each other and it ends and starts within the parameter of 6 lines You end up with a problem So especially at the end I will demonstrate that somehow in in in a hour Actual doing of of this but the reason is component Build It doesn't only use the line In which this is found to remember where to place it But actually creates a sort of a fingerprint of the code above the insertion and the code Below the sin Session 2 Accurately inserted in the future So that code changes Send component builder will give you a notice and will not insert the code This is because of the nature of JVC It actually is constantly improving Sorry JC BMN it's constantly being improved and that therefore it's code is obviously moving a row Around quite a lot Now There was no other way for us to try and automate this Because if we use the line it could possibly cause an accident by overwriting code you You never intended it to overwrite So the only way we could solve this was creating whaLine truncated
Hi welcome to component Builder We've just added a very Smart new feature To component Builder [00:00:12](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m12s) That's Is called Custom code You can find it here next to Dynamic get It's basically where it's stored You'd hardly never need to go in here Unless you wanna look at what is already been stored and make changes to that in the UI Most of the time you will be doing the changes in your editor So your editor will be Basically where you will work [00:00:39](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m39s) So what is the purpose of this new feature The feature is really there For those who are used to actually coding in another editor So what we can then say is let's say they create a component in component Builder Then once they've created it They basically do it compile and install it onto the same website As component Builder To test it And then during testing they are adding code into that [00:01:13](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m13s) Compiled version That are installed onto this website right Well the new feature could then On compilation extract that custom code Store it in this custom code area And add it back into the component on the fly So I'm sure that is quite exciting Anyway let me do some demonstration give you some of the rules guidelines since there are some Limitations [00:01:45](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m45s) And then obviously this is still in beta there's quite a few things still to do But I would like to get it out there have you guys tested and get some feedback Ok I'm gonna compile the demo component Since most of you might already have this component installed And you can then use this is so the test area so we will compile a demo component Ok then I'm gonna install it on to this current site Great Now I'm gonna go and give you An explanation of how to add [00:02:28](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m28s) Custom scripting to that component By going to an editor Ok so here in the editor you can see this is the root directory Of the website I'm gonna do something on the back end of the components I'll open administrator components And then there is the demo component And let's just go to it's main page Ok so its main index page And then let's see I'm gonna add some custom scripting here Just for the demonstration [00:03:04](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m04s) Now the way to add custom scripting there are some conventions and some Sort of regulations Let me first show you the conventions To insert custom scripting you will use a tag like so So obviously You will use asterisks instead of The X s that are in the code so the code has the X s in it but the actual They would be with the Asterix So that will be to insert new code you use that that place holder and the beginning of the Area then after a new line You will insert your code and then at the end of the code you will insert this one to close the code [00:03:50](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m50s) Ok Then there are obviously two ways Of adding code, one is to insert code and one is to replace existing code So inserting code would simply at the same line insert that code into the existing code Where is replacing code will literally remove the old code and add the new code in its place So these are the two conventions Once component builder adds the code back The tag will change inserted Insert will change to inserted And will have this new number at the end this number is actually referencing the ID of the [00:04:28](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m28s) Code in the system Now don't ever change this number or component Builder with think that it doesn't have one And it needs to be created So it will be an error it won't work so don't take this Number out Then It will add this at the end Now on other after compiling it and adding this string in it won't Compile it again because of these Opening and closing [00:04:56](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m56s) Brackets not being there Greater and Lesser than signs They they are the ones that activate it and makes makes it Basically be parsed again So when component builder places the code back it looks like this When you then later come and want to change it again you would add this diamond in there And it will then update the existing Code in the database With the changes that you've made [00:05:30](https://www.youtube.com/watch?v=DFMfIl-VkSk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m30s) That's basically it. There are a few Line truncated
+1 -1
@@ -1 +1 @@
Automatic import of customer code during compilation This is one of our latest features there's been added to the JCB Component And I'm happy to demonstrate it to you now since all it's functionality is in place Also explain to use some of the limitations that currently still exist And hope that it will become A very useful tool To all of you out there Ok so First what does it do Well Is actually a little mutated from what it's original intent was And it's become two things really so the first thing is And this is obviously what was in it Intended Is that you would be able To add Code To your component once it's been compiled and installed Called into that same Jamila website That you be able to Go into that code And with a few placeholders Actually add code That once you compile the component again JCB with dynamically grab that code extracted into It's database stored there F&i on forward Continue to add it back in Into the component every time Now The way we've done that As we have not used the line numbers As the main Way of determining whether at code must be at it because of the reality that line numbers Always will change You know you might have let's say It's a daylight let's say the custom code that you're adding You said line Hundred 5 And if you make it change it lying 20 Then that Means all the code moves down of course and now we don't know where to add your code Without either riding over or pressing it before and You know there's all kinds of complication So the only way we could resolve that Is to create What we initially call the fingerprint But later became Hash Reference of the code a few lines of code above the The the custom script And a few lines of code below the gases Now It varies from how many lines it Uses And there is a reason for it I'm not gonna Boy with the The detail If you want to see how we do it there is actually The code is open source so you can actually go look at it So there is a function In the I get file which is part of the Compile a set of Files So The functions name is Search file content And it's in this function that it really goes through every line of the code That is already on The Joomla website and then when it finds it it's adds it 2 in a row which eventually gets safe to do they device So this is the airlines that actually does the work Obviously there's lots of things that works With this this function But this is the Yeah this is the centre of Of everything Obviously I'm very sure there are better ways to do this And so we will constantly improve this as others make And Make sure that it remains stable But to to explain why it sometimes Uses more or less of the lines above it should never use more than 8 lines Because basically Yeah it is packing the fingerprint Taking the line content putting it into an array And every time It passes it shakes where the letter A You know if it's greater than 10 We cut it down to 6 Ok And this continues to happen over and over and over because we don't want this fingerprint array to become bigger Then let's say 10 lines And at some point when we find A placeholder we actually take that Fingerprint Array And we we create A a hash From it And then we store that has into the database So that means That amount of lines are changing Because it could be a with just cleared the air a and we are at 6 lines And then we had a 7th and now we find a place holder and everything happens Obviously there are two ways in which the code is add it Ok and I think I think Explain that in the Privacy tauriel but I can do that again here Quickly It's Oh here we go In that same file there is a comment With top Which gives their explanation Of the place holders How busy the place holders these these This Axis year Must be Asterix I like that one And they get This is the one with which you would start either to insert or to replace there There is also no time get up about this which may be Wood See more logical Let's go there So here we are and Get up It's an issue 37 if you want to go look at it Under the Joomla component I'm good up The component Builder on get up so Basically to start Inserting code you would use this as a placeholder And then your code Obviously on a new line And then when you're finished this would close that code block but sometimes you don't want it insert code You wanna actually Place code that was generated by JCB And then you'd use to replace code placeholder And then again Use this one to end the code block Now when component Builder On compilation discovers these tags They get converted to from insert to inserted and from replaced from Replace to be replaced And It adds it back with out this diamond In between those Rihanna dollar signs And inserted Text or replace text It removes them because basically by doing that it means that this Score doesn't need to be updated The moment to add those Tupac In there between those 2 Values Then the next time component Builder compiles It actually knows ok this piece of code I Line truncated
Automatic import of custom code during compilation This is one of our latest features that's been added to the JCB component [00:00:16](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m16s) And I'm happy to demonstrate it to you now since all it's functionality is in place Also explain to you some of the limitations that currently still exist And hope that it will become A very useful tool To all of you out there Ok so First what does it do Well Is actually a little mutated from what it's original intent was And it's become two things really so the first thing is And this is obviously what was initially [00:00:52](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m52s) Intended Is that you would be able To add Code To your component once it's been compiled and installed into that same Joomla website That you be able to Go into that code And with a few placeholders Actually add code [00:01:21](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m21s) That once you compile the component again JCB with dynamically grab that code extracted into It's database store it there And from there on forward Continue to add it back in Into the component every time Now The way we've done that As we have not used the line numbers As the main [00:01:50](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m50s) Way of determining where that code must be added because of the reality that line numbers Always will change You know you might have let's say let's say the custom code that you're adding You said line 105 or something And if you make it change at line 20 Then that Means all the code moves down of course and now we don't know where to add your code [00:02:19](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m19s) Without either writing over or placing it before and You know there's all kinds of complications So the only way we could resolve that Is to create What we initially called the fingerprint But later became a Hash Reference of the code a few lines of code above the The the custom script And a few lines of code below the customs [00:02:50](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m50s) Now It varies from how many lines it Uses And there is a reason for it I'm not gonna Bore you with the The detail If you want to see how we do it there is actually The code is open source so you can actually go look at it So there is a function In the A get file which is part of the [00:03:22](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m22s) Compiler a set of Files So The functions name is Search file content And it's in this function that it really goes through every line of the code That is already on The Joomla website and then when it finds it it's adds it to in array which eventually gets safe to do they device So this is the lines that actually does the work [00:03:53](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m53s) Obviously there's lots of things that works With this this function But this is the Yeah this is the centre of Of everything Obviously I'm very sure there are better ways to do this And so we will constantly improve this as others makes suggestions And Make sure that it remains stable But to to explain why it sometimes [00:04:27](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m27s) Uses more or less of the lines above it should never use more than 8 lines Because basically Here it is packing the fingerprint Taking the line content putting it into an array And every time It passes it shakes where that array You know if it's greater than 10 We cut it down to 6 Ok [00:04:54](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m54s) And this continues to happen over and over and over because we don't want this fingerprint array to become bigger Then let's say 10 lines And at some point when we find A placeholder we actually take that Fingerprint Array And we we create A a hash From it And then we store that hash into the database [00:05:24](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m24s) So that means That amount of lines are changing Because it could be or we have just cleared the array and we are at 6 lines And then we add a 7th and now we find a place holder and everything happens Obviously there are two ways in which the code is added Ok and I think I have Explain that in the Previous tutorial but I can do that again here Quickly Let's see where is it [00:05:56](https://www.youtube.com/watch?v=KiAtJawZ3oo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m56s) Oh here we go In that same file there is a comment Way at the top Which gives theLine truncated
+1 -1
@@ -1 +1 @@
Readings We're happy to announce a new feature That's been added To be advanced component builder for Joomla This feature Is a feature I suppose can Can become very Useful In the future of JCB It allows you to export A component Out of JCB And not only The components information but everything attached to it So If a component has Admin views link to it and does admin views have Fields link to it and those Fields Hatfield types linked And Dosa Component has site views in custom admin views And those suck sitefusion custom admin views has templates and layouts And dynamic gets And all these various linked concepts to a component Is exported Now The way that you will export a component Is you simply click on Diss export component And obviously you need to select The component or components that you would like to export Now There's a few things to say when When we want to export a component There are two ways in which we export a component one is An encrypted way And the other is non encrypted Let me show you that in the code So I like you to understand exactly how it works So we have a method here called smart export Builder Now Smart export builder gets fired at the very end Of the Compilation or rather the built Where all the data has now been extracted from the database And it's now 1 Big array Of objects Now Basically in this function Called Get Smart export Is where this data extrusion takes place During this process We actually Take A I will take a Count of a specific value And that values name is export key So in this for each We are looping Through the are the components that you've selected so if you selected more than one Then it will check whether there is an export key For that component now let me show you where that is a set in the user interface When you open a component It has a tab called settings And At the bottom of the right-hand column it has a new A field called export key How you can put any value in here If you leave this value empty And you export only this component Then the component will not be encrypted If you add A value to this field And you export this component it will encrypt That in Kop that components Data The database values It will not encrypt Attached files or folders or images That are part of this component it will only encrypt The data from the database Now Having said that If you select multiple components And any one of them has a key Then it will encrypt All the components Ok And I'll explain again in the code how this Is done So we go back to the code Hey in the code Basically were asking does this component have an export key If it's true and it is a string We actually Disc this key is encrypted in a database So we first check That it is able to be decrypted And then we decrypt the key And then we add it To the key array With the components ID So basically we are building up an array Of each components key Know if a component does not have a key It simply ignored this little script and it continues building its data set Then Once all the data set of all components of finished We basically get to the Smart export builder I set spoke coffee you know When we started looking at the code Now in this Smart export builder we are simply asking have we found any keys If we have found any keys We are gonna explode Implode The array And converted to MD5 string Very simple We will then use this MD5 string With An EAP s Encryption Cypher To lock the data So there is the data No above here we already changed the whole dataset To a serialised string So we have a string in this variable And here we are basically encrypting the whole string And now In this variable we have the encrypted value If we don't have any keys Even if that means if none of the components that was selected Had any kiss set Then it will default to Simply Do a base64 encode And that is swell then gets written to do the file That's part of the package So that is how It exports the data I'm too much about the actual mechanics that's happening here In the bottom of the file You're welcome to obviously look through it And if you see any room for improvement You're welcome to make a pull request This this is obviously the first try Ok so it exports the data and then checks whether we have any keys So if you have For example exporting 5 Components And all five components have keys In all 5 keys will Basically create a very long String And then that whole string will be changed into an MD5 string which is 32 characters And that 32 characters is then used to encrypt the data No not to worry This actual key Which we then end up using to do the encryption Will be shown to you in the interface after the you know after the the data is being export Ok so let's go back to To the to the user interface and let's export a component Ok so I have this component And it has a key And I have other components that has no keys at this stage So I'll select this one as a demonstration And then I'll click export component And as you cLine truncated
Greetings We're happy to announce a new feature That's been added To the advanced component builder for Joomla [00:00:10](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m10s) This feature Is a feature I suppose can Can become very Useful In the future of JCB It allows you to export A component Out of JCB And not only The component's information but everything attached to it [00:00:34](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m34s) So If the component has Admin views linked to it and those admin views have Fields link to it and those Fields have field types linked And those Component has site views and custom admin views And those site views and custom admin views has templates and layouts And dynamic gets And all these various linked concepts to a component Is exported [00:01:09](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m09s) Now The way that you will export a component is you'd simply click on this export component And obviously you need to select The component or components that you would like to export Now There's a few things to say when When we want to export a component There are two ways in which we export a component one is [00:01:36](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m36s) An encrypted way And the other is non encrypted Let me show you that in the code So I like you to understand exactly how it works So we have a method here called smart export Builder Now Smart export builder gets fired at the very end Of the Compilation or rather the built Where all the data has now been extracted from the database [00:02:05](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m05s) And it's now one Big array Of objects Now Basically in this function Called Get Smart export Is where this data extrusion takes place During this process We actually [00:02:25](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m25s) Take A we take a Count of a specific value And that value's name is export key So in this for each We are looping Through the components that you've selected so if you selected more than one Then it will check whether there is an export key For that component now let me show you where that is a set in the user interface When you open a component [00:03:00](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m00s) It has a tab called settings And At the bottom of the right-hand column it has a new A field called export key How you can put any value in here If you leave this value empty And you export only this component Then the component will not be encrypted If you add A value to this field [00:03:32](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m32s) And you export this component it will encrypt That component's Data The database values It will not encrypt Attached files or folders or images That are part of this component it will only encrypt The data from the database Now Having said that [00:03:54](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m54s) If you select multiple components And any one of them has a key Then it will encrypt All the components Ok And I'll explain again in the code how this Is done So we go back to the code now in the code Basically we are asking does this component have an export key [00:04:16](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m16s) If it's true and it is a string We actually this key is encrypted in a database So we first check That it is able to be decrypted And then we decrypt the key And then we add it To the key array With the component's ID So basically we are building up an array [00:04:41](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m41s) Of each component's key now if a component does not have a key It simply ignores this little script and it continues building its data set Then Once all the data set of all components are finished We basically get to the Smart export builder I set spoke of you know When we started looking at the code Now in this Smart export builder we are simply asking have we found any keys If we have found any keys [00:05:15](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m15s) We are gonna explode sorry, Implode The array And convert it to MD5 string Very simple We will then use this MD5 string With An AES Encryption Cypher To lock the data [00:05:37](https://www.youtube.com/watch?v=lkE0ZiSWufg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m37s) So there is the data Now above here we already changed the whole dataset To a serialised string So we have a string in this variable And here we are basiLine truncated
@@ -1 +1 @@
Hi I wanna demonstrate to you How to add a button To your components admin View Either in the list area Or in the edit area of the View No I possibly have touched on this In previous tutorials but I thought Well let's make one tutorial it just deals with that Ok so I have a Blank install of JCB here I just got this demo component Installed Or map and I've been stalled it into this website So if I go to Luke's it just looks as it should Create an item And the Just the Give it some details Say Click save and close and we have an item now you see there's whole Hold on two buttons here and if you go into the test There's also a bunch of buttons here All of them are usually there there there there is not the default buttons So what do you wanna do if you want to Actually create buttons in these areas without custom Kodi You can of course do it with custom coding but there is a JCB way to do it Uno in JCB What is length So let's go back to our Admin views And then we open the admin view called look And you'll see there's a custom buttons area here I click on that We say yes we wanna add custom button They would see that it opens control methods And also list view controller methods Now that were Obviously You need to understand the MVC Your controller your model again your controller and your model Each view has two controllers two models Because it has a listview And it has a edit View The list who has its own controller and method model And the edit view has his own controller and model so depending on where you placing the button It will affect Which model and which controller You need to use I'm not gonna explain much about the PHP being placed in these blocks Because That should be something you know how to do If you don't you need to learn you need to study 2 to work with Joomla API I'd not able to also you know educate you on that now at this stage So you do a custom button you click on adding a button here's your icon you cancel Select any of the icons these are the default Joomla icons that the user support Icon Icomoon or something So you can use that Then the name of the button What you wanna call it so I'm just gonna call it a test for now then the name Name of the controller method So I'm gonna just call that get Tested and Then We'll decide is this gonna be at edit view a Single View Target A list you or both You know where Where must this button show up So I'm gonna do Just 14 First list And then If it's a listview See that says list Target Then We could decide whether this is only a function No I wanted to selection It means that you need to select some items And then click the button For it to actually submit those ideas of the selected items If it is a only a function you don't need to select anything When you click the button a function Will obviously be triggered Which doesn't require you to give it any information So it's basically just gonna Do something And that obviously You need to be able to code Ok so I'm just gonna Use the default The default is actually Very much like selection but it It behaves differently if you Yeah I think the best way to do this is select one of the options Compare the component Eagle look at the code And I'll show you where the code ends up And then you can decide what you wanna do Ok so I'm gonna just save this As a selection in a listview and Save Ok At this stage if we do not add Values to these blocks for some reason it will scream at us so we just had to False lashes Which basically Satisfies it's Requirement of having information I'm gonna add a little method here that's it they gonna redirect us To the dashboard And I'm I'm gonna call it Get tested That that is simply a A controller method it must be public Here we simply checking whether it was submitted from the current website and Then we just gonna redirect To the components dashboard Yeah We not gonna need a mess it now because we just redirecting But if you I will show you that in a minute let me just do this for now And then let's save and close And let's go compile this component So we will just select The demo component from pilot And then re-install it To see the changes I'm gonna go to the component And then to Luke's and I will see there is a new button called test And if we click it It's empty redirect us to the dashboard So that's all it does just redirects us And you can then off the sleeve redirect to anything So that's just a first way of implementing a button in the listview Now that is go back to to editing that the functionality there for the showing you some more Options So just open this again Go to custom buttons Now maybe just add another button We call it single And we again call it something like And The controller method And will leave this to default and then Save So now in the controller method we said we gonna have a function called get done and So here will just put a Public function So this time we will actually get the model and then Do something with it in the model we cLine truncated
Hi I wanna demonstrate to you [00:00:03](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m03s) How to add a button To your components admin View Either in the list area Or in the edit area of the View Now I possibly have touched on this In previous tutorials but I thought Well let's make one tutorial it just deals with that Ok so I have a Blank install of JCB here I just got this demo component Installed [00:00:33](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m33s) Or mapped and I've been installed it into this website So if I go to Looks it just looks as it should and we can create an item And the Just the Give it some details Say Now we click save and close and we have an item now you see there's a whole bunch of buttons here and if you go into the test There's also a bunch of buttons here [00:01:19](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m19s) All of them are usually there those are the default buttons So what do you wanna do if you want to Actually create buttons in these areas without custom coding You can of course do it with custom coding but there is a JCB way to do it You know in JCB quite easily So let's go back to our Admin views And then we open the admin view called look And you'll see there's a custom buttons area here I click on that [00:02:02](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m02s) We say yes you wanna add custom button They would see that it opens control methods And also list view controller methods Now that will Obviously You need to understand the MVC Your controller your model again your controller and your model Each view has two controllers two models Because it has a listview And it has a edit View [00:02:32](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m32s) The list view has its own controller and model And the edit view has his own controller and model so depending on where you placing the button It will affect Which model and which controller You need to use I'm not gonna explain much about the PHP being placed in these blocks Because That should be something you know how to do If you don't you need to learn you need to study to work with Joomla API [00:03:02](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m02s) I'd not able to also you know educate you on that now at this stage So you do a custom button you'd click on adding a button here's your icon you can Select any of the icons these are the default Joomla icons that they use also called Icon Icomoon or something So you can use that Then the name of the button What you wanna call it so I'm just gonna call it a test for now then the Name of the controller method So I'm gonna just call that get [00:03:39](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m39s) Tested and Then We'll decide is this gonna be an edit view a Single View Target A list view or both You know where Where must this button show up So I'm gonna do Just one for First list And then If it's a listview [00:04:02](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m02s) See that says list Target Then We could decide whether this is only a function Now when it is a selection It means that you need to select some items And then click the button For it to actually submit those ids of the selected items If it is a only a function you don't need to select anything When you click the button a function Will obviously be triggered [00:04:30](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m30s) Which doesn't require you to give it any information So it's basically just gonna Do something And that obviously You need to be able to code that Ok so I'm just gonna Use the default The default is actually Very much like selection but it behave differently if you [00:04:57](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m57s) Yeah I think the best way to do this is select one of the options Compile the component and go look at the code And I'll show you where the code ends up And then you can decide what you wanna do Ok so I'm gonna just save this As a selection in a listview and Save Ok At this stage if we do not add Values to these blocks for some reason it will scream at us so we just had to [00:05:31](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m31s) Ford slashes Which basically Satisfies it's Requirement of having information I'm gonna add a little method here that simply gonna redirect us To the dashboard And I'm I'm gonna call it Get tested That that is simply a A controller method it must be public [00:05:58](https://www.youtube.com/watch?v=VyBxWpJWb40&list=PLQRGFI8XZ_wtGvLine truncated
+1 -1
@@ -1 +1 @@
Hi everyone We're getting have a great announcement to make JCB has again been expanded To now include a language translation Feature We are very grateful one of the contributors have Extended the code base for this We obviously Working together to Sure that it remains stable Those of you that been following The process on guitar pool Will know that As much time and effort Put into this So I would like to give you a quick explanation Of how this will work I love you that already using JCB Oh or a CB depends on We are asking acb advanced component builder JCB Gmail component Builder It is Actually work in English component And It builds the English Language file for you So every where in your fields When you create a field There there are areas in the in the field That says that it's translatable Translatable not translatable translatable And if you enter those values here JCB on the fly with take this description for example In all converted into a language placeholder An old added to the language file The English language file The British one Now This is all being done automatically For every area of the JCB Compiler Even in templates and views That's no front end If you create Uno side views And even templates and layouts You can Just adding These placeholders these straight text with the actual English language string in it Then the pasta with automatically crap that text and added to the language file So So currently JCB is building A a a complete English Language File for you And that means it's Already able to be Can I translate it But it has not have the feature for you to add Multiple other languages And so that is really but what is been the request The request is Isn't there a way we could Actually Translate This language strings And then when Jason be compiled to component it automatically add these other languages And so The The suggestion was That we basically Add an area where you can Create as many languages as you like Obviously in accordance with the conventions Your language tags Need to be in in accordance with the correct prefix is used in Joomla So I think we could add a link here Maybe on this page some point just to take you somewhere where you can find all the information to To use the correct Tagging For your language while And here you could obviously add the language name So you can create as many languages as you like Then When you compile a component JCB obviously life explained Grabs all the strings from everywhere And Adds into the British English translation file now let me show you some of that Happening in the code So here in the the gate Class We have a function called settling strings It basically you get it gets the content from wherever JCB is handing it And it passes it To see whether it has Either this language string or that one Then it does some gymnastics here to grab all the actual strings into an array A minute parts is this array Once it has it And it converts it Dual language string And it adds it back Into the content and returns the content and then With this matter We call it an object array It is adding the language string And the language key To the lung content array So that's a first thing we have this land can't enter a There's all over the place and it just gets Uno bulkier and bulkier Now the slang is basically the target It's the area Which this language strings belong to either the site Although Cite a system or the admin or the admin system area So there are four areas where the site this language string all there there is also such a thing as both While JCP compiles Some strings he knows must go to both And this is the actual language string be capitalised string Which is generated up here And This is then I trimmed and placed in in it Space Now Disarray Gets Placed into the files at a certain Point That point is very much at the very end of the compilation of course when everything is being sort of done Done We actually get to the place where We gonna now add two strings to the files So first we are basically Calling a function called said lung admin said lung system basically This is in the interpreter You can see these these methods are here said langside Euro said lung admin Basically adds a bunch of strings that are default always being added And then Also all the other strings have been built And then Move them over to a string called language And obviously the British English and it's for the admin area And so it does for all the various areas And did this Indian Fusion class it brings it together And then we grab the values of this strings We added to our value array And we basically Have the old multi language implementation running down From here from line Hundred 97 We start running into the multi language string implementation Now what does this do Basically It queries the database To see whether there is such a LAN English language string in the database And whether there is been any translations made for it So doesn't really use theLine truncated
Hi everyone We again have a great announcement to make [00:00:06](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m06s) JCB has again been expanded To now include a language translation Feature We are very grateful one of the contributors have Extended the code base for this We obviously Working together to insure that it remains stable Those of you that been following The process on GitHub [00:00:34](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m34s) Will know that As much time and effort Put into this So I would like to give you a quick explanation Of how this will work those of you that are already using JCB or ACB depends on We are asking ACB Advanced Component Builder JCB Joomla component Builder It is Actually a English component [00:01:00](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m00s) And It builds the English Language file for you So every where in your fields When you create a field There are areas in the in the field That says that it's translatable Translatable not translatable translatable And if you enter those values here JCB on the fly would take this description for example [00:01:33](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m33s) and will convert it into a language placeholder and will add it to the language file The English language file The British one Now This is all being done automatically For every area of the JCB Compiler Even in templates and views That's now your front end [00:01:56](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m56s) If you create you know site views And even templates and layouts You can Just adding These placeholders these Jtext with the actual English language string in it Then the passer will automatically grab that text and add it to the language file So So currently JCB is building A complete English [00:02:25](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m25s) Language File for you And that means it's Already able to translate it But it has not had the feature for you to add Multiple other languages And so that is really what has been the request The request is Isn't there a way we could [00:02:46](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m46s) Actually Translate This language strings And then when JCB compiles the component it will automatically add these other languages And so The The suggestion was That we basically Add an area where you can Create as many languages as you like Obviously in accordance with the conventions [00:03:10](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m10s) Your language tags Need to be in in accordance with the correct prefixes used in Joomla So I think we could add a link here Maybe on this page some point just to take you somewhere where you can find all the information to To use the correct Tagging For your language file And here you could obviously add the language name So you can create as many languages as you like [00:03:39](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m39s) Then When you compile a component JCB obviously like I have explained Grabs all the strings from everywhere And Adds to the British English translation file now let me show you some of that Happening in the code So here in the Get Class We have a function called setLangStrings [00:04:07](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m07s) It basically gets the content from wherever JCB is handing it And it parses it To see whether it has Either this language string or that one Then it does some gymnastics here to grab all the actual strings into an array then it parses this array Once it has it And it converts it To a language string And it adds it back [00:04:34](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m34s) Into the content and returns the content and then With this We call it an object array It is adding the language string And the language key To the langContent array So that's a first thing we have this langContent array It's all over the place and it just gets bulkier and bulkier Now the lang is basically the target [00:05:04](https://www.youtube.com/watch?v=zzAcVkn_cWU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m04s) It's the area Which this lang strings belong to either the site or the Cite system or the admin or the admin system area So there are four areas where the site this language string all there is also such a thing as both While JCP compiles Some strings he knows must go to both And this is the actual language string be capitalised string Which is generated up here And [00:05:34](https://www.youtube.com/watch?v=zzAcVknLine truncated
+1 -1
@@ -1 +1 @@
Hi I would like to show you how to set the side view permission Site new permission is really related to the front end of any side view Since it usually by Default says set not allowed And that is basically because We have The problem where That data is controlled Biovac Global settings of the component And unless you write some custom script to add that Global settings to the database for permission It actually doesn't have those permission set and because it's not set it's by Default always said to not allowed Now let me explain that on a code level 2 Ok what you summon distributor which is One of the demo components that is available In a few Interested in buying access to this demo component It obviously has site views So If we open the options tab You see there's a permission or tab And if we search for sight You see there is category site access Plural and category Site in Access single there's also preacher side access and preachers And series and series list And sermon And all these various site accesses Literally saying whether the public Will have access Now by Default as I said It is set to inherit And inherit will actually say not allowed Now they are there's something that I've done to try and accommodate this problem In JCB So let's Let's close out here and look at some of the decoder off down there Guess I will have to go to component Builder And then to components And I'll open swimming distributor Then I will go to settings And then sight views MasterCard And Now you will see that we have here A value called default View Now what the default view really is Is that the view That The component will Direct you to If you are accessing a view That you as a user don't have access to So Usually we would set the default View to not have an access Control So Will say ok the default View Doesn't have access control That means it's actually open and public to all And then we could Explain on this view How to get access for example to the rest of the component But For the because you could see and what user group the user is and you can buy that determines some messages Ok So that means whenever you have obviously there can only be wonderful view even if you select more than One the first one the compiler gets to will become the default view the next one will be ignored so So they can only be one at the moment it says that he has to look 21 and so if you have an ass Access for categories and it's not yet set It will throw the user back to for example here preachers Now What is the advantage of this it's simply Gates the error page So that you don't get a loop where the The permission just never gets resolved so just goes into a loop and 8 then crash the site This prevents that but it obviously doesn't solve our permission structure of completely But it is at least a first step towards trying to resolve it so you would say it This is your default page don't give the default page promotional structure so if any of the other pages is accessed Best it will divert to the default page And now the next step that we have to try and address this problem Is some custom scripting That you can add Which will show After installation so let me show you some of that The component where we actually have this shown is the demo component So you can just open the PHP tab An independent app you see That it has a cute message In the post flight in stalled blocks basically gets the factory Get application first set the component Global setting and the permissions in the option Area All the front end of the component will not work as expected Please note that each view on the front and has access and permissions So if you would like the public to access those views They must be given the axis and Permission And then this is just an info Message that comes up Basically after install So that is another way that we've tried to help the user realise that he needs to Add some now you can obviously Change this into a link Become very fancy Or You could Even add Custom script here That updates The This components promotional structure And actually adds the public to to have access to the site views These are some of the ways that we are trying to resolve the promotional restraints Of Sight views Now Yeah that's look at this I was saying earlier at the code level so forgive me for taking so long to get So here we have the access file open of sermon distributor And if we do a search here Site You see that it has the site access values set for the component Now When we look at The front end of the component Open categories You see that here it is asking whether the user Has that access And then if it doesn't It does a redirect and then redirects to the default page you see that Now let's open the default page And The ideal of the default page Is that if the default page is not the side route It will If It cannot access the default page it will actually add this error And then redirect to the site root Which being the websites homepagLine truncated
Hi I would like to show you how to set the site view permission the Site view permission is really related to the front end of any site view Since it usually by Default set not allowed And that is basically because We have [00:00:22](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m22s) The problem where That data is controlled By the Global settings of the component And unless you write some custom script to add that Global settings to the database for permission It actually doesn't have those permissions set and because it's not set it's by Default always said to not allowed Now let me explain that on a code level to you Ok we will use sermon distributor which is One of the demo components that is available and if you are [00:00:57](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m57s) Interested in buying access to this demo component It obviously has site views So If we open the options tab You see there's a permissional or tab And if we search for sight You see there is category site access Plural and category Site Access singular there's also preacher site access and preachers And series and series list [00:01:38](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m38s) And sermon And all these various site accesses Literally saying whether the public Will have access Now by Default as I said It is said to inherit And inherit will actually say not allowed Now they are there's something that I've done to try and accommodate this problem In JCB So Let's close out here and look at some of the code I have done there so I will have to go to component Builder [00:02:12](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m12s) And then to components And I'll open sermon distributor Then I will go to settings And then sight views I will click add And Now you will see that we have here A value called default View Now what the default view really is Is that the view [00:02:45](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m45s) That The component will Direct you to If you are accessing a view That you as a user don't have access to So Usually we would set the default View to not have an access Control So Will say ok the default View [00:03:12](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m12s) Doesn't have access control That means it's actually open and public to all And then we could Explain on this view How to get access for example to the rest of the component . For because you could see in what user group the user is and you can by that determines some messages Ok So that means whenever you have obviously there can only be one default view even if you select more than One the first one the compiler gets to will become the default view the next one will be ignored [00:03:52](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m52s) So they can only be one at the moment it says that here select the only one and so if you have an Access for categories and it's not yet set It will throw the user back to for example here preachers Now What is the advantage of this it Simply negates the error page So did you don't get a loop where the The permission just never gets resolved so just goes into a loop and then crash the site This prevents that but it obviously doesn't solve our permission structure of completely But it is at least a first step towards trying to resolve it so you would say it This is your default page don't give the default page permissional structure so if any of the other pages is Accessed [00:04:43](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m43s) it will divert to the default page And now the next step that we have to try and address this problem Is some custom scripting That you can add Which will show After installation so let me show you some of that The component where we actually have this shown is the demo component So you can just open the PHP tab And in the PHP tab you see That it has a enqueue message [00:05:19](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m19s) In the post flight in stalled blocks basically gets the factory Get application first set the component Global setting and the permissions in the option Area or the front end of the component will not work as expected Please note that each view on the front end has access and permissions So if you would like the public to access those views They must be given the access and Permission And then this is just an info Message that comes up [00:05:54](https://www.youtube.com/watch?v=gWjQjdhYqXI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m54s) Basically after install So that is another way that we've tried to help the user realise that he needs toLine truncated
+1 -1
@@ -1 +1 @@
Hi I would like to demonstrate to you one of the latest features that's been added to JCB If it's a request was made about 11 days ago Auto generate my update SQL After a lengthy discussion Surgeon was made to add the The future and I am basically done doing so first let me give you some back Background so you can understand where we coming from When you create a component in Joomla Then usually you have a set of views and these views in the backend are linked to a set of tables I'm so on the installation of the component For example if we do so here would there to be It actually Both the tables for those views on installation So then if you go to the back and I'll the component And You create a new item And actually stores the value in the database So that it can be retrieved that's very basic The reality is If you as a developer make it rains To this component Which involves new tables Then Obviously you would need to add Extra script to your components package So did upon installation If it's fines that there is already an existing component it will actually update the database accordingly to the new New settings the new tables or any Fields added or so forth So we gonna demonstrate this In KC Be There used to be a way to do that which still works by the way how was Emmanuel way a way for you to manually at the ink news it's equal State That are needed to make the update it was done under this version updates tab so you would click on the Virgin out Updates tab and here you would add your specific sequel Query script and Pawn installation If the existing version is below This update it will grab this and install it into the database creating the new tables and so forth So What I'm gonna do now is you'll see that at the moment This admin view has only 1 2 3 4 5 6 Views I'm gonna add another View to this component You can see it doesn't have these buttons ticked I don't not know how to resolve this it seems like This is a tubular problem Because there are multiple Columns of interview Because if you close it and click it again And actually fix the sad anyway that's just by the way so now here I'm gonna add a new View Called help documents and just make some minor changes to the defaults Added to the 7th position And then click save and click save again So now we basically add a new view which means a new table to the database But we haven't written any of the SQL Because with the new changes this is gonna be done for you automatically on the moment to compile this Component So let's do that So how are you we are we gonna again compile this component is see it's very soon is it still 4.1 1.4.1 So We compiling it Now what is the system is doing is it's tracking the history and it's making a lot of calculation Sims to dynamically realise that there is been a new table increment The version number And If I now Install this component And I go and open that component I'll see that menu view is here if I open the view there is no errors Why create new Hmm it'll automatically start behaving the way that is expected And That is really Say Text And then hi So we are targeting The External sources So forgot You are the things here Russia currency The database already stores the values And the new table is actually therefore in the database and working as expected now How you realise that This means that our JCB component Has been updated to if I refresh this page You'll see that the version number has been incremented And if you open the version updates and scroll down you would see that one point So wait now 1.4 point 1 Got this new Opac rating of a help document Table And a new version got allocated here Obviously we do not know what is this link and so we add this demo link here with you need to manually update They still But that is by far tremendous improvement Ok this also works not only worth The adding of a new view but also if you were to add a field To an existing view so let me demonstrate that quickly So I'm gonna be adding a new field to the preacher View I'm simply gonna select any Fields and soul removed again Let's call it Image And I'm gonna add this to left One That must be there in 2 And save And save and close So now I've added a new field to preachers And again I'll be going to the compiler And I'll select the component and just compile And again since of detected there's been a few change and increment it the version number And if I install the component And we go to the component To the preachers View We'll I'll see That new field actually there Image And if I was to select an image And save You'll see that it Really Oops I see I actually missed it The reason was that This component didn't have any history so I had to go and make a few changes take care Counted your building a component from the ground up it will have his 3 So this is only gonna be happening when you have install a component Bio the import function in the components or maybe using the demo component So what I would advise it jLine truncated
Hi I would like to demonstrate to you one of the latest features that's been added to JCB If it's a request was made about 11 days ago Auto generate my update SQL After a lengthy discussion the decision was made to add the The future and I am basically done doing so first let me give you some Background so you can understand where we coming from When you create a component in Joomla Then usually you have a set of views and the views and the backend are linked to a set of tables [00:00:38](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m38s) I'm so on the installation of the component For example if we do so here with JCB It actually Builds the tables for those views on installation So then if you go to the back end of the component And You create a new item it actually stores the value in the database So that it can be retrieved that's very basic The reality is [00:01:17](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m17s) If you as a developer make a change To this component Which involves new tables Then Obviously you would need to add Extra script to your components package So did upon installation If it finds that there is already an existing component it will actually update the database accordingly to the New settings the new tables or any Fields added or so forth So we gonna demonstrate this [00:01:47](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m47s) In JCB there used to be a way to do that which still works by the way it was manual way a way for you to manually add the new SQL statements That are needed to make the update, it was done under this version updates tab so you would click on a version Updates tab and here you would add your specific sequel Query script and upon installation If the existing version is below This update it will grab this and install it into the database creating the new tables and so forth So What I'm gonna do now is you'll see that at the moment This admin view has only 1 2 3 4 5 6 [00:02:38](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m38s) Views I'm gonna add another View to this component You can see it doesn't have these buttons ticked I don't not know how to resolve this it seems like This is a Joomla problem Because there are multiple Columns in this view Because if you close it and click it again And actually fixes that anyway that's just by the way so now here I'm gonna add a new View [00:03:09](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m09s) Called help documents and just make some minor changes to the defaults Add it to the 7th position And then click save and click save again So now we basically add a new view which means a new table to the database But we haven't written any of the SQL Because with the new changes this is gonna be done for you automatically on the moment to compile this Component So let's do that So now here we are, we are going again compile this component you see it's version is it still 1.4.1 [00:03:49](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m49s) So We are compiling it Now what the system is doing is, it is checking the history and it's making a lot of calculation To dynamically realise that there is been a new table increment The version number And If I now Install this component And I go and open that component I'll see that the new view is here if I open the view there is no errors [00:04:20](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m20s) if I create new it'll automatically start behaving the way that is expected And That is really Let say, text And then, hi So we are targeting The External sources [00:04:43](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m43s) So forgot Few other things here as you can see The database already stores the values And the new table is actually therefore in the database and working as expected now you realize that This means that our JCB component Has been updated so if I refresh this page You'll see that the version number has been incremented [00:05:14](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m14s) And if you open the version updates and scroll down you would see that one point ....... 1.4 .1 Got this new creating of a help document Table And a new version got allocated here Obviously we do not know what is this link and so we add this demo link here which you need to manually update still But that is by far a tremendous improvement [00:05:44](https://www.youtube.com/watch?v=bRPJTRat158&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m44s) Ok this also works not only with The adding of a new view but also if you were to add a field To an existing view so let me demonstrate that quicLine truncated
+1 -1
@@ -1 +1 @@
Hi I'd like to calculate give you a tutorial On how to Basically add An admin View To the front end of your site So They can be editing and submission Of the front end After specific admin View now Illustrate this I'm gonna use the public version of JCB And it has this demo Version in it so basically first I'll just compile it Uninstall it to the local Joomla website So we can see what happens And then install it And then basically open it So here we have the The demo version That is public it available and it basically has a admin view called looks So if you go to the list you off the admin View I called looks you'll see There is None will create new And then There is basically a description box A more item where you can click And see some Custom Fields and fields Being built sorry email mobile birth Image website And your normal publish and permission structure for the view And the name field Now that's basically what I referred to her as the admin View It's this club combination of pills working together in one View Now what else show you is how to add this Editing area basically the these three tabs To the front end of your site Total real function like a form Now who you would allowed to access the form will be dependent upon the permissions truck You see the permission structure Is what Actually controls who can edit And who can add Items to a specific admin View So currently as you can see your public cannot actually edit this If we created an item They cannot edit it so there's an item level on permissions River Close out of this Then you'll see here and options there is also a global control on Permissions So the global control of permissions Is also if you want public to be able to submit To to this form you need to Allow them to be able to create so you would say allow And now the public is allowed to create And You see that usually Most components has more than one View This one only has one it's called look So you'll also have to Over here Say hello And if you want them to edit existing submissions Then there is the edit State at its own created by All these things in the Global Spec as well as in the local edit of The View So there there's basic basically two switches here one is in Global switch and one that is Saflii focusing on the view so if you cannot access the view on the front end After we've created it it is actually would need to come back to to this area and And sort out the permissions for the specific group Who should have access to the specific View On a front end Ok so this is what this promotional structure is is quite intense and Extendable so that you can target specific groups with Pacific permissions and so forth For every View The JCB bolts in the admin As well as site Ok let me cancel out of here I'm not gonna Make any further changes here So we basically in the demo component now I'm gonna go back to JCP and basically I'm gonna flip one switch and then JCB will actually develop or write the core For the site end of this component So I'm going back to JCP Going to components And I'm opening the component And now in the component there is an area called settings where are viously all your admin views Are linked right so I'm gonna open that Are usually there is a little bug in And you wanna wish if you open it the first time it doesn't Reflector original setting So I usually just open it cancel it and then open it again and you'll see that the original setting is Is back And You see hear that Edit create side view Must be set to yes If it said 2 years then it means that it's gonna create and side view Off this look as so that you can edit it on the site end and not only in the admin Area And it also means create items So I'm just gonna say this And then also save and close And then go back to compiler Compile Demo I see that off Go Install it Now let's go look at the code So looking at the demo websites folder structure with Anna go to components And then we'll see that there is a com underscore demo folder And we will see there is the modules as well as their controllers As well as the views So there is basically This is the view that was dynamically generated Bye JCB review called look And then the model also called look And the controller Are you can open that To actually see what was the code that was written And so as you can see it's basically looks very similar to the admin area except that it's been slightly Modified For your front end And it's requirements As you can see we were adding Some CSS classes and JavaScript From the back end And Then Here's the sorry the model Basically get item get form And then here is the controller Ok so we We just showing at the core just basically what was created Now The fact that this was created Doesn't mean that there is actually Now set of links That you can click and edit the forms which was submitted For that there is a link to create any So these these things is what you need to do manually Now so Let's show you some of thaLine truncated
Hi I'd like to quickly give you a tutorial On how to Basically add An admin View To the front end of your site So There can be editing and submission Of the front end of this specific admin View now Illustrate this [00:00:23](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m23s) I'm gonna use the public version of JCB And it has this demo Version in it so basically first I'll just compile it and install it to the local Joomla website So we can see what happens And then install it And then basically open it So here we have the The demo version That is publicly available and it basically has a admin view called "Looks" [00:01:07](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m07s) So if you go to the list you of the admin View I call Looks you see there is none, we will create new And then There is basically a description box A more item where you can click And see some Custom Fields and fields Being built sorry email mobile birth Image website And your normal publish and permission structure for the view [00:01:37](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m37s) And the name field Now that's basically what I referred to as the admin View It's this combination of fields working together in one View Now what I will show you is how to add this Editing area, basically the these three tabs To the front end of your site So that it will function like a form Now who you would allowed to access the form will depend upon the permissions structure You see the permission structure Is what [00:02:14](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m14s) Actually controls who can edit And who can add Items to a specific admin View So currently as you can see your public cannot actually edit this If we created an item They cannot edit it so there's an item level on permissions and if I Close out of this Then you'll see here in options there is also a global control on Permissions So the global control of permissions [00:02:46](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m46s) Is also if you want public to be able to submit To to this form you need to Allow them to be able to create so you would say allow And now the public is allowed to create And You see that usually Most components has more than one View This one only has one it's called look So you'll also have to Over here [00:03:13](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m13s) Say allow And if you want them to edit existing submissions Then there is the edit State edit own created by All these things in the Global Spec as well as in the local edit of The View So there is basically two switches here one is a Global switch and one that is specifically focusing on the view so if you cannot access the view on the front end After we've created it it is actually would need to come back to to this area and And sort out the permissions for the specific group Who should have access to the specific View On a front end [00:03:57](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m57s) so this permissional structure is quite intense and Extendable so that you can target specific groups with specific permissions and so forth For every View The JCB bolts in the admin As well as site Ok let me cancel out of here I'm not gonna Make any further changes here So we basically in the demo component now I'm gonna go back to JCB and basically I'm gonna flip one switch and then JCB will actually develop or write the code [00:04:34](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m34s) For the site end of this component So I'm going back to JCB Going to components And I'm opening the component And now in the component there is an area called settings where obviously all your admin views Are linked right so I'm gonna open that Are usually there is a little bug in Joomla which if you open it the first time it doesn't Reflect the original setting So I usually just open it cancel it and then open it again and you'll see that the original setting is [00:05:17](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m17s) Is back And You see here that Edit create site view Must be set to "Yes" If it is set to "Yes" then it means that it's gonna create a site view Off this look as so that you can edit it on the site end and not only in the admin Area And it also means create items So I'm just gonna save this [00:05:44](https://www.youtube.com/watch?v=tmB22d9dQ4M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m44s) And then also save and close And then go back to compiler Compile Demo I see that off Go Install it Now let's go look at the code So looking at the demo websites folder structure we are going to coLine truncated
+1 -1
@@ -1 +1 @@
Hi I would like to demonstrate to you the new automated backup feature that's been added to JCB It is part of a Extension Which I called the API Which really gives you the option of Querying JCB Via a URL To perform certain functions First of which would be to actually generate a backup We not sure exactly What kind of features we should be adding to this API And we started to discussion About this one kid hopping Welcome to Give me a shout To send me an email you can Just check here Email address Behind this link here Features we want to add to the API Currently the first one like I said is the backup feature Now JCB already Has in its Component area Export component feature which we basically just extended To automate But we've left it as well Here is a button called backup and it actually is the same feature except You can now manually also trigger that feature Now what does backup feature does Ida been triggered by a A cron job or being triggered by this button Is it actually Takes all your components And Exports them Encrypt stem Stores them on a local folder And emails the key to a Trusted email address Would you have set up Now The Components that are in your trash will not be Actually part of this backup So only components that are published Or unpublished or archived Will be in the back of every everything else will be Lord And Basically when the backup runs either manually or automated fire A cron job It will take hers components Use the specific keys as it would with an exporting of a component An encrypted And Store them in that folder as I said Now There are some things you need to set up For this to work As expected The first of these being in the options area of JCB there are some new Feature so let's just open that So we see there is now a mail configuration Idk IM And a cron job Tab in added and also this field here called API user Maybe let me start with this field The API user Obama Rolly be used 4 The ID that is used In the permission structure You see When you are in the components area And you trigger this feature manually It actually uses this current logged in user To determine whether that The components being you know encrypted and backed up Weather has the permission to actually Do that Now Getaway As we increase the permission structure of JCB You might end up having components that certain individuals who are in certain groups may not have access Them And then there might be components and Fields and buse that they may have access to Or some that they may not have access to And so we're ready now Laying some of the foundation to make sure that there isn't some loophole Where are there by Triggering a bash sorry at batch Update on export of components or backup The camp extrude certain components which they actually by Default don't have access to I know that's a long explanation but But that's just to give you a background to why we still need an API user We still need a user Which now if it's automated the backup That this user ID actually Allows him to make the backup So that means that the IP API user should be a user Which has the permission To all the actual components Fields and Well everything actually In the JCB component Now It is secure because like I said the component Gets Compiled And stored locally We might Consider adding The option to push the component backup to an FTP Server But that part is not fully functional yet We we have had D The proposals made to do that so that The Back-up is actually not even on the same system But I did it's secure on another system so if this system Collapses You you still safe You still got you your data out So that sounds to me as a good Idea and so we will be adding an FTP Option as well Which will very much for the work similar as your components When you compile a component and it sends it off to a sale server or Or such That is really the same features will make use of anyway so That's just talking about Selecting an API user And why that is important Now When we go to the cron job Tab Will see that there is some is true basic instructions here Ioffer goes if you familiar with cron jobs I suppose there everything is self explanatory Those who are not I would suggest to Google around Find some tutorials Read up Make sure you know what you're doing And that you're a very comfortable and setting up a cron job There are various ways for you to trigger this URL The system currently detects whether your system actually can run crawl request And if it can't it will fall back on the we get option Assuming that JCB is installed In an environment that allows these two functions to work If not you can simply take Only the URL And run it in a cron job In in the manner that is Uno applicable to your system And know that This your L actually just triggers The backup to start And when the backups finished It actually just tells you The same message that you will get If you run the backup by clicking back up here You see there is a green mesLine truncated
Hi I would like to demonstrate to you the new automated backup feature that's been added to JCB It is part of a [00:00:13](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m13s) Extension Which I called the API Which really gives you the option of Querying JCB Via a URL To perform certain functions First of which would be to actually generate a backup We not sure exactly What kind of features we should be adding to this API And we started to discussion [00:00:42](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m42s) About this on GitHub and You're welcome to Give me a shout Just send me an email you can Just check here My email address is Behind this link here Features we want to add to the API Currently the first one like I said is the backup feature Now [00:01:07](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m07s) JCB already Has in its Component area An export component feature which we basically just extended To automate But we've left it as well Here is a button called backup and it actually is the same feature except You can now manually also trigger that feature Now what this backup feature does Either being triggered by a [00:01:36](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m36s) A CronJob or being triggered by this button Is it actually Takes all your components And Exports them Encrypts stem Stores them on a local folder And emails the key to a Trusted email address Would you have set up [00:01:58](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m58s) Now The Components that are in your trash will not be Actually part of this backup So only components that are published Or unpublished or archived Will be in the backup every everything else will be ignored And Basically when the backup runs either manually or automated via A CronJob [00:02:26](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m26s) It will take those components Use the specific keys as it would with an exporting of a components An encrypted And Store them in that folder as I said Now There are some things you need to set up For all this to work As expected The first of these being in the options area of JCB there are some new [00:02:52](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m52s) Feature so let's just open that So we see there is now a mail configuration at DKIM And a CronJob Tab it added and also this field here called API user Maybe let me start with this field The API user Primarily be used for The ID that is used [00:03:20](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m20s) In the permission structure You see When you are in the components area And you trigger this feature manually It actually uses this current login user To determine whether that The components being you know encrypted and backed up Whether he has the permission to actually Do that Now [00:03:44](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m44s) This a way As we increase the permission structure of JCB You might end up having components that certain individuals who are in certain groups may not have access to them And then there might be components and Fields and views that they may have access to Or some that they may not have access to And so we're already now Laying some of the foundation to make sure that there isn't some loophole Where are there by Triggering a bash sorry a batch [00:04:17](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m17s) Update or export of components or backup They can't extrude certain components which they actually by Default don't have access to I know that's a long explanation but It's that's just to give you a background to why we still need an API user We still need a user Which now if it's automated the backup That this user ID actually Allows him to make the backup So that means that the IP sorry The API user should be a user [00:04:52](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m52s) Which has the permission To all the actual components Fields and Well everything actually In the JCB component Now It is secure because like I said the component Gets Compiled And stored locally We might [00:05:14](https://www.youtube.com/watch?v=GUWZaODo_IM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m14s) Consider adding The option to push the component backup to an FTP Server But that part is not fully functional yet We we have had the The proposals made to do that so that the backup is actually not even on the same system But did it secure on another system so if this system Collapses You you still safe [00:05:41](https://www.youtube.com/watchLine truncated
+1 -1
@@ -1 +1 @@
Hi Recent question came up that was asking about help menu integration For JCB components You see the JCB itself Hazardous Help document area No I have not actually had time to Expand upon this help document area as much as I would like to and maybe in the future We would Stall expand on it but it is a feature That actually is very easily add it to any other JCB component If you have purchased The Sermon distributor package Let me show you what I mean There is a place One of one of the repositories on the BDM data I called JCB packages So you go to BBM - i o And then jayshree packages on GitHub And one the package is here is Simon distributor You can Download this package But Before you haven't purchased a key for it you can't really use it So the get a key you would basically click on this link here Which is VDM dot bz Ford slash JCB Dash packages This will take you to a Place on our website Where you can purchase The purchase the Sermon distributor package Barrister Link that you would need to get to You can also go to VDM dot IO Which is Our website Some just open that and then under services You can also find Jamila Bassary JCB packages You just click on that it will take you to the same place So there are a few packages already available Which basically is a fully mapped component Inside of JCB Did you purchase this you would get information and a code and everything which will help Help you install the simmen distributor package So I'm gonna quickly install the summer distributor package On this demo website that I am using I'm not gonna demonstrate how I did that because if you purchase the package you would have all the instructions And how to do this once you think stalled the cement is to be the package you can go to the admin View Use And you will find that the admin views now has this New admin view called Help document It's just As one admin view called help document Now you by Default With Jason B have this demo component So let's open the demo component and let's add the helper structure to it to demonstrate To you how it works Now At the moment it doesn't have any helper structure at all it is just a demo car Component with only a few Structures actually I think it only has that Seattle view it has one view called look And got no crust and views but it got a site view port looks and looking So what we'll do first is we gonna go to the admin views I'm gonna click here to add another row And we are gonna add the help documents The support icon Oh yes we can have this an ticked problem I'm sorry about this where we are Busy phasing out the repeatable fields so you'll end up working with Sub fields in the future will stop for But the fixtures in the meanwhile you just closed that and open it again and now you'll have all those Boxes in place so I'm just gonna add that You again We gonna use the support icon and we gonna leave Most of this to defaults except it doesn't have meta we don't Don't use access We can do the import but it doesn't have a front end editing We don't want you to have one and We would have it in the 2nd position And maybe not part of the main menu I think that's good enough now We'll play Save this And we'll save and close that's really all it takes So you've just install the Sermon distributor package into your JCB that Added the helper document menu so the admin view and I've just linked That will do the demo component then I'll go to the compiler And I'm basically just gonna compile that there more component And as you can see here it isn't here yet installed on my website this is quite important Not to have it in installed on the website Then I'm gonna compile it Then I'm just gonna install it Now if I go to demo We will see That it has this new help her documents area Now at the moment it doesn't have any help her documents What we can do to change that this weekend then go to the helper documents click new And when it's open we'll select which group you want to Target So I'm just gonna select all Then I'm gonna select the I wanna target a view in the admin area The demo will be basically the desk dashboard Dennis help documents This import I'm gonna take looks I wanna target looks area Then I can give it a title And I can say what type of help when you do I want I want a link to an Joomla article What to put in my own custom text Or I want a link to an external URL This is usually what we will use when we ship a component Since this will then give us the opportunity to link it to an external URL which We can updating edit without sending an update or an air Uno and upgrade To the component we can just change the help menu itself sorry there they help pages which LinkedIn to and this is how JCB is been setup JCB is linking to an external Help structure but you can decide whatever you wanna do with this component you could say text for Example And you could say This Is the help You need And whatever And save and close Now if we go to looks We'll see that done automaticaLine truncated
Hi Recent question came up that was asking about help menu integration For JCB components [00:00:11](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m11s) You will see the JCB itself Has this Help document area Now I have not actually had the time to Expand upon this help document area as much as I would like to and maybe in the future We would Still expand on it but it is a feature That actually is very easily added to any other JCB component If you have purchased The Sermon distributor package [00:00:46](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m46s) Let me show you what I mean There is a place One of the repositories on the VDM data I called JCB packages So you go to VDM - io And then JCB -Packages on GitHub And one of the package is here is Sermon distributor You can Download this package But Before you haven't purchased a key for it you can't really use it [00:01:18](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m18s) So to get a key you would basically click on this link here Which is vdm.bz /jcb -packages This will take you to a Place on our website Where you can purchase The purchase the Sermon distributor package Here is the Link that you would need to get to [00:01:46](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m46s) You can also go to VDM dot IO Which is Our website Some just open that and then under services You can also find Joomla Sorry JCB packages You just click on that it will take you to the same place So there are a few packages already available Which basically is a fully mapped component [00:02:13](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m13s) Inside of JCB So if you purchase this you would get information and a code and everything which will help you install the Sermon Distributor package So I'm gonna quickly install the Sermon Distributor package On this demo website that I am using I'm not gonna demonstrate how I did that because if you purchase the package you would have all the instructions And how to do this once you have installed the Sermon Distributor package you can go to the admin views And you will find that the admin views now has this [00:02:53](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m53s) New admin view called Help document It's just As one admin view called help document Now you by Default With JCB have this demo component So let's open the demo component and let's add the helper structure to it to demonstrate To you how it works Now At the moment it doesn't have any helper structure at all it is just a demo Component with only a few [00:03:28](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m28s) Structures actually I think it only has that see admin view it has one view called look And got no custom views but it got a site view called looks and looking So what we'll do first is we gonna go to the admin views I'm gonna click here to add another row And we are gonna add the help documents The support icon Oh yes we can have this unticked problem I'm sorry about this while we are Busy phasing out the repeatable fields so you'll end up working with Sub fields in the future sub forms But to fix this in the meanwhile you just closed that and open it again and now you'll have all those Tick boxes in place so I'm just gonna add that [00:04:19](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m19s) view again We gonna use the support icon and we gonna leave Most of this to defaults except it doesn't have meta we don't Don't use access We can do the import but it doesn't have a front end editing We don't want it to have one and We would have it in the 2nd position And maybe not part of the main menu I think that's good enough now We'll play [00:04:52](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m52s) Save this And we'll save and close that's really all it takes So you've just install the Sermon distributor package into your JCB that Added the helper document menu sorry the admin view and I've just linked That view to the demo component then I'll go to the compiler And I'm basically just gonna compile that demo component And as you can see here it isn't here yet installed on my website this is quite important Not to have it in installed on the website Then I'm gonna compile it Then I'm just gonna install it [00:05:43](https://www.youtube.com/watch?v=nw9YPu9emws&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m43s) Now if I go to demo We will see That it has this new helper documents area Now at the moment it doesn't have any helper documents What we can do to change that is we can then go to the helper documents click new And when it's opened we'll select which groupLine truncated
@@ -1 +1 @@
Hi I've got your ma Install here with JCB Joomla component Builder 2.5.6 I've got quite a lot of components That I have Imported From another day CB And Basically all of it is working If we were to look Inside of them It really looks the way there but it should And it's expected Now Jamar has Conveniently Decided to Get rid of this repeatable Field Which pops up into a little Model And So we have systemically been removing this field From JCB Just to show you We've already done that And other areas of JCB Like in the language area We were too Open Any of these Language strings You see that we already have the repeatable field Set up here Now This would have been a simple as changing the fuel type Within JCB to achieve Only Reality is that the compiler As well as one other feature which is the Joomla components Can be exported in jsp packages and imported And so These features are mapping into these component concepts Hello there Fuel structurally how old data stored In a Jason By the Pitbull fields Are different from how it's being stored in the subform fields Are gonna go into explaining what a difference is There is actually If you think it's been open on get help about this And so We have Taken on the task of the Sporting all of this With this next release which is JCB 2.5 point eight The whole admin View area Will now be moved over to this new form Sop form layout So if I was to open an app then View now It basically has The old Repeatable field concept As you would have learnt with all the tutorials we've done So your permissions is one of those tabs the fields The conditions the linked fields And then you have a list of the fields that are linked to the admin View And you've got some custom buttons you could Setup and it's also A Repeatable field As well as linking a sequel Clicking on table this is also repeatable field Unimodal So all of these different fields on our gonna be moved to subfields Because of space and statistics We will Move some of these Fields into tabs I will try and do it in a way that seems obvious and that he wouldn't feel lost So just up front The fields This Fields button Are are going to be moved To the fields tab And so does The conditions move there They will be in new tab called settings so basically this tablet stay there And will call that details and a new tab with settings And the rest of the repeatable fields that are remaining On this side will be placed there Ok so that's just a heads up on what's gonna happen But this is gonna happen really without you doing much Basically all you need to do is upgrade And We have added a number of scripts Did you can actually go and look at On Gear Bob if you like And I'm doing this recording The stage in bronze Is where you will see these changes So Basically if we were to go to the script This is the script that will Convert The Fields and all the tables and everything Images go down to that area To hear we have a function Inside of a method More like an anonymous function And Basically this is what converts the repeatable fields So I'll be using this function over and over As you can see we've done It was so upgrade to version 2.5.5 And Then there is another upgrade with 2.7 which was not really released because I'm having made this This change We still need to to convert the repeatable fields And that will continue to run until 2.5 point 9 Now The way does this Is it really Targets The various Up here There's to convert repeatable function at Target all these fields Chicken C Inside the admin View And it passes it over to this Convert repeatable Which is really going to do the work and this function Like I said if you can look at it Are we here If you are uncertain of doing this You can come and look at this function here And I will now also demonstrate that it actually does work well The only thing that I have actually noticed It's like with this website that we are working on here We talking about houses of values Well Even more than thousands And I have found it It sometimes does not convert every single value And so because of that We actually did another fix Which Goes beyond and ensures that this upgrade will not cause any Internal conflicts And that is within the Back end And within the model There are a few places where these Newfields will now exist One of them is conditions Field conditions and the other one is as admin Fields so open that one Open this one And obviously Anna Or not Not that one Sysadmin View These are the models in which these field changes will take place And you see that within the Get item Method at the very end Of this method In the admin View We are at a function Which would basically check If this These Fields were updated during the upgrade And if it were not updated That is while the field is busy loading and you're opening the page Ill check whether it's been updated If it's not updated it will actually make Do the update And add it to the update object And then basically check every field Line truncated
Hi I've got Joomla Installed here with JCB Joomla component Builder 2.5.6 [00:00:12](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m12s) I've got quite a lot of components That I have Imported From another day JCB And Basically all of it is working If we were to look Inside of them It really looks the way that it should And it's expected [00:00:34](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m34s) Now Joomla has Conveniently Decided to Get rid of this repeatable Field Which pops up into a little Model And So we have systemically been removing this field [00:00:54](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m54s) From JCB Just to show you We've already done that in other areas of JCB Like in the language area If we would to Open Any of these Language strings You see that we already have the repeatable field [00:01:19](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m19s) Set up here Now This would have been a simple as changing the field type Within JCB to achieve Only Reality is that the compiler As well as one other feature which is the Joomla components Can be exported in JCB packages and imported And so These features are mapping into these component concepts [00:01:46](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m46s) You know the Field structures really how data stored In a json By the repeatable fields Are different from how it's being stored in the subform fields Are gonna go into explaining what the difference is There is actually Few tickets been open on GitHub about this And so We have [00:02:10](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m10s) Taken on the task of just Sporting all of this With this next release which is JCB 2.5.8 The whole admin View area Will now be moved over to this new form Subform layout So if I was to open an admin View now It basically has The old Repeatable field concept As you would have learned with all the tutorials we've done [00:02:43](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m43s) So your permissions is one of those taps the fields The conditions the linked fields And then you have a list of the fields that are linked to the admin View And you've got some custom buttons you could Setup and it's also A Repeatable field As well as linking a sequel Clicking on table this is also repeatable field In a model [00:03:13](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m13s) So all of these different fields are now gonna be moved to subfields Because of space and statistics We will Move some of these Fields into taps I will try and do it in a way that seems obvious and that he wouldn't feel lost So just up front The fields This Fields button Are going to be moved To the fields tab [00:03:45](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m45s) And so does The conditions move there There will be in new tab called settings so basically this tab will stay there And will call that details and a new tab with settings And the rest of the repeatable fields that are remaining On this side will be placed there Ok so that's just a heads up on what's gonna happen But this is gonna happen really without you doing much Basically all you need to do is upgrade And [00:04:19](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m19s) We have added a number of scripts That you can actually go and look at On GitHub if you like As I'm doing this recording The staging branch Is where you will see these changes So Basically if we would to go to the script This is the script that will Convert [00:04:43](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m43s) The Fields and all the tables and everything So let me just go down to that area So here we have a function Inside of a method More like an anonymous function And Basically this is what converts the repeatable fields So I'll be using this function over and over As you can see we've done It with a upgrade to version 2.5.5 [00:05:13](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m13s) And Then there is another upgrade 2.7 which was not really released because having made this This change We still need to to convert the repeatable fields And that will continue to run until 2.5.9 Now The way it does this Is it really Targets The various [00:05:40](https://www.youtube.com/watch?v=YaycQcsMpOs&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m40s) Up here There's to convert repeatable function it Target all these fields as you can see Inside the admin View And it passes it over to this Convert repeatable Which is reallyLine truncated
@@ -1 +1 @@
Hi I would like to quickly give you the toriel on how to now do the tabs I realise there's been a little change and how it abs are made So you go to admin view and you didn't open the admin View An indie admin View You actually have A place called settings And if you scroll down a little there you can create tabs so you could create any Any amount of tabs here SA anymore why many here again if you click save then you bass Basically have 4 tabs And did the change with maid Is if you go I'll go to the The fields Obvious gonna ask that your first aid those dad's because if you don't save them they're not in the database But now in the tabs menu you would have all those tabs as a drop down The other side is also true and that is if you have no tabs setup so Let me quickly remove those Just Take them all the way I click save it now there's no tabs if I now go and Hope Open the fields It actually doesn't have any tabs it only shows details Because every Ping will now show only in the Details tab So they have more than details as a option for tabs you need to decide in the settings area There is a place which says tab setup Options And you just click on this plus sign here And an add your door see your settings right here Ok I hope that will help
Hi I would like to quickly give you a tutorial on how to now do the tabs I realise there's been a little change and how tabs are made [00:00:10](https://www.youtube.com/watch?v=NFp_CtE0LZI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m10s) So you go to admin view and you then open the admin View An in the admin View You actually have A place called settings And if you scroll down a little there you can create tabs so you could create any Any amount of tabs here Let's say anymore or many ok and if you click save then you Basically have 4 tabs And the change we've made Is if you go I'll go to the [00:00:45](https://www.youtube.com/watch?v=NFp_CtE0LZI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m45s) The fields Obvious gonna ask that your first save those tabs because if you don't save them they're not in the database But now in the tabs menu you would have all those tabs as a drop down The other side is also true and that is if you have no tabs setup so Let me quickly remove those Just Take them all away and click save it now there's no tabs if I now go and Open the fields It actually doesn't have any tabs it only shows details [00:01:29](https://www.youtube.com/watch?v=NFp_CtE0LZI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m29s) Because every Thing will now show only in the Details tab So to have more than details as a option for tabs you need to add in the settings area There is a place which says tab setup Options And you just click on this plus sign here And an add your settings right here Ok I hope that will help
+1 -1
@@ -1 +1 @@
Hi I would like to demonstrate you How to upgrade to version 2.6 of JCB The upgrade is quite a major upgrade Because we are removing all repeatable fields in the car tubular component area Gmail component area Has quite a lot of Beautiful fields If you were to open A component You'll see that Repeatable fields I basically Little models that pop-up With values And as been used quite excessively in this view The reason why we did that is because it's really a very smart field Because it combines these values into one value Basically the JavaScript on the page Grabs these values and converts it into one value Woodstock win on submission The form Only submits one string And not actually Several fields So to me it's Feels like we going a few steps back But I suppose there are some conventional Reasons which Makes Repeatable field On a subform level More Viable because of its Bility to actually validate the data Mall Correctly Number less We have to remove these Fields because in Joomla for they no longer are supported In doing so I had to decouple a number of these fields Into their own tables Because of the size that we would Of values that will have on the page Facebook comes in monthly heavy And so they say they're about 9 new tables Being added to chase a b To accommodate this Villarreal Change Is Gonna fix only the components area But because JCB is very Dynamic component That actually integrates with various levels of the state of structures I had to also upgrade the compiler As well as the import and export of JCB packages We have tasted this and it's for the most part those involved into testing Profound That This transition is actually Major improvement to JCB And should be very Hi easy and you shouldn't have any issues Those of you that might run into Little Glitches that doesn't work as you expect We would suggest that you clean your browsers cache as well as memory We found it Traces of the old repeatable field structure and JavaScript surrounding that Might clash with the new changes in JavaScript Within the new update So to clear your browser memory not just the cash is quite important only after you've On the upgrade And you started working in different views You should see that Everything Works as expected Now An area which even at this stage has been Been reported in giving some conflicts Is the dynamic get area Dynamic get area Basically returns values From The admin area Where is we target let's say back in View And we grab Hero Some information These values are returned from the admin area Where it basically goes to this atman view And Buildster structure Now as you can see with my demonstration here Everything is really working As expected If if you at this stage Would test this area before the upgrade You should find that it works Without any problems If it doesn't I would suggest clearing your browser memory and trying again Until you can find this is working As you see mine working here And The reality is the only thing I've done is I've cleared my browser memory So that there's no all traces of JavaScript And what I say clear I mean literally going here to to history and just wiping everything For this domain if you don't wanna clear You know all of your history and it specifically targeting this domain That you are loading your JCB component in Ok so that is just few heads up for The current 2.5 .8 How to upgrade should be quite simple The release I've just released it like 8 minutes ago So you should just be able to go to you no updates in your managing area See that the upgrade is there and ready Click Ahmed and click update Here we go The upgrades been done If we now go back to Joomla component Builder We should see That It's up-to-date And everything is Been done without any errors If we now go to the Double or components area You said C A view similar to this With a lot of new shortcuts To these different decoupled Areas that I mentioned And if you open the component Not much has changed in regards to where what is located But how to interact with it is actually been moved so for example the component updates If you see it as what as a button here Cricket Grass at your first save everything before you continue If you've done so Then click ok and it opens the area where you then would do your updates Usually it was in a Uno module Sorry a modal that popped up And you could change it right there on the same page Now you simply go to another view and is basically doing the same So Used to that the same goes with your admin view custom view side view And basically everything else The contributor is we've moved down here so you could Do them on the page But for most of the other repeatable Fields we've moved into their own tables The Fields and the folders we've moved To a joint table So if you were to click on that You should be able to Easily add Some files to your Component or folders All found within this Structure As it's explained here and there Note The same is true of all the oLine truncated
Hi [00:00:03](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m03s) I would like to demonstrate to you How to upgrade to version 2.6 of JCB The upgrade is quite a major upgrade Because we are removing all repeatable fields in the Joomla component area Joomla component area Has quite a lot of repeatable fields If you were to open A component You'll see that [00:00:29](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m29s) Repeatable fields are basically Little models that pop-up With values And as been used quite excessively in this view The reason why we did that is because it's really a very smart field Because it combines these values into one value Basically the JavaScript on the page Grabs these values and converts it into one value Which on submission [00:01:01](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m01s) The form Only submits one string And not actually Several fields So to me it's Feels like we going a few steps back But I suppose there are some conventional Reasons which Makes The repeatable field [00:01:21](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m21s) On a subform level More desirable because of its Ability to actually validate the data more Correctly None the less We have to remove these Fields because in Joomla 4 they no longer are supported In doing so I had to decouple a number of these fields Into their own tables [00:01:48](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m48s) Because of the size that we would Of values that will have on the page The page becomes immensely heavy And so they're about 9 new tables Being added to JCB To accommodate this So the real Change Is Gonna effect only the components area But because JCB is very Dynamic component That actually integrates with various levels of this data structures [00:02:20](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m20s) I had to also upgrade the compiler As well as the import and export of JCB packages We have tested this and it's for the most part those involved into testing Have found That This transition is actually Major improvement to JCB And should be very easy and you shouldn't have any issues Those of you that might run into [00:02:49](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m49s) Little Glitches that doesn't work as you expect We would suggest that you clean your browsers cache as well as memory We found it Traces of the old repeatable field structure and JavaScript surrounding that Might clash with the new changes in JavaScript Within the new update So to clear your browser memory not just the cache is quite important only after you've On the upgrade [00:03:21](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m21s) And you started working in different views You should see that Everything Works as expected Now An area which even at this stage has been Been reported in giving some conflicts Is the dynamic get area The dynamic get area Basically returns values [00:03:45](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m45s) From The admin area Where if we target let's say backend View And we grab You know Some information These values are returned from the admin area Where it basically goes to this Admin View And Builds this structure [00:04:04](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m04s) Now as you can see with my demonstration here Everything is really working As expected If if you at this stage Would test this area before the upgrade You should find that it works Without any problems If it doesn't I would suggest clearing your browser memory and trying again Until you can find that this is working [00:04:35](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m35s) As you see mine working here And The reality is the only thing I've done is I've cleared my browser memory So that there's no all traces of JavaScript And what I say clear I mean literally going here to to history and just wiping everything For this domain if you don't wanna clear You know all of your history and it specifically targeting this domain That you are loading your JCB component in Ok so that is just few heads up for [00:05:10](https://www.youtube.com/watch?v=MQrLBYhvGyA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m10s) The current 2.5.8 The upgrade should be quite simple The release I've just released it like 8 minutes ago So you should just be able to go to you know updates in your managing area See that the upgrade is there and ready Click on it and click update There we go The upgrade is been done [00:05:41](https://www.youtube.com/watch?v=MQrLBYhLine truncated
@@ -1 +1 @@
I would like to give you a tutorial on how to build a hello world Component With Joomla component Builder Joomla component Builder Is a Jamar component Which Helps you to develop Jumla components Quite easily Originally developed this application or extension For myself just so that I can Maintain the code In a very consistent And Shareable way For example since there are lot of Concepts in any components that build that you build for Joomla Which we could call conventions or Boilerplate Implementation These things are usually always the same And so I wanted something like a wire frame That could just take care of all that for me all the time and even if Zuma was to change I could just make a change in one place And then compile it into all my components that have developed And then just have them Run Again stable on Joomla I said of having to go to every one of those components and that means We've gone Beyond Just developing The most basic parts of a component with actually gone and ventured into some of its complex And that is why Even showing you and hello world Component Being built by JCB Jamal component Builder It is still gonna end up being quite an advanced Component Now Since I've really mentioned to you that I really build JCB for myself And it wasn't originally intended as a community project just something that I was wanted to use It has since become a community project and the code is open on GitHub And most of you might already know that But it also means that I didn't think about the car Laxity When I was developing the component I just had Desired functionality in mind And I didn't really care that it is complicated to achieve those things Because I said it set the conventions in place Harvesting know how to use them And so That's why JCB On the surface might look just like any other of those component Builders out there But when you start Using it and Knowing some of its secrets It actually is amazing how conventions Even Conventions that you would Use when you develop components yourself Wood Actually make tasty do things that are quite amazing So you will end up realising that JCP has actually a ton of functions Most of them will most of the basic ones of those we have tried or I have tried O2 Explain in the tutorials that you can find on YouTube You can actually access to tutorials from this link here Looking at the toriel Would be The most Easiest way For you to discover some of JCB Hidden secrets What is the same time It really is only the basics although it's quite a lot of Tutorials end I know that I usually Yeah I love rate more than Mike maybe is necessary And yet That's because I wanna make sure that you are able to not only Do basic things but even advanced things Have you come to JCP and you do not have PHP As a as a language But you don't know it well And you do not know jamalife API Then You shouldn't expect to build complex components with JCB Complexity is only possible with JCB The More You Know Yourself Because the more you know the more you would have that perspective on how to How this implementation should function And most of the time if you do have that perspective You would start knocking and opening the correct doors And set up the correct relationships To have those conventions dynamically You know be built for you Buy JCB If you are very good at PHP programming and you do know the Jeweller API You should be very happy to Simply go into the compiler And really start reading the code The compilers codes files are actually Alphabetically ordered ABCD And so you can start with a and work your way down So the first one is a underscore get the PHP and so forth Reading this code and understanding how JCB is compiler Constructs the code with send you on a treasure hunt where you would discover amazing features That work just out of a box And yet having this under the hood I realise we all need to start with the basics And that is Just to build a hello world tauriel Just to know how to Actually Combine The different Concepts That is required for a component To be fully functional And portable And useful And that's really what I want to actually Give you a tutorial of In this video There are two concepts which I want to mention before we start One of his patients the other one is perseverance I know within any programming career These are invaluable Aspects Which if you have them L make the whole difference whether you are only a normal programmer Or an extremely good programmer You see because those of us who have stuck around Nf just been going at it We have realised that many Michael centre is being genius And yet It's only because it's the skies by perseverance Because we continually try and try and try Until we resolve or succeed This is what has made Jason be possible And this is also what would make you successful In using JCP It is not a component which I can claim has no Uno internal conflicts or has no Inconsistencies But it is most certainly a component with whLine truncated
I would like to give you a tutorial on how to build a hello world Component With Joomla component Builder Joomla component Builder [00:00:12](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m12s) Is a Joomla component Which Helps you to develop Joomla components Quite easily I originally developed this application or extension For myself just so that I can Maintain the code In a very consistent [00:00:37](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m37s) And Shareable way For example since there are lot of Concepts in any components that build that you build for Joomla Which we could call conventions or Boilerplate Implementation These things are usually always the same And so I wanted something like a wire frame That could just take care of all that for me all the time and even if Joomla was to change [00:01:09](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m09s) I could just make a change in one place And then compile it into all my components that I have developed And then just have them Run Again stable on Joomla instead of having to go to every one of those components and that means We've gone Beyond Just developing The most basic parts of a component with actually gone and ventured into some of its complexities And that is why Even showing you an hello world [00:01:44](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) Component Being built by JCB Joomla component Builder It is still gonna end up being quite an advanced Component Now Since I've really mentioned to you that I really build JCB for myself And it wasn't originally intended as a community project just something that I was wanted to use It has since become a community project and the code is open on GitHub And most of you might already know that [00:02:19](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m19s) But it also means that I didn't think about the complexity When I was developing the component I just had Desired functionality in mind And I didn't really care that it is complicated to achieve those things Because I set the conventions in place and I obviously know how to use them And so [00:02:43](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m43s) That's why JCB On the surface might look just like any other of those component Builders out there But when you start Using it and Knowing some of its secrets It actually is amazing how conventions Even Conventions that you would Use when you develop components yourself would [00:03:07](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m07s) Actually make JCB do things that are quite amazing So you will end up realising that JCB has actually a ton of functions Most of them will most of the basic ones of those we have tried or I have tried to Explain in the tutorials that you can find on YouTube You can actually access the tutorials from this link here Looking at the tutorials Would be The most Easiest way [00:03:40](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m40s) For you to discover some of JCB's Hidden secrets but at the same time It really is only the basics although it's quite a lot of Tutorials and I know that I usually Yeah I elaborate more than might maybe is necessary And yet That's because I wanna make sure that you are able to not only Do basic things but even advanced things [00:04:08](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m08s) If you come to JCB and you do not have PHP As a as a language But you don't know it well And you do not know Joomla's API Then You shouldn't expect to build complex components with JCB Complexity is only possible with JCB the more you know yourself Because the more you know the more you would have a perspective on how to How this implementation should function And most of the time if you do have that perspective [00:04:44](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m44s) You would start knocking and opening the correct doors And set up the correct relationships To have those conventions dynamically You know be built for you By JCB If you are very good at PHP programming and you do know the Joomla API You should be very happy to simply go into the compiler And really start reading the code The compilers codes files are actually [00:05:20](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m20s) Alphabetically ordered ABCD And so you can start with a and work your way down So the first one is a underscore get the PHP and so forth Reading this code and understanding how JCB's compiler Constructs the code would send you on a treasure hunt where you would discover amLine truncated
@@ -1 +1 @@
I would like to demonstrate to you How to add rules to your Model Basically to a field Adding rules to a field Uses your custom rules to Tester value Before actually You know submitting it to the database so this is a quite good feature Do actually have in your component Now I'm just gonna use this hello world component the one we we actually The whole world tutorial on and I'm gonna add a rule to one of its Fields and then Then quickly type it up And show you how to include it Ok so I've gone to admin views I'm gonna open this greeting First As the admin view we want to change the field in it I think that's used is greetings And let's add a rule That we can call something like Are we see at this time That the field attributes don't have the validation Option switch in place So We might start shipping JCB with this new validation property was not new just Just helping at it yet but if you have a version of Daisy bead it doesn't have it set Then whatever field type you've selected you can edit the field I'm going here Or You could edit the fuel type By going to feel types So this have to close out of this again And then hear fuel types And you can select the field type that you want to add this validation to we want to do it for now just Text area This one And it has a filter in place I think I'm gonna add validation just on the leaf it So just go click Your class It is a duster bill It's not required it's not translatable and let's give it a little this Description ok so I think they got it all set I wouldn't add a value here because If if you don't want to use it you just leave it empty And ok that's basically it's Avon closed so we've done the text area Now Let's go back to our Admin view greetings Again open that field Now we have this validate a property available to us So we can all copy it And added it here Now we want to have a custom validation here There are built in Joomla validations as well But you can also set up a custom validation rule and this is what are formed Roulette is slow This is what we want to demonstrate So we gonna say Let's call our rule then 10 So my string must be longer than 10 characters Ok I think that should do So I'm just gonna copy this again And 7 clothes Now that we've got our validation set JCB is not yet able to We don't have an area for you to write the rule and have it be included So the way you do this and I think it's it's efficient Is it you right up the file yourself you put it in the custom folder of JCB And you include it into the component So that it places it in the correct place You see the one thing that I should be ready does for you Is that it creates a folder called rules and in the forms Every XML If we open it For the ready has a field path Andrew Pass So you you can just add your rule to this Basically to this folder Without them is straight to you in the moment But first let's create a rule So I had it this room here so in the folder structure I'm basically in the admin area components component builder and there is a folder called custom An inside of this folder I've Now created this stud 10 file Sterling 10 file and then it I placed this this code here Basic J form rule nothing too fancy about it Ok let's see now that we've got our file in place We need to add it into our component So we go to the components and we open that component And we go to Settings and they're adding custom files and folders We click on this component files and folders create component files and folders For this Tumelo component We just click on that it's ok And here we want to add 1 file Since we've added it to that custom folder everything in at custom folder will come up as a file that you can Select So there this that file Now the path to where we want it to place the file So in the back and of the component we go to Models Forms And we are targeting this breeding form so we opened that and we C That it has models rules So That's copy that How many to remember that it is admin at the admin area And then Models rules So This admin is basically the way the package is built so the target Place should be the place in Inside the package this be always the case for both folders and fields So in the Folder You want it to add it to the admin models rules folder And then you need to decide whether you want this file to be updated Now the state that fathers and need any updating But hey we can change that So you can see I've just added this New licence tag to it And I've added this bomb Basically when the file gets taken It will Take this part away and replace this with your components licence and so the fight I will basically be Become Branded like every other file in your In your component Anna Even if you use it in areas or components Other than the one you originally made it for it will just dynamically looked like it was made for it because it Add that components Data at the header of the file and even if you had the components name somewhere else in this You can actually Line truncated
I would like to demonstrate to you [00:00:05](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m05s) How to add rules to your Model Basically to a field Adding rules to a field Uses your custom rules to Test the value Before actually You know submitting it to the database so this is a quite good feature to actually have in your component Now [00:00:32](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m32s) I'm just gonna use this Hello World Component the one we we actually Did a Hello World tutorial on and I'm gonna add a rule to one of its Fields and then Then quickly type it up And show you how to include it Ok so I've gone to admin views I'm gonna open this greeting First As the admin view we want to change the field in it I think that's used his greetings And let's add a rule That we can call something like [00:01:11](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m11s) Now we see at this time That the field attributes don't have the validation Option switch in place So We might start shipping JCB with this new validation property well not new it's Just not being added yet but if you have a version of JCB that doesn't have it set Then whatever field type you've selected you can edit the field type going here Or You could edit the field type By going to field types [00:01:47](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m47s) So this have to close out of this again And then here field types And you can select the field type that you want to add this validation to we want to do it for now just to the Text area This one And it has a filter in place I think I'm gonna add validation just underneath it So just gonna click here a plus It is adjustable It's not required it's not translatable and let's give it a little [00:02:22](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m22s) Description ok so I think we got it all set I wouldn't add a value here because If if you don't want to use it you just leave it empty And ok that's basically it let's save and closed so we've done the text area Now Let's go back to our Admin view greetings and again open that field And now we have this validate a property available to us So we can now copy it [00:02:59](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m59s) And add it in here Now we want to have a custom validation here There are built in Joomla validations as well But you can also set up a custom validation rule and this is what of form rule as its known This is what we want to demonstrate So we gonna say Let's call our rule strlen Ten So my string must be longer than 10 characters [00:03:36](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m36s) Ok I think that should do So I'm just gonna copy this again And save and close So now that we've got our validation set JCB is not yet able to well We don't have an area for you to write the rule and have it be included So the way you do this and I think it's it's efficient Is it you right up the file yourself you put it in the custom folder of JCB And you include it into the component So that it places it in the correct place You see the one thing that JCB already does for you [00:04:18](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m18s) Is that it creates a folder called rules and in the forms Every XML If we open it already has a field path And a rule path So you you can just add your rule to this Basically to this folder Which I will demostrate to you in the moment But first let's create our rule So I had it this room here so in the folder structure [00:05:14](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m14s) I'm basically in the admin area components component builder and there is this folder called custom An inside of this folder I've Now created this strlenTen file strlenTen file and then it I placed this this code here Basic J form rule nothing too fancy about it Ok let's see now that we've got our file in place We need to add it into our component So we go to the components and we open that component And we go to [00:06:03](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m03s) Settings and there adding custom files and folders We click on this component files and folders create component files and folders For this Joomla component We just click on that it's ok And here we want to add 1 file Since we've added it to that custom folder everything in at custom folder will come up as a file that you can Select So there it is that file Now the path to where we want it to place the file [00:06:38](https://www.youtube.com/watch?v=Z6-ggKtX35o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m38Line truncated
@@ -1 +1 @@
I would like to give you a tutorial on the new snippet manager and how it works We are very excited to announce that We have added a community concept To the Snippets In JCB Previously You could create your own Snippets And then If you were to create a custom admin View A site view a template Or a layout You could access the soap it's Through a drop down Let me demonstrate that quick So now in a side view If I were to click on one of these Snippets You see it loads The slip it here You can copy it from here And You can then place it in your code And so It is possible to actually load many Snippets No currently We already looking here at the new Snippets Area You see that now We have the type of the snippet First Then the name of the snippet And then the library Mr pit belongs to What you selected the snap it again it updates here The name of the snippet The type of snippet And the library it belongs to And usually this library is a link It'll open you to the actual documentation on that libraries website of the specific snippet So that's all as it used to be nothing fancy nothing much different Yet There is a major change Taken place Because now We have what is known as local Snippets And then community supper We have Actually enlarge the Snippets area So that you can contribute to the community Snippets And also import From those Snippets that is been added to the community By others The how does that exactly work Well Slippers that already exist Are usually Snippets that either I made or Someone else and They already have What is known as a contributor The name of the contributor it's email address Whippet race answer So when you create a snippet We will use your details To actually create this contribution So if we open an existing snippet And you go to the contribution area you'd see that there is names in English Field If there aren't any names Then Well that means the update didn't do exactly what it should have done And when you Go to the Snippets area Where you get Snippets I'll show you that in a moment There is a place for you to actually update all the contributor names And so be sure to have their names actually in the database Realities these details should actually be in there already If they are not Well it's not a stupid you made so you don't need to really worry about it These details only really apply when you wanna share a snippet And all when you wanna improve a slip it and then we will add the correct details in any way So really it's not to be worried about But here you'll see how the contributed details Adult Dealt with We are using your company details that is said that the global options you could click this button to get there Under the company tab of the JCB for the new Snippets you create You cannot change the contributed details after snip it That already exist At this time via this area So that is a simple heads Up This area is really only for The management of the community Snippets If you're not gonna be contributing then this doesn't even matter at all What is important though Is that your snippet B Map the same way As the Snippets in the community For example if the grid UI kit version 2 is called layout Then don't change it Because it will then behave like a new snippet and not like an existing one You see because the community Uses the name The library and the type To build The filename The final names Well we'll look at that also as we go along What I mean by file name For now all you really need to know Is it there are a bunch of Snippets already in your component This leopards was shipped with Joomla Component Builder You know So it It means that Really this is how it was By Default But we now have an area called get Snippets Now If you are one of those who like to get your name out there and want to Become more involved in the JCB community and have others Know about you and so forth Well this is the ideal time to do that If you share a snippet Sorry so you created this nap it for example Then you would click on Share Snippets or you could take more than one doesn't need to be only one You take a new Clicks share Snippets This will then create a package let me show you So we see that it's created a package it's placed it In this folder And you got a few helper tutorials here to actually get you going So if you wanna learn well this tutorial I'm making now will be This link here And if you wanna learn More about Get It This one here And if you Want to know how the forking is gonna work then it's this And if you wanna know how to do pull request it It will be this one And if there's any issues you can open an issue on get out So this really gives you a sort of a few links and shortcuts To actually get Involved in sharing Snippets What happens when you share the snippet If someone Clicks on get Snippets Then they will see your name If that That specific snippet Comes up So let me illustrate that If we click on get Snippets It might take a moment Depending on how many SnLine truncated
I would like to give you a tutorial on the new snippet manager and how it works [00:00:07](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m07s) We are very excited to announce that We have added a community concept To the Snippets In JCB Previously You could create your own Snippets And then If you would to create a custom admin View A site view a template Or a layout [00:00:25](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m25s) You could access the snippets Through a drop down Let me demonstrate that quickly So now in a site view If I were to click on one of these Snippets You see it loads The snippet here You can copy it from here And You can then place it in your code [00:00:44](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m44s) And so It is possible to actually load many Snippets Now currently We already looking here at the new Snippets Area You see that now We have the type of the snippet First Then the name of the snippet And then the library [00:01:04](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m04s) The snippet belongs to Once you've selected the snippet again and updates here The name of the snippet The type of snippet And the library it belongs to And usually this library is a link It'll open you to the actual documentation on that library's website of the specific snippet So that's all as it used to be nothing fancy nothing much different Yet There is a major change [00:01:32](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m32s) Taken place Because now We have what is known as local Snippets And then community snippets We have Actually enlarge the Snippets area So that you can contribute to the community Snippets And also import From those Snippets that is been added to the community By others [00:01:56](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m56s) Now how does that exactly work Well Snippets that already exist Are usually Snippets that either I made or Someone else and They already have What is known as a contributor The name of the contributor it's email address web adress and so forth So when you create a snippet [00:02:19](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m19s) We will use your details To actually create this contribution So if we open an existing snippet And you go to the contribution area you'd see that there is names in these Fields If there aren't any names Then Well that means the update didn't do exactly what it should have done And when you Go to the Snippets area [00:02:46](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m46s) Where you get Snippets I'll show you that in a moment There is a place for you to actually update all the contributor names And so be sure to have their names actually in the database The reality is these details should actually be in there already If they are not Well it's not a snippet you made so you don't need to really worry about it These details only really apply when you wanna share a snippet And all when you wanna improve a snippet and then we will add the correct details in any way So really it's not to be worried about But here you'll see how the contributed details [00:03:25](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m25s) Are Dealt with We are using your company details that is set in the global options you could click this button to get there Under the company tab of the JCB for the new Snippets you create You cannot change the contributed details after snippet That already exist At this time via this area So that is a simple heads Up This area is really only for The management of the community Snippets [00:03:52](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m52s) If you're not gonna be contributing then this doesn't even matter at all What is important though Is that your snippet be Mapped the same way As the Snippets in the community For example if the grid UI kit version 2 is called layout Then don't change it Because it will then behave like a new snippet and not like an existing one [00:04:17](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m17s) You see because the community Uses the name The library and the type To build The filename The file names Well we'll look at that also as we go along What I mean by file name For now all you really need to know Is it there are a bunch of Snippets already in your component [00:04:38](https://www.youtube.com/watch?v=qr4I1jeCp7I&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m38s) These snippets were shipped with Joomla Component Builder You know So it It means that Really this is how it was ByLine truncated
@@ -1 +1 @@
Now that we've given you a general overview of how are things work And then you slip it manager I would like to Take You The Next Step and that is Showing you how to take shits limits And Basically Show them There are two things that should be done What is You need to f*** The JCB community Snippets On get up so you will need a get up account The second thing Is once you Done that You would export the Snippets here that you would like to contribute And you will add it To this Repository that you fought and cloned down to your developing environment And you would make commit messages on every change that you are Intending to make The second thing you wouldn't do Although there are few steps in each of these Things the second thing is that you would then Make a pull request So this tutorial I'm just gonna focus on the 1st Few things you need to do And that is just to get you Basically ready All the things you need to do until the very point when you are now ready to actually do a pull request Ok so now There are three things that I suspect we can do one is to improve Already existing snippet And then contribute that to the community The second thing is to move and existing snippet To a new type this isn't something I hope will happen often but it can't happen That a snippet is in a specific type that is not the best suit for it And You might wanna suggest us changing that So that would be a second thing And the third one Would be to actually add a whole new snippet completely So I think I'm just gonna demonstrate all three of those And then we'll see how that all plays Out Until the very point where we are now ready to make a pull request Ok so first thing First We need Repository And we need to understand get Now if you do not know get The story is not gonna cover that You need to do your homework And study upon get When you do an export of a package for example if I were to click here on these 3 Heeren Clickshare Snippets You see that it ends up showing you a bunch of links here and one of them is quick start forget On you to me At this link here I just searched on Google found it I didn't actually watch it myself I hope it's not bad If you got a better one Please share it On on the issue somewhere and will will improve this link I'm your even if you've got your own and you would like us to promote your Tutorials on get sure Why not We will support those who support Our community Very gladly Reality is You need to get some Your head around some of the git basics So that you can actually do A Fork of the JCB Snippets on get up And then make a pull request So this Video here is the one I'm busy making so it will end up that being that link how to 4 JCB Snippets and get all this done And then after that I'll be making this video So we'll get to that in a moment Ok Now You need a an account on GitHub And so I'm just gonna use my own account And Simply go and Fork the repository and use that as the mistration So needless to say I've got an account I've gone through all those hoops And now I'm simply gonna Fuk this repository To get to this repository It's this your all up here Another way to get here Is You go to get Snippets And then the moment it's finish loading there is a link that you can click which will take you To the GitHub repository and it's this link over here so we could click that And as you see we're end up at the same place Picket So you could either just Follow this URL appear all good just use that link But you wanna get to Joomla component builders in the pits And I suppose Since everybody that wants to contribute will need to fork it I'm I speak this number she will change And of course well this is part of his like 6 days old I haven't even finished the ReadMe So there will be a lot of changes to this Repository and it will improve So the first thing you do is click on this button here and forked repository This will then ask you to select Where you want to f*** it if you belong to organisations whatever but then Obviously by then I don't need to explain to you how it works But if for some reason you don't then you select your personal or whatever organisation You want a fork to appear in And then it will basically To copy this repository For you Ok so now it's busy doing that I'm basically just copying it into my personal Account Now Good practice Every time you wanna make it change Then You need to follow a few steps In Having this repository in sync With the What we call upstream repository this is EDM dot IO Joomla component builder Snippets This is what we call the upstream All the master branch or whatever you wanna call it this is the main Bronze the one that is being used inside of JCB yours is indirectly being used So whatever changes you make here would not necessarily affect us at all But you obviously 1 m Commit your changes to your branch And then Make a pull request To the upstream branch Where you would like to share this with the community So that's Sort of a quick explanatiLine truncated
Now that we've given you a general overview of how things work in the new snippet manager I would like to Take You The Next Step and that is [00:00:11](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m11s) Showing you how to take shared snippets And Basically Share them There are two things that should be done one is You need to fork The JCB community Snippets On GitHub so you'll need a GitHub account [00:00:32](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m32s) The second thing Is once you Done that You would export the Snippets here that you would like to contribute And you will add it To this Repository that you forked and cloned down to your developing environment And you would make commit messages on every change that you are Intending to make The second thing you would then do Although there are few steps in each of these [00:01:03](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m03s) Things the second thing is that you would then Make a pull request So this tutorial I'm just gonna focus on the first Few things you need to do And that is just to get you Basically ready All the things you need to do until the very point when you are now ready to actually do a pull request Ok so now There are three things that I suspect we can do one is to improve an Already existing snippet [00:01:36](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m36s) And then contribute that to the community The second thing is to move an existing snippet To a new type this isn't something I hope will happen often but it can't happen That a snippet is in a specific type that is not the best suit for it And You might wanna suggest us changing that So that would be a second thing And the third one Would be to actually add a whole new snippet completely So I think I'm just gonna demonstrate all three of those [00:02:11](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m11s) And then we'll see how that all plays Out Until the very point where we are now ready to make a pull request Ok so first thing First We need a Repository And we need to understand git Now if you do not know git this tutorial is not gonna cover that You need to do your homework And study up on git [00:02:34](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m34s) When you do an export of a package for example if I were to click here on these three here and Click share Snippets You see that it ends up showing you a bunch of links here and one of them is quick start for git On udemy now this link here I just searched on Google found it I didn't actually watch it myself I hope it's not bad If you got a better one Please share it On on the issue somewhere and we'll improve this link even if you've got your own and you would like us to promote your [00:03:10](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m10s) Tutorials on git sure Why not We will support those who support Our community Very gladly The reality is You need to get some Your head around some of the git basics So that you can actually do A [00:03:26](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m26s) Fork of the JCB Snippets on GitHub And then make a pull request So this Video here is the one I'm busy making so it will end up that being that link how to fork the JCB Snippets and get all this done And then after that I'll be making this video So we'll get to that in a moment Ok Now [00:03:49](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m49s) You need an account on GitHub And so I'm just gonna use my own account And Simply go and Fork the repository and use that as demonstration So needless to say I've got an account I've gone through all those hoops And now I'm simply gonna fork this repository To get to this repository It's this URL up here Another way to get here [00:04:16](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m16s) Is You go to get Snippets And then the moment it's finish loading there is a link that you can click which will take you To the GitHub repository and it's this link over here so we could click that And as you see we end up at the same place Good So you could either just Follow this URL up here all good just use that link But you wanna get to Joomla component builder snippets And I suppose [00:04:47](https://www.youtube.com/watch?v=0hgHeQVTLOk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m47s) Since everybody that wants to contribute will need to fork it I suspect this number here will change And of course well this repository is like 6 days old I haven't even finished the ReadMe So there will be a lot of changes to this Repository and it will improveLine truncated
@@ -1 +1 @@
Demonstrate to you The process of now taking You're committed changes to your forked version But this one Not the master branch How is gonna be little different for you because of course I am a Administrator of the master branch So I'll see things that you maybe won't see But Moreless you should be able to actually make a pull request And If you're not able to please let us know Sure I can Make sure that you're able to Do that And There there R&B will be more guys involved in managing these Snippets So it's not only myself that will be responding to issues But 4 most part if there is really a holdup I'll come in and help Make sure that everything Works as we expect So you should be able to after having Done What is explained in the previous tutorial below Updating the snapper it's getting out a fault version Of the repository Toning it down offline And then basically it Unzipping the package into that repository Updating OS files committing those changes with messages And then pushing it up here after you have ensured that your branch is in sync with the upstream branch Ok That if you don't understand Please go back watch that tutorial is the previous one the playlist On YouTube And then this one now Will be First steps Basically I'm off doing a pull request So once you are in your repository on GitHub And you Push your changes up here you'll see this you know Message And be able to click on Pull request So We've done that Next thing it will open a page Where Basically Identifies That you have forked VDM On the Square - IO for Joomla component Builder Snippets Master branch As the base there's only one branch at the moment And Then Your head Of the fork But you've got is over here And if it's says to you that it's able to do a merge Then You're in good shape everything shouldn't Be more complicated You also now see that those commit messages you've made Are now actually also showing up here And exactly every change that was done so basically you see we changed it From layout Two tables And weed That shows you that we've renamed it from this Do that Sorry the actually identified that for us And if we can see ok nothing of the Snippets have changed You can scroll and seopela snippet Isn't changed only those and the date Which is good for money Be able to see that what When was the last change to the file Here we can see that usage had A new Description added So that means if I was 2 now actually click On this link Add it according snippet Click there You see ok that's exactly what he did Hadeda call you and snippet And The same goes for every one of these commit messages And that's really what I meant when I said Giving good commit messages You make it so much easier for us to review the changes And to make sure that it is correct If it is very complicated and difficult Usually this kind of pull request will take longer So doing smaller amounts of snippet Contributions of Stead of hold back I suppose Would be Better Unless you already a trusted member in the community then I'll suppose it will go easier So yeah if you haven't done any of these before maybe take smaller steps at first Until we get to know you and until we more Confident that you Are a good contributor to do this project Yeah so trust is important for us So we'll be able to check this now no pull request has yet been made We've just come to the Page of where it starts You actually need to click on this create pull request This will now open in area Which You should give us information Of What would sort of summarise This pull request So if it's like a new library let's say 345 slippage to a new library Then just put Paris the title Whatever would be enough To actually give those That needs to review This enough information to sonoff the bad know what's happening And what's coming in specially If there is some Specific detail now I know That we will In time at some Documents to this repository Which will give you sort of Demo Names and stuff in in in this field So that you will know what to put in there So that will still come so often now just gonna say Illustration of snippet contribution Now I don't think you'll be able to make changes here It's only the admin that actually has the ability to actually add a reviewer And Assign a label and A project that a milestone And so that will be the responsibility of the admin They might not do it They might feel I will just merges and we don't need to make much fuss of it But if it's a big contribution and they need to be some real Heroes Work done here We must probably make use of these tools The description We could either just use the Commit messages as the description Or like I said That which we will maybe set up in the In the future We will now then create the pool request And Just given another glance and say ok everything is fine and click create pull request When I was a pull request and really here Is where we as the admin Will now get involved You cannot really take it further And Rightly sLine truncated
Demonstrate to you The process of now taking You're committed changes to your forked version it's this one Not the master branch How is gonna be little different for you because of course I am a [00:00:20](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m20s) Administrator of the master branch So I'll see things that you maybe won't see But Moreless you should be able to actually make a pull request And If you're not able to please let us know So that I can Make sure that you're able to Do that And [00:00:41](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m41s) There will be more guys involved in managing these Snippets So it's not only myself that will be responding to issues But 4 most part if there is really a holdup I'll come in and help Make sure that everything Works as we expect So you should be able to after having Done What we've explained in the previous tutorial you know [00:01:08](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m08s) Updating the snippets , getting out a forked version Of the repository cloning it down and offline And then basically it Unzipping the package into that repository Updating those files committing those changes with messages And then pushing it up here after you have ensured that your branch is in sync with the upstream branch Ok That if you don't understand Please go back watch that tutorial it is the previous one the playlist [00:01:40](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m40s) On YouTube And then this one now Will be First steps Basically I'm off doing a pull request So once you are in your repository on GitHub And you have Push your changes up here you'll see this you know Message [00:02:01](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m01s) And be able to click on Pull request So We've done that Next thing it will open a page Where Basically Identifies That you have forked [00:02:18](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m18s) VDM-Io/ Joomla-Component-Builder.... Snippets Master branch As the base there's only one branch at the moment And Then Your head Of the fork that you've got is over here [00:02:38](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m38s) And if it's says to you that it's able to do a merge Then You're in good shape everything shouldn't Be more complicated You also now see that those commit messages you've made Are now actually also showing up here And exactly every change that was done so basically you see we changed it From layout To tables And it [00:03:03](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m03s) shows you that we've renamed it from this to that So it actually identified that for us And if we can see ok nothing of the Snippets have changed You can scroll and see the snippet Isn't changed only those and the date Which is good for we want to Be able to see when was the last change to the file Here we can see that usage had A new [00:03:30](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m30s) Description added So that means if I was to now actually click On this link Added the accordion snippet Click there You see ok that's exactly what he did added accordion snippet And The same goes for every one of these commit messages And that's really what I meant when I said Giving good commit messages [00:03:56](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m56s) You make it so much easier for us to review the changes And to make sure that it is correct If it is very complicated and difficult Usually this kind of pull request will take longer So doing smaller amounts of snippet Contributions in of stead of whole bulk I suppose Would be Better Unless you already a trusted member in the community then I'll suppose it will go easier So yeah if you haven't done any of these before maybe take smaller steps at first [00:04:29](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m29s) Until we get to know you and until we more Confident that you Are a good contributor to do this project Yeah so trust is important for us So we'll be able to check this now no pull request has yet been made We've just come to the Page of where it starts You actually need to click on this create pull request This will now open in area Which You should give us information [00:04:59](https://www.youtube.com/watch?v=vQ-yxVtc-Co&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m59s) Of What would sort of summarise This pull request So if it's like a new library let's say 3 4 5 snippets to a new library Then just put that as the title Whatever would be enough To actually give thoseLine truncated
+1 -1
@@ -1 +1 @@
I'm very excited to announce the Actual Library manager implementation We busy with a pool request we should have it released within the next hour or so I'm very excited about this this new improvement Is really gonna make Libraries very Dynamic in JCB Not it has not been dynamic It's just Not in worries realise how easy it is to add new libraries So What I wanna do is quickly Not to elaborate x show you how it used to be done And then I want to jump into how it work now and you'll see why the new implementation is so much easier So much better and I think everybody's gonna enjoy it Ok so let's let's get started on how it used to work So if we go to a component and we open a component There are 3 libraries that are already built into JCB that just works out of the box And those 3 libraries can be selected With the add UI kit at food table Ok Let me see The other libraries that are being added Is a winner detects Basically some code in the certain areas of the script I'm not gonna elaborate on that Square take too long Point is this to you put select here simply By selecting You know now there's a new feature called dynamic And that is part of what we will need to look at Dynamic Basically means That it is added in on the basis of the views That are linked to the component So The Old Way You had to come to the component and sort of Talent here ok once you like it and I want food To table add it Anyway you could tell him you know what version you would like Or if you want it with the UI kit you could actually said that it adds both versions Now with improvements you'd said this to Dynamic which basically turns off The Global adding of the UI kit component And then Falls back Onto the new implementation which I will demonstrate with in a moment So let's leave it on this the way it was That was the first way of actually implementing some library The second way Which was their way that you could now scale it Is if you want to go to settings There is component files and folders that you could add So you could click here and say you don't what I want to I want to add a a Alive that isn't already part of JCB Ok so let's say you wanted to add Bootstrap So You would say ok there is a folder in your component on the administrative components Boland build up custom And inside that folder you placed the folder For Bootstrap so I don't have it here Let me quickly do that Is it now I'm just gonna refresh this page I I quickly went and added a folder to this custom folder Call Bootstrap Summer Just refresh this So I'm gonna get in click here And then there we have it select Bootstrap I want Bootstrap to be added to the media folder And since we do not do any Changing of the folder name will just leave that as it is So basically I move this folder into the media folder That's the way you would have done that in the past So close Now Having added the files to the component You will then Actually have to go to the view So if we go to side view And this looks View You will have to in the looks of you You know said That it actually now uses Now this is the new implementations I'm gonna undo that And just say Ok in the custom document script area You would add this snip it in here so you add a script now you know Show that you add the the Bootstrap 4 Folder to media But when it gets installed to Joomla It actually a create a component folder and put the A files in there If you do not know how they will work out at the folder install it onto Dumela website and go look in the media folder To get the correct path here And save and close and that's how you would in the past have extended JCB To actually use Other libraries then what's built into JCP And ok I list rated that simply so you know that we could have done this before But it was a little bit more complicated As the way it's going to work now So now With the new changes we've made You can actually Remove The The files If you have done this this manual way You can actually remove these files So close You don't need to add them any this way anymore They will be added on another way now I'm gonna demonstrate the the other way By actually starting at the libraries area Some closing out of the component I'm going to libraries And you see that with the upgrade There's now a Bootstrap 4 library uikit 3 2 Food table 2 and 3 and a no library Which is reading only necessary when greatest nippard it doesn't belong to any library Just your own snippet that you want to use So The Snippets are now directly linked to these libraries These libraries The 6th that would be Been shipped the JCB worth Should not be changed In relation to its name Or it's type But you can change its behaviour Bad behaviour is the file behaviour There are an a various file behaviours Let's open Bootstrap to show you some of those At the moment Bootstrap they said on always had And it is linking in basically a Content distributed Network link And it says that it it should add it as a link Now you can change thatLine truncated
I'm very excited to announce the Actual Library manager implementation We're busy with a pull request we should have it released within the next hour or so I'm very excited about this, this new improvement Is really gonna make [00:00:22](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m22s) Libraries very Dynamic in JCB Not it has not been dynamic It's just Not everybody realizes how easy it is to add new libraries So What I wanna do is quickly Not to elaborate , show you how it used to be done And then I want to jump into how it work now and you'll see why the new implementation is so much easier So much better and [00:00:50](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m50s) I think everybody's gonna enjoy it Ok so let's get started on how it used to work So if we go to a component and we open a component There are three libraries that are already built into JCB that just works out of the box And those three libraries can be selected With the add UI kit add food table Ok Let me see The other libraries that are being added Is when detects [00:01:22](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m22s) Basically some code in the certain areas of the script I'm not gonna elaborate on that, it's going to take too long Point is this two you could select here simply By selecting You know now there's a new feature called dynamic And that is part of what we will need to look at Dynamic Basically means That it is added in on the basis of the views That are linked to the component [00:01:50](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m50s) So The Old Way You had to come to the component and sort of tell it here ok , I want UiKit and I want food table added And you could tell him you know what version you would like Or if you want it with the UiKit you could actually set that it adds both versions Now with improvements you'd set this to Dynamic which basically turns off The Global adding of the Uikit component And then Falls back Onto the new implementation which I will demonstrate with in a moment So let's leave it on this the way it was [00:02:29](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m29s) That was the first way of actually implementing some library The second way Which was the way that you could now scale it Is if you want to go to settings There is component files and folders that you could add So you could click here and say you know what I want to add a library that isn't already part of JCB Ok so let's say you wanted to add Bootstrap So You would say ok there is a folder in your component on the administrator components [00:03:05](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m05s) Component Builder custom And inside that folder you would place the folder For Bootstrap so I don't have it here Let me quickly do that Just now I'm gonna refresh this page I I quickly went and added a folder to this custom folder Called Bootstrap So let me just refresh this So I'm gonna get in click here And then there we have it, select Bootstrap [00:03:36](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m36s) I want Bootstrap to be added to the media folder And since we do not do any Changing of the folder name will just leave that as it is So basically I move this folder into the media folder That's the way you would have done that in the past So close Now Having added the files to the component You will then Actually have to go to the view [00:04:03](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m03s) So if we go to site view And this looks View You will have to in the looks view you know set That it actually now uses Now this is the new implementations I'm gonna undo that And just say Ok in the custom document script area You would add this snippet in here so you add a script now you know that you add the the Bootstrap 4 Folder to media [00:04:36](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m36s) But when it gets installed to Joomla It actually a creates a component folder and put the A files in there If you do not know how that will work out add the folder install it onto Joomla website and go look in the media folder To get the correct path here And save and close and that's how you would in the past have extended JCB To actually use Other libraries then what's built into JCP And ok I Illustrated that simply so you'll know that we could have done this before But it was a little bit more complicated [00:05:13](https://www.youtube.com/watch?v=rDjvgLYOt1o&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m13s) As the way it's going to work now So now With the new changes we've made You can actually Remove The The files IfLine truncated
+1 -1
@@ -1 +1 @@
Out like to give you a Quick overview of the new implementation that we've had it To JCB That allows you to do translation We are a Excel spreadsheet It is really just to Make it easy for you to Build your component Extract your language strings Give it to someone else Have them do the translation in whichever language you like Have them give the spreadsheet back to you And imported into JCB without The necessary of struggling with Ini files any of that So that was what we wanted to achieve The other thing that you need to know Is a JCB Doesn't really work with placeholders When it comes to these translation strings It actually works directly with the English String And the reason we did that Is because the place holders Which in the Ini file is the Let me just show you Quickly If you look at these For example may be back This Word This English word here Might be ended up being used in multiple views the same English word But with a different Uno placeholder So What we did instead as we said to Ourselves ok To ensure that you always translate this Pacific English string only once We will only add the string and wherever it is reoccurs will replace it The string itself This should be an advantage I can understand that That you might want to have a different Lee But this is how we've gone about doing this And so when you think about create new Great new comes you know is used Many places over in In the Annoying the files It's sorry In relation to these placeholders But you only need to translate it this create new ones And we will add it The compiler will add it Correctly In every other place where it belongs So that's really The first thing you need to keep in mind The second thing which is Almost as important Is that you often have strings that are across multiple components So the string back for example again or cancel Clothes It is not only used in one component is used in many components And so we also said to Ourselves we want to still just translate clothes Once And then in every other component where it's used It will automatically be used And so when we go to JCB if you have a fresh install of JCB And you scroll down and your open language translations You see that there is no values there A same as if you opened languages there's also no values there If you want to have JCB Populate the translation the English strings So where does it get them what it gets them from your fields And from your side views And from Any other place either Your admin view or Hero Any other place where you use Translation strings In then it populates dynamically the language translation so you don't really ever need to click New To create any it creates it For you so the way to do that if you would go to the compiler You select the component that you would like to compile I need simply click compile and you need that do that only once how you can please clear that out again You don't need to use it Now if we go back to language translations Suddenly There's a whole bunch of things here and also tells you that it hasn't been translated and all So just that's quickly and we got I missed 200 49 strings here And like I said close will only be shown up once So It is with every other strain If we then open one of these You see that you cannot edit the English string now we've had request The people would like to edit the string but it doesn't really make sense because if the string is Being used In a Field How would we be able to know But their relationship here in his to change For example if you update a string here Now JCP needs to know In that field in needs to update the label for example There's no way for us to it Uno determine the at So uh basically change the string and it won't be useful Because it JCB on compilation Will deter will detect that this string doesn't exist Anel just crave it again To the way that you would change a string which is found here Is you need to go and change it in the decided The field where it was created Or the side view or the admin View And I mean in this case we know that this word Mo Is the components name right so if you wanna translate that string Oh sorry change that strain So for example I'll quickly demonstrate that I'm gonna change this demo to 2 hours Like that And then save and close Now I'll compile it again And just cleared out and then go back to our language translation And now You see the demo is gone because Demo is no longer being used anywhere Another component either so the system will automatically remove it If you go to the end of this string will see the new ones Have been added Seether So that's how you would Change a English string is you'd go back to where you said it And then from there haven't been change I'm gonna just change it back quickly And then compile it again Clear it out again Go back to language translations And you see that it's removed the other one and it's added to correct one back Now I'm gonna translate or I would like to translate only this onLine truncated
I"d like to give you a Quick overview of the new implementation that we've added To JCB That allows you to do translation via a [00:00:19](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m19s) Excel spreadsheet It is really just to Make it easy for you to Build your component Extract your language strings And give it to someone else Have them do the translation in whichever language you like Have them give the spreadsheet back to you And imported into JCB without The necessity of struggling with INI files any of that [00:00:47](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m47s) So that was what we wanted to achieve The other thing that you need to know Is that JCB Doesn't really work with placeholders When it comes to these translation strings It actually works directly with the English String And the reason we did that Is because the place holders Which in the INI file is the [00:01:13](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m13s) Let me just show you Quickly If you look at these For example may be back This Word This English word here Might be ended up being used in multiple views the same English word But with a different you know a placeholder [00:01:37](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m37s) So What we did instead as we said to Ourselves ok To ensure that you always translate this specific English string only once We will only add the string and wherever it is reoccurs will replace it The string itself This should be an advantage I can understand that That you might want to have a differently But this is how we've gone about doing this And so when you think about create new [00:02:09](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m09s) Create new comes you know is used Many places over in In the you know in the files sorry In relation to these placeholders But you only need to translate it this create new ones And we will add it The compiler will add it Correctly In every other place where it belongs [00:02:32](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m32s) So that's really The first thing you need to keep in mind The second thing which is Almost as important Is that you often have strings that are across multiple components So the string back for example again or cancel or close It is not only used in one component is used in many components And so we also said to Ourselves we want to still just translate close Once [00:03:00](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m00s) And then in every other component where it's used It will automatically be used And so when we go to JCB if you have a fresh install of JCB And you scroll down and your open language translations You see that there is no values there A same as if you opened languages there's also no values there If you want to have JCB Populate the translation the English strings So where does it get them well it gets them from your fields And from your site views [00:03:38](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m38s) And from Any other place either Your admin view or you know Any other place where you use Translation strings In then it populates dynamically the language translation so you don't really ever need to click New To create any it creates it For you so the way to do that if you would go to the compiler [00:04:04](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m04s) You select the component that you would like to compile And you simply click compile and you need that do that only once now you can just clear that out again You don't need to use it Now if we go back to language translations Suddenly There's a whole bunch of strings here and also tells you that it hasn't been translated and all So just that's quickly and we got Almost 249 strings here And like I said close will only be shown up once [00:04:37](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m37s) So It is with every other strain If we then open one of these You see that you cannot edit the English string now we've had request The people would like to edit the string but it doesn't really make sense because if the string is Is being used In a Field How would we be able to know That their relationship here needs to change [00:05:06](https://www.youtube.com/watch?v=q5NwKGnOHoQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m06s) For example if you update a string here Now JCB needs to know In that field in needs to update the label for example There's no way for us to it you know to determine that So you'd basically change the string and it won't be useful Because it JCB on compilation Will deter will dLine truncated
+1 -1
@@ -1 +1 @@
I would like to demonstrate to you the new implementation Which isn't such a major thing but Something we've done to try and Help along some of the route to complexity So when you build a component And you have a front end For your component so you've got site views Your site views usually are getting it's data from a dynamic get Which you link up to the site View I just wanna make get basically returns her anyway Resultset As from this result set That we should get information By which we Combined with the view name Build what his called in Search engine friendly URL By your search engine friendly you always basically done with the router So JCB also built the router And a sort of guess is What should be these values So let me compile a component And show you what it guessed And then see how we women need to change it Ja component we working with here is so minister buter So I'm gonna compile it And I stole it to this website Your ass now the router doesn't really work I'm not gonna demonstrate Hot Dove actual front-end I'm just gonna show you the code And And let's take it from there So when you look at the website you've got your root directory admin And then components And then in here we've got some of those two And there's a file called router I'm gonna open this And you'll see there's got a function called build I'm a class method As well as a functional Pass I'm in this function Call Pass There is a switch Which basically Makes decisions based on the segments First value And if that segment value is Because usually that would be the view name In this forest Value Toyota termin switch Which view are we looking at is it preacher So we going through the list Now by Default without us You know making any changes JCB Builders for us All of it So If we look at preachers Which is a Basically a listview Let's open the preacher model So here is peaches We can scroll down And we'll see that In its Query It's basically get as a get items and here's got a list query And it really is just getting all the items from Database With no input from the URL whatsoever Let's see Yeah it doesn't do any of that and then it just Gives back So it's a simple as that It does not Need a euro value So that means it most probably will only Set this verse Value And all of this will really be that redundant it won't be used Because it's a listview So there isn't an alias We not looking at an individual item so there isn't an ID So we could Actually remove this year This code It's not doing anything Now It is also not gonna really Slow your site down that Dramatically it's fact it's it's hardly noticeable It's it's just that this is default Being generated Where us if we look at for example Preachers is there list view but then there is a view called preacher we see it here And it is saying that It needs to get the ID from Discernment able Which is actually in error So if I open the preacher And I look at the list query Then I see that in the list query about here It is getting an ID From the URL And it is asking that it should be equal to preacher So It is the main table is Is the Sermon table But it's not looking for the Sermon ID It is looking for the preacher Value in the Sermon table and that's why Jjc be fell back onto the table name And yet It should actually go to the preacher Table and See weather That future value is equal to this ID So it is actually Making an area Now you wrote the code or you set up the gate so you should understand the logic of what you see in the code here If you do not Then This is a feature with JCB has would you possibly won't be able to you know make use of Like we've said many times JCB is for those who know PHP And can actually write their own components Now I know that this is an error because we want to actually get the value the ID Of the preacher Is the one we need to check And it is is doing it wrong it should This value here should be preacher not sermon You can look at the Gateway are class you're at the bottom Yours to get bar cast And here you can see what it's going to do And how it's going to actually get the values So you can also use the get wow class Well you know for your own purpose So At this point we see at least one of the Router case Within the pass method In the case loop there's at least one A router area that needs to be changed I know by having looked at this before That there is actually more than one it's also this categories Down here This one Should also change This should also become Well actually it should just get a true Here FNB true because this is a category Look up Now the other place it also need to change is this one There should also be series So this is where the guessing which JCB doesn't Dynamically Did not match the complexity of our Dynamic get And I'm I'm sure that as time goes on we might Improve it's Guessing Ok we might get better ways of guessing correctly And Within the dynamics of the dynamic get Be able to actually build this case more effectiLine truncated
I would like to demonstrate to you the new implementation Which isn't such a major thing but Something we've done to try and Help along some of the router complexity So when you build a component And you have a front end [00:00:17](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m17s) For your component so you've got site views Your site views usually are getting it's data from a dynamic get Which you link up to the site View and this dynamic get basically returns a Resultset and it is from this result set That we should get information By which we Combined with the view name Build what is called a [00:00:46](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m46s) Search engine friendly URL your search engine friendly URL is basically done with the router So JCB also builds the router And it sort of guesses what should be these values So let me compile a component And show you what it guessed And then see how we would need to change it the component that we're working with here is Sermon Distributer So I'm gonna compile it And install it to this website [00:01:16](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m16s) as now the router doesn't really work I'm not gonna demonstrate the actual front-end I'm just gonna show you the code And And let's take it from there So when you look at the website you've got your root directory admin And then components And then in here we've got Sermon Distributer And there's a file called router [00:01:44](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) I'm gonna open this And you'll see there's got a function called build I'm a class method As well as a function called parse and in this function called parse There is a switch Which basically Makes decisions based on the segment's First value [00:02:08](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m08s) And if that segment's value is Because usually that would be the view name In this first Value it determines which view are we looking at is it preacher And so we going through the list Now by Default without us You know making any changes JCB Builders for us [00:02:31](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m31s) All of it So If we look at preachers Which is a Basically a listview Let's open the preacher model So here is preachers We can scroll down And we'll see that In its [00:02:51](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m51s) Query It basically has a get items and here it got a list query And it really is just getting all the items from Database With no input from the URL whatsoever Let's see Yeah it doesn't do any of that and then it just Gives back So it's a simple as that It does not Need a URL value [00:03:18](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m18s) So that means it most probably will only Set this verse Value And all of this will really be redundant, it won't be used Because it's a listview So there isn't an alias We not looking at an individual item so there isn't an ID So we could Actually remove this here This code [00:03:44](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m44s) It's not doing anything Now It is also not gonna really Slow your site down that Dramatically it's fact it's it's hardly noticeable It's it's just that this is default Being generated Where us if we look at for example Preachers is the list view but then there is a view called preacher we see it here And it is saying that [00:04:09](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m09s) It needs to get the ID from Discernment table Which is actually in error So if I open the preacher And I look at the list query Then I see that in the list query about here It is getting an ID From the URL And it is asking that it should be equal to preacher So [00:04:34](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m34s) It is the main table is Is the Sermon table But it's not looking for the Sermon ID It is looking for the preacher Value in the Sermon table and that's why JCB be fell back onto the table name And yet It should actually go to the preacher Table and See weather [00:04:59](https://www.youtube.com/watch?v=hYycPLbaMos&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m59s) That preacher value is equal to this ID So it is actually Making an error Now you wrote the code or you set up the get so you should understand the logic of what you see in the code here If you do not Then This is a feature with JCB has with you possibly won't be able to you know make use of Like we've said many times JCB is for those who know PHP And can actually write Line truncated
@@ -1 +1 @@
I would like to give you a explanation As well as demonstration Of how JCB deals with jamalife Implementation Morning regards to creating off Database tables As well as updating them or even adding more You was a way of doing this through specific file convention Within your components file structure Package JCB is also been Designed to actually detect changes in your component development And create with files for you The best way to illustrate this is well this is compile a component So we have Similar to Beauty here Who's gonna compile that for us And then we'll go to the zip file Unzip it Have a look at it And see those files Videos of Thailand business extracted here An inside of this we have an admin folder and inside admin a sepal folder And here is the first fire with interest It's what you mean I use this to actually build a database upon the first install of the component Do take note that it runs this file only on a fresh install of the component Thereafter it will not run it again even if that's file gets updated Even if more values get added and usually it does JCB updates this file as you create new table New views which in Then it means and you table And if you add Fields which means a new column or field in the database And so This file update but it is for those Clients of yours that it couldn't install the component for the first time all those who already have the component installed This far will mean nothing to them All the files in this update folder Is what would actually be relevant If you have a client Which has version 1.3.2 installed Honour system Any gets this package from you this 2.0.0 Package Actually Start with This file Then that one and so forth It will start with a Fire which is the same Version as the version that is currently installed on The Joomla website So That means JCB builds these files In that expected way Ok Now let's go make a change to the component and see how JCB updates these files Just gonna install the component So we have it in the database We can look at the database in the moment To see how things change Now I'm gonna open the admin views and I'm gonna add A field To be at the at The View called sermon Is it gonna be any generic field So that we can at least see it in action I'm gonna call it mobile telephone And Just put in the fourth position The left tab that's not really important but Ok so there we go Reality fuel No you could at this point also add a new view and JCB world take both of them And will add both of them to the update file But You could even do that You know Make this change run the compiler Have this new update Then make it out of Change run the compiler and it'll follow along Incrementally Incrementing the diversion Value of the component As you go Just for our sake Maybe let me add a view Already in another View And then you'll see how they should be combined to these values N21 update So I'm going to grab a If you that isn't already part of this component And just where does stration Save and close Today we go we gotta view and it a new field If we compile the component now It will Do all those things that I've explained The receive its increment ID into 2.0.1 And if we go to the zip file Regain extracted open it up at 9 Sequel Updates When I'll see you there is actually a new file let's open this file Justin Investigate a little So we see here's the Command to actually add that new field And here is another one To create That new table And all of that is been placed into this 2 Dot co.za File Which like I said is the current version Of this installed Component If we look at the database at this point You see there there is no Look table And if we look at the Sermon table and structure Then we see that there is you know No Mobile field here Ok so that's install it now and see the change Ok it's been successful go back to the table Fastest refresh this I know you have it Got field added Africa back to the new table that it had to create Scroll down And there is the new table So it's done both of those as expected Secondly let me show you where it made some changes in JCB To relation to this component Will see that the component has automatically incremented it's version number If we open this component updates area You see that it has dynamically Store the same values that we saw on the file here next to the correct version And it is actually created a new Version entry You have to manually update this URL As there are too many variations here we couldn't actually implement This Dynamic Lee Is this your L is what is being used in your updates server file If your component is said to have an update server file And so At this point You can now continue even adding another view or even another field L just the same it Winkler meant it and it will update your database upon installation And really that is as simple as it is There are some places where that behaviour may not function as expected The only one I'm very much aware of is thLine truncated
I would like to give you a explanation As well as demonstration [00:00:06](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m06s) Of how JCB deals with Joomla's Implementation when regards to creating of Database tables As well as updating them or even adding more Joomla's way of doing this through specific file convention Within your components file structure Package JCB is also been Designed to actually detect changes in your component development [00:00:37](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m37s) And create with files for you The best way to illustrate this is well just let's compile a component So we have sermon distributer here that's gonna compile that for us And then we'll go to the zip file Unzip it Have a look at it And see those files extracted here [00:01:04](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m04s) And inside of this we have an admin folder and inside admin ,a SQL folder And here is the first file of interest that's what Joomla uses to actually build a database upon the first install of the component Do take note that it runs this file only on a fresh install of the component Thereafter it will not run it again even if that's file gets updated Even if more values get added and usually it does JCB updates this file as you create new views which in Then it means a new table And if you add Fields which means a new column or field in the database And so [00:01:46](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m46s) This file update but it is for those Clients of yours that it couldn't install the component for the first time all those who already have the component installed This file will mean nothing to them All the files in this update folder Is what would actually be relevant If you have a client Which has version 1.3.2 installed on his system Any gets this package from you this 2.0.0 [00:02:14](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m14s) Package It will Actually Start with This file Then that one and so forth It will start with a File which is the same Version as the version that is currently installed on The Joomla website So [00:02:34](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m34s) That means JCB builds these files In that expected way Ok Now let's go make a change to the component and see how JCB updates these files Just gonna install the component So we have it in the database We can look at the database in the moment To see how things change Now I'm gonna open the admin views and I'm gonna add [00:03:07](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m07s) A field To the admin View called sermon Is it gonna be any generic field So that we can at least see it in action I'm gonna call it mobile telephone And Just put in the fourth position The left tab that's not really important but Ok so there we go We added a field [00:03:34](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m34s) Now you could it disappoint also add a new view and JCB will detect both of them And will add both of them to the update file But You could even do that You know Make this change run the compiler Have this new update Then make another change ,run the compiler and it'll follow along Incrementally Incrementing the the version [00:04:01](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m01s) Value of the component As you go Just for our sake Maybe let me add a view Already in another View And then you'll see how JCB combines to these values in one update So I'm going to grab a view that isn't already part of this component And just for illustration [00:04:26](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m26s) Save and close There we go we gotta view and it a new field If we compile the component now It will Do all those things that I've explained There you see it's incremented into 2.0.1 And if we go to the zip file again extracted open it up admin Sequel Updates [00:04:53](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m53s) we now see there is actually a new file. Let's open this file just Investigate a little So we see here's the Command to actually add that new field And here is another one To create That new table And all of that is been placed into this .... 2.0.0 [00:05:16](https://www.youtube.com/watch?v=zN2M15fzf_M&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m16s) File Which like I said is the current version Of this installed Component If we look at the database at this point You see there is no Look table And if we look at the Sermon table and structure Then we see that there is you know NoLine truncated
+1 -1
@@ -1 +1 @@
A present they had this Request on the Forum By Marco Regarding some help with Sub forms How to generate a subform itself writing in JCB Where to find the XML details in relation to repeated subform fields in View How the date of the subform is populated How posted data of a subform is validated How the data of a subform is processed and Persisted My Samsung is it above is done as part of JCB and would not require manual construction Of XML files Reduce Google find an answer to no avail Yes At the moment We have Only made tutorials about I think repeatable fields And repeatable Fields as such has been discontinued I don't think I've actually made it story about subforms as yet So here it goes let's do it Ok first thing First Subforums have fields in them that much we know right So if we gonna go to component for example and it's a we open this app and view We are actually looking at a subform ride this is a subform And each of these little Fields here is a field in the subform And actually is only an ID which you need to add to create Getting the stuff form so what do you do if your first create what this is a dynamic Custom field The basically grabs values out of the admin view so this is a custom field this one You create that one this is a list field You create list field this is a checkbox so you basically create these Fields First That's the first thing you do you create a field you wanna use in the subform So for our purposes I'm gonna use existing fields I just to saute demonstrate Ok so we've got what we have the description mobile number name we got a few Fields here Ok so First we wanna create a new field So I'm gonna Fastest creator Open the warehouse open so I can get the ID is So then here click new And basically select subform right Sop form there we go N8 actually populates your XML for you Now something tells me That If you haven't actually looked at all the tutorials That is available on Google Sorry on YouTube Then a lot of us were maybe not even make sense of what I'm doing where I'm doing it and all that and So For those that maybe just seeing this video for the funeral haven't watched any of the other tutorials Please go to YouTube and type in Joomla component Builder And try to find the playlist there's old playlist full of tutorials Start at the top working through way down it so many tutorials many hours that I've spent trying to t Teach And by people in using this component and I know it does tutorials will make you You quite able to build amazing things Ok so I'm gonna just leave this options the option list This form source if you read here you can add a path to an XML file containing the field So you can add a custom A XML file to your component how to add custom files to component hold not a topic it's It's also possible within your controller component to add files and folders all those kind of things But that means this specific source can still be used but you don't need to If you Use the fields Option then you basically need to remove the source option right only one of them so I need the fields All the fields form source So these are the two options I see it's currently set to mandatory the fields But I think you can change that Going to the few pipes change that to optional And then that you can select other Fields or field source form source I think the compiler will in any case if it it takes it there is a form source it will behave correctly Ok so here we need to add the ID is so we can come here and I want to have a name Sources 199 I just add 199 and 8 comma And then let's add something else let's say Website 280 So it's 280 And let's do an email as well Where is it There's no email here oh there's an email And it's 100 Ok so where That in place we can add a description We can add a maximum A filter a show on I'm just gonna leave this the validation of these fields I think That is an area which I haven't actually looked into But if I'm correct And also the reason why they moved away from repeatable fields Is that every field is validated On its own merit So for example The name field If you create a name field you're obviously Saying ok I want this to be a string and it has this filter string Value And since this is part of the XML it will be validated on this I can be mistaken here And yeah I haven't actually looked at the code so my dad but that's That's what I anticipate it will do most cases I would say Anticipate that it doesn't and try and do some custom scripting I'm not gonna illustrate that now Are you need to Actually no little bit more about JCB which there are tons of the toriel stew show you How to do custom scripting all around it component and even to do custom scripting anywhere and in Any area of the component through the custom code area implementation So I'm gonna talk more about that now So For now we want to Just Make sure it got all the spelling right here Ok good I'm gonna save this just give it a name Options and test so I can see it This obviLine truncated
I recently had this Request on the Forum By Marco Regarding some help with Sub forms How to generate a subform itself writing in JCB Where to find the XML details in relation to repeated subform fields in View How the data of the subform is populated How posted data of a subform is validated [00:00:32](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m32s) How data of a subform is processed and Persisted My assumption is it above is done as part of JCB and would not require manual construction Of XML files Googled but found an answer to no avail Yes At the moment We have Only made tutorials about I think repeatable fields [00:01:01](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m01s) And repeatable Fields as such has been discontinued I don't think I've actually made a tutorial about subforms as yet So here it goes let's do it Ok first thing First Subforums have fields in them that much we know right So if we gonna go to component for example let's say we open this admin view We are actually looking at a subform right this is a subform And each of these little Fields here is a field in the subform And actually is only an ID which you need to add to create [00:01:44](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) the subform so what do you do if your first create what this is a Custom field That basically grabs values out of the admin view so this is a custom field this one You create that one this is a list field You create list field this is a checkbox so you basically create these Fields First That's the first thing you do you create a field you wanna use in the subform So for our purposes I'm gonna use existing fields I just to sort of demonstrate Ok so we've got what we have the description mobile number name we got a few Fields here Ok so [00:02:27](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m27s) First we wanna create a new field So I'm gonna First create Open that we have both open so I can get the IDs So then here click new And basically select subform right Subform there we go and it actually populates your XML for you Now something tells me That [00:03:00](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m00s) If you haven't actually looked at all the tutorials That is available on Google Sorry on YouTube Then a lot of this world maybe you not even make sense of what I'm doing where I'm doing it and all that and So For those that maybe just seeing this video and not watched any of the other tutorials Please go to YouTube and type in Joomla component Builder And try to find the playlist there's old playlist full of tutorials Start at the top working through way down it so many tutorials many hours that I have spent trying to Teach [00:03:37](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m37s) And guide people in using this component and I know those tutorials will make you You quite able to build amazing things Ok so I'm gonna just leave this options the option list This form source if you read here you can add a path to an XML file containing the field So you can add a custom A XML file to your component how to add custom files to component hold not a topic it's It's also possible within your Joomla component to add files and folders all those kind of things But that means this specific source can still be used but you don't need to If you Use the fields [00:04:23](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m23s) Option then you basically need to remove the source option right only one of them so only the fields or the field form source So these are the two options I see it's currently set to mandatory the fields But I think you can change that Going to the field types change that to optional And then that you can select other Fields or field source form source I think the compiler will in any case if it detects there is a form source it will behave correctly here we need to add the IDs so we can come here and I want to have a name So it's just 199 [00:05:04](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m04s) I just add 199 and a comma And then let's add something else let's say Website 280 So it's 280 And let's do an email as well Where is it There's no email here oh there's an email And it's 100 Ok so we have [00:05:33](https://www.youtube.com/watch?v=3j4xPQC4apI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m33s) That in place we can add a description We can add a maximum A filter, a show on, I'm just gonna leave this the validation of these fields I think That is an area which I haven't actually looked into But if I'm correct And also the reason why they moved away from repeatable fields Is that every field is validated On its own mLine truncated
+1 -1
@@ -1 +1 @@
Great news I think option that we've Put in place especially for those of you that have really purchase some DStv packages Like the demo Was the main component all the Sermon distributed component This will be excellent news so let me demonstrate what we Done And also makes address Of future Changes On the import components area now There is an extra tab And with this tab you can now easily Import Paid or free Components That We ask Distribute It's called the wedding packages so it took of moment to load it it does take a while because Aquarius At the moment it queries GitHub And check and gets a list of all the latest packages So if we You know updated get up is all the matic Please show them the new packages Here So And we will be adding more free options Hi we are planning to to add some more free packages here the moment there is only 2 To really most of them are paid So you could You can buy any of these packages and user Where you like So The whole world is free and the demo version Nearest free but you could know yes you can actually get any of these and if you You're ready but just a sermon distributor version Are you going to select Ear Because you know JCB is constantly improving I'm so swimmin this too Uterus also improving And so we making changes to To some of distributor and if you wanna update yours or even if you have played with it and you wanna reset it But I'll remember If you got a reset it it will reset everything in Including every field and even Fuel pipes So Do Keep that in mind That if you For this package Over the In 1 It will revert everything Back what is great though Is that Gmail obviously Tree right If you put your history on for the JCP component so that means you could actually take a step back and some of those ever If you want it Anyway that's just a little Side note so you basically select the package you want to install and then click on get package This will take a while as it's downloading it from get up please make sure to read all these things I didn't even know True that but Read All of these packages are fully you know that Is written there So you end up at the page which We usually would Shows you who made the package If you still didn't get it Tuk Click on this link here Taxi cab I take And I get it For any of the other packages Well Or before getting here there's a there's a link That says By packages you could also click on those in Like the bucket you like Here it'll show you the component that is actually being Stalled Zurich Distributor 2.0 2.0.2 Which is the latest version And You then add your key here Which I will do in a moment And then click continue Which then makes it Install We had a this new switch here quiet And some of your Riffs Releases that might be a spelling mistake like this This one here it is But we fixed it and We did push out The The Fixer For this Which means in JCB 7.11 Possibly 2.7 Oh so it was 7.1 Come on We'll have this type of fixed Anyway what does stars Is it give the option to see exactly everything it does they say busy Importing on the back So the actually tells you what it was changed to what ID It doesn't give you the names just give you ID references so gives you a lot of more Sort of inside of what happen Which is obviously used for when something doesn't go right you can click on this so usually it's set to quiet Really wanna see all that detail you just want to know it's done but if you wanna see the detail you basically Yes And here if you want to override Data See how the force location update works Is if it finds an item And that item is New Year Then the one That is Being imported then it Drops the import option And it keeps the newer version in your system So if you click here that's how usually works with the force local update to know No if you change this to Yes Then it will ignore the time stamp completely And update the item irrespective whether it is newer or older or whatever Ok so that's that So we're at the ID and then we click Continue on I'm gonna pause the video from home as you want to see the ID Do you have it So it gave me a very detailed Print out so when it didn't find when it founded It says it found it and then it updated But if it didn't find it it will actually say that I did so and so in field Was changed to ID so and so And it's been Imported so there is the list Of everything Did Yes quite a long list Scrolling Scrolling Ok and then the bottom it says great if that's what you would usually see Just that So All of the rest It actually just Showed you because Not to be quiet so now was SIM distributor imported Are you gonna open at look at it Basically it's Should have all the data here The licensing my Danger so just add another licence here and then Saving Close And then you can actually compile it as easy as that So similar to Beauty Decompile And Then once it's compiled obviously then you have the July package so what does does It also included the The external script with Is also the sortLine truncated
Great news I think the option that we've Put in place especially for those of you that have really purchase some JCB packages Like the demo Advanced demo component or the Sermon distributor component This will be excellent news so let me demonstrate what we've [00:00:20](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m20s) Done And also makes suggestions Of future Changes On the import components area now There is an extra tab And with this tab you can now easily Import Paid or free Components [00:00:39](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m39s) That We actually distribute. It's called the VDM packages so it took of moment to load it it does take a while because it actually queries At the moment it queries GitHub And check and gets a list of all the latest packages So if we You know updated GitHub it will automatically show then the new packages [00:01:01](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m01s) Here So And we will be adding more free options I, we are planning to to add some more free packages here the moment there is only 2 To really most of them are paid So you could You can buy any of these packages and use it in anyway you like So The Hello World is free and the demo version [00:01:24](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m24s) here is free but you could, yes you can actually get any of these and if you You're ready purchased a sermon distributor version you can just select it here Because you know JCB is constantly improving And so Sermon Distributor is also improving And so we making changes to To sermon distributor and if you wanna update yours or even if you have played with it and you wanna reset it But know remember [00:01:52](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m52s) If you got a reset it it will reset everything in Including every field and even Field types So Do Keep that in mind That if you install this package Over the existing one [00:02:07](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m07s) It will revert everything Back what is great though Is that Joomla obviously keeps history right If you put your history on for the JCB component so that means you could actually take a step back and some of those every If you want it Anyway that's just a little Side note so you basically select the package you want to install and then click on get package This will take a while as it's downloading it from GitHub please make sure to read all these things I didn't even now Trough that but [00:02:37](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m37s) you should read All of these packages are fully you know all that Is written there So you end up at the page which We usually would Shows you who made the package If you still didn't get the key you could click on this link here To actually go buy the key [00:02:55](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m55s) And get it For any of the other packages as well Or before getting here there's a there's a link That says By packages you could also click on those and then select the package you like Here it'll show you the component that is actually being in Stalled which is says here is sermon Distributor [00:03:12](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m12s) 2.0 2.0.2 Which is the latest version And You then add your key here Which I will do in a moment And then click continue Which then makes it Install We added this new switch here quiet And some of your [00:03:31](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m31s) Releases that might be a spelling mistake like This one here which is Quite But we fixed it and We did push out The the fix For this Which means in JCB 7.8.1 Possibly [00:03:50](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m50s) 2.7. O oh sorry 2.7.1 Come on We'll have this typo fixed Anyway what this does Is it give the option to see exactly everything it does JCBs Importing on the package So the actually tells you what ID was changed to what ID It doesn't give you the names just give you ID references so gives you a lot of more Sort of insight of what happened [00:04:19](https://www.youtube.com/watch?v=OHvawooT67s&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m19s) Which is obviously used for when something doesn't go right you could click on this so usually it's set to quiet you don't really wanna see all that detail you just want to know it's done but if you wanna see the detail you basically click yes And here if you want to overwrite existing Data You see how the force location update works Is if itLine truncated
+1 -1
@@ -1 +1 @@
I would like to Introduce you to a feature that we've been working on for quite some time now And I'm very sure it will Come as a surprise to some of you that actually can do this Most of the features already existed For quite a while It's just that I've been Trying to make it Stable so that It will work well And in doing so I had to extend it a bit So I wanna I wanna look at this feature It actually has three Two or three concepts which maybe is best if I explain that So what is this all about Ok It's about adding Dynamic Files Folders Or even external Files Which maybe is on a website Or On GitHub And you want to Get the content from a file and add it Maybe is code Or even as a file To your Fuel system So Here's the thing I'm working with components that is pulling data from all over the place And so Most of these features are really what what I've been needing to Get projects going And Trying to save myself Time That I don't need to Copy paste and move things around to ensure that it's a correct copy being used and on compilation Andre CB itself is maybe one of the best Explanations So let's look at this You know that there is a feature But you can add files And folders This feature is like I said it's always been there But currently Afrix penitus By adding an advanced tab to this feature It's got this basic which is the normal one Which if you watched some of the previous tutorials the auditor Orioles I do actually explain How this works And how you get these files and I'm not gonna go into that There is now a new area called advance Sorry I had to just quickly update that note for us Advanced area now Is able to Grab Files from anywhere in your system An added to the component Now It can be files outside of the root Directory of your Joomla website Just being sure That The PHP Which usually is a patches permission Has the right to the file and can read it So this is just the only thing But for most cases We won't need to grab files outside of the Joomla root directory because we actually Maybe just editing a custom script Custom file Inside of a G Muller Component which we've created But this file or This folders are not Generated by JCB So we want those files Weather actively running inside of a component We want them to be Basically taken and put into the package without us having to move it around That's what this featuring will now do So you can like a I'm doing here I you can use constants You'll see there's a little note here that tells you that That you can use Crossing paths and the full path Directly without quotes that means You don't need to do You know like in PHP here are you do something like that wait no not And you put this part in quotes right like that What are you doing need to do any of that You put the constant directly Like that and The compiler will deal with this And make it right So That you can do also with folders as well as with files And then You obviously need to still set the target path and relation To the ZIP package So you have folders Called admin But as you can see here I'm actually doing A folder called libraries And That means I am targeting a A folder which isn't actually Usually part of a package I know a component package But because I want that folder to be installed with my component every time And I don't want to to to actually have a separate A package for For this library I've actually Improved JCB to include this Package Which is basically if you guys go look at this You see that is It's basically a cop Composer A file and I'm including some Composer Class is there which we are now using in JCB And I'm moving it Every time with each install Into its place Now That might be Outside of convention I suppose But there is no the rules against it I think in Yeah so That's what we doing What's nice though is that when JCB detects that you are not targeting the normal atman Or Media Or Image folder site Those are there did normal folders Then Await not Imagefal is neither is that normal But did you got your see that site admin and Media If If Jason be detected your Gonna be moving content Into a folder that some part of the Expected package component package folders It will actually had a little script Do the script install So that it all move this folder into its correct place On upon installation of the component Or whether the component is updated So you can go look at that In fact I can show you just briefly So Europe got the component open The Script file for component Builder Scroll down for this huge file But here at the bottom when I have this new little script It's great name the little weird so it doesn't conflict with any other method in it at anytime And basically It gets the The details from the above methods And then it checks whether The folders obviously it gets there the day that I have the namak install folder It takes whether there is more than one And Then If it's One of these it ignores it because those already being deal dealt with by Jace ALine truncated
I would like to introduce you to a feature that we've been working on for quite some time now And I'm very sure it will Come as a surprise to some of you that actually can do this Most of the features already existed For quite a while It's just that I've been Trying to make it Stable so that It will work well [00:00:32](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m32s) And in doing so I had to extend it a bit So I wanna I wanna look at this feature It actually has three Two or three concepts which maybe is best if I explain that So what is this all about Ok It's about adding Dynamic Files [00:00:55](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m55s) Folders Or even external Files Which maybe is on a website Or On GitHub And you want to Get the content from that file and add it Maybe as code Or even as a file [00:01:17](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m17s) To your system So Here's the thing I'm working with components that is pulling data from all over the place And so Most of these features are really what what I've been needing to Get projects going And Trying to save myself [00:01:39](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m39s) Time That I don't need to Copy paste and move things around to ensure that it's a correct copy being used and on compilation And JCB itself is maybe one of the best Explanations So let's look at this You know that there is a feature But you can add files And folders This feature is like I said it's always been there [00:02:03](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m03s) But currently I have expanded this By adding an advanced tab to this feature It's got this basic which is the normal one Which if you watched some of the previous tutorials the older tutorials I do actually explain How this works And how you get these files and I'm not gonna go into that There is now a new area called advance Sorry I had to just quickly update that note for us [00:02:35](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m35s) Advance area now Is able to Grab Files from anywhere in your system An added to the component Now It can be files outside of the root Directory of your Joomla website Just being sure That [00:02:55](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m55s) The PHP Which usually is a php has permission Has the right to the file and can read it So this is just the only thing But for most cases We won't need to grab files outside of the Joomla root directory because we actually Maybe just editing a custom script Custom file Inside of our Joomla Component which we've created [00:03:24](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m24s) But this file or This folders are not Generated by JCB So we want those files Where they are actively running inside of our component We want them to be Basically taken and put into the package without us having to move it around That's what this featuring will now do So you can like a I'm doing here I you can use constants [00:03:52](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m52s) You'll see there's a little note here that tells you that That you can use constant paths and the full path Directly without quotes that means You don't need to do You know like in PHP you know you do something like that wait no not And you put this part in quotes right like that Well you don't need to do any of that You put the constant directly Like that and The compiler will deal with this [00:04:21](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m21s) And make it right So That you can do also with folders as well as with files And then You obviously need to still set the target path and relation To the ZIP package So you have folders Called admin But as you can see here I'm actually doing A folder called libraries [00:04:45](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m45s) And That means I am targeting a A folder which isn't actually Usually part of a package you know a component package But because I want that folder to be installed with my component every time And I don't want to do actually have a separate A package for For this library I've actually [00:05:15](https://www.youtube.com/watch?v=_c7wzW075lA&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m15s) Improved JCB to include this Package Which is basically if you guys go look at this You see that is It's basically a Composer file and I'm including some Composer Classes there which we are now using in JCB And I'm moving it Every time with each install [00:05:39](https://www.youtube.com/watch?v=_Line truncated
@@ -1 +1 @@
Ok let's do this Mowana and a File Field Good component And upload a file So I I'm gonna use this demo component He's got a few at nephews who got the errors Look I got a side view looks And looking I'm gonna add this field to do look Admin View But I first need to create the field And We need to sort of look at The steps that will need to implement Currently JCB doesn't matter the box actually Address this We might think of doing this Maybe The future but Because of some of the security risks It's actually best you do this is self Because then At least you uncle Control And the risk is Really yours Adult How to put anyone else address Ok So you're uploading a file The field you wanna use already exists In the Sorry if you types So we got the field types There is a field called File See where is it Must be none Yeah we go File Now this Obviously Everything in here Was taken From Zuma Las documentation So it shows you a whole lot of attributes their values some of the description But also shows you where to actually get more info on this And so it's always good To actually do that Ok so here we are Scroll down And there is the file field So It actually now has this new except Perimeter Which is nice Extra which wasn't available when I first set it up So if yours doesn't have it You see that I Actually Have Since I did it It's not Ok so Midas As well add it now then So you're on the size it's at that new attributes So it's accept The value of gonna leave it to being image and can be changed 5 give it some Affirmation is regarding The scripture that Present I'm here ok so We got this new attribute set Those of you running the latest Release of JCB Might already have this there it only gets added if you do fish install It doesn't update the database Ok great 7 clothes So we got our file type set If we go to files now And we can Create a new file Sorry field I-Traffic Files I mean Fuel And we select the file Come on You see that it gives you the Information And there is that new Attribute Available to us And you'll see that it's also showing up here And so this is the beginning Of actually setting up The File field type Deponent I'm just gonna call this file And Then here we can just say File Well let's call it image Here we say image to take me to computer And most of these other values we could actually take away Will come back to this Once we've added to the component and started looking Hot Found the other things that must be done because this is only step a they are actually 3 steps to take Of which this is the easiest So we have here Image Need to say that this Close ok now we go to our rapid View And that's this Look I'm gonna go directly to it fields So could you said that File Fuel type Little bit Chunk in here's I'm gonna Zoom out a bit Ok Where will I place this They are Two tabs I think let's do it in the more areas At the bottom here More And Image and we'll see there are quite a few files here Image Thank you Tile Africa And That should do it Let's make it forward For now And then one Just 1 and 7 close so now If we What open the atom View We should see the new Field has been added And it is said to being in the full view Sorry full width of the The club In the more tab And We could actually now compile the car Component As it has a beginning to see ok how I was gonna workout Powder And then Install it Then have a look at it It's a great new demo Go to more So here we see The file So it's telling us File one Ok we have a weather problem here We've got to 2 mm Fields with the same name image So I'll have to go change this Can I go back I'm gonna uninstall this Is gonna be the easiest way to do that And then go back To the fields Corset Last one I'm created End Image And it's strange this 2 Banner Think that'll be ok Not the type Ok so I think we'll use banner I'm weak all this also banner so it stays the field type is file but will use the Label banner ANN7 close Now let's try again You know if you have Two of the same fields Meaning exactly the same name JCB automatically calls the one The name with being image one the other one image two And doing that is not good practice it usually doesn't come out right in Events Busy with history Because it only tracking one field right And When it actually takes the history that field name doesn't match any field So So when it comes to the history and updating of the database Automatically as you add new fields Using the same field multiple times is not recommended ok So let's try this again And then install it Now if we go and have a look We should see a different Reality here great Banner Got all the necessary information Obviously this is set And your server Tells you that And now you can click here and select a Image So I'm gonna do that So I got this autumn tree forest that I've selected And Need to add a name and some That seems to be all I need to do and then save and we have a problem NOSA A little glitch that I love you should have I Tampered with sLine truncated
Ok let's do this We want to add a File Field to a component And upload a file [00:00:12](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m12s) So I I'm gonna use this demo component it got a few admin views who got the areas Look I got a site view looks And looking I'm gonna add this field to do look Admin View But I first need to create the field [00:00:32](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m32s) And We need to sort of look at The steps that will need to implement Currently JCB doesn't out of the box actually Address this We might think of doing this Maybe in The future but Because of some of the security risks It's actually best you do this yourself [00:00:54](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m54s) Because then At least you're under Control And the risk is Really yours And not put anyone else at risk Ok So you're uploading a file The field you wanna use already exists [00:01:11](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m11s) In field types So if you go to field types There is a field called File See where is it Must be in the next one Yeah we go File Now this [00:01:32](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m32s) Obviously Everything in here Was taken From Joomla's documentation So it shows you a whole lot of attributes their values some of the descriptions But also shows you where to actually get more info on this And so it's always good To actually do that Ok so here we are [00:02:00](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m00s) Scroll down And there is the file field So It actually now has this new except Perimeter Which is a nice little Extra which wasn't available when I first set it up So if yours doesn't have it You see that I Actually [00:02:23](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m23s) Have Since added it It's not showing up here Ok so Might As well add it now then So you're under size let's add that new attributes So it's accept The value I'm gonna leave it to be in image and can be changed let's give it some information [00:02:46](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m46s) as regarding description that just copy that and place in here ok so We got this new attribute set Those of you running the latest Release of JCB Might already have this there it only gets added if you do a fish install It doesn't update the database with these values Ok great [00:03:15](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m15s) save and close So we got a file types set If we go to files now And we can Create a new file Sorry field Files I mean Field And we select the file Come on [00:03:35](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m35s) You see that it gives you the Information And there is that new Attribute Available to us And you'll see that it's also showing up here And so this is the beginning Of actually setting up The File field type [00:03:55](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m55s) to your component I'm just gonna call this file And Then here we can just say File Well let's call it image Here we say, Choose an image from computer with maximum 100Kb And most of these other values we could actually take away we will come back to this Once we've added to the component and started looking [00:04:34](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m34s) at some of the other things that must be done because this is only step A they are actually 3 steps to take Of which this is the easiest So we have here Image don't need to say that just save and Close ok now we go to our admin View And that's this Look I'm gonna go directly to it fields [00:05:05](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m05s) So I could add that File Field type I'm a little bit chunt in here so I'm gonna Zoom out a bit Ok Where will I place this There are Two tabs [00:05:21](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m21s) I think let's do it in the more area At the bottom here More And Image and we'll see there are quite a few files here Image Think it should say file ,here we go And That should do it [00:05:50](https://www.youtube.com/watch?v=o482sK4DxkM&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m50s) Let's make it full width For now And then one there is just one and save and close so now If we should open the admin View We should see the new Field has been added And it is said to being in the full view Sorry full width of the [00:06Line truncated
+1 -1
@@ -1 +1 @@
Ok if those of you who have Fur not already Watch this How to use the field type So the file fuel type To upload a A file If you haven't watched this Then How to dress is your first come and watch The Sartorialist Cause a lot of things But I explain it here Words I'm not gonna go into that depth Again Otherwise it Is it gonna be 2 hours But in this tutorial I'm going to the sort of the Talk about a Dragon Drop Automated Crop Functionality Which could also be used instead of this Implementation So this implementation would be I said it's more Limited You could do a crop With this one as well But we haven't Actually demonstrated that we going to demonstrate it now In this tutorial And The library I'm going to use before I Your enemy just I'll actually add a link to this video Underneath The one that you're watching Ok So The other thing you need to know about is you like it Of course I suppose by now You're very wealthy like it You like it has a very nice File uploading front-end Which I have used quite often So I am gonna demonstrate using UI kits upload But If you know anything about JavaScript and that kind of stuff It wouldn't be hard to Plug-in Bootstraps or Any other library which You actually wanna use JCB Can be scaled To be using other libraries it is go to libraries in Set up the new library and then in your Include the files in your admin View And there you go so At this point I'm just gonna use JCP sorry I like it now I'm gonna use the older version to you I get in my Presentation And that's simply because that's the one I've already got going in some of my projects I'm lazy or the reluctant Two actually Embrace the later release Because of his lack of compatibility backward compatibility Which is to me like Not not good Ok anyway let me Grant about that So where you wanna go You would like to go to get Uikit Version 2 And actually it to components This is where you would like to actually go Then You will see Sorry You'll see there is a Upload at the very bottom That actually explains too How to use this This library This is the JavaScript that will be using So it's got a nice progress bar and everything Up And This is the HTML Ruby using And it's got a nice You know Drag and drop area And selecting area So you can Dim sum Information here to the user As well as heaven drop the file right there And it works very well I've used it for Number of years now It's got some some Eventsair And it's very similar to Version 3 So if you wanted to see version freeze option you'd simply click on version 3.2 Station And scroll Summer to the bottom it says download And here it is Select Where is the market for the select And then the Dragon Drop there is the markup for the Dragon Drop so YouTube This And then this Jarvis So it's look very much the same as the few changes course Little bit changes in the Rosebud For the most part it's generally the same kind of approach so you would naturally just be able to plug-in this Instead you wanna use you I can 3 Or any other library You gonna see me making for example this dynamic And The euro is going to be done I make And weather is going to be allowing multiple or only one all those kind of I see I think the previous one and had the multiple option But this one also has allowed You know what what What type of image of file do you want to permit to be uploaded And the action is where the URL is right And yeah so you'll see me actually make some of this dynamic With the script that I'm using And of course here we are talking Ajax Oh so you are able to upload the File without saving The item Weather for this area is available And you simply can use a note Two actually At this Script to your page So that's what I usually do I use a note and just add this Somebody drop something here it's gonna post to the server And so if the item has ID I passed the ID So that it gets stored in the database immediately I'm sorry even if you save it Don't save the file actually gets added to that item And if it's a new item which means no ID we actually add a hidden field To the farm So we return the actual value that must go to the database And we put it in that hidden field So did when you then do save the item It actually does I store it in the other correct place So that's sort of the approach I'm gonna demonstrate that to you Step-by-step With an existing component which I really I got out there and which Not using And it is actually available In JCB so you'll see there is a new import JCB packages You could either click on this Or you can go to Joomla components and click on import components Is the same is really the same thing Tango go back to his dashboard And click on import HP packages There has been a release fix I think it was beIN The previous release if you clicked on import a submit package is it actually didn't Yeah I didn't give you this doesn't give you This Package tab here It gave you only those In fact it's still broken So best that go to gym along components And EnLine truncated
Ok if those of you who have not already Watch this How to use the field type To the file field type [00:00:09](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m09s) To upload a A file in JCB If you haven't watched this Then I would suggest if your first come and watch this tutorial Cause a lot of things that I explain in here Which I'm not gonna go into that depth Again Otherwise [00:00:25](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m25s) It's gonna be 2 hours But in this tutorial I'm going to the sort of the Talk about a Drag and Drop Automated Crop Functionality Which could also be used instead of this Implementation So this implementation would be I said much more limited [00:00:47](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m47s) You could do a crop With this one as well But we haven't Actually demonstrated that we going to demonstrate it now In this tutorial And The library I'm going to use before I go on let me just I'll actually add a link to this video Underneath [00:01:08](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m08s) The one that you watching Ok So The other thing you need to know about is UIKit Of course I suppose by now You're very aware of UIkit UIkit has a very nice File uploading front-end Which I have used quite often So [00:01:29](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m29s) I am gonna demonstrate using UI kits upload But If you know anything about JavaScript and that kind of stuff It wouldn't be hard to Plug-in Bootstraps or Any other library which You actually wanna use JCB [00:01:47](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m47s) Can be scaled To be using other libraries it is go to libraries in Set up the new library and then in your Include the files in your admin View And there you go so At this point I'm just gonna use JCB sorry UIkit now I'm gonna use the older version to you UIkit in my Presentation [00:02:14](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m14s) And that's simply because that's the one I've already got going in some of my projects I'm a little lazy or a little reluctant To actually Embrace the later release Because of his lack of compatibility backward compatibility Which is to me like not good Ok anyway let me rant about that So where you wanna go [00:02:43](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m43s) You would like to go to get UIkit Version 2 And actually to components This is where you would like to actually go Then You would see Sorry You'll see there is a Upload at the very bottom [00:03:00](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m00s) That actually explains to you How to use this This library This is the JavaScript that will be using So it's got a nice progress bar and everything And This is the HTML that we'll be using And it's got a nice [00:03:20](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m20s) You know Drag and drop area And selecting area So you can give some Information here to the user As well as have them drop the file right there And it works very well I've used it for Number of years now [00:03:37](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m37s) It's got some some Events here And it's very similar to Version 3 So if you wanted to see version threes option you'd simply click on version 3 documentation And scroll Somewhere to the bottom it says download And here it is Select there is the markup for the select [00:04:01](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m01s) And then the Drag and Drop there is the markup for the Drag and Drop so you'd use This And then this JavaScript So it's look very much the same as the few changes of course Little bit changes in the those but For the more part it's generally the same kind of approach so you would naturally just be able to plug-in this If instead you wanna use UIkit 3 [00:04:26](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m26s) Or any other library You gonna see me making for example this dynamic And The URL is going to be dynamic And whether it's going to be allowing multiple or only one all those kind of Let me I don't think the previous one and had the multiple option But this one also has allowed You know what what What type of image of file do you want to permit to be uploaded And the action is where the URL is right [00:05:02](https://www.youtube.com/watch?v=UvzDyVQyHDI&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m02s) And yeah so you'll see me actually make some of this Line truncated
+1 -1
@@ -1 +1 @@
Ok well recently I was asked whether I'm seriously saying that I Holla world Tutorial should be an hour long and I had to laugh because of course That tauriel is doing way more than what a hello world tutorial should do right so yeah Yorgos we gonna do the real quick hello world tutorial we go to extensions Install We searched for JCB We open it And we click install And again install On success we go to component Builder And we click on Import JCB packages We go to medium packages we select The Hello world Component for free with click get package We see that it has a checksum validation 413 4 We click the cell link here To check and make sure that it is the same key as on GitHub So we can check that that key Much is this one And it does So we know it's a package Still Authentic and Then we we can say yes Force update and click continue Great import was successful and we go back to Gmail or components we see that our hello world component has Been installed We go to compiler And we click hello world And compile It successfully compiled so we click install And We look at the back end We create a greeting Say Hi James Save clothes Answer our prayers greeting is said We go to menu Main menu we change the main menu to be a select Action type Barloworld Greetings And That should be it we save and close And we click on double amount we see there is a page Direction Is not erecting properly So that might be a problem in the component we go back to hello world And we click on the global options And permissions And we search for sight Because there are some side views that we need to allow A24 Public That one That one Supposed to wash oh and That we say the other here we refresh the front And there we have it There is a greeting Hi James we can click on it And it says hi James we can go back one And then click on edit It says I'm not allowed to edit I'm not in the edit group We can go back to the backend to corn options And we could actually give me edit permissions as public but I think you get the boy How the world in place functional and It was really very quickly to do And that is the quick or the real hello world how to set up a Hollywood component in Joe Maila Component builder without Writing a whole hour thanks for watching
Ok well recently I was asked whether I'm seriously saying that Hella World Tutorial should be an hour long and I had to laugh because of course That tutorial is doing way more than what a Hello World tutorial should do right so Here it goes we gonna do the real quick Hello World tutorial we go to extensions Install We searched for JCB We open it And we click install [00:00:37](https://www.youtube.com/watch?v=MEKs1c7LfO8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m37s) And again install On success we go to component Builder And we click on Import JCB packages We go to VDM packages we select The Hello World Component for free with click get package We'd see that it has a checksum validation 413 4 [00:01:06](https://www.youtube.com/watch?v=MEKs1c7LfO8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m06s) We click this a link here To check and make sure that it is the same key as on GitHub So we can check that that key Matches this one And it does So we know it's a package Still Authentic and Then we we can say yes Force update and click continue Great import was successful and we go back to Joomla components we see that our Hello World component has [00:01:35](https://www.youtube.com/watch?v=MEKs1c7LfO8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m35s) Been installed We go to compiler And we click Hello World And compile It successfully compiled so we click install And We look at the back end We create a greeting Say Hi James [00:02:02](https://www.youtube.com/watch?v=MEKs1c7LfO8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m02s) Save and close And so our first greeting is set We go to menu Main menu we change the main menu to be a selection type Hello World Greetings And That should be it we save and close And we click on Joomla Mount we see there is a page [00:02:37](https://www.youtube.com/watch?v=MEKs1c7LfO8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m37s) Is not directing properly So that might be a problem in the component we go back to hello world And we click on the global options And permissions And we search for site Because there are some site views that we need to allow it to show Public That one and That one [00:03:02](https://www.youtube.com/watch?v=MEKs1c7LfO8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m02s) so those two will show and yeah we save out of here we refresh to front And there we have it There is a greeting Hi James we can click on it And it says hi James we can go back one And then click on edit It says I'm not allowed to edit I'm not in the edit group We can go back to the backend click on options [00:03:29](https://www.youtube.com/watch?v=MEKs1c7LfO8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m29s) And we could actually give me edit permissions as public but I think you get the point Hello world in place functional and It was really very quickly to do And that is the quick or the real hello world how to set up a Hello world component in Joomla Component builder without Waiting a whole hour thanks for watching
+1 -1
@@ -1 +1 @@
We've added a new function To JCB which allows you to add a field 12 you Without adding the field to the database Now when will that be useful Usually When you have a field which maybe is getting data from another table And You want to actually change the behaviour on the page based on the data selected But that selection itself isn't relevant Or when you want to actually combine two fields As one in the database Then you could have both fields on the page And on submission in your safe area in the admin View You can add some custom PHP script To take the value from that other field And actually Save it in to this Feel that you intend to Combine the two values And so you don't want both values to be stored in the database Or the other option is you have fields on a page which Actually only get used to generate data in another table So when u save that item it takes those values put it into The other table And basically Leave just one value in this table Which next time you open it out all those fields are hidden based on that value selection Something like that So it's really got multiple implementations and sort of helps you to get A subform on the page Or any kind of other field type To be able to you know use it Once And you know what use it within your custom scripting either in case it JavaScript Or in PHP A previously this wasn't possible if you add a fuel to view it always gonna get Stored into the database But now If you go to admin views And You Let's take one That has this function going For use the app and view Fields So you'll see that this new Feature is Replaced your admin view list of shin Because now you got showing list And then you have the default which was the previous Check or uncheck option Which basically is 1 and 0 But now you got a third one Which is called No DB I have a field called not required which basically is what you would usually add If you are using Conditional jcps Intel conditional option And you have Fields that actually are required But within certain criteria those fields are hidden And obviously then not required Then I'm using this not required field Do basically Store Some values with JavaScript that upon submission You did UPS the validation on the server side Well I don't really want that value in the database so I'm using this Non DB option If you changed any other Fields I'm just gonna do demonstration Obviously I do want this field in the database but just to export of show you If you select no DB It will automatically give you this notice Basically these two notices I want saying the non DB option Will remove this field from being saved in the database And then this one Only use the non DB option if you're planning on targeting this field With JavaScript August in PHP To move it's value into another field that does get saved Database In one form or another basically saying to you But if you use this value we not gonna store whatever is placed Innit In the database for you You will need to manually Do that So that's really why it's there it's really for custom 9 customers Asian to your components behaviour And so you'll see that also clears out Audio selections because None of these features Will be Of you no be used to this field Because this field After saving Dumps is value and it doesn't exist Unless you grab it and Mourinho Use it into your script Ok so If you use the list of shin We now have this automated Counter adding So Every time you do that if counts all the fields that are available Already in your script And then it adds the next Logic number But anyway that's Beyond of what I'm actually explaining or demonstrating So for now Our Purpose here Is to show you that there is a new No DB Field behaviour Which Some of you have been requesting And I also needed it in the past So it's available now You can try it out play with it And of course if it doesn't make sense to you just don't use it Ok well thanks for watching
We've added a new function To JCB which allows you to add a field to a view [00:00:09](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m09s) Without adding the field to the database Now when will that be useful Usually When you have a field which maybe is getting data from another table And You want to actually change the behaviour on the page based on the data selected But that selection itself isn't relevant Or when you want to actually combine two fields As one in the database Then you could have both fields on the page [00:00:41](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m41s) And on submission in your save area in the admin View You can add some custom PHP script To take the value from that other field And actually Save it in to this Field that you intend to Combine the two values And so you don't want both values to be stored in the database Or the other option is you have fields on a page which Actually only get used to generate data in another table [00:01:16](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m16s) So when you save that item it takes those values put it into The other table And basically Leave just one value in this table Which next time you open it up all those fields are hidden based on that value selection Something like that So it's really got multiple implementations and sort of helps you to get A subform on the page Or any kind of other field type To be able to you know use it [00:01:47](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m47s) Once You know what use it within your custom scripting either in JavaScript Or in PHP A previously this wasn't possible if you add a field to view it always gonna get Stored into the database But now If you go to admin views And You well Let's take one [00:02:13](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m13s) That has this function going We use the admin view Fields So you'll see that this new Feature is Replaced your admin view list option Because now you got show in list And then you have the default which was the previous Check or uncheck option Which basically is 1 and 0 [00:02:44](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m44s) But now you got a third one Which is called No DB I have a field called not required which basically is what you would usually add If you are using Conditional JCBs Internal conditional option And you have Fields that actually are required But within certain criteria those fields are hidden And obviously then not required Then I'm using this not required field [00:03:18](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m18s) To basically Store Some values with JavaScript that upon submission It did adapts the validation on the server side Now I don't really want that value in the database so I'm using this Non DB option If you changed any other Fields I'm just gonna do demonstration Obviously I do want this field in the database but just to sort of show you If you select no DB It will automatically give you this notice Basically these two notices [00:03:50](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m50s) The one saying the non DB option Will remove this field from being saved in the database And then this one Only use the non DB option if you're planning on targeting this field With JavaScript or custom PHP To move it's value into another field that does get saved to the database In one form or another basically saying to you But if you use this value we not gonna store whatever is placed In it [00:04:21](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m21s) In the database for you You will need to manually Do that So that's really why it's there it's really for custom customization to your components behaviour And so you'll see that also clears out All your selections because None of these features Will be Of you know be used well a vailable to this field Because this field [00:04:47](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m47s) After saving Dumps is value and it doesn't exist Unless you grab it and you know Use it into your script Ok so If you use the list option We now have this automated Counter adding So [00:05:08](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m08s) Every time you do that if counts all the fields that are available Already in your script And then it adds the next Logic number But anyway that's Beyond of what I'm actually explaining or demonstrating So for now Our Purpose here Is to show you that there is a new No DB [00:05:32](https://www.youtube.com/watch?v=6OTRDIgxgq0&list=PLQRGFI8XZ_wtGvPQZLine truncated
+1 -1
@@ -1 +1 @@
The option to now add your own custom dashboard To your component has actually finally come I might have mentioned this in some previous tutorials but it's somewhat hidden So I thought Well let's do it quick tutorial just about this Turn the past or component basically it's layout ended up as the dashboard looking like this Obviously with your own icons But you could do only about what you see here And this is still the default dashboard So if you don't add your own You're basically Builders for you Based on your Fields based off on it's icons and layout selection So you could add tabs like we have here And these two halves are quite powerful You can really Ads A lot Functionality within that But for some of you this might be boring and not really what you would like and fact you wanna look different You don't want your component to look like it was built with chasing me And I don't blame you because that is what makes components Valuable Is that they are actually unique An app that is really why JCP exists it exist because I didn't want a cookie cutter I wanted to build my own components that actually look different from Each other in yet have similar Behaviour because of my company's approach But None of the others out there actually Could do that for me They all We ended up looking Just like The one We were using Janelle JCB We constantly Trying to make sure that this is not the case in fact that's why the side view area is it a bit more difficult Because you wanna give you The opportunity to express your components functionality In a way that you need to you This might be a challenge but in the long run believe me it is the advantage If you could do it without knowing Any job script with CSS or HTML Then anyone else can do it as well So there is like a little bit of her Yeah incentive to sort of Get your head around some of these Technologies And any case to be a good component developer and not knowing PHP And those Front-end languages Is most certainly a risk ok Well So without further ado if we were to go We'll have your this common known Hello world Component Panoply Open it in the website now This is it dashboard Now it doesn't have a custom dashboard And I'm not gonna add one at this point but I am gonna Take-away The dashboard it has and So then it's sort of behaves Like the article manager for example If we would go here there's an in the components area there is a new tab or rather TabGold lips Sorry - uninstall You see here it has the default And then here It has some description of what that means If you click on dynamic It actually gives you a list of all the available Sites Views that are linked to the component And that would be custom Hatton views As well as Normal admin views it will show you a list of them all And you can dance select Any of those And that will become the new dashboard for your component So basically save and close And go to the compiler and compile the Hello world Component And basically just reinstall So to demonstrate how that changed our components behaviour So Store Then we will Basically go to components and click on This hello world link To see what it does now as its default dashboard And so it loads the listview and the dashboard is gone So from this point forward Your whole world component Actually Looks like this And it doesn't have a dashboard Now you could use a custom dashboard Which and In our case If you If you're using A component That has custom admin views So JCB has The compiler and the gets Snippets area as custom admin views So if we were to do the similar Sing with JCB We could just as well Select One of those Obviously say dynamic And select One of those views So scroll down a bit Where is it There The compiler we could make the compiler Jcps Dashboard Now I know it's gonna break a lot of things so my life suppose but let's try it out So we got a CB now we switched it to have another dashboard Instead of the normal dashboard The compiler to hear And then install Before install it I just want to tell you what I meant by Things My Break We got a bunch of times here And all these times are getting information and making it available To you so you could just say get Griffin And we got the version here in the last build date and Yeah so you are basically gonna remove this whole area So or we just did If I click on this end Paul Receive First It tells us that this language string is no longer here And at first it seems like it's a broken issue but if we refreshed it You see rail actually remove it And so it's just a cash thing there So basically the dashboard scar And if I was to Go here and click on Component builder Hill from now on open right at the compiler And that will now be used before page Which is what we told it And so the behaviour is correct We don't see any issues And actually if you were to gonna go to the code Dashboard is completely removed all is files everything And so numb trace of it is left Obviously to undo this Liquids Simply sLine truncated
The option to now add your own custom dashboard To your component has actually finally come I might have mentioned this in some previous tutorials but it's somewhat hidden [00:00:14](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m14s) So I thought Well let's do it quick tutorial just about this So in the past all components basically it's layout ended up as the dashboard looking like this Obviously with your own icons But you could do only about what you see here And this is still the default dashboard So if you don't add your own You're basically Build this for you Based on your Fields based on it's icons and layout selection So you could add tabs like we have here And these tabs are quite powerful [00:00:49](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m49s) You can really Add A lot of Functionality within that But for some of you this might be boring and not really what you would like in fact you wanna look different You don't want your component to look like it was built with JCB And I don't blame you because that is what makes components Valuable Is that they are actually unique And that is really why JCB exists it exist because I didn't want a cookie cutter component [00:01:22](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m22s) I wanted to build my own components that actually look different from Each other in yet have similar Behaviour because of my company's approach But None of the others out there actually Could do that for me They all We ended up looking Just like The one [00:01:42](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m42s) We were using So now with JCB We constantly Trying to make sure that this is not the case in fact that's why the site view area is it a bit more difficult Because you wanna give you The opportunity to express your components functionality In a way that's unique to you This might be a challenge but in the long run believe me it is the advantage If you could do it without knowing Any Javascript with CSS or HTML [00:02:13](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m13s) Then anyone else can do it as well So there is like a little bit of a Yeah incentive to sort of Get your head around some of these Technologies And any case to be a good component developer and not knowing PHP And those Front-end languages Is most certainly a risk ok Well So without any further ado if we were to go [00:02:41](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m41s) We'll have your this common known Hello World Component and if we would to Open it in the website now This is it dashboard Now it doesn't have a custom dashboard And I'm not gonna add one at this point but I am gonna Take-away [00:03:02](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m02s) The dashboard it has and So then it's sort of behaves Like the article manager for example If we would go here there's an in the components area there is a new tab or rather a tab called Dash&Install You see here it has the default And then here It has some description of what that means If you click on dynamic [00:03:27](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m27s) It actually gives you a list of all the available Sites Views that are linked to the component And that would be custom admin views As well as Normal admin views it will show you a list of them all And you can then select Any of those And that will become the new dashboard for your component So basically save and close [00:03:52](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m52s) And go to the compiler and compile the Hello World Component And basically just reinstall So to demonstrate how that changed our components behaviour So we're going to install Then we will Basically go to components and click on This hello world link [00:04:17](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m17s) To see what it does now as its default dashboard And so it loads the listview and the dashboard is gone So from this point forward Your Hello World Component Actually Looks like this And it doesn't have a dashboard Now you could use a custom dashboard Which and In our case If you [00:04:42](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m42s) If you're using A component That has custom admin views So JCB has The compiler and the gets Snippets area as custom admin views So if we were to do the similar thing with JCB We could just as well Select One of those [00:05:04](https://www.youtube.com/watch?v=tU7TeYn1Djo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m04s) Obviously say dynamic And select One of tLine truncated
@@ -1 +1 @@
I would like to demonstrate you the new feature of removing and adding a prefix to your Component name in the Joomla menu Take a look at the menu there's little Heroine front of component Builder And that's the prefix we talking about Deposit without that automatically Now it will still do that but you can actually change it so Go to the global options of a component And under the global tab You see a new area called admin you prefix And that has a little description there And you can say no And then it won't have any prefix Or you can change this to any Other prefix you want Are there you don't need to add a space here and the space is automatically done so you can check out This list here is a link to Twitter to a list After HTML character entities that you need to use here This will obviously translate to that Aero And You need to make sure to use something that can be just placed inside of an XML file So That means that if you wanna use strange characters like that arrow You need to use the html you could also use your company name or You can use anything it'll basically just add that As a prefix to the component name So just of illustrate this Let me change this a little bit Song grabbing the the Valley here The one without the x is the one we looking for so this the and hash Value this one here I'm gonna grab that little circle with a daughter Well let's let's take the one with the Circle in a circle that looks nice Ok I'm gonna take that one I'm gonna add it in here And that I'm going to click save Ok it's asking me to add some other info as well Ok try again 7 close Now let's go from file Monitor Thermo components here So you can say demo And compile And install it Nailsea houses all Circle Next to the demo name That's the way we can Change that little Prefix And then obviously the option to just remove it altogether It's also there Basically Saying no prefix save and close And it's do it again Compile So And I you see it's just the way you two components will look there is the demo So this will Prefix can be added or removed now thanks to this new feature
I would like to demonstrate you the new feature of removing and adding a prefix to your Component name in the Joomla menu Take a look at the menu there's this little arrow in front of Component Builder And that's the prefix we talking about in the past it would add that automatically Now it will still do that but you can actually change it so Go to the global options of a component And under the global tab You see a new area called Add Menu Prefix [00:00:38](https://www.youtube.com/watch?v=vwZyhKp_L38&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m38s) And there's a little description there And you can say no And then it won't have any prefix Or you can change this to any Other prefix you want Are there you don't need to add a space here and the space is automatically done so you can check out This list here. There is a link to a list of HTML character entities that you need to use here This will obviously translate to that arrow And [00:01:10](https://www.youtube.com/watch?v=vwZyhKp_L38&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m10s) You need to make sure to use something that can be it just placed inside of an XML file So That means that if you wanna use strange characters like that arrow You need to use the HTML you could also use your company name or You can use anything it'll basically just add that As a prefix to the component name So just of illustrate this Let me change this a little bit So I am grabbing the the value here The one without the x is the one we looking for so this the & hash [00:01:49](https://www.youtube.com/watch?v=vwZyhKp_L38&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m49s) Value this one here I'm gonna grab that little circle with a dot. Well let's take the one with the Circle in a circle that looks nice Ok I'm gonna take that one I'm gonna add it in here And I'm going to click save Ok it's asking me to add some other info as well Ok try again save and close Now let's go and compile one of the [00:02:19](https://www.youtube.com/watch?v=vwZyhKp_L38&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m19s) demo components here So you can say demo And compile And install it Now you'll see it has this little circle Next to the demo name That's the way we can Change that little Prefix And then obviously the option to just remove it altogether [00:02:45](https://www.youtube.com/watch?v=vwZyhKp_L38&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m45s) It's also there Basically Saying no prefix save and close And let's do it again Compile and install And now you'll see it's just the way usual components will look there is the demo So this little Prefix can be added or removed now thanks to this new feature
@@ -1 +1 @@
I want to Demonstrate The way to add JCB packages to the community Directory The moment if you go to import jsp packages this now in new tab called community package Pictures Where we would like to encourage all of you to start sharing packages Main focus or purpose for it would become To be quick start For developing Components You could serve As a back up for yourself too easily Pool on alt Packages that you've developed To maybe have a specific feature for example Linking your jamalife users Yeah into your component I know Absa from finance that does that And I often want to reuse that So You can now with this new Idea Be able to import that component over and over I without merging it with The old version But actually creating a new Component including Fields and everything else And so that way You are able to quickly start a new project And you don't need to really do all that over again and again It's sort of similar as the Clone feature that now has become available so they CB components now Clone feature You could select a component And you can clone it And in cloning it It basically creates A Exact Copy of the component But not linked To the components so even did admin views You see it actually great and you at The View And the same goes for the fields You actually created Holding you Sarah fields Specifically For this component you see it's got the same Suffix Yo Ok so That is the Clone feature and how the import feature has the same functionality So if I was to go and say that's a import The timer component Then Once it's Cottondale component from GitHub We will see That it has this merge option or no don't match now Remember We ready have the timer component here and it is exactly the same component But I don't want it to update this one I wanted to really Bring it in as a new component and then I will Take this to know and it does give you a little explanation here and also tells you that the but a day shin rules Fuel types lipid languages and language strings These things will still be managed And that simply is unavoidable Ok and then if you wanna see You know what happens on the hood And then you click on continue And what will do now It's obviously give you a whole lot of information of the import And also whatever files it moved But it actually created a new component It didn't update the old one And that is a very nice option because now You can quickly start with this component without affecting this one Now you'll see that Even the admin view is Dislocated it's not the same at The View The same again with the fields so if we look at the fields you'll see it also has there r a Suffix Do it Ra Ra This name doesn't anywhere appear In the compiled version of the components all system names So that are a will just be for your own Do know that this Fuel belongs to this component and so on So that's sort of what the new JCB package import option is sort of been improved to to manage Now with the community option You can actually do what we wanna call What is a share Like I've been doing Sharing So many in a lot of information with all of you Components tools And so the idea that all of you would have this attitude off Giving back to the community And the other option is that if you want to distribute a package And the same time maybe get some marketing This is also gonna be doing that Ok so let me get this straight to you the process of getting a package into the community Packages We are going to use Get up Basically this repository there should be community packages This is the euro VDM Dash IO Ford slash JCB - community - packages You will need to fork this package I'm not gonna teach you how to use GitHub Night I'm gonna teach you how to use geth I'm gonna illustrate it just by doing it Doing what you need to do Demonstrating it to But I'm not gonna teach you how to do this More far away So you need to Go and study up get up And get Specifically to be able to manage this And what will happen is anyone who wants to add a package must start by for king The repository And then once it's been forced They need to clone it down to their the developing environment Where they have JCP Or to where they can move a JCB package Because then they they need to add their package which they want to contribute To their forked version Of This JCB community packages And then once they done all bad and it pushed up the changes to their repository Then they'll make a pull request To add the change Into the community Version of this repository now Hope that all makes sense to you You'll get it you're out here On your own repository Copy that And then you'll go to T or developing environment Hopefully It will be Linux Because you need to Run a bash script Needs to be a bash environment And Yeah so you could run it in the VMware ever you want Just get it going so I'm gonna open a terminal now And then the terminal I'm simply gonna clone Yo this repository And then once it's finished cloning it will gonna changeLine truncated
I want to demonstrate The way to add JCB packages to the community Directory The moment if you go to import JCB packages this now in new tab called community Packages Where we would like to encourage all of you to start sharing packages Main focus or purpose for it would become To be quick start For developing Components [00:00:28](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m28s) it could serve As a back up for yourself too easily Pull on old Packages that you've developed To maybe have a specific feature for example Linking your Joomla users into your component I know apps or componants that does that And I often want to reuse that So [00:00:52](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m52s) You can now with this new Idea Be able to import that component over and over I without merging it with The old version But actually creating a new Component including Fields and everything else And so that way You are able to quickly start a new project And you don't need to really do all that over again and again [00:01:17](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m17s) It's sort of similar as the Clone feature that now has become available so they JCB components now Clone feature You could select a component And you can clone it And in cloning it It basically creates A Exact Copy of the component But not linked To the components so even did admin views You see it actually create a new admin View [00:01:44](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) And the same goes for the fields You actually created a whole new set of fields Specifically For this component you see it's got the same Suffix (EO) Ok so That is the Clone feature and now the import feature has the same functionality [00:02:05](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m05s) So if I was to go and say let's import The demo component Then Once it has gotten the component from GitHub We will see That it has this merge option or no don't merge now Remember we Already have the demo component here and it is exactly the same component But I don't want it to update this one [00:02:33](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m33s) I want it to really Bring it in as a new component and then I will detect this to No and it does give you a little explanation here and also tells you that the paradation rules Field types snippet languages and language strings These things will still be merged And that simply is unavoidable Ok and then if you wanna see You know what happens on the hood And then you click on continue And what it will do now [00:03:03](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m03s) Obviously give you a whole lot of information of the import And also whatever files it moved But it actually created a new component It didn't update the old one And that is a very nice option because now You can quickly start with this component without affecting this one Now you'll see that Even the admin view is Dislocated it's not the same admin View The same again with the fields so if we look at the fields you'll see it also has the (Ra) [00:03:36](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m36s) Suffix to it (Ra) (Ra) This name doesn't anywhere appear In the compiled version of the components it's all system names So this (Ra) will just be for your own to know that this Field belongs to this component and so on So that's sort of what the new JCB package import option is sort of been improved to to manage Now with the community option You can actually do what we wanna call [00:04:07](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m07s) What is a share Like I've been doing Sharing So many in a lot of information with all of you Components tools And so the idea that all of you would have this attitude of Giving back to the community And the other option is that if you want to distribute a package And at the same time maybe get some marketing This is also gonna be doing that [00:04:33](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m33s) Ok, so let me illustrate to you the process of getting a package into the community Packages We are going to use GitHub Basically this repository JCB community packages This is the URL VDM - IO / JCB - community - packages [00:04:57](https://www.youtube.com/watch?v=8FplwKKa708&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m57s) You will need to fork this package I'm not gonna teach you how to use GitHub neither how to use Git I'm gonna illustrate it just by doing it Doing what you need to do Demonstrating it to you But I'm not gonna teach you how to do this Line truncated
+1 -1
@@ -1 +1 @@
I would like to give you a quick tutorial on how to install A JCB package Organ port Is the right word relief Now At the end of day You already have JCB on yours System So I'm not gonna explain how we got to this point But from here on further There are two ways to To get to the in Installing View One is by clicking on this icon I'll take you there The other one is going to Jabula components And there is a button Up here this is important Packages And that will take you to the same place You see that there is another of tabs here And you can actually If you don't If you're not interested in these Tour tabs There's action option in the global options Where at this point we are controlling those tabs Through this Global switch that says manage data package the directories You can say show all Shounen Or manually select The repositories that you want the show at the moment they are then he's 2 But they are Reasons to expect that they might become more Us We see You know This area becoming more active Ok so Once you're on this page And you have yourself exported a JCB package then this is where you can select it from your Computer Or from a directory Or from a URL And with these import methods There is not a checksum validation feature in place So you need to be sure of the Integrity of that package We cannot validate that package integrity And since if it's being Selected from your desktop and you are in a your local development environment There should be no reasons for concern If you're pulling it from an external source Then possibly You need to be more cautious Where is it when it comes to the medium packages and the JCB community packages These are the areas where we are trying to add some layoffs Purity To try and protect you And to ensure that The package area remains as stable as possible And so there is ways for you to add your own Daisy package To the community repository Here is a tutorial to show you how to do that And Also Explaining Why We will do things The way we do them Because of The fact that everybody will then have access to that package In this area You can then also also Now get free keys For the medium packages The past you have to pay for them And we have decided in In a initiative to Sort of Show all of you exactly how they speak and work and function We have decided to give these packages way Asking you to follow few steps In supporting Us by For king starring or Were watching These packages in their specific repositories on GitHub Are you needing more guidance about this You can just click on that link And all show you exactly what you need to Do I want you Got the key for that Safic package You can come and select that package here Obviously It's only related to some of the packages at this point Which the first being Most prominent Component builder itself And so I would say Suspect that would Would be your First Choice Is Well At once you've selected the package you simply can click on Get 2 How the package be Taken From GitHub And Broad To your Developing barman And in doing so It will actually run a validation on the Integrity of the package Because they are checksums In place But You need to validate the check song Manually And why you do that Is ill show you the checksum that was used Elevate The Package integrity And since it's past the validation You know the district some is the one that you need to see If you're open This link Total opening this link will also reveal a checksum But at this time you will be seeing a verification Bye Dizzy Shirt And It must be at least This part of the year l Must be correct There This will vary from packet But it should have the package name here And this should correspond To the value you See here And that little bit of manual effort All you need to do To be sure that the package that you have now got In your position Is the original authentic package that we have Beauty So at this point you're all good to go or did it now Take the key that we have sent you And to add it here To the key area Bikesa Now you need to make a choice Whether you want to if the SACP already is installed on your system maybe it's the second time you doing Then you might not want to merge you might want to have it be like a clone I like a second instance of JCB it will literally Then create all the fields and all the views And all the linked Concepts Again Where is if you choose merge And There is a change in the package which is newer Then the version you have it will Actually update That version If you wanna force it To update it You will say yes up here The force local update really Only Words If you selected merge Then there's also show all import information Which year was the first time that you're importing package It might be ideal to to check this too Because it was show you literally everything that it does every field it adds But not showing names of sweet ID so lot of it will be like ok that doesn't make sense To see anyway But at the very bottom of tLine truncated
I would like to give you a quick tutorial on how to install A JCB package Or import Is the right word really Now At the end of day You already have JCB on your System [00:00:16](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m16s) So I'm not gonna explain how we got to this point But from here on further There are two ways to To get to the in Installing View One is by clicking on this icon It'll take you there The other one is going to Joomla components And there is a button [00:00:35](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m35s) Up here this is import JCB Packages And that will take you to the same place You'll see that there is a number of tabs here And you can actually If you don't If you're not interested in these Two tabs There's action option in the global options Where at this point we are controlling those tabs Through this [00:00:57](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m57s) Global switch that says manage JCB package the directories You can say show all Show none Or manually select The repositories that you want the show at the moment they are the least two But they are Reasons to expect that they might become more as We see You know [00:01:17](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m17s) This area becoming more active Ok so Once you're on this page And you have yourself exported a JCB package then this is where you can select it from your Computer Or from a directory Or from a URL And with these import methods There is not a checksum validation feature in place So you need to be sure of the Integrity of that package [00:01:44](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) We cannot validate that package integrity And since if it's being Selected from your desktop and you are in a your local development environment There should be no reasons for concern If you're pulling it from an external source Then possibly You need to be more cautious Where is it when it comes to the VDM packages and the JCB community packages These are the areas where we are trying to add some layer of Security [00:02:13](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m13s) To try and protect you And to ensure that The package area remains as stable as possible And so there is ways for you to add your own JCB package To the community repository Here is a tutorial to show you how to do that And Also Explaining Why [00:02:34](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m34s) We will do things The way we do them Because of The fact that everybody will then have access to that package In this area You can then also also Now get free keys For the VDM packages In the past you have to pay for them And we have decided in [00:02:55](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m55s) In a initiative to Sort of Show all of you exactly how JCB can work and function We have decided to give these packages way Asking you to follow few steps In supporting Us by Forking starring or watching These packages in their specific repositories on GitHub needing more guidance about this [00:03:22](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m22s) You can just click on that link And they'll show you exactly what you need to Do and once you've Got the key for that specific package You can come and select that package here Obviously It's only related to some of the packages at this point Which the first being [00:03:38](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m38s) Most prominent Component builder itself And so I would Suspect that would Would be your First Choice as Well and once you've selected the package you simply can click on Get to Have the package be [00:03:53](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m53s) Taken From GitHub And Brought To your Developing environment And in doing so It will actually run a validation on the Integrity of the package Because they are checksums In place But [00:04:09](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m09s) You need to validate the check some Manually And the way you do that Is it'll show you the checksum that was used to evaluate The Package integrity And since it's past the validation You know this checksum is the one that you need to see If you're open [00:04:26](https://www.youtube.com/watch?v=PGmEoliopv8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m26s) This link So opening this link will also reveal a checksum But at this time you will be seeing a verification By Digi Cert And It must be at least This part of the URL Must Line truncated
+1 -1
@@ -1 +1 @@
Person could use in trying to create extensions Things you can interact on social media with any of these items with I've gotta love I'm not gonna read them out Top Gear So I'm gonna tell a bit of what's out there because there's more Solutions than June not components Builder why you say to her that I'm focusing on the Joomla component builder itself and You have a nice giveaway at the end of the session So why use it too little What are there We are component create I think that's about it well-known extension by the or esteemed Joomla Sharon it's such a size solution it's closed source Is freeware one table you have to pay subscription This is wonderful to All That Put on job since 2015 or even earlier Tubidy Which is actually a model driven Also it actually abstracts your ideas and then generates a code out of it meaning you could A theory create a Joomla a Drupal or a WordPress website go 4 if that's nice plugins for app store money clips if you gave it a stop it Now I also has a workout after it has some basic reverse engineering staff Theoretically you theoretically you can feed it any extension and it should be able to make model I am 4 size the theoretical part because I think there's quite some limitations for that to actually work What is over 16 developers are the back of the room and You can't travel back in time but you could have seen their session And is this Joomla component Builder a very unknown Tool What it has its own characteristics tumor component be able what is a component that you logged in Enter your website It actually is on your platform it builds the component for your You in your fat form so you don't you're not dependent on any SA Solution whatsoever And the doors actually used to build itself So the model that is used as they refer to themselves as the nap Joomla component that's rather you have the cool Wii interaction and stuff that Used to generate its own coat The compatible with the compiled source is open source Component but that's gonna change however Even at this point in time there is no licence costs and I know limitations So how's component creator allows you to create a component based on one table yeah you can't do Dad There still doesn't have any Annotations Play me stop by Asking you what are the challenges that you see when you Lie before start with the question who created components or has created the wrong components in the past Ok that's quite a lot of People so what are the challenges that juicy In That's so let me start with my esteemed colleagues even picked her life specially want to thank Funding for the promise to do that so what's Why you create a new component That will be Yeah And you're not lazy you want to Cut Riddle That for a petition Ok Hey buddy I say remarks at people thank you very much thank you thank you Anybody else have something Where does it they're on their on their due to correct them yeah I miss that changes because of the things that you do yourself ours changes that standby too much Whatever Change it and then have to change Anybody want to add something Yes Yeah You can really quickly create a basic Something special Ok ok have some rice some of the Things that annoy me and doing that stuff that's a boilerplate What he was referring to setting up the directory structure creating all the crap files now Stores that will help you with that bitch be storm but still it's tedious work and you have to wash the car Capitalisation of the names and the slots of naming conventions And really I'm lazy And you saying that it all can do for me I'm very happy with I also like Do you stop Obviously if you've already create a lot of extensions then you can reuse previous word back copy pasting But Yeah you want to rename it so there's some work involved you might want to reuse Other people's work Maybe somebody pray there's something lies inside and obviously use libraries in general Contain Us truck sales There's a lot of stuff in July that we all Love I think But you still have to do some stuff By yourself and your own component if you want to have away make that work being multilingual Support Having four of groups Access control structure Adding history to your Components used just as with article so that you can see you who changed what and what time Custom fields All support that and obviously the tools out there have their limitations at the beer cost Biut the licensing scheme Opiate the skills required And Advanced items I would say ok can you extend that tool Easily to Accommodate new features So should that be a Workflow extension to Joomla How is it can you add up to your own component Tools should a theory be able to Add that without bothering you with Order Lady Grey details Can you do reverse engineering Tubidy is a tool that can do that Imposter that's ok But To me more pointy is the roundtrip development in a mansion Typically a little when you start you have their school while you can easily click the Gatherer table and use Line truncated
Person could use in trying to create extensions My name is Marco Dings you can interact on social media with any of these items since I've got a lot sites. I'm not going to read them out Interact here So I'm gonna tell a bit of what's out there because there's more solutions out there than Joomla Component [00:00:33](https://www.youtube.com/watch?v=S9heClCWJrg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m33s) Builder why use a tool and then I'm focusing on the Joomla component builder itself and We'll have a nice giveaway at the end of the session So why use a tool at all What's out there? We have Component Creator I think that's a about it well-known extension by RST Joomla sermon it's SAAS solution it's closed source It's free for one table you have to pay subscription Well you do get provisional support. This is a wonderful too that's been Presented on JAP since 2015 or even earlier JoomDD Which is actually a model driven [00:01:23](https://www.youtube.com/watch?v=S9heClCWJrg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m23s) Tools or it actually abstracts your ideas and then generates a code out of it meaning you could A theory create a Joomla a Drupal or a WordPress website go forward if that's nice plugins for please in store many clips if you gave it a stuff and Now I also has a web editor it has some basic reverse engineering starts Theoretically you theoretically you can feed it any extension and it should be able to make model of them I emphasize the theoretical part because I think that's quite some limitations for that to actually work What is open source so the instinct developers are the back of the room and You can't travel back in time but you could have seen their session And is this Joomla component Builder a very unknown Tool [00:02:20](https://www.youtube.com/watch?v=S9heClCWJrg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m20s) What it has its own characteristics Joomla component builder is a component that you logged Into your website It actually is on your platform it builds the component for your You in your plat form so you don't you're not dependent on any SAAS Solution whatsoever And the tools was actually used to build itself So the model that is used as they refer to themselves as the mapped Joomla component that's where the you have the gooey interaction and stuff that Used to generate its own coat The compiled source is open source So the mapped Component isn't but it's gonna change however [00:03:14](https://www.youtube.com/watch?v=S9heClCWJrg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m14s) Even at this point in time there is no licence costs and are no limitations So as component creator allows you to create a component based on one table yeah you can't do very much with that There still doesn't have any Any limitations So Let me start by Asking you what are the challenges that you see when you Let we for start with the question who creates components or has created their own components in the past Ok that's quite a lot of [00:03:48](https://www.youtube.com/watch?v=S9heClCWJrg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m48s) People so what are the challenges that you'd see In That's so let me start with my esteemed colleagues Eve and Victor who I specially want to thank For attending for the promise to do that so Eve what challenges do you see when you create a new component Well nothing Yeah And you're not lazy you want to get Rid of that of that repetition. Let's say yes. [00:04:38](https://www.youtube.com/watch?v=S9heClCWJrg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m38s) Ok Everybody as a remark that people thank you very much thank you thank you Anybody else want to add something. If sometimes if you change a name or something Where it is their and their and their you have to correct them yeah and does it that changes because of things that you do yourself ours changes that it's done by Joomla. no the change you do by yourself Whatever it does I should Change to this and then have to change it everywhere Anybody want to add something. Rene. It is big the way components actually hold together Yes. You can get lost you know. Yeah [00:05:31](https://www.youtube.com/watch?v=S9heClCWJrg&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m31s) you can really quickly create a basic component but if you want to do something special and you can't do it with these component creators. You can't load it back to your component field. Ok ok have summarize some of the Things that I think annoy me and doing that stuff that's a boilerplating that is Specially what Eve was referring to setting up the directory structure creating all the crop files now there is tools that will help you with that beach be storm but still it's tedious work and you have to watch the Capitalisation of the names and the slots of naming conventions And really I'm lazy And you think that a tool can do for me I'm very happy with I also like [00:06:24](https://www.youtube.com/watch?v=S9heClCWLine truncated
+1 -1
@@ -1 +1 @@
I would like to explain it all more to you About all the changes we've made To the field area The field area is really the foundation of most Of your component As it is what actually causes many of the behaviour and Concepts Which you might have in your views Are all based on the field So the fuel area was a difficult place to change And it is still in progress So office video The interface most probably won't change much Just little tweaks here and there But the backend of how we deal with the data when I certainly going to Continue improving that Just give you a quick recap of how it used to look If we go to an older Install Of JCB in So that's open a fuel here Fifi open the Elias here We would see that it has this XML field definition area As in the past it was very easy to leave out Maybe I come in Anything by accident change Something and then it breaks So That was a little bit Yeah we had lot of Freedom and as developers I'm sure there's didn't feel Anyway to be a problem I mean Whatever you selected we build the XML for you and you could just adapt Hi it as you please Yet Since we are trying to make they should be more stable and obviously eventually Much more user friendly This new feature was suggested From Inside of the team And we decided to add it So what What did we do we basically removed This XML definition And we replaced it With a subform we've moved the database values to its own tabs We also move move the field information to its own tab And so We we we had a lot of more Structure and tools to the page And I'm very sure you gonna be very Happy to see the things we've done so let's show you that Soas of version 2.7.5 Which is the stable release of the strange You'll see that if we open that same Elias which we did just now You see it looks like this now So you have a subform here Basically having those values Unisa for me out And you have now A lot of new information here It also got the database in its own tab And then the type info is still available and you can still come and You know review The reality is the new option Still gives you the The ability to select Are there on ad of those Fields which Are not already on the page where you could still say ok I want to add signs here and we still load the description The field on the page and the default value Which you can then change Except like here when it tells you that it must be fixed We have not yet Blocked this field from being changed Or being removed Oh it's mandatory so there's still a level of Caution required you could still break it Although no you can't really break it whatever is mandatory If you actually do leave it out I'm compiling The component We will detect that it's mandatory And if you obviously didn't add a value It will fall back to its default value So that's how it currently behaves But I wouldn't Rather I wouldn't develop That way best practice is to put in the value And make sure that is correct So that's the new Field area We've put a lot of work into this And there has been some Hiccups and Bugs which we find out The predominantly all those we know about The new we also added this new option it's not yet Yeah we haven't fully Release some of the features but there is this option who's gonna sort of Separate If use the custom Field currently It adds the pH be here In in the Rosewood Is a little tedious if you wanna change this To give truck of the open braces And all that in this way is a little challenging So what we did And I can show you look Pic of that it will be in Invasion 2.7 .6 So you watching this video after those releases you possibly Ready have it So the new let me show you click on new this is now the new implementation for the custom Fields And also for custom user So you click on it It actually takes the PHP An answer to it Arnold text error Tinarie here you can easily follow and adapt The get options method PHP values And that's Quite More convenient I suppose Then using one line at a time So if we look at the user You got two Fields than one folder Get exclude method and one for the gate group method And so they also Immediately available to you The other advantage with this implementation Is We have this new Extra properties Option which Has been available and Jason be for some time now But many of you may not know that it exists So there is this what we call list class If you wanna add a class like a CSS class Value To this field when it appears in the list area That is the Let me show you This area this is the list area while any of their Views we see a list of items and you want this value Specific value To have a Specific CSS class value because maybe you wanna Style it Somewhat different Then you have this option To a use basically all you do As you just say List class And you add there My Class But whatever you wanna call it And Then It will add that the class To the To the field In the list area which is Quite stunning And there is also the escape Option which If your Skype A value Line truncated
I would like to explain it all more to you About all the changes we've made To the field area [00:00:08](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m08s) The field area is really the foundation of most Of your component As it is what actually causes many of the behaviour and Concepts Which you might have in your views Are all based on the field So the field area was a difficult place to change And it is still in progress So of this video The interface most probably won't change much [00:00:38](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m38s) Just little tweaks here and there But the backend of how we deal with the data we're certainly going to Continue improving that Just give you a quick recap of how it used to look If we go to an older Install Of JCB in So that's open a field here if we open the Elias here We would see that it has this XML field definition area [00:01:07](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m07s) As in the past it was very easy to leave out Maybe leave out Anything by accident change Something and then it breaks So That was a little bit Yeah we had lot of Freedom and as developers I'm sure there's didn't feel Anyway to be a problem I mean Whatever you selected we build the XML for you and you could just adapt [00:01:33](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m33s) it as you please Yet Since we are trying to make JCB more stable and obviously eventually Much more user friendly This new feature was suggested From Inside of the team And we decided to add it So what What did we do we basically removed [00:01:58](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m58s) This XML definition And we have replaced it With a subform we've moved the database values to its own tabs We also moved the field information to its own tab And so We add a lot of more Structure and tools to the page And I'm very sure you gonna be very Happy to see the things we've done so let's show you that So as of version 2.7.5 [00:02:28](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m28s) Which is the stable release of the Strange You'll see that if we open that same Elias which we did just now You see it looks like this now So you have a subform here Basically having those values in a subform layout And you have now a lot of new information here It also got the database in its own tab And then the type info is still available and you can still come and [00:02:58](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m58s) You know review The reality is the new option Still gives you the The ability to select other on add of those fields which Are not already on the page so you could still say ok I want to add size here and we still load the description of The field on the page and the default value Which you can then change Except like here when it tells you that it must be text We have not yet [00:03:31](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m31s) Blocked this field from being changed Or being removed though it's mandatory so there's still a level of Caution required , you could still break it Although no you can't really break it whatever is mandatory If you actually do leave it out on compiling The component We will detect that it's mandatory And if you obviously didn't add a value It will fall back to its default value [00:03:59](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m59s) So that's how it currently behaves But I wouldn't Rather I wouldn't develop That way best practice is to put in the value And make sure that is correct So that's the new Field area We've put a lot of work into this And there has been some Hiccups and [00:04:23](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m23s) Bugs which we have ironed out The predominantly all those we know about The new we also added this new option it's not yet Yeah we haven't fully Release some of the features but there is this option who's gonna sort of Separate If use the custom Field currently It adds the PHP here In the rows which [00:04:50](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m50s) Is a little tedious if you wanna change this To keep track of the open braces And all that in this way is little challenging So what we did And I can show you a little Peek of that it will be in In version 2.7.6 So you watching this video after those releases you possibly already have it [00:05:13](https://www.youtube.com/watch?v=26x_Sc8jbp8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m13s) So the new let me show you click on new this is now the new implementation for tLine truncated
@@ -1 +1 @@
This is a quicker Sort of tip on how to add a language string To your component Without a language string Being immediately Added to the J text Object function Which translates it of course So let me demonstrate So normal language dream you use this J text And you'd Add your string in there And then JCP when it compiles It Actually Apps that stream to your language file And then when your component runs that string is translated Where we goes it has a Placeholder in its place And you can then have multiple places where the string is used So that's Already there and works well the new feature Is Mostly used when you are dealing with a clause And you working with him Array In the class And I You want to have class method or rather Fields That is an array of Strengths but you can't of course you sis In the array of a class Value so That is one place but there are many places Where you could see this in action So what you would wanna do is you want the place I would be generated You want the String to be added to the language file But you only want a placeholder as a string to be added to your Script Because you're gonna later added to a date text Later in the script only added to the jade text Option to translate this place holder Answer offer knew we would run into such a case well I have fun anyway so The way weave You know address this It was a new Basically a new name Just text Like that Food This party looks exactly the same as the J text So Tomo seems like this is a class but it's not really it's just Something that the JCP compiler will pick up And it'll convert this let me show you how it will look when it's When it's converted it And you'll see why it makes sense you see I've got this extra field Properties And it's got these Keys And I want to use the key to get the string So if we go a little lower in the script You see I'm here I'm looping through that Hooray And The value description I'm only here passing it to the J text To translated So that means I wanna do the this translating later And I actually all I want in this array above here is actually the placeholder string So let me show you that in the code how it actually comes out Send a code here you see the extra fuel properties and you see it's simply a Place is just a string It actually took away the bracket here Yeah if you look at the way it was So I'm going to paste in the The one from the code Just said you can C When it's done So you can see This is what we add it in in JCB And this is what I did In compilation It added the placeholder string Which we can then use Down here In our J text To translate it to get the Specific translated string So that's a way to get the placeholder and to get obviously the string into your language file That's just the tip I know that It's not very obvious So I hope you come in handy those if you want to add language strings Today seabe But you don't want to have it immediately be Part of the J text object Call you want to just have the actual placeholder available 4U store Namagale This is the way you can do that Thanks for watching enjoy
This is a quick [00:00:03](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m03s) Sort of tip on how to add a language string To your component Without a language string Being immediately Added to the J text Object function Which translates it of course So let me demonstrate So normal language string you use this J text And you'd [00:00:32](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m32s) Add your string in there And then JCB when it compiles It Actually adds that string to your language file And then when your component runs that string is translated because it has a Placeholder in its place And you can then have multiple places where the string is used So that's Already there and works well the new feature [00:00:59](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m59s) Is Mostly used when you are dealing with a class And you working with a Array In the class And If You want to have class method or rather Fields That is an array of Strings but you can't of course use this [00:01:20](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m20s) In the array of a class Value so That is one place but there are many places Where you could see this in action So what you would wanna do is you want the placeholder to be generated You want the String to be added to the language file But you only want a placeholder as a string to be added to your Script Because only later in the script you're going to add it [00:01:52](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m52s) to the Jtext Option to translate this place holder And so often you we would run into such a case well I have in anyway so The way we've addressed this Is with a new Basically a new name Just text Like that so [00:02:16](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m16s) This part looks exactly the same as the J text So this almost seems like this is a class but it's not really it's just Something that the JCB compiler will pick up And it'll convert this let me show you how it will look when it has converted it And you'll see why it makes sense you see I've got this extra field Properties And it's got these Keys And I want to use the key to get the string So if we go a little lower in the script [00:02:49](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m49s) You see I'm here I'm looping through that array And The value description I'm only here passing it to the J text To translate it So that means I wanna do the this translating later And I actually all I want in this array above here is actually the placeholder string So let me show you that in the code how it actually comes out [00:03:16](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m16s) So in the code here you see the extra field properties and you see it's simply a a string It actually took away the bracket here if you look at the way it was So I'm going to paste in the The one from the code Just so that you can see What it's done So here you can see [00:03:40](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m40s) This is what we added in JCB And this is what it did In compilation It added the placeholder string Which we can then use Down here In our Jtext To translate it to get the Specific translated string So that's a way to get the placeholder and to get obviously the string into your language file [00:04:09](https://www.youtube.com/watch?v=_mXlbAO79J8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m09s) That's just a little tip I know that It's not very obvious So I hope it will come in handy to those of you who want to add language strings To JCB But you don't want to have it immediately be Part of the Jtext object Call you want to just have the actual placeholder available for use dynamically This is the way you can do that Thanks for watching enjoy
+1 -1
@@ -1 +1 @@
I would like to talk about the expected or anticipated New Library featured it's being added I'm still in the development phase of this I've been working on the UI Which really is just how I anticipate it should function It's not yet set in stone Because I have not yet started Adapting the compiler to make use of the This new feature But it is anticipated to actually eventually Become More fixed and Steady So I wanna basically illustrate 2 things What is it We have this Bootstrap library Set up now This Bootstrap library the specific name here Is linked Too many many Snippets And so it it can never change even I've made it that even if you try to change it Can you click save You know it will actually revert back to the correct name That's only with regards to libraries that already become part Of the Joomla Component Boulder Community Snippets libraries So Everytime We have new libraries contributed To the community Then That library will is its name Will become fixed So It cannot be changed A little way of protecting the system from Uno collapsing on itself Because if people could just change these things in their own JCB Then It could end up making so many confused Results Anyone What they still can change is the way that the library is actually Add it Components I currently I said it up that it basically links to this to your house And it has this always had But that means On every page where Bootstrap 4 is being used It was always had These Files Now we might later see when you Miller for is released that there are some local gym Miller for libraries we would rather use like you you have for jQuery at this stage If you wanna use jQuery on a page you wouldn't do this kind of inclusion YouTube ID rather use the internal jumilla API to get those libraries on the page And for that I added this custom script option Adult two places where in in in in every view there are two types of functions used To add The Specific library to the page The one function is this prepare document function And the other one is set document And the one function uses the document Directly Variable naming And then add script because it actually adds document to the document variable The other one grubs up on a global document variable And it's really based on The fun which class it is inheriting and so forth So they are basically there for two methods Being used to adding the custom or the library to any page And so when you Use this custom script option You would Target These two features or three functions or methods Cross method Which will then adequately be Vailable For every A page that makes use of this library The other one is a conditional option Never conditional option is the better option really Because this one Would actually adapt The code On the basis of the the implementation Review So here you would select the files that you have Include and you would say whether it include or exclude You obviously if you select exclude It means I always included Unless these behaviours that you gonna set up we here Is actually you know Yeah if it if it is Successful A valid Now those of you who know the conditional concept within fields This I just taken that same cond concept And I'm now just applying it on adding Or not adding a file So it's really very much the same to you still have this isolate with train option And the reality is you can now There are no conflict Fields yet you need to first go here and create a conflict Field No config field is really an existing Field that you've already created Before coming here so I haven't saved This as a condition so I'm just gonna put You say that And then I'm gonna go here to edit And you'll see The config library if I click on it here I basically can select Any field out of my A whole list of fuel so I've already made one just for house illustration Bootstrap 4 Radio And That's really the field I wanted to be in the library tab So this again is very much similar to the component Config options area Set now we are selecting fields for the library which will it affect be added to the components Global Options area Ok so let's save and close here Now we'll see in this drop down at Hatfield comes up here If we select it That feels have two options yes or no So if this library and that Library File we wanna include it When add Bootstrap button is set to Yes So here is a selection option Now so that's the conditional way of doing So basically have 4 We will at this stage with i3 24 ways of Actually adding the the fields onto the page The reason why this condition or 1 Is not being shipped This way the moment Because I'm not shipping these fields And The whole idea of You know creating a field on all of those who In all the systems of those who used JCB Ice I'm still pondering whether I should write a script To do that So it's that's really the issue if If we shipped this as the The standard way of including the Bootstrap libraries Then I will need to create a sad Bootstrap version for fLine truncated
I would like to talk about the expected or anticipated New Library feature that's being added to JCB I'm still in the development phase of this I've been working on the UI Which really is just how I anticipate it should function It's not yet set in stone Because I have not yet started Adapting the compiler to make use of the This new feature But it is anticipated to actually eventually Become [00:00:34](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m34s) More fixed and Steady So I wanna basically illustrate two things one is We have this Bootstrap library Set up now This Bootstrap library the specific name here Is linked Too many many Snippets And so it it can never change even [00:00:53](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m53s) I've made it that even if you try to change it Can you click save You know it will actually revert back to the correct name That's only with regards to libraries that already become part Of the Joomla Component Boulder Community Snippets libraries So Everytime We have new libraries contributed To the community Then [00:01:19](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m19s) That library's name Will become fixed So It cannot be changed And that a way of protecting the system from collapsing on itself Because if people could just change these things in their own JCB Then It could end up making so many confused Results Anyone What they still can change is the way that the library is actually [00:01:46](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m46s) Added to Components I currently I said it up that it basically links to this two URLs And it has this always add But that means On every page where Bootstrap 4 is being used It will always add These Files Now we might later see when Joomla 4 is released that there are some local Joomla 4 [00:02:12](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m12s) libraries we would rather use like you have for jQuery at this stage If you wanna use jQuery on a page you wouldn't do this kind of inclusion You would rather use the internal Joomla API to get those libraries on the page And for that I added this custom script option there are two places where in every view there are two types of functions used To add The Specific library to the page The one function is this prepare document function And the other one is set document [00:02:48](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m48s) And the one function uses the document Directly Variable naming And then add script because it actually adds document to the document variable The other one grubs upon a global document variable And it's really based on Which class it is inheriting and so forth So they are basically there for two methods Being used to adding the custom or the library to any page And so when you [00:03:19](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m19s) Use this custom script option You would Target These two functions or methods Class methods Which will then adequately be available For every A page that makes use of this library The other one is a conditional option [00:03:39](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m39s) the conditional option is the better option really Because this one Would actually adapt The code On the basis of the the implementation per view So here you would select the files that you have and say whether it include or exclude You obviously if you select exclude It means it will always include it Unless these behaviours that you gonna set over here [00:04:08](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m08s) Is actually you know . . valid Now those of you who know the conditional concept within fields This I just taken that same conditional concept And I'm now just applying it on adding Or not adding a file So it's really very much the same so you still have this isolate or chain option And the reality is you can now [00:04:36](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m36s) There are no config Fields yet you need to first go here and create a config Field Now config field is really an existing Field that you've already created Before coming here so I haven't saved This as a condition so I'm just gonna save that And then I'm gonna go here to edit And you'll see [00:05:02](https://www.youtube.com/watch?v=joT8weuPcwU&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m02s) The config library if I click on it here I basically can select Any field out of my A whole list of fields so I've already made one just for our illustration Bootstrap 4 Radio And That's really the field I wanted to be in thLine truncated
@@ -1 +1 @@
Well I'm happy to announce that we have added a very Long awaited feature To JCB You need to upgrade to Version 2.8 To actually get this feature This feature though Does effect How Jason be built the admin View List View So that means Basically These areas Where U Got list of items I'm sorry if you got custom scripting in your component In these areas The Nuke when you install or upgrade to version 2 You would experience that your custom scripting doesn't get at it Anyway you know Correctly We're still at it it will still be added to the document But you have to go and move and into the correct place and an commented and You know do the re Placement of the code At this diamonds to Notify JCB to update the placement So that's Just a heads up because they're list views are Improved actually The way it's being built The this extra Sort of Changes to the code snippets changes the fingerprints and all that So another that what the new features all about is actually Taking specific values like maybe this value And that that you And to combine them into one value into one column And yet have the option of still being able to filter with those values Now we forgot this component SA minister buter And I am planning To take the preachers List View You see that it now shows the name and a short description or whatever description you've had it I want to have it also show If there is an email address So if this email address is filled in Then it should show the email address Or If it doesn't find an email address but it finds a Web address it should show the web address Photos are other one or the other And it must connected next to the male name And and I think we'll use that as our demonstration of this feature Ok so now let's go back to component Builder And then we would go to The admin views And If you Or not if you haven't done it yet there won't be an icon showing up any work here But once you've done it there will actually be one I'll show you that I will go to the preachers at - View So just go to the the one you want to change And then under the settings area Sorry not the settings area List the fields area You see that there is now A new area called admin Fields relations And here at the bottom You see if field relations So that's the new area that's the new feature You could either click here Or You click here None of them will achieve the same Taking you to the Same place So I'm the click on this one it's ok And then You basically in the admin Fields relations Builder If you could click here on adding a Atkins fields are we gonna set for your money used in them And we gonna join that up with the email And with the whip euro I'll see that there is this area Colin The error column actually Can Target three places Before modelling the value after modelling the value And the view So If you know I'm what a model is that means the area where you still working Just with a code Where is interview You must think of your ready have a HTML trunk That represents that field So if I could show you that more Directly in the code In first looking here at the folder structure ucc I'm in admin Strater components Then summon distributor Then here's the views and here's the models So if we go to the model of the preacher Plural one because we going to the list View You'll see That it has Items Now At the moment there is basically nothing being modelled Modelled usually would imply If it is a Jason object And it needs to be taken from Jason to an array Or if it's an encrypted value and a needs to be decrypted Those kind of things Oh whether you wanna work with the value before that happens or after that has happened Ok so then if you want a you work with the actual Item Where it's still just an integer or a string and really that's all that is Then you target the model If you wanna talk at The View Which in this case if we go to preachers And then the body You see that Basically Everything from here Up to here Is representing The ID Everything from Year of the year Is a presenting the name And so if you wanna target this trunk Because it still gets generated Course Then you would target The View Because then they see we will still build this whole block for you Basically this block And you can move this block around and join it with the other block for the other feel As you like So that we could be that you didn't have two links Or that Yes All kinds of interesting things can happen my best Advice is not write out take it for a spin Make some changes compile it install it See what's changed go to the areas Which being I love you Or the model and see the code that was generated based on your selection Are we gonna Make multiple changes and show you what will happen so save you some other time and then understand What's happening And so this code Do it The first area I'm gonna target is the model area Then it has a joint type which is either a concatenation with With a glue option the glue option is basically what do you want tLine truncated
Well I'm happy to announce that we have added a very Long awaited feature To JCB You need to upgrade to [00:00:12](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m12s) Version 2.8 To actually get this feature This feature though Does effect How JCB builds the Admin View List View So that means Basically These areas Where you got list of items [00:00:33](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m33s) So if you got custom scripting in your component In these areas The New when you install or upgrade to version 2 You would experience that your custom scripting doesn't get added you know Correctly We'll still add it will still be added to the document But you have to go and move it into the correct place and an commented and You know do the [00:01:01](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m01s) replacement of the code Add those diamonds to Notify JCB to update the placement So that's Just a heads up because the list views are Improved actually The way it's being built The this extra Sort of Changes to the code snippets changes the fingerprints and all that [00:01:27](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m27s) So enough that what the new features is all about is actually Taking specific values like maybe this value And that value And to combine them into one value into one column And yet have the option of still being able to filter with those values Now we forgot this component Sermon Distributor And I am planning To take the preachers List View [00:01:59](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m59s) You'll see that it now shows the name and a short description or whatever description you've added I want to have it also show If there is an email address So if this email address is filled in Then it should show the email address Or If it doesn't find an email address but it finds a Web address it should show the web address so it should show other one or the other And it must connected next to the name [00:02:31](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m31s) And and I think we'll use that as our demonstration of this feature Ok so now let's go back to component Builder And then we would go to The admin views And If you Or not if you haven't done it yet there won't be an icon showing up anywhere here But once you've done it there will actually be one I'll show you that So we will go to the preachers admin View So just go to the the one you want to change [00:03:01](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m01s) And then under the settings area Sorry not the settings area It's the fields area You'll see that there is now A new area called admin Fields relations and here at the bottom You'll see a field relations So that's the new area that's the new feature You could either click here [00:03:27](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m27s) Or You click here both of them will achieve the same Taking you to the Same place So I'm the click on this one it's ok And then You basically in the admin Fields relations Builder so you could click here on adding a Admin fields we gonna set we gonna use the name [00:03:50](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m50s) And we gonna join that up with the email And with the web URL Now will see that there is this area Column The area column actually Can Target three places Before modelling the value after modelling the value And the view So [00:04:12](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m12s) If you know I'm what a model is that means the area where you still working Just with a code Where as in the view You must think of you already have a HTML trunk That represents that field So if I could show you that more Directly in the code In first looking here at the folder structure you see I am in administrator components [00:04:39](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m39s) Then sermon distributor Then here's the views and here's the models So if we go to the model of the preacher Plural one because we going to the list View You'll see That it has Items Now At the moment there is basically nothing being modelled Modelled usually would imply [00:05:01](https://www.youtube.com/watch?v=hh4IIPmYIY8&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m01s) If it is a json object And it needs to be taken from json to an array Or if it's a encrypted value in a needs to be decrypted Those kind of things Oh whether you wanna work with the value before that happens or after that has happened Ok so then if you want a you work with the actual IteLine truncated
+1 -1
@@ -1 +1 @@
I would like to talk to you about changing the licence template For your component This would be expected that you've made at least 40% chain Do any of the demo components Yes so Let's say you've changed this component Quite considerably Then there is this place called Licensing template Now it actually tells you there what you should do Select a file That should be used for licence or files Found in Administrative component Component Builder Compiler La files What I should add to the note is actually the txt files So that means you could put any txt file in there And then selected here as a licence template Now let me show you how that works Ok first of all It must be done When the Joomla component Builders ready installed on your website to hear I have a website by MT So in Administrators Component Wrapistry talk Finance Bodybuilder There is a folder called compiler And in it there is 123 4 txt files 5 txt files And going back to the component There is 12345 files I see it's also using the HTML That one will obviously not come out right Ok So These ones with the txts the one that you would Select Any one of those To be the template that you are going to use Now if you use one of the existing templates and just change it then with the next update Your changes will be overwritten So you wanna do it in a way that sort of Preserved your changes And the way you do that is you actually go Back to that area And then you select Or let's say were you selected default one And maybe you don't like this So you want to take that out Micro And maybe you don't want to really support Or show that you used a CB so Take that out I really don't mind Wags I'm so much so supportive open-source that I don't I don't mind you changing Anything here And anything else in fact anything there And anything there This I would want you to leave Basically Because you could set this in the 3DS placeholders are being replaced By the settings of your component So that means you could still tweak worse But do it in the component But leave a licence somehow Copyright notice So that people know how to use your program But Having said all that You do realise that the lot of the code between all the components a JCB built are more or less the same It's just loom Ames here in there I am that's really the only thing you probably Riding Just keep that in mind You're not copy writing the Everyday line really your copywriting the changes because Though The idea of how built is already been copyrighted either by your myself or buy Faster JCB yes that's right so just keep that in the back of your head Your copywriting the changes you've made And that would you done And maybe when someone uses your component they won't think about it that way and I don't I don't mind and I nothing Anyone word because we are open source community But If you do change your program to a proprietary software You might have 2 Yeah you know you need to look at What would be the implication because I think There's a possibility that some areas Cannot be made proprietary be Because of the Open Source licence already being on JCB And on Everything that it's Stan Ok so that's just I'm not sure I'm not a lawyer I don't know how all that works out But I want to give Billy people so much freedom and I'm not really gonna take people up Someone else May there is actually places that Might feel obligated to do so I wanna be busy with code Writing programs Ok So this is how you change the template More or less you could leave things in the one that think that's the most let's see You can check between them You see like this the way to know what is all the place holders that are available Is really to go to the Let's see how her Compiler I think it's that in fusion is 1 So You should look at the in fusion Now like There is a company name is sea there's a creation date There's the boat day there's two all the all the e-mail website copyright licence version Actual version Component names for short description description Image type access so they are Really Most of these aesthetic A content placeholder could be used of his is some of them won't make sense like custom how The Script Means it's got at the custom out the script in that lines It's not gonna come out right So these Place holders are really from where The pont in is being updated in the file Ok so you'll see That it is the same This is a new method we are using to put it in the hashes these these hash is here So Basically the creation date Is this one here And it's getting it from the infusion which is found in helpers compiler So you can check out these and use any of those as you like The point being It's best to leave this in And at least now tell people who who who did you do did it so someone Can be blamed anyway And There we go now If you just save now It'll still work the default and it will be updated But the problem is the sooner we released a new update for JCB and you install that update Is actually gonna over righLine truncated
I would like to talk to you about changing the licence template [00:00:05](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m05s) For your component This would be expected that you've made at least 40% change To any of the demo components Yes so Let's say you've changed this component Quite considerably Then there is this place called Licensing template Now it actually tells you there what you should do [00:00:34](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m34s) Select a file That should be used for license all files Found in Administrator component Component Builder Compiler Now the files What I should add to the note is actually the txt files So that means you could put any txt file in there And then selected here as a license template [00:00:57](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m57s) Now let me show you how that works Ok first of all It must be done When the Joomla component Builder's ready installed on your website. So here I have a website Joomla Mount So in Administrators Component or administrator components component builder There is a folder called compiler [00:01:21](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m21s) And in it there is 123 4 txt files 5 txt files And going back to the component There is 12345 files I see it's also using the HTML That one will obviously not come out right Ok So These ones with the .txt's the one that you would [00:01:46](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m46s) Select Any one of those To be the template that you are going to use Now if you use one of the existing templates and just change it then with the next update Your changes will be overwritten So you wanna do it in a way that sort of Preserved your changes And the way you do that is you actually go Back to that area And then you select [00:02:13](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m13s) Or let's say were you selected default one And maybe you don't like this So you want to take that out like that And maybe you don't want to really support Or show that you used JCB so Take that out I really don't mind in fact I'm so much so supportive open-source that [00:02:36](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m36s) I don't I don't mind you changing Anything here And anything else in fact anything there And anything there This I would want you to leave Basically Because you could set this in the you know these placeholders are being replaced By the settings of your component [00:02:58](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m58s) So that means you could still tweak this But do it in the component But leave a license somehow Copyright notice So that people know how to use your program But Having said all that You do realize that the lot of the code between all the components at JCB built are more or less the same It's just little names here and there and that's really the only thing you copy writing [00:03:26](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m26s) Just keep that in mind You're not copy writing the Every little line really your copy writing the changes because The The idea of how built is already been copyrighted either by Joomla itself or by sorry JCB yes that's right so just keep that in the back of your head Your copy writing the changes you've made And that would you done And maybe when someone uses your component they won't think about it that way and I don't I don't mind and I nothing [00:04:00](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m00s) Anyone would because we are open source community But If you do change your program to a proprietary software You might have to Yeah you know you need to look at What would be the implication because I think There's a possibility that some areas Cannot be made proprietary be Because of the Open Source license already being on JCB [00:04:28](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m28s) And on Everything that it's done Ok so that's just I'm not sure I'm not a lawyer I don't know how all that works out But I want to give many people so much freedom and I'm not really gonna check people up Someone else may there is actually places that Might feel obligated to do so I wanna be busy with code Writing programs [00:04:58](https://www.youtube.com/watch?v=AveBf6YZzmo&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m58s) Ok So this is how you change the template More or less you could leave things in the one that think that's the most let's see You can check between them You see like this the way to know what is all the place hoLine truncated
+1 -1
@@ -1 +1 @@
Would like to Show you how to Use code across JCB Never inherit in kind of way By taking the advantages of a few features that Jay-Z has Features that knows may not know is there or maybe they do but they not seen it's advantage And then recently there actually came up a question On the Forum Hi Alex things are skiing About You know your husband views but Generic code that runs in Multiple admin views and then some of it runs only in specific admin views And how I could how I could speed up the maintenance of this kind of thing So his first question is is the helper at mint class the best way to put this code and then is there a way Keep the direct admin forms functions I wrote separate from these specific ones Ok I'm sure some of your might even be listening here and I'll understand exactly what we trying to do Answer I'm not even sure if I'm exactly going to answer this you know So I'm gonna quit it pull up a Docker image of Joomla I have a doc file there just quickly gonna pull it up And then we gonna go and use it Ok Ok so I've got it of running I think it's default is user Ok so where in here I'm gonna go to extensions and install And Basically at the web tab The JD Kud Then tie her recipe Here we have Description can look at that And install Sort of getting the JCB install from GitHub Ok we're done Go to Mokopane and builder when was there Then We could Grab a demo component If you don't know how to get access to these components just follow this link and Follow their tutorials X gonna get the JCP package And then the key that You will send it will add here Mary Force an update Toe is good So get all your Fields updated Ok now Continue And within moments we have JCB Installed on JCB Now we can start looking at the examples That's really what I wanted to get to Because the question is being answered by the demo data Already So In JCB there we already doing a lot of this multi Inheritance structure kind of relationships And So the best way to sort of demonstrate this is to actually look at a CV itself K almost there Hey I got JCP Here Now if we go to custom code We'll see there's a hole that a customer code And Many of them is this hash Automation Now we wanna look at this JCB manual option For example let's look at the good view ID Which is a custom code Basically that is his name This is how you use it And Here We are having a view Called admin View That is using it So if we click on that He's going to open for us the admin View And when we get here we'll see there is the the code now This actually is the I'm using this specific get view ID All across my components is just It's also being used in JCB But it's it's powerful So I'm using it everywhere So that's one way To use A a specific snippet Would you add here use the JCB manual Give the function and name You could pass values to the function like this And Please read the explanation here To how that is done And then today You can then add up the value structure for example if If this value here needs to change from instance to instance you can pass it by The new one Which that will be R20 And then you can just actually replace this here with 3 Then Park 093 again like that And then you just remember to pass At least one value To update This value Where are we using it That's one way to use the reuse the scripting Now the other way Which is the one that actually gets used in the helper class It's like here I got one called get file path To get file path is also a function Which I am using a cross my components It is by just also being included in JCB But many of my components is using get file path And basically It is a little function That I can pass a few parameters to ne can consistently give me back a path of where I want to place or get far Piles from Now in the PHP helper there is a function And the component itself That's me here There is a function called Helper classes for both admin insight So anything you put in here will be not only added to the admin helper class but also to the site Helper class sort of a way to Avoid doing it twice And As you can see There is one to just put it in the admin So you could just take care and just target the admin helper Or you could just talk at the site class helper But in this case most of this code I wanted to speak everywhere And if we were to Go down to the very bottom suppose Your Is the Get file Path So it is forming part of a whole bunch of code that I'm adding to the helper class of this component And which I'm also using another components so I don't read Do you need to redo this code anytime soon unless in in sorry I don't need to come and open there Component when I want to change this code I can just change the code Right there In the Place that it's in the custom area So that means if we close out here And we go back to the customer code You can see that the function is being used in component builder and in what field there bitch be helper both Sweat added And If you need improving the cLine truncated
Would like to Show you how to Use code across JCB In a very inherent kind of way By taking the advantages of a few features that JCB has Features that most may not know is there or maybe they do but they not seen it's advantage And then recently there actually came up a question On the Forum By Alex Tings asking [00:00:33](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m33s) About You know he ask admin views but Generic code that runs in Multiple admin views and then some of it runs only in specific admin views And how I could how I could speed up the maintenance of this kind of thing So his first question is is the helper admin class the best way to put this code and then is there a way Keep the direct admin forms functions I wrote separate from these specific ones Ok I'm sure some of your might even be listening here and I'll understand exactly what we trying to do And I'm not even sure if I'm exactly going to answer this you know [00:01:12](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m12s) So I'm gonna quickly pull up a docker image of Joomla I have a docker file there just quickly gonna pull it up And then we gonna go and use it Ok Ok so I've got it up running I think it's default is user Ok so where in here I'm gonna go to extensions and install And Basically add the web tab The JED [00:01:46](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m46s) JED Then type JCB and here we have Description can look at that And install Sort of getting the JCB install from GitHub Ok we're done Go Joomla component builder we're almost there Then [00:02:22](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m22s) We could Grab a demo component If you don't know how to get access to these components just follow this link and Follow the tutorials So I'm just gonna get the JCB package And then the key that You were send you will add here Maybe force and update is always good sort of get all your Fields updated [00:02:52](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m52s) OK now Continue And within moments we have JCB Installed on JCB Now we can start looking at the examples That's really what I wanted to get to Because the question is being answered by the demo data Already So [00:03:12](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m12s) In JCB there we already doing a lot of this multi Inheritance structure kind of relationships And So the best way to sort of demonstrate this is to actually look at JCB itself OK we're almost there OK we got JCB Here Now if we go to custom code We'll see there's a whole lot of custom code And [00:03:40](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m40s) Many of them is this hash Automation Now we wanna look at this JCB manual option For example let's look at the getviewID Which is a custom code Basically that is its name This is how you use it And Here We are having a view [00:04:01](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m01s) Called admin View That is using it So if we click on that Is going to open for us the admin View And when we get here we'll see there is the the code now This actually is the I'm using this specific get view ID All across my components is just It's also being used in JCB But it's it's powerful So I'm using it everywhere [00:04:31](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m31s) So that's one way To use A a specific snippet Which you add here use the JCB manual Give the function and name You could pass values to the function like this And Please read the explanation here To how that is done And the end of the day [00:04:55](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m55s) You can then adapted the value structure for example if If this value here needs to change from instance to instance you can pass it by This value one Which that will be arg0 And then you can just actually replace this here with 3 Then arg0 and 3 again like that And then you just remember to pass At least one value [00:05:27](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m27s) To update This value Where ever you using it That's one way to use the reuse the scripting Now the other way Which is the one that actually gets used in the helper class It's like here I got one called get file path To get file path is also a function Which I am using across my components It is just also being included in JCB [00:05:55](https://www.youtube.com/watch?v=8Yl4lAAAWMQ&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m55s) But many of my components is using get file path And basically It is a little function That I can pLine truncated