list only Characters with at least one role for adding to a Character group (Issue #198)

This commit is contained in:
coderkun 2014-05-03 13:03:46 +02:00
commit 27bf28b1f7
2 changed files with 4 additions and 3 deletions

View file

@ -402,7 +402,7 @@
// Get all Characters of Seminary
$groupCharacterIds = array_map(function($c) { return $c['id']; }, $group['characters']);
$seminaryCharacters = $this->Characters->getCharactersForSeminary($seminary['id']);
$seminaryCharacters = $this->Characters->getCharactersForSeminary($seminary['id'], true);
$characters = array();
foreach($seminaryCharacters as &$character) {
if(!in_array($character['id'], $groupCharacterIds)) {

View file

@ -60,14 +60,15 @@
* @param int $seminaryId ID of the Seminary
* @return array Characters
*/
public function getCharactersForSeminary($seminaryId)
public function getCharactersForSeminary($seminaryId, $onlyWithRole=false)
{
return $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, seminaries.id AS seminary_url, seminaries.title AS seminary_title, seminaries.url AS seminary_url '.
'FROM v_characters AS characters '.
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'LEFT JOIN seminaries ON seminaries.id = charactertypes.seminary_id '.
'WHERE seminaries.id = ?',
'WHERE seminaries.id = ?'.
($onlyWithRole ? ' AND EXISTS (SELECT character_id FROM characters_characterroles WHERE character_id = characters.id)' : null),
'i',
$seminaryId
);