2017 © Pedro Peláez
 

library laravel-xslt

xslt template engine for laravel

image

krowinski/laravel-xslt

xslt template engine for laravel

  • Sunday, December 31, 2017
  • by krowinski
  • Repository
  • 2 Watchers
  • 6 Stars
  • 578 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

laravel-xslt

Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

XSLT template engine for laravel, (*2)

Instalation

  1. Install using composer in your laravel project
composer require krowinski/laravel-xslt
  1. Add this line to app.php at the end of 'providers' array (in file config/app.php)
Krowinski\LaravelXSLT\XSLTServiceProvider::class,
  1. Create welcome.xsl in resources/views

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common" xmlns:str="http://exslt.org/strings" xmlns:php="http://php.net/xsl" exclude-result-prefixes="exslt str php">

    <xsl:output encoding="UTF-8" method="xml" omit-xml-declaration="yes" indent="yes"
                doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
                doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" cdata-section-elements="script"/>

    <xsl:template match="/">

        <head>
            <title>Laravel</title>

            <link href="https://fonts.googleapis.com/css?family=Lato:100" rel="stylesheet" type="text/css"/>

            <style>
                html, body {
                height: 100%;
                }

                body {
                margin: 0;
                padding: 0;
                width: 100%;
                display: table;
                font-weight: 100;
                font-family: 'Lato';
                }

                .container {
                text-align: center;
                display: table-cell;
                vertical-align: middle;
                }

                .content {
                text-align: center;
                display: inline-block;
                }

                .title {
                font-size: 96px;
                }
            </style>

        </head>
        <body>
            <div class="container">
                <div class="content">
                    <div class="title">Laravel 5 XSLT engine template</div>
                </div>
            </div>
        </body>
    </xsl:template>

</xsl:stylesheet>
  1. Add data to xml using simple xml functions
/**
 * Show the application welcome screen to the user.
 *
 * @return Response
 */
public function index()
{   
    // adds to main xml /App attributte name template with value  = hello
    \View::addAttribute('name_template ', 'hello');
    // create child template to /App with value hello and add aaa and zzz atribute to template.
    \View::addChild('template', 'hello', false)->addAttribute('aaaa', 'zzz');
    // creates parent example and adds childs foo and bar to it 
    \View::addArrayToXmlByChild(['foo', 'bar'], 'example', false); 
    // add to parent App child bar and zzz
    \View::addArrayToXml(['bar', 'zzz'], false);

    return view('welcome');
}

Add xml to debugBar (https://github.com/barryvdh/laravel-debugbar)

Add to EventServiceProvider.php, (*3)

use Krowinski\LaravelXSLT\Engines\XSLTEngine;

and to protected $listen array, (*4)

XSLTEngine::EVENT_NAME => [
    'App\Listeners\XSLTDebugBar'
],

create file Listeners\XSLTDebugBar.php, (*5)

php artisan make:listener XSLTDebugBar --event XSLTEngineEvent

event content, (*6)

<?php


namespace App\Listeners;


use DebugBar\DataCollector\MessagesCollector;
use DebugBar\DebugBar;
use Illuminate\Support\Facades\App;
use Krowinski\LaravelXSLT\Events\XSLTEngineEvent;

/**
 * Class XSLTDebugBar
 * @package App\Listeners
 */
class XSLTDebugBar
{
    /**
     * @param XSLTEngineEvent $event
     */
    public function handle(XSLTEngineEvent $event)
    {
        $dom = new \DOMDocument;
        $dom->preserveWhiteSpace = false;
        $dom->loadXML($event->getExtendedSimpleXMLElement()->saveXML());
        $dom->formatOutput = true;
        $xmlString = $dom->saveXML();

        /** @var DebugBar $debugBar */
        $debugBar = App::make('debugbar');
        if (!$debugBar->hasCollector('XML')) {
            $debugBar->addCollector(new MessagesCollector('XML'));
        }
        /** @var MessagesCollector $collector */
        $collector = $debugBar->getCollector('XML');
        $collector->addMessage($xmlString, 'info', false);
    }
}

The Versions

31/12 2017

dev-master

9999999-dev

xslt template engine for laravel

  Sources   Download

MIT

The Requires

 

by Kacper Rowinski

laravel template xml view xslt xsl

31/12 2017

3.0.0

3.0.0.0

xslt template engine for laravel

  Sources   Download

MIT

The Requires

 

by Kacper Rowinski

laravel template xml view xslt xsl

31/12 2017

2.0.0

2.0.0.0

xslt template engine for laravel

  Sources   Download

MIT

The Requires

 

by Kacper Rowinski

laravel template xml view xslt xsl

27/03 2016

0.2.0

0.2.0.0

xslt template engine for laravel

  Sources   Download

MIT

The Requires

 

by Kacper Rowinski

laravel template xml view xslt xsl

27/03 2016

1.0.0

1.0.0.0

xslt template engine for laravel

  Sources   Download

MIT

The Requires

 

by Kacper Rowinski

laravel template xml view xslt xsl

16/07 2015

0.1

0.1.0.0

xslt template engine for laravel

  Sources   Download

MIT

The Requires

 

by Kacper Rowinski

laravel template view xslt