Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fehlermeldung: Call to a member function getName() on null #375

Closed
NilsWdnr opened this issue Aug 24, 2023 · 5 comments
Closed

Fehlermeldung: Call to a member function getName() on null #375

NilsWdnr opened this issue Aug 24, 2023 · 5 comments

Comments

@NilsWdnr
Copy link

Description / Beschreibung
Folgende Fehlermeldung erhalte ich bei der Ausgabe der Suchergebnisse: "Call to a member function getName() on null".
Der Fehler tritt auch bei Verwendung der Beispiel-Modulausgabe auf.

Affected versions / Verwendete Versionen
Version 6.9.8

REDAXO: 5.15.1
PHP: 8.1.21
Database: MySQL 5.7.42
Browser: Firefox/116.0
AddOns:
backup: 2.9.0
be_style: 3.2.0
be_style/redaxo: 3.2.0
bloecks: 3.1.1
bloecks/cutncopy: 3.1.1
bloecks/dragndrop: 3.1.1
consent_manager: 4.1.3
cronjob: 2.10.0
developer: 3.9.2
forcal: 3.7.3
install: 2.11.1
mblock: 3.4.12
media_manager: 2.14.0
mediapool: 2.13.0
metainfo: 2.10.0
mform: 7.3.0
project: dev
search_it: 6.9.8
search_it/documentation: 6.9.8
structure: 2.15.0
structure/content: 2.15.0
theme: 1.4.0
tinymce5: 1.2.17
uploader: 2.4.1
users: 2.10.0
yform: 4.1.1
yform/email: 4.1.1
yform/manager: 4.1.1
yrewrite: 2.10.0
yrewrite_metainfo: 1.1.0

Did it whoops? / Whoops erhalten?
Ja

Error: Call to a member function getName() on null
File: rex:///module/51/output
Line: 28

Stacktrace
Function File Line
require redaxo/cache/addons/structure/261.1.content 94
require redaxo/src/addons/structure/plugins/content/lib/article_content.php 123
rex_article_content->getArticle rex:///template/18 73
require redaxo/src/addons/structure/plugins/content/lib/article_content_base.php 456
rex_article_content_base->{closure} redaxo/src/core/lib/util/timer.php 56
rex_timer::measure redaxo/src/addons/structure/plugins/content/lib/article_content_base.php 457
rex_article_content_base->getArticleTemplate redaxo/src/addons/structure/plugins/content/boot.php 58
rex_package::{closure} redaxo/src/core/lib/extension.php 52
rex_extension::{closure} redaxo/src/core/lib/util/timer.php 56
rex_timer::measure redaxo/src/core/lib/extension.php 63
rex_extension::registerPoint redaxo/src/core/frontend.php 22
require redaxo/src/core/boot.php 155
require index.php 9
@tyrant88
Copy link
Member

Kannst du bitte auch den ModulCode des Moduls 51 mit der Zeile 28 posten?

@NilsWdnr
Copy link
Author

`


[search_it] Suchergebnisse - Einfaches Beispielmodul


<?php
$server = rtrim(rex::getServer(),"/");
$request = rex_request('search', 'string', false);

if($request) {
$search_it = new search_it();
$result = $search_it->search($request);
# dump($result); // Zum Debuggen ausgeben.

if($result['count']) {
    echo '<h2 class="search_it-headline">{{ Suchergebnisse }}</h2>';

    echo '<ul class="search_it-results">';
    foreach($result['hits'] as $hit) {

        # dump($hit);
        if($hit['type'] == 'article') {
            $article = rex_article::get($hit['fid']);
            $hit_server = $server;
            if(rex_addon::get('yrewrite')->isAvailable()) {
                $hit_domain = rex_yrewrite::getDomainByArticleId($hit['fid'], $hit['clang']);
                $hit_server = rtrim($hit_domain->getUrl(), "/");
            }
            echo '<li class="search_it-result search_it-article">
                      <p class="search_it-title">
                          <a href="'.$hit_server.rex_getUrl($hit['fid'], $hit['clang'], array('search_highlighter' => $request)).'" title="'.$article->getName().'">'.$article->getName().'</a>
                      </p>
                      <p class="search_it-url">'.$hit_server.rex_getUrl($hit['fid'], $hit['clang']).'</p>
                      <p class="search_it-teaser">'.$hit['highlightedtext'].'</p>
                  </li>';
        } else {
            echo '<p class="search_it-missing_type">Das Suchergebnis vom Typ <i class="search_it-type">'.$hit['type'].' </i> kann nicht dargestellt werden.</p>';
        }

    }
    echo '</ul>';
} else if(!$result['count']) {
    echo '<p class="search_it-zero">Die Suche nach <i class="search_it-request">'.rex_escape($request).' </i> ergab keine Treffer.</p>';
}

}
?>

`

@tyrant88
Copy link
Member

$article = rex_article::get($hit['fid']);
ergibt wohl null bei dir...
Das würde daraufhin deuten, dass im Index noch ein Artikel ist, der mittlerweile vielleicht gelöscht wurde.

Dem Code würde aber auch ein if (isset($article)) ... gut tun für solche Fälle.

@NilsWdnr
Copy link
Author

Ja ein if (isset($article)) löst hier das Problem bei mir. Dass das durch einen gelöschten Artikel im Index ausgelöst wird klingt plausibel.

@tyrant88
Copy link
Member

Ich habe den Code des Moduls in der Doku bereits geändert.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants