Jump to content
Pete

Module: XML Sitemap

Recommended Posts

I updated my client's website with new version 1.0.5 of this module and my sitemap.xml doesn't work anymore, when I launch http://www.fmmhindusociety.com/sitemap.xml, it give me 404 error so I reverted back to version 1.0.3 which work as expected.

Hosting is on windows platform with godaddy, just for your info.

Share this post


Link to post
Share on other sites

Ah, I will have a look at it tomorrow again :(

Share this post


Link to post
Share on other sites
I updated my client's website with new version 1.0.5 of this module and my sitemap.xml doesn't work anymore, when I launch http://www.fmmhindusociety.com/sitemap.xml, it give me 404 error so I reverted back to version 1.0.3 which work as expected.

Hosting is on windows platform with godaddy, just for your info.

Have you LanguageLocalizedURL module installed? I guess not. I can't see where that 404 is coming from. I'm currently trying around and it works.

If you don't have language urls installed there's no need to update to 1.0.5 already. Sorry for the confusion I created here.

Share this post


Link to post
Share on other sites

Soma, I don't have LanguageLocalizedURL module installed. I already reverted to v1.0.3 which I had before.

Just wondering if I want to install latest & greatest XMLSitemap module then I need to have LanguageLocalizedURL module installed? correct? I think if its then probably Pete needs to update installation instructions with dependencies of other modules.

Share this post


Link to post
Share on other sites

No there is no dependencies it just looks if it is installed. Theres no other significant changes.

Share this post


Link to post
Share on other sites

Yeah its the 404 page. So no error.

The only thing I can imagine is that this code doesn't work for you and so since sitemap.xml isnt a page it shows 404 page. I don't know why it wouldn't work.

if (strpos($_SERVER['REQUEST_URI'],  '/sitemap.xml') !== FALSE) {
    $this->addHookAfter("Page::render",$this,"renderSitemap");
}

Share this post


Link to post
Share on other sites

This has now been bumped to 1.0.6 as I missed a change from Soma. Not sure if it will fix your issue though!

Share this post


Link to post
Share on other sites

Pete. There's a missing $langname = ''; #36, the sitemap won't work if debug mode enabled, as the markupcache uses $langname and throws a warning that will give a header already sent error.



SOmehow fmgujju seems another problem as if it shows a 404 page, which means the modules doesn't get executed at all or the most likely the init code strpos check doesn't hold true for some reason (the only I changed)

Share this post


Link to post
Share on other sites

Added and committed that line - thanks.

Yep - no idea what the 404 issue is as I compared the strpos and it should just work as far as I can tell.

Share this post


Link to post
Share on other sites

It's not working with v1.0.6 either. Because I have installed PW on windows platform that's why it may not be working.I have rollback to v1.0.3 again.

Share this post


Link to post
Share on other sites

Yep! it worked. Thank you so much Soma & Pete for your help!

Share this post


Link to post
Share on other sites

Merged pull request - thaks Soma.

Share this post


Link to post
Share on other sites

hi pete,

thanks for your module. just wanted to ask if there is a way to update the sitemap as the site evolves (i.e. new pages are added)?

best, christoph

Share this post


Link to post
Share on other sites

Just wanted to say big thanks for this module, pete!

Share this post


Link to post
Share on other sites

@totoff, it keeps the cache for an hour and then re-caches the entire sitemap so it does 24 updates a day to keep current on even the most active sites.

@Georgson - no problem!

  • Like 1

Share this post


Link to post
Share on other sites

Pete, just a heads-up that I sent you a pull request regarding Multisite support and a pile of other changes I thought were necessary/useful.. :)

Edit: as an afterthought, should probably have sent those as separate pull requests. Not familiar enough with GitHub yet. I hope there's some way to choose which commits you're willing to merge (if any.)

Also: didn't read this thread properly before making changes, so I've managed to miss all this 404-related stuff.

One of those commits would change hook from Page::render to ProcessPageView::pageNotFound, which shouldn't break anything (except that it changes slightly those cases where sitemap gets rendered, which was exactly my intention) but that might be slightly dangerous still. Works OK on those platforms where I've had the chance to test it, but that may not be good enough yet.

Edited by teppo
  • Like 1

Share this post


Link to post
Share on other sites

Hi there - 

I'm having a little trouble getting this to work. I'm getting the same error that was mentioned earlier, namely this:

Error: Exception: Unable to create path: /f5/thesharktankproducts/public/site/assets/cache/MarkupCache/MarkupSitemapXML/ (in /f5/thesharktankproducts/public/wire/core/CacheFile.php line 62)
 

My site/assets/cache folder's permissions are currently set to 777.

I also uninstalled Markup Cache and Markup XML, then reinstalled them (Cache first, and newest version of XML), with no luck.

I'm running PW 2.3.0.

I have what I think is the PW default site-map available here: http://thesharktankproducts.com/site-map/ but that's not readable by Google Webmaster Tools.

I would be very grateful for any insights. Thanks!

Share this post


Link to post
Share on other sites

Hi there - 

I'm having a little trouble getting this to work. I'm getting the same error that was mentioned earlier, namely this:

Error: Exception: Unable to create path: /f5/thesharktankproducts/public/site/assets/cache/MarkupCache/MarkupSitemapXML/ (in /f5/thesharktankproducts/public/wire/core/CacheFile.php line 62)
 

My site/assets/cache folder's permissions are currently set to 777.

I also uninstalled Markup Cache and Markup XML, then reinstalled them (Cache first, and newest version of XML), with no luck.

Just to make sure: does /site/assets/cache/MarkupCache/ directory exist and if it does, is it also writable (either 777 permissions or writable by web server?)

Share this post


Link to post
Share on other sites
Just to make sure: does /site/assets/cache/MarkupCache/ directory exist and if it does, is it also writable (either 777 permissions or writable by web server?)

Yes it exists and the permission is set to 777.

Not sure if this is helpful/relevant, but I only just migrated it from my local server to the host server last night. I just copied the files to the host server, and changed the config.php file to connect to the correct server. Is this possibly something that could be causing the error?

EDIT: Just checked the XML sitemap on my local install and it is working there.

Share this post


Link to post
Share on other sites

OK, so i also just discovered I am not able to upload images. I had Filezilla set all the directories in my site to 777 and tried again with no luck. This now seems like a separate issue. Something with my host I'm guessing.

I'll start a new thread. Sorry!

Share this post


Link to post
Share on other sites

I am getting the following error after attempting to access website.com/sitemap.xml

Running ProcessWire 2.3 on local machine.

post-609-0-41969500-1370888735_thumb.png

************

EDIT: I downloaded and replaced the *.module with the latest one from github, still error persists.

I'll uninstall in the meantime

:)

Share this post


Link to post
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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By MoritzLost
      This module allows you to integrate hCaptcha bot / spam protection into ProcessWire forms. hCaptcha is a great alternative to Google ReCaptcha, especially if you are in the EU and need to comply with privacy regulations.

      The development of this module is sponsored by schwarzdesign.
      The module is built as an Inputfield, allowing you to integrate it into any ProcessWire form you want. It's primarily intended for frontend forms and can be added to Form Builder forms for automatic spam protection. There's a step-by-step guide for adding the hCaptcha widget to Form Builder forms in the README, as well as instructions for API usage.
      Features
      Inputfield that displays an hCaptcha widget in ProcessWire forms. The inputfield verifies the hCaptcha response upon submission, and adds a field error if it is invalid. All hCaptcha configuration options for the widget (theme, display size etc) can be changed through the inputfield configuration, as well as programmatically. hCaptcha script options can be changed through a hook. Error messages can be translated through ProcessWire's site translations. hCaptcha secret keys and site-keys can be set for each individual inputfield or globally in your config.php. Error codes and failures are logged to help you find configuration errors. Please check the README for setup instructions.
      Links
      Github Repository and documentation InputfieldHCaptcha in the module directory (pending approval) Screenshots (configuration)

      Screenshots (hCaptcha widget)

       
       

       
    • By joshua
      This module is (yet another) way for implementing a cookie management solution.
      Of course there are several other possibilities:
      - https://processwire.com/talk/topic/22920-klaro-cookie-consent-manager/
      - https://github.com/webmanufaktur/CookieManagementBanner
      - https://github.com/johannesdachsel/cookiemonster
      - https://www.oiljs.org/
      - ... and so on ...
      In this module you can configure which kind of cookie categories you want to manage:

      You can also enable the support for respecting the Do-Not-Track (DNT) header to don't annoy users, who already decided for all their browsing experience.
      Currently there are four possible cookie groups:
      - Necessary (always enabled)
      - Statistics
      - Marketing
      - External Media
      All groups can be renamed, so feel free to use other cookie group names. I just haven't found a way to implement a "repeater like" field as configurable module field ...
      When you want to load specific scripts ( like Google Analytics, Google Maps, ...) only after the user's content to this specific category of cookies, just use the following script syntax:
      <script type="text/plain" data-type="text/javascript" data-category="statistics" data-src="/path/to/your/statistic/script.js"></script> <script type="text/plain" data-type="text/javascript" data-category="marketing" data-src="/path/to/your/mareketing/script.js"></script> <script type="text/plain" data-type="text/javascript" data-category="external_media" data-src="/path/to/your/external-media/script.js"></script> <script type="text/plain" data-type="text/javascript" data-category="marketing">console.log("Inline scripts are also working!");</script> The type has to be "optin" to get recognized by PrivacyWire, the data-attributes are giving hints, how the script shall be loaded, if the data-category is within the cookie consents of the user. These scripts are loaded asynchronously after the user made the decision.
      If you want to give the users the possibility to change their consent, you can use the following Textformatter:
      [[privacywire-choose-cookies]] It's planned to add also other Textformatters to opt-out of specific cookie groups or delete the whole consent cookie.
      You can also add a custom link to output the banner again with a link / button with following class:
      <a href="#" class="privacywire-show-options">Show Cookie Options</a> <button class="privacywire-show-options">Show Cookie Options</button> This module is still in development, but we already use it on several production websites.
      You find it here: PrivacyWire Git Repo
      Download as .zip
      I would love to hear your feedback 🙂
      CHANGELOG
      0.1.1 Debugging: fixed error during uninstall 0.1.0 Added new detection of async scripts for W3C Validation 0.0.6 CSS-Debugging for hiding unused buttons, added ProCache support for the JavaScript tag 0.0.5 Multi-language support included completely (also in TextFormatter). Added possibility to async load other assets (e.g. <img type="optin" data-category="marketing" data-src="https://via.placeholder.com/300x300">) 0.0.4 Added possibility to add an imprint link to the banner 0.0.3 Multi-language support for module config (still in development) 0.0.2 First release 0.0.1 Early development
    • By bernhard
      --- Please use RockFinder3 ---
    • By MoritzLost
      Cacheable Placeholders
      This module allows you to have pieces of dynamic content inside cached output. This aims to solve the common problem of having a mostly cacheable site, but with pieces of dynamic output here and there.  Consider this simple example, where you want to output a custom greeting to the current user:
      <h1>Good morning, <?= ucfirst($user->name) ?></h1> This snippet means you can't use the template cache (at least for logged-in users), because each user has a different name. Even if 99% of your output is static, you can only cache the pieces that you know won't include this personal greeting. A more common example would be CSRF tokens for HTML forms - those need to be unique by definition, so you can't cache the form wholesale.
      This module solves this problem by introducing cacheable placeholders - small placeholder tokens that get replaced during every request. The replacement is done inside a Page::render hook so it runs during every request, even if the response is served from the template cache. So you can use something like this:
      <h1>Good morning, {{{greeting}}}</h1> Replacement tokens are defined with a callback function that produces the appropriate output and added to the module through a simple hook:
      // site/ready.php wire()->addHookAfter('CachePlaceholders::getTokens', function (HookEvent $e) { $tokens = $e->return; $tokens['greeting'] = [ 'callback' => function (array $tokenData) { return ucfirst(wire('user')->name); } ]; $e->return = $tokens; }); Tokens can also include parameters that are parsed and passed to the callback function. There are more fully annotated examples and step-by-step instructions in the README on Github!
      Features
      A simple and fast token parser that calls the appropriate callback and runs automatically. Tokens may include multiple named or positional parameters, as well as multi-value parameters. A manual mode that allows you to replace tokens in custom pieces of cached content (useful if you're using the $cache API). Some built-in tokens for common use-cases: CSRF-Tokens, replacing values from superglobals and producing random hexadecimal strings. The token format is completely customizable, all delimiters can be changed to avoid collisions with existing tag parsers or template languages. Links
      Github Repository & documentation Module directory (pending approval) If you are interested in learning more, the README is very extensive, with more usage examples, code samples and usage instructions!
    • By Craig
      I've been using Fathom Analytics for a while now and on a growing number of sites, so thought it was about time there was a PW module for it.
      WayFathomAnalytics
      WayFathomAnalytics is a group of modules which will allow you to view your Fathom Analytics dashboard in the PW admin panel and (optionally) automatically add and configure the tracking code on front-end pages.
      Links
      GitHub Readme & documentation Download Zip Modules directory Module settings screenshot What is Fathom Analytics?
      Fathom Analytics is a simple, privacy-focused website analytics tool for bloggers and businesses.

      Stop scrolling through pages of reports and collecting gobs of personal data about your visitors, both of which you probably don't need. Fathom is a simple and private website analytics platform that lets you focus on what's important: your business.
      Privacy focused Fast-loading dashboards, all data is on a single screen Easy to get what you need, no training required Unlimited email reports Private or public dashboard sharing Cookie notices not required (it doesn't use cookies or collect personal data) Displays: top content, top referrers, top goals and more
×
×
  • Create New...