function ryzom_get_user_gender($id) { $db = ryDB::getInstance('webig'); $player = $db->querySingle('players', array('id' => $id)); if ($player) { if ($player['gender']) { return intval($player['gender']); } $cid = $player['cid']; $xml = @simplexml_load_file(RYAPI_PATH . 'data/cache/players/public/' . substr($cid, strlen($cid) - 1) . '/' . $cid . '.xml'); if ($xml !== false) { $gender = (string) $xml->public->_gender; $db->update('players', array('gender' => intval($gender) + 1), array('id' => $id)); return $gender + 1; } } return false; }
/* * Statistics page */ if ($_REQUEST['mode'] == "stats" && $_ADMIN->isCSR()) { require_once "include/adm_render_stats.php"; $c .= "<h1>Statistics</h1>"; $c .= stats_render(); } /* * CSR player manager */ if ($_REQUEST['mode'] == "player" && $_ADMIN->isCSR()) { $c .= "<h1>Player Administration</h1>"; #$DBc_char = new mySQL($_CONF['mysql_error']); #$DBc_char->connect($_CONF['char_mysql_server'],$_CONF['char_mysql_user'],$_CONF['char_mysql_pass'],$_CONF['char_mysql_database']); $DBc_char = ryDB::getInstance("webig"); //menu require_once "include/adm_render_csr.php"; if (!is_user($_REQUEST['pid'])) { // no user ID $c .= csr_render_find_player(); } else { $user = array(); $user['id'] = $_REQUEST['pid']; $user['lang'] = 'en'; $dta = user_get_data($_REQUEST['pid']); $user['char_name'] = user_get_name($_REQUEST['pid']); $user['race'] = substr($dta['race'], 2); $user['civ'] = substr($dta['civilisation'], 2); $user['cult'] = substr($dta['cult'], 2); $_USER = new RyzomUser($user);
require_once "class/Node_abstract.php"; require_once "class/AVLTree_class.php"; require_once "class/Parentum_abstract.php"; require_once "class/AchList_abstract.php"; require_once "class/Tieable_inter.php"; require_once "class/NodeIterator_class.php"; require_once "class/AchMenu_class.php"; require_once "class/AchMenuNode_class.php"; require_once "class/AchSummary_class.php"; require_once "class/AchCategory_class.php"; require_once "class/AchAchievement_class.php"; require_once "class/AchTask_class.php"; require_once "class/AchObjective_class.php"; // Update user acces on Db // $DBc = ryDB::getInstance(APP_NAME."_test"); $DBc = ryDB::getInstance(APP_NAME); // if getting request using REST if (isset($_GET['search']) && isset($_GET['format'])) { // if the format is json if ($_GET['format'] == 'json') { // getting the headers when the request is sent $header = getallheaders(); // this block is to get the posted data $fp = fopen('php://input', 'r'); $rawData = stream_get_contents($fp); $userd = json_decode($rawData, true); // authenticate the user using data we get from server appAuthenticateRest($user, $userd); // create a ryzom user object whose achievements we have to send in response $_USER = new RyzomUser($user); require_once "include/ach_render_web.php";
<?php define('APP_NAME', 'app_test'); include_once '../config.php'; include_once '../lang.php'; include_once 'lang.php'; // Ask to authenticate user (using ingame or session method) and fill $user with all information ryzom_app_authenticate($user, true); // Enable debug logs only for DEVS if (in_array('DEV', $user['groups'])) { ryLogger::getInstance()->enable = true; } // Debug log p($user); // Update user acces on Db $db = ryDB::getInstance(APP_NAME); $db->setDbDefs('test', array('id' => SQL_DEF_INT, 'num_access' => SQL_DEF_INT)); $num_access = $db->querySingleAssoc('test', array('id' => $user['id'])); if ($num_access) { $db->update('test', array('num_access' => ++$num_access['num_access']), array('id' => $user['id'])); } else { $db->insert('test', array('num_access' => $num_access['num_access'] = 1, 'id' => $user['id'])); } // Content $c = _t('access', $num_access['num_access']) . '<br/>'; echo ryzom_app_render(APP_NAME, $c, $user['ig']);
function ryzom_get_user_id($cid, $name, $creation_date) { $name = strtolower($name); $db = ryDB::getInstance('webig'); $charsWithSameName = $db->query('players', array('name' => $name, 'deleted' => 0)); foreach ($charsWithSameName as $charWithSameName) { // Another char with same name => delete it if (intval($cid) != intval($charWithSameName['cid'])) { $db->update('players', array('deleted' => 1), array('id' => $charWithSameName['id'])); } } $charProps = $db->querySingle('players', array('cid' => intval($cid), 'deleted' => 0)); // new char => create record if (!$charProps) { $charProps = array('name' => $name, 'cid' => $cid, 'creation_date' => $creation_date, 'deleted' => 0); $charProps['id'] = $db->insert('players', $charProps); if (!$charProps['id']) { die('ryDb New Char Error'); } } else { // char deleted and recreated => change to deleted if ($charProps['creation_date'] != $creation_date) { if (!$db->update('players', array('deleted' => 1), array('id' => $charProps['id']))) { die('ryDb Delete char Error: ' . $db->getErrors()); } $charProps = array('name' => $name, 'cid' => $cid, 'creation_date' => $creation_date, 'deleted' => 0); if (!($charProps['id'] = $db->insert('players', $charProps))) { die('ryDb New Char in Slot Error'); } } else { // char renamed => update record if ($charProps['name'] != $name) { if (!$db->update('players', array('name' => $name), array('id' => $charProps['id']))) { die('ryDb Rename Char Error'); } } } } return $charProps['id']; }
<?php /* Copyright (C) 2012 Winch Gate Property Limited * * This file is part of ryzom_api. * ryzom_api is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * ryzom_api 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with ryzom_api. If not, see <http://www.gnu.org/licenses/>. */ // init database table used by webig $db = ryDB::getInstance('webig'); $db->setDbDefs('players', array('id' => SQL_DEF_INT, 'cid' => SQL_DEF_INT, 'name' => SQL_DEF_TEXT, 'creation_date' => SQL_DEF_DATE, 'deleted' => SQL_DEF_BOOLEAN, 'last_login' => SQL_DEF_TEXT)); $db->setDbDefs('accounts', array('uid' => SQL_DEF_INT, 'web_privs' => SQL_DEF_TEXT));