Recent Topics

Problems with sitemap generation

Started by on Nov 27, 2018 – Contents updated: Jun 19, 2019

Nov 27, 2018 11:44    

Dear b2evolution users (and admins)

I tried resolving my problem on an existing but old tread:
https://forums.b2evolution.net/xml-sitemap-exporter#c102438

But I have not had success yet, so on good advice I am starting a new thread.
I am now running 6.10.4-stable released on 11/19/18. On the thread above I was running 6.10.2, but the issue remains the same.

  • I want to create a sitemap.php, which I can upload to my root folder, which google console can access and get a freshly generated xml sitemap.

Now on this manual page:
http://b2evolution.net/man/advanced-topics/how-to/make-a-site-map
there is a downloadable file called sitemap_blogs.txt (or sitemap_a.txt) which is supposed to be renamed to xxxxxxxx.php and put in the root folder.

I did that, and I can succesfully force a different skin, for example (odd as it looks, but it loads):
https://www.spiritwalkabout.com/sitemap_a.php

However, in this link I have put $tempskin='_sitemap', but the output is not an xml sitemap. I don't know what it attempts to load ? :
https://www.spiritwalkabout.com/sitemap_a1.php

(sitemap_a.php and sitemap_a1.php are identical except for the $tempskin value)

Any help greatly appreciated, Regards Jan Kirk

Nov 27, 2018 13:38

Is there a setting that allows for an https connection in your OK skin and not one for the sitemap?
I've seen 404 issues as a consequence of settings in the image in next post
Edited this and then can't add image ??

Nov 27, 2018 16:53

On the skin which loads, it was set to always https. I changed it to 'both'.
On the _sitemap skin the only setting I found was under system (pic attached at the end).
(it doesnt seem that I can install it for a blog (edit: use it for a blog), even if I wanted to as a test)

Note: But my main concern is that, in what seems to be the _sitemap skin, it begins to load a normal webpage (with menu, etc.), instead of some text output, which is a sitemap ?
Is it really using the _sitemap skin or what is happening ?

Nov 27, 2018 17:54

404 ??

I can get to https://www.spiritwalkabout.com/skins/_sitemap/index.main.php so it isn't permissions.

You could put temp text in the [/skins/_sitemap/index.main.php]

echo "Hello! this file is accessible";
die();
if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );

then move the two lines down the file to find out where it bombs out

Nov 28, 2018 07:20

If I move this:

echo "Hello! this file is accessible";
die();
if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );

In: https://www.spiritwalkabout.com/skins/_sitemap/index.main.php

Then it dies on the very first line (when accessed directly):
$Timer->resume( 'prepare list' );
With the error:
Fatal error: Uncaught Error: Call to a member function resume() on null in /var/www/spiritwalkabout.com/public_html/skins/_sitemap/index.main.php:13 Stack trace: #0 {main} thrown in /var/www/spiritwalkabout.com/public_html/skins/_sitemap/index.main.php on line 13

About your 2nd post:
I can find this when using the inspecting tool:
<body class="desktop_device page_notcached coll_1 disp_404 detail_404-sitemaps-disabled item_none anonymous evo_toolbar_hidden usergroup_none">

But what does it mean?

  • That sitemaps are disabled for the 404 page only, the blog, or the whole site ?

When I see it I think, perhaps this is to prevent a crawler from registering the 404 page and becoming searchable ?

Does most skins have a variable you can edit manually to allow/forbid sitemaps ?

Nov 28, 2018 11:19

Sorry my instructions may not be clear the only code to add/move is

echo "hello";
die()

If you move the other line then yes is will do as you said. However by removing the original line 11 and the failure as you describe does show that the file fails at the first instruction
$Timer->resume( 'prepare list' );

confirming the previous error message indicates a failure of the skin being defined. ?*? I'm a bit slow at this :)
I'm going back to basics

1) Unlike other skins it isn't installed actively it's just in the [/skin] folder
2) If you upgrade ensure that the skin is the same version, in [_skin.class.php] though you had this problem with 6.10.2 ???

3) I've ttried removing the line

$Timer->resume( 'prepare list' );

and I get errors/warning but the output has details but no formatting.

See if you can at least get the output in 3) and then it's just this defing issue

Nov 28, 2018 11:33

Been messing for an hour or two
Can you try commenting out line 11 and 13 and see if you get any output ?

//if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );

//$Timer->resume( 'prepare list' );

For example my output then becomes as at http://calstock.org.uk/sitemap_vow.php

Nov 28, 2018 12:13

If I outcomment like this:
/ if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );
$Timer->resume( 'prepare list' );
/

And call directly again: https://www.spiritwalkabout.com/skins/_sitemap/index.main.php

Then it just fails at the next line:
load_class( '/items/model/_itemlistlight.class.php', 'ItemListLight' );
with:

Fatal error: Uncaught Error: Call to undefined function load_class() in /var/www/spiritwalkabout.com/public_html/skins/_sitemap/index.main.php:15 Stack trace: #0 {main} thrown in /var/www/spiritwalkabout. com/public_html/skins/_sitemap/index.main.php on line 15

(Thought: does the failure happen because because of direct call)

So, some code is somehow not available (?) to index.main.php, and then it does a fallback of some kind I guess.
But how the code is not available, I guess that's the question now. Is it a setting of mine, or ?

The version in _skin.class.php is correct (6.10.4), amd it was also correct (6.10.2) before I upgraded.

Nov 28, 2018 12:30

Until someone comes up with a proper solution re the fault, I can only suggest making a new skin from scratch. In doing so you will see if is defined. If it is then you can change the content to that of the sitemap skin.

I'm tempted to try and just take the code and put it in another named skin that does work.

I think I would try modifying the [/skins/basic], which I don't use and input the code form the sitemap and see if it gives the wanted out put.

Nov 28, 2018 12:51

I've changed my [/skin/basic] to the sitemap and it works as expected when I installed is as my main skin
I deleted all the files in the skin replaced them with the two from sitemap and change line 18 in _skin.class.php

class basic_Skin extends Skin

Nov 28, 2018 12:56

Have now changed the $tempskin = 'basic'; in my [/sitemap_vow.php] and it also works fine

Going off-line now. Good luck. Speak latter

Nov 28, 2018 15:13

Well, finally something happened.

I did as you did:
Deleted files in basic, put the 2 files from _sitemap, renamed to 'basic' in that line in _skin.class.php
I kept the skin setting type as standard (not XML sitemap)

I chose to install the skin in my blog no 5.
If I do that the I get the sitemap output.
So now I can generate a sitemap, but my webpage are not worth much if the user sees a XML sitemap instead of a webpage.

If I keep my normal skin (business) and set $blog=5 and $tempskin='basic' in the stub file then I am back to a normal fallback loading of menu etc. but a 404 page instead of content.

So it seems, when I am loading the skin via the stub then it looks in the wrong place for something ??

Nov 28, 2018 17:44

You can make a collection that is a combined collection then have the skin like the sitemap for now.
Clearly though there is a problem neither of us can find yet.

Nov 29, 2018 05:53

That could be a workaround for now.
But I would very much like to find the problem, whatever it is, it could affect other things too.

Thank you so much for all your help Amoun :-)


Form is loading...

b2evolution – This forum is powered by b2evolution CMS, a complete engine for your website.