Hi, I've been building a site and using the sitesearch plugin from the start. It's been working beautifully, but for some reason now it has simply stopped working. I get this error below. My site search is part of a "search page" layout and then I have written some text and things as a Static Page. The page works fine, but when a search query is attached to the URL, it breaks. I get this error:
Undefined index: title /var/www/vhosts/ccdevhub.com/octest.ccdevhub.com/plugins/offline/sitesearch/classes/providers/RainlabPagesResultsProvider.php line 30
if ( ! $this->isInstalledAndEnabled()) {
return $this;
}
foreach ($this->pages() as $page) {
// Make this result more relevant, if the query is found in the title
// line 30 // $relevance = $this->containsQuery($page->viewBag['title']) ? 2 : 1;
$result = new Result($this->query, $relevance);
$result->title = $page->viewBag['title'];
$result->text = $page->parsedMarkup;
$result->url = $this->getUrl($page);
Last updated
I've even tried making the page as a standard page via the CMS pages method too. Same error occurs!
Hi
I am unable to reproducte this problem. What build of October are your running? What version of Rainlab.Pages is installed?
What is the output of a dd($page);
inside the quoted code snipped above?
Last updated
Hi,
It's the latest October CMS version. It seems to break on some search terms but not others, here is the site (under construction) -> http://octest.ccdevhub.com/
I'm not sure what the output of a dd($page); is, sorry
Last updated
Sorry, I don't know what a dd($page) is? should I just add " dd($page) " to line 29?
Update -- dd($page) now added to line 29
Last updated
You'll have to add a ;
as well.
foreach ($this->pages() as $page) {
// Make this result more relevant, if the query is found in the title
dd($page);
$relevance = $this->containsQuery($page->viewBag['title']) ? 2 : 1;
Can you replace it by $this->pages()
? It looks like one of your static pages doesn't have the proper meta data saved and this is causing this problem.
foreach ($this->pages() as $page) {
// Make this result more relevant, if the query is found in the title
dd($this->pages());
$relevance = $this->containsQuery($page->viewBag['title']) ? 2 : 1;
No, look at the snippet above. You have to leave the foreach
but place $this->pages()
inside the dd()
call.
Last updated
Check your report-breakdown-immediate-coevr.htm
static page. This page contains no data (title, content). If you don't need it anymore, make sure to remove it from your server (themes/xy/content) or open and save the page in your backend to make sure all necessary data is written.
You can remove the dd() statement from the plugin's code now.
ok sure, i have some pages that need removing that I am no longer using. Do you think that is what the issue was?
Yes I'm pretty sure. The plugin tries to search through the page's title but fails to do so if the page doesn't have a title...
I got this error after plugin update (v 1.3.3):
Undefined index: title RainlabPagesResultsProvider.php line 31
$relevance = $this->containsQuery($page->viewBag['title']) ? 2 : 1;
Last updated
zooks said:
Undefined index: title
I got this error because one of static pages didn't have [viewBag] section. But I think the plugin should handle the error.