Craft File Content
Add flat file content capability to your CraftCMS site
A Craft 3 plugin that adds Twig variables for getting flat file content., (*1)
Installing
composer require buzzingpixel/filecontent
, (*2)
Configuration
There is one globally configurable option: basePath
. This tells the plugin where to look for file content. By default, it looks in CRAFT_BASE_PATH . '/fileContent'
., (*3)
Usage
load
Example:, (*4)
{% set pageContent = craft.filecontent.load('my/custom/path') %}
If my/custom/path
is a directory, the directory will be searched recursively for .md
files, .json
files, and .php
files. Each of those files parsed contents will be added to an array with the filename as the key., (*5)
If my/custom/path.md
exists, the contents of that file will be parsed and returned., (*6)
If my/custom/path.json
exists, the contents of that file will be parsed and returned., (*7)
If my/custom/path.php
exists, the contents of that file will be parsed and returned., (*8)
Markdown files are parsed through a Yaml front matter parser. The content portion of the markdown file is placed in a array key called 'content'., (*9)
JSON files are parsed as expected., (*10)
PHP files must return an array., (*11)
loadListings
Example:, (*12)
{% set blogIndex = craft.filecontent.loadListings('my/custom/path', {
offset: 10,
limit: 10,
sort: 'asc'
}) %}
All files in the specified directory are loaded and returned. The file name format is as follows: 2015-10-26--04-00-pm--my-post-slug.md
., (*13)
.json
and .php
are also accepted., (*14)
If index.md
, index.json
, and index.php
is found in the directory, it's contents will be added on the key meta
and does not factor in to count, limit, and offset., (*15)
loadListingBySlug
Example:, (*16)
{% set blogPost = craft.filecontent.loadListingBySlug('my/custom/path', 'my-slug') %}
Get's a file post content by slug., (*17)
readFileContents
Example:, (*18)
{% set criticalCss = craft.filecontent.readFileContents(cricitalCssPath)|raw %}
Reads any file's raw text content. As this is not related to the flat file content functionality, it does not look in the configured basepath, but instead defaults to $_SERVER['DOCUMENT_ROOT']
. You can optionally specify a second parameter as the base path., (*19)
License
Copyright 2017 BuzzingPixel, LLC, (*20)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0., (*21)
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License., (*22)