We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 30382
    • 100 Posts
    Beste allen,

    Ik heb een raar probleempje met mijn xml sitemap voor modx.

    ik heb een nieuw document gemaakt met als content/type text/XML
    alias is sitemap.xml

    de document content bevat:
    [!SiteMap? &format=`sp` &startid=`1` !]

    Maar als ik daarna de pagina preview dan zie ik dit in mijn xml pagina

    XML-parsefout: geen element gevonden
    Locatie: http://xxxxxx.nl/newsite/index.php?id=11
    Regelnummer 1, kolom 1:


    Waar ligt dit aan?

    dacht eerst al een htaccess foutje.. maar zou niet weten wat.
      • 30382
      • 100 Posts
      kleine bump van dit topic...

      Probleem nog steeds niet opgelost.. Heb geen idee waar het aan ligt.

      :(

      iemand nog een suggestie of voorzetje voor me?

      De sitemap staat hier: http://www.top-canvasfoto.com/sitemap.xml
        • 7455
        • 2,204 Posts
        is die sitemap voor google?
        zo ja misschien een andere gebruiken? ik gebruik altijd googlesitemapXML snippet (http://modxcms.com/extras/package/184)

        Dimmy
          follow me on twitter: @dimmy01
          • 30382
          • 100 Posts
          hmm, wat doe ik verkeerd?

          ik heb jouw snippet geprobeerd.

          eerst snippet aangemaakt met de naam: GoogleSiteMap_XML

          daarna alle content van de snippet.txt in deze snippet gezet:

          /*  GoogleSiteMap_XML Snippet for MODx
              Michal Till
              `->Based on Ryan Nutt's Google Sitemap snippet for Etomite
                 `->Based on the ListSiteMap snippet by JaredDC
          
          USAGE
          =====
          Use &allowedtemplates to specify templates, that would be included in the sitemap listing. SEPARATE BY COMMA. Don't forget to switch mime type to text/xml. NOTE: &allowed templates may be case sensitive!
          
          ALERT: Change the website root url in the code! (will be solved in future versions)
          
          EXAMPLE
          =======
          [[GoogleSiteMap_XML? &allowedtemplates=`Site,Article,Homepage`]]
          
          */
            
          //  Overcome single use limitation on functions
          global $MakeMapDefined;
          
          if(!function_exists(datediff))
              {
              function datediff($interval, $datefrom, $dateto, $using_timestamps = false) {
            /*
              $interval can be:
              yyyy - Number of full years
              q - Number of full quarters
              m - Number of full months
              y - Difference between day numbers
                (eg 1st Jan 2004 is "1", the first day. 2nd Feb 2003 is "33". The datediff is "-32".)
              d - Number of full days
              w - Number of full weekdays
              ww - Number of full weeks
              h - Number of full hours
              n - Number of full minutes
              s - Number of full seconds (default)
            */
          
            if (!$using_timestamps) {
              $datefrom = strtotime($datefrom, 0);
              $dateto = strtotime($dateto, 0);
            }
            $difference = $dateto - $datefrom; // Difference in seconds
          
            switch($interval) {
          
              case 'yyyy': // Number of full years
          
                $years_difference = floor($difference / 31536000);
                if (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom), date("j", $datefrom), date("Y", $datefrom)+$years_difference) > $dateto) {
                  $years_difference--;
                }
                if (mktime(date("H", $dateto), date("i", $dateto), date("s", $dateto), date("n", $dateto), date("j", $dateto), date("Y", $dateto)-($years_difference+1)) > $datefrom) {
                  $years_difference++;
                }
                $datediff = $years_difference;
                break;
          
              case "q": // Number of full quarters
          
                $quarters_difference = floor($difference / 8035200);
                while (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($quarters_difference*3), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
                  $months_difference++;
                }
                $quarters_difference--;
                $datediff = $quarters_difference;
                break;
          
              case "m": // Number of full months
          
                $months_difference = floor($difference / 2678400);
                while (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($months_difference), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
                  $months_difference++;
                }
                $months_difference--;
                $datediff = $months_difference;
                break;
          
              case 'y': // Difference between day numbers
          
                $datediff = date("z", $dateto) - date("z", $datefrom);
                break;
          
              case "d": // Number of full days
          
                $datediff = floor($difference / 86400);
                break;
          
              case "w": // Number of full weekdays
          
                $days_difference = floor($difference / 86400);
                $weeks_difference = floor($days_difference / 7); // Complete weeks
                $first_day = date("w", $datefrom);
                $days_remainder = floor($days_difference % 7);
                $odd_days = $first_day + $days_remainder; // Do we have a Saturday or Sunday in the remainder?
                if ($odd_days > 7) { // Sunday
                  $days_remainder--;
                }
                if ($odd_days > 6) { // Saturday
                  $days_remainder--;
                }
                $datediff = ($weeks_difference * 5) + $days_remainder;
                break;
          
              case "ww": // Number of full weeks
          
                $datediff = floor($difference / 604800);
                break;
          
              case "h": // Number of full hours
          
                $datediff = floor($difference / 3600);
                break;
          
              case "n": // Number of full minutes
          
                $datediff = floor($difference / 60);
                break;
          
              default: // Number of full seconds (default)
          
                $datediff = $difference;
                break;
            }
          
            return $datediff;
              }
            }
          if(!isset($MakeMapDefined))
              {
              function MakeMap_snippet($funcEtomite, $listParent,$selfid=-1,$settings)
                  {
          
                  $children = $funcEtomite->getActiveChildren($listParent, "menuindex", "ASC", "id, editedon, template, privateweb ,alias");
                  foreach($children as $child)
                      {
                      $id = $child['id'];
                      if ($selfid!=$id) {
                        $url = "http://www.top-canvasfoto.com/[~".$id."~]";
                        $date = $child['editedon'];
                        $date = date("Y-m-d", $date);
            
                        // Get the date difference
                        $datediff = datediff("d", $date, date("Y-m-d"));
                        if ($datediff <=1)
                            {
                            $priority = "1.0";
                            $update = "daily";
                            }
                        elseif (($datediff >1) && ($datediff<=7))
                            {
                            $priority = "0.75";
                            $update = "weekly";
                            }
                        elseif (($datediff >7) && ($datediff<=30))
                            {
                            $priority = "0.50";
                            $update = "weekly";
                            }
                        else
                            {
                            $priority = "0.25";
                            $update = "monthly";
                            }
          if (@$settings["allowedtemplates"][$child["template"]]&&$child["privateweb"]==0) {
                        $output .= "<url>\n";
                        $output .= "<loc>$url</loc>\n";
                        $output .= "<lastmod>$date</lastmod>\n";
                        $output .= "<changefreq>$update</changefreq>\n";
                        $output .= "<priority>$priority</priority>\n";
                        $output .= "</url>\n";
            }
                        if ($funcEtomite->getActiveChildren($child['id']))
                            {
                            $output .= MakeMap_snippet($funcEtomite, $child['id'],$selfid,$settings);
                            }
                        }
                      }
                  return $output;
                  }
              $MakeMapDefined = true;
              }
          
          
          $templatesok=array();
          @$allowedtemplates.="";
          $allowedtemplates=",".$allowedtemplates.",";
          $allowedtemplates=preg_replace("/ *, */",",",$allowedtemplates);
          $allowedtemplates=str_replace("'","",$allowedtemplates);
          $sql="select * from ".$this->getFullTableName('site_templates')." where POSITION(CONCAT(',',templatename,',') IN '".$allowedtemplates."')>0";
          $templates=$modx->db->query($sql);
          echo $query;
          while ($template=$modx->db->getRow($templates)) {
            $templatesok[$template["id"]]=true;
          }
          $settings["allowedtemplates"]=$templatesok;
          $out .= "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
          $out .= MakeMap_snippet($etomite, 0,$selfid,$settings);
          $out .= "</urlset>";
          return $out;


          Als ik nu de pagina review zie ik het volgende:

          Dit XML-bestand lijkt geen geassocieerde stijlinformatie te hebben. De documentstructuur is hieronder weergegeven.
                
          <urlset>
          </urlset>


          Wederom dus een lege sitemap..

          waar zou dit aan kunnen liggen?
            • 7455
            • 2,204 Posts
            heb je wel de juiste template namen meegegeven in de alow from gedeelte? &allowedtemplates=
            ik gebruik deze eigelijk altijd met suck6

            is je pagina gecached?
              follow me on twitter: @dimmy01
              • 30382
              • 100 Posts
              owja... dat laatste was het.. (template namen)

              werkt perfect nu.. super!

              thanks Dimmy