- New Bundle: IntegratedExportBundle (empty repository is available)
- New menu item Content - Export (http://integratedfordevelopers.com/content/documentation/article/add-menu-items-to-integrated)
- Export page with list of content types and "Export" button. In a later release also Search selections will be added to this page.
- After click Export a new page will appear to choose the Export format: xml, csv or xlsx
- After choose a new page will apear and tell to user to wait for the download. The export need to be started here
- Use https://github.com/PHPOffice/PHPExcel for xlsx writing. Use cache options (http://stackoverflow.com/questions/13635633/phpexel-create-xls-overload-ram) to set a cache that uses 50% of the available memory (also check PHP memory limit)
- For XML use a simple format that includes all available fields
- All fields for the content type (as selected on /admin/contenttype/<contenttype>/edit need to be included)
- The export need to work for all content types, also custom made one's. Use some intelligent way (maybe reflection) to get the data.
- Relations will be added in a later release
- Build the real export as a service, the controllers need to be tiny
- During export check the PHP max execution time. When it's near that time add a line with "PARTIAL EXPORT" in each column. Add a Flash message (http://bootstrap.braincrafted.com/components.html#flash) with "The export is a partial one. It was unable to finish because of the execution time."