function tribeDelete_getContent($playerID, $tribe, $confirm) { global $config, $db, $no_resource_flag, $params; $no_resource_flag = 1; // try to connect to login db if (!tribe_isLeader($playerID, $tribe, $db)) { page_dberror(); } // proccess form data if ($confirm) { // the only necessary field $success = tribe_deleteTribe($tribe, $db); $template = @tmpl_open('./templates/' . $config->template_paths[$params->SESSION->user['template']] . '/tribeDeleteResponse.ihtml'); if ($success) { tmpl_set($template, 'message', "Der Clan wurde aufgelöst. Alle Mitglieder sind jetzt " . "wieder Clanlos. Das Clanmenü funktioniert bei allen erst " . "nach dem nächsten einloggen wieder."); } else { tmpl_set($template, 'message', "Das löschen des Clans ist fehlgeschlagen." . "Bitte wenden Sie sich an das Support Team."); } return tmpl_parse($template); } // Show confirmation request $template = @tmpl_open("./templates/" . $config->template_paths[$params->SESSION->user['template']] . "/dialog.ihtml"); tmpl_set($template, 'message', "Möchten Sie diesen Clan unwiderruflich löschen? " . "Ihre gesamten Clandaten gehen verloren. "); tmpl_set($template, 'BUTTON/formname', 'confirm'); tmpl_set($template, 'BUTTON/text', 'Clan löschen'); tmpl_set($template, 'BUTTON/modus_name', 'modus'); tmpl_set($template, 'BUTTON/modus_value', TRIBE_DELETE); tmpl_set($template, 'BUTTON/ARGUMENT/arg_name', 'confirm'); tmpl_set($template, 'BUTTON/ARGUMENT/arg_value', 1); tmpl_iterate($template, 'BUTTON'); tmpl_set($template, 'BUTTON/formname', 'cancel'); tmpl_set($template, 'BUTTON/text', 'Abbrechen'); tmpl_set($template, 'BUTTON/modus_name', 'modus'); tmpl_set($template, 'BUTTON/modus_value', TRIBE_ADMIN); return tmpl_parse($template); }
function tribeDelete_getContent($playerID, $tribe, $confirm) { global $no_resource_flag; $no_resource_flag = 1; // try to connect to login db if (!tribe_isLeader($playerID, $tribe)) { page_dberror(); } // proccess form data if ($confirm) { // the only necessary field $success = tribe_deleteTribe($tribe); $template = tmpl_open($_SESSION['player']->getTemplatePath() . 'tribeDeleteResponse.ihtml'); if ($success) { tmpl_set($template, 'message', _('Der Stamm wurde aufgelöst. Alle Mitglieder sind jetzt wieder stammeslos. Das Stammesmenü funktioniert bei allen erst nach dem nächsten einloggen wieder.')); } else { tmpl_set($template, 'message', _('Das löschen des Stammes ist fehlgeschlagen. Bitte wenden Sie sich an das Support Team.')); } return tmpl_parse($template); } // Show confirmation request $template = tmpl_open($_SESSION['player']->getTemplatePath() . 'dialog.ihtml'); tmpl_set($template, 'message', _('Möchten Sie diesen Stamm unwiderruflich löschen? Ihre gesamten Stammesdaten gehen verloren.')); tmpl_set($template, 'BUTTON/formname', 'confirm'); tmpl_set($template, 'BUTTON/text', _('Stamm auflösen')); tmpl_set($template, 'BUTTON/modus_name', 'modus'); tmpl_set($template, 'BUTTON/modus_value', TRIBE_DELETE); tmpl_set($template, 'BUTTON/ARGUMENT/arg_name', 'confirm'); tmpl_set($template, 'BUTTON/ARGUMENT/arg_value', 1); tmpl_iterate($template, 'BUTTON'); tmpl_set($template, 'BUTTON/formname', 'cancel'); tmpl_set($template, 'BUTTON/text', _('Abbrechen')); tmpl_set($template, 'BUTTON/modus_name', 'modus'); tmpl_set($template, 'BUTTON/modus_value', TRIBE_ADMIN); return tmpl_parse($template); }
function tribeAdmin_getContent($playerID, $tag) { global $config, $params, $db, $no_resource_flag, $relationList, $governmentList, $wonderTypeList; $no_resource_flag = 1; // check, for security reasons! if (!tribe_isLeaderOrJuniorLeader($playerID, $tag, $db)) { page_dberror(); } $isLeader = tribe_isLeader($playerID, $tag, $db); $isLeader ? $leaderID = $playerID : ($leaderID = tribe_getLeaderID($tag, $db)); !$isLeader ? $juniorLeaderID = $playerID : ($juniorLeaderID = tribe_getJuniorLeaderID($tag, $db)); //get Member Data if (!($memberData = tribe_getAllMembers($tag, $db))) { page_dberror(); } // get government if (!($tribeGovernment = government_getGovernmentForTribe($tag, $db))) { page_dberror(); } $tribeGovernment['name'] = $governmentList[$tribeGovernment['governmentID']]['name']; //seems to be leader, but not in tribe if ($isLeader && !is_array($memberData[$leaderID])) { tribe_unmakeLeaderJuniorLeader($leaderID, $tag, $db); } //seems to be juniorleader, but not in tribe if (!$isLeader && !is_array($memberData[$leaderID])) { tribe_unmakeJuniorLeader($leaderID, $tag, $db); } // messages $messageText = array(-27 => _('Das Stammeswunder wurde gewirkt.'), -26 => _('Das Stammeswunder konnte nicht gewirkt werden.'), -25 => _('Ihr Kriegsanteil ist nicht hoch genug, um den Gegner zur Aufgabe zu zwingen.'), -24 => _('Nur in der Demokratie sind solche Wahlen möglich.'), -23 => _('Sie sind schon Stammesanführer.'), -22 => _('Dieser Spieler ist nicht im Stamm.'), -21 => _('Dies darf nur der Stammesanführer tun.'), -20 => _('Es ist kein gleicher Vorkriegsgegner vorhanden.'), -19 => _('Die Beziehung des anderen Stammes erlauben kein Kriegsbündniss.'), -18 => _('Unsere aktuelle Beziehung erlaubt kein Kriegsbündniss.'), -17 => _('Der Stamm hat noch nicht genug Mitglieder um Beziehungen eingehen zu dürfen'), -16 => _('Die Stammeszugehörigkeit hat sich erst vor kurzem geändert. Warten Sie, bis die Stammeszugehörigkeit geändert werden darf.'), -15 => _('Ihr Stamm befindet sich im Krieg. Sie dürfen derzeit nicht austreten.'), -14 => _('Die Beziehung wurde nicht geändert, weil der ausgewählte Beziehungstyp bereits eingestellt ist.'), -13 => _('Eure Untergebenen weigern sich, diese Beziehung gegenüber einem so großen Stamm einzugehen.'), -12 => _('Eure Untergebenen weigern sich, diese Beziehung gegenüber einem so kleinen Stamm einzugehen.'), -11 => sprintf(_('Die Moral des Gegners ist noch nicht schlecht genug. Sie muss unter %d sinken. Eine weitere Chance besteht, wenn die Mitgliederzahl des gegnerischen Stammes um 30 Prozent gesunken ist. Das Verhältnis Eurer Rankingpunkte zu denen des Gegners muss sich seit Kriegsbeginn verdoppelt haben.'), RELATION_FORCE_MORAL_THRESHOLD), -10 => _('Die zu ändernde Beziehung wurde nicht gefunden!'), -9 => _('Die Regierung konnte nicht geändert werden, weil sie erst vor kurzem geändert wurde.'), -8 => _('Die Regierung konnte aufgrund eines Fehlers nicht aktualisiert werden'), -7 => _('Zu sich selber kann man keine Beziehungen aufnehmen!'), -6 => _('Den Stamm gibt es nicht!'), -5 => _('Von der derzeitigen Beziehung kann nicht direkt auf die ausgewählte Beziehungsart gewechselt werden.'), -4 => _('Die Mindestlaufzeit läuft noch!'), -3 => _('Die Beziehung konnte aufgrund eines Fehlers nicht aktualisiert werden.'), -2 => _('Der Spieler ist ebenfalls Stammesanführer und kann nicht gekickt werden. Er kann nur freiwillig gehen.'), -1 => _('Der Spieler konnte nicht gekickt werden!'), 0 => _('Die Daten wurden erfolgreich aktualisiert.'), 1 => _('Der Spieler wurde erfolgreich gekickt.'), 2 => _('Die Daten konnten gar nicht oder zumindest nicht vollständig aktualisiert werden.'), 3 => _('Die Beziehung wurde umgestellt.'), 4 => _('Die Regierung wurde geändert.')); // proccess form data if ($params->POST->relationData && $params->POST->forceSurrender) { $messageID = relation_forceSurrender($tag, $params->POST->relationData, $db); } else { if ($params->POST->relationData && !$params->POST->forceSurrender) { $messageID = relation_processRelationUpdate($tag, $params->POST->relationData, $db); } else { if ($params->POST->data) { $messageID = tribe_processAdminUpdate($playerID, $tag, $params->POST->data, $db); } else { if ($params->POST->kick) { if (!$isLeader) { $messageID = -21; } else { $messageID = tribe_processKickMember($params->POST->playerID, $tag, $db); } } else { if ($params->POST->governmentData) { if (!$isLeader) { $messageID = -21; } else { $messageID = government_processGovernmentUpdate($tag, $params->POST->governmentData, $db); } } else { if ($params->POST->juniorLeader) { $newleadership = array(0 => $leaderID, 1 => $params->POST->juniorLeader[juniorLeaderID]); if (!$isLeader) { $messageID = -21; } elseif ($newleadership[1] && !is_array($memberData[$newleadership[1]])) { $messageID = -22; } elseif ($newleadership[1] == $newleadership[0]) { $messageID = -23; } elseif ($tribeGovernment['governmentID'] != 2) { $messageID = -24; } elseif (tribe_ChangeLeader($tag, $newleadership, $leaderID, $juniorLeaderID, $db)) { $messageID = 0; //success } else { $messageID = 2; //something went wrong } } } } } } } // get the tribe data if (!($tribeData = tribe_getTribeByTag($tag, $db))) { page_dberror(); } $tribeData['description'] = str_replace('<br />', '', $tribeData['description']); // get relations if (!($tribeRelations = relation_getRelationsForTribe($tag, $db))) { page_dberror(); } // get current wars $tribeWarTargets = relation_getWarTargetsAndFame($tag, $db); $template = tmpl_open($params->SESSION->player->getTemplatePath() . 'tribeAdmin.ihtml'); // Show a special message if (isset($messageID)) { tmpl_set($template, '/MESSAGE/message', $messageText[$messageID]); } // show the profile's data tmpl_set($template, 'modus_name', 'modus'); tmpl_set($template, 'modus_value', TRIBE_ADMIN); ////////////// user data ////////////////////// tmpl_set($template, 'DATA_GROUP/heading', _('Stammesdaten')); tmpl_set($template, 'DATA_GROUP/ENTRY_INFO/name', _('Tag')); tmpl_set($template, 'DATA_GROUP/ENTRY_INFO/value', $tribeData['tag']); tmpl_iterate($template, 'DATA_GROUP/ENTRY_INFO'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/name', _('Name')); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/dataarray', 'data'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/dataentry', 'name'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/value', $tribeData['name']); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/size', '20'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/maxlength', '90'); tmpl_iterate($template, 'DATA_GROUP/ENTRY_INPUT'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/name', _('Password')); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/dataarray', 'data'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/dataentry', 'password'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/value', $tribeData['password']); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/size', '15'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/maxlength', '15'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/name', _('Beschreibung')); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/dataarray', 'data'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/dataentry', 'description'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/value', $tribeData['description']); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/cols', '25'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/rows', '8'); ////////////// junioLeader //////////////////// if ($isLeader && $tribeGovernment['governmentID'] == 2) { tmpl_set($template, 'JUNIORADMIN', array('modus_name' => "modus", 'modus' => TRIBE_ADMIN, 'caption' => _('Wählen'), 'SELECTOR' => array('dataarray' => 'juniorLeader', 'dataentry' => 'juniorLeaderID'))); foreach ($memberData as $playerID => $playerData) { if ($leaderID == $playerID) { continue; } tmpl_iterate($template, 'JUNIORADMIN/SELECTOR/OPTION'); tmpl_set($template, 'JUNIORADMIN/SELECTOR/OPTION', array("value" => $playerID, 'selected' => $tribeData['juniorLeaderID'] == $playerID ? "selected" : "", 'text' => $playerData['name'])); } tmpl_iterate($template, 'JUNIORADMIN/SELECTOR/OPTION'); tmpl_set($template, 'JUNIORADMIN/SELECTOR/OPTION', array("value" => 0, 'selected' => $tribeData['juniorLeaderID'] == 0 ? "selected" : "", 'text' => _('keinen Stellvertreter wählen'))); } ////////////// government ///////////////////// if ($isLeader) { if ($tribeGovernment['isChangeable']) { tmpl_set($template, 'GOVERNMENT', array('modus_name' => "modus", 'modus' => TRIBE_ADMIN, 'caption' => _('Ändern'), 'SELECTOR' => array('dataarray' => 'governmentData', 'dataentry' => 'governmentID'))); foreach ($governmentList as $governmentID => $typeData) { tmpl_iterate($template, 'GOVERNMENT/SELECTOR/OPTION'); tmpl_set($template, 'GOVERNMENT/SELECTOR/OPTION', array('value' => $governmentID, 'selected' => $governmentID == $tribeGovernment['governmentID'] ? "selected" : "", 'text' => $typeData['name'])); } } else { tmpl_set($template, 'GOVERNMENT_INFO', array('name' => $tribeGovernment['name'], 'duration' => $tribeGovernment['time'])); } } ////////////// tribewonder ////////////////////// /* init_Wonders(); $tribewonderExists = False; for ($i = 0; $i < sizeof($wonderTypeList); $i++){ $wonder = $wonderTypeList[$i]; if ($wonder->groupID<>3) continue; $tribewonderExists = True; tmpl_iterate($template,'TRIBEWONDER/OPTION'); tmpl_set($template, 'TRIBEWONDER/OPTION', array('text' => $wonder->name, 'value' => $i)); }; if ($tribewonderExists) { tmpl_set($template, 'TRIBEWONDER/caption',_('erwirken')); tmpl_set($template, 'TRIBEWONDER/modus_name',"modus"); tmpl_set($template, 'TRIBEWONDER/modus', TRIBE_ADMIN); }; */ ////////////// relations ////////////////////// tmpl_set($template, 'RELATION_NEW', array('modus_name' => "modus", 'modus' => TRIBE_ADMIN, 'dataarray' => "relationData", 'dataentry' => "tag", 'value' => $params->POST->relationData['tag'], 'size' => 8, 'maxlength' => 8, 'caption' => _('Ändern'))); tmpl_set($template, 'RELATION_NEW/SELECTOR', array('dataarray' => "relationData", 'dataentry' => "relationID")); foreach ($relationList as $relationID => $typeData) { tmpl_iterate($template, 'RELATION_NEW/SELECTOR/OPTION'); tmpl_set($template, 'RELATION_NEW/SELECTOR/OPTION', array('value' => $relationID, 'selected' => $relationID == $params->POST->relationData['relationID'] ? "selected" : "", 'text' => $typeData['name'])); } // existing relations towards other clans ////////////////// foreach ($tribeRelations['own'] as $target => $targetData) { if (!$targetData['changeable']) { // relation, that couldn't be changed at the moment tmpl_iterate($template, 'RELATION_INFO'); $relation_info = array('tag' => $target, 'relation' => $relationList[$targetData['relationType']]['name'], 'duration' => $targetData['time'], 'their_relation' => $tribeRelations['other'][$target] ? $relationList[$tribeRelations['other'][$target]['relationType']]['name'] : $relationList[0]['name']); // war? if ($tribeWarTargets[$target]) { $relation_info["WAR/fame_own"] = $tribeWarTargets[$target]["fame_own"]; $relation_info["WAR/fame_target"] = $tribeWarTargets[$target]["fame_target"]; $relation_info["WAR/percent_actual"] = $tribeWarTargets[$target]["percent_actual"]; } tmpl_set($template, 'RELATION_INFO', $relation_info); // check, if it is possible to get or loose fame, and display if true /*if ($targetData['attackerReceivesFame'] || $targetData['defenderReceivesFame'] || $tribeRelations['other'][$target]['attackerReceivesFame'] || $tribeRelations['other'][$target]['defenderReceivesFame']) { tmpl_set($template, 'RELATION_INFO/FAME', array('tribe_fame' => $targetData['fame'], 'target_fame' => $tribeRelations['other'][$target]['fame'], 'tribe_moral' => $targetData['moral'], 'target_moral' => $tribeRelations['other'][$target]['moral'])); }*/ continue; } else { // relation, that is changeable tmpl_iterate($template, 'RELATION'); $relation = array('modus_name' => "modus", 'modus' => TRIBE_ADMIN, 'dataarray' => "relationData", 'dataentry' => "tag", 'value' => $target, 'target_points' => $targetData['target_rankingPoints'], 'tribe_points' => $targetData['tribe_rankingPoints'], 'their_relation' => $tribeRelations['other'][$target] ? $relationList[$tribeRelations['other'][$target]['relationType']]['name'] : $relationList[0]['name'], 'caption' => _('Ändern')); // war? if ($tribeWarTargets[$target]) { $wartarget = $tribeWarTargets[$target]; $relation["WAR/fame_own"] = $wartarget["fame_own"]; $relation["WAR/fame_target"] = $wartarget["fame_target"]; $relation["WAR/percent_actual"] = $wartarget["percent_actual"]; if ($wartarget["isForcedSurrenderTheoreticallyPossible"]) { $relation["WAR/FORCEDSURRENDER/percent_estimated"] = $wartarget["percent_estimated"]; if ($wartarget["isForcedSurrenderPracticallyPossible"]) { $relation["WAR/FORCEDSURRENDER/class"] = "enough"; } else { if ($target["isForcedSurrenderPracticallyPossibleForTarget"]) { $relation["WAR/FORCEDSURRENDER/class"] = "less"; } else { $relation["WAR/FORCEDSURRENDER/class"] = ""; } } } } tmpl_set($template, 'RELATION', $relation); tmpl_set($template, 'RELATION/SELECTOR', array('dataarray' => "relationData", 'dataentry' => "relationID")); // check, if it is possible to get or loose fame, and display if true /*if ($targetData['attackerReceivesFame'] || $targetData['defenderReceivesFame'] || $tribeRelations['other'][$target]['attackerReceivesFame'] || $tribeRelations['other'][$target]['defenderReceivesFame']) { tmpl_set($template, 'RELATION/FAME', array('tribe_fame' => $targetData['fame'], 'target_fame' => $tribeRelations['other'][$target]['fame'], 'tribe_moral' => $targetData['moral'], 'target_moral' => $tribeRelations['other'][$target]['moral'])); }*/ foreach ($relationList as $relationType => $typeData) { // get relation of target to tr. if ($tribeRelations['other'][$tag]) { $relationTypeTowardsTribe = $tribeRelations['other'][$tag]['relationType']; } // check, if switch to relationType is possible if ($relationTypeTowardsTribe != $relationType && $relationType != $targetData['relationType'] && !relation_isPossible($relationType, $targetData['relationType'])) { continue; } tmpl_iterate($template, 'RELATION/SELECTOR/OPTION'); tmpl_set($template, 'RELATION/SELECTOR/OPTION', array('value' => $relationType, 'selected' => $relationType == $targetData['relationType'] ? "selected" : "", 'text' => $typeData['name'])); } } } ////////////// memberliste //////////////////// foreach ($memberData as $playerID => $playerData) { if ($isLeader) { tmpl_iterate($template, 'MEMBERADMIN'); tmpl_set($template, 'MEMBERADMIN', array("name" => $playerData['name'], "lastAction" => $playerData['lastAction'], "player_link" => "modus=" . PLAYER_DETAIL . "&detailID={$playerID}", "player_kick_link" => "modus=" . TRIBE_ADMIN . "&playerID={$playerID}&kick=1")); } else { tmpl_iterate($template, 'MEMBERJUNIORADMIN'); tmpl_set($template, 'MEMBERJUNIORADMIN', array("name" => $playerData['name'], "lastAction" => $playerData['lastAction'], "player_link" => "modus=" . PLAYER_DETAIL . "&detailID={$playerID}")); } } ////////////// delete tribe //////////////////// if ($isLeader) { tmpl_set($template, 'DELETE/modus_name', 'modus'); tmpl_set($template, 'DELETE/modus', TRIBE_DELETE); tmpl_set($template, 'DELETE/heading', _('Stamm auflösen')); tmpl_set($template, 'DELETE/text', _('Den gesamten Stamm auflösen. Alle Mitglieder sind danach stammeslos.')); tmpl_set($template, 'DELETE/caption', sprintf(_('%s auflösen'), $tribe)); } return tmpl_parse($template); }
function tribeAdmin_getContent($playerID, $tag) { global $config, $params, $db, $no_resource_flag, $relationList, $governmentList; $no_resource_flag = 1; // check, for sercurity reasons! if (!tribe_isLeader($playerID, $tag, $db)) { page_dberror(); } // messages $messageText = array(-13 => "Die Beziehung wurde nicht geändert, weil der ausgewählte " . "Beziehungstyp bereits eingestellt ist.", -12 => "Eure Untergebenen weigern sich, " . "diese Beziehung gegenüber einem so kleinen Clan einzugehen.", -11 => "Die Moral des Gegners ist noch nicht schlecht genug. Sie muss unter " . RELATION_FORCE_MORAL_THRESHOLD . " sinken. Eine weitere Chance besteht, " . "wenn die Mitglierzahl des gegnerischen Clans um 30 Prozent gesunken ist.", "Euren Gunsten verschoben. Das Verhältnis Eurer Rankingpunkte zu " . "denen des Gegners muss sich seit Kriegsbeginn verdoppelt haben.", -10 => "Die zu ändernde Beziehung wurde nicht gefunden!", -9 => "Die Regierung konnte nicht geändert werden, weil sie erst " . "vor kurzem geändert wurde.", -8 => "Die Regierung konnte aufgrund eines Fehlers nicht aktualisiert " . "werden", -7 => "Zu sich selber kann man keine Beziehungen aufhehmen!", -6 => "Den Clan gibt es nicht!", -5 => "Von der derzeititgen Beziehung kann nicht dirket auf die " . "ausgewählte Beziehungsart gewechselt werden.", -4 => "Die Mindestlaufzeit läuft noch!", -3 => "Die Beziehung konnte aufgrund eines Fehlers nicht aktualisiert " . "werden.", -2 => "Der Spieler ist ebenfalls Clananführer und kann nicht " . "gekickt werden. Er kann nur freiwillig gehen.", -1 => "Der Spieler konnte nicht gekickt werden!", 0 => "Die Daten wurden erfolgreich aktualisiert.", 1 => "Der Spieler wurde erfolgreich gekickt.", 2 => "Die Daten konnten gar nicht oder zumindest nicht vollständig " . "aktualisiert werden.", 3 => "Die Beziehung wurde umgestellt.", 4 => "Die Regierung wurde geändert."); // proccess form data if ($params->POST->forceRelationData) { $messageID = relation_processForceRelation($tag, $params->POST->forceRelationData, $db); } else { if ($params->POST->relationData) { $messageID = relation_processRelationUpdate($tag, $params->POST->relationData, $db); } else { if ($params->POST->data) { $messageID = tribe_processAdminUpdate($playerID, $tag, $params->POST->data, $db); } else { if ($params->POST->kick) { $messageID = tribe_processKickMember($params->POST->playerID, $tag, $db); } else { if ($params->POST->governmentData) { $messageID = government_processGovernmentUpdate($tag, $params->POST->governmentData, $db); } } } } } // get the tribe data if (!($tribeData = tribe_getTribeByTag($tag, $db))) { page_dberror(); } $tribeData[description] = str_replace("<br />", "", $tribeData[description]); if (!($memberData = tribe_getAllMembers($tag, $db))) { page_dberror(); } // get government if (!($tribeGovernment = government_getGovernmentForTribe($tag, $db))) { page_dberror(); } $tribeGovernment[name] = $governmentList[$tribeGovernment[governmentID]][name]; // get relations if (!($tribeRelations = relation_getRelationsForTribe($tag, $db))) { page_dberror(); } $template = @tmpl_open("./templates/" . $config->template_paths[$params->SESSION->user['template']] . "/tribeAdmin.ihtml"); // Show a special message if (isset($messageID)) { tmpl_set($template, '/MESSAGE/message', $messageText[$messageID]); } // show the profile's data tmpl_set($template, 'modus_name', 'modus'); tmpl_set($template, 'modus_value', TRIBE_ADMIN); ////////////// user data ////////////////////// tmpl_set($template, 'DATA_GROUP/heading', 'Clandaten'); tmpl_set($template, 'DATA_GROUP/ENTRY_INFO/name', 'Tag'); tmpl_set($template, 'DATA_GROUP/ENTRY_INFO/value', $tribeData[tag]); tmpl_iterate($template, 'DATA_GROUP/ENTRY_INFO'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/name', 'Name'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/dataarray', 'data'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/dataentry', 'name'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/value', $tribeData[name]); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/size', '20'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/maxlength', '90'); tmpl_iterate($template, 'DATA_GROUP/ENTRY_INPUT'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/name', 'Password'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/dataarray', 'data'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/dataentry', 'password'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/value', $tribeData[password]); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/size', '15'); tmpl_set($template, 'DATA_GROUP/ENTRY_INPUT/maxlength', '15'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/name', 'Beschreibung'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/dataarray', 'data'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/dataentry', 'description'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/value', $tribeData[description]); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/cols', '25'); tmpl_set($template, 'DATA_GROUP/ENTRY_MEMO/rows', '8'); ////////////// government ///////////////////// if ($tribeGovernment[isChangeable]) { tmpl_set($template, 'GOVERNMENT', array('modus_name' => "modus", 'modus' => TRIBE_ADMIN, 'caption' => "Ändern", 'SELECTOR' => array('dataarray' => 'governmentData', 'dataentry' => 'governmentID'))); foreach ($governmentList as $governmentID => $typeData) { tmpl_iterate($template, 'GOVERNMENT/SELECTOR/OPTION'); tmpl_set($template, 'GOVERNMENT/SELECTOR/OPTION', array('value' => $governmentID, 'selected' => $governmentID == $tribeGovernment[governmentID] ? "selected" : "", 'text' => $typeData[name])); } } else { tmpl_set($template, 'GOVERNMENT_INFO', array('name' => $tribeGovernment[name], 'duration' => $tribeGovernment[time])); } ////////////// relations ////////////////////// tmpl_set($template, 'RELATION_NEW', array('modus_name' => "modus", 'modus' => TRIBE_ADMIN, 'dataarray' => "relationData", 'dataentry' => "tag", 'value' => $params->POST->relationData['tag'], 'size' => 8, 'maxlength' => 8, 'caption' => "Ändern")); tmpl_set($template, 'RELATION_NEW/SELECTOR', array('dataarray' => "relationData", 'dataentry' => "relationID")); foreach ($relationList as $relationID => $typeData) { tmpl_iterate($template, 'RELATION_NEW/SELECTOR/OPTION'); tmpl_set($template, 'RELATION_NEW/SELECTOR/OPTION', array('value' => $relationID, 'selected' => $relationID == $params->POST->relationData[relationID] ? "selected" : "", 'text' => $typeData[name])); } // existing relations towards other clans ////////////////// foreach ($tribeRelations[own] as $target => $targetData) { if (!$targetData[changeable]) { // relation, that couldn't be changed at the moment tmpl_iterate($template, 'RELATION_INFO'); tmpl_set($template, 'RELATION_INFO', array('tag' => $target, 'relation' => $relationList[$targetData[relationType]][name], 'duration' => $targetData[time], 'their_relation' => $tribeRelations[other][$target] ? $relationList[$tribeRelations[other][$target][relationType]][name] : $relationList[0][name])); continue; } else { // relation, that is changeable tmpl_iterate($template, 'RELATION'); tmpl_set($template, 'RELATION', array('modus_name' => "modus", 'modus' => TRIBE_ADMIN, 'dataarray' => "relationData", 'dataentry' => "tag", 'value' => $target, 'target_points' => $targetData[target_rankingPoints], 'tribe_points' => $targetData[tribe_rankingPoints], 'their_relation' => $tribeRelations[other][$target] ? $relationList[$tribeRelations[other][$target][relationType]][name] : $relationList[0][name], 'caption' => "Ändern")); tmpl_set($template, 'RELATION/SELECTOR', array('dataarray' => "relationData", 'dataentry' => "relationID")); // check, if it is possible to get or loose fame, and display if true if ($targetData[attackerReceivesFame] || $targetData[defenderReceivesFame] || $tribeRelations[other][$target][attackerReceivesFame] || $tribeRelations[other][$target][defenderReceivesFame]) { tmpl_set($template, 'RELATION/FAME', array('tribe_fame' => $targetData[fame], 'target_fame' => $tribeRelations[other][$target][fame], 'tribe_moral' => $targetData[moral], 'target_moral' => $tribeRelations[other][$target][moral])); } foreach ($relationList as $relationType => $typeData) { if ($tribeRelations[other][$tag]) { // get relation of target to tr. $relationTypeTowardsTribe = $tribeRelations[other][$tag][relationType]; } // check, if switch to relationType is possible if ($relationTypeTowardsTribe != $relationType && $relationType != $targetData[relationType] && !relation_isPossible($relationType, $targetData[relationType])) { continue; } tmpl_iterate($template, 'RELATION/SELECTOR/OPTION'); tmpl_set($template, 'RELATION/SELECTOR/OPTION', array('value' => $relationType, 'selected' => $relationType == $targetData[relationType] ? "selected" : "", 'text' => $typeData[name])); } if ($targetData[relationType] == RELATION_FORCE_FROM_ID) { tmpl_set($template, 'RELATION/FORCE', array('modus_name' => "modus", 'modus' => TRIBE_ADMIN, 'dataarray' => forceRelationData, 'dataentry' => "tag", 'value' => $target, 'caption' => "Kapitulation von {$target} erzwingen")); } } } ////////////// memberliste //////////////////// foreach ($memberData as $playerID => $playerData) { tmpl_iterate($template, 'MEMBER'); tmpl_set($template, 'MEMBER', array("name" => $playerData['name'], "lastAction" => $playerData['lastAction'], "player_link" => "modus=" . PLAYER_DETAIL . "&detailID={$playerID}", "player_kick_link" => "modus=" . TRIBE_ADMIN . "&playerID={$playerID}&kick=1")); } ////////////// delete tribe //////////////////// tmpl_set($template, 'DELETE/modus_name', 'modus'); tmpl_set($template, 'DELETE/modus', TRIBE_DELETE); tmpl_set($template, 'DELETE/heading', 'Clan auflösen'); tmpl_set($template, 'DELETE/text', 'Den gesamten Clan auflösen. Alle Mitglieder sind danach Clanlos.'); tmpl_set($template, 'DELETE/caption', "{$tribe} auflösen"); return tmpl_parse($template); }
function tribe_processLeave($playerID, $tag, $db, $FORCE = 0) { if (!$FORCE && !relation_leaveTribeAllowed($tag, $db)) { return -10; } if (!$FORCE && !tribe_changeTribeAllowedForPlayerID($playerID, $db)) { return -11; } if (tribe_isLeaderOrJuniorLeader($playerID, $tag, $db)) { if (tribe_isLeader($playerID, $tag, $db)) { if (!$FORCE && !tribe_unmakeLeader($playerID, $tag, $db)) { return -8; } } else { if (!$FORCE && !tribe_unmakeJuniorLeader($playerID, $tag, $db)) { return -8; } } } if (!($player = getPlayerByID($playerID))) { return -4; } if (!tribe_leaveTribe($playerID, $tag, $db)) { return -4; } Player::addHistoryEntry($db, $playerID, sprintf(_('verläßt den Stamm \'%s\''), $tag)); tribe_setBlockingPeriodPlayerID($playerID, $db); tribe_sendTribeMessage($tag, TRIBE_MESSAGE_MEMBER, "Spieleraustritt", "Der Spieler {$player['name']} ist soeben aus dem " . "Stamm ausgetreten."); if (tribe_getNumberOfMembers($tag, $db) == 0) { // tribe has to be deleted tribe_deleteTribe($tag, $db, $FORCE); return 4; } return 2; }
function tribe_getContent($playerID, $tribe) { global $config, $params, $db, $no_resource_flag, $governmentList; $no_resource_flag = 1; // messages $messageText = array(-12 => "Der Clan befindet sich gerade im Krieg und darf daher im Moment" . "keine neuen Mitglieder aufnehmen.", -11 => "Ihre Clanzugehörigkeit hat sich erst vor kurzem " . "geändert. Sie müssen noch warten, bis Sie wieder " . "etwas an Ihrer Clanzugehörigkeit ändern dürfen.", -10 => "Ihr Clan befindet sich im Krieg. Sie dürfen derzeit nicht " . "austreten.", -9 => "Die Nachricht konnte nicht eingetragen werden.", -8 => "Sie sind der Clananführer und konnten nicht entfernt " . "werden.", -7 => "Das Passwort konnte nicht gesetzt werden!", -6 => "Der Clan konnte nicht angelegt werden.", -5 => "Es gibt schon einen Clan mit diesem Kürzel;", -4 => "Sie konnten nicht austreten. Vermutlich gehören Sie gar " . "keinem Clan an.", -3 => "Sie konnten dem Clan nicht beitreten. Vermutlich sind Sie schon " . "bei einem anderen Clan Mitglied.", -2 => "Passwort und Clankürzel stimmen nicht überein.", -1 => "Bei der Aktion ist ein unerwarteter Datenbankfehler aufgetreten!", 01 => "Sie sind dem Clan beigetreten.", 02 => "Sie haben den Clan verlassen.", 03 => "Der Clan wurde erfolgreich angelegt.", 04 => "Sie waren das letzte Mitglied, der Clan wurde aufgelöst", 05 => "Die Nachricht wurde eingetragen", 10 => "Dieser Clanname ist nicht erlaubt!"); // proccess form data if ($params->POST->tribeAction) { switch ($params->POST->tribeAction) { case TRIBE_ACTION_JOIN: if ($params->POST->password && $params->POST->tag) { $messageID = tribe_processJoin($playerID, $params->POST->tag, $params->POST->password, $db); } break; case TRIBE_ACTION_CREATE: if ($params->POST->password && $params->POST->tag) { $messageID = tribe_processCreate($playerID, $params->POST->tag, $params->POST->password, $db); } break; case TRIBE_ACTION_LEAVE: $messageID = tribe_processLeave($playerID, $tribe, $db); break; case TRIBE_ACTION_MESSAGE: if ($params->POST->messageText) { $messageID = tribe_processSendTribeMessage($playerID, $tribe, $params->POST->messageText, $db); } break; } if ($params->POST->tribeAction == TRIBE_ACTION_JOIN || $params->POST->tribeAction == TRIBE_ACTION_LEAVE || $params->POST->tribeAction == TRIBE_ACTION_CREATE) { // the tribe might have changed if (!page_refreshUserData()) { return "ERROR"; } $tribe = $params->SESSION->user['tribe']; } } // ---------------------------------------------------------------------------- // ------- SECTION FOR PLAYERS WITHOUT MEMBERSHIP ----------------------------- if (!$tribe) { // not a tribe member $template = @tmpl_open("./templates/" . $config->template_paths[$params->SESSION->user['template']] . "/tribe.ihtml"); if ($messageID) { tmpl_set($template, "MESSAGE/message", $messageText[$messageID]); } // ------------------------------------------------------------------------ // ----------- Join existing tribe ---------------------------------------- tmpl_iterate($template, "FORM"); $form = array("heading" => "Einem Clan beitreten", "modus_name" => "modus", "modus_value" => TRIBE, "action_name" => "tribeAction", "action_value" => TRIBE_ACTION_JOIN, "TAG/fieldname" => "tag", "TAG/value" => $tribe ? $tribe : $params->POST->tag, "TAG/size" => 8, "TAG/maxlength" => 8, "PASSWORD/fieldname" => "password", "PASSWORD/value" => $params->POST->password, "PASSWORD/size" => 8, "PASSWORD/maxlength" => 15, "BUTTON/caption" => "Beitreten"); tmpl_set($template, "FORM", $form); // ------------------------------------------------------------------------ // ----------- Create new tribe ------------------------------------------- tmpl_iterate($template, "FORM"); // only change the different values for creation $form["heading"] = "Einen neuen Clan gründen"; $form["action_value"] = TRIBE_ACTION_CREATE; $form["BUTTON/caption"] = "Neu gründen"; tmpl_set($template, "FORM", $form); } else { if (!($tribeData = tribe_getTribeByTag($tribe, $db))) { return "ERROR"; } $template = @tmpl_open("./templates/" . $config->template_paths[$params->SESSION->user['template']] . "/tribeMember.ihtml"); if ($messageID) { tmpl_set($template, "MESSAGE/message", $messageText[$messageID]); } if (tribe_isLeader($playerID, $tribe, $db)) { $adminData = array("modus_name" => "modus", "modus_value" => TRIBE_ADMIN, "TRIBEMESSAGEFORM" => array("message_name" => "messageText", "modus_name" => "modus", "modus_value" => TRIBE, "action_name" => "tribeAction", "action_value" => TRIBE_ACTION_MESSAGE)); tmpl_set($template, "ADMIN", $adminData); } $data = array("tag" => $tribe, "name" => $tribeData['name'], "link_tribe" => "modus=" . TRIBE_DETAIL . "&tribe=" . urlencode(unhtmlentities($tribeData['tag'])), "MEMBERS/tag_name" => "tag", "MEMBERS/tag_value" => $tribe, "MEMBERS/modus_name" => "modus", "MEMBERS/modus_value" => TRIBE_PLAYER_LIST, "LEAVE/modus_name" => "modus", "LEAVE/modus_value" => TRIBE, "LEAVE/action_name" => "tribeAction", "LEAVE/action_value" => TRIBE_ACTION_LEAVE); if ($tribeData[leaderID]) { $leaderData = array("LEADER/name" => $tribeData[leaderName], "LEADER/leaderID_name" => "detailID", "LEADER/leaderID_value" => $tribeData[leaderID], "LEADER/modus_name" => "modus", "LEADER/modus_value" => PLAYER_DETAIL); } else { $leaderData = array("NOLEADER/message" => "Ihr Clan hat zur Zeit keinen Anführer."); } $leaderDeterminationData = array("LEADERDETERMINATION/modus_name" => "modus", "LEADERDETERMINATION/modus_value" => TRIBE_LEADER_DETERMINATION); $governementData = array("GOVERNMENT/name" => $governmentList[$governmentData[governmentID]]); if ($messages = tribe_getTribeMessages($tribe, $db)) { foreach ($messages as $messageID => $messageData) { $message = array("time" => $messageData[date], "subject" => $messageData[messageSubject], "message" => $messageData[messageText]); tmpl_iterate($template, "NORMAL/TRIBEMESSAGE"); tmpl_set($template, "NORMAL/TRIBEMESSAGE", $message); } } $data = array_merge($data, $leaderData, $leaderDeterminationData, $governmentData); tmpl_set($template, "NORMAL", $data); } return tmpl_parse($template); }
function tribe_processSendTribeMessage($leaderID, $tag, $message, $db) { if (!tribe_isLeader($leaderID, $tag, $db)) { return -9; } if (!tribe_sendTribeMessage($tag, TRIBE_MESSAGE_LEADER, "Nachricht vom Clananführer", nl2br($message))) { return -9; } return 5; }
function tribe_processKickMember($playerID, $tag) { if (empty($playerID)) { return -38; } if (tribe_isLeader($playerID, $tag)) { return -39; } // do not kick in wartime if (!relation_leaveTribeAllowed($tag)) { return -40; } // blocked if (!tribe_changeTribeAllowedForPlayerID($playerID)) { return -3; } // get player $player = getPlayerByID($playerID); // no such player if (!$player) { return -41; } // remove player if (!tribe_leaveTribe($playerID, $tag)) { return -41; } Player::addHistoryEntry($playerID, sprintf(_("wird aus dem Stamm '%s' geworfen"), $tag)); // block player tribe_setBlockingPeriodPlayerID($playerID); tribe_sendTribeMessage($tag, TRIBE_MESSAGE_MEMBER, "Spieler rausgeschmissen", "Der Spieler {$player['name']} wurde soeben vom Anführer aus dem Stamm ausgeschlossen."); $messagesClass = new Messages(); $messagesClass->sendSystemMessage($playerID, 8, "Stammausschluss.", "Sie wurden aus dem Stamm {$tag} ausgeschlossen. Bitte loggen Sie sich aus und melden Sie sich wieder an, damit das Stammesmenü bei Ihnen wieder richtig funktioniert."); return 13; }