ilch Forum » Ilch CMS 2.X » Fehlersuche und Probleme » [ERLEDIGT] Artikelmodul -> fehler bei comments

Geschlossen
  1. #1
    User Pic
    MonkeyOnKeyboard Mitglied
    Registriert seit
    10.02.2014
    Beitrge
    362
    Beitragswertungen
    12 Beitragspunkte
    So ich mach nochmal ein Ticket auf zum Artikelmodul.
    und zwar fehler bei der show.php im Index eine Zeile für den DummyUser, wenn der Benutzer nicht mehr existent ist.

    ich poste mal den ganzen queltext und versuche das fehlnde, was ich bereits dazu geschrieben habe zu highliten.

    <?php function rec($id, $commentId, $uid, $req, $obj)
    {
        $commentMappers = $obj->get('commentMapper');
        $userMapper = $obj->get('userMapper');
        $fk_comments = $commentMappers->getCommentsByFKId($commentId);
        $user_rep = $userMapper->getUserById($uid);
        if (!$user_rep) $user_rep = $userMapper->getDummyUser();
        $config = $obj->get('config');
        $nowDate = new \Ilch\Date();
    
        foreach ($fk_comments as $fk_comment) {
            $commentDate = new \Ilch\Date($fk_comment->getDateCreated());
            $user = $userMapper->getUserById($fk_comment->getUserId());
            if (!$user) $user = $userMapper->getDummyUser();
            $voted = explode(',', $fk_comment->getVoted());
            if ($req >= $config->get('comment_nesting')) {
                $req = $config->get('comment_nesting');
            }
        ?>
            <article id="comment_<?=$fk_comment->getId() ?>">
                <div>
                    <div class="media-block">
                        <a class="media-left col-md-offset-<?=$req ?> col-sm-offset-<?=$req ?> hidden-xs" href="<?=$obj->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]) ?>" title="<?=$obj->escape($user->getName()) ?>">
                            <img class="img-circle comment-img" alt="<?=$obj->escape($user->getName()) ?>" src="<?=$obj->getUrl().'/'.$user->getAvatar() ?>">
                        </a>
                        <div class="media-body">
                            <div class="clearfix">
                                <div class="pull-left">
                                    <a href="<?=$obj->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]) ?>" title="<?=$obj->escape($user->getName()) ?>">
                                        <?=$obj->escape($user->getName()) ?>
                                    </a>
                                    <p class="text-muted small">
                                        <i class="fa fa-clock-o" title="<?=$obj->getTrans('commentDateTime') ?>"></i> <?=$commentDate->format('d.m.Y - H:i', true) ?>
                                    </p>
                                </div>
                                <div class="pull-right text-muted small">
                                    <i class="fa fa-reply fa-flip-vertical"></i> <?=$user_rep->getName() ?>
                                </div>
                            </div>
                            <p><?=nl2br($fk_comment->getText()) ?></p>
                            <div>
                                <?php if ($obj->getUser() && in_array($obj->getUser()->getId(), $voted) == false): ?>
                                    <div class="btn-group">
                                        <a class="btn btn-sm btn-default btn-hover-success" href="<?=$obj->getUrl(['id' => $id, 'commentId' => $fk_comment->getId(), 'key' => 'up']) ?>" title="<?=$obj->getTrans('iLike') ?>">
                                            <i class="fa fa-thumbs-up"></i> <?=$obj->escape($fk_comment->getUp()) ?>
                                        </a>
                                        <a class="btn btn-sm btn-default btn-hover-danger" href="<?=$obj->getUrl(['id' => $id, 'commentId' => $fk_comment->getId(), 'key' => 'down']) ?>" title="<?=$obj->getTrans('notLike') ?>">
                                            <i class="fa fa-thumbs-down"></i> <?=$obj->escape($fk_comment->getDown()) ?>
                                        </a>
                                    </div>
                                <?php else: ?>
                                    <div class="btn-group">
                                        <button class="btn btn-sm btn-default btn-success">
                                            <i class="fa fa-thumbs-up"></i> <?=$obj->escape($fk_comment->getUp()) ?>
                                        </button>
                                        <button class="btn btn-sm btn-default btn-danger">
                                            <i class="fa fa-thumbs-down"></i> <?=$obj->escape($fk_comment->getDown()) ?>
                                        </button>
                                    </div>
                                <?php endif; ?>
                                <?php if ($obj->getUser() && $config->get('comment_reply') == 1 && $req < $config->get('comment_nesting')-1): ?>
                                    <a href="javascript:slideReply('reply_<?=$fk_comment->getId() ?>');" class="btn btn-sm btn-default btn-hover-primary">
                                        <i class="fa fa-reply"></i> <?=$obj->getTrans('reply') ?>
                                    </a>
                                <?php endif; ?>
                            </div>
                            <hr>
                        </div>
                        <?php ++$req; ?>
    
                        <?php if ($obj->getUser()): ?>
                            <div class="replyHidden" id="reply_<?=$fk_comment->getId() ?>">
                                <form class="form-horizontal" method="POST">
                                    <?=$obj->getTokenField() ?>
                                    <div>
                                        <div class="media-block">
                                            <a class="media-left col-md-offset-<?=$req ?> col-sm-offset-<?=$req ?> hidden-xs" href="<?=$obj->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $obj->getUser()->getId()]) ?>" title="<?=$obj->escape($obj->getUser()->getName()) ?>">
                                                <img class="img-circle comment-img" alt="<?=$obj->escape($obj->getUser()->getName()) ?>" src="<?=$obj->getUrl().'/'.$obj->getUser()->getAvatar() ?>">
                                            </a>
                                            <div class="media-body">
                                                <div class="clearfix">
                                                    <div class="pull-left">
                                                        <a href="<?=$obj->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $obj->getUser()->getId()]) ?>" title="<?=$obj->escape($obj->getUser()->getName()) ?>">
                                                            <?=$obj->escape($obj->getUser()->getName()) ?>
                                                        </a>
                                                        <p class="text-muted small">
                                                            <i class="fa fa-clock-o" title="<?=$obj->getTrans('commentDateTime') ?>"></i> <?=$nowDate->format('d.m.Y - H:i', true) ?>
                                                        </p>
                                                    </div>
                                                    <div class="pull-right text-muted small">
                                                        <i class="fa fa-reply fa-flip-vertical"></i> <?=$user->getName() ?>
                                                    </div>
                                                </div>
                                                <p>
                                                    <textarea class="form-control"
                                                              style="resize: vertical"
                                                              name="comment_text"
                                                              required></textarea>
                                                    <input type="hidden" name="fkId" value="<?=$fk_comment->getId() ?>" />
                                                </p>
                                                <div>
                                                    <div class="content_savebox">
                                                        <button type="submit" class="btn btn-default btn-sm" name="saveComment" value="save">
                                                            <?=$obj->getTrans('submit') ?>
                                                        </button>
                                                    </div>
                                                </div>
                                                <hr />
                                            </div>
                                        </div>
                                    </div>
                                </form>
                            </div>
                        <?php endif; ?>
                    </div>
                </div>
            </article>
    
            <?php
            --$req;
            $fkk_comments = $commentMappers->getCommentsByFKId($fk_comment->getId());
            if (count($fkk_comments) > 0) {
                $req++;
            }
            $i = 1;
    
            foreach ($fkk_comments as $fkk_comment) {
                if ($i == 1) {
                    rec($id, $fk_comment->getId(), $fk_comment->getUserId(), $req, $obj);
                    $i++;
                }
            }
    
            if (count($fkk_comments) > 0) {
                $req--;
            }
        }
    }
    ?>
    
    <?php if ($this->get('hasReadAccess')) : ?>
        <?php
        $comments = $this->get('comments');
        $article = $this->get('article');
        $categoryMapper = $this->get('categoryMapper');
        $commentMapper = $this->get('commentMapper');
        $userMapper = $this->get('userMapper');
        $content = str_replace('[PREVIEWSTOP]', '', $article->getContent());
        $preview = $this->getRequest()->getParam('preview');
        $config = $this->get('config');
        $date = new \Ilch\Date($article->getDateCreated());
        $commentsCount = $commentMapper->getCountComments(sprintf(Modules\Article\Config\Config::COMMENT_KEY_TPL, $article->getId()));
    
        $catIds = explode(',', $article->getCatId());
        $categories = '';
        foreach ($catIds as $catId) {
            if ($catId) {
                $articlesCats = $categoryMapper->getCategoryById($catId);
                $categories .= '<a href="'.$this->getUrl(['controller' => 'cats', 'action' => 'show', 'id' => $catId]).'">'.$this->escape($articlesCats->getName()).'</a>, ';
            }
        }
        ?>
        <?php if ($preview): ?>
            <div class="article_preview"></div>
        <?php endif; ?>
    
        <?php if ($article->getTeaser()): ?>
            <h3><?=$this->escape($article->getTeaser()) ?></h3>
        <?php endif; ?>
        <h2><a href="<?=$this->getUrl(['action' => 'show', 'id' => $article->getId()]) ?>"><?=$this->escape($article->getTitle()) ?></a></h2>
        <?php if (!empty($article->getImage())): ?>
            <figure>
                <img class="article_image" src="<?=$this->getBaseUrl($article->getImage()) ?>" />
                <?php if (!empty($article->getImageSource())): ?>
                    <figcaption class="article_image_source"><?=$this->getTrans('imageSource') ?>: <?=$this->escape($article->getImageSource()) ?></figcaption>
                <?php endif; ?>
            </figure>
        <?php endif; ?>
        <?=$this->purify($content) ?>
        <hr />
        <div>
            <?php
            if ($article->getAuthorId() != ''):
                $user = $userMapper->getUserById($article->getAuthorId());
                if ($user != ''): ?>
                    <i class="fa fa-user" title="<?=$this->getTrans('author') ?>"></i> <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]) ?>"><?=$this->escape($user->getName()) ?></a>&nbsp;&nbsp;
                <?php endif; ?>
            <?php endif; ?>
            <i class="fa fa-calendar" title="<?=$this->getTrans('date') ?>"></i> <a href="<?=$this->getUrl(['controller' => 'archive', 'action' => 'show', 'year' => $date->format('Y', true), 'month' => $date->format('m', true)]) ?>"><?=$date->format('d.', true) ?> <?=$this->getTrans($date->format('F', true)) ?> <?=$date->format('Y', true) ?></a>
            &nbsp;&nbsp;<i class="fa fa-clock-o" title="<?=$this->getTrans('time') ?>"></i> <?=$date->format('H:i', true) ?>
            &nbsp;&nbsp;<i class="fa fa-folder-open-o" title="<?=$this->getTrans('cats') ?>"></i> <?=rtrim($categories, ', ') ?>
            &nbsp;&nbsp;<i class="fa fa-comment-o" title="<?=$this->getTrans('comments') ?>"></i> <a href="<?=$this->getUrl(['action' => 'show', 'id' => $article->getId().'#comment']) ?>"><?=$commentsCount ?></a>
            &nbsp;&nbsp;<i class="fa fa-eye" title="<?=$this->getTrans('hits') ?>"></i> <?=$article->getVisits() ?>
            <?php if ($article->getTopArticle()) : ?>
            &nbsp;&nbsp;<i class="fa fa-star-o" title="<?=$this->getTrans('topArticle') ?>"></i>
            <?php endif; ?>
            <?php if ($config->get('article_articleRating')) : ?>
                <?php
                $votes = explode(',', $article->getVotes());
                $countOfVotes = count($votes) - 1;
                ?>
                <?php if ($this->getUser() && in_array($this->getUser()->getId(), $votes) == false) : ?>
                    <a class="btn btn-sm btn-default btn-hover-success" href="<?=$this->getUrl(['id' => $article->getId(), 'action' => 'vote', 'from' => 'show']) ?>" title="<?=$this->getTrans('iLike') ?>">
                        <i class="fa fa-thumbs-up"></i> <?=$countOfVotes ?>
                    </a>
                <?php else: ?>
                    <button class="btn btn-sm btn-default btn-success">
                        <i class="fa fa-thumbs-up"></i> <?=$countOfVotes ?>
                    </button>
                <?php endif; ?>
            <?php endif; ?>
            <?php if ($article->getKeywords() != ''): ?>
                <br /><i class="fa fa-hashtag"></i>
                <?php $keywordsList = $article->getKeywords();
                $keywordsListArray = explode(', ', $keywordsList);
                $keywordsList = [];
                foreach ($keywordsListArray as $keyword) {
                    $keywordsList[] = '<a href="'.$this->getUrl(['controller' => 'keywords', 'action' => 'show', 'keyword' => urlencode($keyword)]).'">'.$this->escape($keyword).'</a>';
                }
                echo implode(', ',$keywordsList); ?>
            <?php endif; ?>
        </div>
    
        <?php if (empty($preview) && !$article->getCommentsDisabled()): ?>
            <?php $nowDate = new \Ilch\Date(); ?>
            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header" id="comment"><?=$this->getTrans('comments') ?> (<?=$commentsCount ?>)</h1>
                    <?php if ($this->getUser()): ?>
                        <div class="reply">
                            <form class="form-horizontal" method="POST">
                                <?=$this->getTokenField() ?>
                                <section class="comment-list">
                                    <div class="panel">
                                        <div class="panel-body">
                                            <div class="media-block">
                                                <a class="media-left hidden-xs" href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $this->getUser()->getId()]) ?>" title="<?=$this->escape($this->getUser()->getName()) ?>">
                                                    <img class="img-circle comment-img" alt="<?=$this->escape($this->getUser()->getName()) ?>" src="<?=$this->getUrl().'/'.$this->getUser()->getAvatar() ?>">
                                                </a>
                                                <div class="media-body">
                                                    <div>
                                                        <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $this->getUser()->getId()]) ?>" title="<?=$this->escape($this->getUser()->getName()) ?>">
                                                            <?=$this->escape($this->getUser()->getName()) ?>
                                                        </a>
                                                        <p class="text-muted small">
                                                            <i class="fa fa-clock-o" title="<?=$this->getTrans('commentDateTime') ?>"></i> <?=$nowDate->format('d.m.Y - H:i', true) ?>
                                                        </p>
                                                    </div>
                                                    <p>
                                                        <textarea class="form-control"
                                                                  style="resize: vertical"
                                                                  name="comment_text"
                                                                  required></textarea>
                                                    </p>
                                                    <div>
                                                        <div class="content_savebox">
                                                            <button type="submit" class="btn btn-default btn-sm" name="saveComment" value="save">
                                                                <?=$this->getTrans('submit') ?>
                                                            </button>
                                                        </div>
                                                    </div>
                                                    <hr />
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </section>
                            </form>
                        </div>
                    <?php endif; ?>
                    <?php foreach ($comments as $comment): ?>
                        <?php $user = $userMapper->getUserById($comment->getUserId());
                        if (!$user) $user = $userMapper->getDummyUser();
                        ?>
                        <?php $commentDate = new \Ilch\Date($comment->getDateCreated()); ?>
                        <?php $voted = explode(',', $comment->getVoted()); ?>
                        <section class="comment-list">
                            <article id="comment_<?=$comment->getId() ?>">
                                <div class="panel">
                                    <div class="panel-body">
                                        <div class="media-block">
                                            <a class="media-left hidden-xs" href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]) ?>" title="<?=$this->escape($user->getName()) ?>">
                                                <img class="img-circle comment-img" alt="<?=$this->escape($user->getName()) ?>" src="<?=$this->getUrl().'/'.$user->getAvatar() ?>">
                                            </a>
                                            <div class="media-body">
                                                <div>
                                                    <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $user->getId()]) ?>" title="<?=$this->escape($user->getName()) ?>">
                                                        <?=$this->escape($user->getName()) ?>
                                                    </a>
                                                    <p class="text-muted small">
                                                        <i class="fa fa-clock-o" title="<?=$this->getTrans('commentDateTime') ?>"></i> <?=$commentDate->format('d.m.Y - H:i', true) ?>
                                                    </p>
                                                </div>
                                                <p><?=nl2br($this->escape($comment->getText())) ?></p>
                                                <div>
                                                    <?php if ($this->getUser() && in_array($this->getUser()->getId(), $voted) == false): ?>
                                                        <div class="btn-group">
                                                            <a class="btn btn-sm btn-default btn-hover-success" href="<?=$this->getUrl(['id' => $article->getId(), 'commentId' => $comment->getId(), 'key' => 'up']) ?>" title="<?=$this->getTrans('iLike') ?>">
                                                                <i class="fa fa-thumbs-up"></i> <?=$this->escape($comment->getUp()) ?>
                                                            </a>
                                                            <a class="btn btn-sm btn-default btn-hover-danger" href="<?=$this->getUrl(['id' => $article->getId(), 'commentId' => $comment->getId(), 'key' => 'down']) ?>" title="<?=$this->getTrans('notLike') ?>">
                                                                <i class="fa fa-thumbs-down"></i> <?=$this->escape($comment->getDown()) ?>
                                                            </a>
                                                        </div>
                                                    <?php else: ?>
                                                        <div class="btn-group">
                                                            <button class="btn btn-sm btn-default btn-success">
                                                                <i class="fa fa-thumbs-up"></i> <?=$this->escape($comment->getUp()) ?>
                                                            </button>
                                                            <button class="btn btn-sm btn-default btn-danger">
                                                                <i class="fa fa-thumbs-down"></i> <?=$this->escape($comment->getDown()) ?>
                                                            </button>
                                                        </div>
                                                    <?php endif; ?>
                                                    <?php if ($this->getUser() && $config->get('comment_reply') == 1 && $config->get('comment_nesting') > 0): ?>
                                                        <a href="javascript:slideReply('reply_<?=$comment->getId() ?>');" class="btn btn-sm btn-default btn-hover-primary">
                                                            <i class="fa fa-reply"></i> <?=$this->getTrans('reply') ?>
                                                        </a>
                                                    <?php endif; ?>
                                                </div>
                                                <hr />
    
                                                <?php if ($this->getUser()): ?>
                                                    <div class="replyHidden" id="reply_<?=$comment->getId() ?>">
                                                        <form class="form-horizontal" method="POST">
                                                            <?=$this->getTokenField() ?>
                                                            <div>
                                                                <div class="media-block">
                                                                    <a class="media-left hidden-xs" href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $this->getUser()->getId()]) ?>" title="<?=$this->escape($this->getUser()->getName()) ?>">
                                                                        <img class="img-circle comment-img" alt="<?=$this->escape($this->getUser()->getName()) ?>" src="<?=$this->getUrl().'/'.$this->getUser()->getAvatar() ?>">
                                                                    </a>
                                                                    <div class="media-body">
                                                                        <div class="clearfix">
                                                                            <div class="pull-left">
                                                                                <a href="<?=$this->getUrl(['module' => 'user', 'controller' => 'profil', 'action' => 'index', 'user' => $this->getUser()->getId()]) ?>" title="<?=$this->escape($this->getUser()->getName()) ?>">
                                                                                    <?=$this->escape($this->getUser()->getName()) ?>
                                                                                </a>
                                                                                <p class="text-muted small">
                                                                                    <i class="fa fa-clock-o" title="<?=$this->getTrans('commentDateTime') ?>"></i> <?=$nowDate->format('d.m.Y - H:i', true) ?>
                                                                                </p>
                                                                            </div>
                                                                            <div class="pull-right text-muted small">
                                                                                <i class="fa fa-reply fa-flip-vertical"></i> <?=$this->escape($user->getName()) ?>
                                                                            </div>
                                                                        </div>
                                                                        <p>
                                                                            <textarea class="form-control"
                                                                                      style="resize: vertical"
                                                                                      name="comment_text"
                                                                                      required></textarea>
                                                                            <input type="hidden" name="fkId" value="<?=$comment->getId() ?>" />
                                                                        </p>
                                                                        <div>
                                                                            <div class="content_savebox">
                                                                                <button type="submit" class="btn btn-default btn-sm" name="saveComment" value="save">
                                                                                    <?=$this->getTrans('submit') ?>
                                                                                </button>
                                                                            </div>
                                                                        </div>
                                                                        <hr />
                                                                    </div>
                                                                </div>
                                                            </div>
                                                        </form>
                                                    </div>
                                                <?php endif; ?>
                                                <?php rec($article->getId(), $comment->getId(), $comment->getUserId(), 0, $this); ?>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </article>
                        </section>
                    <?php endforeach; ?>
                </div>
            </div>
        <?php endif; ?>
    <?php else: ?>
        <?=$this->getTrans('noArticles') ?>
    <?php endif; ?>
    
    <script>
    function slideReply(thechosenone) {
        $('.replyHidden').each(function(index) {
            if ($(this).attr("id") == thechosenone) {
                $(this).slideToggle(400);
            } else {
                $(this).slideUp(200);
            }
        });
    }
    </script>


    es fehlt genau das:

    <?php $user = $userMapper->getUserById($comment->getUserId());
                        if (!$user) $user = $userMapper->getDummyUser();
                        ?>



    verwendete ilch Version: 2.1.x

    betroffene Homepage: www.r1sing.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    blackcoder Entwickler
    Registriert seit
    22.05.2014
    Beitrge
    1.745
    Beitragswertungen
    266 Beitragspunkte
    Danke. lcheln
    Konnte das Problem beim Artikel-Modul nachvollziehen, aber letztens beim Veranstaltungen-Modul nicht.
    www.ilch.de/forum-showposts-56020-p1.html#399684

    Ist mit dem nächsten Update behoben.

    // Edit:
    github.com/IlchCMS/Ilch-2.0/commit/d583a29812e9eaeb902630421a4915d95a7a03bb


    Zuletzt modifiziert von blackcoder am 29.03.2020 - 08:45:00
    Bitte Fragen zu Ilch im Forum stellen. Kein Support per PN.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurck zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten