[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
google Sitemap mit der RealURL - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Phoenix H.
Beiträge: 520
Registriert: 21. Sep 2006, 17:39
Kontaktdaten: ICQ

google Sitemap mit der RealURL

8. Sep 2008, 18:12

HI

hat Jemand eine Idee, wie ich die SEO freundlichen URLs der RealURL in die Google Sitemap bekomme?

Die Sitemap.php generiert mir hier nur die dynamischen php Links.

Danke sehr!
Ich find ein CMS gut.

Phoenix H.
Beiträge: 520
Registriert: 21. Sep 2006, 17:39
Kontaktdaten: ICQ

10. Sep 2008, 13:43

Like nobody?
Ich find ein CMS gut.

Phoenix H.
Beiträge: 520
Registriert: 21. Sep 2006, 17:39
Kontaktdaten: ICQ

14. Sep 2008, 18:43

mh?! :)
Ich find ein CMS gut.

uwekel
Beiträge: 1
Registriert: 6. Mär 2007, 10:34
Wohnort: Terfens
Kontaktdaten: Website

Re: google Sitemap mit der RealURL

22. Dez 2008, 15:51

Ich stand auch vor dem Problem. Nach vielem herumgedoktore, funktioniert bei mir der Weg. Die allseits bekannte sitemap.php ( Simple Google Sitemap Generator) statt als Datei im Dokument-root als Template anlegen, eine Kategorie mit diesem Template erstellen, zumindest irgendeinen Inhalt (wenigstens ein Leerzeichen) erstellen, damit die Artikelweiterleitung von realurl_remastered den Artikel nicht als leer erkennt.
Das wars schon. siehe

http://probike.at/sitemap.html

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

18. Apr 2009, 11:24

Stimmt!
Immer wieder gerne gebraucht. Siehe auch hier: http://wiki.redaxo.de/index.php?n=R3.GoogleSitemaps

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

3. Aug 2009, 18:14

Nochmal zur Erinnerung:

1. Neues Template mit dem Google-Sitemap-Code erstellen:


Code: Alles auswählen

<?php
/**********************************************************************

Dieses Script einfach in die Webroot legen. Es wird angenommen, dass
sich REDAXO im Unterverzeichnis "redaxo/" befindet. Sollte das nicht
zutreffen, kann der Pfad in Zeile 24 angepasst werden. 
Das Script wird als Public Domain veröffentlicht. Jegliche Haftung der
Autoren wird ausgeschlossen.


          @@@@@@@@@@@@|       @@@@ (@@@@@@@@@@   |   Joachim  Schloeffel
ggggggggg @@@|     @@@!       @@@@     @@@|      |     Weigangstrasse 1a
@@4    @@ @@@|                @@@@     @@@|      |         02625 Bautzen
_______@@ @@@@@@@@@@@@;  ___(@@@@@     @@@@@     |   FON:  03591/5989-12
@@@@#####        @@@@@|     [@@@@@     @@@@@     |   Fax:  03591/5989-15
@@@@   __ @@@;   @@@@@|     [@@@@@     @@@@@     |   schloeffel@2s-it.de
@@@@ggg@@ @@@@@@@@@@@@|     [@@@@@     @@@@@     |   http://www.2s-it.de


Änderungen:
03/2006 - Arvid Winkelsdorf: getChangeFreq()

************************************************************************/
require_once ('redaxo/include/master.inc.php');
header('Content-Type: text/xml; charset=UTF-8');
$out= '<?xml version="1.0" encoding="UTF-8"?>';
$out .= "\n<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
$out .= "\t<url>\n";
$out .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] . "/</loc>\n";
$out .= "\t\t<changefreq>weekly</changefreq>\n";
$out .= "\t\t<priority>1.0</priority>\n";
$out .= "\t</url>\n";
foreach (OOCategory :: getRootCategories() as $maincat)
{
	if ($maincat->isOnline())
	{
		$out .= getarticles($maincat);
	}
}
$out .= '</urlset>';
echo $out;
function getChangeFreq($article)
{
	$articleUpdatedTime= $article->getUpdatedate();
	$actualtime= time();
	$timepastsinceupdate= $actualtime - $articleUpdatedTime;
	if ($timepastsinceupdate < 604800)
		$changefreq= 'weekly';
	else
		$changefreq= 'monthly';
	return $changefreq;
}
function getarticles($category, $priority= 0.8)
{
	$out= "";
	foreach ($category->getChildren() as $subcat)
	{
		if ($subcat->isOnline())
		{
			$out .= getarticles($subcat, round($priority * 0.8, 1));
		}
	}
	foreach ($category->getArticles() as $article)
	{
		if ($article->isOnline())
		{
			$out .= "\t<url>\n";
			$out .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] . '/' . $article->getUrl() . "</loc>\n";
			$out .= "\t\t<lastmod>" . date("Y-m-d\TH:i:s", $article->getUpdatedate()) . "+00:00</lastmod>\n";
			$out .= "\t\t<changefreq>" . getChangeFreq($article) . "</changefreq>\n";
			$out .= "\t\t<priority>" . $priority . "</priority>\n";
			$out .= "\t</url>\n";
		}
	}
	return $out;
}
?>
2. Häkchen bei "Template aktiv"

3. Eine neue Kategorie z.B. Google Sitemap erstellen.

4. Einen Artikel mit diesem Template erstellen und zumindest ein Wort in einem Modul schreiben.

5. Die URL bei Google Sitemap einreichen und ein paar Minuten warten.

-> Funktioniert auch mit url_rewrite
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

3. Aug 2009, 19:51

Jetzt hab ich mich aber selbst da reingeritten...

Nach meiner Anleitung und der von uwekel gibt es jetzt bei der 4.2.1 den Fehler bei Google:

[ externes Bild ]



Kann da irgendjemand Tips geben?

Ralf
- Danke für Redaxo! -
http://www.prenzlweb.de

hoppel
Beiträge: 76
Registriert: 24. Aug 2004, 22:11

4. Aug 2009, 07:18

das problem habe ich auch.

ich nutze die die sitemap auch bei anderen redaxoversionen alles klappt wunderbar.

ab der 4.2 wird bei der priorität statt z.b 0.6 ein 0,6 geschrieben. das ist wohl nicht xml konform.

habe dann einfach ins template eine priorität eingetragen. haben dann aber alle artikel die gleiche priorität.

warum sollte man eigentlich irgendwas reinschreiben in den artikel mit dem sitemaptemplate?

doof auch, dass bei der benutzung der url_rewrite (fullnames) die sitemap nicht als *.xml aufgerufen werden kann. habe die sitemap.xml dann händisch in die pathlist geschrieben. die saubere variante ist das aber auch nicht.

grüße

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

4. Aug 2009, 08:31

Hallo!

Vielen Dank für den Hinweis. Wenn man statt , ein . benötigt, dann müßte das wohl geändert werden.
Nutzt noch jemand diese Sitemap? Kann das jemand bestätigen? Ich finde diese Sitemap einfach ein super Analysetool. Sieht man doch auch, welche Suchbegriffe gesucht werden und auf welchem Platz man dabei liegt.

Ralf
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
Mediastuttgart
Beiträge: 282
Registriert: 21. Mär 2005, 12:28
Kontaktdaten: Website

4. Aug 2009, 09:04

hier das ganze mal für redaxo 4.2.1 und in eine klasse gepackt.

kann entweder so direkt in ein leeres template oder dann ohne die ausgabe (letzte zwei zeilen) in eine separate datei zum inkludieren.
dann einfach das beispiel nutzen um die sitemap zu generieren.

danke auch an <Joachim Schloeffel> und <Arvid Winkelsdorf> für die erste version des codes.

Code: Alles auswählen

<?
	///////////////////////////////////////////////////////////////
	// Google Sitemap Klasse für Redaxo 4.2.1
	// Original von <Joachim Schloeffel> und <Arvid Winkelsdorf>
	///////////////////////////////////////////////////////////////
	
	/*
	
	Beispiel:
	
	$sitemap = rex_google_sitemap::factory();
	echo $sitemap->show();
	
	/*
	
	/**
	 * Klasse zum erstellen einer Google Sitemap
	 *
	 * @version 1.0
	 * @author Michael Freund, Mediastuttgart Werbeagentur
	 *
	 */

	class rex_google_sitemap
	{
    	static $class = null;
		private $sitemap;
		private $params;
	
		/**
		 * Erstellt ein rex_google_sitemap Objekt
		 *
		 * @param <array> $params Evtl. für Parameter Übergabe
		 *
		 */
		 
		private function rex_google_sitemap($params = null)
		{
			header('Content-Type: text/xml; charset=UTF-8');
    		$this->params = $params;
    		$this->init();
		}
		
		/**
		 * Singleton factory method
		 *
		 * @param <array> $params Evtl. für Parameter Übergabe
		 *
		 */
		 
		static public function factory($params = null)
		{
			if (!is_string($class) || !strlen($class))
			{
				$class = 'rex_google_sitemap';
			}
		
			return new $class($params);
		}

		/**
		 * Initialisiert die Klasse 
		 *
		 * @param <array> $params Evtl. für Parameter Übergabe
		 *
		 */
		 
		private function init()
		{
			$this->sitemap  = '<?xml version="1.0" encoding="UTF-8"?>';
			$this->sitemap .= "\n<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";
			$this->sitemap .= "\t<url>\n";
			$this->sitemap .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] . "/</loc>\n";
			$this->sitemap .= "\t\t<changefreq>weekly</changefreq>\n";
			$this->sitemap .= "\t\t<priority>1.0</priority>\n";
			$this->sitemap .= "\t</url>\n";
			$this->getStructure();
		}
		
		/**
		 * Private function structure
		 *
		 */
		 
		private function getStructure()
		{
			foreach (OOCategory::getRootCategories() as $maincat)
			{
				if($maincat->isOnline())
				{
					$this->sitemap .= $this->getarticles($maincat);
				}
			}
	
			$this->sitemap .= '</urlset>';
		}
	
		/**
		 * Private function get_change_freq
		 *
		 * @param <array> $article article
		 * @return <string> $changefreq changefreq of the article
		 *
		 */
		 
		private function get_change_freq($article)
		{
			$articleUpdatedTime = $article->getUpdatedate();
			$actualtime = time();
			$timepastsinceupdate = $actualtime - $articleUpdatedTime;
			$changefreq = ($timepastsinceupdate < 604800) ? 'weekly' : 'monthly';
			return (string) $changefreq;
		}
	
		/**
		 * Private function getarticles
		 *
		 * @param <array> $category category
		 * @param <float> $priority priority
		 *
		 */
		 
		private function getarticles($category, $priority = 0.8)
		{
			foreach($category->getChildren() as $subcat)
			{
				if($subcat->isOnline())
				{
					$this->sitemap .= $this->getarticles($subcat, round($priority * 0.8, 1));
				}
			}
					
			foreach($category->getArticles() as $article)
			{
				if($article->isOnline())
				{
					$this->sitemap .= "\t<url>\n";
					$this->sitemap .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] . rex_getUrl($article->getId(),$REX[CUR_CLANG]) . "</loc>\n";
					$this->sitemap .= "\t\t<lastmod>" . date("Y-m-d\TH:i:s", $article->getUpdatedate()) . "+00:00</lastmod>\n";
					$this->sitemap .= "\t\t<changefreq>" .$this->get_change_freq($article). "</changefreq>\n";
					$this->sitemap .= "\t\t<priority>" . number_format($priority, 1, '.', '') . "</priority>\n";
					$this->sitemap .= "\t</url>\n";
				}
			}
		}
		
		/**
		 * Public function show
		 *
		 * @return <string> $sitemap sitemap
		 *
		 */
		 
		public function show()
		{
			return $this->sitemap;
		}
		
	}
	
	// --------- Sitemap classs
	
	$sitemap = rex_google_sitemap::factory();
	
	// --------- Output
	
	echo $sitemap->show();
?>
lg
michael
MEDIASTUTTGART, digitalisierte Kommunikation.

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

4. Aug 2009, 09:11

Mediastuttgart hat geschrieben: danke auch an <Joachim Schloeffel> und <Arvid Winkelsdorf> für die erste version des codes.

lg
michael
Dann probiere ich das mal aus. Und danke auch den beiden und dir :D

Ralf
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
Mediastuttgart
Beiträge: 282
Registriert: 21. Mär 2005, 12:28
Kontaktdaten: Website

4. Aug 2009, 09:15

rsi hat geschrieben: Dann probiere ich das mal aus. Und danke auch den beiden und dir :D

Ralf
keine thema :) wäre schön wenn du dann ein kurzes feedback geben könntest, ob alles funktioniert.

lg
michael
MEDIASTUTTGART, digitalisierte Kommunikation.

hoppel
Beiträge: 76
Registriert: 24. Aug 2004, 22:11

4. Aug 2009, 09:17

jo. danke.

werdsch nachher mal ausprobieren.

grüße

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

4. Aug 2009, 09:20

Das Ganze bekommt ein Häkchen mit Plus (auch von Google).

Es funktioniert wunderbar. Weiß jetzt nicht warum du das mit den letzten beiden Zeilen geschrieben hast. Es geht mit denen, ansonsten kommt Kritik vom Script.

Sehr nett von dir! Vielen Dank.

Gruß
Ralf
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

4. Aug 2009, 10:58

Hi,

wäre nett wenn du das auch noch gleich in
den Download Bereich stellen könntest.

Danke. grz. Chris

Benutzeravatar
psycobalance
Beiträge: 19
Registriert: 4. Sep 2008, 10:25
Wohnort: Frankenthal

Ungültige URL in der google sitemap

17. Sep 2009, 08:37

Hallo, zunächst einmal danke für das super google Sitemap Script. Hab die sitemap Klasse von Mediastuttgart eingebaut und bekomme von google die Rückmeldung über "Ungültige URLs".
Lösung: In Zeile 138 fehlt ein Slash nach der SERVER Variablen. Man muss statt:

Code: Alles auswählen

               $this->sitemap .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] . rex_getUrl($article->getId(),$REX[CUR_CLANG]) . "</loc>\n"; 
folgendes schreiben:

Code: Alles auswählen

$this->sitemap .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] ."/". rex_getUrl($article->getId(),$REX[CUR_CLANG]) . "</loc>\n"; 
dann klappt es.

Da ich zunächst nicht genau wusste wie ich das Script ohne Template integrieren muss, hier meine Lösung für andere, die das gleiche Problem haben:
1. Den Code von Mediastuttgart in eine Datei Namens class.rex_google_sitemap.inc.php speichern.
2. Die Datei in den Ordner /redaxo/include/classes/ laden
3. Eine Datei mit dem Namen sitemap.php erstellen.
4. In die Datei folgendes schreiben:

Code: Alles auswählen

<?php
require_once ('redaxo/include/master.inc.php');
include("redaxo/include/classes/class.rex_google_sitemap.inc.php");
?>
5. Die Datei sitemap.php in den Docroot laden und bei google als sitemap angeben. Fertig.

Benutzeravatar
elpschulzo
Beiträge: 3
Registriert: 19. Aug 2009, 18:02

url_rewrite

18. Sep 2009, 14:44

Hmm, wenn ich das Ganze über die Template-Lösung abwickle, stimmen die URLs in der generierten XML perfekt, durch das URL-Rewrite muss ich in den Webmaster-Tools dann allerdings auch ne HTML-Datei einreichen und die ist dort nicht erwünscht.

Der Ansatz von <psycobalance> funktioniert dahingehend, dass ich bei Google nun schön ne PHP einreichen kann, die URLs sind aber wieder vermurkst (mit articleID und categoryID vor dem Artikelnamen).

Ich bräuchte nen Ansatz für die PHP-Lösung, um mit dem AddOn url_rewrite zusammenzuarbeiten oder ne Lösung für die Template-Geschichte (kann man der htaccess verklickern, dass sie im speziellen Fall der "Sitemap"-Kategorie .xml statt .html rewritet ?)

Für Hilfe wär ich sehr dankbar :)

Benutzeravatar
psycobalance
Beiträge: 19
Registriert: 4. Sep 2008, 10:25
Wohnort: Frankenthal

Gibt es schon eine Lösung für realurl_remastered?

23. Sep 2009, 16:24

Hallo, habe auch gerade das realurl_remastered Modul installierte und würde gerne wissen, ob man die sitemap.php ohne Template mit den URLs ausgeben kann wie sie mit dem realurl_remastered Modul erstellt werden.

Benutzeravatar
maik@nordbahn
Beiträge: 166
Registriert: 29. Jan 2007, 16:10

23. Okt 2009, 14:18

Ich habe beide Varianten ausprobiert und mich für die Variante mit dem Template entschieden und reiche bei Google die Sitemap mit der direkten index.php?article_id=XXX ein - Trotz Real URL remastered.
Das funktioniert!
Liebe Grüße
Maik

wmxrecords
Beiträge: 98
Registriert: 1. Nov 2008, 14:09
Kontaktdaten: Website

9. Dez 2009, 17:42

Es gibt einen Fehler bei der Ausgabe:

Code: Alles auswählen

Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/18/d146093361/htdocs/carbon-heater.de/new/redaxo/include/classes/class.rex_article.inc.php(700) : eval()'d code on line 26
Ich habe die Klasse für RED4.2.1 genommen und als Template eingebunden. Die Zeile 138 habe ich auch abgeändert.

Kann mir jemand helfen?

Benutzeravatar
chandany
Beiträge: 32
Registriert: 9. Nov 2006, 21:12
Wohnort: Hamburg

20. Jan 2010, 23:52

Folgende Lösung habe ich für mich gefunden.

1. sitemap.php umbenennen in sitemap.xml
2. in .htaccess anfügen

Code: Alles auswählen

AddType application/x-httpd-php .xml
PS: Die Lösung über

Code: Alles auswählen

class.rex_google_sitemap.inc.php
finde ich eine geniale und inspirierende Idee!
-----
Testumgebung REX4_4_1 | XAMPP 1.7.3 | Apache/2.2.14 (Win32) DAV/2 PHP/5.3.1
| MySQL-Zeichensatz: UTF-8 general (utf8)
----

Benutzeravatar
chandany
Beiträge: 32
Registriert: 9. Nov 2006, 21:12
Wohnort: Hamburg

Community Sitemap

27. Jan 2010, 18:46

Hallo ich binn's noch mal.

Ich suche eine Sitemap die nur öffentliche zu gängige Seiten ausgibt und die Login sites nicht anzeigt.

Kann mir einer helfen?
Bin leider so gar kein Programmierer. :oops:

PS: Arbeite mit Navi von YAML
-----
Testumgebung REX4_4_1 | XAMPP 1.7.3 | Apache/2.2.14 (Win32) DAV/2 PHP/5.3.1
| MySQL-Zeichensatz: UTF-8 general (utf8)
----

Kucki2
Beiträge: 146
Registriert: 18. Feb 2008, 22:12

Fehlermeldung

14. Jul 2010, 16:46

Ich habe folgendes Template für meine Google Sitemap auf mehreren Seiten im Einsatz:

Code: Alles auswählen

<? 
   /////////////////////////////////////////////////////////////// 
   // Google Sitemap Klasse für Redaxo 4.2.1 
   // Original von <Joachim Schloeffel> und <Arvid Winkelsdorf> 
   /////////////////////////////////////////////////////////////// 
    
   /* 
    
   Beispiel: 
    
   $sitemap = rex_google_sitemap::factory(); 
   echo $sitemap->show(); 
    
   /* 
    
   /** 
    * Klasse zum erstellen einer Google Sitemap 
    * 
    * @version 1.0 
    * @author Michael Freund, Mediastuttgart Werbeagentur 
    * 
    */ 

   class rex_google_sitemap 
   { 
       static $class = null; 
      private $sitemap; 
      private $params; 
    
      /** 
       * Erstellt ein rex_google_sitemap Objekt 
       * 
       * @param <array> $params Evtl. für Parameter Übergabe 
       * 
       */ 
       
      private function rex_google_sitemap($params = null) 
      { 
         header('Content-Type: text/xml; charset=UTF-8'); 
          $this->params = $params; 
          $this->init(); 
      } 
       
      /** 
       * Singleton factory method 
       * 
       * @param <array> $params Evtl. für Parameter Übergabe 
       * 
       */ 
       
      static public function factory($params = null) 
      { 
         if (!is_string($class) || !strlen($class)) 
         { 
            $class = 'rex_google_sitemap'; 
         } 
       
         return new $class($params); 
      } 

      /** 
       * Initialisiert die Klasse 
       * 
       * @param <array> $params Evtl. für Parameter Übergabe 
       * 
       */ 
       
      private function init() 
      { 
         $this->sitemap  = '<?xml version="1.0" encoding="UTF-8"?>'; 
         $this->sitemap .= "\n<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n"; 
         $this->sitemap .= "\t<url>\n"; 
         $this->sitemap .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] . "/</loc>\n"; 
         $this->sitemap .= "\t\t<changefreq>weekly</changefreq>\n"; 
         $this->sitemap .= "\t\t<priority>1.0</priority>\n"; 
         $this->sitemap .= "\t</url>\n"; 
         $this->getStructure(); 
      } 
       
      /** 
       * Private function structure 
       * 
       */ 
       
      private function getStructure() 
      { 
         foreach (OOCategory::getRootCategories() as $maincat) 
         { 
            if($maincat->isOnline()) 
            { 
               $this->sitemap .= $this->getarticles($maincat); 
            } 
         } 
    
         $this->sitemap .= '</urlset>'; 
      } 
    
      /** 
       * Private function get_change_freq 
       * 
       * @param <array> $article article 
       * @return <string> $changefreq changefreq of the article 
       * 
       */ 
       
      private function get_change_freq($article) 
      { 
         $articleUpdatedTime = $article->getUpdatedate(); 
         $actualtime = time(); 
         $timepastsinceupdate = $actualtime - $articleUpdatedTime; 
         $changefreq = ($timepastsinceupdate < 604800) ? 'weekly' : 'monthly'; 
         return (string) $changefreq; 
      } 
    
      /** 
       * Private function getarticles 
       * 
       * @param <array> $category category 
       * @param <float> $priority priority 
       * 
       */ 
       
      private function getarticles($category, $priority = 0.8) 
      { 
         foreach($category->getChildren() as $subcat) 
         { 
            if($subcat->isOnline()) 
            { 
               $this->sitemap .= $this->getarticles($subcat, round($priority * 0.8, 1)); 
            } 
         } 
                
         foreach($category->getArticles() as $article) 
         { 
            if($article->isOnline()) 
            { 
               $this->sitemap .= "\t<url>\n"; 
               $this->sitemap .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] ."/". rex_getUrl($article->getId(),$REX[CUR_CLANG]) . "</loc>\n"; 
               $this->sitemap .= "\t\t<lastmod>" . date("Y-m-d\TH:i:s", $article->getUpdatedate()) . "+00:00</lastmod>\n"; 
               $this->sitemap .= "\t\t<changefreq>" .$this->get_change_freq($article). "</changefreq>\n"; 
               $this->sitemap .= "\t\t<priority>" . number_format($priority, 1, '.', '') . "</priority>\n"; 
               $this->sitemap .= "\t</url>\n"; 
            } 
         } 
      } 
       
      /** 
       * Public function show 
       * 
       * @return <string> $sitemap sitemap 
       * 
       */ 
       
      public function show() 
      { 
         return $this->sitemap; 
      } 
       
   } 
    
   // --------- Sitemap classs 
    
   $sitemap = rex_google_sitemap::factory(); 
    
   // --------- Output 
    
   echo $sitemap->show(); 
?>
Das seltsame ist, dass es in meinem aktuellsten Projekt nicht mehr funktioniert. Ich erhalte diese Fehlermeldung:

Code: Alles auswählen

Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/web3/21/20/51670420/htdocs/redaxo/include/classes/class.rex_article.inc.php(700) : eval()'d code on line 26
Hat vielleicht jemand eine Idee, woran das liegen könnte?

Danke und liebe Grüße, Antje.

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

14. Jul 2010, 16:52

Du brauchst PHP 5, um diesen Code zu nutzen. Sollte heutzutage eigentlich bei jedem Webhoster aktivierbar sein.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Kucki2
Beiträge: 146
Registriert: 18. Feb 2008, 22:12

14. Jul 2010, 17:33

Hey Xong,

Deine Tipps sind echt Gold Wert :-)

Bei Strato wird für Dateien mit der Endung .php standardmäßig PHP3/4 verwendet. Jetzt hab ich's umgestellt und alles klappt perfekt :-)

Noch eine Frage hätte ich allerdings. Besteht die Möglichkeit, auch die Seiten einer 2. Sprache in der Sitemap mit anzeigen zu lassen?

LG, Antje.

Zurück zu „Allgemeines [R4]“