buzzingpixel/filecontent

There is no license information available for the latest version (1.0.0) of this package.

Add flat file content capability to your CraftCMS site

1.0.0 2017-10-25 04:21 UTC

This package is auto-updated.

Last update: 2022-07-16 14:32:59 UTC


README

Add flat file content capability to your CraftCMS site

A Craft 3 plugin that adds Twig variables for getting flat file content.

Installing

composer require buzzingpixel/filecontent

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'.

Usage

load

Example:

{% 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.

If my/custom/path.md exists, the contents of that file will be parsed and returned.

If my/custom/path.json exists, the contents of that file will be parsed and returned.

If my/custom/path.php exists, the contents of that file will be parsed and returned.

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'.

JSON files are parsed as expected.

PHP files must return an array.

loadListings

Example:

{% 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.

.json and .php are also accepted.

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.

loadListingBySlug

Example:

{% set blogPost = craft.filecontent.loadListingBySlug('my/custom/path', 'my-slug') %}

Get's a file post content by slug.

readFileContents

Example:

{% 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.

License

Copyright 2017 BuzzingPixel, LLC

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.

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.