From 59c891e27a442dd764811f978eba937b9b8c21c6 Mon Sep 17 00:00:00 2001 From: Amigo <49749100+aamigo@users.noreply.github.com> Date: Thu, 4 Jul 2019 17:30:07 +0200 Subject: [PATCH] Updated 044 Hello World Component with Joomla Component Builder Creator Extended (markdown) --- ...th-Joomla-Component-Builder-Creator-Extended.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/044-Hello-World-Component-with-Joomla-Component-Builder-Creator-Extended.md b/044-Hello-World-Component-with-Joomla-Component-Builder-Creator-Extended.md index 1c5c93f..4808568 100644 --- a/044-Hello-World-Component-with-Joomla-Component-Builder-Creator-Extended.md +++ b/044-Hello-World-Component-with-Joomla-Component-Builder-Creator-Extended.md @@ -341,4 +341,16 @@ I want to add the option to edit the item in both the list as well as the single ### List View - Add PHP Script -In the Site view of the List area I'm going to PHP and I'm going to Add PHP (custom view script). It says add PHP script to the head of the file. [01:35:05](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h35m05s) I'm going to paste this link in here and we see that it has this view greetings, and the task is greeting, edit. That is the task and it's going to be available in the edit variable. That's the first part of the code we want up on the page. [01:35:29](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h35m29s) Now for the rest of it we go back to the admin view again, the back end. We see wither we need to grab these as well. Before grabbing them let's open the corresponding site view so we can look at some of the code. Here is the greetings. [01:35:55](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h35m55s) I'm going to open this view.html.php and we'll see that the user is already being loaded onto the page. This is the $this.>items. It is always good for you to go and look at the code the JCB is writing. Seeing the code is what makes you familiar with how things work and also helps you to detect when something doesn't work. Why? [01:36:29](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h36m29s) and how to fix it. Since we know that the user is on the page and we go to the default_body.php area. We see that it's accessing the user in the same way. Using this($this.>user) as an object, user And ask him whether it has authority On the core [01:36:48](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h36m48s) managed To check in And then also it Basically checks And gets the check out user Details And We'll see why in a moment But we don't have the check out user on the page So [01:37:06](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h37m06s) What we gonna do it's we gonna quickly Also get those values by going to the Dynamic Get And making sure that those values get brought to the page as well So we go to list greetings And again like before we just copy all those values And just tweak away and then back And the values we now want to make sure also comes along Is basically I see it's a value that it doesn't by itself add To the selection [01:37:44](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h37m44s) But you can add it in because you know it is in the database It's just that This table selection Only shows at this stage the actual values that That it knows belongs to the view I think I need to update this in JCB It is a little tweak which I haven't done So it's not showing the Checkout and Checkout by values But you can type it in by just going And then [01:38:16](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h38m16s) Those values will also be brought to the front Of this view So Basically the Checkout and The check out time Actually we don't need the check out time Only the check out Basically who checked it out We could add the time But I'm not gonna demonstrate that during this tutorial we'll really it was over an hour and so few minutes [01:38:43](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h38m43s) So I'm just gonna use the check out for now saving clothes So we've updated our Dynamic get And that means our values are on the page and we can move our code into place We'll need to add it inside of this for each loop Since this code Is actually working with the item Itself Ok so we've got the code in there Recalling the user We also checking the item check out to the user ID [01:39:21](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h39m21s) Making sure it's 0 We checking whether to check out user Now let's go get the rest of the code we need So again in the admin view we gonna go with This area here And just copy that We wanna make a few adaptations because in the end of the day The front end is a little different from the back end In that [01:39:54](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h39m54s) It is only The backend only displays an edit view the front-end also displays a read view So We wanna make it a little different You can pause the video to see some of the things I've done here But in simple terms I basically got the edit here I'm editing echoing the edit Link And I'm adding the item and I'm putting in a little icon which then you can click And here I'm checking whether you have permission To actually edit [01:40:34](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h40m34s) This item so if we were save this and refresh the homepage It should actually not change anything because the public doesn't have permission to edit it at this stage Ok that icon should be pencil not edit Ok so let's save this and compile it to see it in action install it And we reload the home page and as you can see it doesn't show those little Buttons Now if we go to the back end [01:41:17](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h41m17s) And we go to options And we change That The public is allowed to edit And Let's say Let me not change state Yeah Let's just do that they aloud to edit And Let's open the front again We know see that it shows the edit [01:41:48](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h41m48s) Pencil Let's click on that And we see it opens The edit area Where it can actually now Add the exclamation And click on save Save and close It tells us that the message was saved successfully If we now [01:42:12](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h42m12s) Open that greeting We see that has the exclamation so our Attempt to integrate Or to make our items editable On the front end Within the control of permission groups Has actually worked very effectively if we again Revoke the permissions And [01:42:35](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h42m35s) Refresh the page And then suddenly those links are gone And even if somebody Were to try and Circumvent the system By having In the URL paste in the link To edit that specific item and It will actually Say that it's not permitted [01:42:57](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h42m57s) So the The the permissional structure is actually armed and will protect the item from being edited by By that group So Again we gave the Public Permission to edit But now the question is Can we also give it permission to create So going back to greetings [01:43:19](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h43m19s) Let's add an option to create An item If I go and add this button here With a link To create an item But I'm not adding any checks around it But you basically need the same kind of Check as you've using here Except that there are some [01:43:42](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h43m42s) Shortcut let me Let me show you So basically around the button we added this PHP That checks the users authority to create For the core Of this component If yes Then it will show the button if no the button will not show So that is to control the visibility of the button So let's save this and then compile and install [01:44:11](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h44m11s) To see it in action So we see the button doesn't show And that is because currently Who got a component set That the public Cannot Actually create If we allow creating For the public [01:44:40](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h44m40s) And we Refresh the page You see that now it actually shows Sorry that's the different view It is this one Refresh this page There we go Now if we click on it It will open an area where we can create an item So here we can set a new name [01:45:06](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h45m06s) And then Save and close We get this save not permitted This must mean that we haven't granted enough permissions For the Public user To actually create an item See giving it the option to create an item Is not enough because there are fields That [01:45:28](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h45m28s) You know you need also access to Before you can create an item So let's let's try again But first giving it more permissions So we've granted it Basically all the permissions That it needs and go to the front Now we click create greeting Save and close [01:45:53](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h45m53s) And there we go With saved the item We can again edit the item We can close And we can View As you can see it's all working As expected So Our Hello World tutorial Is nearly at it's end [01:46:16](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h46m16s) We have within this tutorial demonstrated to you How to create A Hello World Component List its items Open individual items And edit those items As well as creating new items All based On the permissional of structures Of the component [01:46:40](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h46m40s) So if we Where to change these permissions back To not allowed And we now refresh the front We'll see that Now we can only view the items And even more If we go back And we wanna control the actual viewing of the greet items Not be visible to the public but maybe only to let's say managers we could do that [01:47:06](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h47m06s) So you can manage That kind of control over your items You know without actually A lot of custom code If you click on it now it will tell you don't have authority to view it Now you can add Basically custom Scripting To remove the link so that it doesn't even look clickable If the person doesn't have access to view it [01:47:32](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h47m32s) But that's already We gone so far over the time Trying to demonstrate to you Some of the basic principles of setting up a Hello component In JCB I trust you've enjoyed this tutorial By far it doesn't usually take this long to actually build a Hello World component In fact there is a older tutorial Where we managed to build a Hello World component and very Shorter time [01:48:02](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h48m02s) But I illustrated and demostrate it and explain it a little more here To help you guys along To actually build components with JCB And that you'd realize that JCB Is really actually a very powerful application I mean I haven't even gone to the code this time And shown you all that it's written But I mean just from the compiler We ready got 13000 lines of code Which would have taken you 5 8 hour days to write [01:48:37](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h48m37s) Which is about 39 hours And I think for a basic component that's quite a lot of code And it's because that it's already integrating a lot of permissional structures and you know version control I mean if I was to Open The greetings And Just open James [01:49:03](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h49m03s) remember we added that little Exclamation mark We could check the version We can see the changes and when it was made We can actually review Some of the previous versions And we can even go back to those versions That kind of integration With your history component is done automatically by just adding history And so is many of the other features [01:49:30](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h49m30s) The JCB is adding to your component like export of data import of data Bash sorry Batch Changes that you can make As well as You know a whole lot of other concepts Which It's just Beyond the scope of what we had time for today Well enjoy coding and yes If you have any issues Please go to GitHub [01:49:58](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h49m58s) First check out the wiki page Check the tutorials And if you just think you've discovered a bug You're most welcome to open an issue And we'll see what we can do in trying to resolve that for you We would like to invite other PHP Programmers To really get involved on the JCB GitHub [01:50:22](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h50m22s) Community And help us improve JCB So that It can become a home For us to manage The troubled waters of open-source Development Thank you +In the Site view of the List area I'm going to PHP and I'm going to Add PHP (custom view script). It says add PHP script to the head of the file. [01:35:05](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h35m05s) I'm going to paste this link in here and we see that it has this view greetings, and the task is greeting, edit. That is the task and it's going to be available in the edit variable. That's the first part of the code we want up on the page. [01:35:29](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h35m29s) Now for the rest of it we go back to the admin view again, the back end. We see wither we need to grab these as well. Before grabbing them let's open the corresponding site view so we can look at some of the code. Here is the greetings. [01:35:55](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h35m55s) I'm going to open this view.html.php and we'll see that the user is already being loaded onto the page. This is the $this.>items. It is always good for you to go and look at the code the JCB is writing. Seeing the code is what makes you familiar with how things work and also helps you to detect when something doesn't work. Why? [01:36:29](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h36m29s) and how to fix it. Since we know that the user is on the page and we go to the default_body.php area. We see that it's accessing the user in the same way. Using this($this.>user) as an object, user and ask him whether it has authority on the core [01:36:48](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h36m48s) managed to check in. Then also it checks and gets the check out user details. We'll see why in a moment. But we don't have the check out user on the page. [01:37:06](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h37m06s) + +### Update Dynamic Gets + +What we going to do it's we going to quickly also get those values by going to the Dynamic Get and making sure that those values get brought to the page as well. We go to ListGreetings and again like before we just copy all those values and just tweak away and then back. The values we now want to make sure also comes along is basically I see it's a value that it doesn't by itself add to the selection. [01:37:44](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h37m44s) But you can add it in because you know it is in the Database. It's just that this View Table Selection only shows at this stage the actual values that it knows belongs to the view. I need to update this in JCB. It is a little tweak which I haven't done. So it's not showing the checked_out and checked_out by values. You can type it in. [01:38:16](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h38m16s) Those values will also be brought to the front of this view. The checked_out and the checked_out time, we don't need the check_out_time. Only the check_out, basically who checked it out. [01:38:43](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h38m43s) Save and close. We've updated our Dynamic Get and that means our values are on the page and we can move our code into place. + +### Editing Echoing Edit Link + +We'll need to add it inside of this(Default View) for each loop since this code is working with the item itself. We've got the code in there, we are calling the user, we also checking the item check_out to the user id. [01:39:21](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h39m21s) Making sure it's 0. We checking whether to check_out user. Let's go get the rest of the code we need. So again in the admin view we going to go with this area here and just copy that(see video). We want to make a few adaptations because in the end of the day the front end is a little different from the back end. [01:39:54](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h39m54s) The back end only displays an edit view. The front-end displays a read view. We want to make it a little different. You can pause the video to see some of the things I've done here. But in simple terms I basically got the edit here. I'm editing echoing the edit link. I'm adding the item and I'm putting in a little icon which then you can click. I'm checking whether you have permission to edit [01:40:34](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h40m34s) this item. If we were to save this and refresh the homepage, it should not change anything because the public doesn't have permission to edit it at this stage. That icon should be pencil not edit. Let's save this and compile it to see it in action. Install it and we reload the home page and as you can see it doesn't show those little buttons. If we go to the back end [01:41:17](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h41m17s) and we go to options, we change that the public is allowed to edit. Let's just do that they allowed to edit. Let's open the front again. We know see that it shows the edit [01:41:48](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h41m48s) pencil. Let's click on that and we see it opens the edit area where it can now add the exclamation and click on save. Save and close. It tells us that the message was saved successfully. If we now [01:42:12](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h42m12s) open that greeting, we see that has the exclamation. Our attempt to integrate or to make our items editable on the front end within the control of permission groups, has worked very effectively. If we again revoke the permissions and [01:42:35](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h42m35s) refresh the page, and then suddenly those links are gone. Even if somebody were to try and circumvent the system by having in the URL paste in the link to edit that specific item and it will say that it's not permitted. [01:42:57](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h42m57s) The permissions structure is armed and will protect the item from being edited by that group. Again we gave the Public Permission to edit but now the question is can we also give it permission to create? + +### Add Option To Create + +Going back to greetings [01:43:19](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h43m19s) Let's add an option to create An item If I go and add this button here With a link To create an item But I'm not adding any checks around it But you basically need the same kind of Check as you've using here Except that there are some [01:43:42](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h43m42s) Shortcut let me Let me show you So basically around the button we added this PHP That checks the users authority to create For the core Of this component If yes Then it will show the button if no the button will not show So that is to control the visibility of the button So let's save this and then compile and install [01:44:11](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h44m11s) To see it in action So we see the button doesn't show And that is because currently Who got a component set That the public Cannot Actually create If we allow creating For the public [01:44:40](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h44m40s) And we Refresh the page You see that now it actually shows Sorry that's the different view It is this one Refresh this page There we go Now if we click on it It will open an area where we can create an item So here we can set a new name [01:45:06](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h45m06s) And then Save and close We get this save not permitted This must mean that we haven't granted enough permissions For the Public user To actually create an item See giving it the option to create an item Is not enough because there are fields That [01:45:28](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h45m28s) You know you need also access to Before you can create an item So let's let's try again But first giving it more permissions So we've granted it Basically all the permissions That it needs and go to the front Now we click create greeting Save and close [01:45:53](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h45m53s) And there we go With saved the item We can again edit the item We can close And we can View As you can see it's all working As expected So Our Hello World tutorial Is nearly at it's end [01:46:16](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h46m16s) We have within this tutorial demonstrated to you How to create A Hello World Component List its items Open individual items And edit those items As well as creating new items All based On the permissional of structures Of the component [01:46:40](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h46m40s) So if we Where to change these permissions back To not allowed And we now refresh the front We'll see that Now we can only view the items And even more If we go back And we wanna control the actual viewing of the greet items Not be visible to the public but maybe only to let's say managers we could do that [01:47:06](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h47m06s) So you can manage That kind of control over your items You know without actually A lot of custom code If you click on it now it will tell you don't have authority to view it Now you can add Basically custom Scripting To remove the link so that it doesn't even look clickable If the person doesn't have access to view it [01:47:32](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h47m32s) But that's already We gone so far over the time Trying to demonstrate to you Some of the basic principles of setting up a Hello component In JCB I trust you've enjoyed this tutorial By far it doesn't usually take this long to actually build a Hello World component In fact there is a older tutorial Where we managed to build a Hello World component and very Shorter time [01:48:02](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h48m02s) But I illustrated and demostrate it and explain it a little more here To help you guys along To actually build components with JCB And that you'd realize that JCB Is really actually a very powerful application I mean I haven't even gone to the code this time And shown you all that it's written But I mean just from the compiler We ready got 13000 lines of code Which would have taken you 5 8 hour days to write [01:48:37](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h48m37s) Which is about 39 hours And I think for a basic component that's quite a lot of code And it's because that it's already integrating a lot of permissional structures and you know version control I mean if I was to Open The greetings And Just open James [01:49:03](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h49m03s) remember we added that little Exclamation mark We could check the version We can see the changes and when it was made We can actually review Some of the previous versions And we can even go back to those versions That kind of integration With your history component is done automatically by just adding history And so is many of the other features [01:49:30](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h49m30s) The JCB is adding to your component like export of data import of data Bash sorry Batch Changes that you can make As well as You know a whole lot of other concepts Which It's just Beyond the scope of what we had time for today Well enjoy coding and yes If you have any issues Please go to GitHub [01:49:58](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h49m58s) First check out the wiki page Check the tutorials And if you just think you've discovered a bug You're most welcome to open an issue And we'll see what we can do in trying to resolve that for you We would like to invite other PHP Programmers To really get involved on the JCB GitHub [01:50:22](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=01h50m22s) Community And help us improve JCB So that It can become a home For us to manage The troubled waters of open-source Development Thank you