e_frontpage.php
You should know already what is Frontpage and how to use it.
Create file e_frontpage.php in your plugin folder (see _blank plugin for example).
Bellow is real example from content plugin:
class name = plugin name "_frontpage";
Note: with new plugin you should use new way how to load language strings.
if (!defined('e107_INIT')) { exit; } include_lan(e_PLUGIN.'content/languages/'.e_LANGUAGE.'/lan_content_frontpage.php'); class content_frontpage // include plugin-folder in the name.<br /> { // simple function config() { $frontPage = array(); $frontPage['title'] = CONT_FP_3; $frontPage['page'] = 'e107_plugins/content/content.php'; return $frontPage; } }
This is easy and you can find examples in other plugins too. Just look for e_frontpage.php file.
But the content plugin separates content to sections and you maybe want to have the possibility to set different sections for different userclasses.
class content_frontpage { function config() { $frontPage = array(); $frontPage['title'] = CONT_FP_3; $frontPage['page'][0] = array( 'page' => 'e107_plugins/content/content.php', 'title' => CONT_FP_2 ); if ($maincat = e107::getDb()->retrieve("pcontent", "content_id, content_heading", " WHERE content_parent='0'", true)) { $i = 1; foreach($maincat as $row) { $row['url_content_id'] = $row['content_id']; $frontPage['page'][$i] = array( 'page' => $PLUGINS_DIRECTORY . 'content/content.php?recent.' . $row['content_id'], 'title' => CONT_FP_1 . ': ' . $row['content_heading'] ); $i; if ($subpages = e107::getDb()->retrieve("pcontent", "content_id, content_heading", " WHERE LEFT(content_parent,1) = '" . $row['content_id'] . "' ORDER BY content_heading", TRUE)) { foreach($subpages as $row2) { $frontPage['page'][$i] = array(<br /> 'page' => 'e107_plugins/content/content.php?content.' . $row2['content_id'], 'title' => ' - ' . $row['content_heading'] . ' - ' . $row2['content_heading'] ); $i; } } } } return $frontPage; } }
Known issues with Frontpage:
Fatal error: require_once(): Failed opening required '../../class2.php'
This:
require_once('../../class2.php');
Need to be changed to:
if(!defined('e107_INIT')) { require_once('../../class2.php'); }
Comparing with version 1.0.4:
- old ways with arrays are not supported, you need to rewrite this file to new standards
- there is a change in behavior in version 2 - one plugin can have just one line in Frontpage. This is not possible now (or yet):
Notes:
* For layout/look is FRONTPAGE layout applied (if it's used), not defined layout for original URL.
* you can set different frontpage for any userclass,
* you can set after login page this way too different for userclasses
* you can extend frontpage of core plugins this way too - just create your own plugin and create options with core tables (for example download categories)