diff options
Diffstat (limited to 'docs/08_Format_API')
-rw-r--r-- | docs/08_Format_API/01_How_to_create_a_new_format.md | 24 | ||||
-rw-r--r-- | docs/08_Format_API/02_FormatInterface.md | 146 | ||||
-rw-r--r-- | docs/08_Format_API/03_FormatAbstract.md | 40 | ||||
-rw-r--r-- | docs/08_Format_API/index.md | 3 |
4 files changed, 213 insertions, 0 deletions
diff --git a/docs/08_Format_API/01_How_to_create_a_new_format.md b/docs/08_Format_API/01_How_to_create_a_new_format.md new file mode 100644 index 00000000..f031e65b --- /dev/null +++ b/docs/08_Format_API/01_How_to_create_a_new_format.md @@ -0,0 +1,24 @@ +Create a new file in the `formats/` folder (see [Folder structure](../04_For_Developers/03_Folder_structure.md)). + +The file must be named according to following specification: + +* It starts with the type +* The file name must end with 'Format' +* The file type must be PHP, written in small letters (seriously!) ".php" + +**Examples:** + +Type | Filename +-----|--------- +Atom | AtomFormat.php +Html | HtmlFormat.php + +The file must start with the PHP tags and end with an empty line. The closing tag `?>` is [omitted](http://php.net/basic-syntax.instruction-separation). + +Example: + +```PHP +<?PHP + // PHP code here +// This line is empty (just imagine it!) +```
\ No newline at end of file diff --git a/docs/08_Format_API/02_FormatInterface.md b/docs/08_Format_API/02_FormatInterface.md new file mode 100644 index 00000000..28ac60b3 --- /dev/null +++ b/docs/08_Format_API/02_FormatInterface.md @@ -0,0 +1,146 @@ +The `FormatInterface`interface defines functions that need to be implemented by all formats: + +* [display](#the-display-function) +* [stringify](#the-stringify-function) +* [setItems](#the-setitems-function) +* [getItems](#the-getitems-function) +* [setCharset](#the-setcharset-function) +* [getCharset](#the-getcharset-function) +* [setExtraInfos](#the-setextrainfos-function) +* [getExtraInfos](#the-getextrainfos-function) +* [getMimeType](#the-getmimetype-function) + +Find a [template](#template) at the end of this file + +# Functions + +## The `display` function + +The `display` function shows the contents to the user and must return the object instance. + +```PHP +display(): self +``` + +## The `stringify` function + +The `stringify` function returns the items received by [`setItems`](#the-setitem-function) as string. + +```PHP +stringify(): string +``` + +## The `setItems` function + +The `setItems` function receives an array of items generated by the bridge and must return the object instance. Each item represents an entry in the feed. For more information refer to the [collectData](../05_Bridge_API/02_BridgeAbstract.md#collectdata) function. + +```PHP +setItems(array $items): self +``` + +## The `getItems` function + +The `getItems` function returns the items previously set by the [`setItems`](#the-setitems-function) function. If no items where set previously this function returns an error. + +```PHP +getItems(): array +``` + +## The `setCharset` function + +The `setCharset` function receives the character set value as string and returns the object instance. + +```PHP +setCharset(string): self +``` + +## The `getCharset` function + +The `getCharset` function returns the character set value. + +```PHP +getCharset(): string +``` + +## The `setExtraInfos` function + +The `setExtraInfos` function receives an array of elements with additional information to generate format outputs and must return the object instance. + +```PHP +setExtraInfos(array $infos): self +``` + +Currently supported information are: + +Name | Description +-----|------------ +`name` | Defines the name as generated by the bridge +`uri` | Defines the URI of the feed as generated by the bridge + +## The `getExtraInfos` function + +The `getExtraInfos` function returns the information previously set via the [`setExtraInfos`](#the-setextrainfos-function) function. + +```PHP +getExtraInfos(): array +``` + +## The `getMimeType` function + +The `getMimeType` function returns the expected [MIME type](https://en.wikipedia.org/wiki/Media_type#Common_examples) of the format's output. + +```PHP +getMimeType(): string +``` + +# Template + +This is a bare minimum template for a format: + +```PHP +<?php +class MyTypeFormat implements FormatInterface { + private $items; + private $charset; + private $extraInfos; + + public function stringify(){ + // Implement your code here + return ''; // Return items as string + } + + public function display(){ + // Implement your code here + echo $this->stringify(); + return $this; + } + + public function setItems(array $items){ + $this->items = $items; + return $this; + } + + public function getItems(){ + return $this->items; + } + + public function setCharset($charset){ + $this->charset = $charset; + return $this; + } + + public function getCharset(){ + return $this->charset; + } + + public function setExtraInfos(array $infos){ + $this->extraInfos = $infos; + return $this; + } + + public function getExtraInfos(){ + return $this->extraInfos; + } +} +// Imaginary empty line! +```
\ No newline at end of file diff --git a/docs/08_Format_API/03_FormatAbstract.md b/docs/08_Format_API/03_FormatAbstract.md new file mode 100644 index 00000000..3bb91bfd --- /dev/null +++ b/docs/08_Format_API/03_FormatAbstract.md @@ -0,0 +1,40 @@ +The `FormatAbstract` class implements the [`FormatInterface`](../08_Format_API/02_FormatInterface.md) interface with basic functional behavior and adds common helper functions for new formats: + +* [setContentType](#the-setcontenttype-function) +* [callContentType](#the-callcontenttype-function) +* [sanitizeHtml](#the-sanitizehtml-function) +* [array_trim](#the-array_trim-function) + +# Functions + +## The `setContentType` function + +The `setContentType` function receives a string defining the content type for the HTML header and must return the object instance. + +```PHP +setContentType(string): self +``` + +## The `callContentType` function + +The `callContentType` function applies the content type to the header data and must return the object instance. + +```PHP +callContentType(): self +``` + +## The `sanitizeHtml` function + +The `sanitizeHtml` function receives an HTML formatted string and returns the string with disabled `<script>`, `<iframe>` and `<link>` tags. + +```PHP +sanitizeHtml(string $html): string +``` + +## The `array_trim` function + +The `array_trim` function receives an array of strings and returns the same array with all elements trimmed (like using the `trim` function on all elements) + +```PHP +array_trim(array $elements): array +``` diff --git a/docs/08_Format_API/index.md b/docs/08_Format_API/index.md new file mode 100644 index 00000000..73bb282a --- /dev/null +++ b/docs/08_Format_API/index.md @@ -0,0 +1,3 @@ +A _Format_ is an class that allows **RSS-Bridge** to turn items from a bridge into an RSS-feed format. It is developed in a PHP file located in the `formats/` folder (see [Folder structure](../04_For_Developers/03_Folder_structure.md)) and either implements the [FormatInterface](../08_Format_API/02_FormatInterface.md) interface or extends the [FormatAbstract](../08_Format_API/03_FormatAbstract.md) class. + +For more information about how to create a new _Format_, read [How to create a new Format?](./01_How_to_create_a_new_format.md)
\ No newline at end of file |