Rezeptdatenbank in sitemap?

Begonnen von trulla, 28 August 2008, 17:28:51

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

trulla

 :red:
Hallo. erst heute bin ich auf die google_sitemap.php gestoßen. Natürlich habe ich mich sofort daran gemacht, diese zu verschlimmbessern. Was ist mit Rezeptdatenbank und Encyclopädie? Da finde ich keinen Hinweis zu! Werden die in der Sitemap nicht aufgeführt? Muss ich mir dafür eventuell einen eigenen code basteln?
Danke :)

Webfan

Hallo  :)
Ungetestet:
Rezepte
Suche:
function google_allowed($module)
{

Davor einfügen:
function rezepte()
{
    global $limit, $prefix, $i, $item, $keywords;
    if (!google_allowed("Rezeptdatenbank"))
        return;
    $result = sql_query("select * from recipes_recipes ORDER BY submittime DESC limit " . $limit);
    if ($result) {
        while ($row = sql_fetch_object($result)) {
            $i++;
            $item[$i]['link'] = MX_HOME_URL . "/modules.php?name=Rezeptdatenbank&action=viewrecipe&recipeid=" . $row->id;
            if (preg_match('#(' . $keywords . ')#i', $row->recipename . $row->ingredients. $row->directions. $row->nutrition.$row->serves))
                $row->submittime = time();
            $item[$i]['date'] = intval($row->submittime);
        }
    }
}

Ggf: select * from ".$prefix."recipes_recipes je nachdem wie Deine Tabelle heißt

Suche:
storiescat();
stories();
content();
contentcat();
downloads();
links();
simple('Forum');

Darunter einfügen:
rezepte();


Lexikon
Hier muß noch eine Spalte für das Datum eingefügt werden, damit die Links entsprechend sorterit werden können.
Über phpMyAdmin (z.B.) die Tabelle _encyclopedia_text erweitern:
ALTER TABLE `pragmatw_encyclopedia_text` ADD `date` DATETIME DEFAULT 'CURRENT TIMESTAMP' NOT NULL ;
Die Funktion:
function ency()
{
    global $limit, $prefix, $i, $item, $keywords;
    if (!google_allowed("Encyclopedia"))
        return;
    $result = sql_query("select * from " . $prefix . "_encyclopedia_text ORDER BY date DESC limit " . $limit);
    if ($result) {
        while ($row = sql_fetch_object($result)) {
            $i++;
            $item[$i]['link'] = MX_HOME_URL . "/modules.php?name=Encyclopedia&op=content&tid=" . $row->tid;
            if (preg_match('#(' . $keywords . ')#i', $row->title . $row->text))
                $row->date = time();
            $item[$i]['date'] = intval($row->date);
        }
    }
}

entsprechend unter
rezepte();
anfügen:
ency();

Wie gesagt, alles ungetestet, deshalb ohne Gewähr.

Die Google Sitemap sollte, so ist es vorgesehen, bei google.de/sitemaps eingereicht werden.

mfg

trulla

 :)
Hallo, für die Rezeptdatenbank hat alles wunderbar geklappt. :thumbup:


ecyclopädie:
Beim Erstellen einer Tabelle habe ich natürlich das prefix an meine Datenbank angepasst. Leider bekomme ich die Meldung:

#1067 - Invalid default value for 'date'


Webfan

#3
Hallo,
versuche mal
ALTER TABLE `{prefix}encyclopedia_text` ADD `date` TIMESTAMP DEFAULT 'CURRENT TIMESTAMP' NOT NULL ;
Datetime ist natürlich kein timestamp.
mfg

EDIT: Wenn zufällig ein Mod Zeit hat, kann die ALTER TABLE... Phrase im obigen Post bitte editiert werden (wg. prefix und der Korretkheit?)?  Danke!
mfg

trulla

Leider auch hier:
#1067 - Invalid default value for 'date'

:)

Webfan

ALTER TABLE `{prefix}_encyclopedia_text` ADD `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ;
:blaa: da muß natürlich ein UNterstrich _ zwischen, sorry.
mfg

trulla

 O0
Super, das hat geklappt. Ich hab auch schon bei google nachgeprüft.
Vor der Änderung konnte ich bei meinen beiden Webseiten 286 und 176 Seiten einreichen. Nun sind es 448 und 334
Danke und gute Nacht

Webfan

function ency()
{
    global $limit, $prefix, $i, $item, $keywords;
    if (!google_allowed("Encyclopedia"))
        return;
    $result = sql_query("select * from " . $prefix . "_encyclopedia_text ORDER BY tid DESC limit " . $limit);
    if ($result) {
        while ($row = sql_fetch_object($result)) {
            $i++;
            $item[$i]['link'] = MX_HOME_URL . "/modules.php?name=Encyclopedia&op=content&tid=" . $row->tid;
            if (preg_match('#(' . $keywords . ')#i', $row->title . $row->text))
                $date = time();
            $item[$i]['date'] = intval($date);
        }
    }
}

Nach der Erweuiterung um das Feld date funktionieren die Einfügen queries nicht mehr, so das das Modul teilweise umgeschrieben werden  muß.
Der obenstehende Code sortiert nach tid so daß auf das Feld date ggf. verzichtet werden kann.

mfg

trulla

 :)
Ok, so gehts auch. An der Anzahl der übermittelten Urls ändert sich auf diese Weise nichts.