/*
* Copyright 2003 Mark O'Sullivan
* This file is part of Vanilla.
* Vanilla is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
* Vanilla is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
* You should have received a copy of the GNU General Public License along with Vanilla; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* The latest source code for Vanilla is available at www.lussumo.com
* Contact Mark O'Sullivan at mark [at] lussumo [dot] com
*
* Description: Display and manipulate discussions
*/
include("appg/settings.php");
$Configuration['SELF_URL'] = 'index.php';
include("appg/init_vanilla.php");
// 1. DEFINE VARIABLES AND PROPERTIES SPECIFIC TO THIS PAGE
// Ensure the user is allowed to view this page
$Context->Session->Check($Context);
// Define properties of the page controls that are specific to this page
$Head->BodyId = 'DiscussionsPage';
$Menu->CurrentTab = 'discussions';
$Panel->CssClass = 'DiscussionPanel';
$Panel->BodyCssClass = 'Discussions';
// 2. BUILD PAGE CONTROLS
$DiscussionGrid = $Context->ObjectFactory->CreateControl($Context, 'DiscussionGrid');
// Add an update reminder if necessary
if ($Configuration['UPDATE_REMINDER'] != '') {
if ($Context->Session->User && $Context->Session->User->Permission('PERMISSION_CHECK_FOR_UPDATES')) {
$ShowUpdateMessage = 0;
$LastUpdate = $Configuration['LAST_UPDATE'];
if ($LastUpdate == '') $LastUpdate = time();
$Difference = time() - $LastUpdate;
$Days = floor($Difference/60/60/24);
if ($Configuration['LAST_UPDATE'] == '') {
$ShowUpdateMessage = 1;
} elseif ($Configuration['UPDATE_REMINDER'] == 'Weekly') {
if ($Days > 7) $ShowUpdateMessage = 1;
} elseif ($Configuration['UPDATE_REMINDER'] == 'Monthly') {
if ($Days > 30) $ShowUpdateMessage = 1;
} elseif ($Configuration['UPDATE_REMINDER'] == 'Quarterly') {
if ($Days > 90) $ShowUpdateMessage = 1;
}
if ($ShowUpdateMessage) {
$Message = '';
if ($Days == 0) {
$Message = $Context->GetDefinition('NeverCheckedForUpdates');
} else {
$Message = str_replace('//1', $Days, $Context->GetDefinition('XDaysSinceUpdateCheck'));
}
$NoticeCollector->AddNotice($Message.' '.$Context->GetDefinition('CheckForUpdatesNow').'');
}
}
}
// Remind them to get addons if this is a new install
if ($Configuration['ADDON_NOTICE']) {
if ($Context->Session->User && $Context->Session->User->Permission('PERMISSION_MANAGE_EXTENSIONS')) {
$HideNotice = ForceIncomingBool('TurnOffAddonNotice', 0);
if ($HideNotice) {
$SettingsFile = $Configuration['APPLICATION_PATH'].'conf/settings.php';
$SettingsManager = $Context->ObjectFactory->NewContextObject($Context, 'ConfigurationManager');
$SettingsManager->DefineSetting("ADDON_NOTICE", '0', 1);
$SettingsManager->SaveSettingsToFile($SettingsFile);
} else {
$NoticeCollector->AddNotice(''.$Context->GetDefinition('RemoveThisNotice').'
'.$Context->GetDefinition('WelcomeToVanillaGetSomeAddons'));
}
}
}
// 3. ADD CONTROLS TO THE PAGE
$Page->AddRenderControl($Head, $Configuration['CONTROL_POSITION_HEAD']);
$Page->AddRenderControl($Menu, $Configuration['CONTROL_POSITION_MENU']);
$Page->AddRenderControl($Panel, $Configuration['CONTROL_POSITION_PANEL']);
$Page->AddRenderControl($NoticeCollector, $Configuration['CONTROL_POSITION_NOTICES']);
$Page->AddRenderControl($DiscussionGrid, $Configuration['CONTROL_POSITION_BODY_ITEM']);
$Page->AddRenderControl($Foot, $Configuration['CONTROL_POSITION_FOOT']);
$Page->AddRenderControl($PageEnd, $Configuration['CONTROL_POSITION_PAGE_END']);
// 4. FIRE PAGE EVENTS
$Page->FireEvents();