<?php
class TeamManagementAdmin extends LeftAndMain implements PermissionProvider {
static $tree_class = "Team";
static $url_segment = 'teammanagement';
static $url_rule = '/$Action/$ID';
static $menu_title = 'Teammangement';
static $allowed_actions = array(
'addteam',
'shownews',
'showplayers',
'showteam',
'saveTeam',
'save',
'test'
);
public function init() {
parent::init();
Requirements::javascript(THIRDPARTY_DIR . "/hover.js");
Requirements::javascript(THIRDPARTY_DIR . "/scriptaculous/controls.js");
Requirements::javascript("cms/javascript/LeftAndMain_left.js");
Requirements::javascript("cms/javascript/LeftAndMain_right.js");
Requirements::javascript("teammanagement/javascript/TeamManagementAdmin_left.js");
Requirements::javascript("teammanagement/javascript/TeamManagementAdmin_right.js");
Requirements::css("teammanagement/css/teammanagementadmin.css");
LeftAndMain::setApplicationName("Team Management", "Team Management");
}
public function Link($action = null) {
return "admin/teammanagement/$action";
}
public function save($data, $form) {
FormResponse::status_message(_t('TeamManagementAdmin.SAVEDTEAM','Saved Team xXx'), 'good');
return FormRepsonse::respond();
}
public function addteam($params) {
return $this->newTeam();
}
public function showteam($params) {
if($params instanceof HTTPRequest) {
$params = $params->allParams();
}
return $this->TeamEditForm($params['ID']);
}
public function TeamEditForm($id = -1) {
if($id == -1) $id = $_REQUEST['ID'];
$team = DataObject::get_by_id("Team", $id);
$ret = "";
$fields = $team->getCMSFields();
if(Member::currentUser()->isAdmin()) {
$fields->addFieldToTab("Root.Mannschaftsmanager", new HeaderField("ManagerHeader", "Manager dieser Mannschaft"));
$fields->addFieldToTab("Root.Mannschaftsmanager",
new CheckboxSetField("Editor", "Mannschaftsmanager auswählen: ", DataObject::get("Member"), $team->Editor())
);
}
$actions = new FieldSet();
$actions->push(new FormAction('save', _t("TeamManagementAdmin.SAVE", "Speichern")));
$actions->push(new FormAction("test", "lala"));
$form = new Form($this, "TeamEditForm", $fields, $actions);
$form->loadDataFrom($team);
$form->setHTMLID("Form_EditForm");
$ret .= $form->formHtmlContent();
return $ret;
}
public function EditForm() {
if(isset($_REQUEST['type']) && $_REQUEST['type'] == 'team' && isset($_REQUEST['ID'])) {
$form = $this->TeamEditForm();
}
if(isset($form)) {
$form->disableDefaultAction();
return $form;
}
return null;
}
public function showplayers($params) {
if($params instanceof HTTPRequest) {
$params = $params->allParams();
}
$team = DataObject::get_by_id("Team", $params['ID']);
$ret = "";
foreach($team->Players() as $ID => $player) {
$ret .= "<b>".$player->Name."</b><br />";
}
return $ret;
}
public function shownews($params) {
return "News ist noch nicht implementiert.";
}
public function newteam() {
$team = new Team();
$team->Name = _t('TeamManagementAdmin.NEWTEAM','Neue Mannschaft');
$team->write();
return $team->ID;
}
function providePermissions() {
return array(
'EDIT_PERMISSIONS' => _t('TeamManagementAdmin.EDITPERMISSIONS', 'Edit teams. XXX'),
);
}
public function AddingRights() {
if(Member::currentUser()->isAdmin()) return true;
return false;
}
public function Teams() {
$member = Member::currentUser();
if($member->isAdmin()) {
return DataObject::get("Team");
}
else {
return DataObject::get("Team", "Team_Editor.MemberID = ".$member->ID, "", "JOIN Team_Editor ON Team.ID = Team_Editor.TeamID");
}
return null;
}
}