https://github.com/jaxon-php/jaxon-latte
Jaxon view renderer for Latte templates
https://github.com/jaxon-php/jaxon-latte
Last synced: 9 months ago
JSON representation
Jaxon view renderer for Latte templates
- Host: GitHub
- URL: https://github.com/jaxon-php/jaxon-latte
- Owner: jaxon-php
- License: bsd-3-clause
- Created: 2017-05-07T14:11:28.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-12-14T00:14:31.000Z (over 1 year ago)
- Last Synced: 2025-04-02T07:41:27.007Z (over 1 year ago)
- Language: PHP
- Size: 20.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Jaxon View for Latte
====================
Render views with the [Latte template engine](https://latte.nette.org/) in Jaxon applications.
Installation
------------
Install this package with Composer.
```json
"require": {
"jaxon-php/jaxon-latte": "^5.0"
}
```
Usage
-----
For each directory containing Latte templates, add an entry to the `app.views` section in the configuration.
```php
'app' => [
'views' => [
'demo' => [
'directory' => '/path/to/demo/views',
'extension' => '.latte',
'renderer' => 'latte',
],
],
],
```
In the following example, the DOM element with id `content-id` is assigned the value of the `/path/to/demo/views/sub/dir/file.latte` template.
```php
class MyClass extends \Jaxon\App\FuncComponent
{
public function action()
{
$this->response->html('content-id', $this->view()->render('demo::/sub/dir/file'));
}
}
```
Template functions
------------------
This extension provides the following template functions to insert Jaxon js and css codes in the pages that need to show Jaxon related content.
```php
// /path/to/demo/views/sub/dir/file.latte
{jxnCss()}
{jxnJs()}
{jxnScript()}
```
Call factories
--------------
This extension registers the following template functions for Jaxon [call factories](https://www.jaxon-php.org/docs/v5x/ui-features/call-factories.html).
> [!NOTE]
> In the following examples, the `$rqAppTest` template variable is set to the value `rq(Demo\Ajax\App\AppTest::class)`.
The `jxnBind` function attaches a UI component to a DOM element, while the `jxnHtml` function displays a component HTML code in a view.
```php
{jxnHtml($rqAppTest)}
```
The `jxnPagination` function displays pagination links in a view.
```php
```
The `jxnOn` function binds an event on a DOM element to a Javascript call defined with a `call factory`.
```php
setColor(jq().val()))}>
Black
Red
Green
Blue
```
The `jxnClick` function is a shortcut to define a handler for the `click` event.
```php
sayHello(true))}>Click me
```
The `jxnEvent` function defines a set of events handlers on the children of a DOM element, using `jQuery` selectors.
```php
setColor(jq().val())]
['.ext-color-choice', 'change', $rqExtTest->setColor(jq().val())]
])}>
Black
Red
Green
Blue
Black
Red
Green
Blue
```
The `jxnEvent` function takes as parameter an array in which each entry is an array with a `jQuery` selector, an event and a `call factory`.
Contribute
----------
- Issue Tracker: github.com/jaxon-php/jaxon-latte/issues
- Source Code: github.com/jaxon-php/jaxon-latte
License
-------
The package is licensed under the BSD license.