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!
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/
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/
-
- Beiträge: 520
- Registriert: 21. Sep 2006, 17:39
- Kontaktdaten: ICQ
google Sitemap mit der RealURL
Ich find ein CMS gut.
-
- Beiträge: 520
- Registriert: 21. Sep 2006, 17:39
- Kontaktdaten: ICQ
-
- Beiträge: 520
- Registriert: 21. Sep 2006, 17:39
- Kontaktdaten: ICQ
Re: google Sitemap mit der RealURL
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
Das wars schon. siehe
http://probike.at/sitemap.html
- ralf.schlott
- Beiträge: 625
- Registriert: 5. Dez 2007, 21:22
- Wohnort: Hamburch
- Kontaktdaten: Website
Stimmt!
Immer wieder gerne gebraucht. Siehe auch hier: http://wiki.redaxo.de/index.php?n=R3.GoogleSitemaps
Immer wieder gerne gebraucht. Siehe auch hier: http://wiki.redaxo.de/index.php?n=R3.GoogleSitemaps
- ralf.schlott
- Beiträge: 625
- Registriert: 5. Dez 2007, 21:22
- Wohnort: Hamburch
- Kontaktdaten: Website
Nochmal zur Erinnerung:
1. Neues Template mit dem Google-Sitemap-Code erstellen:
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
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;
}
?>
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
http://www.prenzlweb.de
- ralf.schlott
- Beiträge: 625
- Registriert: 5. Dez 2007, 21:22
- Wohnort: Hamburch
- Kontaktdaten: Website
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
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
http://www.prenzlweb.de
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
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
- ralf.schlott
- Beiträge: 625
- Registriert: 5. Dez 2007, 21:22
- Wohnort: Hamburch
- Kontaktdaten: Website
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
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
http://www.prenzlweb.de
- Mediastuttgart
- Beiträge: 282
- Registriert: 21. Mär 2005, 12:28
- Kontaktdaten: Website
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.
lg
michael
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();
?>
michael
MEDIASTUTTGART, digitalisierte Kommunikation.
- ralf.schlott
- Beiträge: 625
- Registriert: 5. Dez 2007, 21:22
- Wohnort: Hamburch
- Kontaktdaten: Website
Dann probiere ich das mal aus. Und danke auch den beiden und dirMediastuttgart hat geschrieben: danke auch an <Joachim Schloeffel> und <Arvid Winkelsdorf> für die erste version des codes.
lg
michael
Ralf
- Danke für Redaxo! -
http://www.prenzlweb.de
http://www.prenzlweb.de
- Mediastuttgart
- Beiträge: 282
- Registriert: 21. Mär 2005, 12:28
- Kontaktdaten: Website
- ralf.schlott
- Beiträge: 625
- Registriert: 5. Dez 2007, 21:22
- Wohnort: Hamburch
- Kontaktdaten: Website
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
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
http://www.prenzlweb.de
- psycobalance
- Beiträge: 19
- Registriert: 4. Sep 2008, 10:25
- Wohnort: Frankenthal
Ungültige URL in der google sitemap
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:
folgendes schreiben:
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:
5. Die Datei sitemap.php in den Docroot laden und bei google als sitemap angeben. Fertig.
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";
Code: Alles auswählen
$this->sitemap .= "\t\t<loc>http://" . $_SERVER["HTTP_HOST"] ."/". rex_getUrl($article->getId(),$REX[CUR_CLANG]) . "</loc>\n";
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");
?>
- elpschulzo
- Beiträge: 3
- Registriert: 19. Aug 2009, 18:02
url_rewrite
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
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
- psycobalance
- Beiträge: 19
- Registriert: 4. Sep 2008, 10:25
- Wohnort: Frankenthal
Gibt es schon eine Lösung für realurl_remastered?
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.
- maik@nordbahn
- Beiträge: 166
- Registriert: 29. Jan 2007, 16:10
-
- Beiträge: 98
- Registriert: 1. Nov 2008, 14:09
- Kontaktdaten: Website
Es gibt einen Fehler bei der Ausgabe:
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?
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
Kann mir jemand helfen?
Folgende Lösung habe ich für mich gefunden.
1. sitemap.php umbenennen in sitemap.xml
2. in .htaccess anfügen
PS: Die Lösung über finde ich eine geniale und inspirierende Idee!
1. sitemap.php umbenennen in sitemap.xml
2. in .htaccess anfügen
Code: Alles auswählen
AddType application/x-httpd-php .xml
Code: Alles auswählen
class.rex_google_sitemap.inc.php
-----
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)
----
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)
----
Community Sitemap
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.
PS: Arbeite mit Navi von YAML
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.
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)
----
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)
----
Fehlermeldung
Ich habe folgendes Template für meine Google Sitemap auf mehreren Seiten im Einsatz:
Das seltsame ist, dass es in meinem aktuellsten Projekt nicht mehr funktioniert. Ich erhalte diese Fehlermeldung:
Hat vielleicht jemand eine Idee, woran das liegen könnte?
Danke und liebe Grüße, Antje.
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();
?>
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
Danke und liebe Grüße, Antje.
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.
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.