-
-
Notifications
You must be signed in to change notification settings - Fork 178
015 Adding Templates and Layouts to a Site View
00:00:00 (Click on these time links to see Youtube video)
Now that we added a dynamic get to a site view and looked at how to access the data sets through the examples snippets, we need to understand how layouts and templates link into site views; to know what the site view in the code, the templates, and the layout in the code itself is and how Joomla do load these things.
If we go to our example, (component, sermon distributor, view, preacher, and template or Tmpl) there are default.php, default_preacherbox.php, default_preacherpanel.php, and default_preachersmall.php files. 00:00:58 There is a whole list of them. They are all templates. They are called templates because of the method by which they are included in the default file.
The Default file is the main file. We call this the site view. (See video.) Everything in this file is built in the side view. Open the site view. This code here is in the default view. This is added to that default file. (See video.) It says default view.
It adds to templates with this snippet, 'thisloadtemplatepreacherpanel'. These snippets are at the bottom of the site view. If you scroll down, you will see the layout snippets and after them the template snippets. 00:02:19 Scroll down to the one you created by looking at the names. It shows 'preacher', 'grid', 'list', 'table', 'panel', 'box', 'small'. These are the snippets needed. 00:02:37 You might change this, perhaps stay in the PHP instead of going out into the HTML. What happens if you look at the code. From time to time go out of the PHP '?>', into the PHP with that tag '<?php', out of the PHP with that '>?', go in again '<?', go out again '>?', and then stay out. 00:03:04 Here is pure HTML; this part is 'uikit class' and the implementation. (See video.) Go back into PHP, out again, and HTML is found here. That is how PHP can be used in the view. 00:03:20
Look at this in the code. (See video.) Open the 'default.php' file, and see what is placed there. End with PHP'>?' and go into PHP'<?' again. 00:03:45 Here is the same text as in the editor. It gets placed here and through these snippets includes the template. A global setting is used. Check how the global setting is set in the component's global settings. Check the type of display that had been set. On that basis, either this or that template is shown, etc. (See video.) 00:04:22 In the template view you have access to the same global fields, class fields, and public class methods that you have in the default view. In the default view, we have access to 'this preacher'; the same applies to templates. When templates are opened, 'this params', and 'this preacher' website is used. The same global class fields or values are used depending on how it is called. 00:05:07 Go back to the interface. Component Builder adds this template to this site view because of this code snippet. (See video.) Place the code snippet in there, and look in the template list for a template, 'loadTemplatepreacherpanel'. It will add it to this site view. (See video.) 00:05:35 By doing this, templates can be added to the site view.
Layouts work somewhat differently. Is there a layout in this site view? Mostly templates had been used. (Templates and layouts can be used in the site view.) 00:06:06 As most templates had been used, the layouts may have been used in the templates view. In case a layout must be added to the view without doing it inside a template, it doesn't matter; it's only a way of bundling the scripts in a more concise manner so that it is not so overwhelming when looking at the code but that you have it broken up. The layout structure is mostly used when you are dealing with part of the display area used across other display areas. 00:06:53 At the moment a piece of code is used in more than one view or template. 00:07:12 Template can be used in 'templates' but not inside layouts. Layouts can be used inside layouts. These are conventions set forth because of how Joomla implements the structure. These are not limitations because of Component Builder. 00:07:44 Joomla allows adding templates to the default site view but not adding templates to a layout.
Templates have access to the global values, or the class values, whereas layouts do not. It is important that this value must be passed to the layout. The reason is that if you look at these snippets, we're passing it 'this items'. But you can pass it just 'this' or a specific value. 00:08:29 If you have custom classes, you can pass it the specific value from the custom class.
When a layout is set up this area is where the dynamic get used in the layout is selected. (See video.) It won't add the dynamic get to the site view or the model. 00:08:53 It only helps to view the snippets and set up this snippet. (See video.) If the wrong code is selected in the layout, it will change the way it looks, but it can be overridden. The snippet can be copied and placed in the code where it should be used. 00:09:18
The area passing the information to the layout can be changed because the layout does not have access to it. It should be passed through the values you want to use in it. This script renders a layout. (See video.) Component Builder needs to add a layout to the components layout folder. 00:09:51 It checks for a layout with that 'name' in the layouts list. These layouts must be set up before they can be included in other views and templates. Note that the layout concept and implementation together with the template are the same in the custom admin view. It works exactly the same. 00:10:19 By adding the snippet to the default view Component Builder is able to add the layout to the component and the layout template to the site view. 00:10:50
When looking at the code it can be seen how Component Builder builds site views. In the default view 'preacherbox' be seen in both areas; the same applies to ' preacherpanel', 'preachersmall', 'table', 'grid', and 'list'. 00:11:10 This is how the code can be added in smaller portions.
- Home
- Beta Testing
- Custom Code
- PHP Settings
- Demo Component
-
Tutorials
- Hello World JCB
- Intro JCB Guide
- JCB Installation Steps
- Planning Components
- Field Type Overview
- Basic Fields Creation
- Admin View Management
- Advanced Field Usage
- Admin Component Integration
- Component Setting Customization
- Scripting Components
- Component FTP Options
- Dynamic Get Method
- Site View DynamicGet
- Site View Templates
- Template Setup Guide
- Layout Configuration Steps
- Custom Admin Management
- Adding Site Views
- Custom Admin Integration
- MySQL Demo Tweaking
- Global JCB Settings
- Custom Time Field
- User Helper Integration
- Email Helper Usage
- Message Store Email
- List View Unescape
- Export Import Customization
- Overwrite Custom Fields
- List Field Filtering
- Automatic Code Import
- Manual Code Implementation
- Component Export Import
- Custom Admin Buttons
- Translation Management
- Site View Permissions
- Component SQL Updates
- Site Edit Configuration
- JCB Backup System
- Helper Structure Integration
- JCB v2.5 Upgrade
- Tab Setup Guide
- JCB v2.6 Release
- Extended HelloWorld
- Field Rule Validation
- Community Snippets Intro
- Snippet Forking Tutorial
- Pull Request Snippets
- Library Manager Area
- Excel-based Translation
- Dynamic Router Details
- Database Auto Updates
- Subform Quick Demo
- VDM Package Import
- Dynamic File Inclusion
- File Field Upload
- Drag-n-Drop Upload
- Quick HelloWorld JCB
- Non-database Fields
- Dashboard Customization
- Menu Prefix Toggle
- Community JCB Packages
- Collaborative JCB Workflow
- JCB Package Install
- JCB JAB18 Event
- Convenient New Fields
- Component Language Strings
- Library Functionality Anticipation
- Join Field Relations
- License Template Change
- Code Reusability
- Local Dev Environment
- Extended Field Types
- Joomla Custom Fields
- Custom Field Expansion
- Site View Listing
- Run Expansion Method
- Form Site View
- Field URL Update
- Additional Helper Methods
- Field Validation Rules
- New Placeholder Feature
- Component Config Params
- Per-field Default Values