Download the PHP package carawebs/sage-blade-data without Composer
On this page you can find all versions of the php package carawebs/sage-blade-data. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download carawebs/sage-blade-data
More information about carawebs/sage-blade-data
Files in carawebs/sage-blade-data
Package sage-blade-data
Short Description Data controllers for Sage 9 WordPress theme - insert data into Blade templates.
License GPL-3.0
Informations about the package sage-blade-data
Data Controllers for Sage 9 Blade Templates
Blade is the simple, yet powerful templating engine provided with Laravel.
Using Blade within Laravel is simple - but using it within a WordPress project requires some extra work to make your data available in the view.
The Roots Sage theme uses Blade, and this plugin allows you to select which resources have access to data. This may be useful if the same data needs to be presented in different views.
Usage
Run:
Theme Setup
To load, include the following at the theme level:
You could create a new file to contain this - remember to add such a file to the array_map()
function in functions.php
.
Create a directory in your theme (e.g. /Carawebs/Controllers
). This will be your controller namespace.
Note that by default the path to the controllers directory is get_template_directory() . '/Carawebs/Controllers'
. This is filtered by 'carawebs-controllers/path-to-controllers'.
Reference this in the theme composer.json
to enable autoloading. For example:
Then run:
...to regenerate Composer's autoload files.
Usage
Controller classes must extend Carawebs\SageBladeData\Controller
.
Controller classes must contain at least two methods:
targetTemplates()
returns an array of templates that should receive the datadataToReturn()
retuyrn an array of data that will be made available in the specified templates
Here's an example:
The parent class optionally receives an object that controls post metadata, represented by $this->postMeta
. You can ignore this if you like and build your own data-fetchers, but this is a good way of separating concerns.
Accessing Data in Blade Templates
Because multiple controllers can add data to a single blade view, data variables are prefixed by the class name and camel cased.
For example, if you define:
https://laravel.com/docs/7.x/blade...you would access the defined variable in blade as $aboutIntro
.