Google Sitemap XML Modul für 4.6.4

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 14. Mär 2006, 09:50

Ah LÖSUNG!

Man darf im Tempelate der Google-Sitmap.Xml nicht
cms php skript: index.php
wählen, sondern
cms php skript: front_content.php
dann wird man zumindest nicht mehr auf die Startseite geleitet!

MfG

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 14. Mär 2006, 09:57

Aber es wäre echt schön wenn die Links in der Google-Sitmap im Klartext stehen.

@stese! Kann man nicht die Inhalte der Datenbank der "Aliase" mit dort einfügen?

Auszug aus dem XML-Modul:
while ($db->next_record()) {
$linkid = $db->f("idart");
$lastmod = iso8601_date( $db->f("lastmod") );
// link
$link = $xml_link. "CMS_VALUE[0]?idart=$linkid";
print "<url>\n";
print " <loc>".htmlspecialchars($link)."</loc>\n";
Wenn Du eventuelle eine Idee hast, wäre das super wenn Du uns helfen könntest! Danke Dir

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Di 14. Mär 2006, 11:26

Hatte auch auf eine Lösung gewartet, da ich das gleiche Problem sah (mit modrewrite). Lustigerweise habe ich grad heute den Versuch gestartet, das selber zu lösen. Was hältst Du von meiner Lösung? Bei mir funktioniert das wunderbar.

Ersetze Deinen Code:

Code: Alles auswählen

// link
$link = $xml_link. "CMS_VALUE[0]?idart=$linkid"; 
mit folgendem Code:

Code: Alles auswählen

// link
cInclude("classes", "class.modrewrite.php");
$link = ModRewrite::build_new_url("?idart=$linkid");
$link = 'http://'.$_SERVER['HTTP_HOST'].$link;

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 14. Mär 2006, 12:46

WOW! SUPER! Es funzt! Genial! Danke Dir!

Frohes Schaffen weiterhin!

MfG Steffen

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Di 14. Mär 2006, 12:52

... Danke Dir für den ganzen Rest... ;-)

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Di 14. Mär 2006, 13:40

Naja das Originalmodul ist ja nun nicht von mir! Siehe ersten Post! :-)

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Beitrag von derSteffen » Mo 20. Mär 2006, 10:13

@markusheinzer

Ich vermute mal du nutz die Google-Sitamp.xml und das Modrewirte!

Sage mal hast du schon eine Auswertung in der Googel-Sitmap-Übersicht? Also ich habe auch eine staatische Seite mit der sitmap.xml und da geht das "crawlilng" sehr schnell, aber bei meiner CMS-Variante , wird mir immer gesagt es liegen keine Daten vor!

Kann es sein das die htaccess dieses Moduls da etwas behindert? Weil beim bestätigen der Google-Sitamp, musste ich die htaccess kurz deaktivieren, dann hat Google die Sitmap gefunden (vorher war der Fehler 200) und dann habe ich die htaccess wieder aktiviert und nun stehe ich da! Ich meine mein CMS hat ca. 70 Artikel und ist nun fast 1 Monat online, aber noch keine Crawling-Statistik! Oder muss ich in der htaccess noch was ändern? Oder an meinen Fehlerseiten (errorpages)??

Mhm

Wie ist das denn bei Dir? Oder was hast du gemacht?

MfG

denist.de
Beiträge: 40
Registriert: Fr 5. Mai 2006, 13:11
Wohnort: Mainz
Kontaktdaten:

Beitrag von denist.de » So 7. Mai 2006, 15:05

Ich benutze 4.6.8 und dieses Plugin folg Problem.:

wenn ich das ganze wie beschrieben einfüge bkomme ich bei google foolg. Fehlermeldung:


Bild

Ich habe die das template wie beschrieben erstellt, die Ausgabe erfolgt hier:

http://denist.de/content/cms/front_content.php?idcat=89

ich habe bei google folgendes eingeben:

Bild


Bild

am Ende sieht es dann so aus:

Bild

wenn ich auf Fehler 10 klicke kommt die aus dem ersten Bild

Hilfe
:( [/img]
keep it real.

seht ihn euch an: Rezeptionist the Helper!

denist.de
Beiträge: 40
Registriert: Fr 5. Mai 2006, 13:11
Wohnort: Mainz
Kontaktdaten:

Beitrag von denist.de » Mo 8. Mai 2006, 05:16

Fehlerhafter Aufbau (Zeile 416) Wir konnten Ihre Sitemap nicht lesen. Sie dürfte einen Eintrag enthalten, den wir nicht verarbeiten konnten. Bitte validieren Sie Ihre Sitemap , bevor Sie sie neu einreichen.


Ungültiger Tag-Wert (Zeile 416) Das Tag <changefreq> in der Beschreibung von <url> weist den ungültigen Wert "" auf. Bitte beheben Sie das Problem und reichen Sie die Daten erneut ein. Mehr

Das ist nach 10 stunden aswertung die endgültige fehlermeldung ^^

hat jemand eine ahnung wie ich das xml file fixen kann ?!
Danke
keep it real.

seht ihn euch an: Rezeptionist the Helper!

v_r
Beiträge: 43
Registriert: Sa 23. Jul 2005, 15:48
Kontaktdaten:

Beitrag von v_r » Mo 3. Jul 2006, 16:45

Ist das noch keinem aufgefallen? Mir auch erst nachdem ich das ModRewrite drin hatte. ;-)

der Code liefert alle Seite. Egal von welchen Client. Hier die Query mit client-Check.

$query = "SELECT art_lang.idart, UNIX_TIMESTAMP(lastmodified) as lastmod FROM ".$cfg["tab"]["art_lang"]." art_lang,".$cfg["tab"]["art"]." art where art_lang.online='1' and art_lang.idart <> '".$idart."' and art.idart=art_lang.idart and idclient=$client";

V_R
die neusten contenido-Projekte

http://www.koenig-pilsener-arena.de - Integration von Contenido und Tomcat
http://www.loreley-open-air.de - einfach nur Contenido

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » Mo 3. Jul 2006, 16:51

v_r hat geschrieben:Ist das noch keinem aufgefallen? Mir auch erst nachdem ich das ModRewrite drin hatte. ;-)

der Code liefert alle Seite. Egal von welchen Client. Hier die Query mit client-Check.

$query = "SELECT art_lang.idart, UNIX_TIMESTAMP(lastmodified) as lastmod FROM ".$cfg["tab"]["art_lang"]." art_lang,".$cfg["tab"]["art"]." art where art_lang.online='1' and art_lang.idart <> '".$idart."' and art.idart=art_lang.idart and idclient=$client";

V_R
hast du in der contenido/includes/config.php bei den settings für MR auch

Code: Alles auswählen

/* is multiclient in only one directory? ( 1 = yes, 0 = none ) */
$cfg['mod_rewrite']['use_client'] = 1;
gesetzt?
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

v_r
Beiträge: 43
Registriert: Sa 23. Jul 2005, 15:48
Kontaktdaten:

Beitrag von v_r » Mo 3. Jul 2006, 16:59

Es ging nicht um Multi-Client in einem Verzeichnis. Ich habe an sich nur einen Client in einem Verzeichnis. Es werden aber auch alle Inhalte vom Demo-Projekt mit angezeigt.

Und die Option ist ja vom ModReWrite und nicht von der Sitemap

V_R
die neusten contenido-Projekte

http://www.koenig-pilsener-arena.de - Integration von Contenido und Tomcat
http://www.loreley-open-air.de - einfach nur Contenido

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Mo 3. Jul 2006, 17:37


windowlicker
Beiträge: 21
Registriert: Sa 30. Jul 2005, 14:24
Kontaktdaten:

Beitrag von windowlicker » So 6. Aug 2006, 13:45

es hat mich gestört das auch die speziellen artikel mit ausgegeben werden also suchausgabe, die google sitemap , uuu ... deswegen habe ich den input um:

Code: Alles auswählen

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n
<tr>
<td width=\"200\">Auszuschliessende Artikel:</td><td>";
echo "<input name=\"CMS_VAR[4]\" type=\"text\" value=\"CMS_VALUE[4]\" size=\"10\">";
echo "</td></tr>
</table>";
erweitert

und im output:

Code: Alles auswählen

// select all articles in category widthout start article
$query = "SELECT idart, UNIX_TIMESTAMP(lastmodified) as lastmod FROM ".$cfg["tab"]["art_lang"]." where online='1' ";
mit diesem:

Code: Alles auswählen

// select all articles in category widthout start article
$dontshow = "CMS_VALUE[4]";
if ($dontshow != "") {
   $extra =  'AND idart NOT IN ('.$dontshow.')';
}
else { $extra = ""; }
$query = "SELECT idart, UNIX_TIMESTAMP(lastmodified) as lastmod FROM ".$cfg["tab"]["art_lang"]." where online='1' ".$extra;
ersetzt
.... um somit dann in der tamplate konfig in form von 5,6,7,8,10 artikel anzugeben die nicht gezeigt werden sollen
danke contenido ... danke forum

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

mehrere Sprachen und Clients

Beitrag von Uwe » Mo 28. Aug 2006, 11:47

Hallo,

danke noch mal für dieses Modul. Ich habe mir jetzt alles durchgelesen, aber leider nichts zu meinem Problem gefunden.

Bisher habe ich die Google-Sitemap nur für Anwendungen mit einer Sprache und einem Mandanten eingesetzt. Funktioniert super. Nun habe ich (auch) festgestellt, dass die Sitemap alle Artikel von allen Mandanten ausgibt und immer den URL des Mandanten nutzt, wo ich die Sitemap eingebaut habe. Das funktioniert leider so nicht.

Meine Frage: Gibt es ein Google-Sitemap-Modul ohne mod_rewrite, welches nur für einen Mandanten mit allen Sprachen die Artikel (Kat & Artikel online, nicht geschützt) ausgibt? Kann mir da jemand weiterhelfen?

Möglicher Weise muss ich ja nur die SQL-Abfrage ändern ...

Contenido 4.6.8.5
MySQL 3

Hier der output "meines" Moduls:

Code: Alles auswählen

<?php

/**
* Google Sitemaps Ausgabe als XML - 05.06.2005
*
* OUTPUT
*
* Author Luxmedia Österreich
* Copyright www.luxmedia.at
*
* 2005-06-09
* - Nur Artikel die Online sind
* - lastmod, changefreq, Skriptname aus INPUT
* - lastmod Datumsformat iso8601
*
* Angepasst durch derSteffen
* 2005-12-21
* - Neu: priority
* - Neuer Header (<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" usw...)
*/

function iso8601_date($time) {
    $tzd = date('O',$time);
    $tzd = substr(chunk_split($tzd, 3, ':'),0,6);
    $date = date('Y-m-d\TH:i:s', $time) . $tzd;
    return $date;
    }


{

/* $xml_titel = "CMS_VALUE[1]";
$xml_link = "CMS_VALUE[2]"; */
$xml_titel = $cfgClient[$client]["path"]["htmlpath"]."CMS_VALUE[0]?idcat=".$idcat;
$xml_link = $cfgClient[$client]["path"]["htmlpath"];


// Header ausgeben
header("Content-type: text/xml");
print '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">'. "\n\n";


// select all articles in category widthout start article
$query = "SELECT idart, UNIX_TIMESTAMP(lastmodified) as lastmod FROM ".$cfg["tab"]["art_lang"]." where online='1'";


// execute query
$db->query($query);


// get id's of sub articles
while ($db->next_record()) {
    $linkid = $db->f("idart");
    $lastmod = iso8601_date( $db->f("lastmod") );
    // link
    $link = $xml_link. "CMS_VALUE[0]?idart=$linkid";
    print "<url>\n";
    print " <loc>".htmlspecialchars($link)."</loc>\n";
    if("CMS_VALUE[1]") {
	    print " <lastmod>". $lastmod."</lastmod>\n"; }
    if("CMS_VALUE[2]"){
	    print " <changefreq>CMS_VALUE[2]</changefreq>\n"; }
    if("CMS_VALUE[3]") {
	    print " <priority>CMS_VALUE[3]</priority>\n"; }
    print "</url>\n\n";
    } // end while

print '</urlset>';

}
?> 
Viele Grüsse vom Bodensee, Uwe

Gesperrt