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/SUPPORTED_FORMATS.md).
- 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/README.md)
- Please check it before contacting support ;-)
- Contains manual for users as well as some information for developers
## About
- Authors:
- [Viktor Jelínek](mailto:vikijel@gmail.com)
- [Rudolf Baláš](mailto:support@easyjoomla.org)
- [EasyJoomla.org](http://www.easyjoomla.org)
- License: http://opensource.org/licenses/GPL-3.0 GPL-3.0
- Copyright: © 2015 EasyJoomla.org
# [User manual](README.md) - 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](README.md) - Compatibility
- **Joomla:** 2.5 ~ 3.x
- **Virtuemart:** 2.6.14 ~ 3.0.6.3
- 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](README.md) - 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](ELEMENTS.md) - 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](ELEMENT_GENERAL.md)
- [Basic](ELEMENT_BASIC.md)
- [Advanced](ELEMENT_ADVANCED.md)
- [Mapping](ELEMENT_MAPPING.md)
- [Type specific](ELEMENT_SPECIFIC.md)
- [Restriction](ELEMENT_RESTRICTION.md)
# [User manual](README.md) - Elements
- Shows list of elements
- Used to define set of elements for feed items
- You should use only [element types](ELEMENT_TYPES.md) from folder same as [server type](SERVER_TYPES.md) of assigned [server](SERVER.md)
- Elements in "common" folder should be universal and can be used for all server types
- [Add/Edit Element](ELEMENT.md)
![Easy Feeder - Elements](assets/elements.png)
# [Element](ELEMENT.md) - Advanced settings
![Easy Feeder - Element](assets/element_advanced.png)
# [Element](ELEMENT.md) - Basic settings
![Easy Feeder - Element](assets/element_basic.png)
# [Developer manual](README.md) - 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](ELEMENT.md) - 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](ELEMENT.md) - Mapping settings
You can assign some mapping from [list of mappings](MAPPINGS.md) to make the element replace local values to mapped external values.
![Easy Feeder - Element](assets/element_mapping.png)
# [Element](ELEMENT.md) - Restriction settings
![Easy Feeder - Element](assets/element_restriction.png)
# [Element](ELEMENT.md) - Type specific settings
![Easy Feeder - Element](assets/element_specific.png)
# [User manual](README.md) - Element types
- Shows recognized [Element](ELEMENTS.md) types with php file & xml configuration file location
- Element settings are shown in element edit form in [Type specific](ELEMENT_SPECIFIC.md) tab
- This is useful for developing new [Element classes](ELEMENT_CLASS.md) and there may be some features in the future.
![Easy Feeder - Element types](assets/element_types.png)
# [Enumerations](ENUMERATIONS.md) - Enumeration
![Easy Feeder - Enumeration](assets/enumeration.png)
# [User manual](README.md) - Enumerations
- Shows list of enumerations
- Used to define list of possible values for mappings
- [Add/Edit Enumeration](ENUMERATION.md)
![Easy Feeder - Enumerations](assets/enumerations.png)
# [Mappings](MAPPINGS.md) - Mapping
![Easy Feeder - Mapping](assets/mapping.png)
# [User manual](README.md) - 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](MAPPING.md)
![Easy Feeder - Mappings](assets/mappings.png)
# [User manual](README.md) - 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](README.md) - Quick start
1. Install latest version of Easy Feeder component
- Easy Feeder can be purchased at [EasyJoomla.org](http://www.easyjoomla.org)
2. Click "Install sample data" button shown after installation
- If you missed it, go see [Control Panel](CPANEL.md)
3. Choose predefined server closest to your needs
- Play with [Server](SERVERS.md) settings to customize feed properties such as caching etc.
- Play with the set of server's [Elements](ELEMENTS.md) 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](QUICK_START.md)
- [Supported output formats](SUPPORTED_FORMATS.md)
- [Compatibility](COMPATIBILITY.md)
## User manual
How to use configure and use Easy Feeder:
- [Control panel](CPANEL.md)
- [Servers](SERVERS.md)
- [Add/Edit Server](SERVER.md)
- [Elements](ELEMENTS.md)
- [Add/Edit Element](ELEMENT.md)
- [Mappings](MAPPINGS.md)
- [Add/Edit Mapping](MAPPING.md)
- [Enumerations](ENUMERATIONS.md)
- [Add/Edit Enumeration](ENUMERATION.md)
- [Access logs](ACCESS_LOGS.md)
- [Server types](SERVER_TYPES.md)
- [Element types](ELEMENT_TYPES.md)
- [Renderer types](RENDERER_TYPES.md)
- [Options](OPTIONS.md)
## 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](SERVER_CLASS.md)
- [Element classes](ELEMENT_CLASS.md)
- [Renderer classes](RENDERER_CLASS.md)
# [Developer manual](README.md) - 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
- *view.xyz.php* 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](README.md) - 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](SERVER_XML.md) (there is a tab for each renderer type having a config file)
- This is useful for developing new [Renderer classes](RENDERER_CLASS.md) and there may be some features in the future.
![Easy Feeder - Renderer types](assets/renderer_types.png)
# [Servers](SERVERS.md) - Add/Edit Server
Server defines source of the feed data and global settings of the feed.
[Server type](SERVER_TYPES.md) dictates [Element types group](ELEMENT_TYPES.md) usable with the server
## Server properties by section:
- [General](SERVER_GENERAL.md)
- [Output](SERVER_OUTPUT.md)
- [System](SERVER_SYSTEM.md)
- [Type specific](SERVER_SPECIFIC.md)
- [XML/RSS/Atom](SERVER_XML.md)
- [CSV](SERVER_CSV.md)
- [JSON](SERVER_JSON.md)
- [HTML](SERVER_HTML.md)
# [User manual](README.md) - Servers
- Shows list of servers
- Used to define your feeds
- [Add/Edit Server](SERVER.md)
![Easy Feeder - Servers](assets/servers.png)
# [Developer manual](README.md) - 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](SERVER.md) - CSV settings
![Easy Feeder - Server csv](assets/server_csv.png)
# [Server](SERVER.md) - 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](SERVER.md) - HTML settings
![Easy Feeder - Server html](assets/server_html.png)
# [Server](SERVER.md) - JSON settings
![Easy Feeder - Server json](assets/server_json.png)
# [Server](SERVER.md) - Output settings
![Easy Feeder - Server output](assets/server_output.png)
# [Server](SERVER.md) - Type specific settings
![Easy Feeder - Server type specific](assets/server_specific.png)
# [Server](SERVER.md) - System settings
![Easy Feeder - Server system](assets/server_system.png)
# [User manual](README.md) - Server types
- Shows recognized Server types with php file & xml configuration file location
- Server settings are shown in server edit form in [Type specific](SERVER_SPECIFIC.md) tab
- This is useful for developing new [Server classes](SERVER_CLASS.md) and there may be some features in the future.
![Easy Feeder - Server types](assets/server_types.png)
# [Server](SERVER.md) - XML/RSS/Atom settings
![Easy Feeder - Server xml](assets/server_xml.png)
# [Documentation](README.md) - Supported output formats
This is list of supported formats and it is mostly determined by present [renderer types](RENDERER_TYPES.md).
*(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