/**
  * (non-PHPdoc)
  * @see IModel::getTemplateParameters()
  */
 public function getTemplateParameters()
 {
     $teamId = $this->_websoccer->getUser()->getClubId($this->_websoccer, $this->_db);
     $columns = array("P.id" => "id", "vorname" => "firstname", "nachname" => "lastname", "kunstname" => "pseudonym", "position" => "position", "position_main" => "position_main", "position_second" => "position_second", "nation" => "player_nationality", "lending_matches" => "lending_matches", "lending_fee" => "lending_fee", "C.id" => "team_id", "C.name" => "team_name");
     if ($this->_websoccer->getConfig('players_aging') == 'birthday') {
         $ageColumn = 'TIMESTAMPDIFF(YEAR,geburtstag,CURDATE())';
     } else {
         $ageColumn = 'age';
     }
     $columns[$ageColumn] = 'age';
     $dbPrefix = $this->_websoccer->getConfig("db_prefix");
     $fromTable = $dbPrefix . "_spieler P INNER JOIN " . $dbPrefix . "_verein C ON C.id = P.verein_id";
     $whereCondition = "P.status = 1 AND lending_owner_id = %d";
     $whereCondition .= " ORDER BY lending_matches ASC, position ASC, position_main ASC, nachname ASC, vorname ASC";
     $result = $this->_db->querySelect($columns, $fromTable, $whereCondition, $teamId, 50);
     $players = array();
     while ($player = $result->fetch_array()) {
         $player["position"] = PlayersDataService::_convertPosition($player["position"]);
         $players[] = $player;
     }
     $result->free();
     return array('lentplayers' => $players);
 }
 /**
  * Provides youth players of team, grouped by position.
  * 
  * @param WebSoccer $websoccer Application context.
  * @param DbConnection $db DB connection.
  * @param int $clubId ID of team
  * @param string $positionSort ASC or DESC
  * @return array asoc. array of youth players, with key=converted position ID, value=list of players
  */
 public static function getYouthPlayersOfTeamByPosition(WebSoccer $websoccer, DbConnection $db, $clubId, $positionSort = "ASC")
 {
     $columns = "*";
     $fromTable = $websoccer->getConfig("db_prefix") . "_youthplayer";
     $whereCondition = "team_id = %d ORDER BY position " . $positionSort . ", lastname ASC, firstname ASC";
     $result = $db->querySelect($columns, $fromTable, $whereCondition, $clubId, 50);
     $players = array();
     while ($player = $result->fetch_array()) {
         $player["position"] = PlayersDataService::_convertPosition($player["position"]);
         $player["player_nationality"] = $player["nation"];
         // make compliant with professional matches formation form
         $player["player_nationality_filename"] = PlayersDataService::getFlagFilename($player["nation"]);
         $players[$player["position"]][] = $player;
     }
     $result->free();
     return $players;
 }
 public static function getMatchPlayerRecordsByField(WebSoccer $websoccer, DbConnection $db, $matchId, $teamId)
 {
     $fromTable = $websoccer->getConfig('db_prefix') . '_spiel_berechnung AS M';
     $fromTable .= ' INNER JOIN ' . $websoccer->getConfig('db_prefix') . '_spieler AS P ON P.id = M.spieler_id';
     $columns = array('P.id' => 'id', 'P.vorname' => 'firstname', 'P.nachname' => 'lastname', 'P.kunstname' => 'pseudonym', 'P.verletzt' => 'matches_injured', 'P.position' => 'position', 'P.position_main' => 'position_main', 'P.position_second' => 'position_second', 'P.w_staerke' => 'strength', 'P.w_technik' => 'strength_technique', 'P.w_kondition' => 'strength_stamina', 'P.w_frische' => 'strength_freshness', 'P.w_zufriedenheit' => 'strength_satisfaction', 'P.nation' => 'player_nationality', 'P.picture' => 'picture', 'P.sa_tore' => 'st_goals', 'P.sa_spiele' => 'st_matches', 'P.sa_karten_gelb' => 'st_cards_yellow', 'P.sa_karten_gelb_rot' => 'st_cards_yellow_red', 'P.sa_karten_rot' => 'st_cards_red', 'M.id' => 'match_record_id', 'M.position' => 'match_position', 'M.position_main' => 'match_position_main', 'M.feld' => 'field', 'M.note' => 'grade');
     if ($websoccer->getConfig('players_aging') == 'birthday') {
         $ageColumn = 'TIMESTAMPDIFF(YEAR,P.geburtstag,CURDATE())';
     } else {
         $ageColumn = 'P.age';
     }
     $columns[$ageColumn] = 'age';
     $whereCondition = 'M.spiel_id = %d AND M.team_id = %d AND M.feld != \'Ausgewechselt\' ORDER BY field(M.position_main, \'T\', \'LV\', \'IV\', \'RV\', \'DM\', \'LM\', \'ZM\', \'RM\', \'OM\', \'LS\', \'MS\', \'RS\'), M.id ASC';
     $parameters = array($matchId, $teamId);
     $result = $db->querySelect($columns, $fromTable, $whereCondition, $parameters);
     $players = array();
     while ($player = $result->fetch_array()) {
         $field = $player['field'] === '1' ? 'field' : 'bench';
         $player['position'] = PlayersDataService::_convertPosition($player['position']);
         $players[$field][] = $player;
     }
     $result->free();
     return $players;
 }
 /**
  * Players search for national teams.
  * 
  * @param WebSoccer $websoccer Application context.
  * @param DbConnection $db DB connection.
  * @param string $nationality Nationality as in DB.
  * @param int $teamId ID of team.
  * @param string $firstName first name.
  * @param string $lastName surname or pseudonym.
  * @param string $position position as in DB (Torwart|ABwehr|Mittelfeld|Sturm)
  * @param string $mainPosition main position as in DB (T, LV, IV, ...)
  * @param int $startIndex fetch start index.
  * @param int $entries_per_page number of entries per pae.
  * @return array list of found players.
  */
 public static function findPlayers(WebSoccer $websoccer, DbConnection $db, $nationality, $teamId, $firstName, $lastName, $position, $mainPosition, $startIndex, $entries_per_page)
 {
     $columns["P.id"] = "id";
     $columns["P.vorname"] = "firstname";
     $columns["P.nachname"] = "lastname";
     $columns["P.kunstname"] = "pseudonym";
     $columns["P.position"] = "position";
     $columns["P.position_main"] = "position_main";
     $columns["P.position_second"] = "position_second";
     $columns["P.w_staerke"] = "strength";
     $columns["P.w_technik"] = "strength_technique";
     $columns["P.w_kondition"] = "strength_stamina";
     $columns["P.w_frische"] = "strength_freshness";
     $columns["P.w_zufriedenheit"] = "strength_satisfaction";
     $columns["C.id"] = "team_id";
     $columns["C.name"] = "team_name";
     $limit = $startIndex . "," . $entries_per_page;
     $result = self::executeFindQuery($websoccer, $db, $columns, $limit, $nationality, $teamId, $firstName, $lastName, $position, $mainPosition);
     $players = array();
     while ($player = $result->fetch_array()) {
         $player["position"] = PlayersDataService::_convertPosition($player["position"]);
         $players[] = $player;
     }
     $result->free();
     return $players;
 }