An open API service indexing awesome lists of open source software.

https://github.com/jaxon-php/jaxon-smarty

Jaxon view renderer for Smarty templates
https://github.com/jaxon-php/jaxon-smarty

Last synced: 2 months ago
JSON representation

Jaxon view renderer for Smarty templates

Awesome Lists containing this project

README

          

Jaxon View for Smarty
=====================

Render Smarty templates in Jaxon applications.

Installation
------------

Install this package with Composer.

```json
"require": {
"jaxon-php/jaxon-smarty": "^5.0"
}
```

Usage
-----

For each directory containing Smarty templates, add an entry to the `app.views` section in the configuration.

```php
'app' => [
'views' => [
'demo' => [
'directory' => '/path/to/demo/views',
'extension' => '.tpl',
'renderer' => 'smarty',
],
],
],
```

In the following example, the DOM element with id `content-id` is assigned the value of the `/path/to/demo/views/sub/dir/file.tpl` template.

```php
class MyClass extends \Jaxon\App\FuncComponent
{
public function action()
{
$this->response->html('content-id', $this->view()->render('demo::/sub/dir/file'));
}
}
```

Twig functions
--------------

This extension provides the following Twig 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.tpl

{jxnCss}

{jxnJs}

{jxnScript}
```

Call factories
--------------

This extension registers the following Twig functions for Jaxon [call factories](https://www.jaxon-php.org/docs/v5x/ui-features/call-factories.html) functions.

> [!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 comp=$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-smarty/issues
- Source Code: github.com/jaxon-php/jaxon-smarty

License
-------

The package is licensed under the BSD license.