ilch Forum » Ilch CMS 2.X » Allgemein » Last War Box

Geschlossen
  1. #1
    User Pic
    Dr_Chaos Mitglied
    Registriert seit
    20.05.2020
    Beitrge
    9
    Beitragswertungen
    0 Beitragspunkte
    Hey ich würde gerne in der Last War Box die Logos der zu Spielenden Teams anzeigen lassen.

    Die Virable zum ausgeben habe ich in der lastwar.php hinzugefügt als "$GroupImage" & "$EnemyImage"

    Bei dem Input scheiter es gerade ein wenig, ich habe mir versucht die input aus der Show.php zu nehemn aber das hatte leider nicht funktioniert.

    Wie nun auf meiner Seite zu sehen habe ich das Gamicon einfach erstmal kopier als Lückenfüller.

    Der Code dazu sieht dan natürlich so aus.

    Könnte mir jemand helfen mit der Pfadangabe?!

    INPUT
    $gameImg = $this->getBoxUrl('static/img/'.$war->getWarGame().'.png');
            if (file_exists(APPLICATION_PATH.'/modules/war/static/img/'.$war->getWarGame().'.png')) {
                $gameImg = '<img src="'.$this->getBoxUrl('static/img/'.urlencode($war->getWarGame()).'.png').'" title="'.$this->escape($war->getWarGame()).'" width="16" height="16">';
            } else {
                $gameImg = '<i class="fa fa-question-circle text-muted" title="'.$this->escape($war->getWarGame()).'"></i>';
            }
    		/* GROUP IMAGE*/		
            $GroupImage = $this->getBoxUrl('static/img/'.$war->getWarGame().'.png');
            if (file_exists(APPLICATION_PATH.'/modules/war/static/img/'.$war->getWarGame().'.png')) {
                $GroupImage = '<img src="'.$this->getBoxUrl('static/img/'.urlencode($war->getWarGame()).'.png').'" title="'.$this->escape($war->getWarGame()).'" width="50" height="50">';
            }
    		
    		/* ENEMY IMAGE*/		
            $EnemyImage = $this->getBoxUrl('static/img/'.$war->getWarGame().'.png');
            if (file_exists(APPLICATION_PATH.'/modules/war/static/img/'.$war->getWarGame().'.png')) {
                $EnemyImage = '<img src="'.$this->getBoxUrl('static/img/'.urlencode($war->getWarGame()).'.png').'" title="'.$this->escape($war->getWarGame()).'" width="50" height="50">';
            }


    OUTPUT
    <div class="lastwar-box">
                <div class="row">
                    <a href="<?=$this->getUrl('war/index/show/id/' . $war->getId()) ?>">
                        <div class="col-xs-4 ellipsis">
                            <?=$gameImg ?>
                            <div class="ellipsis-item">
                                <?=$this->escape($war->getWarGroupTag()) ?> <br> <?=$GroupImage ?>
                            </div>
                        </div>
                        <div class="col-xs-2 small pull-left nextwar-vs"><?=$this->getTrans('vs') ?></div>
                        <div class="col-xs-3 ellipsis">
                            <div class="ellipsis-item">
                                <?=$this->escape($war->getWarEnemyTag()) ?> <p> <?=$EnemyImage ?>
                            </div>
                        </div>
                    </a>
                    <div class="col-xs-3 small nextwar-date">
                        <div class="ellipsis-item text-right <?=$matchStatus ?>" title="<?=$groupPoints ?>:<?=$enemyPoints ?>">
                            <?=$groupPoints ?>:<?=$enemyPoints ?>
                        </div>
                    </div>
                </div>
            </div>


    Natürlich ist der Code im Input nun nicht mehr richtig. Aber ich wollte einfach keine Komplett zerstörten Codes hier rein kopieren zwinker

    Lg

    Dennis


    verwendete ilch Version: 2.1.x

    betroffene Homepage: purfuerst.rocks
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beitrge
    7.580
    Beitragswertungen
    1183 Beitragspunkte
    Du musst bedenken, dass die Bilder nicht wie die Game-Icons im static-Ordner abgelegt werden, sondern über das Mediasystem hochgeladen und somit in der Datenbank mit dem relativen Pfad abgelegt werden.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Dr_Chaos Mitglied
    Registriert seit
    20.05.2020
    Beitrge
    9
    Beitragswertungen
    0 Beitragspunkte
    Hey,

    das war mir leider auch schon bewusst. Ich finde das macht es ja auch so schwer. Ich habe nun leider auch nicht so die größte Ahnung, ich bin halt ein Mensch der gerne Probiert und Testet. versuche es ja nun auch schon ein paar Tage...

    Ist es denn überhaupt möglich da ja Box und Bild aus verschiedenen Pfaden kommen?

    Lg

    Dennis
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beitrge
    7.580
    Beitragswertungen
    1183 Beitragspunkte
    Klar ist es möglich.
    Ich schaue es mir die nächsten Tage mal an.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Dr_Chaos Mitglied
    Registriert seit
    20.05.2020
    Beitrge
    9
    Beitragswertungen
    0 Beitragspunkte
    Cool, würde mich freuen. Könnte mir vorstellen das es auch andere Interessieren könnte.


    Lg

    Dennis
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beitrge
    7.580
    Beitragswertungen
    1183 Beitragspunkte
    Habe es mal an der Last-War Box umgesetzt.

    Die Änderungen bzw. die eingefügten Positionen habe ich markiert.

    <?php
    /**
     * @copyright Ilch 2.0
     * @package ilch
     */
    
    namespace Modules\War\Boxes;
    
    use Modules\War\Mappers\War as WarMapper;
    use Modules\War\Mappers\Games as GamesMapper;
    use Modules\War\Mappers\Enemy as EnemyMapper;
    use Modules\War\Mappers\Group as GroupMapper;
    use Modules\User\Mappers\User as UserMapper;
    
    class Lastwar extends \Ilch\Box
    {
        public function render()
        {
            $warMapper = new WarMapper();
            $gamesMapper = new GamesMapper();
            $enemyMapper = new EnemyMapper();
            $groupMapper = new GroupMapper();
            $userMapper = new UserMapper();
            $config = \Ilch\Registry::get('config');
    
            $user = null;
            if ($this->getUser()) {
                $user = $userMapper->getUserById($this->getUser()->getId());
            }
    
            $readAccess = [3];
            if ($user) {
                foreach ($user->getGroups() as $us) {
                    $readAccess[] = $us->getId();
                }
            }
    
            $this->getView()->set('warMapper', $warMapper)
                ->set('gamesMapper', $gamesMapper)
                ->set('enemyMapper', $enemyMapper)
                ->set('groupMapper', $groupMapper)
                ->set('war', $warMapper->getWarListByStatusAndLimt(2, $config->get('war_boxLastWarLimit'), 'DESC'))
                ->set('readAccess', $readAccess);
        }
    }


    Hier solltest Du dann je nach Geschmack (Form, Farbe, Größe usw.) die Zeilen 58 und 65 anpassen.

    <link href="<?=$this->getBoxUrl('static/css/style.css') ?>" rel="stylesheet">
    
    <?php if ($this->get('war') != ''):
        $displayed = 0;
        $adminAccess = null;
        if ($this->getUser()) {
            $adminAccess = $this->getUser()->isAdmin();
        }
    
        foreach ($this->get('war') as $war):
            if (!is_in_array($this->get('readAccess'), explode(',', $war->getReadAccess())) && $adminAccess == false) {
                continue;
            }
            $displayed++;
    
            $gamesMapper = $this->get('gamesMapper');
            $warMapper = $this->get('warMapper');
            $enemyMapper = $this->get('enemyMapper');
            $groupMapper = $this->get('groupMapper');
            $games = $gamesMapper->getGamesByWarId($war->getId());
            $warId = $warMapper->getWarById($war->getId());
            $enemy = $enemyMapper->getEnemyById($warId->getWarEnemy());
            $group = $groupMapper->getGroupById($warId->getWarGroup());
            if ($games != '') {
                $enemyPoints = 0;
                $groupPoints = 0;
                $matchStatus = '';
                foreach ($games as $game) {
                    $groupPoints += $game->getGroupPoints();
                    $enemyPoints += $game->getEnemyPoints();
                }
                if ($groupPoints > $enemyPoints) {
                    $matchStatus = 'war_win';
                }
                if ($groupPoints < $enemyPoints) {
                    $matchStatus = 'war_lost';
                }
                if ($groupPoints == $enemyPoints) {
                    $matchStatus = 'war_drawn';
                }
            }
    
            $gameImg = $this->getBoxUrl('static/img/'.$war->getWarGame().'.png');
            if (file_exists(APPLICATION_PATH.'/modules/war/static/img/'.$war->getWarGame().'.png')) {
                $gameImg = '<img src="'.$this->getBoxUrl('static/img/'.urlencode($war->getWarGame()).'.png').'" title="'.$this->escape($war->getWarGame()).'" width="16" height="16">';
            } else {
                $gameImg = '<i class="fa fa-question-circle text-muted" title="'.$this->escape($war->getWarGame()).'"></i>';
            }
            ?>
            <div class="lastwar-box">
                <div class="row">
                    <a href="<?=$this->getUrl('war/index/show/id/' . $war->getId()) ?>">
                        <div class="col-xs-4 ellipsis">
                            <?=$gameImg ?>
                            <div class="ellipsis-item">
                                <?=$this->escape($war->getWarGroupTag()) ?>
                            </div>
                            <?=(empty($group->getGroupImage())) ? '<i class="fas fa-users"></i>' : '<img src="'.$this->getBaseUrl($group->getGroupImage()).'" title="'.$this->escape($group->getGroupName()).'" width="32" height="32" />' ?>
                        </div>
                        <div class="col-xs-2 small pull-left nextwar-vs"><?=$this->getTrans('vs') ?></div>
                        <div class="col-xs-3 ellipsis">
                            <div class="ellipsis-item">
                                <?=$this->escape($war->getWarEnemyTag()) ?>
                            </div>
                            <?=(empty($enemy->getEnemyImage())) ? '<i class="fas fa-users"></i>' : '<img src="'.$this->getBaseUrl($enemy->getEnemyImage()).'" title="'.$this->escape($enemy->getEnemyName()).'" width="32" height="32" />' ?>
                        </div>
                    </a>
                    <div class="col-xs-3 small nextwar-date">
                        <div class="ellipsis-item text-right <?=$matchStatus ?>" title="<?=$groupPoints ?>:<?=$enemyPoints ?>">
                            <?=$groupPoints ?>:<?=$enemyPoints ?>
                        </div>
                    </div>
                </div>
            </div>
        <?php endforeach; ?>
        <?php if (!$displayed) : ?>
            <?=$this->getTrans('noWars') ?>
        <?php endif; ?>
    <?php else: ?>
        <?=$this->getTrans('noWars') ?>
    <?php endif; ?>


    Du musst aber bedenken, dass bei einem Update des Moduls die Änderungen, welche nicht als ilch Standard übernommen wurden, wieder überschrieben werden.


    Zuletzt modifiziert von Lord|Schirmer am 24.05.2020 - 20:18:39
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Dr_Chaos Mitglied
    Registriert seit
    20.05.2020
    Beitrge
    9
    Beitragswertungen
    0 Beitragspunkte
    Hey,
    danke erstmal. Ich habe es schon eingesetzt. Nun tüfftle ich mal ein wenig rum wie ich es gerne optisch hätte zwinker

    Lg

    Dennis
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurck zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten