Description
An HTML Block is a PHP Object that extends the BaseHTMLBlock php class .
This class gives the structure to create an HTML block. A Block is a subsection of a HTML page. It could be a form, a table or a list.
It is not ment to be a basic HTML tag but a section of a page big enough to be visible from the user as a unity of content.
Any HTML structure can be formalised as a block.
A basic block example is visible in the ud-demo repository.
use Fabiom\UglyDuckling\Common\Blocks\BaseHTMLBlock ;
class HTMLBlockExample extends BaseHTMLBlock {
const HTML_BLOCK_NAME = 'basehtmlblockexample' ;
function getHTML (): string {
return '<p>Paragraph example</p>' ;
}
}
In order to define an HTML Block you need tow things:
define a HTML_BLOCK_NAME constat that is unique for this type of block in the codebase;
define a getHTML method that returns the HTML code eventually loaded with content coming from a database.
We know that in modern web design a HTML block is not enough by itself. We need to add css rules or javascript files.
Overriding the methods:
addToHead: the code added here will be put in the HEAD section of the page.
addToFoot: the code added here will be put in the BODY section of the page just before to close the BODY tag.
/**
* Overwrite this method with the content you want to put in your html header
* It is called for every instance of a class.
* It can be useful if you need to load a css or a javascript file for this block
* to work properly.
*/
function addToHead (): string {
return '' ;
}
/**
* Overwrite this method with the content you want to put at the very bottom of your page
* It can be useful if you need to load a javascript file for this block
* It is called for every instance of a class.
*/
function addToFoot (): string {
return '' ;
}
An example could be:
function addToHead (): string {
return '<link rel="stylesheet" href="mystyle.css">' ;
}
function addToFoot (): string {
return '<script>// some javascript code here</script>' ;
}
And if you want to see a complete example:
use Fabiom\UglyDuckling\Common\Blocks\BaseHTMLBlock ;
class HTMLBlockExample extends BaseHTMLBlock {
const HTML_BLOCK_NAME = 'basehtmlblockexample' ;
function getHTML (): string {
return '<p>Paragraph example</p>' ;
}
function addToHead (): string {
return '<link rel="stylesheet" href="mystyle.css">' ;
}
function addToFoot (): string {
return '<script>// some javascript code here</script>' ;
}
}