Update: There is be a new version of this module. Click here to get it.
I created a module that generates XML Sitemaps for Pligg ( the well known open source cms used for creating sites similar to digg.com ).
The module generates a sitemap index and sitemaps with all the stories in the database dynamically so nothing is stored on disk and you don't have to set a cron job to generate it.
The sitemaps are updated automatically when a new story is submitted. Because of the structure of the sitemap index and because it contains "lastmod" info, the search engines should only download the latest entries in the index so you shouldn't worry about the module putting too much load on your system.
There is also a "ping" function that will announce google, yahoo and ask.com every time a new story is submitted so that they know they have to download the sitemap. The ping function required a little patching to pligg source code to add some hooks ( only if you use 9.6, 9.7 should already have those hooks ). Here is the diff file in case you use pligg 0.9.6 : pligg submit hooks diff
The module was only tested on pligg 0.9.6, I haven't upgraded to 0.9.7 yet, so if you try this on 0.9.7 let me know how it works, any feedback is appreciated.
Download:
You can download Xml_Sitemaps module from here: xml_sitemaps-0.1.tar.gz and in case you want to verify it here is the md5 sum and the sha256 sum
the code is released under the same license as pligg, so feel free to use it, modify and share.
Installation:
This is pretty straight forward, you have to install this like any other pligg module, just put the .tar.gz file in the modules, un-archive it then go into pligg admin and activate it. If you use pligg 0.9.6 and you want to be able to ping the search engines don't forget to apply the submit hooks patch .
Configuration:
After installation you should be able to access the sitemap index like this : http://yourdomain.com/module.php?module=xml_sitemaps_show_sitemap or if you want the sitemap to look friendly ( btw ask.com will only accept a friendly sitemap ending in .xml ) , you just have to go into Admin->Configuration->XmlSitemaps and enable "Sitemap Friendly URL", and if you do that then you have to put the following lines in your .htaccess somewhere before the line "##### URL Method 2 ("Clean" URLs) Begin #####" :
RewriteRule ^sitemapindex.xml module.php?module=xml_sitemaps_show_sitemap [L] RewriteRule ^sitemap-([a-zA-Z0-9]+).xml module.php?module=xml_sitemaps_show_sitemap&i=$1 [L]
Here is how the index looks on a site with sitemap friendly urls enabled: http://sapa.ro/sitemapindex.xml
There are other configuration options in there, you can set the maximum number of stories to put in a sitemap, and you can chose whether to ping any of the three search engines supported. You can also set your yahoo.com key in there if you want to ping yahoo.
That's it! Happy Sitemapping! and as always ... let me know how it works in the comments.
Hi
I am trying this in 9.7 and am getting the following error:
Fatal error: Unknown function: clear_cache() in /home/delhirea/public_html/delhirealestate/modules/xml_sitemaps/xml_sitemaps_install.php on line 5
I could install it after commenting that line. Thanks
I guess they removed or renamed that function. That was useful only when you enable/re enable the module. So you should be fine without it. Maybe just delete everything in the cache/ folder after you enable the module.
Hey there, great tools, have one question though: I installed and activated the module but when I looked at the sitemap http://www.ebenta.com/module.php?module=xml_sitemaps_show_sitemap&i=0, i found out that the date shown was invalid. I am getting c on it. What is wrong with the installation? Is this by default the settings? How can I correct it to show the right date format (sample: 2005-02-21T18:00:15+00:00)? Any help is appreciated.
Here is the url of my sitemap: http://www.ebenta.com/module.php?module=xml_sitemaps_show_sitemap
Thanks.
The problem is the php version that you use. Most likely you have php 4.x.
The module uses the date function with the “c” format, which was added in php 5 .
So either switch to php 5 or modify the module, and replace date(“c” with something like date(“Y-m-dTH:i:s” …
Switching to php 5 is recommended since the php development team will drop support for php 4 soon
Great! I figured it out. I am running 4.x. Fixed it. Thanks!
Looks great! I ran into a couple of problems:
1. It looks like it’s already been figured out: PHP5 is required
2. xml_sitemaps_main.php:Line 88 should change UNIX_TIMESTAMPT to UNIX_TIMESTAMP
3. xml_sitemaps_install.php:Line 22 should change ^sitemap-([0-9]+).xml to ^sitemap-([a-zA-Z0-9]+).xml
4. Categories aren’t being escaped to their safe names. I have some categories with ampersands (&) that don’t display when following the sitemap link
5. The site’s URLMethod configuration is being ignored. I’m using URLMethod 1 (non-clean URLS), but the sitemap generated uses clean URLs
thanks for the feedback. I’ll release a fix soon. If you have a patch feel free to submit it.
Hi
I am trying this in 9.7 and am getting the following error:
Fatal error: Unknown function: clear_cache() in /home/delhirea/public_html/delhirealestate/modules/xml_sitemaps/xml_sitemaps_install.php on line 5
It would be a good idea to read the other comments before you post…someone may have found a fix…
I am getting the following error when I go to my sitemap, is there a way to fix this ?
Warning
: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ‘select link_modified from linka_links where link_status!=’disca in
/home/nzweblink/linka/libs/db.php
on line
207
−
−
http://www.linka.co.nz/module.php?module=xml_sitemaps_show_sitemap&i=0
1970-01-01T12:00:00+12:00
−
http://www.linka.co.nz/sitemap-pages.xml
It may be a problem with your php configuration options. Maybe you have magic_quotes_gpc enabled and the data may get double escaped…
It would help if you could echo that sql before the error so that we have the whole sql query too look at and debug.
How do you mean “it would help if you could echo that sql before the error”, sorry I don’t understand.
Click here to go to the page where the error is
look xml_sitemaps_main.php, at line 17 there should be this:
$sql = “SELECT count(*) FROM “.table_links.” WHERE link_status!=’discard'”;
look in the database and see if the link_status field exists…
try to run this query :
select link_modified from linka_links where link_status!=’discard’
in phpmyadmin or the mysql client manually and see what result you get …
when I run the sql query: SELECT link_modified FROM linka_links WHERE link_status != ‘discard’
The result shows link_modified with a number below eg (20070712192533), running the query returns a normal result with no errors
The link_status field does exist
Did you check that line ( 17 ) in xml_sitemaps_main.php ?
How does it look ?
This is how it looks:
$sql = “SELECT count(*) FROM “.table_links.” WHERE link_status!=’discard'”;
Please tell me solution for this error
Warning
: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘XmlSitemaps_Links_per_sitemap ) l’ at line 1 in
/home/tagrin/public_html/libs/db.php
on line
233
To what you wrote ok you have not set up the sitemap in the admin section
Goto
Pligg beta 9 Home » Admin » Configure Pligg Beta 9
and if you do this it will remove all of the sql database problems like
Warning
: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘XmlSitemaps_Links_per_sitemap ) l’ at line 1 in
/home/tagrin/public_html/libs/db.php
on line
233
just a head up and im using the new one out Pligg_Beta_9.8.2
hope this helps,
Albert F A Matthews
http://www.wedigg.co.uk
Have you modified this the module in any way? What php and mysql version do you you run?
No i havent modified anything… iam using php 4.4 and mysql 4
This is a PHP 4 thing. You need to use PHP 5, but the MySQL version should be okay.
It was reported before that this module has some problems on php 4 and this may be one of your problems. I also haven’t tested this on mysql 4 so that may be the other problem.
Hi Mihai,
I still haven’t figuered out why I am getting the error I am from the above comments by me “Daniel 2007-09-06 07:17:51”
Why dont you release for php 4. I think most of people use version 4.
I don’t currently have a host running php 4. And you should really upgrade anywany. The php development team announced a few months ago that they will drop support for php 4.
@Daniel : Are you running php 4?
some other reported it’s not working on php 4 so you may have the same problem too.
http://travelvoter.com/module.php?module=xml_sitemaps_show_sitemap
This works very well with 9.8.
Thanks!
P.S. We couldn’t get the friendly sitemap url.
Your sitemap doesn’t, and mine doesn’t; i’m using pligg 9.81, and using php 5
My sitemap doesn’t do laundry either….
anyway thanks for the great detailed feedback 🙂
you have to use the htaccess rules I described in this post.
Also you might want to upgrade to php5 or stay tuned for an update of this plugin that may make this work on php 4 ( the last mod date doesn’t work on php 4 )
Hi mihai..
I cant install your sitemap module. What i do is: extract .tar file and upload to root modules folder. And i go to admin and Module Management. But the xml_sitemaps not show there. For your information i use pligg 9.8. its rite the step what i do?
this problem may be related with the call to clear_cache function in xml_sitemaps_install.php. Editing that file and removing that call should let you install the module
Many thank Mihai.. Your sitemap great working now. i just delete clear_cache in xml_sitemaps_install.php. Btw after install… did i must/need to add again clear_cache in xml_sitemaps_install.php ?
Has anyone made it work on 9.8.2? I don’t even see it in the Available Modules.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘XmlSitemaps_Links_per_sitemap ) l’ at line 1 in
This error I am getting . Please tell me how can i rectify this . The php version is proper . Is it due to my sql version or what .
Also as the number of postings are more than 5000 in case multiple files are created do we have to give write permissions in some files or what.
Getting an error:
Fatal error: Call to undefined function clear_cache() in /home/desitoob/public_html/modules/xml_sitemaps/xml_sitemaps_install.php on line 5
Using Pigg v9.8
Let me know. Thanks.
Go to line 5 of the file and remove clear_cache(). As easy as 1,2,3.
Thank you ever so much Isaac,
Seems to be a popular problem that onebut i read thru and go to your post and done what you said and bame all done and installed thanks
great advice and thanks
Mihai Secasiu PatchLog.com
Warmest regards
Albert F A Matthews
Sorry, me again, because I got 2 errors on Google sitemap.
I have enabled clean sitemap url and given this sitemap address to Google sitemap:
http://www.MY-WEBSITE.com/sitemapindex.xml
at http://www.MY-WEBSITE.com/sitemapindex.xml I have
−
http://www.MY-WEBSITE.com/sitemap-0.xml
2007-10-27T13:34:02-07:00
−
http://www.MY-WEBSITE.com/sitemap-pages.xml
The errors on Google sitemap are:
http://www.MY-WEBSITE.com/sitemap-0.xml
Nested indexing
This URL refers to a Sitemap index, not a Sitemap. Please remove it and resubmit.
http://www.MY-WEBSITE.com/sitemap-pages.xml
Nested indexing
This URL refers to a Sitemap index, not a Sitemap. Please remove it and resubmit.
Please tell me if you see what is the problem.
Thanks.
Hi
I get this error:
Fatal error: Call to undefined function: clear_cache() in /home/content/r/u/b/ruberr2002/html/modules/xml_sitemaps/xml_sitemaps_install.php on line 5
Please advise
I run 9.6 pligg & get this message:
Fatal error: Call to undefined function: clear_cache() in /home/content/r/u/b/ruberr2002/html/modules/xml_sitemaps/xml_sitemaps_install.php on line 5
Please advise. Thanks
Hi,
I’m not getting an empty sitemap.
Here is the url
http://www.awomanis.com/awi/module.php?module=xml_sitemaps_show_sitemap
I think I’m not doing something right.
I am new to this. I have uploaded and extracted the folder inside the module folder, however it does not show up in my admin control panel.
Can you help me out?
Thomas
Can you us some best practice thoughts on the number of links per sitemap? I have over 100,000 articles, and I want to index them all, is 50,000 a good number?
Ohh, and did I mention how awesome this is? I was working on something similar to this all morning, and then I found your module, and saved me time. Thanks for the awesome mod, and the support!
Hello,
Everything is ok , xmlsitemap is running on my 9.8.2 pligg website.
The only problem is that the sitemap I get is empty.
Can you help?
BR
hello,
I am getting an empty sitemap.
http://88.191.13.182/module.php?module=xml_sitemaps_show_sitemap
Can you help?
Hey BR,
It looks like in the config you are using friendly URLs. Take off the friendly URLs and see if it works that way, chances are its working great. There are some mods that you need to do to make friendly URL’s work. but it all works perfectly. Its an awesome mod.
Anyone know something about this error?
Warning: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ‘select link_modified from pligg_links where link_status!=’disca in /homepages/28/d123456/htdocs/homepages/domain/libs/db.php on line 207
where can i get a working XML Sitemaps that works 9.9
i had the other one but, im not sure if the old one is working ??
help “” advise “”
Gr8 module..i really love 2 use it but only a prob i am facing is
http://www.jeqq.com/sitemap-pages.xml
error with only ths help any help guys
If you are looking to use it on 9.9.0:
http://forums.pligg.com/pligg-modules/10571-xml-sitemaps-2.html
http://www.whatnwhen.in/sitemapindex.xml
I am getting only 2 urls and thats two….don’t know from where its pulling, can you help on this please…….
I have got PHP5 installed, but either way this module has this error:
Fatal error: Call to undefined function clear_cache() in /home/_______/public_html/modules/xml_sitemaps/xml_sitemaps_install.php on line 5
I am running Pligg’s latest version.
just remove line 5 in xml_sitemaps_install.php
Please tell me whether my sitemap is correct or not.
i have submitted to google without errors but no page is indexed by google.
I am using URLMETHOD2 and copied the rewrite URLS to .htaccess.
Please help me out.
Thanks in advance
Your sitemap is correct. Just because you sent the sitemap to google it doesn’t mean your pages will be instantly indexed.
Not a problem Mihai.
thanks for your response.