Zum Fehler kommt das:
<b>Fatal error</b>: Uncaught Error: Call to a member function getId() on null in /home/r1sing/public_html/application/layouts/omfg/views/modules/article/index/show.php:285 Stack trace: #0 /home/r1sing/public_html/application/libraries/Ilch/View.php(22): include() #1 /home/r1sing/public_html/application/libraries/Ilch/Page.php(154): Ilch\View->loadScript('/home/r1sing/pu...') #2 /home/r1sing/public_html/index.php(66): Ilch\Page->loadPage() #3 {main}
<?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() AND in_array($obj->getUser()->getId(), $voted) == false): ?> <div class="btn-group"> <a class="btn btn-sm btn-success 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-danger 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-success btn-success"> <i class="fa fa-thumbs-up"></i> <?=$obj->escape($fk_comment->getUp()) ?> </button> <button class="btn btn-sm btn-danger btn-danger"> <i class="fa fa-thumbs-down"></i> <?=$obj->escape($fk_comment->getDown()) ?> </button> </div> <?php endif; ?> <?php if ($obj->getUser() AND $config->get('comment_reply') == 1 AND $req < $config->get('comment_nesting')-1): ?> <a href="javascript:slideReply('reply_<?=$fk_comment->getId() ?>');" class="btn btn-sm btn-primary btn-hover-primary"> <i class="fa fa-reply"></i> <?=$obj->getTrans('reply') ?> </a> <?php endif; ?> </div> <hr> </div> <?php $req = $req + 1; ?> <?php if ($obj->getUser()): ?> <div class="replyHidden" id="reply_<?=$fk_comment->getId() ?>"> <form class="form-horizontal" action="" 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 = $req-1; $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>, '; } } ?> <div class="boxes mb-3"> <div class="newsShow"> <div class="top mb-3"> <?php if (!empty($article->getImage())): ?> <img class="newsimg" src="<?=$this->getBaseUrl($article->getImage()) ?>" /> <?php endif; ?> <div class="title text-center"> <?php if ($article->getTeaser()): ?> <h3><?=$this->escape($article->getTeaser()) ?></h3> <?php endif; ?> </div> </div> <div class="info"> <i class="fa fa-calendar" title="<?=$this->getTrans('date') ?>"></i> <?=$date->format('d.', true) ?> <?=$this->getTrans($date->format('F', true)) ?> <?=$date->format('Y', true) ?> <i class="fa fa-clock-o" title="<?=$this->getTrans('time') ?>"></i> <?=$date->format('H:i', true) ?> <i class="fa fa-folder-open-o" title="<?=$this->getTrans('cats') ?>"></i> <?=rtrim($categories, ', '); ?> <i class="fa fa-comment-o" title="<?=$this->getTrans('comments') ?>"></i> <a href="<?=$this->getUrl(['action' => 'show', 'id' => $article->getId().'#comment']) ?>"><?=$commentsCount ?></a> <i class="fa fa-eye" title="<?=$this->getTrans('hits') ?>"></i> <?=$article->getVisits() ?> <?php if ($article->getTopArticle()) : ?> <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() AND 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' => $keyword]).'">'.$keyword.'</a>'; } echo implode(", ",$keywordsList); ?> <?php endif; ?> </div> <div class="content"> <div class="shin"> <div class="pad"> <?=$content ?> </div> </div> </div> </div> </div> <div class="boxes"> <?php if (empty($preview)): ?> <?php $nowDate = new \Ilch\Date(); ?> <div class="row"> <div class="col-lg-12"> <h1 class="dividerO" id="comment"> <?=$this->getTrans('comments') ?> (<?=$commentsCount ?>) </h1> <?php if ($this->getUser()): ?> <div class="reply"> <form action="" 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; ?> </div> </div> <?php endif; ?> <?php foreach ($comments as $comment): ?> <?php $user = $userMapper->getUserById($comment->getUserId()); ?> <?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> <?php endif; ?> <script> function slideReply(thechosenone) { $('.replyHidden').each(function(index) { if ($(this).attr("id") == thechosenone) { $(this).slideToggle(400); } else { $(this).slideUp(200); } }); } </script>
Leider finde ich den fehler nicht, da die sachen asu dem original article modul genommen wurden.
verwendete ilch Version: 2.1.x
betroffene Homepage: www.r1sing.de