ilch Forum » Ilch CMS 2.X » Module und Modifikationen » Neues Modul Spieleliste ein paar Fehler

Geschlossen
  1. #1
    User Pic
    THOR Mitglied
    Registriert seit
    21.06.2018
    Beitrge
    5
    Beitragswertungen
    0 Beitragspunkte
    Hallo,

    bei uns hat das Modul Spieleliste ein paar Fehler.

    1. Wenn man kein Spiel ausgewählt und nun eins auswählen möchte wird ein fehler angezeit anstatt das Spiel zu sehen im Bild:

    prntscr.com/l9nzdt

    2. Der Scrollbalken um das Spiel auszuwählen ist sehr klein und verringert sich umsomehr man Spiele auswählt zu sehen im Bild:

    prntscr.com/l9nz3s

    3. Im Profil bei den Usern, wenn man sehr viele Spiele hat einfach nicht komplett angezeigt und bricht ab zu sehen im Bild:

    prntscr.com/l9o1kc

    4. Hätte ich noch ein Verbesserungs Vorschlag für das Modul Spieleliste. Eine Sortierung nach Alphabet und nach Mitglieder das man auf der Seite per Butten auswählen kann. Wir haben schon ne menge drin und kommt auch noch mehr dazu so kann man immer sehen wo es viele Mitglieder das Spiel haben.


    Das wars fürs Erste. Viel Dank für Lesen und beheben.

    mfg THOR


    verwendete ilch Version: 2.1.x

    betroffene Homepage: fungameraltersheim.de/


    Zuletzt modifiziert von THOR am 24.10.2018 - 01:52:58
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    BlackDrain Mitglied
    Registriert seit
    20.05.2018
    Beitrge
    2
    Beitragswertungen
    0 Beitragspunkte
    kind reminder
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beitrge
    190
    Beitragswertungen
    1 Beitragspunkte
    Moin alle,

    Ich habe auch das gleiche Problem.. traurig

    Der Sagt das zu mir:
    /application/modules/gamelist/controllers/Index.php on line 62
    foreach ($this->getRequest()->getPost('games') as $gameId) {
                    $entrantsModel->setGameId($gameId)
                        ->setUserId($this->getUser()->getId());
                    $entrantsMapper->save($entrantsModel);
                }


    /application/modules/gamelist/controllers/Index.php on line 69
    $games = [];
                foreach ($this->getRequest()->getPost('games') as $gameId) {
                    $game = $gamesMapper->getEntryById($gameId);
    
                    $games[] = $game->getTitle();
                }


    Das ist die Orginale php aus:
    <?php
    /**
     * @copyright Ilch 2.0
     * @package ilch
     */
    
    namespace Modules\Gamelist\Controllers;
    
    use Modules\Gamelist\Mappers\Games as GamesMapper;
    use Modules\Gamelist\Mappers\Entrants as EntrantsMapper;
    use Modules\Gamelist\Models\Entrants as EntrantsModel;
    use Modules\User\Mappers\User as UserMapper;
    use Modules\User\Mappers\Usermenu as UserMenuMapper;
    use Modules\User\Mappers\ProfileFields as ProfileFieldsMapper;
    use Modules\User\Mappers\ProfileFieldsContent as ProfileFieldsContentMapper;
    use Modules\User\Models\ProfileFieldContent as ProfileFieldContentModel;
    
    class Index extends \Ilch\Controller\Frontend
    {
        public function indexAction()
        {
            $gamesMapper = new GamesMapper();
            $entrantsMapper = new EntrantsMapper();
            $userMapper = new UserMapper;
    
            $this->getLayout()->header()
                ->css('static/css/gamelist.css');
            $this->getLayout()->getTitle()
                ->add($this->getTranslator()->trans('menuGames'));
            $this->getLayout()->getHmenu()
                ->add($this->getTranslator()->trans('menuGames'), ['action' => 'index']);
    
            $this->getView()->set('entrantsMapper', $entrantsMapper)
                ->set('userMapper', $userMapper)
                ->set('entries', $gamesMapper->getEntries(['show' => 1]));
        }
    
        public function settingsAction()
        {
            $gamesMapper = new GamesMapper();
            $entrantsMapper = new EntrantsMapper();
            $entrantsModel = new EntrantsModel();
            $userMapper = new UserMapper();
            $UserMenuMapper = new UserMenuMapper();
            $profileFieldsMapper = new ProfileFieldsMapper();
            $profileFieldsContentMapper = new ProfileFieldsContentMapper();
    
            $profileField = $profileFieldsMapper->getProfileFieldIdByKey('gamelist_games');
    
            $this->getLayout()->getTitle()
                ->add($this->getTranslator()->trans('menuPanel'))
                ->add($this->getTranslator()->trans('menuSettings'))
                ->add($this->getTranslator()->trans('gamesSelection'));
            $this->getLayout()->getHmenu()
                ->add($this->getTranslator()->trans('menuPanel'), ['module' => 'user', 'controller' => 'panel', 'action' => 'index'])
                ->add($this->getTranslator()->trans('menuSettings'), ['module' => 'user', 'controller' => 'panel', 'action' => 'settings'])
                ->add($this->getTranslator()->trans('gamesSelection'), ['controller' => 'index', 'action' => 'settings']);
    
            if ($this->getRequest()->getPost('saveGames')) {
                $entrantsMapper->deleteByUserId($this->getUser()->getId());
    
                foreach ($this->getRequest()->getPost('games') as $gameId) {
                    $entrantsModel->setGameId($gameId)
                        ->setUserId($this->getUser()->getId());
                    $entrantsMapper->save($entrantsModel);
                }
    
                $games = [];
                foreach ($this->getRequest()->getPost('games') as $gameId) {
                    $game = $gamesMapper->getEntryById($gameId);
    
                    $games[] = $game->getTitle();
                }
                $games = implode(", ", $games);
    
                $profileFieldsContent = new ProfileFieldContentModel();
                $profileFieldsContent->setFieldId($profileField->getId())
                    ->setUserId($this->getUser()->getId())
                    ->setValue($games);
                $profileFieldsContentMapper->save($profileFieldsContent);
            }
    
            $this->getView()->set('gamesEntrants', $entrantsMapper->getEntrantsByUserId($this->getUser()->getId()))
                ->set('entries', $gamesMapper->getEntries(['show' => 1]))
                ->set('usermenu', $UserMenuMapper->getUserMenu())
                ->set('profileField', $profileField)
                ->set('profil', $userMapper->getUserById($this->getUser()->getId()))
                ->set('galleryAllowed', $this->getConfig()->get('usergallery_allowed'));
        }
    }


    Aber in Content also in der index ist es ok externer Link...

    MFG traurig


    Zuletzt modifiziert von FightClub am 03.11.2018 - 18:35:14
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    FightClub Mitglied
    Registriert seit
    02.06.2013
    Beitrge
    190
    Beitragswertungen
    1 Beitragspunkte
    Ich Glaube der Fehler ist in der Settings.php..

    also: application/modules/gamelist/views/index/settings.php
    <link href="<?=$this->getStaticUrl('css/chosen/bootstrap-chosen.css') ?>" rel="stylesheet">
    <link href="<?=$this->getStaticUrl('css/chosen/chosen.css') ?>" rel="stylesheet">
    <link href="<?=$this->getModuleUrl('../user/static/css/user.css') ?>" rel="stylesheet">
    
    <div class="row">
        <div class="col-lg-12 profile">
            <?php include APPLICATION_PATH.'/modules/user/views/panel/navi.php'; ?>
    
            <div class="profile-content active">
                <h1><?=$this->getTrans('gamesSelection') ?></h1>
                <form class="form-horizontal" method="POST" action="">
                    <?=$this->getTokenField() ?>
    
                    <div class="form-group">
                        <label for="assignedGames" class="col-lg-3 control-label">
                            <?=$this->getTrans('games') ?>
                        </label>
                        <div class="col-lg-9">
                            <?php if ($this->get('profileField')->getShow() == 0): ?>
                                <div class="input-group">
                            <?php endif; ?>
                            <select class="chosen-select form-control"
                                    id="assignedGames"
                                    name="games[]"
                                    data-placeholder="<?=$this->getTrans('selectGames') ?>"
                                    multiple>
                                <?php foreach ($this->get('entries') as $game): ?>
                                    <option value="<?=$game->getId() ?>"
                                        <?php foreach ($this->get('gamesEntrants') as $assignedGame) {
                                            if ($game->getId() === $assignedGame->getGameId()) {
                                                echo 'selected="selected"';
                                                break;
                                            }
                                        } ?>>
                                        <?=$this->escape($game->getTitle()) ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                            <?php if ($this->get('profileField')->getShow() == 0): ?>
                                <span class="input-group-addon" data-toggle="tooltip" data-placement="bottom" title="<?=$this->getTrans('profileFieldHidden') ?>">
                                    <span class="fa fa-eye-slash"></span>
                                </span>
                                </div>
                        <?php endif; ?>
                        </div>
                    </div>
    
                    <div class="row">
                        <div class="col-lg-offset-3 col-lg-9">
                            <input type="submit"
                                   name="saveGames"
                                   class="btn"
                                   value="<?=$this->getTrans('submit') ?>" />
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div>
    
    <script src="<?=$this->getStaticUrl('js/chosen/chosen.jquery.min.js') ?>"></script>
    <script>
        $('#assignedGames').chosen();
        $('[data-toggle="tooltip"]').tooltip()
    </script>

    Wenn ich jetzt ein Games eintragen möchte da kommt: Warning: Invlid argument supplied for foreach()
    und wenn ich das dann absende dann kommen die richtige Ausgabe also die spiele die ich eingetragen habe im Admincenter und die Layout Einstellungen sind da auch nicht richtig.


    So am Layout habe ich es jetzt angepasst das ist meine settings.php lcheln
    <link href="<?=$this->getStaticUrl('css/chosen/bootstrap-chosen.css') ?>" rel="stylesheet">
    <link href="<?=$this->getStaticUrl('css/chosen/chosen.css') ?>" rel="stylesheet">
    <link href="<?=$this->getModuleUrl('../user/static/css/user.css') ?>" rel="stylesheet">
    
    <div class="row">
        <div class="col-lg-12 profile">
            <?php include APPLICATION_PATH.'/modules/user/views/panel/navi.php'; ?>
    
            <div class="profile-content active">
                <h1><?=$this->getTrans('gamesSelection') ?></h1>
                <form class="form-horizontal" method="POST" action="">
                    <?=$this->getTokenField() ?>
    
                    <div class="form-group">
    				<!-- DAS IST NEU / AUS / -ON-->
    					<!--
    						<label for="assignedGames" class="col-lg-3 control-label">
    							<?=$this->getTrans('games') ?>
    						</label>
    					-->
    				<!-- OFF -->
    					
    					<!-- DAS IST NEU / col-lg-9 / zu / col-lg-8 / -ON-->
                        <div class="col-lg-8">
    					<!-- OFF -->
                            <?php if ($this->get('profileField')->getShow() == 0): ?>
                                <div class="input-group">
                            <?php endif; ?>
                            <select class="chosen-select form-control"
                                    id="assignedGames"
                                    name="games[]"
                                    data-placeholder="<?=$this->getTrans('selectGames') ?>"
                                    multiple>
                                <?php foreach ($this->get('entries') as $game): ?>
                                    <option value="<?=$game->getId() ?>"
                                        <?php foreach ($this->get('gamesEntrants') as $assignedGame) {
                                            if ($game->getId() === $assignedGame->getGameId()) {
                                                echo 'selected="selected"';
                                                break;
                                            }
                                        } ?>>
                                        <?=$this->escape($game->getTitle()) ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                            <?php if ($this->get('profileField')->getShow() == 0): ?>
                                <span class="input-group-addon" data-toggle="tooltip" data-placement="bottom" title="<?=$this->getTrans('profileFieldHidden') ?>">
                                    <span class="fa fa-eye-slash"></span>
                                </span>
                                </div>
                        <?php endif; ?>
                        </div>
                    </div>
    				
    				<!-- DAS IST NEU / class="row" / zu / class="form-group" / -ON-->
                    <div class="form-group">
    				<!-- OFF -->
    					<!-- DAS IST NEU / class="col-lg-offset-3 col-lg-9" / zu / class="col-lg-8" / -ON-->
                        <div class="col-lg-8">
    					<!-- OFF -->
                            <input type="submit"
                                   name="saveGames"
                                   class="btn"
                                   value="<?=$this->getTrans('submit') ?>" />
                        </div>
                    </div>
    							
                </form>
            </div>
        </div>
    </div>
    
    <script src="<?=$this->getStaticUrl('js/chosen/chosen.jquery.min.js') ?>"></script>
    <script>
        $('#assignedGames').chosen();
        $('[data-toggle="tooltip"]').tooltip()
    </script>

    Aber das Problem habe ich immer noch. traurig
    gesperrtes Bild
    Mir werden immer wieder diese Fehler angezeigt auch wenn ich es ein Trage oder austrage:
    application/modules/gamelist/controllers/Index.php on line 62
    application/modules/gamelist/controllers/Index.php on line 69

    MFG

    Zuletzt modifiziert von FightClub am 07.11.2018 - 09:35:39
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beitrge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Ich habe dazu ein Ticket angelegt redmine.ilch2.de/issues/562
    1 Mitglieder finden den Beitrag gut.
Geschlossen

Zurck zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten