* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
-
class SitemapPlugin extends Plugin
{
const USERS_PER_MAP = 50000;
*
* @return boolean hook value; true means continue processing, false means stop.
*/
-
function onAutoload($cls)
{
$dir = dirname(__FILE__);
case 'SitemapindexAction':
case 'NoticesitemapAction':
case 'UsersitemapAction':
+ case 'SitemapadminpanelAction':
require_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
return false;
case 'SitemapAction':
*
* @return boolean hook value.
*/
-
function onEndRobotsTxt($action)
{
$url = common_local_url('sitemapindex');
*
* @return boolean hook value; true means continue processing, false means stop.
*/
-
function onRouterInitialized($m)
{
$m->connect('sitemapindex.xml',
'month' => '[01][0-9]',
'day' => '[0123][0-9]',
'index' => '[1-9][0-9]*'));
+
+ $m->connect('panel/sitemap',
+ array('action' => 'sitemapadminpanel'));
+
return true;
}
*
* @return boolean hook value.
*/
-
function onStartShowHeadElements($action)
{
$actionName = $action->trimmed('action');
*
* @return boolean hook value; true means continue processing, false means stop.
*/
-
function onCheckSchema()
{
$schema = Schema::get();
null, false),
new ColumnDef('modified', 'timestamp')));
+ $userCreated = $schema->getColumnDef('user', 'created');
+
+ if (empty($userCreated) || $userCreated->key != 'MUL') {
+ $schema->createIndex('user', 'created');
+ }
+
+ return true;
+ }
+
+ function onEndAdminPanelNav($menu) {
+ if (AdminPanelAction::canAdmin('sitemap')) {
+ // TRANS: Menu item title/tooltip
+ $menu_title = _m('Sitemap configuration');
+ // TRANS: Menu item for site administration
+ $menu->out->menuItem(common_local_url('sitemapadminpanel'), _m('MENU','Sitemap'),
+ $menu_title, $action_name == 'sitemapadminpanel', 'nav_sitemap_admin_panel');
+ }
+ return true;
+ }
+
+ /**
+ * Provide plugin version information.
+ *
+ * This data is used when showing the version page.
+ *
+ * @param array &$versions array of version data arrays; see EVENTS.txt
+ *
+ * @return boolean hook value
+ */
+ function onPluginVersion(&$versions)
+ {
+ $url = 'http://status.net/wiki/Plugin:Sitemap';
+
+ $versions[] = array('name' => 'Sitemap',
+ 'version' => STATUSNET_VERSION,
+ 'author' => 'Evan Prodromou',
+ 'homepage' => $url,
+ 'rawdescription' =>
+ // TRANS: Plugin description.
+ _m('This plugin allows creation of sitemaps for Bing, Yahoo! and Google.'));
+
return true;
}
}