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 af79281..9b3add9 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 @@ -4,44 +4,47 @@ [00:00:00](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m00s)(_Click on these time links to see Youtube video_) -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 Joomla Component which helps you to develop Joomla Components quite easily. I originally developed this application or extension for myself that I can maintain the code in a very consistent and shareable way. +This is a tutorial on how to build a Hello World Component with Joomla Component Builder. Joomla Component Builder is a Joomla Component which helps you to develop Joomla Components quite easily. I originally developed this application or extension for myself that I can maintain the code in a very consistent and shareable way. * ### Example - Make Changes In One Place [00:00:41](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h00m41s) -For example since there are lot of concepts in components that you build for Joomla, which we could call Conventions or Boilerplate Implementation. These things are always the same. I wanted something like a wire frame that could just take care of all that for me all the time. 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. Then have them run again stable on Joomla, instead of having to go to every one of those components. We've gone beyond developing the most basic parts of a Component. We've gone and ventured into some of its complexities. That is why showing you an Hello World [00:01:44](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m44s) Component being built by Joomla Component Builder. It is still going to end up being quite an advanced Component. +For example: Since there are a lot of concepts in components that are build for Joomla, which may be called Conventions or Boilerplate Implementation. These things are always the same. I wanted something like a wire frame that could just take care of that for me all the time.[00:01:09](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m09s) Even if Joomla was to change, to be able to make a change in one place, and then compile it into all the components that I have developed. Then have them run again, stable on Joomla, instead of having to go to every one of those components. We have gone beyond developing the most basic parts of a Component and ventured into some of its complexities.[00:01:40](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m40s) That is why showing you an Hello World Component being built by Joomla Component Builder. It is still going to end up being quite an advanced Component. ### Become A Community Project [00:01:57](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h01m57s) -Since I've mentioned to you that I 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. Most of you might already know that. [00:02:19](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m19s) I didn't think about the complexity when I was developing the Component. I just had a desired functionality in mind. I didn't care that it is complicated to achieve things, because I set the conventions in place and I know how to use them. [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 Component Builders out there, but when you start using it and knowing some of its secrets, it is amazing how Conventions that you would use when you develop components yourself would make JCB do things that are quite amazing. - -### JCB - A Ton Of Functions +I had build JCB for myself, and it was not intended as a community project. It has since become a community project with the code open on GitHub. [00:02:19](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m19s) With only functionality in mind, I did not contemplate the complexity thereof during the development and set conventions in place which I know how to use. [00:02:43](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h02m43s) On the surface JCB might look just like any other Component Builder, but when you start to use it and and come to know some of its secrets, it is amazing how conventions, even conventions that you would use when you develop components yourself would make JCB do things that are quite amazing. [00:03:16](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h03m16s) - -So you will end up realizing that JCB has a ton of functions. Most of the basic ones we have tried to explain in the tutorials that you can find on YouTube. You can access the tutorials from this link 'Access Tutorials'. 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. At the same time, it is only the basics, although it's quite a lot of tutorials. I want to make sure that you are able to not only do basic things but even advanced things. +So you will end up to realize that JCB has a lot of functions. Most of the basic ones has been explained in the tutorials that can be found on YouTube which can be accessed from this link 'Access Tutorials'. ### Need To Know - PHP - Joomla API [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 Language, 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, the more you know the more you would have a perspective on 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. Set up the correct relationships to have those conventions dynamically 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 start reading the code. The Compilers codes files are [00:05:20](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m20s) alphabetically ordered. You can start with 'a' and work your way down. The first one is a_get.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 amazing features that work just out of the box. Yet having this under the hood I realize we all need to start with the basics. That is to build a Hello World Tutorial [00:05:57](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m57s) to know how to combine the different concepts that is required for a component. To be fully functional, and portable, and useful. +If you do not know PHP and Joomla's API you should not expect to built complex components with JCB. [00:04:44](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h04m44s) If you do the correct doors will open and the correct relationships can be set up to have those conventions dynamically built for you by JCB. If you are very good at PHP programming and know the Joomla API, you can simply go into the Compiler, and start reading the code. The Compilers code files are alphabetically ordered. [00:05:20](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m20s) The first one is 'a_get.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 amazing features. -### Two Concepts - Patience and Perseverance +### Necessary to Start with the Basics + +[00:05:50](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h05m50s) + +It is necessary to start with the basics. That is to build a Hello World Tutorial, in order to be able to combine the different concepts that is required for a component for it to be fully functional, and portable, and useful. + +### Patience and Perseverance [00:06:23](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m23s) -There are two concepts which I want to mention before we start. One of it is patience, the other one is perseverance. I know within any programming career these are invaluable aspects which if you have them will make the whole difference whether you are only a normal programmer or an extremely good programmer. [00:06:49](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m49s) You see because those of us who have stuck around and have been going at it, we have realized that many might consider us being genius. It's only because it's disguised by perseverance. We continually try and try and try, until we resolve or succeed. This is what has made JCB be possible. And this is also what would make you successful [00:07:17](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m17s) in using JCB. It is not a component which I can claim has no internal conflicts or has no inconsistencies. But it is most certainly a component with which I am myself have developed countless mini programs components itself from it which I am maintaining. I am planning to [00:07:42](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m42s) start pushing some of these components into the community. It's just that I have not seen the need for doing so yet, for the initial development were mostly for clients who has directly approached me. +There are two principals to mention before we start. One is patience, the other is perseverance. Within any programming career these are invaluable principals. [00:06:49](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h06m49s) This is what has made JCB possible and this is also what would make you successful in using JCB.[00:07:17](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h07m17s) It is not a component which is claimed to have no internal conflicts or inconsistencies but it is most certainly a component with which I have developed countless mini program components which I am maintaining. ### Basic Steps To Understand How To Build * Self Explanatory * Need Joomla Website * Offline or on a Server -[00:08:01](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m01s) +[00:08:01](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m01s)<<<<< Having said all this, let me take you through the basic steps building one piece one another. So that you would fully understand how to build a Component in JCB. It's self explanatory. You would need a Joomla website. This Joomla website would preferably be on a developing environment, which is either offline [00:08:30](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h08m30s) or on a server which isn't necessarily used in production. This is not because JCB itself is unsafe. It is simply just more convenient. If you have it offline, you can open the code in your IDE. And since JCB has the feature to extract this customized code out of your component, and put it back into your component on compilation, [00:09:00](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&t=00h09m00s) a feature which will not be discussed during this tutorial but does exist.