Commit d35c6d1f authored by Viktor Jelínek's avatar Viktor Jelínek

Begin creating documentation

parent 386c52a7
# com_easyfeeder
Easy Feeder component
# Easy Feeder
Generates various feeds/exports, primarily XML feeds for search engines.
## Introduction
Easy Feeder is component for Joomla CMS and its purpose is to feed or export data.
For example Virtuemart products, Content articles and basically anything in different [formats](docs/
- Can be used also for exporting data (except feeding them)
- Can be used also for responding to ajax calls to fetch some data.
- Able to feed / export any column from any table in database.
- Every created server is theoretically able to generate all output formats.
- Export/Import of feed configurations and sample data with predefined examples.
- Can be extended for specific data sources and output formats by new server/element/renderer classes with few lines of coding.
## [Documentation](docs/
- Please check it before contacting support ;-)
- Contains manual for users as well as some information for developers
## About
- Authors:
- [Viktor Jelínek](
- [Rudolf Baláš](
- [](
- License: GPL-3.0
- Copyright: © 2015
# [User manual]( - Access logs
- Shows logs and performance statistics of recorded feed views
![Easy Feeder - Access logs](assets/logs.png)
![Easy Feeder - Access logs](assets/performance.png)
\ No newline at end of file
# [Documentation]( - Compatibility
- **Joomla:** 2.5 ~ 3.x
- **Virtuemart:** 2.6.14 ~
- Partial compatibility with older Virtuemart 2.x ~ 2.6
- Old versions should be more or less working, but does not support things like product_gtin etc. (so sample feeds may not work until some elements are unpublished)
# [User manual]( - Control panel
- Overview of the component's administration
![Control panel](assets/cpanel.png)
## Database statistics
- Shows how many rows are held in component's database tables (ids count)
![Control panel - Database statistics](assets/cpanel_database.png)
## Sample data
- Clicking the **Install sample data** button will install predefined set of servers with configured elements
- Sample data can be installed multiple times, they will get new unique aliases (same applies to servers import feature)
- Installation of sample data can be also done by button(link) shown right after installing Easy Feeder
![Control panel - Sample data](assets/cpanel_sampledata.png)
## About
- Information about Easy Feeder component
- System information about:
- Various limits (you can check if memory limit setting has effect etc.)
- Versions of component, joomla 3 detecion and Virtuemart version
- List of authors and contributors
![Control panel - About](assets/cpanel_about.png)
# [Elements]( - Element
Element represents one property of feed item, basically a value from database column placed into
- xml elements
- csv columns
- json object properties
- html table columns
## Element properties by section:
- [General](
- [Basic](
- [Advanced](
- [Mapping](
- [Type specific](
- [Restriction](
# [User manual]( - Elements
- Shows list of elements
- Used to define set of elements for feed items
- You should use only [element types]( from folder same as [server type]( of assigned [server](
- Elements in "common" folder should be universal and can be used for all server types
- [Add/Edit Element](
![Easy Feeder - Elements](assets/elements.png)
# [Element]( - Advanced settings
![Easy Feeder - Element](assets/element_advanced.png)
# [Element]( - Basic settings
![Easy Feeder - Element](assets/element_basic.png)
# [Developer manual]( - Element type class
- Almost everything can be inherited from generic element helper class
- Specific methods can be overridden to extend default element behavior which is to select column based on element_type and then feed raw db value
## Diagram of element type classes extending EasyFeederElement abstract class:
![Easy Feeder - Element classes diagram](assets/diagram_element_types.png)
# [Element]( - General settings
- **Element name**: Name of element, should not contain special or accented characters
- **Server**: Select server to which this element belongs, will be preselected if list of elements was filtered to one server
- **Element type**: select type of element which represents one property of one feed item
- **After the type is chosen and element is saved, element type specific settings may appear**
![Easy Feeder - Server](assets/element.png)
# [Element]( - Mapping settings
You can assign some mapping from [list of mappings]( to make the element replace local values to mapped external values.
![Easy Feeder - Element](assets/element_mapping.png)
# [Element]( - Restriction settings
![Easy Feeder - Element](assets/element_restriction.png)
# [Element]( - Type specific settings
![Easy Feeder - Element](assets/element_specific.png)
# [User manual]( - Element types
- Shows recognized [Element]( types with php file & xml configuration file location
- Element settings are shown in element edit form in [Type specific]( tab
- This is useful for developing new [Element classes]( and there may be some features in the future.
![Easy Feeder - Element types](assets/element_types.png)
# [Enumerations]( - Enumeration
![Easy Feeder - Enumeration](assets/enumeration.png)
# [User manual]( - Enumerations
- Shows list of enumerations
- Used to define list of possible values for mappings
- [Add/Edit Enumeration](
![Easy Feeder - Enumerations](assets/enumerations.png)
# [Mappings]( - Mapping
![Easy Feeder - Mapping](assets/mapping.png)
# [User manual]( - Mappings
- Shows list of mappings
- Used to define mappings of local element values to values for external systems
- Only virtuemart/product_category is supporting mappings at this time, but all elements will support mappings in future
- [Add/Edit Mapping](
![Easy Feeder - Mappings](assets/mappings.png)
# [User manual]( - Options
- **Memory limit**: This can be used to override memory limit se in php.ini
- For huge feeds lot of memory may be required, so you can tune your limits here
- Works only if not disabled by php configuration
- Enter number of MB
- **Time limit**: This can be used to override time limit set in php.ini
- no value means do not set
- 0 means set unlimited
- Enter number of seconds
- **Use CSS**: This enables or disables loading of component's CSS files to header for both frontend and backend
- **Show footer**: This controls whether the author's footer is displayed in views as well as in feed outputs
![Easy Feeder - Configuration](assets/options.png)
Accesible via **Options** button at the top of component backend list views:
![Easy Feeder - Configuration](assets/cpanel.png)
\ No newline at end of file
# [Documentation]( - Quick start
1. Install latest version of Easy Feeder component
- Easy Feeder can be purchased at [](
2. Click "Install sample data" button shown after installation
- If you missed it, go see [Control Panel](
3. Choose predefined server closest to your needs
- Play with [Server]( settings to customize feed properties such as caching etc.
- Play with the set of server's [Elements]( to achieve desired data structure
- Open/Copy a link to server's output in desired format (xml/rss/json/csv/...)
4. You have your fist feed ready!
# Documentation
- [Quick start](
- [Supported output formats](
- [Compatibility](
## User manual
How to use configure and use Easy Feeder:
- [Control panel](
- [Servers](
- [Add/Edit Server](
- [Elements](
- [Add/Edit Element](
- [Mappings](
- [Add/Edit Mapping](
- [Enumerations](
- [Add/Edit Enumeration](
- [Access logs](
- [Server types](
- [Element types](
- [Renderer types](
- [Options](
## Developer manual
How to customize or extend Easy Feeder by adding new Server types, Element types and Renderer types.
Simply extend / override / clone:
- [Server classes](
- [Element classes](
- [Renderer classes](
# [Developer manual]( - Renderer type class
- Method `render()` has to be implemented and is responsible for "echoing" the output based on array of server items and their element_values
- ** should be added to support custom format ...such as *view.csv.php* for *format=csv*
## Diagram renderer type classes extending EasyFeederRenderer abstract class:
![Easy Feeder - Renderer classes diagram](assets/diagram_renderer_types.png)
\ No newline at end of file
# [User manual]( - Renderer types
- Shows recognized Renderer types with php file & xml configuration file location
- Renderer settings are shown in server edit form in tabs like [XML specific]( (there is a tab for each renderer type having a config file)
- This is useful for developing new [Renderer classes]( and there may be some features in the future.
![Easy Feeder - Renderer types](assets/renderer_types.png)
# [Servers]( - Add/Edit Server
Server defines source of the feed data and global settings of the feed.
[Server type]( dictates [Element types group]( usable with the server
## Server properties by section:
- [General](
- [Output](
- [System](
- [Type specific](
- [XML/RSS/Atom](
- [CSV](
- [JSON](
- [HTML](
# [User manual]( - Servers
- Shows list of servers
- Used to define your feeds
- [Add/Edit Server](
![Easy Feeder - Servers](assets/servers.png)
# [Developer manual]( - Server type class
- Almost everything can be inherited from generic server helper class
- Main server properties to look at:
- **$table_name**: Must be set, determines from which DB table to select data
- **$table_alias**: Should be set, determines alias for table name above
- $primary_key: Primary key db column, defaults to id
- Usually only ``__construct()`` is extended if some extra initialization is required, such as for Virtuemart $vm_config is initialized etc.
## Diagram of server type classes extending EasyFeederServer abstract class:
![Easy Feeder - Server classes diagram](assets/diagram_server_types.png)
# [Server]( - CSV settings
![Easy Feeder - Server csv](assets/server_csv.png)
# [Server]( - General settings
- **Title**: Name of your feed, for some feeds like rss is used as feed title
- **Alias**: Unique alias for generating SEF urls and output file names
- **Server type**: select type of server which represents type of data source for your feed
- **After the type is chosen and server is saved, server type specific settings may appear**
![Easy Feeder - Server](assets/server.png)
# [Server]( - HTML settings
![Easy Feeder - Server html](assets/server_html.png)
# [Server]( - JSON settings
![Easy Feeder - Server json](assets/server_json.png)
# [Server]( - Output settings
![Easy Feeder - Server output](assets/server_output.png)
# [Server]( - Type specific settings
![Easy Feeder - Server type specific](assets/server_specific.png)
# [Server]( - System settings
![Easy Feeder - Server system](assets/server_system.png)
# [User manual]( - Server types
- Shows recognized Server types with php file & xml configuration file location
- Server settings are shown in server edit form in [Type specific]( tab
- This is useful for developing new [Server classes]( and there may be some features in the future.
![Easy Feeder - Server types](assets/server_types.png)
# [Server]( - XML/RSS/Atom settings
![Easy Feeder - Server xml](assets/server_xml.png)
# [Documentation]( - Supported output formats
This is list of supported formats and it is mostly determined by present [renderer types](
*(Some formats share one renderer type such as XML does)*
- **XML**: Main format used for most of the "feeds", generates XML documents
- **RSS**: For rss readers and google product feed etc.
- **Atom**: For atom readers
- ***Debug***: For debugging purposes,
- Send your output of this format in plain text file along your support requests
- Prints whole server object, where sql query, elements, items and prepared data can be inspected
- Forces cache refresh if cache enabled and `force_refresh=0` parameter not supplied
- Useful for debugging custom queries (For example when using db_table server type and column+joined_table_column settings)
- **CSV**: For "exports", generates Comma Separated Values documents
- **JSON**: For "ajax" calls to retrieve data by javascript
- **HTML**: For displaying mined data on frontend
- Use `tmpl=component` request parameter for showing in modals or for some ajax purposes
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment