Seite 2 von 4

Verfasst: Di 14. Mär 2006, 09:50
von derSteffen
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

Verfasst: Di 14. Mär 2006, 09:57
von derSteffen
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

Verfasst: Di 14. Mär 2006, 11:26
von markusheinzer
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;

Verfasst: Di 14. Mär 2006, 12:46
von derSteffen
WOW! SUPER! Es funzt! Genial! Danke Dir!

Frohes Schaffen weiterhin!

MfG Steffen

Verfasst: Di 14. Mär 2006, 12:52
von markusheinzer
... Danke Dir für den ganzen Rest... ;-)

Verfasst: Di 14. Mär 2006, 13:40
von derSteffen
Naja das Originalmodul ist ja nun nicht von mir! Siehe ersten Post! :-)

Verfasst: Mo 20. Mär 2006, 10:13
von derSteffen
@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

Verfasst: So 7. Mai 2006, 15:05
von denist.de
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]

Verfasst: Mo 8. Mai 2006, 05:16
von denist.de
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

Verfasst: Mo 3. Jul 2006, 16:45
von v_r
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

Verfasst: Mo 3. Jul 2006, 16:51
von mvf
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?

Verfasst: Mo 3. Jul 2006, 16:59
von v_r
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

Verfasst: Mo 3. Jul 2006, 17:37
von stese

Verfasst: So 6. Aug 2006, 13:45
von windowlicker
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

mehrere Sprachen und Clients

Verfasst: Mo 28. Aug 2006, 11:47
von Uwe
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