示例#1
0
function tribe_processAdminUpdate($leaderID, $tag, $data, $db)
{
    // list of fields, that should be inserted into the player record
    if (!tribe_isLeaderOrJuniorLeader($leaderID, $tag, $db)) {
        return 2;
    }
    if (!tribe_validatePassword($data["password"])) {
        return 2;
    }
    $fields = array("name", "password", "description");
    // first update data
    $data['description'] = nl2br($data['description']);
    if ($set = db_makeSetStatementSecure($data, $fields)) {
        if (!$db->query("UPDATE Tribe " . "SET " . $set . " " . "WHERE tag = '{$tag}'")) {
            return 2;
        }
    }
    return 0;
}
示例#2
0
function tribe_getContent($playerID, $tribe)
{
    global $config, $params, $db, $no_resource_flag, $governmentList;
    $no_resource_flag = 1;
    // messages
    $messageText = array(-12 => _('Der Stamm befindet sich gerade im Krieg und darf daher im Moment keine neuen Mitglieder aufnehmen.'), -11 => _('Die Stammeszugehörigkeit hat sich erst vor kurzem geändert. Warten Sie, bis die Stammeszugehörigkeit geändert werden darf.'), -10 => _('Ihr Stamm befindet sich im Krieg. Sie dürfen derzeit nicht austreten.'), -9 => _('Die Nachricht konnte nicht eingetragen werden.'), -8 => _('Sie sind der Stammesanführer und konnten nicht entfernt werden.'), -7 => _('Das Passwort konnte nicht gesetzt werden!'), -6 => _('Der Stamm konnte nicht angelegt werden.'), -5 => _('Es gibt schon einen Stamm mit diesem Kürzel;'), -4 => _('Sie konnten nicht austreten. Vermutlich gehören Sie gar keinem Stamm an.'), -3 => _('Sie konnten dem Stamm nicht beitreten. Vermutlich sind Sie schon bei einem anderen Stamm Mitglied.'), -2 => _('Passwort und Stammeskürzel stimmen nicht überein.'), -1 => _('Bei der Aktion ist ein unerwarteter Datenbankfehler aufgetreten!'), 01 => _('Sie sind dem Stamm beigetreten.'), 02 => _('Sie haben den Stamm verlassen.'), 03 => _('Der Stamm wurde erfolgreich angelegt.'), 04 => _('Sie waren das letzte Mitglied, der Stamm wurde aufgelöst'), 05 => _('Die Nachricht wurde eingetragen'), 10 => _('Dieser Stammesname ist nicht erlaubt!'));
    // process form data
    if ($params->POST->tribeAction) {
        switch ($params->POST->tribeAction) {
            case TRIBE_ACTION_JOIN:
                if (tribe_validatePassword($params->POST->password) && tribe_validateTag($params->POST->tag)) {
                    $messageID = tribe_processJoin($playerID, $params->POST->tag, $params->POST->password, $db);
                }
                break;
            case TRIBE_ACTION_CREATE:
                if (tribe_validatePassword($params->POST->password) && tribe_validateTag($params->POST->tag)) {
                    $messageID = tribe_processCreate($playerID, $params->POST->tag, $params->POST->password, $db, $params->POST->restore_rank == 'yes');
                }
                break;
            case TRIBE_ACTION_LEAVE:
                $messageID = tribe_processLeave($playerID, $tribe, $db);
                break;
            case TRIBE_ACTION_MESSAGE:
                if ($params->POST->messageText && $params->POST->ingame) {
                    $messageID = tribe_processSendTribeIngameMessage($playerID, $tribe, $params->POST->messageText, $db);
                } else {
                    if ($params->POST->messageText && !$params->POST->ingame) {
                        $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
            page_refreshUserData();
            $tribe = $params->SESSION->player->tribe;
        }
    }
    // ----------------------------------------------------------------------------
    // ------- SECTION FOR PLAYERS WITHOUT MEMBERSHIP -----------------------------
    if (!$tribe) {
        // not a tribe member
        $template = tmpl_open($params->SESSION->player->getTemplatePath() . 'tribe.ihtml');
        if ($messageID) {
            tmpl_set($template, "MESSAGE/message", $messageText[$messageID]);
        }
        // ------------------------------------------------------------------------
        // ----------- Join existing tribe ----------------------------------------
        tmpl_iterate($template, "FORM");
        $form = array("heading" => _('Einem Stamm beitreten'), "modus_name" => "modus", "modus_value" => TRIBE, "action_name" => "tribeAction", "action_value" => TRIBE_ACTION_JOIN, "TAG/fieldname" => "tag", "TAG/tag_regexp" => _("Buchstaben, Zahlen, Bindestriche; keine Zahlen oder Bindestrich am Anfang"), "TAG/value" => $tribe ? $tribe : $params->POST->tag, "TAG/size" => 8, "TAG/maxlength" => 8, "TAG/form_prefix" => "join_", "PASSWORD/fieldname" => "password", "PASSWORD/pw_regexp" => _("mind. 6 Buchstaben oder Zahlen"), "PASSWORD/value" => $params->POST->password, "PASSWORD/size" => 8, "PASSWORD/maxlength" => 15, "PASSWORD/form_prefix" => "join_", "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 Stamm gründen');
        $form["TAG/form_prefix"] = "create_";
        $form["PASSWORD/form_prefix"] = "create_";
        $form["action_value"] = TRIBE_ACTION_CREATE;
        $form["BUTTON/caption"] = _('Neu gründen');
        $form["RESTORERANKING/fieldName"] = "restore_rank";
        tmpl_set($template, "FORM", $form);
    } else {
        if (!($tribeData = tribe_getTribeByTag($tribe, $db))) {
            return _('Fehler');
        }
        $template = tmpl_open($params->SESSION->player->getTemplatePath() . 'tribeMember.ihtml');
        if ($messageID) {
            tmpl_set($template, "MESSAGE/message", $messageText[$messageID]);
        }
        if (tribe_isLeaderOrJuniorLeader($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']) {
            $JuniorAdmin = $targetPlayer = new Player(getPlayerByID($tribeData['juniorLeaderID']));
            $leaderData = array("LEADER/name" => $tribeData['leaderName'], "LEADER/leaderID_name" => "detailID", "LEADER/leaderID_value" => $tribeData['leaderID'], "LEADER/juniorLeaderName" => $JuniorAdmin->name, "LEADER/juniorLeaderID_name" => "detailID", "LEADER/juniorLeaderID_value" => $JuniorAdmin->playerID, "LEADER/modus_name" => "modus", "LEADER/modus_value" => PLAYER_DETAIL);
        } else {
            $leaderData = array("NOLEADER/message" => _('Ihr Stamm hat zur Zeit keinen Anführer.'));
        }
        $leaderDeterminationData = array("LEADERDETERMINATION/modus_name" => "modus", "LEADERDETERMINATION/modus_value" => TRIBE_LEADER_DETERMINATION);
        $governmentData = array("GOVERNMENT/name" => $governmentList[$governmentData['governmentID']]);
        if ($warTargets = relation_getWarTargetsAndFame($tribe, $db)) {
            tmpl_set($template, "NORMAL/WAR", array());
            foreach ($warTargets as $target) {
                $target_facts = array("target" => $target["target"], "fame_own" => $target["fame_own"], "fame_target" => $target["fame_target"], "percent_actual" => $target["percent_actual"]);
                if ($target["isForcedSurrenderTheoreticallyPossible"]) {
                    $target_facts["FORCEDSURRENDER/percent_estimated"] = $target["percent_estimated"];
                    if ($target["isForcedSurrenderPracticallyPossible"]) {
                        $target_facts["FORCEDSURRENDER/class"] = "enough";
                    } else {
                        if ($target["isForcedSurrenderPracticallyPossibleForTarget"]) {
                            $target_facts["FORCEDSURRENDER/class"] = "less";
                        } else {
                            $target_facts["FORCEDSURRENDER/class"] = "";
                        }
                    }
                }
                tmpl_iterate($template, "NORMAL/WAR/TARGET");
                tmpl_set($template, "NORMAL/WAR/TARGET", $target_facts);
            }
        }
        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);
}
示例#3
0
function tribe_getContentNoTribe($caveID, &$details)
{
    global $template;
    $messageText = array(-10 => array('type' => 'error', 'message' => _('Die Stammeszugehörigkeit hat sich erst vor kurzem geändert. Warten Sie, bis die Stammeszugehörigkeit geändert werden darf.')), -9 => array('type' => 'error', 'message' => _('Du kannst keinen Stamm gründen während du in einem Stamm bist.')), -8 => array('type' => 'error', 'message' => _('Nicht zulässiges Stammeskürzel oder Passwort.')), -7 => array('type' => 'error', 'message' => _('Der Stamm hat schon die maximale Anzahl an Mitgliedern.')), -6 => array('type' => 'error', 'message' => _('Der Stamm befindet sich gerade im Krieg und darf daher im Moment keine neuen Mitglieder aufnehmen.')), -5 => array('type' => 'error', 'message' => _('Der Stamm konnte nicht angelegt werden.')), -4 => array('type' => 'error', 'message' => _('Es gibt schon einen Stamm mit diesem Kürzel.')), -3 => array('type' => 'error', 'message' => _('Du konntest dem Stamm nicht beitreten. Vermutlich bist du schon bei einem anderen Stamm Mitglied.')), -2 => array('type' => 'error', 'message' => _('Dieser Stammesname ist nicht erlaubt!')), -1 => array('type' => 'error', 'message' => _('Stammeskürzel und Passwort stimmen nicht überein.')), 1 => array('type' => 'success', 'message' => _('Du bist dem Stamm beigetreten.')), 2 => array('type' => 'success', 'message' => _('Der Stamm wurde erfolgreich angelegt.')));
    if (!empty($_SESSION['player']->tribe)) {
        tribe_getContent($caveID, $details);
        return;
    }
    // open template
    $template->setFile('tribe.tmpl');
    $template->setShowRresource(false);
    // process form data
    $messageID = 0;
    $tribeAction = Request::getVar('action', 0);
    switch ($tribeAction) {
        case TRIBE_ACTION_JOIN:
            if (tribe_validatePassword(Request::getVar('password', '')) && tribe_validateTag(Request::getVar('tag', ''))) {
                $messageID = tribe_processJoin($_SESSION['player']->playerID, Request::getVar('tag', ''), Request::getVar('password', ''));
                if ($messageID == 1) {
                    $auth = new auth();
                    $auth->setPermission('tribe', 0, $_SESSION['player']->playerID);
                    page_refreshUserData();
                    $template->addVar('status_msg', $messageText[$messageID]);
                    tribe_getContent($caveID, $details);
                    return;
                }
            } else {
                $messageID = -8;
            }
            break;
        case TRIBE_ACTION_CREATE:
            if (tribe_validatePassword(Request::getVar('password', '')) && tribe_validateTag(Request::getVar('tag', ''))) {
                $messageID = tribe_processCreate($_SESSION['player']->playerID, Request::getVar('tag', ''), Request::getVar('password', ''), Request::getVar('restore_rank', 'no') == 'yes');
            } else {
                $messageID = -8;
            }
            if ($messageID == 2) {
                $auth = new auth();
                $auth->setPermission('tribe', 0, $_SESSION['player']->playerID);
                page_refreshUserData();
                $template->addVar('status_msg', $messageText[$messageID]);
                tribe_getContent($caveID, $details);
                return;
            }
            break;
    }
    /****************************************************************************************************
     *
     * Übergabe ans Template
     *
     ****************************************************************************************************/
    if ($messageID && isset($messageText[$messageID])) {
        $template->addVar('status_msg', $messageText[$messageID]);
    }
    $template->addVars(array('tribe_action_create' => TRIBE_ACTION_CREATE, 'tribe_action_join' => TRIBE_ACTION_JOIN));
}
示例#4
0
function tribe_processAdminUpdate($tag, $data)
{
    global $db;
    $auth = new auth();
    if (!tribe_validatePassword($data['password'])) {
        return -12;
    }
    // check if avatar is a image
    if (!empty($data['avatar'])) {
        $avatarInfo = checkAvatar($data['avatar']);
        if (!$avatarInfo) {
            return -13;
        } else {
            $data['avatar'] = $avatarInfo;
        }
    }
    $sql = $db->prepare("UPDATE " . TRIBE_TABLE . "\n                        SET name = :name,\n                          password = :password,\n                          description = :description,\n                          avatar = :avatar\n                        WHERE tag = :tag");
    $sql->bindValue('name', $data['name'], PDO::PARAM_STR);
    $sql->bindValue('password', $data['password'], PDO::PARAM_STR);
    $sql->bindParam('description', $data['description']);
    $sql->bindValue('avatar', $data['avatar'], PDO::PARAM_STR);
    $sql->bindValue('tag', $tag, PDO::PARAM_STR);
    if (!$sql->execute() || $sql->rowCount() == 0) {
        return 6;
    }
    return 5;
}