Jump to content

Server error getLanguageValue


mds
 Share

Recommended Posts

I'm getting this error.

Error: Uncaught Error: Call to a member function getLanguageValue() on null in /Applications/MAMP/htdocs/site/templates/_head.php:36
Stack trace:
#0 /Applications/MAMP/htdocs/site/templates/home.php(1): include_once()
#1 /Applications/MAMP/htdocs/wire/core/TemplateFile.php(268): require('/Applications/M...')
#2 /Applications/MAMP/htdocs/wire/core/Wire.php(374): ProcessWire\TemplateFile->___render()
#3 /Applications/MAMP/htdocs/wire/core/WireHooks.php(698): ProcessWire\Wire->_callMethod('___render', Array)
#4 /Applications/MAMP/htdocs/wire/core/Wire.php(402): ProcessWire\WireHooks->runHooks(Object(ProcessWire\TemplateFile), 'render', Array)
#5 /Applications/MAMP/htdocs/wire/modules/PageRender.module(514): ProcessWire\Wire->__call('render', Array)
#6 [internal function]: ProcessWire\PageRender->___renderPage(Object(ProcessWire\HookEvent))
#7 /Applications/MAMP/htdocs/wire/core/Wire.php(376): call_user_func_array(Array, Array)
#8 /Applications/MAMP/htdocs/wi (line 36 of /Applications/MAMP/htdocs/site/templates/_head.php) 

This error message was shown because: you are logged in as a Superuser. Error has been logged.

 

I got the error after installing the module ProcessWireUpgrade and upgrading ProcessWire Core Dev to 3.0.46.

This is what is in the _head.php file (standard form multi-language setup. The line with the error starts with $hreflang

	<?php

	// handle output of 'hreflang' link tags for multi-language
	// this is good to do for SEO in helping search engines understand
	// what languages your site is presented in
	foreach($languages as $language) {
		// if this page is not viewable in the language, skip it
		if(!$page->viewable($language)) continue;
		// get the http URL for this page in the given language
		$url = $page->localHttpUrl($language);
		// hreflang code for language uses language name from homepage
		$hreflang = $homepage->getLanguageValue($language, 'name');
		// output the <link> tag: note that this assumes your language names are the same as required by hreflang.
		echo "\n\t<link rel='alternate' hreflang='$hreflang' href='$url' />";
	}

	?>

 

How do I begin to fix this error?

Link to comment
Share on other sites

Looking at the languages site profile, there is no _head.php file: https://github.com/processwire/processwire/tree/dev/site-languages/templates

Maybe you are combining files from different profiles?

Regardless, the key thing is that $homepage is null so you need to define it somewhere before the line that calls the getLanguageValue on it. Currently the languages site profile does this in the _init.php file: https://github.com/processwire/processwire/blob/e12095e622555fe79cd792dea1ed7d671e37d9d4/site-languages/templates/_init.php#L26

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...